This function is declared in the coresrv/io/mmio.h
file.
Retcode KnIoMapMem(Handle rid, rtl_uint32_t prot, rtl_uint32_t attr,
void **addr, Handle *handle);
This function maps the registered memory area that was assigned the handle rid
to the address space of the process.
You can use the prot
and attr
input parameters to change the memory area protection attributes, or to disable caching.
Output parameters:
addr
is the pointer to the starting address of the virtual memory area.handle
refers to the handle of the virtual memory area.Returns rcOk if successful.
prot
refers to the attributes of memory area protection via MMU, with the following possible values:
attr
– memory area attributes. Possible values:
Example
static Retcode MemInit(IOMem *resource)
{
Retcode rc = rcFail;
rc = KnRegisterPhyMem(resource->base,
resource->size,
&resource->handle);
if (rc == rcOk)
rc = KnIoMapMem(resource->handle,
VMM_FLAG_READ | VMM_FLAG_WRITE,
VMM_FLAG_CACHE_DISABLE,
(void **) &resource->addr, &resource->permitHandle);
if (rc == rcOk)
resource->addr = ((rtl_uint8_t *) resource->addr
+ resource->offset);
return rc;
}
Page top