sp_env.h 886 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef SP_ENV_H
  2. #define SP_ENV_H
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "sp_dir.h"
  8. #include "sp_cfg.h"
  9. #include "sp_mod.h"
  10. #include "sp_btr.h"
  11. #include "sp_gui.h"
  12. typedef struct sp_env_t {
  13. sp_dir_t *dir;
  14. sp_cfg_t *cfg;
  15. sp_mod_mgr_t *mod_mgr;
  16. void *shm_addr;
  17. int shm_range;
  18. char *url;
  19. int seq_id; // unique seq no
  20. sp_btr_context_t *btr_ctx;
  21. #if defined(_MSC_VER)
  22. sp_gui_t* gui;
  23. #else
  24. sp_gui_format_t* gui;
  25. #endif //_MSC_VER
  26. } sp_env_t;
  27. SPBASE_API int sp_env_create(void *hint_addr, int range, const sp_cfg_start_args_t* args, sp_env_t **p_env, int* err);
  28. SPBASE_API void sp_env_destroy(sp_env_t* env);
  29. SPBASE_API void set_ld_library_path(sp_env_t* env);
  30. int sp_env_new_id(sp_env_t *env);
  31. int load_mod_mgr(sp_mod_mgr_t* mod_mgr, sp_cfg_t* cfg);
  32. SPBASE_API sp_env_t *sp_get_env();
  33. #ifdef __cplusplus
  34. } // extern "C" {
  35. #endif
  36. #endif // SP_ENV_H