xref: /libCEED/rust/libceed-sys/c-src/interface/ceed-register.c (revision 3d576824e8d990e1f48c6609089904bee9170514)
1*3d576824SJeremy L Thompson #include <ceed.h>
2*3d576824SJeremy L Thompson #include <ceed-backend.h>
31d013790SJed Brown #include <ceed-impl.h>
4*3d576824SJeremy 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
321d013790SJed Brown   return 0;
331d013790SJed Brown }
34