-
Notifications
You must be signed in to change notification settings - Fork 3.2k
/
Copy pathswoole_coroutine_c_api.h
139 lines (133 loc) Β· 5.83 KB
/
swoole_coroutine_c_api.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/*
+----------------------------------------------------------------------+
| Swoole |
+----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the Apache license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.apache.org/licenses/LICENSE-2.0.html |
| If you did not receive a copy of the Apache2.0 license and are unable|
| to obtain it through the world-wide-web, please send a note to |
| [email protected] so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Tianfeng Han <[email protected]> |
+----------------------------------------------------------------------+
*/
#ifndef SW_COROUTINE_API_H_
#define SW_COROUTINE_API_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/statvfs.h>
#include <stdint.h>
#include <stdio.h>
#include <netdb.h>
#include <poll.h>
#include <dirent.h>
#ifdef __APPLE__
extern int fdatasync(int);
#endif
/**
* base
*/
uint8_t swoole_coroutine_is_in(void);
long swoole_coroutine_get_current_id(void);
void swoole_coroutine_sleep(int sec);
void swoole_coroutine_usleep(int usec);
/**
* file
*/
int swoole_coroutine_access(const char *pathname, int mode);
int swoole_coroutine_open(const char *pathname, int flags, mode_t mode);
ssize_t swoole_coroutine_read(int fd, void *buf, size_t count);
ssize_t swoole_coroutine_write(int fd, const void *buf, size_t count);
off_t swoole_coroutine_lseek(int fd, off_t offset, int whence);
int swoole_coroutine_fstat(int fd, struct stat *statbuf);
int swoole_coroutine_stat(const char *path, struct stat *statbuf);
int swoole_coroutine_lstat(const char *path, struct stat *statbuf);
int swoole_coroutine_readlink(const char *pathname, char *buf, size_t len);
int swoole_coroutine_unlink(const char *pathname);
int swoole_coroutine_mkdir(const char *pathname, mode_t mode);
int swoole_coroutine_rmdir(const char *pathname);
int swoole_coroutine_rename(const char *oldpath, const char *newpath);
int swoole_coroutine_flock(int fd, int operation);
int swoole_coroutine_flock_ex(const char *filename, int fd, int operation);
int swoole_coroutine_statvfs(const char *path, struct statvfs *buf);
int swoole_coroutine_close_file(int fd);
int swoole_coroutine_fsync(int fd);
int swoole_coroutine_fdatasync(int fd);
/**
* io_uring
*/
#ifdef SW_USE_IOURING
int swoole_coroutine_iouring_open(const char *pathname, int flags, mode_t mode);
int swoole_coroutine_iouring_close_file(int fd);
ssize_t swoole_coroutine_iouring_read(int sockfd, void *buf, size_t count);
ssize_t swoole_coroutine_iouring_write(int sockfd, const void *buf, size_t count);
int swoole_coroutine_iouring_rename(const char *oldpath, const char *newpath);
int swoole_coroutine_iouring_mkdir(const char *pathname, mode_t mode);
int swoole_coroutine_iouring_unlink(const char *pathname);
#ifdef HAVE_IOURING_STATX
int swoole_coroutine_iouring_fstat(int fd, struct stat *statbuf);
int swoole_coroutine_iouring_stat(const char *path, struct stat *statbuf);
int swoole_coroutine_iouring_lstat(const char *path, struct stat *statbuf);
#endif
int swoole_coroutine_iouring_rmdir(const char *pathname);
int swoole_coroutine_iouring_fsync(int fd);
int swoole_coroutine_iouring_fdatasync(int fd);
#endif
/**
* stdio
*/
FILE *swoole_coroutine_fopen(const char *pathname, const char *mode);
FILE *swoole_coroutine_fdopen(int fd, const char *mode);
FILE *swoole_coroutine_freopen(const char *pathname, const char *mode, FILE *stream);
size_t swoole_coroutine_fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t swoole_coroutine_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
char *swoole_coroutine_fgets(char *s, int size, FILE *stream);
int swoole_coroutine_fputs(const char *s, FILE *stream);
int swoole_coroutine_feof(FILE *stream);
int swoole_coroutine_fclose(FILE *stream);
/**
* dir
*/
DIR *swoole_coroutine_opendir(const char *name);
struct dirent *swoole_coroutine_readdir(DIR *dirp);
int swoole_coroutine_closedir(DIR *dirp);
/**
* socket
*/
int swoole_coroutine_socket(int domain, int type, int protocol);
int swoole_coroutine_socket_create(int fd);
int swoole_coroutine_socket_unwrap(int fd);
uint8_t swoole_coroutine_socket_exists(int fd);
ssize_t swoole_coroutine_send(int sockfd, const void *buf, size_t len, int flags);
ssize_t swoole_coroutine_sendmsg(int sockfd, const struct msghdr *msg, int flags);
ssize_t swoole_coroutine_recv(int sockfd, void *buf, size_t len, int flags);
ssize_t swoole_coroutine_recvmsg(int sockfd, struct msghdr *msg, int flags);
int swoole_coroutine_close(int fd);
int swoole_coroutine_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
int swoole_coroutine_poll(struct pollfd *fds, nfds_t nfds, int timeout);
int swoole_coroutine_poll_fake(struct pollfd *fds, nfds_t nfds, int timeout);
int swoole_coroutine_socket_set_timeout(int fd, int which, double timeout);
int swoole_coroutine_socket_set_connect_timeout(int fd, double timeout);
int swoole_coroutine_socket_wait_event(int fd, int event, double timeout);
int swoole_coroutine_getaddrinfo(const char *name,
const char *service,
const struct addrinfo *req,
struct addrinfo **pai);
struct hostent *swoole_coroutine_gethostbyname(const char *name);
/**
* wait
*/
size_t swoole_coroutine_wait_count(void);
pid_t swoole_coroutine_waitpid(pid_t __pid, int *__stat_loc, int __options);
pid_t swoole_coroutine_wait(int *__stat_loc);
#ifdef __cplusplus
} /* end extern "C" */
#endif
#endif