13d8e8822SJeremy L Thompson // Copyright (c) 2017-2022, 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 /** 19*ac5aa7bcSJeremy L Thompson @brief Register all pre-configured backends. 201d013790SJed Brown 211d013790SJed Brown This is called automatically by CeedInit() and thus normally need not be called by users. 221d013790SJed Brown Users can call 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 **/ 301d013790SJed Brown int CeedRegisterAll() { 311d013790SJed Brown if (register_all_called) return 0; 321d013790SJed Brown register_all_called = true; 331d013790SJed Brown 3449aac155SJeremy L Thompson #define CEED_BACKEND(name, ...) CeedChk(name()); 351d013790SJed Brown #include "../backends/ceed-backend-list.h" 3649aac155SJeremy L Thompson #undef CEED_BACKEND 37e15f9bd0SJeremy L Thompson return CEED_ERROR_SUCCESS; 381d013790SJed Brown } 39