mirror of
https://github.com/open-goal/jak-project
synced 2026-07-09 23:01:56 -04:00
another fix
This commit is contained in:
@@ -833,8 +833,10 @@ Ptr<uint8_t> link_and_exec(Ptr<uint8_t> data,
|
||||
/*!
|
||||
* Wrapper so this can be called from GOAL. Not in original game.
|
||||
*/
|
||||
u64 link_and_exec_wrapper(u64 data, u64 name, s64 size, u64 heap, u64 flags) {
|
||||
return link_and_exec(Ptr<u8>(data), Ptr<char>(name).c(), size, Ptr<kheapinfo>(heap), flags)
|
||||
u64 link_and_exec_wrapper(u64* args) {
|
||||
// data, name, size, heap, flags
|
||||
return link_and_exec(Ptr<u8>(args[0]), Ptr<char>(args[1]).c(), args[2], Ptr<kheapinfo>(args[3]),
|
||||
args[4])
|
||||
.offset;
|
||||
}
|
||||
|
||||
@@ -843,13 +845,10 @@ u64 link_and_exec_wrapper(u64 data, u64 name, s64 size, u64 heap, u64 flags) {
|
||||
* 47 -> output_load, output_true, execute, 8, force fast
|
||||
* 39 -> no 8 (s7)
|
||||
*/
|
||||
uint64_t link_begin(uint64_t object_data,
|
||||
uint64_t name,
|
||||
int32_t size,
|
||||
uint64_t heap,
|
||||
uint32_t flags) {
|
||||
saved_link_control.begin(Ptr<u8>(object_data), Ptr<char>(name).c(), size, Ptr<kheapinfo>(heap),
|
||||
flags);
|
||||
uint64_t link_begin(u64* args) {
|
||||
// object data, name size, heap flags
|
||||
saved_link_control.begin(Ptr<u8>(args[0]), Ptr<char>(args[1]).c(), args[2],
|
||||
Ptr<kheapinfo>(args[3]), args[4]);
|
||||
auto work_result = saved_link_control.work();
|
||||
// if we managed to finish in one shot, take care of calling finish
|
||||
if (work_result) {
|
||||
|
||||
+2
-11
@@ -6,9 +6,6 @@
|
||||
* DONE!
|
||||
*/
|
||||
|
||||
#ifndef JAK_KLINK_H
|
||||
#define JAK_KLINK_H
|
||||
|
||||
#include "Ptr.h"
|
||||
#include "kmalloc.h"
|
||||
#include "common/link_types.h"
|
||||
@@ -94,7 +91,7 @@ struct ObjectFileHeader {
|
||||
|
||||
void klink_init_globals();
|
||||
|
||||
u64 link_and_exec_wrapper(u64 data, u64 name, s64 size, u64 heap, u64 flags);
|
||||
u64 link_and_exec_wrapper(u64* args);
|
||||
|
||||
Ptr<uint8_t> link_and_exec(Ptr<uint8_t> data,
|
||||
const char* name,
|
||||
@@ -102,15 +99,9 @@ Ptr<uint8_t> link_and_exec(Ptr<uint8_t> data,
|
||||
Ptr<kheapinfo> heap,
|
||||
uint32_t flags);
|
||||
|
||||
uint64_t link_begin(uint64_t object_data,
|
||||
uint64_t name,
|
||||
int32_t size,
|
||||
uint64_t heap,
|
||||
uint32_t flags);
|
||||
uint64_t link_begin(u64* args);
|
||||
|
||||
uint64_t link_resume();
|
||||
void ultimate_memcpy(void* dst, void* src, uint32_t size);
|
||||
|
||||
extern link_control saved_link_control;
|
||||
|
||||
#endif // JAK_KLINK_H
|
||||
|
||||
@@ -1927,7 +1927,7 @@ s32 InitHeapAndSymbol() {
|
||||
make_function_symbol_from_c("method-set!", (void*)method_set);
|
||||
|
||||
// dgo
|
||||
make_function_symbol_from_c("link", (void*)link_and_exec_wrapper);
|
||||
make_stack_arg_function_symbol_from_c("link", (void*)link_and_exec_wrapper);
|
||||
make_function_symbol_from_c("dgo-load", (void*)load_and_link_dgo);
|
||||
|
||||
// forward declare
|
||||
@@ -1937,7 +1937,7 @@ s32 InitHeapAndSymbol() {
|
||||
make_raw_function_symbol_from_c("symlink3", 0);
|
||||
|
||||
// game stuff
|
||||
make_function_symbol_from_c("link-begin", (void*)link_begin);
|
||||
make_stack_arg_function_symbol_from_c("link-begin", (void*)link_begin);
|
||||
make_function_symbol_from_c("link-resume", (void*)link_resume);
|
||||
// make_function_symbol_from_c("mc-run", &CKernel::not_yet_implemented);
|
||||
// make_function_symbol_from_c("mc-format", &CKernel::not_yet_implemented);
|
||||
|
||||
Reference in New Issue
Block a user