SUBT Low level Filing System interfaces => &.Hdr.LowFSi OldOpt SETA {OPT} OPT OptNoList+OptNoP1List ; *********************************** ; *** C h a n g e L i s t *** ; *********************************** ; Date Name Description ; ---- ---- ----------- ; 03-Mar-88 SKS Add fsinfo_flushnotify ; 08-Mar-88 SKS Add fsinfo_fsfilereadinfonolen, fsfile_ReadInfoNoLen ; 18-Mar-88 BC Add fsfunc_FileInfo ; 21-Apr-88 SKS Add fsinfo_fileinfo ; 13-Jul-88 SKS Add fsinfo_nfiles, removed pre 1-20 mods MACRO $label FSHeader $info $label._FSInfoBlock DCD $label._Name -$label._ModuleBase DCD $label._StartupText -$label._ModuleBase DCD $label._Open -$label._ModuleBase DCD $label._Get -$label._ModuleBase DCD $label._Put -$label._ModuleBase DCD $label._Args -$label._ModuleBase DCD $label._Close -$label._ModuleBase DCD $label._File -$label._ModuleBase DCD $info DCD $label._Func -$label._ModuleBase DCD $label._GBPB -$label._ModuleBase ASSERT (.-$label._FSInfoBlock) = FS_size MEND ; Offsets from start of FS information block in a FS module ^ 0 FS_name # 4 FS_startuptext # 4 FS_open # 4 ; --\ FS_get # 4 ; | FS_put # 4 ; } Module offsets in same order and offset as fscb_xxx FS_args # 4 ; | FS_close # 4 ; | FS_file # 4 ; --/ FS_info # 4 FS_func # 4 ; --\ FS_gbpb # 4 ; --/ For fast unbuffered gbpb FS_size * @-FS_name ; Bits in FS_info fsinfo_special * 1 :SHL: 31 fsinfo_notpermanent * 1 :SHL: 30 fsinfo_nullnameok * 1 :SHL: 29 fsinfo_alwaysopen * 1 :SHL: 28 ; Try to open regardless of file exist fsinfo_flushnotify * 1 :SHL: 27 ; Tell filing system when flushing fsinfo_fsfilereadinfonolen * 1 :SHL: 26 ; fsfile_ReadInfoNoLen supported fsinfo_fileinfo * 1 :SHL: 25 ; fsfunc_FileInfo supported fsinfo_setcontexts * 1 :SHL: 24 ; fsfunc_SetContexts supported fsinfo_nfiles * &FF :SHL: 8 ; Min number of files openable on fs ; 0 -> unlimited by fs fsinfo_number * &FF :SHL: 0 ; Reason codes passed to fscb^.File fsfile_Load * &FF fsfile_Save * 0 fsfile_WriteInfo * 1 fsfile_WriteLoad * 2 fsfile_WriteExec * 3 fsfile_WriteAttr * 4 fsfile_ReadInfo * 5 fsfile_Delete * 6 fsfile_Create * 7 fsfile_CreateDir * 8 fsfile_ReadInfoNoLen * 9 ; Reason codes passed to fscb^.Open ^ 0 fsopen_ReadOnly # 1 fsopen_CreateUpdate # 1 fsopen_Update # 1 ; Bits in r0 passed back from fscb^.Open fsopen_WritePermission * 1 :SHL: 31 fsopen_ReadPermission * 1 :SHL: 30 fsopen_IsDirectory * 1 :SHL: 29 fsopen_UnbufferedGBPB * 1 :SHL: 28 fsopen_Interactive * 1 :SHL: 27 fsopen_DeviceIdentity * &FFFFFFFF :SHR: (32-27) ; Reason codes passed to fscb^.Args ^ 0 fsargs_ReadPTR # 1 ; ARGS 0 Only unbuffered fs fsargs_SetPTR # 1 ; ARGS 1 Only unbuffered fs fsargs_ReadEXT # 1 ; ARGS 2 Only unbuffered fs fsargs_SetEXT # 1 ; ARGS 3 All fs fsargs_ReadSize # 1 ; ARGS 4 Only unbuffered fs fsargs_EOFCheck # 1 ; ARGS 5 Only unbuffered fs fsargs_Flush # 1 ; ARGS 255 Only unbuffered fs (or Nick) fsargs_EnsureSize # 1 ; ARGS 6 All fs fsargs_WriteZeroes # 1 ; internal Only buffered fs fsargs_ReadLoadExec # 1 ; internal All fs ; Reason codes passed to fscb^.Func ^ 0 fsfunc_Dir # 1 ; FSC 0 fsfunc_Lib # 1 ; FSC 1 fsfunc_Cat # 1 ; FSC 5 fsfunc_Ex # 1 ; FSC 6 fsfunc_LCat # 1 ; FSC 7 fsfunc_LEx # 1 ; FSC 8 fsfunc_Info # 1 ; FSC 9 fsfunc_Opt # 1 ; FSC 10 fsfunc_Rename # 1 ; FSC 25 fsfunc_Access # 1 ; FSC 24 fsfunc_Bootup # 1 ; FSC 15 fsfunc_ReadDiscName # 1 ; GBPB 5 fsfunc_ReadCSDName # 1 ; GBPB 6 fsfunc_ReadLIBName # 1 ; GBPB 7 fsfunc_ReadDirEntries # 1 ; GBPB 9 fsfunc_ReadDirEntriesInfo # 1 ; GBPB 10 fsfunc_ShutDown # 1 ; FSC 23 fsfunc_PrintBanner # 1 ; internal fsfunc_SetContexts # 1 ; FSC ?? fsfunc_CatalogObjects # 1 ; GBPB 11 fsfunc_FileInfo # 1 ; FSC 32 *FileInfo OPT OldOpt END