This is NetBSD.h in view mode; [Download] [Up]
/* NetBSD.h based on original - 386-bsd.h Hacked September/93 by Paul F. Werkowsksi for 386BSD. Tested on i486 EISA 16MB hardware/386BSD 0.1 + PatchKit 0.2.4 * gcc-2.3.3 * SGC enabled (big performance win but needs a small kernel hack) * Files in September-16-92-Systems.tar (PCL clcs loop clx) compile & run. CLUE also compiles and runs. 16 MB insufficient memory to compile CLIO. Hacked November/93 by Werkowski for FreeBSD. Essentially no changes except to use 'unexlin.c' instead of 'unixsave.c'. FreeBSD 1.0.2 has (at this time 17-Nov-93) a bug in stdio that needs repair before this will work - otherwise use libc.a from 386bsd pk2.4. The 'bug' is that vfprintf prints out a 0l0 as ' 0e+00' while akcl edit_double in print.d expects something like ' 0.00000000000e+00'. Richard Tobin <richard@castle.ed.ac.uk> ported akcl-1.619 to NetBSD 0.9 Bill Morgart <wsm@morticia.ssw.com> 10/19/94 Ported gcl-1.0 to NetBSD 1.0Beta Modified gcl-1.1 for NetBSD 1.0Beta (static linked) */ #include "bsd.h" /*#include "386.h" /* NOT if you want this to work on 386bsd!!!*/ #define ADDITIONAL_FEATURES \ ADD_FEATURE("386BSD");\ ADD_FEATURE("NetBSD");\ ADD_FEATURE("CLX-LITTLE-ENDIAN"); #define I386 /* ?? this is apparently not used anywhere */ #define IEEEFLOAT /* NetBSD stdio is based on chris torek's work, no setbuf */ #define NO_SETBUF #define setup_stream_buffer(x) #define deallocate_stream_buffer(x) #undef HAVE_XDR #define USE_ATT_TIME /* begin listen for input */ #undef LISTEN_FOR_INPUT /* default in bsd.h is loser in 386bsd */ #define LISTEN_FOR_INPUT(fp) \ if((fp)->_r <=0 && (c=0,ioctl((fp)->_file, FIONREAD, &c),c<=0)) \ return 0; /* end listen for input */ /* begin stuff for dumping and reloading */ #define DATA_BEGIN (char *)N_DATADDR(header); #define A_TEXT_OFFSET(x) (sizeof (struct exec)) #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) #define start_of_data() &etext #define start_of_text() ((char *)(sizeof(struct exec) + getpagesize())) #define UNIXSAVE "unexec.c" #ifdef UNIXSAVE extern char *etext; #endif #define RELOC_FILE "rel_sun3.c" /* for SFASL - enabled in bsd.h */ /* end stuff for dumping and reloading */ /* begin setup alternate signal stack */ #define SIG_STACK_SIZE SIGSTKSZ #define SETUP_SIG_STACK \ { static struct sigaltstack estack ; \ estack.ss_size = sizeof(estack_buf) ; \ estack.ss_flags = 0; \ estack.ss_base = (char *) &estack_buf[SIG_STACK_SIZE-1]; \ if (sigaltstack(&estack, (struct sigaltstack *)0) < 0) \ perror("sigaltstack");} \ /* end setup signal stack */ #define HZ 60 /* begin for GC */ #define PAGEWIDTH 12 /* i386 sees 4096 byte pages */ #define HARDWARE_PAGESIZE (1 << PAGEWIDTH) /* end for GC */ /* begin read_header */ #undef READ_HEADER #define READ_HEADER \ fread(&header, sizeof(header), 1, original); \ data_begin=DATA_BEGIN; \ { \ int extra = ((int)sbrk(0) & (HARDWARE_PAGESIZE - 1)); \ if(extra != 0) \ sbrk(HARDWARE_PAGESIZE - extra); \ } \ data_end = sbrk(0); \ original_data = header.a_data; \ header.a_data = data_end - data_begin; \ header.a_bss = 0; \ fwrite(&header, sizeof(header), 1, save); \ fflush(save); /* end read header */ #define INSTALL_SEGMENTATION_CATCHER \ (void) signal(SIGSEGV,segmentation_catcher); \ (void) signal(SIGBUS,segmentation_catcher) /* yes we have alloca */ #define HAVE_ALLOCA
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.