From e87f006b152e2875e8f1f89834b400f5551efe68 Mon Sep 17 00:00:00 2001 From: dborth Date: Fri, 9 Jul 2010 15:27:12 +0000 Subject: [PATCH] --- source/utils/ehcmodule.elf.o | Bin 22376 -> 17876 bytes source/utils/mload.c | 21 +++------------------ 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/source/utils/ehcmodule.elf.o b/source/utils/ehcmodule.elf.o index 1a67ac279a849e830232f742672ab4a70e7fff01..1a49e3523940e62dcf549fe03cf6fef5a5f1ae0f 100644 GIT binary patch delta 8930 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 AHvj+t delta 13606 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 @@ -28,7 +28,6 @@ #define MLOAD_GET_IOS_BASE 0x4D4C4401 #define MLOAD_GET_MLOAD_VERSION 0x4D4C4402 #define MLOAD_RUN_THREAD 0x4D4C4482 -#define MLOAD_GET_LOAD_BASE 0x4D4C4490 #define MLOAD_MEMSET 0x4D4C4491 #define getbe32(x) ((adr[x]<<24) | (adr[x+1]<<16) | (adr[x+2]<<8) | (adr[x+3])) @@ -136,7 +135,7 @@ int mload_init() mloadVersion = IOS_IoctlvFormat(hid, mload_fd, MLOAD_GET_MLOAD_VERSION, ":"); iosBase = IOS_IoctlvFormat(hid, mload_fd, MLOAD_GET_IOS_BASE, ":"); - if(mloadVersion < 82) // unsupported IOS202 + if(mloadVersion < 0x52) // unsupported IOS202 return mload_close(); return mload_fd; @@ -248,29 +247,15 @@ static int mload_run_thread(void *starlet_addr, void *starlet_top_stack, int sta return IOS_IoctlvFormat(hid, mload_fd, MLOAD_RUN_THREAD, "iiii:", starlet_addr, starlet_top_stack, stack_size, priority); } -// get the base and the size of the memory readable/writable to load modules -static int mload_get_load_base(u32 *starlet_base, int *size) -{ - if (mload_init() < 0) - return -1; - - return IOS_IoctlvFormat(hid, mload_fd, MLOAD_GET_LOAD_BASE, ":ii", starlet_base, size); -} - bool load_ehci_module() { data_elf elf; memset(&elf, 0, sizeof(data_elf)); - u32 addr; - int len; - - mload_get_load_base(&addr, &len); - if(mload_elf((void *) ehcmodule_elf, &elf) != 0) return false; - if(mload_run_thread(elf.start, elf.stack, elf.size_stack, 0x47) < 0) + if(mload_run_thread(elf.start, elf.stack, elf.size_stack, elf.prio) < 0) return false; usleep(5000);