home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / CLISP-1.LHA / CLISP960530-sr.lha / amiga / jchlib / startup / defs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-15  |  1.9 KB  |  68 lines

  1. /* Tiny GCC Library
  2.  * Jörg Höhle, 21-Jul-94
  3.  */
  4.  
  5. #include <exec/types.h>
  6. #include <exec/execbase.h>
  7. #include <libraries/dosextens.h>
  8. #include <workbench/startup.h>
  9.  
  10. /* dbra-optimized version that works with with int vars for gcc1.40,2.33,2.5x,2.6 */
  11. #define dotimes(dotimesvar,num,statement)  \
  12. { dotimesvar = (num);                 \
  13.   if (!(dotimesvar==0))                \
  14.     { dotimesvar--;                     \
  15.       do {statement}                     \
  16.          while ((int)(--dotimesvar)!=-1); \
  17. }   }
  18.  
  19. #define bcopy(from,to,num)  \
  20. { register char* top = (to);          \
  21.   register const char* fromp = (from); \
  22.   register int bcopycount;              \
  23.   dotimes(bcopycount,(num),              \
  24.       { *top++ = *fromp++; } );       \
  25. }
  26.  
  27. /* integrated version, but num mustn't be 0 */
  28. #define nzbcopy(from,to,num)  \
  29. { register char* top = (to);          \
  30.   register const char* fromp = (from); \
  31.   register int bcopycount = (num)-1;    \
  32.   do { *top++ = *fromp++; }              \
  33.      while (--bcopycount!=-1);            \
  34. }
  35.  
  36. #define alloca __builtin_alloca
  37. #if __GNUC__ >= 2
  38. #define strlen __builtin_strlen
  39. #endif
  40.  
  41. volatile void exit(int);
  42. int main(int argc, char ** argv);
  43. void wbmain(struct WBStartup * wbmsg);
  44. int _tokenize(volatile char * copy, int len);
  45. void _dumpargs(char * copy, char ** argv, int argc);
  46. int strlen (const char *);
  47.  
  48. /* debugging only */
  49. #ifdef DEBUG
  50. /* Use as D(ebug("%ld\n",number)); */
  51. #define ebug kprintf
  52. #define D(thing) thing
  53. #else
  54. #define D(thing)
  55. #endif
  56.  
  57. /* Variables defined by startup */
  58. extern struct ExecBase * SysBase;    /* main.c */
  59. extern struct DosLibrary * DOSBase;    /* main.c */
  60. extern struct WBStartup * WBenchMsg;    /* main.c */
  61. extern BPTR _WBOrigDir;            /* exit.c */
  62. extern BPTR Input_handle;        /* clisp.c */
  63. extern BPTR Output_handle;        /* clisp.c */
  64. extern BOOL _Close_Input;        /* exit.c */
  65. extern BOOL _Close_Output;        /* exit.c */
  66. extern UWORD _OS_Version;        /* main.c */
  67. /*extern struct Library * IconBase     * wbmain.c */
  68.