mirror of
https://github.com/ps5-linux/ps5-linux-loader.git
synced 2026-07-16 01:50:40 +00:00
remove data_cave offset and use page alloc for sc args
This commit is contained in:
@@ -18,9 +18,12 @@
|
||||
#define hv_stack_size 0x1000ULL
|
||||
|
||||
// This is used as transitional storage from ProsperoOS to Kernel shellcode
|
||||
#define kernel_cave_files 0xFFFF800000000000
|
||||
#define kernel_cave 0xFFFF800000000000
|
||||
#define kernel_cave_arguments kernel_cave
|
||||
#define kernel_cave_files kernel_cave_arguments + PAGE_SIZE
|
||||
#define kernel_cave_linux_info kernel_cave_files
|
||||
#define kernel_cave_bzImage kernel_cave_linux_info + PAGE_SIZE
|
||||
|
||||
// #define kernel_cave_initrd // Allocated dynamically after bzImage
|
||||
|
||||
// Linux boot config
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "utils.h"
|
||||
#include <stdint.h>
|
||||
|
||||
uint64_t alloc_page(void);
|
||||
void install_page(uintptr_t pml4, vm_offset_t va, vm_paddr_t pa, int bits);
|
||||
void pte_store(uintptr_t ptep, uint64_t pte);
|
||||
int read_file(const char *path, void *buf, size_t bufsize);
|
||||
|
||||
@@ -12,7 +12,6 @@ typedef struct _offset_list {
|
||||
/* Shellcode Kernel */
|
||||
uint64_t HOOK_ACPI_WAKEUP_MACHDEP;
|
||||
uint64_t KERNEL_CODE_CAVE;
|
||||
uint64_t KERNEL_DATA_CAVE;
|
||||
uint64_t FUN_PRINTF;
|
||||
uint64_t FUN_HV_IOMMU_SET_BUFFERS;
|
||||
uint64_t FUN_HV_IOMM_WAIT_COMPLETION;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
extern struct linux_info linux_i;
|
||||
|
||||
int prepare_resume(void);
|
||||
int update_sck_data_ptr(void *sc, uint64_t dest_text, uint64_t dest_data);
|
||||
uint64_t prepare_sck_args(void);
|
||||
int update_sck_args_ptr(uint64_t shellcode, uint64_t args);
|
||||
void hook_call_near(uint64_t hook, uint64_t dst);
|
||||
void prepare_sck_args(uint64_t dest_data);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -167,4 +167,10 @@ enum kit_type { KIT_RETAIL, KIT_TESTKIT, KIT_DEVKIT };
|
||||
|
||||
enum kit_type get_kit_type(void);
|
||||
|
||||
#define MINI_SYSCORE_PID 1
|
||||
|
||||
uint64_t alloc_page(void);
|
||||
void pte_store(uintptr_t ptep, uint64_t pte);
|
||||
void install_page(uintptr_t pml4, vm_offset_t va, vm_paddr_t pa, int bits);
|
||||
void install_page_syscore(vm_offset_t va, vm_paddr_t pa, int bits);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user