]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/aio_kern.h
xnu-792.10.96.tar.gz
[apple/xnu.git] / bsd / sys / aio_kern.h
index 6c113a744c223a67ab3c3ec5dd8c4245684151fa..09401f0b3d7b9e2f01ed8e224dc6741864b41e12 100644 (file)
@@ -38,15 +38,15 @@ struct aio_workq_entry
 {
        TAILQ_ENTRY( aio_workq_entry )  aio_workq_link;
        struct proc                                             *procp;         /* user proc that queued this request */
-       struct aiocb                                    *uaiocbp;       /* pointer passed in from user land */
-       struct aiocb                                    *fsyncp;        /* not NULL means this request must complete */
+       user_addr_t                                             uaiocbp;        /* pointer passed in from user land */
+       user_addr_t                                             fsyncp;         /* not NULL means this request must complete */
                                                                                                /* before an aio_fsync call can proceed. */
        vm_map_t                                                aio_map;        /* user land map we have a reference to */
-       ssize_t                                                 returnval;      /* return value from read / write request */    
+       user_ssize_t                                    returnval;      /* return value from read / write request */    
        int                                                             errorval;       /* error value from read / write request */
        int                                                             flags;          
        long                                                    group_tag;      /* identifier used to group IO requests */
-       struct aiocb                                    aiocb;          /* copy of aiocb from user land */
+       struct user_aiocb                               aiocb;          /* copy of aiocb from user land */
 };
 typedef struct aio_workq_entry aio_workq_entry;
 
@@ -66,11 +66,27 @@ typedef struct aio_workq_entry aio_workq_entry;
                                                                        /*      waiting for one or more active IO requests to */
                                                                        /*      complete */
 
+/*
+ * Prototypes
+ */
+
+__private_extern__ void                
+_aio_close(struct proc *p, int fd);
+
+__private_extern__ void                
+_aio_exit(struct proc *p);
+
+__private_extern__ void                
+_aio_exec(struct proc *p);
+
+__private_extern__ void                
+_aio_create_worker_threads(int num);
+
+__private_extern__ void                
+aio_init(void);
 
-__private_extern__ void                _aio_close( struct proc *p, int fd );
-__private_extern__ void                _aio_exit( struct proc *p );
-__private_extern__ void                _aio_exec( struct proc *p );
-__private_extern__ void                _aio_create_worker_threads( int num );
+task_t                                         
+get_aiotask(void);
 
 #endif /* KERNEL */