Skip to content

Commit 4a7e313

Browse files
committed
Inline fileutils.h
1 parent 572f9d4 commit 4a7e313

File tree

1 file changed

+201
-0
lines changed
  • graalpython/com.oracle.graal.python.cext/include

1 file changed

+201
-0
lines changed
Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
#ifndef Py_FILEUTILS_H
2+
#define Py_FILEUTILS_H
3+
4+
#ifdef __cplusplus
5+
extern "C" {
6+
#endif
7+
8+
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
9+
PyAPI_FUNC(wchar_t *) Py_DecodeLocale(
10+
const char *arg,
11+
size_t *size);
12+
13+
PyAPI_FUNC(char*) Py_EncodeLocale(
14+
const wchar_t *text,
15+
size_t *error_pos);
16+
17+
PyAPI_FUNC(char*) _Py_EncodeLocaleRaw(
18+
const wchar_t *text,
19+
size_t *error_pos);
20+
#endif
21+
22+
#ifdef Py_BUILD_CORE
23+
PyAPI_FUNC(int) _Py_DecodeUTF8Ex(
24+
const char *arg,
25+
Py_ssize_t arglen,
26+
wchar_t **wstr,
27+
size_t *wlen,
28+
const char **reason,
29+
int surrogateescape);
30+
31+
PyAPI_FUNC(int) _Py_EncodeUTF8Ex(
32+
const wchar_t *text,
33+
char **str,
34+
size_t *error_pos,
35+
const char **reason,
36+
int raw_malloc,
37+
int surrogateescape);
38+
39+
PyAPI_FUNC(wchar_t*) _Py_DecodeUTF8_surrogateescape(
40+
const char *arg,
41+
Py_ssize_t arglen);
42+
43+
PyAPI_FUNC(int) _Py_DecodeLocaleEx(
44+
const char *arg,
45+
wchar_t **wstr,
46+
size_t *wlen,
47+
const char **reason,
48+
int current_locale,
49+
int surrogateescape);
50+
51+
PyAPI_FUNC(int) _Py_EncodeLocaleEx(
52+
const wchar_t *text,
53+
char **str,
54+
size_t *error_pos,
55+
const char **reason,
56+
int current_locale,
57+
int surrogateescape);
58+
#endif
59+
60+
#ifndef Py_LIMITED_API
61+
PyAPI_FUNC(PyObject *) _Py_device_encoding(int);
62+
63+
#if defined(MS_WINDOWS) || defined(__APPLE__)
64+
/* On Windows, the count parameter of read() is an int (bpo-9015, bpo-9611).
65+
On macOS 10.13, read() and write() with more than INT_MAX bytes
66+
fail with EINVAL (bpo-24658). */
67+
# define _PY_READ_MAX INT_MAX
68+
# define _PY_WRITE_MAX INT_MAX
69+
#else
70+
/* write() should truncate the input to PY_SSIZE_T_MAX bytes,
71+
but it's safer to do it ourself to have a portable behaviour */
72+
# define _PY_READ_MAX PY_SSIZE_T_MAX
73+
# define _PY_WRITE_MAX PY_SSIZE_T_MAX
74+
#endif
75+
76+
#ifdef MS_WINDOWS
77+
struct _Py_stat_struct {
78+
unsigned long st_dev;
79+
uint64_t st_ino;
80+
unsigned short st_mode;
81+
int st_nlink;
82+
int st_uid;
83+
int st_gid;
84+
unsigned long st_rdev;
85+
__int64 st_size;
86+
time_t st_atime;
87+
int st_atime_nsec;
88+
time_t st_mtime;
89+
int st_mtime_nsec;
90+
time_t st_ctime;
91+
int st_ctime_nsec;
92+
unsigned long st_file_attributes;
93+
};
94+
#else
95+
# define _Py_stat_struct stat
96+
#endif
97+
98+
PyAPI_FUNC(int) _Py_fstat(
99+
int fd,
100+
struct _Py_stat_struct *status);
101+
102+
PyAPI_FUNC(int) _Py_fstat_noraise(
103+
int fd,
104+
struct _Py_stat_struct *status);
105+
106+
PyAPI_FUNC(int) _Py_stat(
107+
PyObject *path,
108+
struct stat *status);
109+
110+
PyAPI_FUNC(int) _Py_open(
111+
const char *pathname,
112+
int flags);
113+
114+
PyAPI_FUNC(int) _Py_open_noraise(
115+
const char *pathname,
116+
int flags);
117+
118+
PyAPI_FUNC(FILE *) _Py_wfopen(
119+
const wchar_t *path,
120+
const wchar_t *mode);
121+
122+
PyAPI_FUNC(FILE*) _Py_fopen(
123+
const char *pathname,
124+
const char *mode);
125+
126+
PyAPI_FUNC(FILE*) _Py_fopen_obj(
127+
PyObject *path,
128+
const char *mode);
129+
130+
PyAPI_FUNC(Py_ssize_t) _Py_read(
131+
int fd,
132+
void *buf,
133+
size_t count);
134+
135+
PyAPI_FUNC(Py_ssize_t) _Py_write(
136+
int fd,
137+
const void *buf,
138+
size_t count);
139+
140+
PyAPI_FUNC(Py_ssize_t) _Py_write_noraise(
141+
int fd,
142+
const void *buf,
143+
size_t count);
144+
145+
#ifdef HAVE_READLINK
146+
PyAPI_FUNC(int) _Py_wreadlink(
147+
const wchar_t *path,
148+
wchar_t *buf,
149+
size_t bufsiz);
150+
#endif
151+
152+
#ifdef HAVE_REALPATH
153+
PyAPI_FUNC(wchar_t*) _Py_wrealpath(
154+
const wchar_t *path,
155+
wchar_t *resolved_path,
156+
size_t resolved_path_size);
157+
#endif
158+
159+
PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
160+
wchar_t *buf,
161+
size_t size);
162+
163+
PyAPI_FUNC(int) _Py_get_inheritable(int fd);
164+
165+
PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable,
166+
int *atomic_flag_works);
167+
168+
PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable,
169+
int *atomic_flag_works);
170+
171+
PyAPI_FUNC(int) _Py_dup(int fd);
172+
173+
#ifndef MS_WINDOWS
174+
PyAPI_FUNC(int) _Py_get_blocking(int fd);
175+
176+
PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
177+
#endif /* !MS_WINDOWS */
178+
179+
PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
180+
PyObject **decimal_point,
181+
PyObject **thousands_sep,
182+
const char **grouping);
183+
184+
#endif /* Py_LIMITED_API */
185+
186+
#ifdef Py_BUILD_CORE
187+
PyAPI_FUNC(int) _Py_GetForceASCII(void);
188+
189+
/* Reset "force ASCII" mode (if it was initialized).
190+
191+
This function should be called when Python changes the LC_CTYPE locale,
192+
so the "force ASCII" mode can be detected again on the new locale
193+
encoding. */
194+
PyAPI_FUNC(void) _Py_ResetForceASCII(void);
195+
#endif
196+
197+
#ifdef __cplusplus
198+
}
199+
#endif
200+
201+
#endif /* !Py_FILEUTILS_H */

0 commit comments

Comments
 (0)