| ceed.c (ad6481ce28fcfada16ee6d8a13bbacd137fe686a) | ceed.c (ecc88aeb6e47c91d01ac230341895a796d10ab95) |
|---|---|
| 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#define _POSIX_C_SOURCE 200112 --- 108 unchanged lines hidden (view full) --- 117 @param[in] priority Integer priority. 118 Lower values are preferred in case the resource requested by CeedInit() has non-unique best prefix match. 119 120 @return An error code: 0 - success, otherwise - failure 121 122 @ref Developer 123**/ 124int CeedRegisterImpl(const char *prefix, int (*init)(const char *, Ceed), unsigned int priority) { | 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#define _POSIX_C_SOURCE 200112 --- 108 unchanged lines hidden (view full) --- 117 @param[in] priority Integer priority. 118 Lower values are preferred in case the resource requested by CeedInit() has non-unique best prefix match. 119 120 @return An error code: 0 - success, otherwise - failure 121 122 @ref Developer 123**/ 124int CeedRegisterImpl(const char *prefix, int (*init)(const char *, Ceed), unsigned int priority) { |
| 125 if (num_backends >= sizeof(backends) / sizeof(backends[0])) | 125 if (num_backends >= sizeof(backends) / sizeof(backends[0])) { |
| 126 // LCOV_EXCL_START 127 return CeedError(NULL, CEED_ERROR_MAJOR, "Too many backends"); | 126 // LCOV_EXCL_START 127 return CeedError(NULL, CEED_ERROR_MAJOR, "Too many backends"); |
| 128 // LCOV_EXCL_STOP | 128 // LCOV_EXCL_STOP 129 } |
| 129 130 strncpy(backends[num_backends].prefix, prefix, CEED_MAX_RESOURCE_LEN); 131 backends[num_backends].prefix[CEED_MAX_RESOURCE_LEN - 1] = 0; 132 backends[num_backends].init = init; 133 backends[num_backends].priority = priority; 134 num_backends++; 135 return CEED_ERROR_SUCCESS; 136} --- 896 unchanged lines hidden (view full) --- 1033 1034 @param[in,out] ceed Address of Ceed context to destroy 1035 1036 @return An error code: 0 - success, otherwise - failure 1037 1038 @ref User 1039**/ 1040int CeedDestroy(Ceed *ceed) { | 130 131 strncpy(backends[num_backends].prefix, prefix, CEED_MAX_RESOURCE_LEN); 132 backends[num_backends].prefix[CEED_MAX_RESOURCE_LEN - 1] = 0; 133 backends[num_backends].init = init; 134 backends[num_backends].priority = priority; 135 num_backends++; 136 return CEED_ERROR_SUCCESS; 137} --- 896 unchanged lines hidden (view full) --- 1034 1035 @param[in,out] ceed Address of Ceed context to destroy 1036 1037 @return An error code: 0 - success, otherwise - failure 1038 1039 @ref User 1040**/ 1041int CeedDestroy(Ceed *ceed) { |
| 1041 if (!*ceed || --(*ceed)->ref_count > 0) { 1042 *ceed = NULL; 1043 return CEED_ERROR_SUCCESS; 1044 } | 1042 if (!*ceed || --(*ceed)->ref_count > 0) return CEED_ERROR_SUCCESS; |
| 1045 if ((*ceed)->delegate) CeedCall(CeedDestroy(&(*ceed)->delegate)); 1046 1047 if ((*ceed)->obj_delegate_count > 0) { 1048 for (CeedInt i = 0; i < (*ceed)->obj_delegate_count; i++) { 1049 CeedCall(CeedDestroy(&((*ceed)->obj_delegates[i].delegate))); 1050 CeedCall(CeedFree(&(*ceed)->obj_delegates[i].obj_name)); 1051 } 1052 CeedCall(CeedFree(&(*ceed)->obj_delegates)); --- 202 unchanged lines hidden --- | 1043 if ((*ceed)->delegate) CeedCall(CeedDestroy(&(*ceed)->delegate)); 1044 1045 if ((*ceed)->obj_delegate_count > 0) { 1046 for (CeedInt i = 0; i < (*ceed)->obj_delegate_count; i++) { 1047 CeedCall(CeedDestroy(&((*ceed)->obj_delegates[i].delegate))); 1048 CeedCall(CeedFree(&(*ceed)->obj_delegates[i].obj_name)); 1049 } 1050 CeedCall(CeedFree(&(*ceed)->obj_delegates)); --- 202 unchanged lines hidden --- |