spir_ffi.h 809 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef __SPIR_FFI_H__
  2. #define __SPIR_FFI_H__
  3. #include <stdint.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef struct {
  8. const char *data;
  9. size_t len;
  10. size_t capacity;
  11. } VecData;
  12. typedef struct {
  13. void *client;
  14. VecData pub_params;
  15. } ClientNewRet;
  16. extern void spir_init(uint32_t num_threads);
  17. extern ClientNewRet spir_client_new(uint8_t r);
  18. extern void spir_client_free(void *client);
  19. extern VecData spir_client_preproc_PIRs(void *client, uint32_t num_preproc);
  20. extern void* spir_server_new(uint8_t r, const char *pub_params,
  21. size_t pub_params_len);
  22. extern void spir_server_free(void *server);
  23. extern VecData spir_server_preproc_PIRs(void *server,
  24. const char *msgdata, size_t msglen);
  25. extern void spir_vecdata_free(VecData vecdata);
  26. #ifdef __cplusplus
  27. }
  28. #endif
  29. #endif