tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

aom_mem.h (2652B)


      1 /*
      2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved.
      3 *
      4 * This source code is subject to the terms of the BSD 2 Clause License and
      5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
      6 * was not distributed with this source code in the LICENSE file, you can
      7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
      8 * Media Patent License 1.0 was not distributed with this source code in the
      9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
     10 */
     11 
     12 #ifndef AOM_AOM_MEM_AOM_MEM_H_
     13 #define AOM_AOM_MEM_AOM_MEM_H_
     14 
     15 #include "aom/aom_integer.h"
     16 #include "config/aom_config.h"
     17 
     18 #if defined(__uClinux__)
     19 #include <lddk.h>
     20 #endif
     21 
     22 #if defined(__cplusplus)
     23 extern "C" {
     24 #endif
     25 
     26 #ifndef AOM_MAX_ALLOCABLE_MEMORY
     27 #if SIZE_MAX > (1ULL << 32)
     28 #define AOM_MAX_ALLOCABLE_MEMORY 8589934592  // 8 GB
     29 #else
     30 // For 32-bit targets keep this below INT_MAX to avoid valgrind warnings.
     31 #define AOM_MAX_ALLOCABLE_MEMORY ((1ULL << 31) - (1 << 16))
     32 #endif
     33 #endif
     34 
     35 void *aom_memalign(size_t align, size_t size);
     36 void *aom_malloc(size_t size);
     37 void *aom_calloc(size_t num, size_t size);
     38 void aom_free(void *memblk);
     39 
     40 static inline void *aom_memset16(void *dest, int val, size_t length) {
     41  size_t i;
     42  uint16_t *dest16 = (uint16_t *)dest;
     43  for (i = 0; i < length; i++) *dest16++ = val;
     44  return dest;
     45 }
     46 
     47 /*returns an addr aligned to the byte boundary specified by align*/
     48 #define aom_align_addr(addr, align) \
     49  (void *)(((uintptr_t)(addr) + ((align) - 1)) & ~(uintptr_t)((align) - 1))
     50 
     51 #include <string.h>
     52 
     53 #ifdef AOM_MEM_PLTFRM
     54 #include AOM_MEM_PLTFRM
     55 #endif
     56 
     57 #if CONFIG_DEBUG
     58 #define AOM_CHECK_MEM_ERROR(error_info, lval, expr)                         \
     59  do {                                                                      \
     60    lval = (expr);                                                          \
     61    if (!lval)                                                              \
     62      aom_internal_error(error_info, AOM_CODEC_MEM_ERROR,                   \
     63                         "Failed to allocate " #lval " at %s:%d", __FILE__, \
     64                         __LINE__);                                         \
     65  } while (0)
     66 #else
     67 #define AOM_CHECK_MEM_ERROR(error_info, lval, expr)       \
     68  do {                                                    \
     69    lval = (expr);                                        \
     70    if (!lval)                                            \
     71      aom_internal_error(error_info, AOM_CODEC_MEM_ERROR, \
     72                         "Failed to allocate " #lval);    \
     73  } while (0)
     74 #endif
     75 
     76 #if defined(__cplusplus)
     77 }
     78 #endif
     79 
     80 #endif  // AOM_AOM_MEM_AOM_MEM_H_