home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / bltq13a.zip / BULLET.H < prev    next >
C/C++ Source or Header  |  1993-04-22  |  9KB  |  305 lines

  1. /*      bullet.h
  2.  
  3.         Defines the BULLET library's structs, consts, and function declaration
  4.  
  5.         v1.03 22-Apr-93
  6.  
  7.     ***********************************************************************
  8.     * NOTE: BULLET is for medium, large, or huge models (do not use tiny, *
  9.     * ---- small, or compact since these allow for only 1 code segment).  *
  10.     ***********************************************************************
  11.  
  12.      Struct types must be standard byte packed; do not special align elements
  13. */
  14.  
  15. #pragma pack(1)
  16.  
  17. int     far pascal BULLET(void far *datapack);
  18.  
  19. #define INITXB          0            /* system */
  20. #define EXITXB          1
  21. #define ATEXITXB        2
  22. #define MEMORYXB        3
  23. #define BREAKXB         4
  24. #define BACKUPFILEXB    5
  25. #define STATHANDLEXB    6
  26. #define GETEXTERRORXB   7
  27. #define DVMONCXB        9
  28.  
  29. #define CREATEDXB       10           /* data control mid-level */
  30. #define OPENDXB         11
  31. #define CLOSEDXB        12
  32. #define STATDXB         13
  33. #define READDHXB        14
  34. #define FLUSHDHXB       15
  35. #define COPYDHXB        16
  36. #define ZAPDHXB         17
  37.  
  38. #define CREATEKXB       20           /* key control mid-level */
  39. #define OPENKXB         21
  40. #define CLOSEKXB        22
  41. #define STATKXB         23
  42. #define READKHXB        24
  43. #define FLUSHKHXB       25
  44. #define COPYKHXB        26
  45. #define ZAPKHXB         27
  46.  
  47. #define GETDESCRIPTORXB 30           /* data access mid-level */
  48. #define GETRECORDXB     31
  49. #define ADDRECORDXB     32
  50. #define UPDATERECORDXB  33
  51. #define DELETERECORDXB  34
  52. #define UNDELETERECORDXB 35
  53. #define PACKRECORDSXB   36
  54.  
  55. #define FIRSTKEYXB      40           /* key access mid-level */
  56. #define EQUALKEYXB      41
  57. #define NEXTKEYXB       42
  58. #define PREVKEYXB       43
  59. #define LASTKEYXB       44
  60. #define STOREKEYXB      45
  61. #define DELETEKEYXB     46
  62. #define BUILDKEYXB      47
  63. #define CURRENTKEYXB    48
  64.  
  65. #define GETFIRSTXB      60           /* key & data access high-level */
  66. #define GETEQUALXB      61
  67. #define GETNEXTXB       62
  68. #define GETPREVXB       63
  69. #define GETLASTXB       64
  70. #define INSERTXB        65
  71. #define UPDATEXB        66
  72. #define REINDEXXB       67
  73.  
  74. #define LOCKXB          80           /* network control */
  75. #define UNLOCKXB        81
  76. #define LOCKKEYXB       82
  77. #define UNLOCKKEYXB     83
  78. #define LOCKDATAXB      84
  79. #define UNLOCKDATAXB    85
  80. #define DRIVEREMOTEXB   86
  81. #define FILEREMOTEXB    87
  82. #define SETRETRIESXB    88
  83.  
  84. #define DELETEFILEDOS   100          /* DOS file I/O low-level */
  85. #define RENAMEFILEDOS   101
  86. #define CREATEFILEDOS   102
  87. #define OPENFILEDOS     103
  88. #define SEEKFILEDOS     104
  89. #define READFILEDOS     105
  90. #define WRITEFILEDOS    106
  91. #define CLOSEFILEDOS    107
  92. #define ACCESSFILEDOS   108
  93. #define EXPANDFILEDOS   109
  94. #define MAKEDIRDOS      110
  95.  
  96. #define cUNIQUE         1            /* key type flags */
  97. #define cCHAR           2
  98. #define cINTEGER        16
  99. #define cLONG           32
  100. #define cNLS            0x4000       /* note: cNLS is set by BULLET */
  101. #define cSIGNED         0x8000
  102.  
  103. #define READONLY        0            /* do NOT use O_RDONLY,O_WRONLY,O_RDWR */
  104. #define WRITEONLY       1
  105. #define READWRITE       2
  106.  
  107. #define COMPAT          0X0000       /* okay to use SH_DENYRW, etc. */
  108. #define DENYREADWRITE   0x0010       /* or O_DENYREADWRITE, etc.    */
  109. #define DENYWRITE       0x0020
  110. #define DENYREAD        0x0030
  111. #define DENYNONE        0x0040
  112. #define NOINHERIT       0x0080
  113.  
  114.  
  115. struct accesspack {
  116.         unsigned        func;
  117.         unsigned        stat;
  118.         unsigned        handle;
  119.         long            recno;       /* signed */
  120.         void       far *recptr;
  121.         void       far *keyptr;
  122.         void       far *nextptr;
  123. }; /* 22 */
  124.  
  125. struct breakpack {
  126.         unsigned        func;
  127.         unsigned        stat;
  128.         unsigned        mode;
  129. }; /* 6 */
  130.  
  131. struct copypack {
  132.         unsigned        func;
  133.         unsigned        stat;
  134.         unsigned        handle;
  135.         char       far *filenameptr;
  136. }; /* 10 */
  137.  
  138. struct createdatapack {
  139.         unsigned        func;
  140.         unsigned        stat;
  141.         char       far *filenameptr;
  142.         unsigned        nofields;
  143.         void       far *fieldlistptr;
  144.         unsigned        fileid;
  145. }; /* 16 */
  146.  
  147. struct createkeypack {
  148.         unsigned        func;
  149.         unsigned        stat;
  150.         char       far *filenameptr;
  151.         char       far *keyexpptr;
  152.         unsigned        xblink;
  153.         unsigned        keyflags;
  154.         int             codepageid;
  155.         int             countrycode;
  156.         char       far *collateptr;
  157. }; /* 24 */
  158.  
  159. struct fielddesctype {
  160.         char            fieldname[11];
  161.         char            fieldtype[1];
  162.         unsigned long   fieldda;
  163.         unsigned char   fieldlen;
  164.         unsigned char   fielddc;
  165.         long            fieldrez;
  166.         char            filler[10];
  167. }; /* 32 */
  168.  
  169. struct descriptorpack {
  170.         unsigned        func;
  171.         unsigned        stat;
  172.         unsigned        handle;
  173.         unsigned        fieldnumber;
  174.         struct fielddesctype   fd;
  175. }; /* 40 */
  176.  
  177. struct dosfilepack {
  178.         unsigned        func;
  179.         unsigned        stat;
  180.         char       far *filenameptr;
  181.         unsigned        handle;
  182.         unsigned        asmode;
  183.         unsigned        bytes;
  184.         long            seekoffset;
  185.         unsigned        method;
  186.         void       far *bufferptr;
  187.         unsigned        attr;
  188.         char       far *newnameptr;
  189. }; /* 30 */
  190.  
  191. struct dvmonpack {
  192.         unsigned        func;
  193.         unsigned        stat;
  194.         unsigned        mode;
  195.         unsigned        handle;
  196.         unsigned        vs;
  197. }; /* 10 */
  198.  
  199. struct exitpack {
  200.         unsigned        func;
  201.         unsigned        stat;
  202. }; /* 4 */
  203.  
  204. struct handlepack {
  205.         unsigned        func;
  206.         unsigned        stat;
  207.         unsigned        handle;
  208. }; /* 6 */
  209.  
  210. struct initpack {
  211.         unsigned        func;
  212.         unsigned        stat;
  213.         unsigned        jftmode;
  214.         unsigned        dosver;
  215.         unsigned        version;
  216.         unsigned long   exitptr;
  217. }; /* 14 */
  218.  
  219. struct memorypack {
  220.         unsigned        func;
  221.         unsigned        stat;
  222.         unsigned long   memory;
  223. };
  224.  
  225. struct openpack {
  226.         unsigned        func;
  227.         unsigned        stat;
  228.         unsigned        handle;
  229.         char       far *filenameptr;
  230.         unsigned        asmode;
  231.         unsigned        xblink;
  232. }; /* 14 */
  233.  
  234. struct remotepack {
  235.         unsigned        func;
  236.         unsigned        stat;
  237.         unsigned        handle;
  238.         unsigned        isremote;
  239.         unsigned        flags;
  240.         unsigned        isshare;
  241. }; /* 12 */
  242.  
  243. struct setretriespack {
  244.         unsigned        func;
  245.         unsigned        stat;
  246.         unsigned        mode;
  247.         unsigned        pause;
  248.         unsigned        retries;
  249. }; /* 10 */
  250.  
  251. struct statdatapack {
  252.         unsigned        func;
  253.         unsigned        stat;
  254.         unsigned        handle;
  255.         unsigned char   filetype;
  256.         unsigned char   dirty;
  257.         unsigned long   recs;
  258.         unsigned        reclen;
  259.         unsigned        fields;
  260.         char            f1;
  261.         unsigned char   luyear;
  262.         unsigned char   lumonth;
  263.         unsigned char   luday;
  264.         unsigned        hereseg;
  265.         char            filler[10];
  266. }; /* 32 */
  267.  
  268. struct statkeypack {
  269.         unsigned        func;
  270.         unsigned        stat;
  271.         unsigned        handle;
  272.         unsigned char   filetype;
  273.         unsigned char   dirty;
  274.         unsigned long   keys;
  275.         unsigned        keylen;
  276.         unsigned        xblink;
  277.         unsigned long   xbrecno;
  278.         unsigned        hereseg;
  279.         unsigned        codepageid;
  280.         unsigned        countrycode;
  281.         unsigned        collatetablesize;
  282.         unsigned        keyflags;
  283.         char            filler[2];
  284. }; /* 32 */
  285.  
  286. struct stathandlepack {
  287.         unsigned        func;
  288.         unsigned        stat;
  289.         unsigned        handle;
  290.         unsigned        id;
  291.         char       far *filenameptr;
  292. }; /* 12 */
  293.  
  294. struct xerrorpack {
  295.         unsigned        func;
  296.         unsigned        stat;
  297.         unsigned        class;
  298.         unsigned        action;
  299.         unsigned        location;
  300. }; /* 10 */
  301.  
  302. #pragma pack()
  303.  
  304. /* end of BULLET.H */
  305.