xref: /libCEED/rust/libceed-sys/c-src/interface/ceed-register.c (revision 874019bc89a44b0eae6b48d78442abcb0851055b)
1 #include <ceed/ceed.h>
2 #include <ceed/backend.h>
3 #include <ceed-impl.h>
4 #include <stdbool.h>
5 #include <stdio.h>
6 
7 static bool register_all_called;
8 
9 #define MACRO(name) CEED_INTERN int name(void);
10 #include "../backends/ceed-backend-list.h"
11 #undef MACRO
12 
13 /**
14   @brief Register all preconfigured backends.
15 
16   This is called automatically by CeedInit() and thus normally need not be called by users.
17   Users can call CeedRegister() to register additional backends.
18 
19   @return An error code: 0 - success, otherwise - failure
20 
21   @sa CeedRegister()
22 
23   @ref User
24 **/
25 int CeedRegisterAll() {
26   if (register_all_called) return 0;
27   register_all_called = true;
28 
29 #define MACRO(name) CeedChk(name());
30 #include "../backends/ceed-backend-list.h"
31 #undef MACRO
32   return CEED_ERROR_SUCCESS;
33 }
34