|
|
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 - downloadIndex: T U r
Length: 3119 (0xc2f)
Types: TextFile
Notes: UNIX file
Names: »rnode.h«
└─⟦a6ab2eb36⟧ Bits:30004042/kconfig3.imd SW95705I 386/ix Multi-user Release 1.2
└─⟦a6ab2eb36⟧ UNIX Filesystem
└─⟦this⟧ »kc/new/usr/include/sys/fs/nfs/rnode.h«
/*
* Copyrighted as an unpublished work.
* (c) Copyright 1988 INTERACTIVE Systems Corporation
* All rights reserved.
*
* RESTRICTED RIGHTS
*
* These programs are supplied under a license. They may be used,
* disclosed, and/or copied only as permitted under such license
* agreement. Any copy must contain the above copyright notice and
* this restricted rights notice. Use, copying, and/or disclosure
* of the programs is strictly prohibited unless otherwise provided
* in the license agreement.
*/
#ident "@(#)rnode.h 1.1 - 88/04/26"
/* @(#)sufstring 3.3 System V NFS source */
/* @(#)rnode.h 1.6 1/19/88 3.3 System V NFS source */
/* @(#)rnode.h 3.2 LAI System V NFS Release 3.0/V3 source */
/* @(#)rnode.h 1.10 85/04/30 SMI */
struct rnode {
struct rnode *r_forw; /* hashed by filehandle or free */
struct rnode *r_back;
fhandle_t r_fh; /* file handle */
short r_error; /* async write error */
ushort r_flags; /* flags, see below */
daddr_t r_lastr; /* last block read (read-ahead) */
struct ucred r_cred; /* current credentials */
struct ucred r_unlcred; /* unlinked credentials */
char *r_unlname; /* unlinked file name */
struct inode *r_unldip; /* parent dir of unlinked file */
struct inode *r_ip; /* cooresponding inode */
struct nfsfattr r_nfsattr; /* cached nfs attributes */
time_t r_nfsattrtime; /* time attributes cached */
};
/*
* Flags
*/
#define RLOCKED 0x01 /* rnode is in use */
#define RWANT 0x02 /* someone wants a wakeup */
#define RATTRVALID 0x04 /* Attributes in the rnode are valid */
#define REOF 0x08 /* EOF encountered on read */
#define RDIRTY 0x10 /* dirty buffers may be in buf cache */
#define ROPEN 0x20 /* the vnode is currently open */
#define RMAPALLOCD 0x40 /* fs_allocmap was called */
#define RSTALE 0x80 /* available for re-use */
#define RRESERVE 0x100 /* Rnode reserved, but not connected to
inode, yet */
/* There is only one 'block' size in this implementation. It must be
* at most the buffer size long, and should be no more than
* the 'real' block size of the remote file.
*
* A block number is computed from a byte
* offset and the block size found in the private mount
* data.
*/
#define NFS_DEV_BITS 8 /* # of bits hidden in device # */
#define NFS_MAX_RNODES ((1<<NFS_DEV_BITS)-1) /* max # of rnodes */
#define NFS_DEV_POS 0 /* position of rnode # in the device */
#define NFS_DEV_MASK NFS_MAX_RNODES /* get rnode # */
#define bptorno(bp) (((bp)->b_dev >> NFS_DEV_POS) & NFS_DEV_MASK)
/* given an 'r-number', find the rnode */
#define rnotor(n) (&nfs_rnodes[n])
/* find the rnode from the block and device numbers of a buffer */
#define bptor(bp) rnotor(bptorno(bp))
/* given an rnode pointer, get its number */
#define rtorno(rp) (rp-nfs_rnodes)
#define rtofh(rp) (&(rp)->r_fh)
#define vtor(ip) ((struct rnode *)((ip)->i_fsptr))
#define vtofh(ip) rtofh(vtor(ip))
/* maximum byte number
* This is used to limit read-ahead and to detect wild reads */
#define NFS_MAX_BYTENUM ((unsigned long)((1L << (sizeof(off_t)*8 -1)) - 1L))