The Include, Parser, and Python directories from the cPython 2.7.10 distribution. These files are unchanged and set the baseline for subsequent commits. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daryl McDaniel <edk2-lists@mc2research.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18737 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Descriptors */
 | |
| #ifndef Py_DESCROBJECT_H
 | |
| #define Py_DESCROBJECT_H
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| typedef PyObject *(*getter)(PyObject *, void *);
 | |
| typedef int (*setter)(PyObject *, PyObject *, void *);
 | |
| 
 | |
| typedef struct PyGetSetDef {
 | |
|     char *name;
 | |
|     getter get;
 | |
|     setter set;
 | |
|     char *doc;
 | |
|     void *closure;
 | |
| } PyGetSetDef;
 | |
| 
 | |
| typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
 | |
|                                  void *wrapped);
 | |
| 
 | |
| typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args,
 | |
|                                       void *wrapped, PyObject *kwds);
 | |
| 
 | |
| struct wrapperbase {
 | |
|     char *name;
 | |
|     int offset;
 | |
|     void *function;
 | |
|     wrapperfunc wrapper;
 | |
|     char *doc;
 | |
|     int flags;
 | |
|     PyObject *name_strobj;
 | |
| };
 | |
| 
 | |
| /* Flags for above struct */
 | |
| #define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */
 | |
| 
 | |
| /* Various kinds of descriptor objects */
 | |
| 
 | |
| #define PyDescr_COMMON \
 | |
|     PyObject_HEAD \
 | |
|     PyTypeObject *d_type; \
 | |
|     PyObject *d_name
 | |
| 
 | |
| typedef struct {
 | |
|     PyDescr_COMMON;
 | |
| } PyDescrObject;
 | |
| 
 | |
| typedef struct {
 | |
|     PyDescr_COMMON;
 | |
|     PyMethodDef *d_method;
 | |
| } PyMethodDescrObject;
 | |
| 
 | |
| typedef struct {
 | |
|     PyDescr_COMMON;
 | |
|     struct PyMemberDef *d_member;
 | |
| } PyMemberDescrObject;
 | |
| 
 | |
| typedef struct {
 | |
|     PyDescr_COMMON;
 | |
|     PyGetSetDef *d_getset;
 | |
| } PyGetSetDescrObject;
 | |
| 
 | |
| typedef struct {
 | |
|     PyDescr_COMMON;
 | |
|     struct wrapperbase *d_base;
 | |
|     void *d_wrapped; /* This can be any function pointer */
 | |
| } PyWrapperDescrObject;
 | |
| 
 | |
| PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type;
 | |
| PyAPI_DATA(PyTypeObject) PyDictProxy_Type;
 | |
| PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type;
 | |
| PyAPI_DATA(PyTypeObject) PyMemberDescr_Type;
 | |
| 
 | |
| PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
 | |
| PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
 | |
| PyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *,
 | |
|                                                struct PyMemberDef *);
 | |
| PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *,
 | |
|                                                struct PyGetSetDef *);
 | |
| PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
 | |
|                                                 struct wrapperbase *, void *);
 | |
| #define PyDescr_IsData(d) (Py_TYPE(d)->tp_descr_set != NULL)
 | |
| 
 | |
| PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *);
 | |
| PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *);
 | |
| 
 | |
| 
 | |
| PyAPI_DATA(PyTypeObject) PyProperty_Type;
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| #endif /* !Py_DESCROBJECT_H */
 | |
| 
 |