Coverage Report

Created: 2025-12-31 07:08

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libspdm/os_stub/memlib/zero_mem.c
Line
Count
Source
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
void libspdm_zero_mem(void *buffer, size_t length)
17
74.6M
{
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
74.6M
    volatile uint8_t *pointer;
27
28
74.6M
    pointer = (uint8_t *)buffer;
29
4.92G
    while (length-- != 0) {
30
4.85G
        *(pointer++) = 0;
31
4.85G
    }
32
33
#if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__)
34
    _ReadWriteBarrier();
35
#elif defined(__GNUC__)
36
    __asm__ __volatile__ ("" : : : "memory");
37
74.6M
#endif
38
39
74.6M
#endif
40
74.6M
}