KnIoMapMem()

Функция объявлена в файле coresrv/io/mmio.h.

Retcode KnIoMapMem(Handle rid, rtl_uint32_t prot, rtl_uint32_t attr,

void **addr, Handle *handle);

Функция отображает зарегистрированный участок памяти, которому назначен дескриптор rid, на адресное пространство процесса.

С помощью входных параметров prot и attr можно изменить атрибуты защиты участка памяти, а также отключить кэширование.

Выходные параметры:

Функция возвращает rcOk в случае успеха.

prot – атрибуты защиты участка памяти через MMU, возможные значения:

attr – атрибуты участка памяти, возможные значения:

Пример

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;

}

В начало