Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / vax / mimlib / vaxdefs.mud
diff --git a/mim/development/mim/vax/mimlib/vaxdefs.mud b/mim/development/mim/vax/mimlib/vaxdefs.mud
new file mode 100644 (file)
index 0000000..2816464
--- /dev/null
@@ -0,0 +1,154 @@
+<USE "NEWSTRUC">
+
+<GDECL (BUFLEN SBUFLEN) FIX>
+<MSETG BYTES/WORD 4>
+
+; "ARGS TO INTERNAL TIMER CALLS"
+<MSETG ITIMER-REAL 0>
+<MSETG ITIMER-VIRTUAL 1>
+<MSETG ITIMER-PROF 2>
+
+<MSETG ITIMER-INTERVAL 1>
+<MSETG ITIMER-VALUE 2>
+
+<MSETG EINTR 4>
+<MSETG EEXIST 17>
+
+; "SPECIAL FILE DESCRIPTORS"
+
+<MSETG STDIN 0>
+<MSETG STDOUT 1>
+<MSETG ERRIN 2>
+<MSETG ERROUT 3>
+
+; "OPEN MODES"
+<MSETG O-RDONLY 0>     ; "Read, no write"
+<MSETG O-WRONLY 1>     ; "Write, no read (never used)"
+<MSETG O-RDWR 2>       ; "Read/write"
+<MSETG O-NDELAY 4>     ; "Never block on open"
+<MSETG O-APPEND *10*>  ; "Append on each write"
+<MSETG O-CREAT *1000*> ; "Create if file doesn't exist"
+<MSETG O-TRUNC *2000*> ; "Truncate size to 0"
+<MSETG O-EXCL *4000*>  ; "Error if create and file exists"
+
+
+; "FILE MODES"
+
+<MSETG FM-SET-UID *4000*>
+<MSETG FM-SET-GID *2000*>
+<MSETG FM-SAVE *1000*>
+<MSETG FM-OWN-READ *400*>
+<MSETG FM-OWN-WRITE *200*>
+<MSETG FM-OWN-XCT *100*>
+<MSETG FM-GRP-READ *40*>
+<MSETG FM-GRP-WRITE *20*>
+<MSETG FM-GRP-XCT *10*>
+<MSETG FM-OTHER-READ *4*>
+<MSETG FM-OTHER-WRITE *2*>
+<MSETG FM-OTHER-XCT *1*>
+
+<MSETG R-OK *4*>
+<MSETG W-OK 2>
+<MSETG X-OK 1>
+<MSETG F-OK 0>
+
+<MSETG FM-READ *4*>
+<MSETG FM-WRITE *2*>
+<MSETG FM-XCT *1*>
+; "LSH BY THIS AMOUNT TO GET TO OWNER FIELD"
+<MSETG FM-OWN-OFFS 6>
+<MSETG FM-GRP-OFFS 3>
+<MSETG FM-OTHER-OFFS 0>
+
+; "MODES FOR ACCESS"
+<MSETG ACC-READ 4>
+<MSETG ACC-WRITE 2>
+<MSETG ACC-XCT 1>
+
+\f
+
+<MSETG WHENCE-ABS 0>
+<MSETG WHENCE-OFFSET 1>
+<MSETG WHENCE-EOF 2>
+
+; "If STAT into a string, offsets of critical things"
+<MSETG DEV-OFFS 1>
+<MSETG DEV-SIZE 2>
+<MSETG MAJOR-DEV-OFFS 2>
+<MSETG MAJOR-DEV-SIZE 1>
+<MSETG MINOR-DEV-OFFS 1>
+<MSETG MINOR-DEV-SIZE 1>
+<MSETG INODE-OFFS 5>   ; "2 bytes"
+<MSETG INODE-SIZE 4>
+<MSETG MODE-OFFS 9>    ; "2 bytes"
+<MSETG MODE-SIZE 2>
+<MSETG OWNER-OFFS 13>
+<MSETG OWNER-SIZE 2>
+<MSETG GROUP-OFFS 15>
+<MSETG OWNER-SIZE 2>
+<MSETG SIZE-OFFS 21>   ; "4 bytes long"
+<MSETG SIZE-SIZE 4>
+<MSETG ATIME-OFFS 25>  ; "4 bytes"
+<MSETG ATIME-SIZE 4>
+<MSETG MTIME-OFFS 33>
+<MSETG MTIME-SIZE 4>
+<MSETG CTIME-OFFS 41>
+<MSETG CTIME-SIZE 4>
+<MSETG STAT-LEN 68>    ; "Length of needed string"
+
+; "Interpretation of mode field"
+<MSETG FMT-MASK *170000*>      ; "Andb with this to get file mode"
+<MSETG FMT-IFDIR *40000*>      ; "Directory"
+<MSETG FMT-IFCHR *20000*>      ; "Character special"
+<MSETG FMT-IFBLK *10000*>      ; "block special"
+<MSETG FMT-IFREG *100000*>     ; "regular"
+<MSETG FMT-IFMPC *30000*>      ; "MPX char special"
+<MSETG FMT-IFMPB *70000*>      ; "MPX block special"
+
+; "Rest of mode field goes by chmod bits"
+
+; "Device types.  Code is file-mode, or'ed with major device number."
+<MSETG DEV-CONSOLE <CHTYPE <ORB ,FMT-IFCHR 0> FIX>>
+<MSETG DEV-DRUM <CHTYPE <ORB ,FMT-IFCHR 7> FIX>>
+<MSETG DEV-FLOPPY <CHTYPE <ORB ,FMT-IFCHR 8> FIX>>
+<MSETG DEV-DISK <CHTYPE <ORB ,FMT-IFREG 3> FIX>> "???"
+<MSETG DEV-OTHER-DISK <CHTYPE <ORB ,FMT-IFREG 9> FIX>>
+<MSETG DEV-BDISK <CHTYPE <ORB ,FMT-IFREG 0> FIX>>
+<MSETG DEV-VDISK <CHTYPE <ORB ,FMT-IFREG 7> FIX>>
+<MSETG DEV-OVDISK <CHTYPE <ORB ,FMT-IFREG 15> FIX>>
+<MSETG DEV-HK <CHTYPE <ORB ,FMT-IFBLK 3> FIX>>
+<MSETG DEV-HP <CHTYPE <ORB ,FMT-IFBLK 3> FIX>>
+<MSETG DEV-MEM <CHTYPE <ORB ,FMT-IFCHR 3> FIX>>
+<MSETG DEV-MT <CHTYPE <ORB ,FMT-IFBLK 6> FIX>>
+<MSETG DEV-RMT <CHTYPE <ORB ,FMT-IFCHR 16> FIX>>
+<MSETG DEV-NULL <CHTYPE <ORB ,FMT-IFCHR 3> FIX>>
+<MSETG DEV-PTY <CHTYPE <ORB ,FMT-IFCHR 21> FIX>>
+<MSETG DEV-RHK <CHTYPE <ORB ,FMT-IFCHR 11> FIX>>
+<MSETG DEV-RHP <CHTYPE <ORB ,FMT-IFCHR 4> FIX>>
+<MSETG DEV-TTY <CHTYPE <ORB ,FMT-IFCHR 2> FIX>>
+<MSETG DEV-TTYN <CHTYPE <ORB ,FMT-IFCHR 1> FIX>>
+<MSETG DEV-DMFTTY <CHTYPE <ORB ,FMT-IFCHR 22> FIX>>
+<MSETG DEV-NETTTY <CHTYPE <ORB ,FMT-IFCHR 20> FIX>>
+
+; "STATUS BITS"
+<MSETG STATUS-NEW 1>
+<MSETG STATUS-RENAME 2>
+<MSETG STATUS-NO-FLUSH 4>
+<MSETG STATUS-WRITE 8>
+<MSETG STATUS-READ 16>
+<MSETG STATUS-RACC 32>
+; "BYTE SIZE GOES IN LH"
+<MSETG BS-ASCII 0>
+<MSETG BS-8BIT 1>
+<MSETG BS-BINARY 2>
+
+<MSETG DIRBLKSIZ 512>
+<MSETG MAXNAMLEN 255>
+
+<MSETG INODE-START 1>
+<MSETG INODE-LEN 4>
+<MSETG RECLEN-START 5>
+<MSETG RECLEN-LEN 2>
+<MSETG NAMLEN-START 7>
+<MSETG NAMLEN-LEN 2>
+<MSETG NAME-START 8>