xref: /libCEED/rust/libceed-sys/c-src/interface/ceed-register.c (revision e15f9bd09af0280c89b79924fa9af7dd2e3e30be)
13d576824SJeremy L Thompson #include <ceed.h>
23d576824SJeremy L Thompson #include <ceed-backend.h>
31d013790SJed Brown #include <ceed-impl.h>
43d576824SJeremy L Thompson #include <stdbool.h>
51d013790SJed Brown #include <stdio.h>
61d013790SJed Brown 
71d013790SJed Brown static bool register_all_called;
81d013790SJed Brown 
91d013790SJed Brown #define MACRO(name) CEED_INTERN int name(void);
101d013790SJed Brown #include "../backends/ceed-backend-list.h"
111d013790SJed Brown #undef MACRO
121d013790SJed Brown 
131d013790SJed Brown /**
141d013790SJed Brown   @brief Register all preconfigured backends.
151d013790SJed Brown 
161d013790SJed Brown   This is called automatically by CeedInit() and thus normally need not be called by users.
171d013790SJed Brown   Users can call CeedRegister() to register additional backends.
181d013790SJed Brown 
191d013790SJed Brown   @return An error code: 0 - success, otherwise - failure
201d013790SJed Brown 
211d013790SJed Brown   @sa CeedRegister()
221d013790SJed Brown 
23ded9b81dSJeremy L Thompson   @ref User
241d013790SJed Brown **/
251d013790SJed Brown int CeedRegisterAll() {
261d013790SJed Brown   if (register_all_called) return 0;
271d013790SJed Brown   register_all_called = true;
281d013790SJed Brown 
291d013790SJed Brown #define MACRO(name) CeedChk(name());
301d013790SJed Brown #include "../backends/ceed-backend-list.h"
311d013790SJed Brown #undef MACRO
32*e15f9bd0SJeremy L Thompson   return CEED_ERROR_SUCCESS;
331d013790SJed Brown }
34