rt-thread-official/components/libc/posix/io/aio/aio.h

48 lines
1.2 KiB
C
Raw Normal View History

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.
*/
#ifndef __AIO_H__
#define __AIO_H__
2017-12-31 14:49:18 +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