mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
80 lines
1.7 KiB
Plaintext
80 lines
1.7 KiB
Plaintext
./" static inline void io_prep_pread(struct iocb *iocb, int fd, void *buf, size_t count, long long offset)
|
|
./" {
|
|
./" memset(iocb, 0, sizeof(*iocb));
|
|
./" iocb->aio_fildes = fd;
|
|
./" iocb->aio_lio_opcode = IO_CMD_PREAD;
|
|
./" iocb->aio_reqprio = 0;
|
|
./" iocb->u.c.buf = buf;
|
|
./" iocb->u.c.nbytes = count;
|
|
./" iocb->u.c.offset = offset;
|
|
./" }
|
|
.TH io_prep_pread 3 2002-09-12 "Linux 2.4" Linux AIO"
|
|
.SH NAME
|
|
io_prep_pread \- Set up asynchronous read
|
|
.SH SYNOPSYS
|
|
.nf
|
|
.B #include <errno.h>
|
|
.sp
|
|
.br
|
|
.B #include <libaio.h>
|
|
.br
|
|
.sp
|
|
.BI "inline void io_prep_pread(struct iocb *iocb, int fd, void *buf, size_t count, long long offset)
|
|
"
|
|
.sp
|
|
struct iocb {
|
|
void *data;
|
|
unsigned key;
|
|
short aio_lio_opcode;
|
|
short aio_reqprio;
|
|
int aio_fildes;
|
|
};
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.IR io_prep_pread
|
|
is an inline convenience function designed to facilitate the initialization of
|
|
the iocb for an asynchronous read operation.
|
|
|
|
The first
|
|
.TP
|
|
.IR "iocb->u.c.nbytes = count"
|
|
bytes of the file for which
|
|
.TP
|
|
.IR "iocb->aio_fildes = fd"
|
|
is a descriptor are written to the buffer
|
|
starting at
|
|
.TP
|
|
.IR "iocb->u.c.buf = buf"
|
|
.
|
|
.br
|
|
Reading starts at the absolute position
|
|
.TP
|
|
.IR "ioc->u.c.offset = offset"
|
|
in the file.
|
|
.PP
|
|
This function returns immediately . To schedule the operation, the
|
|
function
|
|
.IR io_submit
|
|
must be called.
|
|
.PP
|
|
Simultaneous asynchronous operations using the same iocb produce
|
|
undefined results.
|
|
.SH "RETURN VALUES"
|
|
None
|
|
.SH ERRORS
|
|
None
|
|
.SH "SEE ALSO"
|
|
.BR io(3),
|
|
.BR io_cancel(3),
|
|
.BR io_fsync(3),
|
|
.BR io_getevents(3),
|
|
.BR io_prep_fsync(3),
|
|
.BR io_prep_pwrite(3),
|
|
.BR io_queue_init(3),
|
|
.BR io_queue_release(3),
|
|
.BR io_queue_run(3),
|
|
.BR io_queue_wait(3),
|
|
.BR io_set_callback(3),
|
|
.BR io_submit(3),
|
|
.BR errno(3)
|