cpyext_moduleobject.h 888 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. typedef struct PyModuleDef_Base {
  2. PyObject_HEAD
  3. PyObject* (*m_init)(void);
  4. Py_ssize_t m_index;
  5. PyObject* m_copy;
  6. } PyModuleDef_Base;
  7. #define PyModuleDef_HEAD_INIT { \
  8. PyObject_HEAD_INIT(NULL) \
  9. NULL, /* m_init */ \
  10. 0, /* m_index */ \
  11. NULL, /* m_copy */ \
  12. }
  13. struct PyModuleDef_Slot;
  14. /* New in 3.5 */
  15. typedef struct PyModuleDef_Slot{
  16. int slot;
  17. void *value;
  18. } PyModuleDef_Slot;
  19. #define Py_mod_create 1
  20. #define Py_mod_exec 2
  21. #define _Py_mod_LAST_SLOT 2
  22. typedef struct PyModuleDef{
  23. PyModuleDef_Base m_base;
  24. const char* m_name;
  25. const char* m_doc;
  26. Py_ssize_t m_size;
  27. PyMethodDef *m_methods;
  28. struct PyModuleDef_Slot* m_slots;
  29. traverseproc m_traverse;
  30. inquiry m_clear;
  31. freefunc m_free;
  32. } PyModuleDef;
  33. typedef struct {
  34. PyObject_HEAD
  35. struct PyModuleDef *md_def;
  36. void *md_state;
  37. } PyModuleObject;