/usr/lib/iraf/lib/fio.h is in iraf-dev 2.16.1+2018.03.10-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | # FIO.H -- FIO definitions.
# Logical seek: adjust i/o pointer to the seek offset. If the buffer was
# being written into when the seek occurs, adjust ITOP and OTOP to mark
# the end of the good data in the buffer, then set IOP to new offset.
define (UPDATE_IOP, if (bufptr[$1] != NULL && otop[$1] == buftop[$1]) {
itop[$1] = min(buftop[$1], max(itop[$1], iop[$1]))
otop[$1] = itop[$1]
})
define (LSEEK, {UPDATE_IOP($1);iop[$1]=($2-boffset[$1]+bufptr[$1])})
define LNOTE (boffset[$1]+iop[$1]-bufptr[$1])
define BUF_MODIFIED (otop[$1] > bufptr[$1])
define INACTIVE 0
define READ_IN_PROGRESS 1
define WRITE_IN_PROGRESS 2
# File descriptor structure (dynamically allocated part)
define SZ_FFNAME 255
define LEN_FIODES (20+LEN_CHANDES+256)
define FCHAN Memi[$1] # os channnel
define FMODE Memi[$1+1] # mode of access
define FTYPE Memi[$1+2] # binary or text
define FDEV Memi[$1+3] # device index
define FBUFSIZE Memi[$1+4] # buffer size
define FIRSTBUFOFF Memi[$1+5] # offset of first file buffer
define FNBUFS Memi[$1+6] # number of buffers
define FLOCBUF Memi[$1+7] # zlocva of aread buffer
define FPBBUFSIZE Memi[$1+8] # size pushback buffer
define FPBBUF Memi[$1+9] # ptr to pushback buffer
define FPBTOP Memi[$1+10] # ptr to top of pbbuf
define FPBIOP Memi[$1+11] # iop into pbbuf
define FPBSP Memi[$1+12] # pbbuf stack pointer
define FILSTAT Memi[$1+13] # channel status
define FNCHARS Memi[$1+14] # nchars last i/o
define FNBYTES Memi[$1+15] # nbytes last rec read
define FBUFMODE Memi[$1+16] # i/o mode for buffer
define FFIOMODE Memi[$1+17] # i/o mode for file
define FCD Memi[$1+18] # ptr to chan descr.
# (open)
define FLCD ($1+20) # local storage for cd
define FNAME Memc[P2C($1+20+LEN_CHANDES)] # filename
# Channel descriptor (stored in fd if file not multiply open). The DEVPAR
# (device parameter) fields are reserved for use with special devices and
# are not used by FIO.
define LEN_CHANDES (10+256)
define FREFCNT Memi[FCD($1)] # chan reference count
define FCIOMODE Memi[FCD($1)+1] # chan i/o mode
define FCLOSEFD Memi[FCD($1)+2] # close chan when inactive
define FAFD Memi[FCD($1)+3] # active fd
define FBLKSIZE Memi[FCD($1)+4] # device block size
define FOPTBUFSIZE Memi[FCD($1)+5] # "optimum" buffer size
define FMAXBUFSIZE Memi[FCD($1)+6] # maximum buffer size
define FDEVOPEN Memi[FCD($1)+7] # device zopen proc
define FILSZ_PTR FCD($1)+8
define FILSIZE Meml[FILSZ_PTR($1)] # file size, chars
define FPKOSFN Memc[P2C(FCD($1)+10)] # packed osfn of file
# Flags
define FF_FLUSHNL 1B # flush each line to output device
define FF_READ 2B # read perm on file
define FF_WRITE 4B # write perm on file
define FF_EOF 10B # at EOF
define FF_ERR 20B # i/o error
define FF_KEEP 40B # keep file open after task quits?
define FF_FLUSH 100B # write each line to z buffer
define FF_RAW 200B # raw i/o when reading a text device
define FF_NDELAY 400B # nonblocking i/o
define FF_PUSHBACK 1000B # data is pushed back into input
# Device table entry points
define LEN_DTE 7 # length of device table entry
define TX_DRIVER 1 # index into devtbl of textfile driver
define BF_DRIVER 8 # index of binary file driver
define TY_DRIVER 15 # index of terminal driver
define PR_DRIVER 22 # index of IPC driver
define SF_DRIVER 29 # index of static file driver
define STD_DRIVER ($1 <= 29) # is device code that of a std driver?
define ZGETTX zdev[FDEV($1)] # text files
define ZPUTTX zdev[FDEV($1)+1]
define ZFLSTX zdev[FDEV($1)+2]
define ZSTTTX zdev[FDEV($1)+3]
define ZCLSTX zdev[FDEV($1)+4]
define ZSEKTX zdev[FDEV($1)+5]
define ZNOTTX zdev[FDEV($1)+6]
define ZARDBF zdev[FDEV($1)] # binary files
define ZAWRBF zdev[FDEV($1)+1]
define ZAWTBF zdev[FDEV($1)+2]
define ZSTTBF zdev[FDEV($1)+3]
define ZCLSBF zdev[FDEV($1)+4]
# File status codes (ZFSTTX, ZFSTTB). FIO makes a distinction between the
# device block size, which establishes the alignment restrictions for
# asynchronous reads and writes, and the "optimal" buffer size, the default
# buffer size supplied by the device z-routines, which defines the minimum
# buffer size for efficient sequential access to the device.
define FSTT_BLKSIZE 1 # block size, bytes
define FSTT_FILSIZE 2 # file size, bytes
define FSTT_OPTBUFSIZE 3 # optimum buffer size, bytes
define FSTT_MAXBUFSIZE 4 # optimum buffer size, bytes
define REMOVE_PROTECTION 0 # for ZFPROT
define SET_PROTECTION 1
define QUERY_PROTECTION 2
define STRING_FILE (-1) # open a string as a file
define SZ_SPOOLBUF 4096 # def. initial size of a spool buffer
# Filename Mapping definitions.
define SZ_VFNFN 127 # max size ROOT or EXTN in VFN
define SZ_OSDIR 255 # max chars in V_OSDIR field
define VFN_READ 1 # VFN access modes for VFNOPEN
define VFN_WRITE 2
define VFN_UNMAP 3
define VFN_NOUPDATE 0 # update flag for VFNCLOSE
define VFN_UPDATE 1
# Terminal driver escape sequences.
define LEN_RAWCMD 5 # +1 for iomode character (N|B)
define RAWOFF "\033-rAw" # raw mode off
define RAWON "\033+rAw" # raw mode on
define LEN_SETREDRAW 6 # 5 char escape sequence + code
define SETREDRAW "\033=rDw" # set/enable screen redraw code
# Magtape driver global definitions.
define LEN_MTDEVPOS 5
|