prism2.device: Compiler delint
[AROS.git] / workbench / c / iprefs / trackdiskprefs.c
blobbc15cb2051048e43af49f88b56246eb1f222f803
1 #include <devices/trackdisk.h>
2 #include <dos/dos.h>
3 #include <prefs/trackdisk.h>
4 #include <utility/tagitem.h>
5 #include <proto/dos.h>
6 #include <proto/exec.h>
8 #include "global.h"
9 #include "trackdiskprefs.h"
11 struct td_UnitPrefs TDPrefs[TD_NUMUNITS];
12 struct IORequest TDIO;
14 void LoadPrefs(void)
16 BPTR cf;
17 ULONG PrefsBuf[2];
18 ULONG Unit;
20 cf = Open(TRACKDISK_PREFS_NAME, MODE_OLDFILE);
21 if (cf) {
22 Unit = 0;
23 while (FRead(cf, &PrefsBuf, sizeof(PrefsBuf), 1)) {
25 if (PrefsBuf[0] == TDPR_UnitNum)
26 Unit = PrefsBuf[1];
27 else {
28 if (Unit < TD_NUMUNITS) {
29 switch (PrefsBuf[0])
31 case TDPR_PubFlags:
32 TDPrefs[Unit].PubFlags = PrefsBuf[1];
33 break;
34 case TDPR_RetryCnt:
35 TDPrefs[Unit].RetryCnt = PrefsBuf[1];
36 break;
40 if (PrefsBuf[0] == TAG_DONE)
41 break;
43 Close(cf);
47 void ReadTDPrefs(void)
49 int i;
50 struct TDU_PublicUnit *tdu;
52 for (i = 0; i < TD_NUMUNITS; i++) {
53 TDPrefs[i].PubFlags = 0;
54 TDPrefs[i].RetryCnt = 3;
56 LoadPrefs();
57 for (i = 0; i < TD_NUMUNITS; i++) {
58 if (!OpenDevice("trackdisk.device", i, &TDIO, 0)) {
59 tdu = (struct TDU_PublicUnit *)TDIO.io_Unit;
60 tdu->tdu_PubFlags = TDPrefs[i].PubFlags;
61 tdu->tdu_RetryCnt = TDPrefs[i].RetryCnt;
62 CloseDevice(&TDIO);