annotate Modules/_ctypes/ctypes.h @ 78069:a8aa77458e12 3.2

Add c_size_t and c_ssize_t to the ctypes summary table.
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 12 Jul 2012 20:31:50 +0200
parents 3c9232a684ae
children 1996171cfb96
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
63353
6f8defd017d7 Copy Sun-specific inclusion of <alloca.h> from 2.7 maint to trunk; it seems to not have been merged to py3k.
Georg Brandl <georg@python.org>
parents: 61466
diff changeset
1 #if defined (__SVR4) && defined (__sun)
6f8defd017d7 Copy Sun-specific inclusion of <alloca.h> from 2.7 maint to trunk; it seems to not have been merged to py3k.
Georg Brandl <georg@python.org>
parents: 61466
diff changeset
2 # include <alloca.h>
6f8defd017d7 Copy Sun-specific inclusion of <alloca.h> from 2.7 maint to trunk; it seems to not have been merged to py3k.
Georg Brandl <georg@python.org>
parents: 61466
diff changeset
3 #endif
6f8defd017d7 Copy Sun-specific inclusion of <alloca.h> from 2.7 maint to trunk; it seems to not have been merged to py3k.
Georg Brandl <georg@python.org>
parents: 61466
diff changeset
4
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
5 #ifndef MS_WIN32
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
6 #define max(a, b) ((a) > (b) ? (a) : (b))
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
7 #define min(a, b) ((a) < (b) ? (a) : (b))
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
8
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
9 #define PARAMFLAG_FIN 0x1
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
10 #define PARAMFLAG_FOUT 0x2
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
11 #define PARAMFLAG_FLCID 0x4
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
12 #endif
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
13
39610
3674f20ac781 Merge current trunk into p3yk. This includes the PyNumber_Index API change,
Thomas Wouters <thomas@python.org>
parents: 39442
diff changeset
14 typedef struct tagPyCArgObject PyCArgObject;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
15 typedef struct tagCDataObject CDataObject;
42084
229c28cb9afb Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41716
diff changeset
16 typedef PyObject *(* GETFUNC)(void *, Py_ssize_t size);
229c28cb9afb Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41716
diff changeset
17 typedef PyObject *(* SETFUNC)(void *, PyObject *value, Py_ssize_t size);
39610
3674f20ac781 Merge current trunk into p3yk. This includes the PyNumber_Index API change,
Thomas Wouters <thomas@python.org>
parents: 39442
diff changeset
18 typedef PyCArgObject *(* PARAMFUNC)(CDataObject *obj);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
19
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
20 /* A default buffer in CDataObject, which can be used for small C types. If
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
21 this buffer is too small, PyMem_Malloc will be called to create a larger one,
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
22 and this one is not used.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
23
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
24 Making CDataObject a variable size object would be a better solution, but more
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
25 difficult in the presence of PyCFuncPtrObject. Maybe later.
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
26 */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
27 union value {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
28 char c[16];
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
29 short s;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
30 int i;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
31 long l;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
32 float f;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
33 double d;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
34 #ifdef HAVE_LONG_LONG
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
35 PY_LONG_LONG ll;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
36 #endif
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
37 long double D;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
38 };
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
39
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
40 /*
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
41 Hm. Are there CDataObject's which do not need the b_objects member? In
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
42 this case we probably should introduce b_flags to mark it as present... If
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
43 b_objects is not present/unused b_length is unneeded as well.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
44 */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
45
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
46 struct tagCDataObject {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
47 PyObject_HEAD
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
48 char *b_ptr; /* pointer to memory block */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
49 int b_needsfree; /* need _we_ free the memory? */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
50 CDataObject *b_base; /* pointer to base object or NULL */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
51 Py_ssize_t b_size; /* size of memory block in bytes */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
52 Py_ssize_t b_length; /* number of references we need */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
53 Py_ssize_t b_index; /* index of this object into base's
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
54 b_object list */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
55 PyObject *b_objects; /* dictionary of references we need to keep, or Py_None */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
56 union value b_value;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
57 };
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
58
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
59 typedef struct {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
60 PyObject_VAR_HEAD
68257
3c9232a684ae Dummy-merge 3.1 branch into 3.2 branch.
Georg Brandl <georg@python.org>
parents: 63905
diff changeset
61 ffi_closure *pcl_write; /* the C callable, writeable */
3c9232a684ae Dummy-merge 3.1 branch into 3.2 branch.
Georg Brandl <georg@python.org>
parents: 63905
diff changeset
62 void *pcl_exec; /* the C callable, executable */
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
63 ffi_cif cif;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
64 int flags;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
65 PyObject *converters;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
66 PyObject *callable;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
67 PyObject *restype;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
68 SETFUNC setfunc;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
69 ffi_type *ffi_restype;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
70 ffi_type *atypes[1];
46549
90e2146cb8a3 Merged revisions 62481 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 46443
diff changeset
71 } CThunkObject;
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
72 extern PyTypeObject PyCThunk_Type;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
73 #define CThunk_CheckExact(v) ((v)->ob_type == &PyCThunk_Type)
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 37875
diff changeset
74
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 37875
diff changeset
75 typedef struct {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
76 /* First part identical to tagCDataObject */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
77 PyObject_HEAD
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
78 char *b_ptr; /* pointer to memory block */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
79 int b_needsfree; /* need _we_ free the memory? */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
80 CDataObject *b_base; /* pointer to base object or NULL */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
81 Py_ssize_t b_size; /* size of memory block in bytes */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
82 Py_ssize_t b_length; /* number of references we need */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
83 Py_ssize_t b_index; /* index of this object into base's
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
84 b_object list */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
85 PyObject *b_objects; /* list of references we need to keep */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
86 union value b_value;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
87 /* end of tagCDataObject, additional fields follow */
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
88
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
89 CThunkObject *thunk;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
90 PyObject *callable;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
91
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
92 /* These two fields will override the ones in the type's stgdict if
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
93 they are set */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
94 PyObject *converters;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
95 PyObject *argtypes;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
96 PyObject *restype;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
97 PyObject *checker;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
98 PyObject *errcheck;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
99 #ifdef MS_WIN32
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
100 int index;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
101 GUID *iid;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
102 #endif
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
103 PyObject *paramflags;
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
104 } PyCFuncPtrObject;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
105
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
106 extern PyTypeObject PyCStgDict_Type;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
107 #define PyCStgDict_CheckExact(v) ((v)->ob_type == &PyCStgDict_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
108 #define PyCStgDict_Check(v) PyObject_TypeCheck(v, &PyCStgDict_Type)
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
109
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
110 extern int PyCStructUnionType_update_stgdict(PyObject *fields, PyObject *type, int isStruct);
36981
ff3024259d91 Integrate patch from Neal Norwitz. He writes:
Thomas Heller <theller@ctypes.org>
parents: 36897
diff changeset
111 extern int PyType_stginfo(PyTypeObject *self, Py_ssize_t *psize, Py_ssize_t *palign, Py_ssize_t *plength);
ff3024259d91 Integrate patch from Neal Norwitz. He writes:
Thomas Heller <theller@ctypes.org>
parents: 36897
diff changeset
112 extern int PyObject_stginfo(PyObject *self, Py_ssize_t *psize, Py_ssize_t *palign, Py_ssize_t *plength);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
113
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
114
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
115
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
116 extern PyTypeObject PyCData_Type;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
117 #define CDataObject_CheckExact(v) ((v)->ob_type == &PyCData_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
118 #define CDataObject_Check(v) PyObject_TypeCheck(v, &PyCData_Type)
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
119
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
120 extern PyTypeObject PyCSimpleType_Type;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
121 #define PyCSimpleTypeObject_CheckExact(v) ((v)->ob_type == &PyCSimpleType_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
122 #define PyCSimpleTypeObject_Check(v) PyObject_TypeCheck(v, &PyCSimpleType_Type)
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
123
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
124 extern PyTypeObject PyCField_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
125 extern struct fielddesc *_ctypes_get_fielddesc(const char *fmt);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
126
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
127
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
128 extern PyObject *
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
129 PyCField_FromDesc(PyObject *desc, Py_ssize_t index,
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
130 Py_ssize_t *pfield_size, int bitsize, int *pbitofs,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
131 Py_ssize_t *psize, Py_ssize_t *poffset, Py_ssize_t *palign,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
132 int pack, int is_big_endian);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
133
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
134 extern PyObject *PyCData_AtAddress(PyObject *type, void *buf);
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
135 extern PyObject *PyCData_FromBytes(PyObject *type, char *data, Py_ssize_t length);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
136
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
137 extern PyTypeObject PyCArrayType_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
138 extern PyTypeObject PyCArray_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
139 extern PyTypeObject PyCPointerType_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
140 extern PyTypeObject PyCPointer_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
141 extern PyTypeObject PyCFuncPtr_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
142 extern PyTypeObject PyCFuncPtrType_Type;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
143 extern PyTypeObject PyCStructType_Type;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
144
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
145 #define PyCArrayTypeObject_Check(v) PyObject_TypeCheck(v, &PyCArrayType_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
146 #define ArrayObject_Check(v) PyObject_TypeCheck(v, &PyCArray_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
147 #define PointerObject_Check(v) PyObject_TypeCheck(v, &PyCPointer_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
148 #define PyCPointerTypeObject_Check(v) PyObject_TypeCheck(v, &PyCPointerType_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
149 #define PyCFuncPtrObject_Check(v) PyObject_TypeCheck(v, &PyCFuncPtr_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
150 #define PyCFuncPtrTypeObject_Check(v) PyObject_TypeCheck(v, &PyCFuncPtrType_Type)
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
151 #define PyCStructTypeObject_Check(v) PyObject_TypeCheck(v, &PyCStructType_Type)
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
152
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
153 extern PyObject *
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
154 PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
155
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
156 extern PyMethodDef _ctypes_module_methods[];
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
157
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
158 extern CThunkObject *_ctypes_alloc_callback(PyObject *callable,
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
159 PyObject *converters,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
160 PyObject *restype,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
161 int flags);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
162 /* a table entry describing a predefined ctypes type */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
163 struct fielddesc {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
164 char code;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
165 SETFUNC setfunc;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
166 GETFUNC getfunc;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
167 ffi_type *pffi_type; /* always statically allocated */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
168 SETFUNC setfunc_swapped;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
169 GETFUNC getfunc_swapped;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
170 };
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
171
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
172 typedef struct {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
173 PyObject_HEAD
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
174 Py_ssize_t offset;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
175 Py_ssize_t size;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
176 Py_ssize_t index; /* Index into CDataObject's
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
177 object array */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
178 PyObject *proto; /* a type or NULL */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
179 GETFUNC getfunc; /* getter function if proto is NULL */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
180 SETFUNC setfunc; /* setter function if proto is NULL */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
181 int anonymous;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
182 } CFieldObject;
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
183
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
184 /* A subclass of PyDictObject, used as the instance dictionary of ctypes
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
185 metatypes */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
186 typedef struct {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
187 PyDictObject dict; /* first part identical to PyDictObject */
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
188 /* The size and align fields are unneeded, they are in ffi_type as well. As
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
189 an experiment shows, it's trivial to get rid of them, the only thing to
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
190 remember is that in PyCArrayType_new the ffi_type fields must be filled in -
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
191 so far it was unneeded because libffi doesn't support arrays at all
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
192 (because they are passed as pointers to function calls anyway). But it's
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
193 too much risk to change that now, and there are other fields which doen't
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
194 belong into this structure anyway. Maybe in ctypes 2.0... (ctypes 2000?)
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
195 */
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
196 Py_ssize_t size; /* number of bytes */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
197 Py_ssize_t align; /* alignment requirements */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
198 Py_ssize_t length; /* number of fields */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
199 ffi_type ffi_type_pointer;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
200 PyObject *proto; /* Only for Pointer/ArrayObject */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
201 SETFUNC setfunc; /* Only for simple objects */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
202 GETFUNC getfunc; /* Only for simple objects */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
203 PARAMFUNC paramfunc;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
204
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
205 /* Following fields only used by PyCFuncPtrType_Type instances */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
206 PyObject *argtypes; /* tuple of CDataObjects */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
207 PyObject *converters; /* tuple([t.from_param for t in argtypes]) */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
208 PyObject *restype; /* CDataObject or NULL */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
209 PyObject *checker;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
210 int flags; /* calling convention and such */
46605
948bea96dd20 Merged revisions 60056-60071,60073-60127,60129-60261,60263-60284,60286-62589,62591-62594 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 46549
diff changeset
211
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
212 /* pep3118 fields, pointers neeed PyMem_Free */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
213 char *format;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
214 int ndim;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
215 Py_ssize_t *shape;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
216 /* Py_ssize_t *strides; */ /* unused in ctypes */
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
217 /* Py_ssize_t *suboffsets; */ /* unused in ctypes */
46605
948bea96dd20 Merged revisions 60056-60071,60073-60127,60129-60261,60263-60284,60286-62589,62591-62594 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 46549
diff changeset
218
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
219 } StgDictObject;
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
220
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
221 /****************************************************************
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
222 StgDictObject fields
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
223
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
224 setfunc and getfunc is only set for simple data types, it is copied from the
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
225 corresponding fielddesc entry. These are functions to set and get the value
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
226 in a memory block.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
227 They should probably by used by other types as well.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
228
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
229 proto is only used for Pointer and Array types - it points to the item type
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
230 object.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
231
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
232 Probably all the magic ctypes methods (like from_param) should have C
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
233 callable wrappers in the StgDictObject. For simple data type, for example,
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
234 the fielddesc table could have entries for C codec from_param functions or
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
235 other methods as well, if a subtype overrides this method in Python at
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
236 construction time, or assigns to it later, tp_setattro should update the
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
237 StgDictObject function to a generic one.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
238
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
239 Currently, PyCFuncPtr types have 'converters' and 'checker' entries in their
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
240 type dict. They are only used to cache attributes from other entries, whihc
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
241 is wrong.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
242
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
243 One use case is the .value attribute that all simple types have. But some
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
244 complex structures, like VARIANT, represent a single value also, and should
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
245 have this attribute.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
246
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
247 Another use case is a _check_retval_ function, which is called when a ctypes
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
248 type is used as return type of a function to validate and compute the return
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
249 value.
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
250
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
251 Common ctypes protocol:
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
252
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
253 - setfunc: store a python value in a memory block
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
254 - getfunc: convert data from a memory block into a python value
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
255
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
256 - checkfunc: validate and convert a return value from a function call
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
257 - toparamfunc: convert a python value into a function argument
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
258
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
259 *****************************************************************/
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
260
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
261 /* May return NULL, but does not set an exception! */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
262 extern StgDictObject *PyType_stgdict(PyObject *obj);
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
263
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
264 /* May return NULL, but does not set an exception! */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
265 extern StgDictObject *PyObject_stgdict(PyObject *self);
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
266
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
267 extern int PyCStgDict_clone(StgDictObject *src, StgDictObject *dst);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
268
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
269 typedef int(* PPROC)(void);
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
270
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
271 PyObject *_ctypes_callproc(PPROC pProc,
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
272 PyObject *arguments,
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
273 #ifdef MS_WIN32
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
274 IUnknown *pIUnk,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
275 GUID *iid,
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
276 #endif
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
277 int flags,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
278 PyObject *argtypes,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
279 PyObject *restype,
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
280 PyObject *checker);
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
281
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
282
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
283 #define FUNCFLAG_STDCALL 0x0
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
284 #define FUNCFLAG_CDECL 0x1
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
285 #define FUNCFLAG_HRESULT 0x2
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
286 #define FUNCFLAG_PYTHONAPI 0x4
47492
ebbf011550cd Merged revisions 63977 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 46605
diff changeset
287 #define FUNCFLAG_USE_ERRNO 0x8
ebbf011550cd Merged revisions 63977 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 46605
diff changeset
288 #define FUNCFLAG_USE_LASTERROR 0x10
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
289
45317
f903a643a88b Merged revisions 60767,60768 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 43292
diff changeset
290 #define TYPEFLAG_ISPOINTER 0x100
f903a643a88b Merged revisions 60767,60768 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 43292
diff changeset
291 #define TYPEFLAG_HASPOINTER 0x200
f903a643a88b Merged revisions 60767,60768 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 43292
diff changeset
292
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
293 #define DICTFLAG_FINAL 0x1000
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
294
39610
3674f20ac781 Merge current trunk into p3yk. This includes the PyNumber_Index API change,
Thomas Wouters <thomas@python.org>
parents: 39442
diff changeset
295 struct tagPyCArgObject {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
296 PyObject_HEAD
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
297 ffi_type *pffi_type;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
298 char tag;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
299 union {
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
300 char c;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
301 char b;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
302 short h;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
303 int i;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
304 long l;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
305 #ifdef HAVE_LONG_LONG
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
306 PY_LONG_LONG q;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
307 #endif
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
308 long double D;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
309 double d;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
310 float f;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
311 void *p;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
312 } value;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
313 PyObject *obj;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
314 Py_ssize_t size; /* for the 'V' tag */
39610
3674f20ac781 Merge current trunk into p3yk. This includes the PyNumber_Index API change,
Thomas Wouters <thomas@python.org>
parents: 39442
diff changeset
315 };
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
316
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
317 extern PyTypeObject PyCArg_Type;
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
318 #define PyCArg_CheckExact(v) ((v)->ob_type == &PyCArg_Type)
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
319 extern PyCArgObject *PyCArgObject_new(void);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
320
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
321 extern PyObject *
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
322 PyCData_get(PyObject *type, GETFUNC getfunc, PyObject *src,
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
323 Py_ssize_t index, Py_ssize_t size, char *ptr);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
324
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
325 extern int
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
326 PyCData_set(PyObject *dst, PyObject *type, SETFUNC setfunc, PyObject *value,
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
327 Py_ssize_t index, Py_ssize_t size, char *ptr);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
328
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
329 extern void _ctypes_extend_error(PyObject *exc_class, char *fmt, ...);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
330
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
331 struct basespec {
61466
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
332 CDataObject *base;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
333 Py_ssize_t index;
cab14be0ada1 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53366
diff changeset
334 char *adr;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
335 };
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
336
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
337 extern char basespec_string[];
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
338
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
339 extern ffi_type *_ctypes_get_ffi_type(PyObject *obj);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
340
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
341 /* exception classes */
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
342 extern PyObject *PyExc_ArgError;
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
343
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
344 extern char *_ctypes_conversion_encoding;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
345 extern char *_ctypes_conversion_errors;
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
346
42226
72c58338b22b Py_USING_UNICODE is no longer defined on Windows (on posix it is still
Thomas Heller <theller@ctypes.org>
parents: 42189
diff changeset
347 #if defined(HAVE_WCHAR_H)
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
348 # define CTYPES_UNICODE
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
349 #endif
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
350
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
351
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
352 extern void _ctypes_free_closure(void *);
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
353 extern void *_ctypes_alloc_closure(void);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
354
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
355 extern void _ctypes_add_traceback(char *, char *, int);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
356
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
357 extern PyObject *PyCData_FromBaseObj(PyObject *type, PyObject *base, Py_ssize_t index, char *adr);
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
358 extern char *_ctypes_alloc_format_string(const char *prefix, const char *suffix);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
359
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
360 extern int _ctypes_simple_instance(PyObject *obj);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
361
53366
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
362 extern PyObject *_ctypes_ptrtype_cache;
02f3f85e3936 Merged revisions 71853 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents: 53181
diff changeset
363 PyObject *_ctypes_get_errobj(int **pspace);
36897
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
364
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
365 #ifdef MS_WIN32
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
366 extern PyObject *ComError;
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
367 #endif
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
368
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
369 /*
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
370 Local Variables:
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
371 compile-command: "python setup.py -q build install --home ~"
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
372 End:
6f2eda495d9d Copy ctypes-0.9.9.4 sources from external into the trunk.
Thomas Heller <theller@ctypes.org>
parents:
diff changeset
373 */