mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-21 11:11:27 -06:00
87 lines
1.5 KiB
C++
87 lines
1.5 KiB
C++
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "common/types.h"
|
|
|
|
namespace Core::Loader {
|
|
class SymbolsResolver;
|
|
}
|
|
|
|
namespace Libraries::Kernel {
|
|
|
|
using SceKernelExceptionHandler = PS4_SYSV_ABI void (*)(int, void*);
|
|
|
|
constexpr int POSIX_SIGSEGV = 11;
|
|
constexpr int POSIX_SIGUSR1 = 30;
|
|
|
|
struct Mcontext {
|
|
u64 mc_onstack;
|
|
u64 mc_rdi;
|
|
u64 mc_rsi;
|
|
u64 mc_rdx;
|
|
u64 mc_rcx;
|
|
u64 mc_r8;
|
|
u64 mc_r9;
|
|
u64 mc_rax;
|
|
u64 mc_rbx;
|
|
u64 mc_rbp;
|
|
u64 mc_r10;
|
|
u64 mc_r11;
|
|
u64 mc_r12;
|
|
u64 mc_r13;
|
|
u64 mc_r14;
|
|
u64 mc_r15;
|
|
int mc_trapno;
|
|
u16 mc_fs;
|
|
u16 mc_gs;
|
|
u64 mc_addr;
|
|
int mc_flags;
|
|
u16 mc_es;
|
|
u16 mc_ds;
|
|
u64 mc_err;
|
|
u64 mc_rip;
|
|
u64 mc_cs;
|
|
u64 mc_rflags;
|
|
u64 mc_rsp;
|
|
u64 mc_ss;
|
|
u64 mc_len;
|
|
u64 mc_fpformat;
|
|
u64 mc_ownedfp;
|
|
u64 mc_lbrfrom;
|
|
u64 mc_lbrto;
|
|
u64 mc_aux1;
|
|
u64 mc_aux2;
|
|
u64 mc_fpstate[104];
|
|
u64 mc_fsbase;
|
|
u64 mc_gsbase;
|
|
u64 mc_spare[6];
|
|
};
|
|
|
|
struct Stack {
|
|
void* ss_sp;
|
|
std::size_t ss_size;
|
|
int ss_flags;
|
|
int _align;
|
|
};
|
|
|
|
struct Sigset {
|
|
u64 bits[2];
|
|
};
|
|
|
|
struct Ucontext {
|
|
struct Sigset uc_sigmask;
|
|
int field1_0x10[12];
|
|
struct Mcontext uc_mcontext;
|
|
struct Ucontext* uc_link;
|
|
struct Stack uc_stack;
|
|
int uc_flags;
|
|
int __spare[4];
|
|
int field7_0x4f4[3];
|
|
};
|
|
|
|
void RegisterException(Core::Loader::SymbolsResolver* sym);
|
|
|
|
} // namespace Libraries::Kernel
|