_mali_osk_errcode_t _mali_ukk_dump_mmu_page_table( _mali_uk_dump_mmu_page_table_s * args ) { struct dump_info info = { 0, 0, 0, NULL }; struct mali_session_data * session_data; MALI_DEBUG_ASSERT_POINTER(args); MALI_CHECK_NON_NULL(args->ctx, _MALI_OSK_ERR_INVALID_ARGS); MALI_CHECK_NON_NULL(args->buffer, _MALI_OSK_ERR_INVALID_ARGS); session_data = (struct mali_session_data *)(args->ctx); info.buffer_left = args->size; info.buffer = args->buffer; args->register_writes = info.buffer; MALI_CHECK_NO_ERROR(dump_mmu_registers(session_data->page_directory, &info)); args->page_table_dump = info.buffer; MALI_CHECK_NO_ERROR(dump_mmu_page_table(session_data->page_directory, &info)); args->register_writes_size = info.register_writes_size; args->page_table_dump_size = info.page_table_dump_size; MALI_SUCCESS; }
_mali_osk_errcode_t _mali_ukk_query_mmu_page_table_dump_size(_mali_uk_query_mmu_page_table_dump_size_s *args) { struct dump_info info = { 0, 0, 0, NULL }; struct mali_session_data *session_data; session_data = (struct mali_session_data *)(uintptr_t)(args->ctx); MALI_DEBUG_ASSERT_POINTER(session_data); MALI_DEBUG_ASSERT_POINTER(args); MALI_CHECK_NO_ERROR(dump_mmu_registers(session_data->page_directory, &info)); MALI_CHECK_NO_ERROR(dump_mmu_page_table(session_data->page_directory, &info)); args->size = info.register_writes_size + info.page_table_dump_size; MALI_SUCCESS; }