home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / devel / lisp / akcl_lin.z / akcl_lin / h / linux.h < prev   
Encoding:
C/C++ Source or Header  |  1993-04-26  |  2.9 KB  |  120 lines

  1. #define MP386
  2. #include "att.h"
  3. #include "386.h"
  4.  
  5. #undef exec
  6. #undef a_text
  7. #undef a_data
  8. #undef a_bss
  9.  
  10. #undef MAXPAGE
  11. #define MAXPAGE 7000
  12. #define    IEEEFLOAT
  13.   
  14. #define I386
  15.  
  16. #define ADDITIONAL_FEATURES \
  17.              ADD_FEATURE("I386"); ADD_FEATURE("SYSTEM-V")
  18.   
  19. #undef SET_REAL_MAXPAGE  
  20. #define SET_REAL_MAXPAGE \
  21.     real_maxpage= ulimit(3)/PAGESIZE; \
  22.     if (real_maxpage > MAXPAGE) \
  23.         real_maxpage = MAXPAGE;
  24.  
  25. /* include some low level routines for maxima */
  26. /*#define CMAC*/
  27.  
  28. #undef NEED_GETWD
  29. #undef  LISTEN_FOR_INPUT
  30. #define LISTEN_FOR_INPUT(fp) \
  31.   if((fp)->_gptr >= (fp)->_egptr && (c=0,ioctl(fileno(fp), FIONREAD, &c),c<=0)) \
  32.      return 0
  33. #undef HAVE_AOUT
  34. #define HAVE_AOUT <a.out.h>
  35. #undef MEM_SAVE_LOCALS
  36. #define MEM_SAVE_LOCALS    \
  37.   struct exec header;\
  38.   int stsize
  39.  
  40. #undef READ_HEADER
  41. #define READ_HEADER     fread(&header, sizeof(header), 1, original); \
  42.     data_begin=(char *)N_DATADDR(header);\
  43.     data_end = core_end; \
  44.     original_data = header.a_data; \
  45.     header.a_data = data_end - data_begin; \
  46.     header.a_bss = 0; \
  47.     fwrite(&header, sizeof(header), 1, save);
  48.  
  49. #undef FILECPY_HEADER
  50. #define FILECPY_HEADER \
  51.     filecpy(save, original, header.a_text - sizeof(header));
  52.  
  53. #undef COPY_TO_SAVE
  54. #define  COPY_TO_SAVE \
  55.   filecpy(save, original, header.a_syms+header.a_trsize+header.a_drsize); \
  56.   fread(&stsize, sizeof(stsize), 1, original); \
  57.   fwrite(&stsize, sizeof(stsize), 1, save); \
  58. filecpy(save, original, stsize - sizeof(stsize))
  59.  
  60.  
  61. #undef SET_REAL_MAXPAGE
  62. #define SET_REAL_MAXPAGE real_maxpage = MAXPAGE ;\
  63.          getrlimit(RLIMIT_DATA, &data_rlimit); \
  64.     real_maxpage = ((unsigned int)&etext + data_rlimit.rlim_cur)/PAGESIZE; \
  65.     if (real_maxpage > MAXPAGE) \
  66.         real_maxpage = MAXPAGE
  67.      
  68. #undef ROUND_UP_SBRK
  69. #define ROUND_UP_SBRK(x)  \
  70.        do {int i; \
  71.          if (i = ((int)x & (PAGESIZE - 1))) \
  72.            x=sbrk(PAGESIZE - i); } while(0);
  73.  
  74. #undef FIX_RANDOM_SBRK
  75. #define FIX_RANDOM_SBRK \
  76. do {char *x=sbrk(0); \
  77.   if (core_end != x) \
  78.    { ROUND_UP_SBRK(x); x=sbrk(0);\
  79.      while (core_end < x) \
  80.        { type_map[page(core_end)]= t_other; \
  81.      core_end = core_end + PAGESIZE;} \
  82.      if (core_end !=x) error("Someone allocated my memory");}} while (0)
  83.  
  84.  
  85. #undef INIT_ALLOC     
  86. #define INIT_ALLOC \
  87.          heap_end = sbrk(0); ROUND_UP_SBRK(heap_end);\
  88.     heap_end = core_end = sbrk(0);
  89.  
  90. #undef IF_ALLOCATE_ERR
  91. #define IF_ALLOCATE_ERR \
  92.         FIX_RANDOM_SBRK; \
  93.     if (core_end != sbrk(PAGESIZE*(n - m)))
  94.  
  95. #undef SYM_EXTERNAL_P
  96. #define SYM_EXTERNAL_P(sym) ((sym)->n_type & N_EXT)
  97.      
  98.  
  99. #undef LD_COMMAND
  100. #define LD_COMMAND(command,main,start,input,ldarg,output) \
  101.   sprintf(command, "ld -static -d -N -x -A %s -T %x %s %s -o %s", \
  102.             main,start,input,ldarg,output)
  103.  
  104. #undef SYM_UNDEF_P
  105. #define SYM_UNDEF_P(sym) ((N_SECTION(sym)) == N_UNDEF)
  106. #undef NUM_AUX
  107. #define NUM_AUX(sym) 0
  108.  
  109.        /* the section like N_ABS,N_TEXT,.. */
  110.  
  111.  
  112. /* Begin for cmpinclude */
  113.  
  114.  
  115. /* End for cmpinclude */
  116. #define UNIXSAVE "unexec.c"
  117. #define NO_REMAP
  118. #define RELOC_FILE "rel_sun3.c"
  119. #define CMAC
  120.