HACKS for testing
Change-Id: I3f5405137cd8c5d561a166252955906db63d06e7
Esse commit está contido em:
@@ -292,6 +292,23 @@ mx_status_t sys_iommu_create(mx_handle_t rsrc_handle, uint32_t type, user_ptr<co
|
||||
return status;
|
||||
}
|
||||
|
||||
TRACEF("IOMMU Create\n");
|
||||
static mxtl::RefPtr<Dispatcher> main_iommu = nullptr;
|
||||
static mxtl::Mutex m;
|
||||
static mx_rights_t main_iommu_rights;
|
||||
mxtl::AutoLock guard(&m);
|
||||
if (type == MX_IOMMU_TYPE_DUMMY && main_iommu) {
|
||||
TRACEF("Using stashed IOMMU\n");
|
||||
HandleOwner handle(MakeHandle(main_iommu, main_iommu_rights));
|
||||
|
||||
auto up = ProcessDispatcher::GetCurrent();
|
||||
if (out.copy_to_user(up->MapHandleToValue(handle)) != MX_OK)
|
||||
return MX_ERR_INVALID_ARGS;
|
||||
|
||||
up->AddHandle(mxtl::move(handle));
|
||||
return MX_OK;
|
||||
}
|
||||
|
||||
if (desc_len > MX_IOMMU_MAX_DESC_LEN) {
|
||||
return MX_ERR_INVALID_ARGS;
|
||||
}
|
||||
@@ -318,6 +335,9 @@ mx_status_t sys_iommu_create(mx_handle_t rsrc_handle, uint32_t type, user_ptr<co
|
||||
}
|
||||
}
|
||||
|
||||
main_iommu = dispatcher;
|
||||
main_iommu_rights = rights;
|
||||
|
||||
HandleOwner handle(MakeHandle(mxtl::move(dispatcher), rights));
|
||||
|
||||
auto up = ProcessDispatcher::GetCurrent();
|
||||
|
||||
@@ -291,6 +291,12 @@ static mx_status_t append_reserved_mem(ACPI_TABLE_DMAR* table,
|
||||
if (next_reserved_mem_desc_base + mem_desc_size <= (uintptr_t)desc + desc_len) {
|
||||
mem_desc->base_addr = rec->BaseAddress;
|
||||
mem_desc->len = rec->EndAddress - rec->BaseAddress + 1;
|
||||
if (mem_desc->base_addr == 0x8ab7a000 && mem_desc->len == 0x20000) {
|
||||
// TODO(teisenbe): Make this significantly less hacky
|
||||
printf("applying acer12 quirk\n");
|
||||
mem_desc->len += 0x68000;
|
||||
}
|
||||
|
||||
mem_desc->scope_bytes = mem_desc_size - sizeof(*mem_desc);
|
||||
next_reserved_mem_desc_base += mem_desc_size;
|
||||
}
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário