1 // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3 // 4 // SPDX-License-Identifier: BSD-2-Clause 5 // 6 // This file is part of CEED: http://github.com/ceed 7 8 #include <ceed.h> 9 #include <ceed/backend.h> 10 #include <stdbool.h> 11 12 static bool register_all_called; 13 14 #define CEED_BACKEND(name, ...) CEED_INTERN int name(void); 15 #include "../backends/ceed-backend-list.h" 16 #undef CEED_BACKEND 17 18 /** 19 @brief Register all pre-configured backends. 20 21 This is called automatically by CeedInit() and thus normally need not be called by users. 22 Users can call CeedRegister() to register additional backends. 23 24 @return An error code: 0 - success, otherwise - failure 25 26 @sa CeedRegister() 27 28 @ref User 29 **/ 30 int CeedRegisterAll() { 31 if (register_all_called) return 0; 32 register_all_called = true; 33 34 #define CEED_BACKEND(name, ...) CeedChk(name()); 35 #include "../backends/ceed-backend-list.h" 36 #undef CEED_BACKEND 37 return CEED_ERROR_SUCCESS; 38 } 39