| Index: third_party/psutil/psutil/_psutil_common.c | 
| diff --git a/third_party/psutil/psutil/_psutil_common.c b/third_party/psutil/psutil/_psutil_common.c | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..79aef970f307021f23faede792e7e2411e299998 | 
| --- /dev/null | 
| +++ b/third_party/psutil/psutil/_psutil_common.c | 
| @@ -0,0 +1,39 @@ | 
| +/* | 
| + * $Id: _psutil_common.c 1142 2011-10-05 18:45:49Z g.rodola $ | 
| + * | 
| + * Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. | 
| + * Use of this source code is governed by a BSD-style license that can be | 
| + * found in the LICENSE file. | 
| + * | 
| + * Routines common to all platforms. | 
| + */ | 
| + | 
| +#include <Python.h> | 
| + | 
| + | 
| +/* | 
| + * Set OSError(errno=ESRCH, strerror="No such process") Python exception. | 
| + */ | 
| +PyObject * | 
| +NoSuchProcess(void) { | 
| +    PyObject *exc; | 
| +    char *msg = strerror(ESRCH); | 
| +    exc = PyObject_CallFunction(PyExc_OSError, "(is)", ESRCH, msg); | 
| +    PyErr_SetObject(PyExc_OSError, exc); | 
| +    Py_XDECREF(exc); | 
| +    return NULL; | 
| +} | 
| + | 
| +/* | 
| + * Set OSError(errno=EACCES, strerror="Permission denied") Python exception. | 
| + */ | 
| +PyObject * | 
| +AccessDenied(void) { | 
| +    PyObject *exc; | 
| +    char *msg = strerror(EACCES); | 
| +    exc = PyObject_CallFunction(PyExc_OSError, "(is)", EACCES, msg); | 
| +    PyErr_SetObject(PyExc_OSError, exc); | 
| +    Py_XDECREF(exc); | 
| +    return NULL; | 
| +} | 
| + | 
|  |