跳转至

base/include/system/memory/memory_info.h

Memory Detections Using for System Detection. More...

Namespaces

Name
cf

Classes

Name
struct cf::DimmInfo
DIMM (Memory Module) information.
struct cf::PhysicalMemory
Physical memory information.
struct cf::SwapMemory
Virtual memory / Swap space information.
struct cf::CachedMemory
Linux-specific cached memory information.
struct cf::ProcessMemory
Process memory usage information.
struct cf::MemoryInfo
Comprehensive memory information for system detection.

Detailed Description

Memory Detections Using for System Detection.

Author: Charliechen114514 (chengh1922@mails.jlu.edu.cn)

Version: 0.1

Date: 2026-02-23

Copyright: Copyright © 2026

Source code

#pragma once
#include <cstdint>
#include <string>
#include <vector>

namespace cf {

enum class MemoryType : uint8_t {
    UNKNOWN = 0,
    DDR3,
    DDR4,
    DDR5,
    LPDDR3,
    LPDDR4,
    LPDDR4X,
    LPDDR5,
    DDR2,
    SDRAM
};

struct DimmInfo {
    uint64_t capacity_bytes;   
    MemoryType type;           
    uint32_t frequency_mhz;    
    std::string manufacturer;  
    std::string part_number;   
    std::string serial_number; 
    uint8_t channel;           
    uint8_t slot;              
};

struct PhysicalMemory {
    uint64_t total_bytes;     
    uint64_t available_bytes; 
    uint64_t free_bytes;      
};

struct SwapMemory {
    uint64_t total_bytes; 
    uint64_t free_bytes;  
};

struct CachedMemory {
    uint64_t buffers_bytes; 
    uint64_t cached_bytes;  
    uint64_t shared_bytes;  
    uint64_t slab_bytes;    
};

struct ProcessMemory {
    uint64_t vm_rss_bytes;  
    uint64_t vm_size_bytes; 
    uint64_t vm_peak_bytes; 
};

struct MemoryInfo {
    PhysicalMemory physical;     
    SwapMemory swap;             
    CachedMemory cached;         
    ProcessMemory process;       
    std::vector<DimmInfo> dimms; 
};

void getSystemMemoryInfo(MemoryInfo& info);

} // namespace cf

Updated on 2026-03-09 at 10:14:01 +0000