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