1*9ba83ac0SJeremy L Thompson // Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors. 23d8e8822SJeremy L Thompson // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 33d8e8822SJeremy L Thompson // 43d8e8822SJeremy L Thompson // SPDX-License-Identifier: BSD-2-Clause 53d8e8822SJeremy L Thompson // 63d8e8822SJeremy L Thompson // This file is part of CEED: http://github.com/ceed 73d8e8822SJeremy L Thompson 849aac155SJeremy L Thompson #include <ceed.h> 92b730f8bSJeremy L Thompson #include <ceed/backend.h> 103d576824SJeremy L Thompson #include <stdbool.h> 111d013790SJed Brown 121d013790SJed Brown static bool register_all_called; 131d013790SJed Brown 1449aac155SJeremy L Thompson #define CEED_BACKEND(name, ...) CEED_INTERN int name(void); 151d013790SJed Brown #include "../backends/ceed-backend-list.h" 1649aac155SJeremy L Thompson #undef CEED_BACKEND 171d013790SJed Brown 181d013790SJed Brown /** 19ac5aa7bcSJeremy L Thompson @brief Register all pre-configured backends. 201d013790SJed Brown 21ca94c3ddSJeremy L Thompson This is called automatically by @ref CeedInit() and thus normally need not be called by users. 22ca94c3ddSJeremy L Thompson Users can call @ref CeedRegister() to register additional backends. 231d013790SJed Brown 241d013790SJed Brown @return An error code: 0 - success, otherwise - failure 251d013790SJed Brown 261d013790SJed Brown @sa CeedRegister() 271d013790SJed Brown 28ded9b81dSJeremy L Thompson @ref User 291d013790SJed Brown **/ 30360501f4SSebastian Grimberg int CeedRegisterAll(void) { 3158c07c4fSSebastian Grimberg int ierr = 0; 321d013790SJed Brown 3358c07c4fSSebastian Grimberg CeedPragmaCritical(CeedRegisterAll) { 3458c07c4fSSebastian Grimberg if (!register_all_called) { 35c21e34e2SJeremy L Thompson CeedDebugEnv256(CEED_DEBUG_COLOR_SUCCESS, "\n---------- Registering Backends ----------\n"); 3658c07c4fSSebastian Grimberg #define CEED_BACKEND(name, ...) \ 3758c07c4fSSebastian Grimberg if (!ierr) ierr = name(); 381d013790SJed Brown #include "../backends/ceed-backend-list.h" 3949aac155SJeremy L Thompson #undef CEED_BACKEND 4058c07c4fSSebastian Grimberg register_all_called = true; 4158c07c4fSSebastian Grimberg } 4258c07c4fSSebastian Grimberg } 4358c07c4fSSebastian Grimberg return ierr; 441d013790SJed Brown } 45