home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 3 / BBS in a box - Trilogy III.iso / Files / Prog / D-G / Driver 2.2 / driver.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-23  |  1.6 KB  |  44 lines  |  [TEXT/KAHL]

  1. /* driver.h 2.2 - Useful declarations for driver.c. By Pete Resnick */
  2.  
  3. #ifndef __DRIVER__
  4. #define __DRIVER__
  5.  
  6. /* Flags for InstallRAMDriver and RemoveRAMDriver. Add together */
  7. typedef enum {
  8.     open = 0x01,        /* Open the driver after installed */
  9.     thinkDATA = 0x02,    /* Driver uses THINK C, therefore uses DATA rsrc */
  10.     thinkMulSeg = 0x04    /* Driver uses THINK C multi-segment DCOD rsrc's */
  11. } drvrFlagBits;
  12.  
  13. /* Structure of the driver resource */
  14. typedef struct {
  15.     short drvrFlags;
  16.     short drvrDelay;
  17.     short drvrEMask;
  18.     short drvrMenu;
  19.     short drvrOpen;
  20.     short drvrPrime;
  21.     short drvrCtl;
  22.     short drvrStatus;
  23.     short drvrClose;
  24.     unsigned char drvrName[];
  25.     unsigned char drvrRoutines[];
  26. } DriverStruct, *DriverPtr, **DriverHandle;
  27.  
  28. /* These two routines are the ones you want to call */
  29. OSErr InstallRAMDriver(Str255 drvrName, short *refNum, drvrFlagBits drvrInstFlags);
  30. OSErr RemoveRAMDriver(short refNum, drvrFlagBits drvrRmvFlags);
  31.  
  32. /* These are used internally but might be useful in unusual circumstances */
  33. short GetDrvrRefNum(Str255 drvrName);
  34. OSErr GrowUTable(short newEntries);
  35. OSErr DriverAvail(short *unitNum);
  36. OSErr Get1SysXRsrc(Handle *rsrcHndl, ResType rsrcType, short rsrcID, short rsrcInd, StringPtr rsrcName);
  37. Boolean PtrInZone(THz theZone, Ptr thePtr);
  38. OSErr ThinkInit(Handle drvrHandle, short rsrcID, short unitNum, drvrFlagBits drvrInstFlags);
  39. OSErr ThinkChangeCode(Handle drvrHandle, Ptr codePtr, ResType theType);
  40. OSErr ThinkAddRsrcs(Handle codeHandle, ResType theType, short rsrcID, short unitNum);
  41. void ThinkCleanup(Handle drvrHandle, Boolean rmvDATA);
  42. void ThinkRmvRsrcs(Ptr codePtr, Boolean isHandle, Boolean rmvDATA);
  43.  
  44. #endif /* __DRIVER__ */