#pragma once #include namespace sccl { namespace hardware { namespace net { namespace rocm_wrap { typedef hsa_status_t (*PFN_hsa_init)(); typedef hsa_status_t (*PFN_hsa_system_get_info)(hsa_system_info_t attribute, void* value); typedef hsa_status_t (*PFN_hsa_status_string)(hsa_status_t status, const char** status_string); typedef hsa_status_t (*PFN_hsa_amd_portable_export_dmabuf)(const void* ptr, size_t size, int* dmabuf, uint64_t* offset); #define DECLARE_ROCM_PFN_EXTERN(symbol) extern PFN_##symbol pfn_##symbol DECLARE_ROCM_PFN_EXTERN(hsa_amd_portable_export_dmabuf); // DMA-BUF support /* ROCr Driver functions loaded with dlsym() */ DECLARE_ROCM_PFN_EXTERN(hsa_init); DECLARE_ROCM_PFN_EXTERN(hsa_system_get_info); DECLARE_ROCM_PFN_EXTERN(hsa_status_string); } // namespace rocm_wrap scclResult_t rocmLibraryInit(void); } // namespace net } // namespace hardware } // namespace sccl