31 static u32 new_fileio[20] ALIGNED(16)={
59 memset(&mod_info, 0,
sizeof(mod_info));
61 if ((!ret) || (mod_info.version != 0x101))
65 if((patch_addr = SifAllocIopHeap(
sizeof(new_fileio))) == NULL)
69 p_new_fileio = UNCACHED_SEG(new_fileio);
72 p_new_fileio[0] += ((u32)mod_info.text_start >> 2);
73 p_new_fileio[2] += ((u32)mod_info.text_start >> 2);
76 p_new_fileio[8] += ((u32)mod_info.text_start >> 2);
77 p_new_fileio[11] += ((u32)mod_info.text_start >> 2);
78 p_new_fileio[14] += ((u32)mod_info.text_start >> 2);
83 dmat.size=
sizeof(new_fileio);
88 new_jump_op = JMP((u32)patch_addr);
89 smem_write_word((
void *)((u8 *)mod_info.text_start + 0x0bb8), new_jump_op);
90 new_jump_op = JAL((u32)patch_addr + 16);
92 smem_write_word((
void *)((u8 *)mod_info.text_start + 0x09cc), new_jump_op);
93 smem_write_word((
void *)((u8 *)mod_info.text_start + 0x0a58), new_jump_op);