ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/ps2launchargs/source/uLaunchELF/hdl_rpc.c
Revision: 1101
Committed: Wed Feb 7 05:08:54 2018 UTC (7 years, 8 months ago) by iritscen
Content type: text/x-csrc
File size: 1752 byte(s)
Log Message:
Added following to ps2launchargs:\n-Source code.\n-DLL needed to run ps2client.\n-Instructions for building uLaunchELF.

File Contents

# Content
1 #include <tamtypes.h>
2 #include <kernel.h>
3 #include <sifrpc.h>
4 #include <stdarg.h>
5 #include <string.h>
6 #include <stdio.h>
7
8 #include "launchelf.h"
9
10 static SifRpcClientData_t client __attribute__((aligned(64)));
11 static int Rpc_Buffer[1024] __attribute__((aligned(64)));
12
13 typedef struct {
14 char Partition_Name [32 + 1];
15 } Rpc_Packet_Send_GetInfo;
16
17 typedef struct {
18 char OldName[64];
19 char NewName[64];
20 } Rpc_Packet_Send_Rename;
21
22 int Hdl_Inited = 0;
23
24 int Hdl_Info_BindRpc() {
25 int ret;
26 int retryCount = 0x1000;
27
28 while(retryCount--) {
29 ret = SifBindRpc( &client, HDL_IRX, 0);
30 if ( ret < 0) {
31 printf("Hdl Info: EE Bind RPC Error.\n");
32 return -1;
33 }
34 if (client.server != 0){
35 printf("Hdl Info: EE Bind RPC Set.\n");
36 break;
37 }
38
39 // short delay
40 ret = 0x10000;
41 while(ret--) asm("nop\nnop\nnop\nnop");
42 }
43
44 Hdl_Inited = 1;
45 return retryCount;
46 }
47
48 int HdlGetGameInfo(char *PartName, GameInfo *Game){
49
50 Rpc_Packet_Send_GetInfo *Packet = (Rpc_Packet_Send_GetInfo *)Rpc_Buffer;
51
52 if(!Hdl_Inited) return -1;
53
54 strcpy(Packet->Partition_Name, PartName);
55
56 SifCallRpc(&client, HDL_GETINFO, 0, (void*)Rpc_Buffer, sizeof(Rpc_Packet_Send_GetInfo), (void*)Rpc_Buffer, sizeof(GameInfo)+4,0,0);
57
58 memcpy(Game, ((void *)Rpc_Buffer)+4, sizeof(GameInfo));
59
60 return Rpc_Buffer[0];
61 }
62
63 int HdlRenameGame(char* OldName, char* NewName){
64
65 Rpc_Packet_Send_Rename *Packet = (Rpc_Packet_Send_Rename *)Rpc_Buffer;
66
67 if(!Hdl_Inited) return -1;
68
69 strcpy(Packet->OldName, OldName);
70 strcpy(Packet->NewName, NewName);
71
72 SifCallRpc(&client, HDL_RENAME, 0, (void*)(Rpc_Buffer), sizeof(Rpc_Packet_Send_Rename), (void*)Rpc_Buffer, 4,0,0);
73
74 return Rpc_Buffer[0];
75 }

Properties

Name Value
svn:executable *