#include "kernel/kernel_loader.h"
Insert:
#include "kernel/kernel_memory.h
/* Threads compatibility routines for libgcc2 and libobjc. */ | |
/* Compile this one with gcc. */ | |
/* Copyright (C) 1997-2016 Free Software Foundation, Inc. | |
This file is part of GCC. | |
GCC is free software; you can redistribute it and/or modify it under | |
the terms of the GNU General Public License as published by the Free | |
Software Foundation; either version 3, or (at your option) any later | |
version. |
OUTPUT_FORMAT("elf32-powerpc") | |
OUTPUT_ARCH(powerpc:common) | |
MEMORY { | |
relmem (rw) : ORIGIN = 0x00000000, LENGTH = 32M | |
codemem (rwx) : ORIGIN = 0x02000000, LENGTH = 224M | |
datamem (rw) : ORIGIN = 0x10000000, LENGTH = 800M | |
loadmem (rwx) : ORIGIN = 0xC0000000, LENGTH = 128M | |
} |
/* Patch for MCP_LoadFile (ioctl 0x53). | |
* | |
* Reference for most of the types and whatever: | |
* https://github.com/exjam/decaf-emu/tree/ios/src/libdecaf/src/ios/mcp | |
* | |
* This is a proof of concept, and shouldn't be used until it's cleaned up a bit. | |
* Co-authored by QuarkTheAwesome, exjam and Maschell | |
* | |
* Flow of calls: | |
* - kernel loads system libraries, app rpx or user calls OSDynLoad |
#include "cafe_loader.h" | |
#include "cafe_loader_bounce.h" | |
#include "cafe_loader_iop.h" | |
#include "cafe_loader_ipcldriver.h" | |
#include "cafe/cafe_stackobject.h" | |
#include "cafe/cafe_tinyheap.h" | |
#include "cafe/kernel/cafe_kernel_process.h" | |
#include "cafe_loader_rpl.h" | |
#include <array> |
#pragma once | |
#include <cstdint> | |
#include <common/type_traits.h> | |
#include <libcpu/be2_struct.h> | |
#include <type_traits> | |
namespace cafe | |
{ | |
namespace detail |
signed int net::readHostsFile() | |
{ | |
int *v0; // r2 | |
int v1; // r1 | |
int v2; // r0 | |
signed int v3; // r6 | |
int v4; // r4 | |
int k; // r3 | |
_DWORD *i; // r5 | |
_DWORD *j; // r4 |
#include "kernel/kernel_loader.h"
Insert:
#include "kernel/kernel_memory.h
#include "ppcutils/stackobject.h" | |
... | |
IMError | |
IMStartAPDVideoMode() | |
{ | |
ppcutils::StackObject<be_val<uint32_t>> previous; | |
auto result = IM_GetNvParameterWithoutHandleAndItb(IMParameter::APDPeriod, previous); |
Program <- _ (Instruction / Comment)* _ EndOfProgram? | |
Instruction <- _ (CfInst / CfExpInst / TexClause / AluClause) | |
Number <- < [0-9]+ > | |
HexNumber <- < '0x' [0-9A-Fa-f]+ > | |
Float <- $< '-'? [0-9]+ ('.' [0-9]+ )? 'f'? > | |
EndOfLine <- '\r\n' / '\n' / '\r' | |
EndOfFile <- !. | |
End <- EndOfLine / EndOfFile |
Program <- _ (Instructions _)* _ EndOfProgram | |
Instructions <- CfInst / CfExpInst / TexClause / AluClause | |
CfInst <- (InstCount _ CfOpcode _ CfInstPropertiesOpt _) | |
CfExpInst <- (InstCount _ ExpOpcode ':' _ ExpTarget _ ',' _ VecGpr _ CfInstPropertiesOpt _) | |
TexClause <- (InstCount _ TexClauseInstType _ ':' _ CfInstPropertiesOpt _) TexInst* | |
AluClause <- (InstCount _ AluClauseInstType _ ':' _ CfInstPropertiesOpt _) AluInst* | |
EndOfProgram <- 'END_OF_PROGRAM' | |
Number <- < [0-9]+ > |