source: ps2launchargs/source/uLaunchELF/hdl_info/main.c@ 1137

Last change on this file since 1137 was 1101, checked in by iritscen, 7 years ago

Added following to ps2launchargs:\n-Source code.\n-DLL needed to run ps2client.\n-Instructions for building uLaunchELF.

  • Property svn:executable set to *
File size: 1.7 KB
Line 
1#include <thbase.h>
2#include <thevent.h>
3#include <iomanX.h>
4#include <stdio.h>
5#include <loadcore.h>
6#include <intrman.h>
7#include <sys/stat.h>
8#include <dev9.h>
9#include <sifrpc.h>
10
11#include "ps2_hdd.h"
12#include "hdd.h"
13
14int __attribute__((unused)) shutdown() { return 0; }
15
16/* function declaration */
17void rpcMainThread(void* param);
18void *rpcCommandHandler(int command, void *Data, int Size);
19
20static SifRpcDataQueue_t Rpc_Queue __attribute__((aligned(64)));
21static SifRpcServerData_t Rpc_Server __attribute((aligned(64)));
22static int Rpc_Buffer[1024] __attribute((aligned(64)));
23
24/* Description: Module entry point */
25int _start(int argc, char **argv)
26{
27 iop_thread_t param;
28 int id;
29
30 printf("Hdl Info: PS2 HDLoader Information Module v 0.1\n");
31 printf("Hdl Info: 2006 Polo\n");
32
33 printf("Hdl Info: IOP RPC Initialization.\n");
34 /*create thread*/
35 param.attr = TH_C;
36 param.thread = rpcMainThread;
37 param.priority = 40;
38 param.stacksize = 0x800;
39 param.option = 0;
40
41 id = CreateThread(&param);
42 if (id > 0) {
43 StartThread(id,0);
44 return 0;
45 } else
46 return 1;
47
48 return MODULE_RESIDENT_END;
49}
50
51void rpcMainThread(void* param)
52{
53 SifInitRpc(0);
54 SifSetRpcQueue(&Rpc_Queue, GetThreadId());
55 SifRegisterRpc(&Rpc_Server, HDL_IRX, (void *) rpcCommandHandler, (u8 *) &Rpc_Buffer, 0, 0, &Rpc_Queue);
56 SifRpcLoop(&Rpc_Queue);
57}
58
59void *rpcCommandHandler(int command, void *Data, int Size)
60{
61 switch (command) {
62 case 4: //HDL Get Game Info
63 ((int *)Data)[0] = HdlGetGameInfo((char *)Data, (GameInfo *)(Data+4));
64 break;
65 case 5: //HDL Rename Game
66 ((int *)Data)[0] = HdlRenameGame((char*)Data);
67 break;
68 default:
69 break;
70 }
71 return Data;
72}
Note: See TracBrowser for help on using the repository browser.