| /* XXX getter, setter, getsetlist and wrapperbase need 'Py'-prefixed names */ |
| |
| typedef PyObject *(*getter)(PyObject *, void *); |
| typedef int (*setter)(PyObject *, PyObject *, void *); |
| |
| struct getsetlist { |
| char *name; |
| getter get; |
| setter set; |
| void *closure; |
| }; |
| |
| typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args, |
| void *wrapped); |
| |
| struct wrapperbase { |
| char *name; |
| wrapperfunc wrapper; |
| char *doc; |
| }; |
| |
| extern DL_IMPORT(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *); |
| extern DL_IMPORT(PyObject *) PyDescr_NewMember(PyTypeObject *, |
| struct memberlist *); |
| extern DL_IMPORT(PyObject *) PyDescr_NewGetSet(PyTypeObject *, |
| struct getsetlist *); |
| extern DL_IMPORT(PyObject *) PyDescr_NewWrapper(PyTypeObject *, |
| struct wrapperbase *, void *); |
| extern DL_IMPORT(int) PyDescr_IsData(PyObject *); |
| |
| extern DL_IMPORT(PyObject *) PyDictProxy_New(PyObject *); |
| extern DL_IMPORT(PyObject *) PyWrapper_New(PyObject *, PyObject *); |
| |
| |
| extern DL_IMPORT(PyTypeObject) PyGetSet_Type; |