WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
los_dynshm.h 文件参考
#include "los_typedef.h"
#include "los_errno.h"
los_dynshm.h 的引用(Include)关系图:

浏览源代码.

结构体

struct  PageTableConfig
 
struct  SysPageTable
 
struct  DynShmRegion
 
struct  DynShmBulkMem
 
struct  DynShmConfig
 

宏定义

#define LOS_ERRNO_DYN_SHM_NO_MEMORY   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x00)
 
#define LOS_ERRNO_DYN_SHM_INPUT_INVALID   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x01)
 
#define LOS_ERRNO_DYN_SHM_INIT_FAILED   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x02)
 
#define LOS_ERRNO_DYN_SHM_ALREADY_MAPPED   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x03)
 
#define LOS_ERRNO_DYN_SHM_INIT_REPEATEDLY   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x04)
 
#define LOS_ERRNO_DYN_SHM_IN_ISR   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x05)
 
#define LOS_ERRNO_DYN_SHM_NOT_READY   LOS_ERRNO_OS_ERROR(LOS_MOD_DYN_SHM, 0x06)
 
#define SHM_CACHE_MASK   0b001
 
#define SHM_SEC_MASK   0b010
 
#define SHM_MMZ_MASK   0b100
 
#define LOS_SHM_IS_CACHE(x)   ((UINT32)(x) & SHM_CACHE_MASK)
 
#define LOS_SHM_IS_SEC(x)   ((UINT32)(x) & SHM_SEC_MASK)
 
#define LOS_SHM_IS_MMZ(x)   ((UINT32)(x) & SHM_MMZ_MASK)
 
#define SHM_ALIGN_UP(val, align)   (((val) + (align) - 1) & (~((UADDR)(align) - 1)))
 
#define SHM_ALIGN_DN(val, align)   ((val) & (~((UADDR)(align) - 1)))
 
#define SHM_ALIGN_OFFSET(val, align)   ((val) & ((UADDR)(align) - 1))
 
#define DYN_SHM_RGN_MAX   8
 

类型定义

typedef UINT64 UADDR
 
typedef UINT32(* DynShmFlushIoMmuTlbHandler) (BOOL flushCache)
 
typedef UINT32(* DynShmBulkAllocHandler) (DynShmBulkMem *mem)
 
typedef UINT32(* DynShmBulkFreeHandler) (DynShmBulkMem *mem)
 

枚举

enum  DynShmMemType {
  LOS_VA_SPACE_NOSEC_NOCACHE = 0b000 , LOS_VA_SPACE_NOSEC_CACHE = 0b001 , LOS_VA_SPACE_SEC_NOCACHE = 0b010 , LOS_VA_SPACE_SEC_CACHE = 0b011 ,
  LOS_VA_SPACE_TYPE_MAX = 4 , LOS_MMZ_SPACE_NOSEC_NOCACHE = 0b100 , LOS_MMZ_SPACE_NOSEC_CACHE = 0b101 , LOS_MMZ_SPACE_SEC_NOCACHE = 0b110 ,
  LOS_MMZ_SPACE_SEC_CACHE = 0b111 , LOS_SHM_TYPE_MAX
}
 
enum  DynShmTransType {
  INNER_VA_TO_OUTER_VA = 0 , OUTER_VA_TO_INNER_VA , INNER_VA_TO_MEM_PA , OUTER_VA_TO_MEM_PA ,
  SHM_ADDR_TRANS_TYPE_MAX
}
 

函数

UINT32 LOS_DynShmInit (DynShmConfig *config)
 Init dynamic shared memory module.
 
UINT32 LOS_DynShmMap (UADDR inAddr, UINT32 size, DynShmMemType memType, UINTPTR *outAddr)
 Setup Mapping from input address to output address.
 
UINT32 LOS_DynShmUnmap (UINTPTR virAddr, UINT32 size)
 Destroy Mapping from input address to output address.
 
UINT32 LOS_DynShmAddrTranslate (UADDR inAddr, UADDR *outAddr, DynShmTransType optType)
 Translate address from input to output.
 
void * LOS_DynShmBulkMalloc (DynShmBulkMem *mem)
 Malloc memory in bulk.
 
UINT32 LOS_DynShmBulkFree (DynShmBulkMem *mem)
 Malloc memory in bulk.
 

宏定义说明

◆ DYN_SHM_RGN_MAX

#define DYN_SHM_RGN_MAX   8

◆ LOS_SHM_IS_CACHE

#define LOS_SHM_IS_CACHE (   x)    ((UINT32)(x) & SHM_CACHE_MASK)

◆ LOS_SHM_IS_MMZ

#define LOS_SHM_IS_MMZ (   x)    ((UINT32)(x) & SHM_MMZ_MASK)

◆ LOS_SHM_IS_SEC

#define LOS_SHM_IS_SEC (   x)    ((UINT32)(x) & SHM_SEC_MASK)

◆ SHM_ALIGN_DN

#define SHM_ALIGN_DN (   val,
  align 
)    ((val) & (~((UADDR)(align) - 1)))

◆ SHM_ALIGN_OFFSET

#define SHM_ALIGN_OFFSET (   val,
  align 
)    ((val) & ((UADDR)(align) - 1))

◆ SHM_ALIGN_UP

#define SHM_ALIGN_UP (   val,
  align 
)    (((val) + (align) - 1) & (~((UADDR)(align) - 1)))

◆ SHM_CACHE_MASK

#define SHM_CACHE_MASK   0b001

◆ SHM_MMZ_MASK

#define SHM_MMZ_MASK   0b100

◆ SHM_SEC_MASK

#define SHM_SEC_MASK   0b010

类型定义说明

◆ DynShmBulkAllocHandler

typedef UINT32(* DynShmBulkAllocHandler) (DynShmBulkMem *mem)

◆ DynShmBulkFreeHandler

typedef UINT32(* DynShmBulkFreeHandler) (DynShmBulkMem *mem)

◆ DynShmFlushIoMmuTlbHandler

typedef UINT32(* DynShmFlushIoMmuTlbHandler) (BOOL flushCache)

◆ UADDR

typedef UINT64 UADDR

枚举类型说明

◆ DynShmMemType

枚举值
LOS_VA_SPACE_NOSEC_NOCACHE 
LOS_VA_SPACE_NOSEC_CACHE 
LOS_VA_SPACE_SEC_NOCACHE 
LOS_VA_SPACE_SEC_CACHE 
LOS_VA_SPACE_TYPE_MAX 
LOS_MMZ_SPACE_NOSEC_NOCACHE 
LOS_MMZ_SPACE_NOSEC_CACHE 
LOS_MMZ_SPACE_SEC_NOCACHE 
LOS_MMZ_SPACE_SEC_CACHE 
LOS_SHM_TYPE_MAX 

◆ DynShmTransType

枚举值
INNER_VA_TO_OUTER_VA 
OUTER_VA_TO_INNER_VA 
INNER_VA_TO_MEM_PA 
OUTER_VA_TO_MEM_PA 
SHM_ADDR_TRANS_TYPE_MAX