Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions examples/klog_server/source/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
#define OFFSET_FORK_FROM_READ 0x1DE0
#else
#define OFFSET_FORK_FROM_READ 0x0
#warning Klog server does not support this firmware, must be updated to be able to find fork().
#pragma GCC error "Klog server does not support this firmware, must be updated to be able to find fork()."
#endif

// Ran in child process
void run_kernel_log_server(int port)
{
// Establish a server
int client = 0;
int s;
int s = 0;

s = socket(AF_INET, SOCK_STREAM, 0);

Expand Down Expand Up @@ -92,8 +92,7 @@ extern void *fptr__read;

int payload_main(struct payload_args *args)
{
int mainPID;
uint64_t temp_addr;
int mainPID = 0;

// Fork must be resolved manually, dlsym refuses to resolve it
void (*fptr_fork)() = (void (*)())(fptr__read + OFFSET_FORK_FROM_READ);
Expand All @@ -108,4 +107,4 @@ int payload_main(struct payload_args *args)
}

return 0;
}
}
46 changes: 21 additions & 25 deletions examples/nand_group_dump/source/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,40 +29,36 @@ struct ioctl_readnandgroup_args
uint64_t size;
};

void sock_print(int sock, char *str)
void sock_print(const int sock, const char *str)
{
size_t size;

#if ENABLE_LOGS
size_t size = 0;
size = strlen(str);
if ( !size || !sock )
return;
_write(sock, str, size);
#endif
}

int payload_main(struct payload_args *args)
{
int ret;
int sock;
int out_fds[3];
int a53_fd;
int pupupdate_fd;
int zero;
int written_bytes;
char printbuf[128];
struct sockaddr_in addr;
struct OrbisKernelSwVersion version;
void *out_data;
uint64_t nand_size;
uint64_t kdata_base;
pid_t pid;

zero = 0;
a53_fd = -1;
pupupdate_fd = -1;
out_data = NULL;
kdata_base = args->kdata_base_addr;
int ret = 0;
int sock = 0;
int out_fds[3] = {0};
int a53_fd = -1;
int pupupdate_fd = -1;
int zero = 0;
int written_bytes = 0;
char printbuf[128] = {0};
struct OrbisKernelSwVersion version = {};
void *out_data = NULL;
uint64_t nand_size = 0;
uint64_t kdata_base = 0;
pid_t pid = 0;
kdata_base = args->kdata_base_addr;

#if ENABLE_LOGS
struct sockaddr_in addr = {};
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
return -1;
Expand Down Expand Up @@ -248,11 +244,11 @@ int payload_main(struct payload_args *args)

// Max 3 NAND groups
for (int i = 0; i < 3; i++) {
memset(out_data, 0, 0x4000000);
(void)memset(out_data, 0, 0x4000000);

struct ioctl_readnandgroup_args ioc_args = {};
ioc_args.group_id = i;
ioc_args.p_out = out_data;
ioc_args.p_out = (uint64_t)out_data;

// NAND groups have different sizes:
// group 0 is 0x4000000
Expand Down
2 changes: 1 addition & 1 deletion ps5/libkernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ _Fn_(uint64_t , _getdirentries, void);
_Fn_(uint64_t , _getpeername, void);
_Fn_(uint64_t , _getsockname, void);
_Fn_(uint64_t , _getsockopt, void);
_Fn_(uint64_t , _ioctl, int fd, unsigned long req, unsigned long data);
_Fn_(uint64_t , _ioctl, int fd, unsigned long req, void *data);
_Fn_(uint64_t , _is_signal_return, void);
_Fn_(uint64_t , _listen, void);
_Fn_(uint64_t , _openat, void);
Expand Down