Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Memory Banks Driver APIs

Memory Banks Driver APIs . More...

Data Structures

struct  sys_mm_drv_bank
 Information about memory banks. More...
 

Functions

void sys_mm_drv_bank_init (struct sys_mm_drv_bank *bank, uint32_t bank_pages)
 Initialize a memory bank's data structure.
 
uint32_t sys_mm_drv_bank_page_mapped (struct sys_mm_drv_bank *bank)
 Track the mapping of a page in the specified memory bank.
 
uint32_t sys_mm_drv_bank_page_unmapped (struct sys_mm_drv_bank *bank)
 Track the unmapping of a page in the specified memory bank.
 
void sys_mm_drv_bank_stats_reset_max (struct sys_mm_drv_bank *bank)
 Reset the max number of pages mapped in the bank.
 
void sys_mm_drv_bank_stats_get (struct sys_mm_drv_bank *bank, struct sys_memory_stats *stats)
 Retrieve the memory usage stats for the specified memory bank.
 

Detailed Description

Memory Banks Driver APIs .

This contains APIs for a system-wide memory management driver to track page usage within memory banks.

Note
The caller of these functions needs to ensure proper locking to protect the data when using these APIs.

Function Documentation

◆ sys_mm_drv_bank_init()

void sys_mm_drv_bank_init ( struct sys_mm_drv_bank * bank,
uint32_t bank_pages )

#include <zephyr/drivers/mm/mm_drv_bank.h>

Initialize a memory bank's data structure.

The driver may wish to track various information about the memory banks that it uses. This routine will initialize a generic structure containing that information. Since at the power on all memory banks are switched on it will start with all pages mapped. In next phase of driver initialization unused pages will be unmapped.

Parameters
[in,out]bankPointer to the memory bank structure used for tracking
[in]bank_pagesNumber of pages in the memory bank

◆ sys_mm_drv_bank_page_mapped()

uint32_t sys_mm_drv_bank_page_mapped ( struct sys_mm_drv_bank * bank)

#include <zephyr/drivers/mm/mm_drv_bank.h>

Track the mapping of a page in the specified memory bank.

This function is used to update the number of mapped pages within the specified memory bank.

Parameters
[in,out]bankPointer to the memory bank's data structure
Returns
The number of pages mapped within the memory bank

◆ sys_mm_drv_bank_page_unmapped()

uint32_t sys_mm_drv_bank_page_unmapped ( struct sys_mm_drv_bank * bank)

#include <zephyr/drivers/mm/mm_drv_bank.h>

Track the unmapping of a page in the specified memory bank.

This function is used to update the number of unmapped pages within the specified memory bank.

Parameters
[in,out]bankPointer to the memory bank's data structure
Returns
The number of unmapped pages within the memory bank

◆ sys_mm_drv_bank_stats_get()

void sys_mm_drv_bank_stats_get ( struct sys_mm_drv_bank * bank,
struct sys_memory_stats * stats )

#include <zephyr/drivers/mm/mm_drv_bank.h>

Retrieve the memory usage stats for the specified memory bank.

This routine extracts the system memory stats from the memory bank.

Parameters
[in]bankPointer to the memory bank's data structure
[in,out]statsPointer to memory into which to copy the system memory stats

◆ sys_mm_drv_bank_stats_reset_max()

void sys_mm_drv_bank_stats_reset_max ( struct sys_mm_drv_bank * bank)

#include <zephyr/drivers/mm/mm_drv_bank.h>

Reset the max number of pages mapped in the bank.

This routine is used to reset the maximum number of pages mapped in the specified memory bank to the current number of pages mapped in that memory bank.

Parameters
[in,out]bankPointer to the memory bank's data structure