home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / HDDRV_40.LZH / HDDRIVER / XHDI-125.ZOO / xhdi.h < prev    next >
C/C++ Source or Header  |  1994-10-02  |  4KB  |  148 lines

  1. /*
  2.     @(#)XHDI/xhdi.h
  3.     
  4.     Julian F. Reschke, 2. Oktober 1994
  5.     
  6.      Bindings for the XHDI functions
  7.     --- NOT FULLY TESTED, USE AT YOUR OWN RISK ---
  8.  
  9.     Important:
  10.     
  11.     Do calls only if XHGetVersion() was successful
  12. */
  13.  
  14. #ifndef __XHDI__
  15. #define __XHDI__
  16.  
  17. #ifndef BPB
  18. #include <tos.h>
  19. #endif
  20.  
  21. #ifndef UWORD
  22. #define UWORD unsigned int
  23. #endif
  24.  
  25. #ifndef LONG
  26. #define LONG long
  27. #endif
  28.  
  29. #ifndef ULONG
  30. #define ULONG unsigned long
  31. #endif
  32.  
  33. #define XH_TARGET_STOPPABLE 0x00000001L
  34. #define XH_TARGET_REMOVABLE 0x00000002L
  35. #define XH_TARGET_LOCKABLE  0x00000004L
  36. #define XH_TARGET_EJECTABLE 0x00000008L
  37. #define XH_TARGET_LOCKED    0x20000000L
  38. #define XH_TARGET_STOPPED   0x40000000L
  39. #define XH_TARGET_RESERVED  0x80000000L
  40.  
  41. #define XH_MI_SETKERINFO    0
  42. #define XH_MI_GETKERINFO    1
  43.  
  44. #define XH_DL_SECSIZ    0
  45. #define XH_DL_MINFAT    1
  46. #define XH_DL_MAXFAT    2
  47. #define XH_DL_MINSPC    3
  48. #define XH_DL_MAXSPC    4
  49. #define XH_DL_CLUSTS    5
  50. #define XH_DL_MAXSEC    6
  51. #define XH_DL_DRIVES    7
  52.  
  53.  
  54. /* Inquire protocol version number */
  55. UWORD
  56. XHGetVersion (void);
  57.  
  58. /* Inquire informations about one target */
  59. LONG
  60. XHInqTarget (UWORD major, UWORD minor, ULONG *block_size,
  61.              ULONG *device_flags, char *product_name);
  62.  
  63. /* Reserve or release a target */
  64. LONG
  65. XHReserve (UWORD major, UWORD minor, UWORD do_reserve, UWORD key);
  66.  
  67. /* Lock or unlock a target with removable media */
  68. LONG
  69. XHLock (UWORD major, UWORD minor, UWORD do_lock, UWORD key);
  70.  
  71. /* Stop or start target */
  72. LONG
  73. XHStop (UWORD major, UWORD minor, UWORD do_stop, UWORD key);
  74.  
  75. /* Eject medium */
  76. LONG
  77. XHEject (UWORD major, UWORD minor, UWORD do_eject, UWORD key);
  78.  
  79. /* Get bit mask of available XHDI devices */
  80. ULONG
  81. XHDrvMap (void);
  82.  
  83. /* Get major device number (eg. target), minor device number (eg.
  84.    LUN), starting sector and BPB */
  85. LONG
  86. XHInqDev (UWORD bios_device, UWORD *major, UWORD *minor,
  87.           ULONG *start_sector, BPB *bpb);
  88.  
  89. /* Get informations about the driver */
  90. LONG
  91. XHInqDriver (UWORD bios_device, char *name, char *version,
  92.              char *company, UWORD *ahdi_version,
  93.              UWORD *maxIPL);
  94.  
  95. /* Install additional XHDI handler */
  96. LONG
  97. XHNewCookie (void *newcookie);
  98.  
  99. /* Do a physical access */
  100. LONG
  101. XHReadWrite (UWORD major, UWORD minor, UWORD rwflag,
  102.              ULONG recno, UWORD count, void *buf);
  103.  
  104. /* Make printable device name */
  105. void
  106. XHMakeName (UWORD major, UWORD minor, ULONG start_sector, char *name);
  107.  
  108. /* New version of XHInqTarget */
  109. LONG
  110. XHInqTarget2 (UWORD major, UWORD minor, ULONG *block_size,
  111.               ULONG *device_flags, char *product_name,
  112.               UWORD stringlen);
  113.               
  114. /* New version of XHInqDev */
  115. LONG
  116. XHInqDev2 (UWORD bios_device, UWORD *major, UWORD *minor,
  117.            ULONG *start_sector, BPB *bpb, ULONG *blocks, char *partid);
  118.  
  119. /* Special opcode for custom driver extensions */
  120. LONG
  121. XHDriverSpecial (ULONG key1, ULONG key2, UWORD subopcode, void *data);
  122.  
  123. /* Inquire drive capacity */
  124. LONG
  125. XHGetCapacity (UWORD major, UWORD minor, ULONG *blocks, ULONG *bs);
  126.  
  127. /* Inform driver about media change */
  128. LONG
  129. XHMediumChanged (UWORD major, UWORD minor);
  130.  
  131. /* Get/set MiNT kernel information */
  132. LONG
  133. XHMiNTInfo (UWORD opcode, void *data);
  134.  
  135. /* Get/set DOS limits */
  136. LONG
  137. XHDOSLimits (UWORD which, ULONG limit);
  138.  
  139. /* Get ms since last access */
  140. LONG
  141. XHLastAccess (UWORD major, UWORD minor, ULONG *ms);
  142.  
  143. /* Force reaccess of device */
  144. LONG
  145. XHReaccess (UWORD major, UWORD minor);
  146.  
  147. #endif
  148.