1 // Copyright (c) 2017-2025, 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_GALLERY_QFUNCTION(name) CEED_INTERN int name(void); 15 #include "../gallery/ceed-gallery-list.h" 16 #undef CEED_GALLERY_QFUNCTION 17 18 /** 19 @brief Register the gallery of pre-configured @ref CeedQFunction. 20 21 This is called automatically by @ref CeedQFunctionCreateInteriorByName() and thus normally need not be called by users. 22 Users can call @ref CeedQFunctionRegister() to register additional backends. 23 24 @return An error code: 0 - success, otherwise - failure 25 26 @sa CeedQFunctionRegister() 27 28 @ref User 29 **/ 30 int CeedQFunctionRegisterAll(void) { 31 int ierr = 0; 32 33 CeedPragmaCritical(CeedQFunctionRegisterAll) { 34 if (!register_all_called) { 35 CeedDebugEnv256(1, "\n---------- Registering Gallery QFunctions ----------\n"); 36 #define CEED_GALLERY_QFUNCTION(name) \ 37 if (!ierr) ierr = name(); 38 #include "../gallery/ceed-gallery-list.h" 39 #undef CEED_GALLERY_QFUNCTION 40 register_all_called = true; 41 } 42 } 43 return ierr; 44 } 45