]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/file_internal.h
xnu-2050.18.24.tar.gz
[apple/xnu.git] / bsd / sys / file_internal.h
index 5ee8ea4fe4bc721de3936f455f13b9db92c51d85..473415d1d399ad2b1c2f7ac35bf220e1d58855b5 100644 (file)
@@ -105,14 +105,17 @@ struct fileproc {
 #define FP_WAITCLOSE   0x0040
 #define FP_AIOISSUED   0x0080
 #define FP_WAITEVENT   0x0100
+#define FP_SELCONFLICT 0x0200  /* select conflict on an individual fp */
 
-#define FP_VALID_FLAGS (FP_INCREATE | FP_INCLOSE | FP_INSELECT | FP_INCHRREAD | FP_WRITTEN | FP_WRITTEN | FP_CLOSING | FP_WAITCLOSE | FP_AIOISSUED | FP_WAITEVENT)
+#define FP_VALID_FLAGS (FP_INCREATE | FP_INCLOSE | FP_INSELECT | FP_INCHRREAD | FP_WRITTEN | FP_CLOSING | FP_WAITCLOSE | FP_AIOISSUED | FP_WAITEVENT | FP_SELCONFLICT)
 
 
 #ifndef _KAUTH_CRED_T
 #define        _KAUTH_CRED_T
 struct ucred;
 typedef struct ucred *kauth_cred_t;
+struct posix_cred;
+typedef struct posix_cred *posix_cred_t;
 #endif /* !_KAUTH_CRED_T */
 
 /* file types */
@@ -132,9 +135,10 @@ typedef enum {
 #define FG_WINSMSGQ    0x04    /* wait for the fielglob is in msgque */
 #define FG_RMMSGQ      0x08    /* the fileglob is being removed from msgqueue */
 #define FG_WRMMSGQ     0x10    /* wait for the fileglob to  be removed from msgqueue */
+#define FG_PORTMADE    0x20    /* a port was at some point created for this fileglob */
+#define FG_NOSIGPIPE   0x40    /* don't deliver SIGPIPE with EPIPE return */
 
 struct fileglob {
-       LIST_ENTRY(fileglob) f_list;/* list of active files */
        LIST_ENTRY(fileglob) f_msglist;/* list of active files */
        int32_t fg_flag;                /* see fcntl.h */
        file_type_t fg_type;            /* descriptor type */
@@ -158,20 +162,16 @@ struct fileglob {
                int     (*fo_drain)     (struct fileproc *fp, vfs_context_t ctx);
        } *fg_ops;
        off_t   fg_offset;
-       caddr_t fg_data;                /* vnode or socket or SHM or semaphore */
+       void    *fg_data;               /* vnode or socket or SHM or semaphore */
        lck_mtx_t fg_lock;
        int32_t fg_lflags;              /* file global flags */
-       unsigned int fg_lockpc[4];
-       unsigned int fg_unlockpc[4];
 #if CONFIG_MACF
        struct label *fg_label;  /* JMM - use the one in the cred? */
 #endif
 };
 
 #ifdef __APPLE_API_PRIVATE
-LIST_HEAD(filelist, fileglob);
 LIST_HEAD(fmsglist, fileglob);
-extern struct filelist filehead;       /* head of list of open files */
 extern struct fmsglist fmsghead;       /* head of list of open files */
 extern int maxfiles;                   /* kernel limit on number of open files */
 extern int nfiles;                     /* actual number of open files */