home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / diskutil / tcachcpx / tcache.h < prev    next >
C/C++ Source or Header  |  1993-03-03  |  6KB  |  267 lines

  1. #ifndef TCACHE__INCLUDED
  2. #define TCACHE__INCLUDED
  3. #include <tos.h>
  4.  
  5. #ifndef NULL
  6. #define NULL_NOT_DEFINED
  7. #define NULL ((void*)0)
  8. #endif
  9.  
  10. /* benötigte Strukturen zur Parameterübergabe an TCache>=5.6 */
  11.  
  12. /* Parameterblock für Funktion RBCache 815 */
  13. typedef struct
  14. {
  15.     int aktiv;
  16.     int led;
  17.     int memory;
  18.     int hash_bits;
  19.     int max_secs_read;
  20.     int max_secs_write;
  21.     int max_prefetch;
  22.     int delay_time;
  23.     int full;
  24.     int percent;
  25. }
  26. CACHEDATA;
  27.  
  28. /* Unterstruktur für RBInformation */
  29. /* Das ist der Teil, der auch geschrieben werden kann */
  30. typedef struct
  31. {
  32.     int prefetch;
  33.     char cache_aktiv;
  34.     char mediach;
  35.     int write_aktiv;
  36.     int delayed_aktiv;
  37.     int write_protect;
  38.     int calculate;
  39.     int fat;
  40. }
  41. DRIVEDATA;
  42.  
  43. /* Parameter für Funktion RBInformation 816 */
  44. typedef struct
  45. {
  46.     long reads;
  47.     long read_hits;
  48.     long writes;
  49.     long write_hits;
  50.     long errors;
  51.     long odd;
  52.     int recsize;
  53.     DRIVEDATA data;
  54. }
  55. INFODATA;
  56.  
  57. /* Parameter für RBHide 821 */
  58. typedef struct
  59. {
  60.     long passwort;
  61.     int drives[16];
  62. }
  63. HIDEDATA;
  64.  
  65. /* Parameter für RBDrvA 822 */
  66. typedef char DRVADATA[16];
  67.  
  68. /* Parameter für RBRam 823 */
  69. typedef struct
  70. {
  71.     int ram_drv;
  72.     int ram_ok;
  73.     BPB ram_bpb;
  74.     int ram_mem;
  75.     long *ram_ptr;
  76.     BASPAG *base_page;
  77.     char resetfest;
  78.     char reserved;
  79. }
  80. RBRAMDATA;
  81.  
  82. /* Parameter für RBDefRamDrv 836 */
  83. typedef struct
  84. {
  85.     int ram_drv;
  86.     int ram_size;
  87. }
  88. RBRAMDEFDATA;
  89.  
  90. /* Parameter für RBAbortFehler 839 */
  91. typedef struct
  92. {
  93.     int fehler_drv;
  94.     long fehler_sec;
  95. }
  96. RBFEHLERLOC;
  97.  
  98. /* Parameter für RBGetFehler 838 */
  99. typedef struct
  100. {
  101.     int fehler_nummer;
  102.     RBFEHLERLOC fehler_loc;
  103. }
  104. RBFEHLERDATA;
  105.  
  106. /* Parameter für RBMore 841 */
  107. typedef struct
  108. {
  109.     long abs_read;
  110.     long abs_write;
  111.     long write_error;
  112.     long einzelsektor;
  113.     long multisektor;
  114.     long total;
  115.     long saved;
  116.     long reserved[10];
  117. }
  118. RBMOREDATA;
  119.  
  120. /* Cookie-Funktionen von TCache */
  121. /* Tcache installiert? */
  122. #define TCache_There (call_tcache!=NULL)
  123.  
  124. /* Zeiger auf Routinen */
  125. long cdecl (*call_tcache)(int,...);
  126.  
  127. /* externes Modul, das die Register sichert */
  128. extern long cdecl do_call_tcache(int,...);
  129.  
  130. /* jetzt folgen alle Cookie-Funktionsnummern */
  131. #define RBCacheN        815
  132. #define RBInformationN    816
  133. #define RBSaveN            817
  134. #define RBLockN            818
  135. #define RBFlushN         819
  136. #define RBClrN            820
  137. #define RBHideN            821
  138. #define RBDrvAN            822
  139. #define RBRamN            823
  140. #define RBUhrN            824
  141. #define RBGemdosN        825
  142. #define RBAccN            826
  143. #define RBMemN            827
  144. #define RBCacheHitN        828
  145. #define RBWriteN        828
  146. #define RBFlush_etvN    829
  147. #define RBStepN            830
  148. #define RBVirtuellN        831
  149. #define RBXBRAchecN        832
  150. #define RBDrvbitcheckN    833
  151. #define RBPun_InfoN        834
  152. #define RBNoxN            835
  153. #define RBDefRamDrvN    836
  154. #define RBStopN            837
  155. #define RBGetFehlerN    838
  156. #define RBAbortFehlerN    839
  157. #define RBAbsolutN        840
  158. #define RBMoreN            841
  159.  
  160. #define RBTestingN         997
  161. #define RBInstalledN    998
  162. #define RBFmediachN        999
  163. /* jetzt fertige Cookie-Funktionsaufrufe */
  164. #define RBCache(flag,dataptr)\
  165.     ((int(*)(int,int,CACHEDATA*))do_call_tcache)(RBCacheN,flag,dataptr)
  166.  
  167. #define RBInformation(drv,flag,data)\
  168.     ((void(*)(int,int,int,INFODATA*))do_call_tcache)(RBInformationN,drv,flag,data);
  169.  
  170. #define RBSave(name)\
  171.     ((void(*)(int,char *))do_call_tcache)(RBSaveN,name)
  172.  
  173. #define RBLock(status)\
  174.     ((int(*)(int,int))do_call_tcache)(RBLockN,status)
  175.  
  176. #define RBFlush()\
  177.     ((void(*)(int))do_call_tcache)(RBFlushN)
  178.  
  179. #define RBClr()\
  180.     ((void(*)(int))do_call_tcache)(RBClrN)
  181.  
  182. #define RBHide(flag,data)\
  183.     ((void(*)(int,int,HIDEDATA*))do_call_tcache)(RBHideN,flag,data)
  184.  
  185. #define RBDrvA(flag,data)\
  186.     ((void(*)(int,int,DRVADATA))do_call_tcache)(RBDrvAN,flag,data)
  187.  
  188. #define RBRam(flag,data)\
  189.     ((void(*)(int,int,RBRAMDATA*))do_call_tcache)(RBRamN,flag,data)
  190.  
  191. #define RBUhr(status)\
  192.     ((int(*)(int,int))do_call_tcache)(RBUhrN,status)
  193.  
  194. #define RBGemdos(status)\
  195.     ((int(*)(int,int))do_call_tcache)(RBGemdosN,status)
  196.  
  197. #define RBAcc(status,name)\
  198.     ((int(*)(int,int,char*))do_call_tcache)(RBAccN,status,name)
  199.  
  200. #define RBMem()\
  201.     ((long(*)(int))do_call_tcache)(RBMemN)
  202.  
  203. #define RBCacheHit(status)\
  204.     ((int(*)(int,int))do_call_tcache)(RBCacheHitN,status)
  205.  
  206. #define RBWrite(status)\
  207.     ((int(*)(int,int))do_call_tcache)(RBWriteN,status)
  208.  
  209. #define RBFlush_etv(status)\
  210.     ((int(*)(int,int))do_call_tcache)(RBFlush_etvN,status)
  211.  
  212. #define RBStep(status,stellen,raten)\
  213.     ((int(*)(int,int,int,int*))do_call_tcache)(RBStepN,status,stellen,raten)
  214.  
  215. #define RBVirtuell(virtmap)\
  216.     ((unsigned int (*)(int,long))do_call_tcache)(RBVirtuellN,virtmap)
  217.  
  218. #define RBXBracheck(status)\
  219.     ((int(*)(int,int))do_call_tcache)(RBXBRAchecN,status)
  220.  
  221. #define RBDrvbitcheck(status)\
  222.     ((int(*)(int,int))do_call_tcache)(RBDrvbitcheckN,status)
  223.  
  224. #define RBInstalled()\
  225.     ((int(*)(int))do_call_tcache)(RBInstalledN)
  226.  
  227. #define RBFmediach(drive)\
  228.     ((void(*)(int,int))do_call_tcache)(RBFmediachN,drive)
  229.  
  230. #define RBPun_Info(status)\
  231.     ((int(*)(int,int))do_call_tcache)(RBPun_InfoN,status)
  232.  
  233. #define RBNox(status)\
  234.     ((int(*)(int,int))do_call_tcache)(RBNoxN,status)
  235.  
  236. #define RBDefRamDrv(flag,data)\
  237.     ((void(*)(int,int,RBRAMDEFDATA*))do_call_tcache)\
  238.                 (RBDefRamDrvN,flag,data)
  239.  
  240. #define RBStop(flag)\
  241.     ((int(*)(int,int))do_call_tcache)(RBStopN,int)
  242.  
  243. #define RBGetFehler(data)\
  244.     ((void(*)(int,RBFEHLERDATA*))do_call_tcache)\
  245.                 (RBGetFehlerN,data)
  246.  
  247. #define RBAbortFehler(data)\
  248.     ((void(*)(int,RBFEHLERLOC*))do_call_tcache)\
  249.                 (RBAbortFehlerN,data)
  250.  
  251. #define RBAbsolut(flag)\
  252.     ((int(*)(int,int))do_call_tcache)(RBAbsolutN,flag)
  253.  
  254. #define RBMore(data)\
  255.     ((void(*)(int,RBMOREDATA*))do_call_tcache)(RBMoreN,data)
  256.  
  257. #define RBTesting(flag)\
  258.     ((int(*)(int))do_call_tcache)(RBTestingN,flag)
  259.  
  260.  
  261. #ifdef NULL_NOT_DEFINED
  262. #undef NULL
  263. #undef NULL_NOT_DEFINED
  264. #endif
  265.  
  266. #endif /* TCACHE__INCLUDED */
  267.