2017-12-31 14:49:18 +08:00
|
|
|
/*
|
2021-03-08 18:19:04 +08:00
|
|
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
2017-12-31 14:49:18 +08:00
|
|
|
*
|
2018-10-14 19:28:18 +08:00
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
2017-12-31 14:49:18 +08:00
|
|
|
*
|
|
|
|
* Change Logs:
|
|
|
|
* Date Author Notes
|
|
|
|
* 2017/12/30 Bernard The first version.
|
|
|
|
*/
|
|
|
|
|
2021-12-06 07:52:59 +08:00
|
|
|
#ifndef __AIO_H__
|
|
|
|
#define __AIO_H__
|
2017-12-31 14:49:18 +08:00
|
|
|
|
2021-07-21 01:43:48 +08:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <sys/signal.h>
|
|
|
|
#include <rtdevice.h>
|
|
|
|
|
2017-12-31 14:49:18 +08:00
|
|
|
struct aiocb
|
|
|
|
{
|
|
|
|
int aio_fildes; /* File descriptor. */
|
|
|
|
off_t aio_offset; /* File offset. */
|
|
|
|
|
|
|
|
volatile void *aio_buf; /* Location of buffer. */
|
|
|
|
size_t aio_nbytes; /* Length of transfer. */
|
|
|
|
int aio_reqprio; /* Request priority offset. */
|
|
|
|
struct sigevent aio_sigevent; /* Signal number and value. */
|
|
|
|
int aio_lio_opcode; /* Operation to be performed. */
|
|
|
|
|
|
|
|
int aio_result;
|
|
|
|
struct rt_work aio_work;
|
|
|
|
};
|
|
|
|
|
|
|
|
int aio_cancel(int fd, struct aiocb *cb);
|
|
|
|
int aio_error (const struct aiocb *cb);
|
|
|
|
|
|
|
|
int aio_fsync(int op, struct aiocb *cb);
|
|
|
|
|
|
|
|
int aio_read(struct aiocb *cb);
|
|
|
|
ssize_t aio_return(struct aiocb *cb);
|
|
|
|
int aio_suspend(const struct aiocb *const list[], int nent,
|
|
|
|
const struct timespec *timeout);
|
|
|
|
int aio_write(struct aiocb *cb);
|
|
|
|
|
|
|
|
int lio_listio(int mode, struct aiocb * const list[], int nent,
|
|
|
|
struct sigevent *sig);
|
|
|
|
|
|
|
|
#endif
|