home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / alt_os / mint / mfs6011 / source / minixfs / xhdi.h < prev    next >
C/C++ Source or Header  |  1993-11-25  |  2KB  |  111 lines

  1. /*
  2.     @(#)XHDI/xhdi.h
  3.     
  4.     Julian F. Reschke, 2. April 1993
  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. #ifdef __GNUC__
  18. #include <osbind.h>
  19. #define BPB _BPB
  20. #endif
  21.  
  22. #ifndef BPB
  23. #include <tos.h>
  24. #endif
  25.  
  26. #ifndef UWORD
  27. #define UWORD unsigned int
  28. #endif
  29.  
  30. #ifndef LONG
  31. #define LONG long
  32. #endif
  33.  
  34. #ifndef ULONG
  35. #define ULONG unsigned long
  36. #endif
  37.  
  38. #define XH_TARGET_STOPPABLE 0x00000001L
  39. #define XH_TARGET_REMOVABLE 0x00000002L
  40. #define XH_TARGET_LOCKABLE  0x00000004L
  41. #define XH_TARGET_EJECTABLE 0x00000008L
  42. #define XH_TARGET_RESERVED  0x80000000L
  43.  
  44.  
  45. /* Inquire protocol version number */
  46. UWORD
  47. XHGetVersion (void);
  48.  
  49. /* Inquire informations about one target */
  50. LONG
  51. XHInqTarget (UWORD major, UWORD minor, ULONG *block_size,
  52.              ULONG *device_flags, char *product_name);
  53.  
  54. /* Reserve or release a target */
  55. LONG
  56. XHReserve (UWORD major, UWORD minor, UWORD do_reserve, UWORD key);
  57.  
  58. /* Lock or unlock a target with removable media */
  59. LONG
  60. XHLock (UWORD major, UWORD minor, UWORD do_lock, UWORD key);
  61.  
  62. /* Stop or start target */
  63. LONG
  64. XHStop (UWORD major, UWORD minor, UWORD do_stop, UWORD key);
  65.  
  66. /* Eject medium */
  67. LONG
  68. XHEject (UWORD major, UWORD minor, UWORD do_eject, UWORD key);
  69.  
  70. /* Get bit mask of available XHDI devices */
  71. ULONG
  72. XHDrvMap (void);
  73.  
  74. /* Get major device number (eg. target), minor device number (eg.
  75.    LUN), starting sector and BPB */
  76. LONG
  77. XHInqDev (UWORD bios_device, UWORD *major, UWORD *minor,
  78.           ULONG *start_sector, BPB *bpb);
  79.  
  80. /* Get informations about the driver */
  81. LONG
  82. XHInqDriver (UWORD bios_device, char *name, char *version,
  83.              char *company, UWORD *ahdi_version,
  84.              UWORD *maxIPL);
  85.  
  86. /* Install additional XHDI handler */
  87. LONG
  88. XHNewCookie (void *newcookie);
  89.  
  90. /* Do a physical access */
  91. LONG
  92. XHReadWrite (UWORD major, UWORD minor, UWORD rwflag,
  93.              ULONG recno, UWORD count, void *buf);
  94.  
  95. /* Make printable device name */
  96. void
  97. XHMakeName (UWORD major, UWORD minor, ULONG start_sector, char *name);
  98.  
  99. /* New version of XHInqTarget */
  100. LONG
  101. XHInqTarget2 (UWORD major, UWORD minor, ULONG *block_size,
  102.               ULONG *device_flags, char *product_name,
  103.               UWORD stringlen);
  104.               
  105. /* New version of XHInqDev */
  106. LONG
  107. XHInqDev2 (UWORD bios_device, UWORD *major, UWORD *minor,
  108.            ULONG *start_sector, BPB *bpb, ULONG *blocks, char *partid);
  109.  
  110. #endif
  111.