Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_aio.c
Show First 20 Lines • Show All 2,820 Lines • ▼ Show 20 Lines | aiocb32_copyin(struct aiocb *ujob, struct kaiocb *kjob, int type) | ||||
int error; | int error; | ||||
error = copyin(ujob, &job32, sizeof(job32)); | error = copyin(ujob, &job32, sizeof(job32)); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
CP(job32, *kcb, aio_fildes); | CP(job32, *kcb, aio_fildes); | ||||
CP(job32, *kcb, aio_offset); | CP(job32, *kcb, aio_offset); | ||||
CP(job32, *kcb, aio_lio_opcode); | CP(job32, *kcb, aio_lio_opcode); | ||||
if (type == LIO_NOP) | |||||
type = kcb->aio_lio_opcode; | |||||
if (type & LIO_VECTORED) { | if (type & LIO_VECTORED) { | ||||
iov32 = PTRIN(job32.aio_iov); | iov32 = PTRIN(job32.aio_iov); | ||||
CP(job32, *kcb, aio_iovcnt); | CP(job32, *kcb, aio_iovcnt); | ||||
/* malloc a uio and copy in the iovec */ | /* malloc a uio and copy in the iovec */ | ||||
error = freebsd32_copyinuio(iov32, | error = freebsd32_copyinuio(iov32, | ||||
kcb->aio_iovcnt, &kjob->uiop); | kcb->aio_iovcnt, &kjob->uiop); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 324 Lines • Show Last 20 Lines |