Files
kunlun/driver/inc/mmon.h
2024-09-28 14:24:04 +08:00

88 lines
2.8 KiB
C
Executable File

/****************************************************************************
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
be copied by any method or incorporated into another program without
the express written consent of Aerospace C.Power. This Information or any portion
thereof remains the property of Aerospace C.Power. The Information contained herein
is believed to be accurate and Aerospace C.Power assumes no responsibility or
liability for its use in any way and conveys no license or title under
any patent or copyright and makes no representation or warranty that this
Information is free from patent or copyright infringement.
****************************************************************************/
#ifndef LIB_MMON_H
#define LIB_MMON_H
/**
* @addtogroup LIB
* @{
*/
#define MMON_PRV_EXEC (0x01)
#define MMON_PRV_WRITE (0x02)
#define MMON_PRV_READ (0x04)
/**
* @addtogroup MMON
* @{
* This section introduces the memory monitor module's enum, structure, functions and how to use this module.
*/
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief This function is to enable memory range access.
* @param region The PMP region to configure.
* @param start is memeory start address.
* @param size is memory size.
* @return bool_t is true if pmp configure successfully.
*/
bool_t mmon_disable_address_access(uint32_t region,uint32_t start, uint32_t size);
/**
* @brief This function is to disable memory range access.
* @param start is memeory start address.
* @param size is memory size.
* @param privilege is permission required to enable.
* @return bool_t is true if pmp configure successfully.
*/
bool_t mmon_set_address_access(uint32_t start, uint32_t size, uint32_t privilege);
/**
* @brief This function is to config memory range access, support all
* address-matching mode of the PMP.
* This function will force clear the original configuration
*
* @param region is the PMP region to configure.
* @param mode is PMP mode to configure.
* @param start is memeory start address.
* @param size_end is memory size(PMP_OFF/PMP_NA4/PMP_NAPOT) or
* memeory end address(PMP_TOR).
* @param privilege is permission required to enable.
* @return bool_t is true if pmp configure successfully.
*/
bool_t mmon_set_mode_address_access(uint32_t region, enum pmp_address_mode mode,
uint32_t start, uint32_t size_end,
uint32_t privilege);
#ifdef __cplusplus
}
#endif
/**
* @}
* addtogroup MMON
*/
/**
* @}
* addtogroup LIB
*/
#endif //LIB_MMON_H