|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4065 (0xfe1) Types: TextFile Notes: UNIX file Names: »nami.h«
└─⟦a6ab2eb36⟧ Bits:30004042/kconfig3.imd SW95705I 386/ix Multi-user Release 1.2 └─⟦a6ab2eb36⟧ UNIX Filesystem └─⟦this⟧ »kc/new/usr/include/sys/nami.h«
/* Copyright (c) 1984 AT&T */ /* All Rights Reserved */ /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ /* The copyright notice above does not evidence any */ /* actual or intended publication of such source code. */ #ident "@(#)nami.h 1.5" /* * Structure used by system calls to pass parameters * to the file system independent namei and attribute * functions. */ struct argnamei { /* namei's flag argument */ ushort cmd; /* command type (see below) */ short rcode; /* a scratch for return codes (see below) */ long ino; /* ino for link */ long mode; /* mode for creat and chmod */ ushort ftype; /* file type */ ushort uid; /* uid for chown */ ushort gid; /* gid for chown */ dev_t idev; /* dev for link and creat */ }; /* * Possible values for argnamei.cmd field */ #define NI_DEL 0x1 /* unlink this file */ #define NI_CREAT 0x2 /* create */ #define NI_XCREAT 0x3 /* Exclusive create, error if */ /* the file exists */ #define NI_LINK 0x4 /* make a link */ #define NI_MKDIR 0x5 /* mkdir */ #define NI_RMDIR 0x6 /* rmdir */ #define NI_MKNOD 0x7 /* mknod */ /* Requests to fs_setattr */ #define NI_CHOWN 0x1 /* change owner */ #define NI_CHMOD 0x2 /* change mode (permissions and /* ISUID, ISGID, ISVTX) */ /* Codes to fs_notify */ #define NI_OPEN 0x1 /* open - some fstyps may want */ /* to know when a file is opened */ #define NI_CLOSE 0x2 /* close */ #define NI_CHDIR 0x3 /* let fstyp know that a cd */ /* is happening (e.g., some fstyp */ /* may need to know so that */ /* directory cache can be */ /* flushed - if it has one) */ /* * Return Codes for argnamei.rcode */ #define FSN_FOUND 0x1 /* The file was found by namei (it exists) */ #define FSN_NOTFOUND 0x2 /* The file was not found by namei */ /* (i.e., it does not exist */ /* * Return Codes for file sytem dependent namei's */ #define NI_PASS 0 /* Error free FS specific namei */ #define NI_FAIL 1 /* Error encountered in FS specific namei */ #define NI_RESTART 2 /* The fs dependent code overwrote */ /* the buffer and the namei must */ /* begin again. Used mostly for */ /* symbolic links. */ #define NI_DONE 3 /* The fs dependent operation is */ /* complete. There is no need to do */ /* any further pathnme processing. */ /* This is equivalent to NI_PASS for */ /* those commands that require some */ /* action from the fs dependent code */ #define NI_NULL 4 /* Tell fs independent to return NULL to */ /* the calling procedure without doing /* /* an iput */ #ifdef NFSIX #define NI_SYMRESTART 5 /* the fs dependant code overwrote the */ /* the buffer and namei must reparse */ /* starting at the currently directory */ /* in the parse. Used mostly for */ /* symbolic links */ #endif /* * Data that is passed from the file system independent namei to the * file system dependent namei. */ struct nx { struct inode *dp; /* inode of matched file */ /* characters */ caddr_t comp; /* pointer to beginning of current */ /* pathname component */ caddr_t bufp; /* pointer to the beginning of the */ /* pathname buffer */ long ino; /* inode number returned by fs dep code */ long flags; /* Flag field */ }; #define NX_ISROOT 0x1 /* Inode is root of fs */ /* Values for fsinfo[].fs_notify. If an fstyp wishes to be */ /* notified of an action the appropriate flag should be set */ /* in fsinfo[].fs_notify and fstypsw[].fs_notify should point */ /* to the desired fs dependent function */ #define NO_CHDIR 0x1 /* chdir */ #define NO_CHROOT 0x2 /* chroot */ #define NO_SEEK 0x4 /* seek */ struct argnotify { long cmd; /* command - see above */ long data1; /* Allow caller to pass two pieces of data. */ long data2; /* These should be caste appropriately in */ /* the fs_notify routine. They are declared */ /* as longs here. However, they should be */ /* large enough to hold the largest machine */ /* specific data types (e.g., if a pointer is */ /* larger than a long then these should be */ /* int *). */ };