1/*
2 * Copyright (C) 2004 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
4 */
5
6#ifndef AIO_H__
7#define AIO_H__
8
9enum aio_type { AIO_READ, AIO_WRITE, AIO_MMAP };
10
11struct aio_thread_reply {
12	void *data;
13	int err;
14};
15
16struct aio_context {
17	int reply_fd;
18	struct aio_context *next;
19};
20
21#define INIT_AIO_CONTEXT { .reply_fd	= -1, \
22			   .next	= NULL }
23
24extern int submit_aio(enum aio_type type, int fd, char *buf, int len,
25		      unsigned long long offset, int reply_fd,
26                      struct aio_context *aio);
27
28#endif
29