LCOV - code coverage report
Current view: top level - os_stub/memlib - zero_mem.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 6 6
Test Date: 2025-06-29 08:09:00 Functions: 100.0 % 1 1

            Line data    Source code
       1              : /**
       2              :  *  Copyright Notice:
       3              :  *  Copyright 2021-2022 DMTF. All rights reserved.
       4              :  *  License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
       5              :  **/
       6              : 
       7              : #include "hal/library/memlib.h"
       8              : 
       9              : #ifdef _WIN32
      10              : #include <windows.h>
      11              : #elif defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
      12              : #include <strings.h>
      13              : #include <string.h>
      14              : #endif
      15              : 
      16      3012733 : void libspdm_zero_mem(void *buffer, size_t length)
      17              : {
      18              : 
      19              : #if defined(__STDC_LIB_EXT1__)
      20              :     memset_s(buffer, length, 0, length);
      21              : #elif defined(_WIN32)
      22              :     SecureZeroMemory(buffer, length);
      23              : #elif defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
      24              :     explicit_bzero(buffer, length);
      25              : #else
      26              :     volatile uint8_t *pointer;
      27              : 
      28      3012733 :     pointer = (uint8_t *)buffer;
      29  >13763*10^7 :     while (length-- != 0) {
      30  >13763*10^7 :         *(pointer++) = 0;
      31              :     }
      32              : 
      33              : #if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__)
      34              :     _ReadWriteBarrier();
      35              : #elif defined(__GNUC__)
      36      3012733 :     __asm__ __volatile__ ("" : : : "memory");
      37              : #endif
      38              : 
      39              : #endif
      40      3012733 : }
        

Generated by: LCOV version 2.0-1