| /* |
| * Copyright 2008 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef CMOCKA_PRIVATE_H_ |
| #define CMOCKA_PRIVATE_H_ |
| |
| #include <cmocka.h> |
| |
| /** Free memory space */ |
| #define SAFE_FREE(x) do { if ((x) != NULL) {free(x); x=NULL;} } while(0) |
| |
| /** Zero a structure */ |
| #define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x)) |
| |
| /** Zero a structure given a pointer to the structure */ |
| #define ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0) |
| |
| /** Get the size of an array */ |
| #define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0])) |
| |
| /** Overwrite the complete string with 'X' */ |
| #define BURN_STRING(x) do { if ((x) != NULL) memset((x), 'X', strlen((x))); } while(0) |
| |
| /** |
| * This is a hack to fix warnings. The idea is to use this everywhere that we |
| * get the "discarding const" warning by the compiler. That doesn't actually |
| * fix the real issue, but marks the place and you can search the code for |
| * discard_const. |
| * |
| * Please use this macro only when there is no other way to fix the warning. |
| * We should use this function in only in a very few places. |
| * |
| * Also, please call this via the discard_const_p() macro interface, as that |
| * makes the return type safe. |
| */ |
| #define discard_const(ptr) ((void *)((uintptr_t)(ptr))) |
| |
| /** |
| * Type-safe version of discard_const |
| */ |
| #define discard_const_p(type, ptr) ((type *)discard_const(ptr)) |
| |
| #endif /* CMOCKA_PRIVATE_H_ */ |