diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /sys/fmio/fmio.h | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'sys/fmio/fmio.h')
-rw-r--r-- | sys/fmio/fmio.h | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/sys/fmio/fmio.h b/sys/fmio/fmio.h new file mode 100644 index 00000000..41c43676 --- /dev/null +++ b/sys/fmio/fmio.h @@ -0,0 +1,97 @@ +# FMIO.H -- File manager interface definitions (private to FMIO). + +define FMIO_MAGIC 28006 # "fm" +define FMIO_VERSION 101 # current interface version number +define DEF_PAGESIZE 512 # default page size, bytes +define DEF_MAXLFILES 128 # default max lfiles / datafile +define DEF_MAXPTPAGES 256 # default max page table pages +define DEF_OPTBUFNP 4 # default npages in lfile FIO buffer +define DEF_MAXBUFNP 0 # default npages max buffer size +define DEF_BIGBUFNP 16 # large buffer for lfile copies +define DEF_DFHDRLEN 4096 # default DF header buflen (su) +define DEF_FCACHESIZE 8 # default open files in file cache +define DEF_PMLEN 64 # default lfile pagemap array length +define INC_PMLEN 128 # default page table buflen (pte) +define SZ_DFNAME 63 # datafile name +define SZ_ERROPSTR 63 # operand string, for posted errors +define SYNC_INTERVAL 300 # interval between automatic syncs +define PT_LFILE 0 # lfile in which page table is stored + +# Main FMIO descriptor. +define LEN_FMDES 150 +# GEN +define FM_MAGIC Memi[$1+0] # set once descriptor is initialized +define FM_ACTIVE Memi[$1+1] # set once descriptor is initialized +define FM_CHAN Memi[$1+2] # host channel of datafile +define FM_MODE Memi[$1+3] # access mode of datafile +define FM_DFVERSION Memi[$1+4] # datafile version number +define FM_SZBPAGE Memi[$1+5] # datafile page size, bytes +define FM_NLFILES Memi[$1+6] # number of lfiles in datafile +define FM_DATASTART Memi[$1+7] # file offset of first data page +define FM_DEVBLKSIZE Memi[$1+8] # device block size +define FM_OPTBUFSIZE Memi[$1+9] # optimum FIO buffer size +define FM_MAXBUFSIZE Memi[$1+10] # maximum FIO buffer size +define FM_SZFCACHE Memi[$1+11] # number of LF in file cache +define FM_LSYNCTIME Memi[$1+12] # time of last sync +define FM_DHMODIFIED Memi[$1+13] # datafile header has been modified +# FT +define FM_FTOFF Memi[$1+15] # offset of stored file table (su) +define FM_FTLASTNF Memi[$1+16] # last new file allocated (runtime) +define FM_FTABLE Memi[$1+17] # pointer to in-core file table +# PTI +define FM_PTIOFF Memi[$1+20] # offset of stored PTI (su) +define FM_PTILEN Memi[$1+21] # page table index length (allocated) +define FM_PTINPTI Memi[$1+22] # number of page table pages +define FM_PTINDEX Memi[$1+23] # pointer to page table index +# PT +define FM_PTLEN Memi[$1+25] # number of allocated PTE entries +define FM_PTNPTE Memi[$1+26] # number of PTEs (data pages) in-core +define FM_PTLUPTE Memi[$1+27] # last updated PTE on disk +define FM_PTABLE Memi[$1+28] # pointer to page table data +# LFC +define FM_FCACHE Memi[$1+30] # pointer to file cache descriptor +define FM_ERRCODE Memi[$1+31] # opcode for posting errors +define FM_ERROPSTR Memc[P2C($1+32)]# error operand string +define FM_DFNAME Memc[P2C($1+96)]# datafile name, for error messages + +# File table entry (FTE) during datafile access. +define LEN_FTE 8 # length of file table entry (ints) +define LF_FM Memi[$1] # backpointer to FMIO descriptor +define LF_FSIZE Memi[$1+1] # file size, bytes +define LF_FLAGS Memi[$1+2] # file bitflags +define LF_STATUS Memi[$1+3] # status word for async i/o +define LF_LTSIZE Memi[$1+4] # logical size of last transfer +define LF_NPAGES Memi[$1+5] # number of pages in file page table +define LF_PAGEMAP Memi[$1+6] # pointer to pagemap array +define LF_PMLEN Memi[$1+7] # length of pagemap array + +# FTE bitflags. +define LFF_SAVE 007B # flags saved while datafile is closed +define LFF_ALLOCATED 001B # lfile slot has been allocated +define LFF_DELETED 002B # set if file is deleted +define LFF_TEXTFILE 004B # set if file is a text file +define LFF_IOINPROGRESS 010B # set when i/o is in progress +define LFF_LOCKOUT 020B # set when i/o is in progress + +# -------------- +# Physical datafile file format. + +# Datafile file header. +define LEN_DHSTRUCT 12 +define DH_MAGIC Memi[$1] # magic value identifying data format +define DH_DFVERSION Memi[$1+1] # FMIO version used to write datafile +define DH_SZBPAGE Memi[$1+2] # datafile page size, bytes +define DH_NLFILES Memi[$1+3] # number of lfiles in datafile +define DH_FTOFF Memi[$1+4] # offset of file table in datafile +define DH_FTLASTNF Memi[$1+5] # last new file allocated (runtime) +define DH_PTIOFF Memi[$1+6] # offset of stored page table index +define DH_PTILEN Memi[$1+7] # page table index length (allocated) +define DH_PTINPTI Memi[$1+8] # number of page table pages +define DH_PTLEN Memi[$1+9] # number of allocated PTE entries +define DH_PTNPTE Memi[$1+10] # number of PTEs (data pages) +define DH_DATASTART Memi[$1+11] # file offset of first data page + +# File table entry (FTE) on disk. +define LEN_FTEX 2 # length of file table entry (ints) +define FT_FSIZE Memi[$1] # file size, bytes +define FT_FLAGS Memi[$1+1] # file bitflags |