py.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef _PCILIB_PY_H
  2. #define _PCILIB_PY_H
  3. #include "pcilib.h"
  4. typedef struct pcilib_py_s pcilib_py_t;
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. int pcilib_init_py(pcilib_t *ctx);
  9. int pcilib_py_eval_string(pcilib_t *ctx, const char *codestr, pcilib_value_t *value);
  10. void pcilib_free_py(pcilib_t *ctx);
  11. int pcilib_py_init_script(pcilib_t *ctx, char* module_name, pcilib_access_mode_t *mode);
  12. int pcilib_py_free_script(char* module_name);
  13. int pcilib_script_read(pcilib_t *ctx, char* module_name, pcilib_value_t *val);
  14. int pcilib_script_write(pcilib_t *ctx, char* module_name, pcilib_value_t *val);
  15. /*!
  16. * \brief Converts pcilib_value_t to PyObject.
  17. * \param ctx pointer to pcilib_t context
  18. * \param val pointer to pcilib_value_t to convert
  19. * \return PyObject, containing value. NULL with error message, sended to errstream.
  20. */
  21. void* pcilib_get_value_as_pyobject(pcilib_t* ctx, pcilib_value_t *val);
  22. /*!
  23. * \brief Converts PyObject to pcilib_value_t.
  24. * \param ctx pcilib context
  25. * \param pyVal python object, containing value
  26. * \param val initialized polymorphic value
  27. * \return 0 on success or memory error
  28. */
  29. int pcilib_set_value_from_pyobject(pcilib_t* ctx, void* pyVal, pcilib_value_t *val);
  30. #ifdef __cplusplus
  31. }
  32. #endif
  33. #endif /* _PCILIB_PY_H */