aio_win32.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_SRC_DISKIO_AIO_AIO_WIN32_H
10 #define SQUID_SRC_DISKIO_AIO_AIO_WIN32_H
11 
12 #if HAVE_DISKIO_MODULE_AIO
13 
14 #ifndef off64_t
15 typedef int64_t off64_t;
16 #endif
17 
18 #if _SQUID_WINDOWS_
19 
20 union sigval {
21  int sival_int; /* integer value */
22  void *sival_ptr; /* pointer value */
23 };
24 
25 struct sigevent {
26  int sigev_notify; /* notification mode */
27  int sigev_signo; /* signal number */
28  union sigval sigev_value; /* signal value */
29 };
30 
31 // #endif
32 
33 struct aiocb64 {
34  int aio_fildes; /* file descriptor */
35  void *aio_buf; /* buffer location */
36  size_t aio_nbytes; /* length of transfer */
37  off64_t aio_offset; /* file offset */
38  int aio_reqprio; /* request priority offset */
39 
40  struct sigevent aio_sigevent; /* signal number and offset */
41  int aio_lio_opcode; /* listio operation */
42 };
43 
44 struct aiocb {
45  int aio_fildes; /* file descriptor */
46  void *aio_buf; /* buffer location */
47  size_t aio_nbytes; /* length of transfer */
48 #if (_FILE_OFFSET_BITS == 64)
49 
50  off64_t aio_offset; /* file offset */
51 #else
52 
53  off_t aio_offset; /* file offset */
54 #endif
55 
56  int aio_reqprio; /* request priority offset */
57 
58  struct sigevent aio_sigevent; /* signal number and offset */
59  int aio_lio_opcode; /* listio operation */
60 };
61 
62 int aio_read(struct aiocb *);
63 
64 int aio_write(struct aiocb *);
65 
66 ssize_t aio_return(struct aiocb *);
67 
68 int aio_error(const struct aiocb *);
69 
70 int aio_read64(struct aiocb64 *);
71 
72 int aio_write64(struct aiocb64 *);
73 
74 ssize_t aio_return64(struct aiocb64 *);
75 
76 int aio_error64(const struct aiocb64 *);
77 int aio_open(const char *, int);
78 void aio_close(int);
79 
80 #endif /* _SQUID_WINDOWS_ */
81 #endif /* HAVE_DISKIO_MODULE_AIO */
82 #endif /* SQUID_SRC_DISKIO_AIO_AIO_WIN32_H */
83 

 

Introduction

Documentation

Support

Miscellaneous