Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / include / python2.4 / descrobject.h
CommitLineData
86530b38
AT
1#ifndef Py_DESCROBJECT_H
2#define Py_DESCROBJECT_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7typedef PyObject *(*getter)(PyObject *, void *);
8typedef int (*setter)(PyObject *, PyObject *, void *);
9
10typedef struct PyGetSetDef {
11 char *name;
12 getter get;
13 setter set;
14 char *doc;
15 void *closure;
16} PyGetSetDef;
17
18typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
19 void *wrapped);
20
21typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args,
22 void *wrapped, PyObject *kwds);
23
24struct wrapperbase {
25 char *name;
26 int offset;
27 void *function;
28 wrapperfunc wrapper;
29 char *doc;
30 int flags;
31 PyObject *name_strobj;
32};
33
34/* Flags for above struct */
35#define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */
36
37/* Various kinds of descriptor objects */
38
39#define PyDescr_COMMON \
40 PyObject_HEAD \
41 PyTypeObject *d_type; \
42 PyObject *d_name
43
44typedef struct {
45 PyDescr_COMMON;
46} PyDescrObject;
47
48typedef struct {
49 PyDescr_COMMON;
50 PyMethodDef *d_method;
51} PyMethodDescrObject;
52
53typedef struct {
54 PyDescr_COMMON;
55 struct PyMemberDef *d_member;
56} PyMemberDescrObject;
57
58typedef struct {
59 PyDescr_COMMON;
60 PyGetSetDef *d_getset;
61} PyGetSetDescrObject;
62
63typedef struct {
64 PyDescr_COMMON;
65 struct wrapperbase *d_base;
66 void *d_wrapped; /* This can be any function pointer */
67} PyWrapperDescrObject;
68
69PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type;
70
71PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
72PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
73PyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *,
74 struct PyMemberDef *);
75PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *,
76 struct PyGetSetDef *);
77PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
78 struct wrapperbase *, void *);
79#define PyDescr_IsData(d) ((d)->ob_type->tp_descr_set != NULL)
80
81PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *);
82PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *);
83
84
85PyAPI_DATA(PyTypeObject) PyProperty_Type;
86#ifdef __cplusplus
87}
88#endif
89#endif /* !Py_DESCROBJECT_H */
90