获取指定内存池范围的大小。
相关数据类型
qurt_mem_pool_attr_t
qurt_size_t
参数
| in | attr | 指向内存池属性结构的指针。 |
| in | range_id | 内存池范围键。 |
| out | size | 指向范围大小的目标变量的指针。 |
返回值
0 – 成功。
QURT_EINVALID – 范围无效。
依赖项
None.
从物理地址范围动态创建内存池对象。
该池被分配一个具有指定基地址和大小的内存区域。
传递给此函数的基地址和大小值必须与 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
参数
| in | name | 指向内存池名称的指针。 |
| in | base | 内存区域的基地址(除以 4K)。 |
| in | size | 内存区域的大小(以字节为单位)(除以 4K)。 |
| out | pool | 指向内存池对象的指针。 |
返回值
QURT_EOK – 成功。
依赖项
None.
从指定的内存池对象中删除物理地址范围。
如果地址范围的任何部分正在使用,则此操作将返回错误而不更改状态。
注意:仅使用 root 权限调用此操作(guest-OS 模式)。
将来,此操作将支持(通过 flags 参数)在使用部分范围时删除物理地址范围。
相关数据类型
qurt_mem_pool_t
参数
| in | pool | 内存池对象。 |
| in | first_pageno | 物理地址范围的第一个页码(相当于地址>>12) |
| in | size_in_pages | 物理地址范围内的页数(相当于大小>>12) |
| in | flags | 删除选项。 返回值: 0 – 跳过不属于池的范围内的漏洞(默认) |
QURT_POOL_REMOVE_ALL_OR_NONE – 仅当指定的物理地址范围完全包含在池可用空间中(没有空洞)时才会删除页面。 | ||
| in | callback | 成功删除页面时调用的回调过程。 如果操作失败,则不调用。 将 0 作为参数值传递会导致不调用回调。 |
| in | arg | 作为参数传递给回调过程的值。 |
返回值
QURT_EOK – 页已成功删除。
依赖项
None.
获取指定消息区域的内存属性。 内存区域创建后,其属性无法更改。
相关数据类型
qurt_mem_region_t
qurt_mem_region_attr_t
参数
| in | region | 内存区域对象。 |
| out | attr | 指向内存区域属性的目标结构的指针。 |
返回值
QURT_EOK – 操作成功执行。
错误代码 - 失败。
依赖项
None.
从指定的内存区域属性结构中获取 (A1, A0) 总线属性位。
相关数据类型
qurt_mem_region_attr_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | pbits | 指向用内存区域属性结构中的 (A1, A0) 位填充的无符号整数的指针,表示为 2 位二进制数。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取缓存操作模式。
相关数据类型
qurt_mem_region_attr_t
qurt_mem_cache_mode_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | mode | 指向缓存模式的目标变量的指针。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取内存映射。
相关数据类型
qurt_mem_region_attr_t
qurt_mem_mapping_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | mapping | 指向内存映射的目标变量的指针。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取内存映射。
相关数据类型
qurt_mem_region_attr_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | addr | 指向内存区域物理地址的目标变量的指针。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取内存区域大小。
相关数据类型
qurt_mem_region_attr_t
qurt_size_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | size | 指向内存区域大小的目标变量的指针。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取内存类型。
相关数据类型
qurt_mem_region_attr_t
qurt_mem_region_type_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | type | 指向内存类型的目标变量的指针。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取内存区域虚拟地址。
相关数据类型
qurt_mem_region_attr_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | addr | 指向内存区域虚拟地址的目标变量的指针。 |
返回值
None.
依赖项
None.
从指定的内存区域属性结构中获取内存区域的 64 位物理地址。
相关数据类型
qurt_mem_region_attr_t
qurt_paddr_64_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | addr_64 | 指向内存区域 64 位物理地址的目标变量的指针。 |
返回值
None.
依赖项
None.
使用默认属性值初始化指定的内存区域属性结构:
注意:必须通过调用 qurt_mem_region_attr_set_physaddr() 函数显式设置内存物理地址属性。 大小和池属性直接设置为内存区域创建操作中的参数。
相关数据类型
qurt_mem_region_attr_t
参数
| in,out | attr | 指向内存区域属性的目标结构的指针。 |
返回值
None.
依赖项
None.