Lines Matching refs:aiocbp

177 static boolean_t	is_already_queued(proc_t procp, user_addr_t aiocbp );
178 static boolean_t should_cancel(aio_workq_entry *entryp, user_addr_t aiocbp, int fd);
205 static int aio_queue_async_request(proc_t procp, user_addr_t aiocbp, int kindOfIO );
210 static int do_aio_cancel_locked(proc_t p, int fd, user_addr_t aiocbp, int wait_for_completion, boolean_t disable_notification );
218 user_addr_t aiocbp,
222 user_addr_t aiocbp,
498 * outstanding against file descriptor uap->fd. If uap->aiocbp is not
499 * NULL then only one specific IO is cancelled (if possible). If uap->aiocbp
510 (int)p, (int)uap->aiocbp, 0, 0, 0 );
520 if ( uap->aiocbp != USER_ADDR_NULL ) {
524 result = copyin( uap->aiocbp, &aiocb64, sizeof(aiocb64) );
531 result = copyin( uap->aiocbp, &aiocb32, sizeof(aiocb32) );
552 result = do_aio_cancel_locked( p, uap->fd, uap->aiocbp, 0, FALSE );
566 (int)p, (int)uap->aiocbp, result, 0, 0 );
626 * request referred to by uap->aiocbp. The error status is the errno
637 (int)p, (int)uap->aiocbp, 0, 0, 0 );
648 if ( entryp->uaiocbp == uap->aiocbp ) {
656 (int)p, (int)uap->aiocbp, *retval, 0, 0 );
663 if ( entryp->uaiocbp == uap->aiocbp ) {
668 (int)p, (int)uap->aiocbp, *retval, 0, 0 );
677 (int)p, (int)uap->aiocbp, error, 0, 0 );
687 * with the file indicated by the file descriptor (uap->aiocbp->aio_fildes) and
699 (int)p, (int)uap->aiocbp, uap->op, 0, 0 );
713 error = aio_queue_async_request( p, uap->aiocbp, fsync_kind );
719 (int)p, (int)uap->aiocbp, error, 0, 0 );
726 /* aio_read - asynchronously read uap->aiocbp->aio_nbytes bytes from the
727 * file descriptor (uap->aiocbp->aio_fildes) into the buffer
728 * (uap->aiocbp->aio_buf).
736 (int)p, (int)uap->aiocbp, 0, 0, 0 );
740 error = aio_queue_async_request( p, uap->aiocbp, AIO_READ );
745 (int)p, (int)uap->aiocbp, error, 0, 0 );
754 * request referred to by uap->aiocbp. The return status is the value
767 (int)p, (int)uap->aiocbp, 0, 0, 0 );
782 if ( entryp->uaiocbp == uap->aiocbp ) {
807 (int)p, (int)uap->aiocbp, *retval, 0, 0 );
815 if ( entryp->uaiocbp == uap->aiocbp ) {
818 (int)p, (int)uap->aiocbp, *retval, 0, 0 );
829 (int)p, (int)uap->aiocbp, error, 0, 0 );
952 should_cancel(aio_workq_entry *entryp, user_addr_t aiocbp, int fd)
954 if ( (aiocbp == USER_ADDR_NULL && fd == 0) ||
955 (aiocbp != USER_ADDR_NULL && entryp->uaiocbp == aiocbp) ||
956 (aiocbp == USER_ADDR_NULL && fd == entryp->aiocb.aio_fildes) ) {
967 * fd is 0 and aiocbp is NULL 2) cancel all async IOs for file descriptor - fd
968 * is > 0 and aiocbp is NULL 3) cancel one async IO associated with the given
969 * aiocbp.
974 * WARNING - do not deference aiocbp in this routine, it may point to user
980 do_aio_cancel_locked(proc_t p, int fd, user_addr_t aiocbp,
997 if (!should_cancel(entryp, aiocbp, fd)) {
1021 if ( aiocbp != USER_ADDR_NULL ) {
1050 if ( aiocbp != USER_ADDR_NULL ) {
1067 if (should_cancel(entryp, aiocbp, fd)) {
1072 if ( aiocbp != USER_ADDR_NULL ) {
1172 user_addr_t aiocbp;
1175 aiocbp = *(aiocbpp + i);
1176 if ( aiocbp == USER_ADDR_NULL )
1182 if ( entryp->uaiocbp == aiocbp ) {
1206 * same process we head back up to make sure this is for the correct aiocbp.
1207 * If it is the correct aiocbp we will return from where we do the check
1208 * (see entryp->uaiocbp == aiocbp after check_for_our_aiocbp label)
1234 /* aio_write - asynchronously write uap->aiocbp->aio_nbytes bytes to the
1235 * file descriptor (uap->aiocbp->aio_fildes) from the buffer
1236 * (uap->aiocbp->aio_buf).
1247 (int)p, (int)uap->aiocbp, 0, 0, 0 );
1249 error = aio_queue_async_request( p, uap->aiocbp, AIO_WRITE );
1254 (int)p, (int)uap->aiocbp, error, 0, 0 );
1851 aio_create_queue_entry(proc_t procp, user_addr_t aiocbp, void *group_tag, int kindOfIO)
1866 entryp->uaiocbp = aiocbp;
1875 result = copyin( aiocbp, &aiocb64, sizeof(aiocb64) );
1882 result = copyin( aiocbp, &aiocb32, sizeof(aiocb32) );
1927 aio_queue_async_request(proc_t procp, user_addr_t aiocbp, int kindOfIO )
1939 entryp = aio_create_queue_entry( procp, aiocbp, 0, kindOfIO);
1967 (int)procp, (int)aiocbp, 0, 0, 0 );
1994 * aiocbp The aio context buffer pointer
2016 lio_create_entry(proc_t procp, user_addr_t aiocbp, void *group_tag,
2022 entryp = aio_create_queue_entry( procp, aiocbp, group_tag, AIO_LIO);
2513 * aiocbp / process is there. Returns TRUE if there is a match
2520 user_addr_t aiocbp )
2529 if ( aiocbp == entryp->uaiocbp ) {
2537 if ( aiocbp == entryp->uaiocbp ) {