Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python312/include/python3.12/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python312/include/python3.12/pybuffer.h
/* Public Py_buffer API */

#ifndef Py_BUFFER_H
#define Py_BUFFER_H
#ifdef __cplusplus
extern "C" {
#endif

#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000

/* === New Buffer API ============================================
 * Limited API and stable ABI since Python 3.11
 *
 * Py_buffer struct layout and size is now part of the stable abi3. The
 * struct layout and size must not be changed in any way, as it would
 * break the ABI.
 *
 */

typedef struct {
    void *buf;
    PyObject *obj;        /* owned reference */
    Py_ssize_t len;
    Py_ssize_t itemsize;  /* This is Py_ssize_t so it can be
                             pointed to by strides in simple case.*/
    int readonly;
    int ndim;
    char *format;
    Py_ssize_t *shape;
    Py_ssize_t *strides;
    Py_ssize_t *suboffsets;
    void *internal;
} Py_buffer;

typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
typedef void (*releasebufferproc)(PyObject *, Py_buffer *);

/* Return 1 if the getbuffer function is available, otherwise return 0. */
PyAPI_FUNC(int) PyObject_CheckBuffer(PyObject *obj);

/* This is a C-API version of the getbuffer function call.  It checks
   to make sure object has the required function pointer and issues the
   call.

   Returns -1 and raises an error on failure and returns 0 on success. */
PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
                                   int flags);

/* Get the memory area pointed to by the indices for the buffer given.
   Note that view->ndim is the assumed size of indices. */
PyAPI_FUNC(void *) PyBuffer_GetPointer(const Py_buffer *view, const Py_ssize_t *indices);

/* Return the implied itemsize of the data-format area from a
   struct-style description. */
PyAPI_FUNC(Py_ssize_t) PyBuffer_SizeFromFormat(const char *format);

/* Implementation in memoryobject.c */
PyAPI_FUNC(int) PyBuffer_ToContiguous(void *buf, const Py_buffer *view,
                                      Py_ssize_t len, char order);

PyAPI_FUNC(int) PyBuffer_FromContiguous(const Py_buffer *view, const void *buf,
                                        Py_ssize_t len, char order);

/* Copy len bytes of data from the contiguous chunk of memory
   pointed to by buf into the buffer exported by obj.  Return
   0 on success and return -1 and raise a PyBuffer_Error on
   error (i.e. the object does not have a buffer interface or
   it is not working).

   If fort is 'F', then if the object is multi-dimensional,
   then the data will be copied into the array in
   Fortran-style (first dimension varies the fastest).  If
   fort is 'C', then the data will be copied into the array
   in C-style (last dimension varies the fastest).  If fort
   is 'A', then it does not matter and the copy will be made
   in whatever way is more efficient. */
PyAPI_FUNC(int) PyObject_CopyData(PyObject *dest, PyObject *src);

/* Copy the data from the src buffer to the buffer of destination. */
PyAPI_FUNC(int) PyBuffer_IsContiguous(const Py_buffer *view, char fort);

/*Fill the strides array with byte-strides of a contiguous
  (Fortran-style if fort is 'F' or C-style otherwise)
  array of the given shape with the given number of bytes
  per element. */
PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims,
                                               Py_ssize_t *shape,
                                               Py_ssize_t *strides,
                                               int itemsize,
                                               char fort);

/* Fills in a buffer-info structure correctly for an exporter
   that can only share a contiguous chunk of memory of
   "unsigned bytes" of the given length.

   Returns 0 on success and -1 (with raising an error) on error. */
PyAPI_FUNC(int) PyBuffer_FillInfo(Py_buffer *view, PyObject *o, void *buf,
                                  Py_ssize_t len, int readonly,
                                  int flags);

/* Releases a Py_buffer obtained from getbuffer ParseTuple's "s*". */
PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view);

/* Maximum number of dimensions */
#define PyBUF_MAX_NDIM 64

/* Flags for getting buffers. Keep these in sync with inspect.BufferFlags. */
#define PyBUF_SIMPLE 0
#define PyBUF_WRITABLE 0x0001

#ifndef Py_LIMITED_API
/*  we used to include an E, backwards compatible alias */
#define PyBUF_WRITEABLE PyBUF_WRITABLE
#endif

#define PyBUF_FORMAT 0x0004
#define PyBUF_ND 0x0008
#define PyBUF_STRIDES (0x0010 | PyBUF_ND)
#define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
#define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
#define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
#define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)

#define PyBUF_CONTIG (PyBUF_ND | PyBUF_WRITABLE)
#define PyBUF_CONTIG_RO (PyBUF_ND)

#define PyBUF_STRIDED (PyBUF_STRIDES | PyBUF_WRITABLE)
#define PyBUF_STRIDED_RO (PyBUF_STRIDES)

#define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_WRITABLE | PyBUF_FORMAT)
#define PyBUF_RECORDS_RO (PyBUF_STRIDES | PyBUF_FORMAT)

#define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_WRITABLE | PyBUF_FORMAT)
#define PyBUF_FULL_RO (PyBUF_INDIRECT | PyBUF_FORMAT)


#define PyBUF_READ  0x100
#define PyBUF_WRITE 0x200

#endif /* !Py_LIMITED_API || Py_LIMITED_API >= 3.11 */

#ifdef __cplusplus
}
#endif
#endif /* Py_BUFFER_H */
Name
Size
Permissions
Options
cpython
--
drwxr-xr-x
internal
--
drwxr-xr-x
Python.h
2.787 KB
-rw-r--r--
abstract.h
31.852 KB
-rw-r--r--
bltinmodule.h
0.258 KB
-rw-r--r--
boolobject.h
1.109 KB
-rw-r--r--
bytearrayobject.h
1.432 KB
-rw-r--r--
bytesobject.h
2.558 KB
-rw-r--r--
ceval.h
6.12 KB
-rw-r--r--
codecs.h
6.905 KB
-rw-r--r--
compile.h
0.438 KB
-rw-r--r--
complexobject.h
0.711 KB
-rw-r--r--
datetime.h
9.54 KB
-rw-r--r--
descrobject.h
3.008 KB
-rw-r--r--
dictobject.h
3.77 KB
-rw-r--r--
dynamic_annotations.h
21.944 KB
-rw-r--r--
enumobject.h
0.247 KB
-rw-r--r--
errcode.h
1.737 KB
-rw-r--r--
exports.h
1.237 KB
-rw-r--r--
fileobject.h
1.611 KB
-rw-r--r--
fileutils.h
0.495 KB
-rw-r--r--
floatobject.h
1.496 KB
-rw-r--r--
frameobject.h
0.328 KB
-rw-r--r--
genericaliasobject.h
0.326 KB
-rw-r--r--
import.h
2.962 KB
-rw-r--r--
interpreteridobject.h
0.325 KB
-rw-r--r--
intrcheck.h
0.754 KB
-rw-r--r--
iterobject.h
0.583 KB
-rw-r--r--
listobject.h
1.74 KB
-rw-r--r--
longobject.h
3.651 KB
-rw-r--r--
marshal.h
0.808 KB
-rw-r--r--
memoryobject.h
1.056 KB
-rw-r--r--
methodobject.h
4.957 KB
-rw-r--r--
modsupport.h
6.362 KB
-rw-r--r--
moduleobject.h
3.476 KB
-rw-r--r--
object.h
36.284 KB
-rw-r--r--
objimpl.h
9.021 KB
-rw-r--r--
opcode.h
12.508 KB
-rw-r--r--
osdefs.h
0.72 KB
-rw-r--r--
osmodule.h
0.284 KB
-rw-r--r--
patchlevel.h
1.271 KB
-rw-r--r--
py_curses.h
2.415 KB
-rw-r--r--
pybuffer.h
5.158 KB
-rw-r--r--
pycapsule.h
1.687 KB
-rw-r--r--
pyconfig-64.h
54.506 KB
-rw-r--r--
pyconfig.h
0.158 KB
-rw-r--r--
pydtrace.h
2.348 KB
-rw-r--r--
pyerrors.h
12.712 KB
-rw-r--r--
pyexpat.h
2.512 KB
-rw-r--r--
pyframe.h
0.538 KB
-rw-r--r--
pyhash.h
4.057 KB
-rw-r--r--
pylifecycle.h
2.196 KB
-rw-r--r--
pymacconfig.h
2.744 KB
-rw-r--r--
pymacro.h
6.5 KB
-rw-r--r--
pymath.h
1.648 KB
-rw-r--r--
pymem.h
3.822 KB
-rw-r--r--
pyport.h
24.993 KB
-rw-r--r--
pystate.h
4.526 KB
-rw-r--r--
pystats.h
2.677 KB
-rw-r--r--
pystrcmp.h
0.426 KB
-rw-r--r--
pystrtod.h
1.521 KB
-rw-r--r--
pythonrun.h
1.282 KB
-rw-r--r--
pythread.h
4.761 KB
-rw-r--r--
pytypedefs.h
0.831 KB
-rw-r--r--
rangeobject.h
0.615 KB
-rw-r--r--
setobject.h
1.521 KB
-rw-r--r--
sliceobject.h
2.459 KB
-rw-r--r--
structmember.h
1.606 KB
-rw-r--r--
structseq.h
1.365 KB
-rw-r--r--
sysmodule.h
1.688 KB
-rw-r--r--
traceback.h
0.571 KB
-rw-r--r--
tracemalloc.h
2.231 KB
-rw-r--r--
tupleobject.h
1.577 KB
-rw-r--r--
typeslots.h
2.287 KB
-rw-r--r--
unicodeobject.h
34.34 KB
-rw-r--r--
warnings.h
1.103 KB
-rw-r--r--
weakrefobject.h
1.205 KB
-rw-r--r--