1*3d8e8822SJeremy L Thompson // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2*3d8e8822SJeremy L Thompson // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3*3d8e8822SJeremy L Thompson // 4*3d8e8822SJeremy L Thompson // SPDX-License-Identifier: BSD-2-Clause 5*3d8e8822SJeremy L Thompson // 6*3d8e8822SJeremy L Thompson // This file is part of CEED: http://github.com/ceed 7*3d8e8822SJeremy L Thompson 8ec3da8bcSJed Brown #include <ceed/ceed.h> 9ec3da8bcSJed Brown #include <ceed/backend.h> 101d013790SJed Brown #include <ceed-impl.h> 113d576824SJeremy L Thompson #include <stdbool.h> 121d013790SJed Brown #include <stdio.h> 131d013790SJed Brown 141d013790SJed Brown static bool register_all_called; 151d013790SJed Brown 1671415c51Sjeremylt #define MACRO(name,...) CEED_INTERN int name(void); 171d013790SJed Brown #include "../backends/ceed-backend-list.h" 181d013790SJed Brown #undef MACRO 191d013790SJed Brown 201d013790SJed Brown /** 211d013790SJed Brown @brief Register all preconfigured backends. 221d013790SJed Brown 231d013790SJed Brown This is called automatically by CeedInit() and thus normally need not be called by users. 241d013790SJed Brown Users can call CeedRegister() to register additional backends. 251d013790SJed Brown 261d013790SJed Brown @return An error code: 0 - success, otherwise - failure 271d013790SJed Brown 281d013790SJed Brown @sa CeedRegister() 291d013790SJed Brown 30ded9b81dSJeremy L Thompson @ref User 311d013790SJed Brown **/ 321d013790SJed Brown int CeedRegisterAll() { 331d013790SJed Brown if (register_all_called) return 0; 341d013790SJed Brown register_all_called = true; 351d013790SJed Brown 3671415c51Sjeremylt #define MACRO(name,...) CeedChk(name()); 371d013790SJed Brown #include "../backends/ceed-backend-list.h" 381d013790SJed Brown #undef MACRO 39e15f9bd0SJeremy L Thompson return CEED_ERROR_SUCCESS; 401d013790SJed Brown } 41