mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			164 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*[clinic input]
 | 
						|
preserve
 | 
						|
[clinic start generated code]*/
 | 
						|
 | 
						|
PyDoc_STRVAR(resource_getrusage__doc__,
 | 
						|
"getrusage($module, who, /)\n"
 | 
						|
"--\n"
 | 
						|
"\n");
 | 
						|
 | 
						|
#define RESOURCE_GETRUSAGE_METHODDEF    \
 | 
						|
    {"getrusage", (PyCFunction)resource_getrusage, METH_O, resource_getrusage__doc__},
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_getrusage_impl(PyObject *module, int who);
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_getrusage(PyObject *module, PyObject *arg)
 | 
						|
{
 | 
						|
    PyObject *return_value = NULL;
 | 
						|
    int who;
 | 
						|
 | 
						|
    if (!PyArg_Parse(arg, "i:getrusage", &who)) {
 | 
						|
        goto exit;
 | 
						|
    }
 | 
						|
    return_value = resource_getrusage_impl(module, who);
 | 
						|
 | 
						|
exit:
 | 
						|
    return return_value;
 | 
						|
}
 | 
						|
 | 
						|
PyDoc_STRVAR(resource_getrlimit__doc__,
 | 
						|
"getrlimit($module, resource, /)\n"
 | 
						|
"--\n"
 | 
						|
"\n");
 | 
						|
 | 
						|
#define RESOURCE_GETRLIMIT_METHODDEF    \
 | 
						|
    {"getrlimit", (PyCFunction)resource_getrlimit, METH_O, resource_getrlimit__doc__},
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_getrlimit_impl(PyObject *module, int resource);
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_getrlimit(PyObject *module, PyObject *arg)
 | 
						|
{
 | 
						|
    PyObject *return_value = NULL;
 | 
						|
    int resource;
 | 
						|
 | 
						|
    if (!PyArg_Parse(arg, "i:getrlimit", &resource)) {
 | 
						|
        goto exit;
 | 
						|
    }
 | 
						|
    return_value = resource_getrlimit_impl(module, resource);
 | 
						|
 | 
						|
exit:
 | 
						|
    return return_value;
 | 
						|
}
 | 
						|
 | 
						|
PyDoc_STRVAR(resource_setrlimit__doc__,
 | 
						|
"setrlimit($module, resource, limits, /)\n"
 | 
						|
"--\n"
 | 
						|
"\n");
 | 
						|
 | 
						|
#define RESOURCE_SETRLIMIT_METHODDEF    \
 | 
						|
    {"setrlimit", (PyCFunction)resource_setrlimit, METH_FASTCALL, resource_setrlimit__doc__},
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_setrlimit_impl(PyObject *module, int resource, PyObject *limits);
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_setrlimit(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
 | 
						|
{
 | 
						|
    PyObject *return_value = NULL;
 | 
						|
    int resource;
 | 
						|
    PyObject *limits;
 | 
						|
 | 
						|
    if (!_PyArg_ParseStack(args, nargs, "iO:setrlimit",
 | 
						|
        &resource, &limits)) {
 | 
						|
        goto exit;
 | 
						|
    }
 | 
						|
 | 
						|
    if (!_PyArg_NoStackKeywords("setrlimit", kwnames)) {
 | 
						|
        goto exit;
 | 
						|
    }
 | 
						|
    return_value = resource_setrlimit_impl(module, resource, limits);
 | 
						|
 | 
						|
exit:
 | 
						|
    return return_value;
 | 
						|
}
 | 
						|
 | 
						|
#if defined(HAVE_PRLIMIT)
 | 
						|
 | 
						|
PyDoc_STRVAR(resource_prlimit__doc__,
 | 
						|
"prlimit(pid, resource, [limits])");
 | 
						|
 | 
						|
#define RESOURCE_PRLIMIT_METHODDEF    \
 | 
						|
    {"prlimit", (PyCFunction)resource_prlimit, METH_VARARGS, resource_prlimit__doc__},
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_prlimit_impl(PyObject *module, pid_t pid, int resource,
 | 
						|
                      int group_right_1, PyObject *limits);
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_prlimit(PyObject *module, PyObject *args)
 | 
						|
{
 | 
						|
    PyObject *return_value = NULL;
 | 
						|
    pid_t pid;
 | 
						|
    int resource;
 | 
						|
    int group_right_1 = 0;
 | 
						|
    PyObject *limits = NULL;
 | 
						|
 | 
						|
    switch (PyTuple_GET_SIZE(args)) {
 | 
						|
        case 2:
 | 
						|
            if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "i:prlimit", &pid, &resource)) {
 | 
						|
                goto exit;
 | 
						|
            }
 | 
						|
            break;
 | 
						|
        case 3:
 | 
						|
            if (!PyArg_ParseTuple(args, "" _Py_PARSE_PID "iO:prlimit", &pid, &resource, &limits)) {
 | 
						|
                goto exit;
 | 
						|
            }
 | 
						|
            group_right_1 = 1;
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            PyErr_SetString(PyExc_TypeError, "resource.prlimit requires 2 to 3 arguments");
 | 
						|
            goto exit;
 | 
						|
    }
 | 
						|
    return_value = resource_prlimit_impl(module, pid, resource, group_right_1, limits);
 | 
						|
 | 
						|
exit:
 | 
						|
    return return_value;
 | 
						|
}
 | 
						|
 | 
						|
#endif /* defined(HAVE_PRLIMIT) */
 | 
						|
 | 
						|
PyDoc_STRVAR(resource_getpagesize__doc__,
 | 
						|
"getpagesize($module, /)\n"
 | 
						|
"--\n"
 | 
						|
"\n");
 | 
						|
 | 
						|
#define RESOURCE_GETPAGESIZE_METHODDEF    \
 | 
						|
    {"getpagesize", (PyCFunction)resource_getpagesize, METH_NOARGS, resource_getpagesize__doc__},
 | 
						|
 | 
						|
static int
 | 
						|
resource_getpagesize_impl(PyObject *module);
 | 
						|
 | 
						|
static PyObject *
 | 
						|
resource_getpagesize(PyObject *module, PyObject *Py_UNUSED(ignored))
 | 
						|
{
 | 
						|
    PyObject *return_value = NULL;
 | 
						|
    int _return_value;
 | 
						|
 | 
						|
    _return_value = resource_getpagesize_impl(module);
 | 
						|
    if ((_return_value == -1) && PyErr_Occurred()) {
 | 
						|
        goto exit;
 | 
						|
    }
 | 
						|
    return_value = PyLong_FromLong((long)_return_value);
 | 
						|
 | 
						|
exit:
 | 
						|
    return return_value;
 | 
						|
}
 | 
						|
 | 
						|
#ifndef RESOURCE_PRLIMIT_METHODDEF
 | 
						|
    #define RESOURCE_PRLIMIT_METHODDEF
 | 
						|
#endif /* !defined(RESOURCE_PRLIMIT_METHODDEF) */
 | 
						|
/*[clinic end generated code: output=3af613da48e0f8c9 input=a9049054013a1b77]*/
 |