diff options
Diffstat (limited to 'std_overrides/stdlib_wrapper.cc')
-rw-r--r-- | std_overrides/stdlib_wrapper.cc | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/std_overrides/stdlib_wrapper.cc b/std_overrides/stdlib_wrapper.cc deleted file mode 100644 index 66182985..00000000 --- a/std_overrides/stdlib_wrapper.cc +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * 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. - */ - -/** - * @file stdlib_wrapper.cc - * - * This file provides nanoapps with wrapper functions for standard library - * functions in the standard library functions that are not supported alongside - * CHRE, which either redirect the function to an analogous CHRE function, or - * fail silently. The targeted usage of this is expected to be only for third- - * party or generated functions, where changes to either the upstream third- - * party code or the code generators might not be straightforward. It is - * expected that the nanoapp developers are aware of the 'fail silently' clause - * in the wrappers, and handle those cases appropriately. - */ - -#include <stdio.h> -#include <stdlib.h> - -#include <chre.h> -#include "chre/util/nanoapp/assert.h" - -#if defined(stderr) && !defined(_CSTD) -// Provides a definition for stderr when the macro has been defined, but the -// file has been externed. Some platforms might define their own macros for -// stderr (vs the glibc style of matching the macro to the filename), in which -// case we have to guard against those definitions as well (eg: _CSTD check -// above). -FILE *stderr = NULL; -#endif - -void *malloc(size_t size) { - // On platforms where size(size_t) might be 8 bytes, we need a cast to - // maintain adherence to CHRE's heap alloc API. The size check to reject - // requests of size > 4Gb could be used for debugging, though any requests - // that even remotely approach this limit is bound to fail anyway. - return size > UINT32_MAX ? nullptr - : chreHeapAlloc(static_cast<uint32_t>(size)); -} - -void free(void *ptr) { - chreHeapFree(ptr); -} - -void *realloc(void * /*ptr*/, size_t /*newSize*/) { - // realloc() is not supported, verify that there's no call to it! - CHRE_ASSERT(false); - return NULL; -} - -void exit(int exitCode) { - chreAbort(static_cast<uint32_t>(exitCode)); - // Add an explicit forever-loop to bypass compilation warnings on platforms - // that might have defined exit with a noreturn tag. The loop shouldn't ever - // execute, since abort terminates the program. - while (42) - ; -} - -int fprintf(FILE * /*stream*/, const char * /*fmt*/, ...) { - return 0; -} - -size_t fwrite(const void * /*ptr*/, size_t /*size*/, size_t /*count*/, - FILE * /*stream*/) { - return 0; -} |