]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/file_internal.h
xnu-3789.41.3.tar.gz
[apple/xnu.git] / bsd / sys / file_internal.h
index 172aa3d04db81ffa722ecfab7bc87a1bc4837f1c..60a47afa564dfbde91875b19c8e84e5705f3bcc0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2014 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2016 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
@@ -75,6 +75,7 @@
 #include <sys/lock.h>
 #include <sys/file.h>
 #include <sys/filedesc.h>
+#include <sys/guarded.h>
 
 struct proc;
 struct uio;
@@ -144,7 +145,8 @@ typedef enum {
        DTYPE_KQUEUE,           /* kqueue */
        DTYPE_PIPE,             /* pipe */
        DTYPE_FSEVENTS,         /* fsevents */
-       DTYPE_ATALK             /* (obsolete) */
+       DTYPE_ATALK,            /* (obsolete) */
+       DTYPE_NETPOLICY,        /* networking policy */
 } file_type_t;
 
 /* defines for fg_lflags */
@@ -185,7 +187,7 @@ struct fileglob {
                int     (*fo_drain)     (struct fileproc *fp, vfs_context_t ctx);
        } *fg_ops;
        off_t   fg_offset;
-       void    *fg_data;               /* vnode or socket or SHM or semaphore */
+       void    *fg_data;       /* vnode or socket or SHM or semaphore */
        void    *fg_vn_data;    /* Per fd vnode data, used for directories */
        lck_mtx_t fg_lock;
 #if CONFIG_MACF
@@ -229,7 +231,6 @@ int fp_getfpipe(struct proc *p, int fd, struct fileproc **resultfp, struct pipe
 struct atalk;
 int fp_getfatalk(struct proc *p, int fd, struct fileproc **resultfp, struct atalk  **resultatalk);
 struct vnode;
-int fp_getfvp(struct proc *p, int fd, struct fileproc **resultfp, struct vnode  **resultvp);
 int fp_getfvpandvid(struct proc *p, int fd, struct fileproc **resultfp, struct vnode  **resultvp, uint32_t * vidp);
 struct socket;
 int fp_getfsock(struct proc *p, int fd, struct fileproc **resultfp, struct socket  **results);
@@ -261,6 +262,8 @@ extern void fileproc_free(struct fileproc *fp);
 extern void guarded_fileproc_free(struct fileproc *fp);
 extern void fg_vn_data_free(void *fgvndata);
 extern int nameiat(struct nameidata *ndp, int dirfd);
+extern int falloc_guarded(struct proc *p, struct fileproc **fp, int *fd,
+    vfs_context_t ctx, const guardid_t *guard, u_int attrs);
 __END_DECLS
 
 #endif /* __APPLE_API_UNSTABLE */