python27_sys/
bufferobject.rs1use libc::{c_int, c_void};
2
3use crate::object::*;
4use crate::pyport::Py_ssize_t;
5
6#[cfg_attr(windows, link(name = "pythonXY"))]
7extern "C" {
8 pub static mut PyBuffer_Type: PyTypeObject;
9}
10
11#[inline(always)]
12pub unsafe fn PyBuffer_Check(op: *mut PyObject) -> c_int {
13 let u: *mut PyTypeObject = &mut PyBuffer_Type;
14 (Py_TYPE(op) == u) as c_int
15}
16
17pub const Py_END_OF_BUFFER: Py_ssize_t = -1;
18
19#[cfg_attr(windows, link(name = "pythonXY"))]
20extern "C" {
21 pub fn PyBuffer_FromObject(
22 base: *mut PyObject,
23 offset: Py_ssize_t,
24 size: Py_ssize_t,
25 ) -> *mut PyObject;
26 pub fn PyBuffer_FromReadWriteObject(
27 base: *mut PyObject,
28 offset: Py_ssize_t,
29 size: Py_ssize_t,
30 ) -> *mut PyObject;
31 pub fn PyBuffer_FromMemory(ptr: *mut c_void, size: Py_ssize_t) -> *mut PyObject;
32 pub fn PyBuffer_FromReadWriteMemory(ptr: *mut c_void, size: Py_ssize_t) -> *mut PyObject;
33 pub fn PyBuffer_New(size: Py_ssize_t) -> *mut PyObject;
34}