summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/go32
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-05 14:20:12 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-05 14:20:12 +0000
commit6d81ea35e62ae048904c9d5e33cd60c4474c3c47 (patch)
tree06cdf4b82a39109888de16e25cab78a7dfd9e957 /c/src/lib/libbsp/i386/go32
parentAdded wrapup directory. (diff)
downloadrtems-6d81ea35e62ae048904c9d5e33cd60c4474c3c47.tar.bz2
Removed targets and configurations that are no longer functional
and not likely to become so. Comments on each configuration are below. + Force CPU386 - This BSP was developed as part of the initial port of RTEMS to the i386. This board has been unavailable for a long time now. + GO32 - This BSP and some CPU code supported djgpp v1.x. This version is now quite old. No one has stepped forward to update the code to v2.x which may be technically impossible anyway. More importantly, go32 has been superceded by the pc386 BSP.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/i386/go32/Makefile.in27
-rw-r--r--c/src/lib/libbsp/i386/go32/README38
-rw-r--r--c/src/lib/libbsp/i386/go32/bsp_specs20
-rw-r--r--c/src/lib/libbsp/i386/go32/clock/Makefile.in65
-rw-r--r--c/src/lib/libbsp/i386/go32/clock/ckinit.c199
-rw-r--r--c/src/lib/libbsp/i386/go32/clock/rtc.c212
-rw-r--r--c/src/lib/libbsp/i386/go32/console/Makefile.in65
-rw-r--r--c/src/lib/libbsp/i386/go32/console/console.c256
-rw-r--r--c/src/lib/libbsp/i386/go32/console/inch.c162
-rw-r--r--c/src/lib/libbsp/i386/go32/console/outch.c151
-rw-r--r--c/src/lib/libbsp/i386/go32/include/Makefile.in50
-rw-r--r--c/src/lib/libbsp/i386/go32/include/bsp.h166
-rw-r--r--c/src/lib/libbsp/i386/go32/include/coverhd.h104
-rw-r--r--c/src/lib/libbsp/i386/go32/startup/Makefile.in64
-rw-r--r--c/src/lib/libbsp/i386/go32/startup/bspstart.c135
-rw-r--r--c/src/lib/libbsp/i386/go32/startup/exit.c30
-rw-r--r--c/src/lib/libbsp/i386/go32/startup/setvec.c46
-rw-r--r--c/src/lib/libbsp/i386/go32/timer/Makefile.in70
-rw-r--r--c/src/lib/libbsp/i386/go32/timer/timer.c144
-rw-r--r--c/src/lib/libbsp/i386/go32/timer/timerisr.S41
-rw-r--r--c/src/lib/libbsp/i386/go32/times_i486dx191
-rw-r--r--c/src/lib/libbsp/i386/go32/times_p5196
-rw-r--r--c/src/lib/libbsp/i386/go32/wrapup/Makefile.in66
23 files changed, 0 insertions, 2498 deletions
diff --git a/c/src/lib/libbsp/i386/go32/Makefile.in b/c/src/lib/libbsp/i386/go32/Makefile.in
deleted file mode 100644
index 28b5fccde2..0000000000
--- a/c/src/lib/libbsp/i386/go32/Makefile.in
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../..
-subdir = i386/go32
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/directory.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-# wrapup is the one that actually builds and installs the library
-# from the individual .rel files built in other directories
-SUB_DIRS = include startup clock console timer wrapup
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/libbsp/i386/go32/README b/c/src/lib/libbsp/i386/go32/README
deleted file mode 100644
index fa0d3efd29..0000000000
--- a/c/src/lib/libbsp/i386/go32/README
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# $Id$
-#
-
-1. This is based on djgpp v1.x which has been superceded. That version
- is still available but is no longer supported. It would be greatly
- appreciated if someone would update this bsp to the current version.
-
-2. In general the regular instructions for building a cross GNU toolset
- apply to the i386-go32-rtems toolset. However, you will need some items
- from the djgpp distribution. Here is the list of djgpp files we use:
-
- djeoe112.zip - files required on target PC
- djdev112.zip - libraries and include files required on host
-
-3. We attempt to minimize what we copy into our built and installed GNU
- toolset from the binary distribution of the GNU tools. Here is what
- we do by hand. You will need to localize this to meet your directory
- structure. All paths are starting at the toolset install point.
-
- a. Copy go32.h, dpmi.h, dos.h. and pc.h in the i386-go32-rtems/include
- directory. These files only include sys/types.h and newlib has that.
-
- b. copy crt0.o to i386-go32-rtems/gcc-lib/i386-go32-rtems/2.7.2
- c. copy libc.a to i386-go32-rtems/gcc-lib/i386-go32-rtems/2.7.2/libcgo32.a
- d. copy libpc.a to i386-go32-rtems/gcc-lib/i386-go32-rtems/2.7.2/libpc.a
-
- It is almost a certainty that libcgo32.a and libpc.a have symbols and
- routines which duplicate those in newlib. In post 3.6.0 RTEMS versions,
- the --start-group and --end-group GNU ld options are used to group
- the non-GO32 supplied libraries. This attempts to resolve every symbolic
- reference from RTEMS specific libraries before getting them from
- GO32 libraries.
-
-4. This configuration is built on a UNIX host by the RTEMS Team using
- cross configurations of the tools. Building it under DOS requires
- special effort.
-
diff --git a/c/src/lib/libbsp/i386/go32/bsp_specs b/c/src/lib/libbsp/i386/go32/bsp_specs
deleted file mode 100644
index 59b0aceadd..0000000000
--- a/c/src/lib/libbsp/i386/go32/bsp_specs
+++ /dev/null
@@ -1,20 +0,0 @@
-%rename cpp old_cpp
-%rename lib old_lib
-%rename endfile old_endfile
-%rename startfile old_startfile
-%rename link old_link
-
-*cpp:
-%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded)
-
-*lib:
-%{!qrtems: %(old_lib)} %{qrtems: --start-group \
-%{!qrtems_debug: -lrtemsall} %{qrtems_debug: -lrtemsall_g} \
--lc -lgcc --end-group -lcgo32 -lpc}
-
-*startfile:
-%{!qrtems: %(old_startfile)} %{qrtems: crt0_go32.o%s}
-
-*link:
-%{!qrtems: %(old_link)} %{qrtems: %(old_link)}
-
diff --git a/c/src/lib/libbsp/i386/go32/clock/Makefile.in b/c/src/lib/libbsp/i386/go32/clock/Makefile.in
deleted file mode 100644
index 42973c8ee4..0000000000
--- a/c/src/lib/libbsp/i386/go32/clock/Makefile.in
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = i386/go32/clock
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-PGM = ${ARCH}/clock.rel
-
-# C source names, if any, go here -- minus the .c
-C_PIECES = ckinit rtc
-C_FILES = $(C_PIECES:%=%.c)
-C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
-
-H_FILES =
-
-SRCS = $(C_FILES) $(H_FILES)
-OBJS = $(C_O_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/leaf.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-LDFLAGS +=
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-${PGM}: ${SRCS} ${OBJS}
- $(make-rel)
-
-all: ${ARCH} $(SRCS) $(PGM)
-
-# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
-install: all
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/libbsp/i386/go32/clock/ckinit.c b/c/src/lib/libbsp/i386/go32/clock/ckinit.c
deleted file mode 100644
index 70c564fabc..0000000000
--- a/c/src/lib/libbsp/i386/go32/clock/ckinit.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Clock_initialize
- *
- * This routine initializes the 8254 timer under GO32.
- * The tick frequency is 1 millisecond.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * $Id$
- */
-
-#include <bsp.h>
-#include <rtems/libio.h>
-
-#include <stdlib.h>
-
-volatile rtems_unsigned32 Clock_driver_ticks;
-rtems_unsigned32 Clock_isrs_per_tick; /* ISRs per tick */
-rtems_unsigned32 Clock_isrs; /* ISRs until next tick */
-rtems_isr_entry Old_ticker;
-
-#define CLOCK_VECTOR 0x8
-
-void Clock_exit( void );
-
-/*
- * These are set by clock driver during its init
- */
-
-rtems_device_major_number rtems_clock_major = ~0;
-rtems_device_minor_number rtems_clock_minor;
-
-rtems_isr Clock_isr(
- rtems_vector_number vector
-)
-{
- /* touch interrupt controller for irq0 (0x20+0) */
- outport_byte( 0x20, 0x20 );
-
- Clock_driver_ticks += 1;
-
-#if 0 && defined(pentium)
- {
- extern long long Last_RDTSC;
- __asm __volatile( ".byte 0x0F, 0x31" : "=A" (Last_RDTSC) );
- }
-#endif
-
- if ( Clock_isrs == 1 ) {
- rtems_clock_tick();
- Clock_isrs = Clock_isrs_per_tick;
- } else {
- Clock_isrs -= 1;
- }
-}
-
-void Install_clock(
- rtems_isr_entry clock_isr
-)
-{
- unsigned int microseconds_per_isr;
-
-#if 0
- /* Initialize clock from on-board real time clock. This breaks the */
- /* test code which assumes which assumes the application will do it. */
- {
- rtems_time_of_day Now;
- extern void init_rtc( void );
- extern long rtc_read( rtems_time_of_day * tod );
- init_rtc();
- if ( rtc_read( &Now ) >= 0 )
- clock_set( &Now );
- }
-#endif
-
- /* Start by assuming hardware counter is large enough, then */
- /* scale it until it actually fits. */
- Clock_driver_ticks = 0;
- Clock_isrs_per_tick = 1;
-
- if ( BSP_Configuration.microseconds_per_tick == 0 )
- microseconds_per_isr = 10000; /* default 10 ms */
- else
- microseconds_per_isr = BSP_Configuration.microseconds_per_tick;
- while ( US_TO_TICK(microseconds_per_isr) > 65535 ) {
- Clock_isrs_per_tick *= 10;
- microseconds_per_isr /= 10;
- }
-
- /* Initialize count in ckisr.c */
- Clock_isrs = Clock_isrs_per_tick;
-
-#if 0
- /* This was dropped in the last revision. Its a nice thing to know. */
- TICKS_PER_SECOND = 1000000 / (Clock_isrs_per_tick * microseconds_per_isr);
-#endif
-
- if ( BSP_Configuration.ticks_per_timeslice ) {
- /* 105/88 approximates TIMER_TICK*1e-6 */
- unsigned int count = US_TO_TICK( microseconds_per_isr );
-
- Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 );
- outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN );
- outport_byte( TIMER_CNTR0, count >> 0 & 0xff );
- outport_byte( TIMER_CNTR0, count >> 8 & 0xff );
- }
- atexit( Clock_exit );
-}
-
-void Clock_exit( void )
-{
- if ( BSP_Configuration.ticks_per_timeslice ) {
- extern void rtc_set_dos_date( void );
-
- /* reset to DOS value: */
- outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN );
- outport_byte( TIMER_CNTR0, 0 );
- outport_byte( TIMER_CNTR0, 0 );
-
- /* reset time-of-day */
- rtc_set_dos_date();
-
- /* re-enable old handler: assume it was one of ours */
- set_vector( (rtems_isr_entry)Old_ticker, CLOCK_VECTOR, 1 );
- }
-}
-
-rtems_device_driver Clock_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *pargp
-)
-{
- Install_clock( Clock_isr );
-
- /*
- * make major/minor avail to others such as shared memory driver
- */
-
- rtems_clock_major = major;
- rtems_clock_minor = minor;
-
- return RTEMS_SUCCESSFUL;
-}
-
-rtems_device_driver Clock_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *pargp
-)
-{
- rtems_unsigned32 isrlevel;
- rtems_libio_ioctl_args_t *args = pargp;
-
- if (args == 0)
- goto done;
-
- /*
- * This is hokey, but until we get a defined interface
- * to do this, it will just be this simple...
- */
-
- if (args->command == rtems_build_name('I', 'S', 'R', ' '))
- {
- Clock_isr(CLOCK_VECTOR);
- }
- else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
- {
- rtems_interrupt_disable( isrlevel );
- (void) set_vector( args->buffer, CLOCK_VECTOR, 1 );
- rtems_interrupt_enable( isrlevel );
- }
-
-done:
- return RTEMS_SUCCESSFUL;
-}
-
-#if 0 && defined(pentium)
-/* This can be used to get extremely accurate timing on a pentium. */
-/* It isn't supported. [bryce] */
-#define HZ 90.0
-volatile long long Last_RDTSC;
-#define RDTSC()\
- ({ long long _now; __asm __volatile (".byte 0x0F,0x31":"=A"(_now)); _now; })
-
-long long Kernel_Time_ns( void )
-{
- extern rtems_unsigned32 _TOD_Ticks_per_second;
- unsigned isrs_per_second = Clock_isrs_per_tick * _TOD_Ticks_per_second;
- long long now;
- int flags;
- disable_intr( flags );
- now = 1e9 * Clock_driver_ticks / isrs_per_second
- + (RDTSC() - Last_RDTSC) * (1000.0/HZ);
- enable_intr( flags );
- return now;
-}
-#endif
diff --git a/c/src/lib/libbsp/i386/go32/clock/rtc.c b/c/src/lib/libbsp/i386/go32/clock/rtc.c
deleted file mode 100644
index 38e9497000..0000000000
--- a/c/src/lib/libbsp/i386/go32/clock/rtc.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * $Id$
- */
-
-#define IO_RTC 0x70 /* RTC */
-
-#define RTC_SEC 0x00 /* seconds */
-#define RTC_SECALRM 0x01 /* seconds alarm */
-#define RTC_MIN 0x02 /* minutes */
-#define RTC_MINALRM 0x03 /* minutes alarm */
-#define RTC_HRS 0x04 /* hours */
-#define RTC_HRSALRM 0x05 /* hours alarm */
-#define RTC_WDAY 0x06 /* week day */
-#define RTC_DAY 0x07 /* day of month */
-#define RTC_MONTH 0x08 /* month of year */
-#define RTC_YEAR 0x09 /* month of year */
-#define RTC_STATUSA 0x0a /* status register A */
-#define RTCSA_TUP 0x80 /* time update, don't look now */
-
-#define RTC_STATUSB 0x0b /* status register B */
-
-#define RTC_INTR 0x0c /* status register C (R) interrupt source */
-#define RTCIR_UPDATE 0x10 /* update intr */
-#define RTCIR_ALARM 0x20 /* alarm intr */
-#define RTCIR_PERIOD 0x40 /* periodic intr */
-#define RTCIR_INT 0x80 /* interrupt output signal */
-
-#define RTC_STATUSD 0x0d /* status register D (R) Lost Power */
-#define RTCSD_PWR 0x80 /* clock lost power */
-
-#define RTC_DIAG 0x0e /* status register E - bios diagnostic */
-#define RTCDG_BITS "\020\010clock_battery\007ROM_cksum\006config_unit\005memory_size\004fixed_disk\003invalid_time"
-
-#define RTC_CENTURY 0x32 /* current century - increment in Dec99 */
-
-
-
-#include <rtems.h>
-#include <string.h>
-
-void init_rtc( void )
-{
- int s;
-
- /* initialize brain-dead battery powered clock */
- outport_byte( IO_RTC, RTC_STATUSA );
- outport_byte( IO_RTC+1, 0x26 );
- outport_byte( IO_RTC, RTC_STATUSB );
- outport_byte( IO_RTC+1, 2 );
-
- outport_byte( IO_RTC, RTC_DIAG );
- inport_byte( IO_RTC+1, s );
-#if 0
- if (s) printf("RTC BIOS diagnostic error %b\n", s, RTCDG_BITS);
-#endif
-}
-
-
-/* convert 2 digit BCD number */
-static int bcd( unsigned int i )
-{
- return ((i/16)*10 + (i%16));
-}
-
-/* convert years to seconds (from 1970) */
-static unsigned long ytos( int y )
-{
- int i;
- unsigned long ret;
-
- ret = 0;
- for(i = 1970; i < y; i++) {
- if (i % 4) ret += 365*24*60*60;
- else ret += 366*24*60*60;
- }
- return ret;
-}
-
-/* convert months to seconds */
-static unsigned long mtos( int m, int leap )
-{
- int i;
- unsigned long ret;
-
- ret = 0;
- for(i=1;i<m;i++) {
- switch(i){
- case 1: case 3: case 5: case 7: case 8: case 10: case 12:
- ret += 31*24*60*60;
- break;
- case 4: case 6: case 9: case 11:
- ret += 30*24*60*60;
- break;
- case 2:
- if (leap)
- ret += 29*24*60*60;
- else
- ret += 28*24*60*60;
- }
- }
- return ret;
-}
-
-
-static inline unsigned int rtcin( unsigned int what )
-{
- unsigned int r;
- outport_byte( IO_RTC, what );
- inport_byte( IO_RTC+1, r );
- return r;
-}
-
-
-/*
- * Initialize the time of day register, based on the time base which is, e.g.
- * from a filesystem.
- */
-long rtc_read( rtems_time_of_day * tod )
-{
- int sa;
- unsigned long sec = 0;
-
- memset( tod, 0, sizeof *tod );
-
- /* do we have a realtime clock present? (otherwise we loop below) */
- sa = rtcin(RTC_STATUSA);
- if (sa == 0xff || sa == 0)
- return -1;
-
- /* ready for a read? */
- while ((sa&RTCSA_TUP) == RTCSA_TUP)
- sa = rtcin(RTC_STATUSA);
-
- tod->year = bcd(rtcin(RTC_YEAR)) + 1900; /* year */
- if (tod->year < 1970) tod->year += 100;
- tod->month = bcd(rtcin(RTC_MONTH)); /* month */
- tod->day = bcd(rtcin(RTC_DAY)); /* day */
- (void) bcd(rtcin(RTC_WDAY)); /* weekday */
- tod->hour = bcd(rtcin(RTC_HRS)); /* hour */
- tod->minute = bcd(rtcin(RTC_MIN)); /* minutes */
- tod->second = bcd(rtcin(RTC_SEC)); /* seconds */
- tod->ticks = 0;
-#if 0
- sec = ytos( tod->year );
- sec += mtos( tod->month, tod->year % 4 == 0 );
- sec += tod->day * 24*60*60;
- sec += tod->hour * 60*60; /* hour */
- sec += tod->minute * 60; /* minutes */
- sec += tod->second; /* seconds */
-#else
- sec = 0;
-#endif
- return sec;
-}
-
-
-
-/* from djgpp: include before rtems.h to avoid conflicts */
-#undef delay
-#include <dos.h>
-
-void rtc_set_dos_date( void )
-{
- int s;
- struct date date;
- struct time time;
-
- /* initialize brain-dead battery powered clock */
- outport_byte( IO_RTC, RTC_STATUSA );
- outport_byte( IO_RTC+1, 0x26 );
- outport_byte( IO_RTC, RTC_STATUSB );
- outport_byte( IO_RTC+1, 2 );
-
- outport_byte( IO_RTC, RTC_DIAG );
- inport_byte( IO_RTC+1, s );
- if (s) {
-#if 0
- printf("RTC BIOS diagnostic error %b\n", s, RTCDG_BITS);
-#else
- return;
-#endif
- }
-
- /* check for presence of clock */
- s = rtcin(RTC_STATUSA);
- if ( s == 0xff || s == 0 ) {
-#if 0
- printf( "Real-time clock not found\n" );
-#endif
- return;
- }
-
- /* ready for a read? */
- while ((s & RTCSA_TUP) == RTCSA_TUP)
- s = rtcin(RTC_STATUSA);
-
- date.da_year = bcd(rtcin(RTC_YEAR)) + 1900; /* year */
- if ( date.da_year < 1970) date.da_year += 100;
- date.da_year -= 1980;
- date.da_mon = bcd(rtcin(RTC_MONTH)); /* month */
- date.da_day = bcd(rtcin(RTC_DAY)); /* day */
-
- (void)bcd(rtcin(RTC_WDAY)); /* weekday */
-
- time.ti_hour = bcd(rtcin(RTC_HRS)); /* hour */
- time.ti_min = bcd(rtcin(RTC_MIN)); /* minutes */
- time.ti_sec = bcd(rtcin(RTC_SEC)); /* seconds */
- time.ti_hund = 0;
-
- setdate( & date );
- settime( & time );
-}
diff --git a/c/src/lib/libbsp/i386/go32/console/Makefile.in b/c/src/lib/libbsp/i386/go32/console/Makefile.in
deleted file mode 100644
index dccaad8dbb..0000000000
--- a/c/src/lib/libbsp/i386/go32/console/Makefile.in
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = i386/go32/console
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-PGM = ${ARCH}/console.rel
-
-# C source names, if any, go here -- minus the .c
-C_PIECES = console inch outch
-C_FILES = $(C_PIECES:%=%.c)
-C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
-
-H_FILES =
-
-SRCS = $(C_FILES) $(H_FILES)
-OBJS = $(C_O_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/leaf.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-LDFLAGS +=
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-${PGM}: ${SRCS} ${OBJS}
- $(make-rel)
-
-all: ${ARCH} $(SRCS) $(PGM)
-
-# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
-install: all
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/libbsp/i386/go32/console/console.c b/c/src/lib/libbsp/i386/go32/console/console.c
deleted file mode 100644
index 0449686da8..0000000000
--- a/c/src/lib/libbsp/i386/go32/console/console.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * This file contains the go32 console IO package.
- *
- * $Id$
- */
-
-#define IBMPC_INIT
-
-#include <stdlib.h>
-
-#include <bsp.h>
-#include <rtems/libio.h>
-
-#include <dpmi.h>
-#include <go32.h>
-
-/* console_cleanup
- *
- * This routine is called at exit to clean up the console hardware.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values:
- */
-
-void console_cleanup( void )
-{
- /* nothing */
-}
-
-/* console_initialize
- *
- * This routine initializes the console IO driver.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values:
- */
-
-/* Set this if console I/O should use go32 (DOS) read/write calls. */
-/* Otherwise, direct hardware accesses will be used. */
-
-int _IBMPC_Use_Go32_IO = 0;
-
-static rtems_isr_entry old_keyboard_isr = NULL;
-
-extern void _IBMPC_keyboard_isr( rtems_unsigned32 interrupt );
-
-rtems_device_driver console_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- rtems_status_code status;
-
- if ( _IBMPC_Use_Go32_IO ) {
- /* Nothing. We let DOS and go32 do all the work. */
- } else {
- /* Grap the keyboard interrupt so DOS doesn't steal our */
- /* keystrokes. */
- rtems_status_code status;
-
- status =
- rtems_interrupt_catch( _IBMPC_keyboard_isr, 9, &old_keyboard_isr );
-
- if ( status ) {
- int write( int, void *, int );
- void exit( int );
-
- char msg[] = "error initializing keyboard\n";
- write( 2, msg, sizeof msg - 1 );
- exit( 1 );
- }
- }
-
- status = rtems_io_register_name(
- "/dev/console",
- major,
- (rtems_device_minor_number) 0
- );
-
- if (status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred(status);
-
- atexit( console_cleanup );
-
- return RTEMS_SUCCESSFUL;
-}
-
-
-/* is_character_ready
- *
- * This routine returns TRUE if a character is available.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values:
- */
-
-rtems_boolean is_character_ready(
- char *ch
-)
-{
- return _IBMPC_chrdy( ch ) ? TRUE : FALSE;
-}
-
-/* inbyte
- *
- * This routine reads a character from the UART.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values:
- * character read from UART
- */
-
-char inbyte( void )
-{
- char ch = _IBMPC_inch();
-#if 1
- /* Echo character to screen */
- void outbyte( char ch );
- outbyte( ch );
- if ( ch == '\r' )
- outbyte( '\n' );
-#endif
- return ch;
-}
-
-/* outbyte
- *
- * This routine transmits a character out the port.
- *
- * Input parameters:
- * ch - character to be transmitted
- *
- * Output parameters: NONE
- */
-
-void outbyte( char ch )
-{
- _IBMPC_outch( ch );
-}
-
-/*
- * Open entry point
- */
-
-rtems_device_driver console_open(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return RTEMS_SUCCESSFUL;
-}
-
-/*
- * Close entry point
- */
-
-rtems_device_driver console_close(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return RTEMS_SUCCESSFUL;
-}
-
-/*
- * read bytes from the serial port. We only have stdin.
- */
-
-rtems_device_driver console_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- rtems_libio_rw_args_t *rw_args;
- char *buffer;
- int maximum;
- int count = 0;
-
- rw_args = (rtems_libio_rw_args_t *) arg;
-
- buffer = rw_args->buffer;
- maximum = rw_args->count;
-
- for (count = 0; count < maximum; count++) {
- buffer[ count ] = inbyte();
- if (buffer[ count ] == '\n' || buffer[ count ] == '\r') {
- /* What if this goes past the end of the buffer? We're hosed. [bhc] */
- buffer[ count++ ] = '\n';
- break;
- }
- }
-
- rw_args->bytes_moved = count;
- return (count >= 0) ? RTEMS_SUCCESSFUL : RTEMS_UNSATISFIED;
-}
-
-/*
- * write bytes to the serial port. Stdout and stderr are the same.
- */
-
-rtems_device_driver console_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- int count;
- int maximum;
- rtems_libio_rw_args_t *rw_args;
- char *buffer;
-
- rw_args = (rtems_libio_rw_args_t *) arg;
-
- buffer = rw_args->buffer;
- maximum = rw_args->count;
-
- for (count = 0; count < maximum; count++) {
- if ( buffer[ count ] == '\n') {
- outbyte('\r');
- }
- outbyte( buffer[ count ] );
- }
-
- rw_args->bytes_moved = maximum;
- return 0;
-}
-
-/*
- * IO Control entry point
- */
-
-rtems_device_driver console_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return RTEMS_SUCCESSFUL;
-}
-
diff --git a/c/src/lib/libbsp/i386/go32/console/inch.c b/c/src/lib/libbsp/i386/go32/console/inch.c
deleted file mode 100644
index e3bbbd7105..0000000000
--- a/c/src/lib/libbsp/i386/go32/console/inch.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * $Id$
- */
-
-#include <pc.h>
-#include <go32.h>
-#include <bsp.h>
-
-/*
- * Ports for PC keyboard
- */
-#define KBD_CTL 0x61
-#define KBD_DATA 0x60
-#define KBD_STATUS 0x64
-
-static char key_map[] = {
-0,033,'1','2','3','4','5','6','7','8','9','0','-','=','\b','\t',
-'q','w','e','r','t','y','u','i','o','p','[',']',015,0x80,
-'a','s','d','f','g','h','j','k','l',';',047,0140,0x80,
-0134,'z','x','c','v','b','n','m',',','.','/',0x80,
-'*',0x80,' ',0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
-0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
-0x80,0x80,0x80,'0',0177
-};
-
-static char shift_map[] = {
-0,033,'!','@','#','$','%','^','&','*','(',')','_','+','\b','\t',
-'Q','W','E','R','T','Y','U','I','O','P','{','}',015,0x80,
-'A','S','D','F','G','H','J','K','L',':',042,'~',0x80,
-'|','Z','X','C','V','B','N','M','<','>','?',0x80,
-'*',0x80,' ',0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
-0x80,0x80,0x80,0x80,'7','8','9',0x80,'4','5','6',0x80,
-'1','2','3','0',177
-};
-
-extern int _IBMPC_Use_Go32_IO;
-
-#define KBD_BUF_SIZE 256
-static char kbd_buffer[ KBD_BUF_SIZE ];
-static unsigned int kbd_first = 0;
-static unsigned int kbd_last = 0;
-
-/* This function can be called during a poll for input, or by an ISR. */
-/* Basically any time you want to process a keypress. */
-int _IBMPC_scankey( char * ch )
-{
- unsigned char c;
- unsigned char outch;
- static int shift_pressed = 0;
- static int ctrl_pressed = 0;
- static int caps_pressed = 0;
-
- /* Read keyboard controller, toggle enable */
- inport_byte( KBD_CTL, c );
- outport_byte( KBD_CTL, c & ~0x80 );
- outport_byte( KBD_CTL, c | 0x80 );
- outport_byte( KBD_CTL, c & ~0x80 );
-
- /* See if it has data */
- inport_byte( KBD_STATUS, c );
- if ( ( c & 0x01 ) == 0 )
- return 0;
-
- /* Read the data. Handle nonsense with shift, control, etc. */
- inport_byte( KBD_DATA, c );
- switch ( c ) {
- case 0x36:
- case 0x2a:
- shift_pressed = 1;
- return 0;
- case 0x3a:
- caps_pressed = 1;
- return 0;
- case 0x1d:
- ctrl_pressed = 1;
- return 0;
- case 0xb6:
- case 0xaa:
- shift_pressed = 0;
- return 0;
- case 0xba:
- caps_pressed = 0;
- return 0;
- case 0x9d:
- ctrl_pressed = 0;
- return 0;
- /*
- * Ignore unrecognized keys--usually arrow and such
- */
- default:
- if ( c & 0x80 )
- /* High-bit on means key is being released, not pressed */
- return 0;
- if ( c == 88 )
- /* F12 - abort */
- exit( 1 );
- if ( c > 0x39 ) {
- return 0;
- }
- }
-
- /* Strip high bit, look up in our map */
- c &= 127;
- if ( ctrl_pressed ) {
- outch = key_map[c];
- outch &= 037;
- } else {
- outch = shift_pressed ? shift_map[c] : key_map[c];
- if ( caps_pressed ) {
- if ( outch >= 'A' && outch <= 'Z' ) outch += 'a' - 'A';
- else if ( outch >= 'a' && outch <= 'z' ) outch -= 'a' - 'A';
- }
- }
-
- *ch = outch;
- return 1;
-}
-
-
-void _IBMPC_keyboard_isr( rtems_unsigned32 interrupt )
-{
- if ( _IBMPC_scankey( & kbd_buffer[ kbd_last ] ) ) {
- /* Got one; save it if there is enough room in buffer. */
- unsigned int next = (kbd_last + 1) % KBD_BUF_SIZE;
- if ( next != kbd_first )
- kbd_last = next;
- }
-
- /* Mark interrupt as handled */
- outport_byte( 0x20, 0x20 );
-}
-
-
-int _IBMPC_chrdy( char * ch )
-{
- if ( _IBMPC_Use_Go32_IO ) {
- /* Read keyboard via BIOS: raw mode. */
- if ( kbhit() ) {
- *ch = getkey();
- return 1;
- } else {
- return 0;
- }
- } else {
- /* Check buffer our ISR builds */
- if ( kbd_first != kbd_last ) {
- *ch = kbd_buffer[ kbd_first ];
- kbd_first = (kbd_first + 1) % KBD_BUF_SIZE;
- return 1;
- } else {
- return 0;
- }
- }
-}
-
-int _IBMPC_inch( void )
-{
- char Ch;
- while ( ! _IBMPC_chrdy( & Ch ) )
- continue;
- return Ch;
-}
diff --git a/c/src/lib/libbsp/i386/go32/console/outch.c b/c/src/lib/libbsp/i386/go32/console/outch.c
deleted file mode 100644
index 9f7df342db..0000000000
--- a/c/src/lib/libbsp/i386/go32/console/outch.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * $Id$
- */
-
-#include <go32.h>
-#include <bsp.h>
-
-#include <string.h>
-#include <unistd.h>
-
-#define MAX_COL 80
-#define MAX_ROW 50
-
-static unsigned nrow = 25;
-static unsigned ncol = 80;
-static unsigned short * tvram = TVRAM;
-static unsigned char current_col = 0;
-static unsigned char current_row = 0;
-static unsigned short screen_copy[ MAX_ROW*MAX_COL ];
-
-static void init_cons( void );
-
-/*
- * set_cursor_pos()
- * Set cursor position based on current absolute screen offset
- */
-static void
-set_cursor_pos(void)
-{
- register unsigned short gdc_pos = current_row * ncol + current_col;
- outport_byte( GDC_REG_PORT, 0xe );
- outport_byte( GDC_VAL_PORT, (gdc_pos >> 8) & 0xff );
- outport_byte( GDC_REG_PORT, 0xf );
- outport_byte( GDC_VAL_PORT, gdc_pos & 0xff );
-}
-
-/*
- * scroll_up()
- * Scroll screen up one line
- */
-static void
-scroll_up( unsigned short * tv, unsigned short * copy, unsigned int lines )
-{
- if ( lines > nrow )
- lines = nrow;
-
- /* move everything up */
- memmove( copy, copy+ncol*lines, (nrow-lines)*ncol*sizeof copy[0] );
-
- /* fill bottom with blanks */
- {
- int loop = ncol*lines;
- unsigned short * ptr = copy + ncol*(nrow-lines);
- while ( --loop >= 0 )
- *ptr++ = (WHITE<<8) | ' ';
- }
-
- /* copy new screen to video buffer */
- dosmemput( copy, nrow*ncol*sizeof copy[0], (int)tv );
-}
-
-
-/*
- * PUT()
- * Write character at current screen location
- */
-inline static void PUT( char c )
-{
- unsigned short loc = current_row*ncol+current_col;
- unsigned short val = (WHITE<<8) | c;
- screen_copy[loc] = val;
- dosmemput( &screen_copy[loc], sizeof screen_copy[0], (int)(tvram+loc) );
-}
-
-/*
- * cons_putc()
- * Place a character on next screen position
- */
-static void
-cons_putc( unsigned char c )
-{
- static int first = 1;
- if ( first ) {
- init_cons();
- first = 0;
- }
-
- switch (c) {
- case '\t':
- while ( current_row % 8 )
- cons_putc(' ');
- break;
- case '\r':
- current_col = 0;
- break;
- case '\n':
- if ( ++current_row >= nrow ) {
- scroll_up( tvram, screen_copy, 1 );
- current_row -= 1;
- }
- break;
- case '\b':
- if ( current_col > 0 ) {
- --current_col;
- PUT(' ');
- }
- break;
- default:
- PUT(c);
- current_col += 1;
- if ( current_col >= ncol ) {
- current_col = 0;
- current_row += 1;
- if ( current_row >= nrow ) {
- scroll_up( tvram, screen_copy, 1 );
- current_row -= 1;
- }
- }
- };
- set_cursor_pos();
-}
-
-
-/*
- * init_cons()
- * Hook for any early setup
- */
-static void
-init_cons( void )
-{
-#if 0
- /* Get a copy of original screen */
- dosmemget( (int)tvram, nrow*ncol*sizeof *tvram, screen_copy );
-#else
- /* Clear entire screen */
- scroll_up( tvram, screen_copy, nrow );
-#endif
-}
-
-
-
-void _IBMPC_outch( unsigned char ch )
-{
- extern int _IBMPC_Use_Go32_IO;
-
- if ( _IBMPC_Use_Go32_IO ) {
- write( 1, &ch, 1 );
- } else {
- cons_putc( ch );
- }
-}
diff --git a/c/src/lib/libbsp/i386/go32/include/Makefile.in b/c/src/lib/libbsp/i386/go32/include/Makefile.in
deleted file mode 100644
index 2f1ba6331c..0000000000
--- a/c/src/lib/libbsp/i386/go32/include/Makefile.in
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = i386/go32/include
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-H_FILES = $(srcdir)/bsp.h $(srcdir)/coverhd.h
-
-#
-# Equate files are for including from assembly preprocessed by
-# gm4 or gasp. No examples are provided except for those for
-# other CPUs. The best way to generate them would be to
-# provide a program which generates the constants used based
-# on the C equivalents.
-#
-
-EQ_FILES =
-
-SRCS = $(H_FILES) $(EQ_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/leaf.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-mkinstalldirs = $(SHELL) $(top_srcdir)/@RTEMS_TOPdir@/mkinstalldirs
-
-INSTALLDIRS = $(PROJECT_INCLUDE)
-
-$(INSTALLDIRS):
- @$(mkinstalldirs) $(INSTALLDIRS)
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-all: $(SRCS)
- @$(INSTALL_CHANGE) -m 644 $(H_FILES) $(PROJECT_INCLUDE)
- @$(INSTALL_CHANGE) -m 644 $(EQ_FILES) $(PROJECT_INCLUDE)
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/libbsp/i386/go32/include/bsp.h b/c/src/lib/libbsp/i386/go32/include/bsp.h
deleted file mode 100644
index a2f79040ef..0000000000
--- a/c/src/lib/libbsp/i386/go32/include/bsp.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/* bsp.h
- *
- * This include file definitions related to the ibm386 (go32) board.
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#ifndef __IBMPC_h
-#define __IBMPC_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems.h>
-#include <iosupp.h>
-#include <console.h>
-#include <clockdrv.h>
-
-/*
- * Define the time limits for RTEMS Test Suite test durations.
- * Long test and short test duration limits are provided. These
- * values are in seconds and need to be converted to ticks for the
- * application.
- *
- */
-
-#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */
-#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */
-
-
-/*
- * Define the interrupt mechanism for Time Test 27
- *
- * NOTE: Use a software interrupt for the i386 family.
- */
-#define MUST_WAIT_FOR_INTERRUPT 0
-#define Install_tm27_vector( handler ) set_vector( (handler), 0x90, 1 )
-#define Cause_tm27_intr() asm volatile( "int $0x90" : : );
-#define Clear_tm27_intr()
-#define Lower_tm27_intr()
-
-/*
- * Simple spin delay in microsecond units for device drivers.
- * This is very dependent on the clock speed of the target.
- */
-
-#define delay( _microseconds ) { \
- rtems_unsigned32 _cnt = (_microseconds); \
- asm volatile ("0: nop; mov %0,%0; loop 0b" : "=c"(_cnt) : "0"(_cnt) ); \
-}
-
-
-/* Constants */
-
-/* Assume color console */
-#define COLOR 1
-#if COLOR
-# define GDC_REG_PORT 0x3d4
-# define GDC_VAL_PORT 0x3d5
-# define TVRAM ((unsigned short *)0xb8000L)
-#else
-# define GDC_REG_PORT 0x3b4
-# define GDC_VAL_PORT 0x3b5
-# define TVRAM ((unsigned short *)0xb0000L)
-#endif
-
-/* White character attribute--works for MGA and CGA */
-#define WHITE 0x07
-
-/* Ports for PC keyboard */
-#define KBD_CTL 0x61
-#define KBD_DATA 0x60
-#define KBD_STATUS 0x64
-
-/* Constants relating to the 8254 (or 8253) programmable interval timers */
- /* Port address of the control port and timer channels */
-/*
- * Macros for specifying values to be written into a mode register.
- */
-#define IO_TIMER1 0x40
-#define TIMER_CNTR0 (IO_TIMER1 + 0) /* timer 0 counter port */
-#define TIMER_CNTR1 (IO_TIMER1 + 1) /* timer 1 counter port */
-#define TIMER_CNTR2 (IO_TIMER1 + 2) /* timer 2 counter port */
-#define TIMER_MODE (IO_TIMER1 + 3) /* timer mode port */
-#define TIMER_SEL0 0x00 /* select counter 0 */
-#define TIMER_SEL1 0x40 /* select counter 1 */
-#define TIMER_SEL2 0x80 /* select counter 2 */
-#define TIMER_INTTC 0x00 /* mode 0, intr on terminal cnt */
-#define TIMER_ONESHOT 0x02 /* mode 1, one shot */
-#define TIMER_RATEGEN 0x04 /* mode 2, rate generator */
-#define TIMER_SQWAVE 0x06 /* mode 3, square wave */
-#define TIMER_SWSTROBE 0x08 /* mode 4, s/w triggered strobe */
-#define TIMER_HWSTROBE 0x0a /* mode 5, h/w triggered strobe */
-#define TIMER_LATCH 0x00 /* latch counter for reading */
-#define TIMER_LSB 0x10 /* r/w counter LSB */
-#define TIMER_MSB 0x20 /* r/w counter MSB */
-#define TIMER_16BIT 0x30 /* r/w counter 16 bits, LSB first */
-#define TIMER_BCD 0x01 /* count in BCD */
-
-#define CLOCK_DISABLE() \
- ({ char mask; inport_byte( 0x21, mask ); outport_byte( 0x21, mask | 1 ); })
-#define CLOCK_ENABLE() \
- ({ char mask; inport_byte( 0x21, mask ); outport_byte( 0x21, mask & ~1); })
-
-/* The internal tick rate in ticks per second */
-#define TIMER_TICK 1193182
-#define US_TO_TICK(us) (((us)*105+44)/88)
-#define TICK_TO_US(tk) (((tk)*88+52)/105)
-
-/* Structures */
-
-#ifdef IBMPC_INIT
-#undef BSP_EXTERN
-#define BSP_EXTERN
-#else
-#undef BSP_EXTERN
-#define BSP_EXTERN extern
-#endif
-
-/*
- * Device Driver Table Entries
- */
-
-/*
- * NOTE: Use the standard Console driver entry
- */
-
-/*
- * NOTE: Use the standard Clock driver entry
- */
-
-/* functions */
-
-int _IBMPC_chrdy( char * ch );
-int _IBMPC_inch( void );
-void _IBMPC_outch( unsigned char );
-
-/* miscellaneous stuff assumed to exist */
-
-extern rtems_configuration_table BSP_Configuration;
-
-/* routines */
-
-i386_isr_entry set_vector(
- rtems_isr_entry handler,
- rtems_vector_number vector,
- int type
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
-
-
diff --git a/c/src/lib/libbsp/i386/go32/include/coverhd.h b/c/src/lib/libbsp/i386/go32/include/coverhd.h
deleted file mode 100644
index ac186a6341..0000000000
--- a/c/src/lib/libbsp/i386/go32/include/coverhd.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* coverhd.h
- *
- * This include file has defines to represent the overhead associated
- * with calling a particular directive from C on this target.
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#ifndef __COVERHD_h
-#define __COVERHD_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0
-#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0
-#define CALLING_OVERHEAD_TASK_CREATE 0
-#define CALLING_OVERHEAD_TASK_IDENT 0
-#define CALLING_OVERHEAD_TASK_START 0
-#define CALLING_OVERHEAD_TASK_RESTART 0
-#define CALLING_OVERHEAD_TASK_DELETE 0
-#define CALLING_OVERHEAD_TASK_SUSPEND 0
-#define CALLING_OVERHEAD_TASK_RESUME 0
-#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0
-#define CALLING_OVERHEAD_TASK_MODE 0
-#define CALLING_OVERHEAD_TASK_GET_NOTE 0
-#define CALLING_OVERHEAD_TASK_SET_NOTE 0
-#define CALLING_OVERHEAD_TASK_WAKE_WHEN 0
-#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0
-#define CALLING_OVERHEAD_INTERRUPT_CATCH 0
-#define CALLING_OVERHEAD_CLOCK_GET 0
-#define CALLING_OVERHEAD_CLOCK_SET 0
-#define CALLING_OVERHEAD_CLOCK_TICK 0
-
-#define CALLING_OVERHEAD_TIMER_CREATE 0
-#define CALLING_OVERHEAD_TIMER_IDENT 0
-#define CALLING_OVERHEAD_TIMER_DELETE 0
-#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 0
-#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 0
-#define CALLING_OVERHEAD_TIMER_RESET 0
-#define CALLING_OVERHEAD_TIMER_CANCEL 0
-#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0
-#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0
-#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0
-#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0
-#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0
-#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0
-
-#define CALLING_OVERHEAD_EVENT_SEND 0
-#define CALLING_OVERHEAD_EVENT_RECEIVE 0
-#define CALLING_OVERHEAD_SIGNAL_CATCH 0
-#define CALLING_OVERHEAD_SIGNAL_SEND 0
-#define CALLING_OVERHEAD_PARTITION_CREATE 0
-#define CALLING_OVERHEAD_PARTITION_IDENT 0
-#define CALLING_OVERHEAD_PARTITION_DELETE 0
-#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0
-#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0
-#define CALLING_OVERHEAD_REGION_CREATE 0
-#define CALLING_OVERHEAD_REGION_IDENT 0
-#define CALLING_OVERHEAD_REGION_DELETE 0
-#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0
-#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0
-#define CALLING_OVERHEAD_PORT_CREATE 0
-#define CALLING_OVERHEAD_PORT_IDENT 0
-#define CALLING_OVERHEAD_PORT_DELETE 0
-#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0
-#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0
-
-#define CALLING_OVERHEAD_IO_INITIALIZE 0
-#define CALLING_OVERHEAD_IO_OPEN 0
-#define CALLING_OVERHEAD_IO_CLOSE 0
-#define CALLING_OVERHEAD_IO_READ 0
-#define CALLING_OVERHEAD_IO_WRITE 0
-#define CALLING_OVERHEAD_IO_CONTROL 0
-#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0
-#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0
-#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0
-#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0
-#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0
-#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0
-#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/c/src/lib/libbsp/i386/go32/startup/Makefile.in b/c/src/lib/libbsp/i386/go32/startup/Makefile.in
deleted file mode 100644
index 12a0ab0cd6..0000000000
--- a/c/src/lib/libbsp/i386/go32/startup/Makefile.in
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = i386/go32/startup
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@:@srcdir@/../../../shared
-
-PGM = ${ARCH}/startup.rel
-
-# C source names, if any, go here -- minus the .c
-C_PIECES = bsplibc bsppost bspstart sbrk setvec gnatinstallhandler
-C_FILES = $(C_PIECES:%=%.c)
-C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
-
-H_FILES =
-
-SRCS = $(C_FILES) $(H_FILES)
-OBJS = $(C_O_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/leaf.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-LDFLAGS +=
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-${PGM}: ${SRCS} ${OBJS}
- $(make-rel)
-all: ${ARCH} $(SRCS) $(PGM)
-
-# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
-install: all
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/libbsp/i386/go32/startup/bspstart.c b/c/src/lib/libbsp/i386/go32/startup/bspstart.c
deleted file mode 100644
index 958591ec8c..0000000000
--- a/c/src/lib/libbsp/i386/go32/startup/bspstart.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * This routine starts the application. It includes application,
- * board, and monitor specific initialization and configuration.
- * The generic CPU dependent initialization has been performed
- * before this routine is invoked.
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <bsp.h>
-#include <rtems/libio.h>
-
-#include <libcsupport.h>
-#include <zilog/z8036.h>
-
-#include <string.h>
-
-/*
- * The original table from the application and our copy of it with
- * some changes.
- */
-
-extern rtems_configuration_table Configuration;
-rtems_configuration_table BSP_Configuration;
-
-rtems_cpu_table Cpu_table;
-
-char *rtems_progname;
-
-/*
- * Use the shared implementations of the following routines
- */
-
-void bsp_postdriver_hook(void);
-void bsp_libc_init( void *, unsigned32, int );
-
-/*
- * Function: bsp_pretasking_hook
- * Created: 95/03/10
- *
- * Description:
- * BSP pretasking hook. Called just before drivers are initialized.
- * Used to setup libc and install any BSP extensions.
- *
- * NOTES:
- * Must not use libc (to do io) from here, since drivers are
- * not yet initialized.
- *
- */
-
-void bsp_pretasking_hook(void)
-{
- rtems_unsigned32 heap_start;
-
-#if 0
- extern int end;
- heap_start = (rtems_unsigned32) &end;
-#else
- void * sbrk( int );
- heap_start = (rtems_unsigned32) sbrk( 64 * 1024 + CPU_ALIGNMENT );
-#endif
- if (heap_start & (CPU_ALIGNMENT-1))
- heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
-
- bsp_libc_init((void *) heap_start, 64 * 1024, 0);
-
-
-#ifdef RTEMS_DEBUG
- rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
-#endif
-}
-
-/*
- * main/bsp_start
- *
- * This routine does the bulk of the system initialization.
- */
-
-/* This is the original command line passed from DOS */
-char ** Go32_Argv;
-
-int main(
- int argc,
- char **argv,
- char **environp
-)
-{
- extern void * sbrk( int );
- extern volatile void _exit( int );
-
- /* Set up arguments that we can access later */
- Go32_Argv = argv;
-
- if ((argc > 0) && argv && argv[0])
- rtems_progname = argv[0];
- else
- rtems_progname = "RTEMS";
-
- Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
- Cpu_table.postdriver_hook = bsp_postdriver_hook;
- Cpu_table.interrupt_table_segment = 0;/* get_ds(); */
- Cpu_table.interrupt_table_offset = (void *)0;
- Cpu_table.interrupt_stack_size = 4096;
-
- BSP_Configuration.work_space_start = sbrk( Configuration.work_space_size );
- if ( BSP_Configuration.work_space_start == 0 ) {
- /* Big trouble */
- int write( int, void *, int );
- char msg[] = "bsp_start() couldn't sbrk() RTEMS work space\n";
- write( 2, msg, sizeof msg - 1 );
- _exit( 1 );
- }
-
- rtems_initialize_executive( &BSP_Configuration, &Cpu_table );
- /* does not return */
-
- /* We only return here if the executive has finished. This happens */
- /* when the task has called exit(). */
- /* At this point we call _exit() which resides in djgcc. */
-
- for (;;)
- _exit( 0 );
-
- /* no cleanup necessary for GO32 */
-
- return 0;
-}
diff --git a/c/src/lib/libbsp/i386/go32/startup/exit.c b/c/src/lib/libbsp/i386/go32/startup/exit.c
deleted file mode 100644
index 057ec24865..0000000000
--- a/c/src/lib/libbsp/i386/go32/startup/exit.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * exit
- *
- * This routine returns control to DOS.
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <rtems.h>
-#include <bsp.h>
-#include <clockdrv.h>
-#include <iodrv.h>
-
-#if 0
-/* Prefer to pick up _exit() in djgcc */
-void _exit( )
-{
- Io_cleanup();
- bsp_cleanup();
-}
-#endif
-
diff --git a/c/src/lib/libbsp/i386/go32/startup/setvec.c b/c/src/lib/libbsp/i386/go32/startup/setvec.c
deleted file mode 100644
index 36e0a34fe4..0000000000
--- a/c/src/lib/libbsp/i386/go32/startup/setvec.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* set_vector
- *
- * This routine installs an interrupt vector under go32.
- *
- * INPUT:
- * handler - interrupt handler entry point
- * vector - vector number
- * type - 0 indicates raw hardware connect
- * 1 indicates RTEMS interrupt connect
- *
- * RETURNS:
- * address of previous interrupt handler
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <rtems.h>
-#include <bsp.h>
-
-#include <dpmi.h>
-#include <go32.h>
-
-i386_isr_entry set_vector( /* returns old vector */
- rtems_isr_entry handler, /* isr routine */
- rtems_vector_number vector, /* vector number */
- int type /* RTEMS or RAW intr */
-)
-{
- i386_isr_entry previous_isr;
-
- if ( type ) {
- rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr);
- } else {
- _CPU_ISR_install_raw_handler( vector, handler, (proc_ptr *)&previous_isr);
- }
- return previous_isr;
-}
-
diff --git a/c/src/lib/libbsp/i386/go32/timer/Makefile.in b/c/src/lib/libbsp/i386/go32/timer/Makefile.in
deleted file mode 100644
index 595950dc2f..0000000000
--- a/c/src/lib/libbsp/i386/go32/timer/Makefile.in
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = i386/go32/timer
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-PGM = ${ARCH}/timer.rel
-
-# C source names, if any, go here -- minus the .c
-C_PIECES = timer
-C_FILES = $(C_PIECES:%=%.c)
-C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
-
-H_FILES =
-
-# Assembly source names, if any, go here -- minus the .S
-S_PIECES = timerisr
-S_FILES = $(S_PIECES:%=%.S)
-S_O_FILES = $(S_FILES:%.S=${ARCH}/%.o)
-
-SRCS = $(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
-OBJS = $(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/leaf.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-LDFLAGS +=
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-${PGM}: ${SRCS} ${OBJS}
- $(make-rel)
-
-all: ${ARCH} $(SRCS) $(PGM)
-
-# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
-install: all
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/libbsp/i386/go32/timer/timer.c b/c/src/lib/libbsp/i386/go32/timer/timer.c
deleted file mode 100644
index 061bbfcbf1..0000000000
--- a/c/src/lib/libbsp/i386/go32/timer/timer.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Timer_init()
- *
- * This routine initializes the timer on the IBM 386.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * NOTE: It is important that the timer start/stop overhead be
- * determined when porting or modifying this code.
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <rtems.h>
-#include <bsp.h>
-
-volatile rtems_unsigned32 Ttimer_val;
-rtems_boolean Timer_driver_Find_average_overhead;
-
-#if defined(pentium)
-static inline unsigned long long rdtsc( void )
-{
- /* Return the value of the on-chip cycle counter. */
- unsigned long long result;
- __asm __volatile( ".byte 0x0F, 0x31" : "=A" (result) );
- return result;
-}
-#else
-#define US_PER_ISR 250
-extern rtems_isr timerisr();
-static rtems_isr_entry Old_Ticker;
-#endif
-
-static void Timer_exit( void )
-{
-#if defined(pentium)
- CLOCK_ENABLE();
-#else /* pentium */
- extern void rtc_set_dos_date( void );
-
- /* reset to DOS value: */
- outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN );
- outport_byte( TIMER_CNTR0, 0 );
- outport_byte( TIMER_CNTR0, 0 );
-
- /* reset time-of-day */
- rtc_set_dos_date();
-
- /* re-enable old handler: assume it was one of ours */
- set_vector( (rtems_isr_entry)Old_Ticker, 0x8, 0 );
-#endif /* pentium */
-}
-
-void Timer_initialize()
-{
- extern int atexit( void (*)(void) );
-
- static int First = 1;
-
- if ( First ) {
- First = 0;
-
- /* Try not to hose the system on return to DOS. */
- atexit( Timer_exit );
-
-#if defined(pentium)
- /* Disable the programmable timer so ticks don't interfere. */
- CLOCK_DISABLE();
-#else /* pentium */
- /* install a timer ISR */
- Old_Ticker = (rtems_isr_entry) set_vector( timerisr, 0x8, 0 );
-
- /* Wait for ISR to be called at least once */
- Ttimer_val = 0;
- while ( Ttimer_val == 0 )
- continue;
-
- /* load timer for US_PER_ISR microsecond period */
- outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN );
- outport_byte( TIMER_CNTR0, US_TO_TICK(US_PER_ISR) >> 0 & 0xff );
- outport_byte( TIMER_CNTR0, US_TO_TICK(US_PER_ISR) >> 8 & 0xff );
-#endif /* PENTIUM */
- }
-#if defined(pentium)
- Ttimer_val = rdtsc(); /* read starting time */
-#else
- /* Wait for ISR to be called at least once */
- asm( "sti" );
- Ttimer_val = 0;
- while ( Ttimer_val == 0 )
- continue;
- Ttimer_val = 0;
-#endif
-}
-
-#define AVG_OVERHEAD 0 /* 0.1 microseconds to start/stop timer. */
-#define LEAST_VALID 1 /* Don't trust a value lower than this */
-
-
-int Read_timer()
-{
- register rtems_unsigned32 total;
-#if defined(pentium)
- total = rdtsc() - Ttimer_val;
-#else /* pentium */
- register rtems_unsigned8 lsb, msb;
- register rtems_unsigned32 clicks;
- outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_LATCH );
- inport_byte( TIMER_CNTR0, lsb );
- inport_byte( TIMER_CNTR0, msb );
- clicks = msb << 8 | lsb;
- total = (Ttimer_val * US_PER_ISR) + (US_PER_ISR - TICK_TO_US( clicks ));
-#endif /* pentium */
-
- if ( Timer_driver_Find_average_overhead == 1 )
- return total;
- else if ( total < LEAST_VALID )
- return 0; /* below timer resolution */
- else
- return total - AVG_OVERHEAD;
-}
-
-rtems_status_code Empty_function( void )
-{
- return RTEMS_SUCCESSFUL;
-}
-
-
-void Set_find_average_overhead(
- rtems_boolean find_flag
-)
-{
- Timer_driver_Find_average_overhead = find_flag;
-}
-
diff --git a/c/src/lib/libbsp/i386/go32/timer/timerisr.S b/c/src/lib/libbsp/i386/go32/timer/timerisr.S
deleted file mode 100644
index 2e9ccf0dc7..0000000000
--- a/c/src/lib/libbsp/i386/go32/timer/timerisr.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* timer_isr()
- *
- * This routine provides the ISR for the timer. The timer is set up
- * to generate an interrupt at maximum intervals.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include "asm.h"
-
- BEGIN_CODE
-
- EXTERN(_Ttimer_val)
-
- PUBLIC(timerisr)
-
-SYM (timerisr):
- addl $1,_Ttimer_val # another tick
- push edx
- push eax
- movw $0x20,dx
- mov edx,eax
- outb al,(dx) # touch interrupt controller
- pop eax
- pop edx
- iret
-
-END_CODE
-END
diff --git a/c/src/lib/libbsp/i386/go32/times_i486dx b/c/src/lib/libbsp/i386/go32/times_i486dx
deleted file mode 100644
index 49601b31d0..0000000000
--- a/c/src/lib/libbsp/i386/go32/times_i486dx
+++ /dev/null
@@ -1,191 +0,0 @@
-#
-# Timing Test Suite Results for the go32 BSP using an i486DX
-#
-# $Id$
-#
-
-Board: PC/AT clone
-CPU: Intel i486DX
-Clock Speed: 33 Mhz
-Memory Configuration: DRAM w/256K cache
-Wait States: unknown
-
-Times Reported in: microseconds
-Timer Source: i8254
-
-Column A: 3.5.1 pre-release
-Column B: 3.5.17 pre-release
-
-# DESCRIPTION A B
-== ================================================================= ==== ====
- 1 rtems_semaphore_create 57 66
- rtems_semaphore_delete 59 61
- rtems_semaphore_obtain: available 9 7
- rtems_semaphore_obtain: not available -- NO_WAIT 8 7
- rtems_semaphore_release: no waiting tasks 9 8
-
- 2 rtems_semaphore_obtain: not available -- caller blocks 39 37
-
- 3 rtems_semaphore_release: task readied -- preempts caller 25 24
-
- 4 rtems_task_restart: blocked task -- preempts caller 124 102
- rtems_task_restart: ready task -- preempts caller 55 111
- rtems_semaphore_release: task readied -- returns to caller 16 15
- rtems_task_create 31 30
- rtems_task_start 19 18
- rtems_task_restart: suspended task -- returns to caller 20 19
- rtems_task_delete: suspended task 28 26
- rtems_task_restart: ready task -- returns to caller 20 19
- rtems_task_restart: blocked task -- returns to caller 28 26
- rtems_task_delete: blocked task 34 28
-
- 5 rtems_task_suspend: calling task 26 23
- rtems_task_resume: task readied -- preempts caller 17 15
-
- 6 rtems_task_restart: calling task 22 19
- rtems_task_suspend: returns to caller 10 8
- rtems_task_resume: task readied -- returns to caller 10 8
- rtems_task_delete: ready task 34 33
-
- 7 rtems_task_restart: suspended task -- preempts caller 37 34
-
- 8 rtems_task_set_priority: obtain current priority 7 5
- rtems_task_set_priority: returns to caller 13 12
- rtems_task_mode: obtain current mode 3 3
- rtems_task_mode: no reschedule 4 4
- rtems_task_mode: reschedule -- returns to caller 20 17
- rtems_task_mode: reschedule -- preempts caller 39 37
- rtems_task_set_note 7 5
- rtems_task_get_note 7 5
- rtems_clock_set 17 16
- rtems_clock_get 2 1
-
- 9 rtems_message_queue_create 117 113
- rtems_message_queue_send: no waiting tasks 22 19
- rtems_message_queue_urgent: no waiting tasks 22 19
- rtems_message_queue_receive: available 18 16
- rtems_message_queue_flush: no messages flushed 15 14
- rtems_message_queue_flush: messages flushed 17 17
- rtems_message_queue_delete 63 63
-
-10 rtems_message_queue_receive: not available -- NO_WAIT 10 8
- rtems_message_queue_receive: not available -- caller blocks 42 40
-
-11 rtems_message_queue_send: task readied -- preempts caller 38 37
-
-12 rtems_message_queue_send: task readied -- returns to caller 27 24
-
-13 rtems_message_queue_urgent: task readied -- preempts caller 38 36
-
-14 rtems_message_queue_urgent: task readied -- returns to caller 26 24
-
-15 rtems_event_receive: obtain current events 0 0
- rtems_event_receive: not available -- NO_WAIT 6 5
- rtems_event_receive: not available -- caller blocks 34 33
- rtems_event_send: no task readied 6 5
- rtems_event_receive: available 21 19
- rtems_event_send: task readied -- returns to caller 19 15
-
-16 rtems_event_send: task readied -- preempts caller 26 24
-
-17 rtems_task_set_priority: preempts caller 36 33
-
-18 rtems_task_delete: calling task 51 52
-
-19 rtems_signal_catch 17 18
- rtems_signal_send: returns to caller 38 39
- rtems_signal_send: signal to self 46 62
- exit ASR overhead: returns to calling task 20 25
- exit ASR overhead: returns to preempting task 29 29
-
-20 rtems_partition_create 65 67
- rtems_region_create 59 54
- rtems_partition_get_buffer: available 39 35
- rtems_partition_get_buffer: not available 18 16
- rtems_partition_return_buffer 36 30
- rtems_partition_delete 32 30
- rtems_region_get_segment: available 22 21
- rtems_region_get_segment: not available -- NO_WAIT 29 25
- rtems_region_return_segment: no waiting tasks 24 22
- rtems_region_get_segment: not available -- caller blocks 83 81
- rtems_region_return_segment: task readied -- preempts caller 85 84
- rtems_region_return_segment: task readied -- returns to caller 39 41
- rtems_region_delete 30 30
- rtems_io_initialize 1 1
- rtems_io_open 0 0
- rtems_io_close 0 0
- rtems_io_read 0 0
- rtems_io_write 0 0
- rtems_io_control 0 1
-
-21 rtems_task_ident 116 114
- rtems_message_queue_ident 113 111
- rtems_semaphore_ident 122 120
- rtems_partition_ident 113 110
- rtems_region_ident 115 111
- rtems_port_ident 113 109
- rtems_timer_ident 113 109
- rtems_rate_monotonic_ident 113 111
-
-22 rtems_message_queue_broadcast: task readied -- returns to caller 82 85
- rtems_message_queue_broadcast: no waiting tasks 11 9
- rtems_message_queue_broadcast: task readied -- preempts caller 51 56
-
-23 rtems_timer_create 8 7
- rtems_timer_fire_after: inactive 14 12
- rtems_timer_fire_after: active 13 12
- rtems_timer_cancel: active 8 7
- rtems_timer_cancel: inactive 7 6
- rtems_timer_reset: inactive 11 10
- rtems_timer_reset: active 11 11
- rtems_timer_fire_when: inactive 17 16
- rtems_timer_fire_when: active 17 17
- rtems_timer_delete: active 10 9
- rtems_timer_delete: inactive 9 8
- rtems_task_wake_when 36 34
-
-24 rtems_task_wake_after: yield -- returns to caller 5 3
- rtems_task_wake_after: yields -- preempts caller 22 19
-
-25 rtems_clock_tick 31 31
-
-26 _ISR_Disable 11 12
- _ISR_Flash 9 9
- _ISR_Enable 31 67
- _Thread_Disable_dispatch 11 10
- _Thread_Enable_dispatch 18 18
- _Thread_Set_state 20 22
- _Thread_Disptach (NO FP) 37 41
- context switch: no floating point contexts 29 26
- context switch: self 14 10
- context switch: to another task 12 12
- context switch: restore 1st FP task 54 54
- fp context switch: save idle, restore idle 47 46
- fp context switch: save idle, restore initialized 25 25
- fp context switch: save initialized, restore initialized 24 25
- _Thread_Resume 23 24
- _Thread_Unblock 14 14
- _Thread_Ready 16 24
- _Thread_Get 2 2
- _Semaphore_Get 1 1
- _Thread_Get: invalid id 0 0
-
-27 interrupt entry overhead: returns to interrupted task 25 23
- interrupt exit overhead: returns to interrupted task 14 15
- interrupt entry overhead: returns to nested interrupt 12 12
- interrupt exit overhead: returns to nested interrupt 14 14
- interrupt entry overhead: returns to preempting task 14 16
- interrupt exit overhead: returns to preempting task 42 38
-
-28 rtems_port_create 43 42
- rtems_port_external_to_internal 6 4
- rtems_port_internal_to_external 6 4
- rtems_port_delete 39 33
-
-29 rtems_rate_monotonic_create 48 42
- rtems_rate_monotonic_period: initiate period -- returns to caller 61 65
- rtems_rate_monotonic_period: obtain status 23 21
- rtems_rate_monotonic_cancel 38 35
- rtems_rate_monotonic_delete: inactive 32 32
- rtems_rate_monotonic_delete: active 22 22
- rtems_rate_monotonic_period: conclude periods -- caller blocks 24 19
diff --git a/c/src/lib/libbsp/i386/go32/times_p5 b/c/src/lib/libbsp/i386/go32/times_p5
deleted file mode 100644
index 977c4ec482..0000000000
--- a/c/src/lib/libbsp/i386/go32/times_p5
+++ /dev/null
@@ -1,196 +0,0 @@
-#
-# Timing Test Suite Results for the go32 BSP using a Pentium
-#
-# $Id$
-#
-
-NOTE: To obtain the execution time in microseconds, divide the number of
- cycles by the clock speed. For example, if rtems_semaphore create
- is reported to be 1164 cycles, then at 66 Mhz it takes 17.64
- microseconds or 8.75 microseconds at 133 Mhz.
-
-Board: PC/AT clone
-CPU: Intel Pentium
-Clock Speed: 66 Mhz
-Memory Configuration: DRAM w/512 Kb cache
-Wait States: unknown
-
-Times Reported in: cycles
-Timer Source: on-CPU cycle counter
-
-Column A: 3.5.1 pre-release
-Column Y: unused
-
-# DESCRIPTION A B
-== ================================================================= ==== ====
- 1 rtems_semaphore_create 1164
- rtems_semaphore_delete 976
- rtems_semaphore_obtain: available 300
- rtems_semaphore_obtain: not available -- NO_WAIT 300
- rtems_semaphore_release: no waiting tasks 291
-
- 2 rtems_semaphore_obtain: not available -- caller blocks 1182
-
- 3 rtems_semaphore_release: task readied -- preempts caller 716
-
- 4 rtems_task_restart: blocked task -- preempts caller 2130
- rtems_task_restart: ready task -- preempts caller 1861
- rtems_semaphore_release: task readied -- returns to caller 491
- rtems_task_create 1017
- rtems_task_start 965
- rtems_task_restart: suspended task -- returns to caller 816
- rtems_task_delete: suspended task 926
- rtems_task_restart: ready task -- returns to caller 850
- rtems_task_restart: blocked task -- returns to caller 1076
- rtems_task_delete: blocked task 927
-
- 5 rtems_task_suspend: calling task 714
- rtems_task_resume: task readied -- preempts caller 575
-
- 6 rtems_task_restart: calling task 646
- rtems_task_suspend: returns to caller 309
- rtems_task_resume: task readied -- returns to caller 320
- rtems_task_delete: ready task 994
-
- 7 rtems_task_restart: suspended task -- preempts caller 1025
-
- 8 rtems_task_set_priority: obtain current priority 223
- rtems_task_set_priority: returns to caller 468
- rtems_task_mode: obtain current mode 99
- rtems_task_mode: no reschedule 114
- rtems_task_mode: reschedule -- returns to caller 264
- rtems_task_mode: reschedule -- preempts caller 836
- rtems_task_set_note 236
- rtems_task_get_note 232
- rtems_clock_set 569
- rtems_clock_get 107
-
- 9 rtems_message_queue_create 3287
- rtems_message_queue_send: no waiting tasks 613
- rtems_message_queue_urgent: no waiting tasks 615
- rtems_message_queue_receive: available 534
- rtems_message_queue_flush: no messages flushed 252
- rtems_message_queue_flush: messages flushed 335
- rtems_message_queue_delete 1195
-
-10 rtems_message_queue_receive: not available -- NO_WAIT 333
- rtems_message_queue_receive: not available -- caller blocks 1194
-
-11 rtems_message_queue_send: task readied -- preempts caller 957
-
-12 rtems_message_queue_send: task readied -- returns to caller 700
-
-13 rtems_message_queue_urgent: task readied -- preempts caller 1261
-
-14 rtems_message_queue_urgent: task readied -- returns to caller 697
-
-15 rtems_event_receive: obtain current events 27
- rtems_event_receive: not available -- NO_WAIT 226
- rtems_event_receive: not available -- caller blocks 888
- rtems_event_send: no task readied 221
- rtems_event_receive: available 393
- rtems_event_send: task readied -- returns to caller 496
-
-16 rtems_event_send: task readied -- preempts caller 719
-
-17 rtems_task_set_priority: preempts caller 959
-
-18 rtems_task_delete: calling task 1295
-
-19 rtems_signal_catch 223
- rtems_signal_send: returns to caller 628
- rtems_signal_send: signal to self 821
- exit ASR overhead: returns to calling task 401
- exit ASR overhead: returns to preempting task 482
-
-20 rtems_partition_create 1337
- rtems_region_create 1031
- rtems_partition_get_buffer: available 680
- rtems_partition_get_buffer: not available 303
- rtems_partition_return_buffer 617
- rtems_partition_delete 523
- rtems_region_get_segment: available 458
- rtems_region_get_segment: not available -- NO_WAIT 565
- rtems_region_return_segment: no waiting tasks 388
- rtems_region_get_segment: not available -- caller blocks 1683
- rtems_region_return_segment: task readied -- preempts caller 1476
- rtems_region_return_segment: task readied -- returns to caller 818
- rtems_region_delete 477
- rtems_io_initialize 48
- rtems_io_open 22
- rtems_io_close 22
- rtems_io_read 22
- rtems_io_write 22
- rtems_io_control 23
-
-21 rtems_task_ident 3381
- rtems_message_queue_ident 3328
- rtems_semaphore_ident 3593
- rtems_partition_ident 3286
- rtems_region_ident 3343
- rtems_port_ident 3278
- rtems_timer_ident 3282
- rtems_rate_monotonic_ident 3287
-
-22 rtems_message_queue_broadcast: task readied -- returns to caller 1322
- rtems_message_queue_broadcast: no waiting tasks 347
- rtems_message_queue_broadcast: task readied -- preempts caller 1385
-
-23 rtems_timer_create 306
- rtems_timer_fire_after: inactive 475
- rtems_timer_fire_after: active 475
- rtems_timer_cancel: active 277
- rtems_timer_cancel: inactive 251
- rtems_timer_reset: inactive 391
- rtems_timer_reset: active 465
- rtems_timer_fire_when: inactive 577
- rtems_timer_fire_when: active 578
- rtems_timer_delete: active 377
- rtems_timer_delete: inactive 350
- rtems_task_wake_when 1080
-
-24 rtems_task_wake_after: yield -- returns to caller 159
- rtems_task_wake_after: yields -- preempts caller 574
-
-25 rtems_clock_tick 505
-
-26 _ISR_Disable 33
- _ISR_Flash 33
- _ISR_Enable 26
- _Thread_Disable_dispatch 36
- _Thread_Enable_dispatch 240
- _Thread_Set_state 315
- _Thread_Disptach (NO FP) 623
- context switch: no floating point contexts 594
- context switch: self 89
- context switch: to another task 122
- context switch: restore 1st FP task 1043
- fp context switch: save idle, restore idle 978
- fp context switch: save idle, restore initialized 390
- fp context switch: save initialized, restore initialized 392
- _Thread_Resume 238
- _Thread_Unblock 171
- _Thread_Ready 176
- _Thread_Get 71
- _Semaphore_Get 61
- _Thread_Get: invalid id 10
-
-27 interrupt entry overhead: returns to interrupted task 391
- interrupt exit overhead: returns to interrupted task 110
- interrupt entry overhead: returns to nested interrupt 167
- interrupt exit overhead: returns to nested interrupt 120
- interrupt entry overhead: returns to preempting task 193
- interrupt exit overhead: returns to preempting task 961
-
-28 rtems_port_create 668
- rtems_port_external_to_internal 215
- rtems_port_internal_to_external 211
- rtems_port_delete 491
-
-29 rtems_rate_monotonic_create 823
- rtems_rate_monotonic_period: initiate period -- returns to caller 1094
- rtems_rate_monotonic_period: obtain status 345
- rtems_rate_monotonic_cancel 602
- rtems_rate_monotonic_delete: inactive 553
- rtems_rate_monotonic_delete: active 528
- rtems_rate_monotonic_period: conclude periods -- caller blocks 672
diff --git a/c/src/lib/libbsp/i386/go32/wrapup/Makefile.in b/c/src/lib/libbsp/i386/go32/wrapup/Makefile.in
deleted file mode 100644
index c4d379742a..0000000000
--- a/c/src/lib/libbsp/i386/go32/wrapup/Makefile.in
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ../../..
-subdir = i386/go32/wrapup
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-BSP_PIECES = startup clock console timer
-GENERIC_PIECES =
-
-# bummer; have to use $foreach since % pattern subst rules only replace 1x
-OBJS = $(foreach piece, $(BSP_PIECES), $(wildcard ../$(piece)/$(ARCH)/*.o)) \
- $(foreach piece, $(GENERIC_PIECES), \
- ../../../$(piece)/$(ARCH)/$(piece).rel)
-LIB = $(ARCH)/libbsp.a
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/lib.cfg
-
-INSTALL = @INSTALL@
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-LDFLAGS +=
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-$(LIB): ${OBJS}
- $(make-library)
-
-all: ${ARCH} $(SRCS) $(LIB)
- $(INSTALL_VARIANT) -m 644 $(LIB) $(PROJECT_RELEASE)/lib
-
-install: all
-
-$(PROJECT_ROOT)/@RTEMS_BSP@/lib/bsp_specs: ../bsp_specs
- $(INSTALL_DATA) $< $@
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status