17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ci#if defined(HAVE_GETRUSAGE) 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ciPyDoc_STRVAR(resource_getrusage__doc__, 87db96d56Sopenharmony_ci"getrusage($module, who, /)\n" 97db96d56Sopenharmony_ci"--\n" 107db96d56Sopenharmony_ci"\n"); 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci#define RESOURCE_GETRUSAGE_METHODDEF \ 137db96d56Sopenharmony_ci {"getrusage", (PyCFunction)resource_getrusage, METH_O, resource_getrusage__doc__}, 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_cistatic PyObject * 167db96d56Sopenharmony_ciresource_getrusage_impl(PyObject *module, int who); 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_cistatic PyObject * 197db96d56Sopenharmony_ciresource_getrusage(PyObject *module, PyObject *arg) 207db96d56Sopenharmony_ci{ 217db96d56Sopenharmony_ci PyObject *return_value = NULL; 227db96d56Sopenharmony_ci int who; 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci who = _PyLong_AsInt(arg); 257db96d56Sopenharmony_ci if (who == -1 && PyErr_Occurred()) { 267db96d56Sopenharmony_ci goto exit; 277db96d56Sopenharmony_ci } 287db96d56Sopenharmony_ci return_value = resource_getrusage_impl(module, who); 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ciexit: 317db96d56Sopenharmony_ci return return_value; 327db96d56Sopenharmony_ci} 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci#endif /* defined(HAVE_GETRUSAGE) */ 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ciPyDoc_STRVAR(resource_getrlimit__doc__, 377db96d56Sopenharmony_ci"getrlimit($module, resource, /)\n" 387db96d56Sopenharmony_ci"--\n" 397db96d56Sopenharmony_ci"\n"); 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci#define RESOURCE_GETRLIMIT_METHODDEF \ 427db96d56Sopenharmony_ci {"getrlimit", (PyCFunction)resource_getrlimit, METH_O, resource_getrlimit__doc__}, 437db96d56Sopenharmony_ci 447db96d56Sopenharmony_cistatic PyObject * 457db96d56Sopenharmony_ciresource_getrlimit_impl(PyObject *module, int resource); 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_cistatic PyObject * 487db96d56Sopenharmony_ciresource_getrlimit(PyObject *module, PyObject *arg) 497db96d56Sopenharmony_ci{ 507db96d56Sopenharmony_ci PyObject *return_value = NULL; 517db96d56Sopenharmony_ci int resource; 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci resource = _PyLong_AsInt(arg); 547db96d56Sopenharmony_ci if (resource == -1 && PyErr_Occurred()) { 557db96d56Sopenharmony_ci goto exit; 567db96d56Sopenharmony_ci } 577db96d56Sopenharmony_ci return_value = resource_getrlimit_impl(module, resource); 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ciexit: 607db96d56Sopenharmony_ci return return_value; 617db96d56Sopenharmony_ci} 627db96d56Sopenharmony_ci 637db96d56Sopenharmony_ciPyDoc_STRVAR(resource_setrlimit__doc__, 647db96d56Sopenharmony_ci"setrlimit($module, resource, limits, /)\n" 657db96d56Sopenharmony_ci"--\n" 667db96d56Sopenharmony_ci"\n"); 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci#define RESOURCE_SETRLIMIT_METHODDEF \ 697db96d56Sopenharmony_ci {"setrlimit", _PyCFunction_CAST(resource_setrlimit), METH_FASTCALL, resource_setrlimit__doc__}, 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_cistatic PyObject * 727db96d56Sopenharmony_ciresource_setrlimit_impl(PyObject *module, int resource, PyObject *limits); 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_cistatic PyObject * 757db96d56Sopenharmony_ciresource_setrlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 767db96d56Sopenharmony_ci{ 777db96d56Sopenharmony_ci PyObject *return_value = NULL; 787db96d56Sopenharmony_ci int resource; 797db96d56Sopenharmony_ci PyObject *limits; 807db96d56Sopenharmony_ci 817db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("setrlimit", nargs, 2, 2)) { 827db96d56Sopenharmony_ci goto exit; 837db96d56Sopenharmony_ci } 847db96d56Sopenharmony_ci resource = _PyLong_AsInt(args[0]); 857db96d56Sopenharmony_ci if (resource == -1 && PyErr_Occurred()) { 867db96d56Sopenharmony_ci goto exit; 877db96d56Sopenharmony_ci } 887db96d56Sopenharmony_ci limits = args[1]; 897db96d56Sopenharmony_ci return_value = resource_setrlimit_impl(module, resource, limits); 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ciexit: 927db96d56Sopenharmony_ci return return_value; 937db96d56Sopenharmony_ci} 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci#if defined(HAVE_PRLIMIT) 967db96d56Sopenharmony_ci 977db96d56Sopenharmony_ciPyDoc_STRVAR(resource_prlimit__doc__, 987db96d56Sopenharmony_ci"prlimit(pid, resource, [limits])"); 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ci#define RESOURCE_PRLIMIT_METHODDEF \ 1017db96d56Sopenharmony_ci {"prlimit", (PyCFunction)resource_prlimit, METH_VARARGS, resource_prlimit__doc__}, 1027db96d56Sopenharmony_ci 1037db96d56Sopenharmony_cistatic PyObject * 1047db96d56Sopenharmony_ciresource_prlimit_impl(PyObject *module, pid_t pid, int resource, 1057db96d56Sopenharmony_ci int group_right_1, PyObject *limits); 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_cistatic PyObject * 1087db96d56Sopenharmony_ciresource_prlimit(PyObject *module, PyObject *args) 1097db96d56Sopenharmony_ci{ 1107db96d56Sopenharmony_ci PyObject *return_value = NULL; 1117db96d56Sopenharmony_ci pid_t pid; 1127db96d56Sopenharmony_ci int resource; 1137db96d56Sopenharmony_ci int group_right_1 = 0; 1147db96d56Sopenharmony_ci PyObject *limits = NULL; 1157db96d56Sopenharmony_ci 1167db96d56Sopenharmony_ci switch (PyTuple_GET_SIZE(args)) { 1177db96d56Sopenharmony_ci case 2: 1187db96d56Sopenharmony_ci if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "i:prlimit", &pid, &resource)) { 1197db96d56Sopenharmony_ci goto exit; 1207db96d56Sopenharmony_ci } 1217db96d56Sopenharmony_ci break; 1227db96d56Sopenharmony_ci case 3: 1237db96d56Sopenharmony_ci if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "iO:prlimit", &pid, &resource, &limits)) { 1247db96d56Sopenharmony_ci goto exit; 1257db96d56Sopenharmony_ci } 1267db96d56Sopenharmony_ci group_right_1 = 1; 1277db96d56Sopenharmony_ci break; 1287db96d56Sopenharmony_ci default: 1297db96d56Sopenharmony_ci PyErr_SetString(PyExc_TypeError, "resource.prlimit requires 2 to 3 arguments"); 1307db96d56Sopenharmony_ci goto exit; 1317db96d56Sopenharmony_ci } 1327db96d56Sopenharmony_ci return_value = resource_prlimit_impl(module, pid, resource, group_right_1, limits); 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_ciexit: 1357db96d56Sopenharmony_ci return return_value; 1367db96d56Sopenharmony_ci} 1377db96d56Sopenharmony_ci 1387db96d56Sopenharmony_ci#endif /* defined(HAVE_PRLIMIT) */ 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ciPyDoc_STRVAR(resource_getpagesize__doc__, 1417db96d56Sopenharmony_ci"getpagesize($module, /)\n" 1427db96d56Sopenharmony_ci"--\n" 1437db96d56Sopenharmony_ci"\n"); 1447db96d56Sopenharmony_ci 1457db96d56Sopenharmony_ci#define RESOURCE_GETPAGESIZE_METHODDEF \ 1467db96d56Sopenharmony_ci {"getpagesize", (PyCFunction)resource_getpagesize, METH_NOARGS, resource_getpagesize__doc__}, 1477db96d56Sopenharmony_ci 1487db96d56Sopenharmony_cistatic int 1497db96d56Sopenharmony_ciresource_getpagesize_impl(PyObject *module); 1507db96d56Sopenharmony_ci 1517db96d56Sopenharmony_cistatic PyObject * 1527db96d56Sopenharmony_ciresource_getpagesize(PyObject *module, PyObject *Py_UNUSED(ignored)) 1537db96d56Sopenharmony_ci{ 1547db96d56Sopenharmony_ci PyObject *return_value = NULL; 1557db96d56Sopenharmony_ci int _return_value; 1567db96d56Sopenharmony_ci 1577db96d56Sopenharmony_ci _return_value = resource_getpagesize_impl(module); 1587db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 1597db96d56Sopenharmony_ci goto exit; 1607db96d56Sopenharmony_ci } 1617db96d56Sopenharmony_ci return_value = PyLong_FromLong((long)_return_value); 1627db96d56Sopenharmony_ci 1637db96d56Sopenharmony_ciexit: 1647db96d56Sopenharmony_ci return return_value; 1657db96d56Sopenharmony_ci} 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ci#ifndef RESOURCE_GETRUSAGE_METHODDEF 1687db96d56Sopenharmony_ci #define RESOURCE_GETRUSAGE_METHODDEF 1697db96d56Sopenharmony_ci#endif /* !defined(RESOURCE_GETRUSAGE_METHODDEF) */ 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ci#ifndef RESOURCE_PRLIMIT_METHODDEF 1727db96d56Sopenharmony_ci #define RESOURCE_PRLIMIT_METHODDEF 1737db96d56Sopenharmony_ci#endif /* !defined(RESOURCE_PRLIMIT_METHODDEF) */ 1747db96d56Sopenharmony_ci/*[clinic end generated code: output=7c57d4f3688d3f07 input=a9049054013a1b77]*/ 175