home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 6 / Sonderheft_6-96.iso / pd / libraries / wbstart / src / wbstart.h < prev   
C/C++ Source or Header  |  1996-11-03  |  3KB  |  87 lines

  1. /*
  2.  * wbstart.h  V2.2
  3.  *
  4.  * Main include file
  5.  *
  6.  * (c) 1991-1996 Stefan Becker
  7.  */
  8.  
  9. /* OS include files */
  10. #include <dos/dos.h>
  11. #include <dos/dostags.h>
  12. #include <exec/libraries.h>
  13. #include <exec/memory.h>
  14. #include <exec/resident.h>
  15. #include <exec/semaphores.h>
  16. #include <libraries/dospath.h>
  17. #include <libraries/wbstart.h>
  18. #include <workbench/startup.h>
  19. #include <workbench/workbench.h>
  20.  
  21. /* OS function prototypes */
  22. #include <clib/alib_protos.h>
  23. #include <clib/dos_protos.h>
  24. #include <clib/dospath_protos.h>
  25. #include <clib/exec_protos.h>
  26. #include <clib/icon_protos.h>
  27. #include <clib/utility_protos.h>
  28.  
  29. /* OS function inline calls */
  30. #include <pragmas/dos_pragmas.h>
  31. #include <pragmas/dospath_pragmas.h>
  32. #include <pragmas/exec_pragmas.h>
  33. #include <pragmas/icon_pragmas.h>
  34. #include <pragmas/utility_pragmas.h>
  35.  
  36. /* ANSI C include files */
  37. #include <string.h>
  38.  
  39. /* Revision number */
  40. #define WBSTART_REVISION 2
  41.  
  42. /* Handler states */
  43. #define WBSTART_HANDLER_INACTIVE 0
  44. #define WBSTART_HANDLER_RUNNING  1
  45.  
  46. /* Library base */
  47. struct WBStartBase {
  48.  struct Library          wbsb_Library;     /* Library node                   */
  49.  UWORD                   wbsb_State;       /* Handler state                  */
  50.  BPTR                    wbsb_Segment;     /* Library segment list           */
  51.  struct Process         *wbsb_Process;     /* Pointer to handler process     */
  52.  struct MsgPort         *wbsb_Port;        /* Pointer to handler msg port    */
  53.  struct SignalSemaphore  wbsb_Semaphore;   /* Semaphore to lock Library Base */
  54.  UWORD                   wbsb_Pad1;        /* Long word alignment            */
  55.  struct MsgPort          wbsb_ReplyPort;   /* Common reply port              */
  56.  UWORD                   wbsb_Pad2;        /* Long word alignment            */
  57.  struct Message          wbsb_Message;     /* Common message                 */
  58. };
  59.  
  60. /* Global data */
  61. extern struct Library     *DOSBase;
  62. extern struct Library     *IconBase;
  63. extern struct Library     *SysBase;
  64. extern struct Library     *UtilityBase;
  65. extern struct WBStartBase *WBStartBase;
  66. extern const char          DosName[];
  67.  
  68. /* Function prototypes */
  69. void  WBStartHandler(void);
  70. BOOL  InitMemory(void);
  71. void  DeleteMemory(void);
  72. void *AllocateMemory(ULONG);
  73. void  FreeMemory(void *);
  74. void  InstallWorkbenchPath(void);
  75. void  RemoveWorkbenchPath(void);
  76. BPTR  ScanLoadPath(char *, BPTR);
  77. LONG  StartProgram(struct TagItem *);
  78. void  FreeProcessData(struct Message *, BOOL);
  79.  
  80. /* Debugging */
  81. #ifdef DEBUG
  82. void kprintf(char *, ...);
  83. #define DEBUGLOG(x) x
  84. #else
  85. #define DEBUGLOG(X)
  86. #endif
  87.