sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
elf_loader_compat.c
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# Copyright ps2dev - http://www.ps2dev.org
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
11
#include "
elf_loader_common.h
"
12
13
#include <
iopcontrol.h
>
14
#include <
loadfile.h
>
15
#include <sifrpc.h>
16
#include <
stdlib.h
>
17
18
int
LoadELFFromFileWithPartition
(
const
char
*filename,
const
char
*
partition
,
int
argc,
char
*argv[])
19
{
20
int
ret;
21
elf_loader_reader_info_stdio_resultbuf_t resultbuf;
22
elf_loader_execinfo_t execinfo;
23
24
ret = elf_loader_reader_read_elf_file_stdio(&resultbuf, filename,
"rb"
);
25
if
( ret < 0 )
26
{
27
return
ret;
28
}
29
ret = elf_loader_exec_elf_prepare_loadinfo(&execinfo, resultbuf.m_buf, resultbuf.m_bufsize);
30
if
( ret < 0 )
31
{
32
free(resultbuf.m_buf);
33
return
ret;
34
}
35
ret = elf_loader_exec_elf_prepare_arginfo(&execinfo, filename,
partition
, argc, argv);
36
if
( ret < 0 )
37
{
38
free(resultbuf.m_buf);
39
return
ret;
40
}
41
42
// No turning back here.
43
while
( !
SifIopReset
(NULL, 0) )
44
;
45
while
( !
SifIopSync
() )
46
;
47
48
sceSifInitRpc(0);
49
SifLoadFileInit
();
50
SifLoadModule
(
"rom0:SIO2MAN"
, 0, NULL);
51
SifLoadModule
(
"rom0:MCMAN"
, 0, NULL);
52
SifLoadModule
(
"rom0:MCSERV"
, 0, NULL);
53
SifLoadFileExit
();
54
sceSifExitRpc();
55
56
return
elf_loader_exec_elf(&execinfo);
57
}
58
59
int
LoadELFFromFile(
const
char
*filename,
int
argc,
char
*argv[])
60
{
61
return
LoadELFFromFileWithPartition
(filename, NULL, argc, argv);
62
}
LoadELFFromFileWithPartition
int LoadELFFromFileWithPartition(const char *filename, const char *partition, int argc, char *argv[])
Definition
elf.c:109
elf_loader_common.h
SifLoadModule
int SifLoadModule(const char *path, int arg_len, const char *args)
Definition
loadfile.c:92
SifLoadFileExit
void SifLoadFileExit(void)
Definition
loadfile.c:59
SifLoadFileInit
int SifLoadFileInit(void)
Definition
loadfile.c:38
iopcontrol.h
SifIopReset
int SifIopReset(const char *arg, int mode)
Definition
iopcontrol.c:31
SifIopSync
int SifIopSync(void)
Definition
iopcontrol.c:96
loadfile.h
stdlib.h
partition
Definition
part_driver.h:22
core
elf-loader2
src
elf_loader_compat.c
Generated by
1.18.0