LCOV - code coverage report
Current view: top level - src - pino_internal.h (source / functions) Coverage Total Hit
Test: pino Coverage Report Lines: 100.0 % 8 8
Test Date: 2025-10-24 02:48:56 Functions: 100.0 % 2 2
Legend: Lines: hit not hit

            Line data    Source code
       1              : /*
       2              :  * libpino - pino_internal.h
       3              :  * 
       4              :  */
       5              : 
       6              : #ifndef PINO_INTERNAL_H
       7              : #define PINO_INTERNAL_H
       8              : 
       9              : #include <stdio.h>
      10              : 
      11              : #include <stdbool.h>
      12              : #include <stdint.h>
      13              : #include <stdlib.h>
      14              : #include <string.h>
      15              : 
      16              : #ifdef PINO_SUPPLIMENTS
      17              : # include <stdio.h>
      18              : #endif
      19              : 
      20              : #include <pino.h>
      21              : #include <pino/handler.h>
      22              : #include <pino/endianness.h>
      23              : 
      24              : #define HANDLER_STEP        8
      25              : #define MM_STEP             16
      26              : 
      27              : #define PINO_VERSION_ID 10000000
      28              : 
      29              : #ifndef PINO_BUILDTIME
      30              : # define PINO_BUILDTIME 0
      31              : #endif
      32              : 
      33              : #define pmemcpy(dest, src, size)            memcpy(dest, src, size)
      34              : #define pmemcpy_n2l(dest, src, size)        pino_endianness_memcpy_native2le(dest, src, size)
      35              : #define pmemcpy_n2b(dest, src, size)        pino_endianness_memcpy_native2be(dest, src, size)
      36              : #define pmemcpy_l2n(dest, src, size)        pino_endianness_memcpy_le2native(dest, src, size)
      37              : #define pmemcpy_b2n(dest, src, size)        pino_endianness_memcpy_be2native(dest, src, size)
      38              : #define pmemmove(dest, src, size)           memmove(dest, src, size)
      39              : #define pmemcmp(s1, s2, size)               memcmp(s1, s2, size)
      40              : #define pmalloc(size)                       malloc(size)
      41              : #define pcalloc(count, size)                calloc(count, size)
      42              : #define prealloc(ptr, size)                 realloc(ptr, size)
      43              : #define pfree(ptr)                          free(ptr)
      44              : 
      45              : typedef struct {
      46              :     size_t usage;
      47              :     size_t capacity;
      48              :     void **ptrs;
      49              : } mm_t;
      50              : 
      51              : typedef struct {
      52              :     pino_magic_t magic;
      53              :     mm_t mm;
      54              :     pino_handler_t *handler;
      55              : } handler_entry_t;
      56              : 
      57         1056 : static inline bool validate_magic(pino_magic_safe_t magic)
      58              : {
      59         1056 :     if (!magic) {
      60            1 :         return false;
      61              :     }
      62              : 
      63              :     return 
      64         1055 :         (strspn(
      65              :             (const char *)magic,
      66              :             "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
      67         2105 :         ) == sizeof(pino_magic_t)) &&
      68         1050 :         strlen((const char *)magic) == sizeof(pino_magic_t);
      69              : }
      70              : 
      71       501555 : static inline bool magic_equal(pino_magic_t magic, pino_magic_safe_t smagic)
      72              : {
      73       501555 :     return strncmp(magic, smagic, sizeof(pino_magic_t)) == 0;
      74              : }
      75              : 
      76              : bool pino_handler_init(size_t initialize_size);
      77              : void pino_handler_free(void);
      78              : pino_handler_t *pino_handler_find(pino_magic_safe_t magic);
      79              : 
      80              : bool pino_memory_manager_obj_init(mm_t *mm, size_t initialize_size);
      81              : void pino_memory_manager_obj_free(mm_t *mm);
      82              : 
      83              : /* for debugging */
      84              : #ifdef PINO_SUPPLIMENTS
      85              : # define PINO_SUPRTF(fmt, ...)              printf("  %s > " fmt "\n", __func__, ##__VA_ARGS__)
      86              : # define PINO_SUPUNREACH()                  printf("  %s > !!!UNREACHABLE!!!\n", __func__)
      87              : #else
      88              : # define PINO_SUPRTF(fmt, ...)              ((void)0)
      89              : # define PINO_SUPUNREACH()                  ((void)0)
      90              : #endif
      91              : 
      92              : #endif  /* PINO_INTERNAL_H */
        

Generated by: LCOV version 2.0-1