summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Modules/fcntlmodule.c
diff options
context:
space:
mode:
authorshadchin <[email protected]>2022-04-18 12:39:32 +0300
committershadchin <[email protected]>2022-04-18 12:39:32 +0300
commitd4be68e361f4258cf0848fc70018dfe37a2acc24 (patch)
tree153e294cd97ac8b5d7a989612704a0c1f58e8ad4 /contrib/tools/python3/src/Modules/fcntlmodule.c
parent260c02f5ccf242d9d9b8a873afaf6588c00237d6 (diff)
IGNIETFERRO-1816 Update Python 3 from 3.9.12 to 3.10.4
ref:9f96be6d02ee8044fdd6f124b799b270c20ce641
Diffstat (limited to 'contrib/tools/python3/src/Modules/fcntlmodule.c')
-rw-r--r--contrib/tools/python3/src/Modules/fcntlmodule.c77
1 files changed, 35 insertions, 42 deletions
diff --git a/contrib/tools/python3/src/Modules/fcntlmodule.c b/contrib/tools/python3/src/Modules/fcntlmodule.c
index 43f9b22f672..cdf0f9bf379 100644
--- a/contrib/tools/python3/src/Modules/fcntlmodule.c
+++ b/contrib/tools/python3/src/Modules/fcntlmodule.c
@@ -20,24 +20,12 @@ module fcntl
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=124b58387c158179]*/
-static int
-conv_descriptor(PyObject *object, int *target)
-{
- int fd = PyObject_AsFileDescriptor(object);
-
- if (fd < 0)
- return 0;
- *target = fd;
- return 1;
-}
-
-/* Must come after conv_descriptor definition. */
#include "clinic/fcntlmodule.c.h"
/*[clinic input]
fcntl.fcntl
- fd: object(type='int', converter='conv_descriptor')
+ fd: fildes
cmd as code: int
arg: object(c_default='NULL') = 0
/
@@ -57,7 +45,7 @@ corresponding to the return value of the fcntl call in the C code.
static PyObject *
fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)
-/*[clinic end generated code: output=888fc93b51c295bd input=8cefbe59b29efbe2]*/
+/*[clinic end generated code: output=888fc93b51c295bd input=7955340198e5f334]*/
{
unsigned int int_arg = 0;
int ret;
@@ -116,7 +104,7 @@ fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)
/*[clinic input]
fcntl.ioctl
- fd: object(type='int', converter='conv_descriptor')
+ fd: fildes
request as code: unsigned_int(bitwise=True)
arg as ob_arg: object(c_default='NULL') = 0
mutate_flag as mutate_arg: bool = True
@@ -155,7 +143,7 @@ code.
static PyObject *
fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
PyObject *ob_arg, int mutate_arg)
-/*[clinic end generated code: output=7f7f5840c65991be input=ede70c433cccbbb2]*/
+/*[clinic end generated code: output=7f7f5840c65991be input=967b4a4cbeceb0a8]*/
{
#define IOCTL_BUFSZ 1024
/* We use the unsigned non-checked 'I' format for the 'code' parameter
@@ -280,7 +268,7 @@ fcntl_ioctl_impl(PyObject *module, int fd, unsigned int code,
/*[clinic input]
fcntl.flock
- fd: object(type='int', converter='conv_descriptor')
+ fd: fildes
operation as code: int
/
@@ -292,7 +280,7 @@ function is emulated using fcntl()).
static PyObject *
fcntl_flock_impl(PyObject *module, int fd, int code)
-/*[clinic end generated code: output=84059e2b37d2fc64 input=b70a0a41ca22a8a0]*/
+/*[clinic end generated code: output=84059e2b37d2fc64 input=0bfc00f795953452]*/
{
int ret;
int async_err = 0;
@@ -346,7 +334,7 @@ fcntl_flock_impl(PyObject *module, int fd, int code)
/*[clinic input]
fcntl.lockf
- fd: object(type='int', converter='conv_descriptor')
+ fd: fildes
cmd as code: int
len as lenobj: object(c_default='NULL') = 0
start as startobj: object(c_default='NULL') = 0
@@ -380,7 +368,7 @@ starts. `whence` is as with fileobj.seek(), specifically:
static PyObject *
fcntl_lockf_impl(PyObject *module, int fd, int code, PyObject *lenobj,
PyObject *startobj, int whence)
-/*[clinic end generated code: output=4985e7a172e7461a input=3a5dc01b04371f1a]*/
+/*[clinic end generated code: output=4985e7a172e7461a input=5480479fc63a04b8]*/
{
int ret;
int async_err = 0;
@@ -577,6 +565,14 @@ all_ins(PyObject* m)
if (PyModule_AddIntMacro(m, F_SHLCK)) return -1;
#endif
+/* Linux specifics */
+#ifdef F_SETPIPE_SZ
+ if (PyModule_AddIntMacro(m, F_SETPIPE_SZ)) return -1;
+#endif
+#ifdef F_GETPIPE_SZ
+ if (PyModule_AddIntMacro(m, F_GETPIPE_SZ)) return -1;
+#endif
+
/* OS X specifics */
#ifdef F_FULLFSYNC
if (PyModule_AddIntMacro(m, F_FULLFSYNC)) return -1;
@@ -662,34 +658,31 @@ all_ins(PyObject* m)
return 0;
}
+static int
+fcntl_exec(PyObject *module)
+{
+ if (all_ins(module) < 0) {
+ return -1;
+ }
+ return 0;
+}
+
+static PyModuleDef_Slot fcntl_slots[] = {
+ {Py_mod_exec, fcntl_exec},
+ {0, NULL}
+};
static struct PyModuleDef fcntlmodule = {
PyModuleDef_HEAD_INIT,
- "fcntl",
- module_doc,
- -1,
- fcntl_methods,
- NULL,
- NULL,
- NULL,
- NULL
+ .m_name = "fcntl",
+ .m_doc = module_doc,
+ .m_size = 0,
+ .m_methods = fcntl_methods,
+ .m_slots = fcntl_slots,
};
PyMODINIT_FUNC
PyInit_fcntl(void)
{
- PyObject *m;
-
- /* Create the module and add the functions and documentation */
- m = PyModule_Create(&fcntlmodule);
- if (m == NULL)
- return NULL;
-
- /* Add some symbolic constants to the module */
- if (all_ins(m) < 0) {
- Py_DECREF(m);
- return NULL;
- }
-
- return m;
+ return PyModuleDef_Init(&fcntlmodule);
}