Headers and library sources from all versions of Lightspeed C and THINK C
at heads/lightspeed_c-2.01 235 lines 3.7 kB view raw
1 2/* 3 * FileMgr.h 4 * 5 * Copyright (c) 1986 THINK Technologies, Inc. 6 * These interfaces are based on information published in 7 * "Inside Macintosh" by Apple Computer, Addison-Wesley, 8 * Reading (Mass.), 1985-86. 9 * 10 */ 11 12#ifndef _FileMgr_ 13#define _FileMgr_ 14 15#ifndef _MacTypes_ 16#include "MacTypes.h" 17#endif 18 19 20/* finder constants */ 21#define fHasBundle 8192 22#define fInvisible 16384 23#define fTrash (-3) 24#define fDeskTop (-2) 25#define fDisk 0 26#define fOnDesk 1 27 28 29/* ioPosMode values */ 30enum { 31 fsAtMark, 32 fsFromStart, 33 fsFromLEOF, 34 fsFromMark 35}; 36#define rdVerify 64 37 38 39/* ioPermssn values */ 40enum { 41 fsCurPerm, 42 fsRdPerm, 43 fsWrPerm, 44 fsRdWrPerm, 45 fsRdWrShPerm 46}; 47 48 49/* result codes */ 50enum { 51 fsDSIntErr = -127, 52 wrgVolTypErr = -123, 53 badMovErr, 54 tmwdoErr, 55 dirNFErr, 56 wrPermErr = -61, 57 badMDBErr, 58 fsRnErr, 59 extFSErr, 60 noMacDskErr, 61 nsDrvErr, 62 volOnLinErr, 63 permErr, 64 volOffLinErr, 65 gfpErr, 66 rfNumErr, 67 paramErr, 68 opWrErr, 69 dupFNErr, 70 fBsyErr, 71 vLckdErr, 72 fLckdErr, 73 wPrErr, 74 fnfErr, 75 tmfoErr, 76 mFulErr, 77 posErr, 78 eofErr, 79 fnOpnErr, 80 bdNamErr, 81 ioErr, 82 nsvErr, 83 dskFulErr, 84 dirFulErr 85}; 86 87 88/* standard header used in all PB records */ 89#define STANDARD_PBHEADER \ 90 struct QElem * qLink; \ 91 int qType; \ 92 int ioTrap; \ 93 Ptr ioCmdAddr; \ 94 ProcPtr ioCompletion; \ 95 OsErr ioResult; \ 96 StringPtr ioNamePtr; \ 97 int ioVRefNum; 98 99 100typedef struct 101 { 102 OsType fdType; 103 OsType fdCreator; 104 int fdFlags; 105 Point fdLocation; 106 int fdFldr; 107 } FInfo ; 108 109 110typedef struct 111 { 112 STANDARD_PBHEADER 113 int ioRefNum; 114 SignedByte ioVersNum; 115 SignedByte ioPermssn; 116 Ptr ioMisc; 117 Ptr ioBuffer; 118 long ioReqCount; 119 long ioActCount; 120 int ioPosMode; 121 long ioPosOffset; 122 } ioParam, IOParam ; 123 124/* file parameter block */ 125typedef struct 126 { 127 STANDARD_PBHEADER 128 int ioFRefNum; 129 SignedByte ioFVersNum; 130 SignedByte filler1; 131 int ioFDirIndex; 132 SignedByte ioFlAttrib; 133 SignedByte ioFlVersNum; 134 FInfo ioFlFndrInfo; 135 long ioFlNum; 136 int ioFlStBlk; 137 long ioFlLgLen; 138 long ioFlPyLen; 139 int ioFlRStBlk; 140 long ioFlRLgLen; 141 long ioFlRPyLen; 142 long ioFlCrDat; 143 long ioFlMdDat; 144 } fileParam, FileParam ; 145 146/* volume parameter block */ 147typedef struct 148 { 149 STANDARD_PBHEADER 150 long filler2; 151 int ioVolIndex; 152 long ioVCrDate; 153 long ioVLsBkUp; 154 int ioVAtrb; 155 int ioVNmFls; 156 int ioVDirSt; 157 int ioVBlLn; 158 int ioVNmAlBlks; 159 long ioVAlBlkSiz; 160 long ioVClpSiz; 161 int ioAlBlSt; 162 long ioVNxtFNum; 163 int ioVFrBlk; 164 } volumeParam, VolumeParam ; 165 166 167typedef union { 168 ioParam ioParam; 169 fileParam fileParam; 170 volumeParam volumeParam; 171} ParamBlockRec, *ParmBlkPtr; 172 173 174/* volume control block */ 175typedef struct 176 { 177 struct QElem *qLink; 178 int qType; 179 int vcbFlags; 180 int vcbSigWord; 181 long vcbCrDate; 182 long vcbLsBkUp; 183 int vcbAtrb; 184 int vcbNmFls; 185 int vcbDirSt; 186 int vcbBlLn; 187 int vcbNmBlks; 188 long vcbAlBlkSiz; 189 long vcbClpSiz; 190 int vcbAlBlSt; 191 long vcbNxtFNum; 192 int vcbFreeBks; 193 char vcbVN[28]; 194 int vcbDrvNum; 195 int vcbDRefNum; 196 int vcbFSID; 197 int vcbVRefNum; 198 Ptr vcbMAdr; 199 Ptr vcbBufAdr; 200 int vcbMLen; 201 int vcbDirIndex; 202 int vcbDirBlk; 203 } VCB ; 204 205 206/* drive queue element */ 207 208typedef struct 209 { 210/* long flags; */ 211 struct QElem *qLink; 212 int qType; 213 int dQDrive; 214 int dQRefNum; 215 int dQFSID; 216 int dQDrvSize; 217 } DrvQEl,*DrvQElPtr ; 218 219 220/* functions returning non-integral values */ 221pascal struct QHdr *GetFSQHdr(); 222pascal struct QHdr *GetDrvQHdr(); 223pascal struct QHdr *GetVCBQHdr(); 224 225/* low-memory globals */ 226extern int BootDrive : 0x210; 227extern struct QHdr DrvQHdr : 0x308; 228extern ProcPtr EjectNotify : 0x338; 229extern Ptr FCBSPtr : 0x34E; 230extern VCB *DefVCBPtr : 0x352; 231extern struct QHdr VCBQHdr : 0x356; 232extern struct QHdr FSQHdr : 0x360; 233 234 235#endif