svc/kern/dd: remove MapDeviceAddressSpace()
This commit is contained in:
@@ -115,64 +115,6 @@ namespace ams::dd {
|
||||
return impl::DeviceAddressSpaceImpl::Unmap(das->device_handle, process_handle, process_address, size, device_address);
|
||||
}
|
||||
|
||||
void InitializeDeviceAddressSpaceMapInfo(DeviceAddressSpaceMapInfo *info, DeviceAddressSpaceType *das, ProcessHandle process_handle, u64 process_address, size_t size, DeviceVirtualAddress device_address, MemoryPermission device_perm) {
|
||||
/* Check pre-conditions. */
|
||||
AMS_ASSERT(das->state == DeviceAddressSpaceType::State_Initialized);
|
||||
AMS_ASSERT(util::IsAligned(process_address, os::MemoryPageSize));
|
||||
AMS_ASSERT(util::IsAligned(device_address, os::MemoryPageSize));
|
||||
AMS_ASSERT(util::IsAligned(size, os::MemoryPageSize));
|
||||
AMS_ASSERT(process_address + size > process_address);
|
||||
AMS_ASSERT(device_address + size > device_address);
|
||||
AMS_ASSERT(size > 0);
|
||||
|
||||
info->last_mapped_size = 0;
|
||||
info->process_address = process_address;
|
||||
info->size = size;
|
||||
info->device_start_address = device_address;
|
||||
info->device_end_address = device_address + size;
|
||||
info->process_handle = process_handle;
|
||||
info->device_permission = device_perm;
|
||||
info->device_address_space = das;
|
||||
}
|
||||
|
||||
Result MapNextDeviceAddressSpaceRegion(size_t *out_mapped_size, DeviceAddressSpaceMapInfo *info) {
|
||||
/* Check pre-conditions. */
|
||||
AMS_ASSERT(info->last_mapped_size == 0);
|
||||
|
||||
size_t mapped_size = 0;
|
||||
if (info->device_start_address < info->device_end_address) {
|
||||
R_TRY(impl::DeviceAddressSpaceImpl::MapPartially(std::addressof(mapped_size), info->device_address_space->device_handle, info->process_handle, info->process_address, info->size, info->device_start_address, info->device_permission));
|
||||
}
|
||||
|
||||
info->last_mapped_size = mapped_size;
|
||||
*out_mapped_size = mapped_size;
|
||||
return ResultSuccess();
|
||||
}
|
||||
|
||||
void UnmapDeviceAddressSpaceRegion(DeviceAddressSpaceMapInfo *info) {
|
||||
/* Check pre-conditions. */
|
||||
const size_t last_mapped_size = info->last_mapped_size;
|
||||
AMS_ASSERT(last_mapped_size > 0);
|
||||
|
||||
impl::DeviceAddressSpaceImpl::Unmap(info->device_address_space->device_handle, info->process_handle, info->process_address, last_mapped_size, info->device_start_address);
|
||||
|
||||
info->last_mapped_size = 0;
|
||||
info->process_address += last_mapped_size;
|
||||
info->device_start_address += last_mapped_size;
|
||||
}
|
||||
|
||||
u64 GetMappedProcessAddress(DeviceAddressSpaceMapInfo *info) {
|
||||
return info->process_address;
|
||||
}
|
||||
|
||||
DeviceVirtualAddress GetMappedDeviceVirtualAddress(DeviceAddressSpaceMapInfo *info) {
|
||||
return info->device_start_address;
|
||||
}
|
||||
|
||||
size_t GetMappedSize(DeviceAddressSpaceMapInfo *info) {
|
||||
return info->last_mapped_size;
|
||||
}
|
||||
|
||||
Result AttachDeviceAddressSpace(DeviceAddressSpaceType *das, DeviceName device_name) {
|
||||
/* Check pre-conditions. */
|
||||
AMS_ASSERT(das->state == DeviceAddressSpaceType::State_Initialized);
|
||||
|
||||
Reference in New Issue
Block a user