--- Net2/miscfs/kernfs/kernfs.h 2018/04/24 18:09:50 1.1 +++ Net2/miscfs/kernfs/kernfs.h 2018/04/24 18:15:40 1.1.1.2 @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kernfs.h,v 1.1 2018/04/24 18:09:50 root Exp $ + * kernfs.h,v 1.4 1993/05/28 16:47:02 cgd Exp */ #ifdef KERNEL @@ -42,9 +42,45 @@ struct kernfs_mount { }; struct kernfs_node { - struct kern_target *kf_kt; + struct kernfs_target *kf_kt; }; +#define KSTRING 256 /* Largest I/O available via this filesystem */ +#define UIO_MX 32 + +struct kernfs_target { + char *kt_name; + void *kt_data; +#define KTT_NULL 1 +#define KTT_TIME 5 +#define KTT_INT 17 +#define KTT_STRING 31 +#define KTT_HOSTNAME 47 +#define KTT_AVENRUN 53 + int kt_tag; +#define KTM_RO_PERMS (S_IRUSR|S_IRGRP|S_IROTH) +#define KTM_RW_PERMS (S_IWUSR|S_IRUSR|S_IRGRP|S_IWGRP| \ + S_IROTH|S_IWOTH) +#define KTM_DIR_PERMS (S_IRUSR|S_IXUSR|S_IRGRP|S_IXGRP| \ + S_IROTH|S_IXOTH) +#define KTM_MASK_PERMS (~(S_IWGRP|S_IWOTH)) + u_short kt_maxperms; + int kt_vtype; + u_short kt_perms; + uid_t kt_uid; + gid_t kt_gid; +}; + +#define DIR_TARGET(name, data, tag, perms) \ +{ name, data, tag, /*max*/perms, VDIR, perms & KTM_MASK_PERMS, 0, 0 }, +#define REG_TARGET(name, data, tag, perms) \ +{ name, data, tag, /*max*/perms, VREG, perms & KTM_MASK_PERMS, 0, 0 }, +#define BLK_TARGET(name, data, tag, perms) \ +{ name, data, tag, /*max*/perms, VBLK, perms & KTM_MASK_PERMS, 0, 0 }, +#define CHR_TARGET(name, data, tag, perms) \ +{ name, data, tag, /*max*/perms, VCHR, perms & KTM_MASK_PERMS, 0, 0 }, + + #define VFSTOKERNFS(mp) ((struct kernfs_mount *)((mp)->mnt_data)) #define VTOKERN(vp) ((struct kernfs_node *)(vp)->v_data) @@ -52,4 +88,8 @@ extern struct vnodeops kernfs_vnodeops; extern struct vfsops kernfs_vfsops; extern struct vnode *rrootdevvp; + +struct kernfs_target kernfs_targets[]; +#define KERNFS_TARGET_ROOT 0 + #endif /* KERNEL */