10c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
20c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi/* Buffer object interface */
30c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
40c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi/* Note: the object's structure is private */
50c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
60c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#ifndef Py_BUFFEROBJECT_H
70c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#define Py_BUFFEROBJECT_H
80c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#ifdef __cplusplus
90c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiextern "C" {
100c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#endif
110c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
120c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
130c5958b1636c47ed7c284f859c8e805fd06a0e6Bill YiPyAPI_DATA(PyTypeObject) PyBuffer_Type;
140c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
150c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#define PyBuffer_Check(op) (Py_TYPE(op) == &PyBuffer_Type)
160c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
170c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#define Py_END_OF_BUFFER	(-1)
180c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
190c5958b1636c47ed7c284f859c8e805fd06a0e6Bill YiPyAPI_FUNC(PyObject *) PyBuffer_FromObject(PyObject *base,
200c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi                                           Py_ssize_t offset, Py_ssize_t size);
210c5958b1636c47ed7c284f859c8e805fd06a0e6Bill YiPyAPI_FUNC(PyObject *) PyBuffer_FromReadWriteObject(PyObject *base,
220c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi                                                    Py_ssize_t offset,
230c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi                                                    Py_ssize_t size);
240c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
250c5958b1636c47ed7c284f859c8e805fd06a0e6Bill YiPyAPI_FUNC(PyObject *) PyBuffer_FromMemory(void *ptr, Py_ssize_t size);
260c5958b1636c47ed7c284f859c8e805fd06a0e6Bill YiPyAPI_FUNC(PyObject *) PyBuffer_FromReadWriteMemory(void *ptr, Py_ssize_t size);
270c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
280c5958b1636c47ed7c284f859c8e805fd06a0e6Bill YiPyAPI_FUNC(PyObject *) PyBuffer_New(Py_ssize_t size);
290c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
300c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#ifdef __cplusplus
310c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi}
320c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#endif
330c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi#endif /* !Py_BUFFEROBJECT_H */
34