diff options
Diffstat (limited to 'src/sys/include/os')
-rw-r--r-- | src/sys/include/os/filedesc.h | 24 | ||||
-rw-r--r-- | src/sys/include/os/vnode.h | 7 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/sys/include/os/filedesc.h b/src/sys/include/os/filedesc.h index b773de9..95400ed 100644 --- a/src/sys/include/os/filedesc.h +++ b/src/sys/include/os/filedesc.h @@ -52,6 +52,18 @@ struct filedesc { }; /* + * Allocate a file descriptor from a specific process's + * file descriptor table + * + * @procp: Process to allocate fd from + * @fd_res: Result pointer is written here + * + * Returns zero on success, otherwise a less than + * zero value upon failure + */ +int fd_alloc(struct proc *procp, struct filedesc **fd_res); + +/* * Duplicate a file descriptor * * @procp: Process to duplicate from @@ -63,6 +75,18 @@ struct filedesc { struct filedesc *fd_dup(struct proc *procp, int fd); /* + * Look up a file descriptor that belongs to a specific + * process by using its fd number + * + * @procp: Process to look up + * @fd: File descriptor number + * + * Returns the file descriptor pointer on success, + * otherwise a less than zero value on failure + */ +struct filedesc *fd_get(struct proc *procp, int fd); + +/* * Initialize a process file descriptor table * and set up standard streams * diff --git a/src/sys/include/os/vnode.h b/src/sys/include/os/vnode.h index 77cadb2..8cdcded 100644 --- a/src/sys/include/os/vnode.h +++ b/src/sys/include/os/vnode.h @@ -44,12 +44,14 @@ struct vop; * @VTYPE_NONE: Vnode is yet to be assigned a type * @VTYPE_FILE: Vnode references a file * @VTYPE_DIR: Vnode references a directory + * @VTYPE_SOCK: Vnode references a socket * @__N_VTYPE: Number of valid nodes on the system */ typedef enum { VTYPE_NONE, VTYPE_FILE, VTYPE_DIR, + VTYPE_SOCK, __N_VTYPE } vtype_t; @@ -88,9 +90,11 @@ struct vop_rw_data { * filesystem * * @ndp: Path component to create + * @vtype: Vnode type */ struct vop_create_args { struct nameidata *ndp; + vtype_t vtype; }; /* @@ -204,11 +208,12 @@ int vop_reclaim(struct vnode *vp, int flags); * * @vp: Vnode of parent directory * @ndp: Namei descriptor of path component + * @type: Vnode type to create with * * Returns zero on success, otherwise a less than zero * value on failure. */ -int vop_create(struct vnode *vp, struct nameidata *ndp); +int vop_create(struct vnode *vp, struct nameidata *ndp, vtype_t type); /* * Get the attributes of a file |