B_QuRT_User_Guide(34)

281 篇文章 30 订阅

B_QuRT_User_Guide(34)

21.22 qurt_mem_pool_attr_get_size()

21.22.1 功能文档

21.22.1.1 static int qurt_mem_pool_attr_get_size ( qurt_mem_pool_attr_t ∗ attr, int range_id, qurt_size_t ∗ size )

获取指定内存池范围的大小。

相关数据类型
qurt_mem_pool_attr_t
qurt_size_t

参数

inattr指向内存池属性结构的指针。
inrange_id内存池范围键。
outsize指向范围大小的目标变量的指针。

返回值
0 – 成功。
QURT_EINVALID – 范围无效。

依赖项
None.

21.23 qurt_mem_pool_create()

21.23.1 功能文档

21.23.1.1 int qurt_mem_pool_create ( char ∗ name, unsigned base, unsigned size,qurt_mem_pool_t ∗ pool )

从物理地址范围动态创建内存池对象。
该池被分配一个具有指定基地址和大小的内存区域。
传递给此函数的基地址和大小值必须与 4K 字节边界对齐,并且必须表示为实际基地址和大小值除以 4K。
例如函数调用:
qurt_mem_pool_create ("TCM_PHYSPOOL", 0xd8020, 0x20, &pool)
… 相当于 QuRT 系统配置文件中的以下静态池定义:

<physical_pool name="TCM_PHYSPOOL">
    <region base="0xd8020000" size="0x20000" />
</physical_pool>
注意:动态创建的池与静态池不同。  特别是,qurt_mem_pool_attr_get() 对动态创建的池无效。

动态池创建会永久消耗系统资源,并且无法撤消。

相关数据类型
qurt_mem_pool_t

参数

inname指向内存池名称的指针。
inbase内存区域的基地址(除以 4K)。
insize内存区域的大小(以字节为单位)(除以 4K)。
outpool指向内存池对象的指针。

返回值
QURT_EOK – 成功。

依赖项
None.

21.24 qurt_mem_pool_remove_pages()

21.24.1 功能文档

21.24.1.1 int qurt_mem_pool_remove_pages ( qurt_mem_pool_t pool, unsigned first_pageno, unsigned size_in_pages, unsigned flags, void(∗)(void ∗) callback, void ∗ arg )

从指定的内存池对象中删除物理地址范围。
如果地址范围的任何部分正在使用,则此操作将返回错误而不更改状态。

注意:仅使用 root 权限调用此操作(guest-OS 模式)。
将来,此操作将支持(通过 flags 参数)在使用部分范围时删除物理地址范围。

相关数据类型
qurt_mem_pool_t

参数

inpool内存池对象。
infirst_pageno物理地址范围的第一个页码(相当于地址>>12)
insize_in_pages物理地址范围内的页数(相当于大小>>12)
inflags删除选项。 返回值:
0 – 跳过不属于池的范围内的漏洞(默认)

QURT_POOL_REMOVE_ALL_OR_NONE – 仅当指定的物理地址范围完全包含在池可用空间中(没有空洞)时才会删除页面。
incallback成功删除页面时调用的回调过程。 如果操作失败,则不调用。 将 0 作为参数值传递会导致不调用回调。
inarg作为参数传递给回调过程的值。

返回值
QURT_EOK – 页已成功删除。

依赖项
None.

21.25 qurt_mem_region_attr_get()

21.25.1 功能文档

21.25.1.1 int qurt_mem_region_attr_get ( qurt_mem_region_t region, qurt_mem_region_attr_t ∗ attr )

获取指定消息区域的内存属性。 内存区域创建后,其属性无法更改。

相关数据类型
qurt_mem_region_t
qurt_mem_region_attr_t

参数

inregion内存区域对象。
outattr指向内存区域属性的目标结构的指针。

返回值
QURT_EOK – 操作成功执行。
错误代码 - 失败。

依赖项
None.

21.26 qurt_mem_region_attr_get_bus_attr()

21.26.1 功能文档

21.26.1.1 static void qurt_mem_region_attr_get_bus_attr ( qurt_mem_region_attr_t ∗attr, unsigned ∗ pbits )

从指定的内存区域属性结构中获取 (A1, A0) 总线属性位。

相关数据类型
qurt_mem_region_attr_t

参数

inattr指向内存区域属性结构的指针。
outpbits指向用内存区域属性结构中的 (A1, A0) 位填充的无符号整数的指针,表示为 2 位二进制数。

返回值
None.

依赖项
None.

21.27 qurt_mem_region_attr_get_cache_mode()

21.27.1 功能文档

21.27.1.1 static void qurt_mem_region_attr_get_cache_mode ( qurt_mem_region_attr_t ∗ attr, qurt_mem_cache_mode_t ∗ mode )

从指定的内存区域属性结构中获取缓存操作模式。

相关数据类型
qurt_mem_region_attr_t
qurt_mem_cache_mode_t

参数

inattr指向内存区域属性结构的指针。
outmode指向缓存模式的目标变量的指针。

返回值
None.

依赖项
None.

21.28 qurt_mem_region_attr_get_mapping()

21.28.1 功能文档

21.28.1.1 static void qurt_mem_region_attr_get_mapping ( qurt_mem_region_attr_t ∗ attr, qurt_mem_mapping_t ∗ mapping )

从指定的内存区域属性结构中获取内存映射。

相关数据类型
qurt_mem_region_attr_t
qurt_mem_mapping_t

参数

inattr指向内存区域属性结构的指针。
outmapping指向内存映射的目标变量的指针。

返回值
None.

依赖项
None.

21.29 qurt_mem_region_attr_get_physaddr()

21.29.1 功能文档

21.28.1.1 static void qurt_mem_region_attr_get_mapping ( qurt_mem_region_attr_t ∗ attr, qurt_mem_mapping_t ∗ mapping )

从指定的内存区域属性结构中获取内存映射。

相关数据类型
qurt_mem_region_attr_t

参数

inattr指向内存区域属性结构的指针。
outaddr指向内存区域物理地址的目标变量的指针。

返回值
None.

依赖项
None.

21.30 qurt_mem_region_attr_get_size()

21.30.1 功能文档

21.30.1.1 static void qurt_mem_region_attr_get_size ( qurt_mem_region_attr_t ∗ attr,qurt_size_t ∗ size )

从指定的内存区域属性结构中获取内存区域大小。

相关数据类型
qurt_mem_region_attr_t
qurt_size_t

参数

inattr指向内存区域属性结构的指针。
outsize指向内存区域大小的目标变量的指针。

返回值
None.

依赖项
None.

21.31 qurt_mem_region_attr_get_type()

21.31.1 功能文档

21.31.1.1 static void qurt_mem_region_attr_get_type ( qurt_mem_region_attr_t ∗ attr,qurt_mem_region_type_t ∗ type )

从指定的内存区域属性结构中获取内存类型。

相关数据类型
qurt_mem_region_attr_t
qurt_mem_region_type_t

参数

inattr指向内存区域属性结构的指针。
outtype指向内存类型的目标变量的指针。

返回值
None.

依赖项
None.

21.32 qurt_mem_region_attr_get_virtaddr()

21.32.1 功能文档

21.32.1.1 static void qurt_mem_region_attr_get_virtaddr ( qurt_mem_region_attr_t ∗attr, unsigned int ∗ addr )

从指定的内存区域属性结构中获取内存区域虚拟地址。

相关数据类型
qurt_mem_region_attr_t

参数

inattr指向内存区域属性结构的指针。
outaddr指向内存区域虚拟地址的目标变量的指针。

返回值
None.

依赖项
None.

21.33 qurt_mem_region_attr_get_physaddr_64()

21.33.1 功能文档

21.33.1.1 static void qurt_mem_region_attr_get_physaddr_64 ( qurt_mem_region_attr_t ∗ attr, qurt_paddr_64_t ∗ addr_64 )

从指定的内存区域属性结构中获取内存区域的 64 位物理地址。

相关数据类型
qurt_mem_region_attr_t
qurt_paddr_64_t

参数

inattr指向内存区域属性结构的指针。
outaddr_64指向内存区域 64 位物理地址的目标变量的指针。

返回值
None.

依赖项
None.

21.34 qurt_mem_region_attr_init()

21.34.1 功能文档

21.34.1.1 void qurt_mem_region_attr_init ( qurt_mem_region_attr_t ∗ attr )

使用默认属性值初始化指定的内存区域属性结构:

  • 映射 – QURT_MEM_MAPPING_VIRTUAL
  • 缓存模式——QURT_MEM_CACHE_WRITEBACK
  • 物理地址 – -1
  • 虚拟地址 – -1
  • 内存类型 – QURT_MEM_REGION_LOCAL
  • 大小 – -1
注意:必须通过调用 qurt_mem_region_attr_set_physaddr() 函数显式设置内存物理地址属性。  大小和池属性直接设置为内存区域创建操作中的参数。

相关数据类型
qurt_mem_region_attr_t

参数

in,outattr指向内存区域属性的目标结构的指针。

返回值
None.

依赖项
None.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值