data.py get_cmdline: use errors=replace for unicode errors
[iotop.git] / iotop / _ioprio.c
blobce8ae6cdbe42da520f22658427a7dc2e0a697de4
1 #include <sys/syscall.h>
2 #include <Python.h>
4 #if PY_MAJOR_VERSION < 2 || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION <= 3)
5 #define NO_METHODS NoMethods
6 static PyMethodDef NoMethods[] = {
7 {NULL, NULL, 0, NULL}
8 };
9 #else
10 #define NO_METHODS NULL
11 #endif
13 #if PY_MAJOR_VERSION >= 3
14 PyDoc_STRVAR(doc, "SYS_ioprio_get and SYS_ioprio_set for syscalls");
15 static struct PyModuleDef mod = {
16 PyModuleDef_HEAD_INIT,
17 "_ioprio",
18 doc,
19 -1,
20 NO_METHODS,
21 NULL,
22 NULL,
23 NULL,
24 NULL
27 #define INIT_FUNC PyInit__ioprio
28 #define INIT_MOD PyModule_Create(&mod)
29 #define INIT_ERR NULL
30 #define INIT_RET return m
31 #else
32 #define INIT_FUNC init_ioprio
33 #define INIT_MOD Py_InitModule("_ioprio", NO_METHODS)
34 #define INIT_ERR
35 #define INIT_RET
36 #endif // PY_MAJOR_VERSION >= 3
38 PyMODINIT_FUNC INIT_FUNC(void)
40 PyObject *m = INIT_MOD;
42 if (m == NULL) {
43 return INIT_ERR;
46 #ifdef SYS_ioprio_get
47 PyModule_AddIntConstant(m, "SYS_ioprio_get", SYS_ioprio_get);
48 #endif
50 #ifdef SYS_ioprio_set
51 PyModule_AddIntConstant(m, "SYS_ioprio_set", SYS_ioprio_set);
52 #endif
54 INIT_RET;