sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
libcdvd-rpc.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16
17#ifndef __LIBCDVD_RPC_H__
18#define __LIBCDVD_RPC_H__
19
20#include <tamtypes.h>
21#include <libcdvd-common.h>
22
23/* S-command parameters */
24
26{
27 u16 cmdNum;
28 u16 inBuffSize;
29 u8 inBuff[16];
30};
31
33{
34 u8 arg1;
35 u8 arg2;
36 u8 shift;
37 u8 pad;
38};
39
41{
42 u32 address;
43 u16 value;
44 u16 pad;
45};
46
47/* N-command parameters */
48
50{
51 u16 cmdNum;
52 u16 inBuffSize;
53 u8 inBuff[16];
54};
55
57{
58 u32 arg1;
59 u32 arg2;
60 u32 command;
61};
62
63/* SIF RPC packet definitions */
64
66{
67 int m_mode;
68} cdvdfsv_rpc1_inpacket_t;
69
71{
72 int m_retres;
73 int m_cdvdfsv_ver;
74 int m_cdvdman_ver;
75 int m_debug_mode;
76} cdvdfsv_rpc1_outpacket_t;
77
79{
80 int m_mode;
81} cdvdfsv_rpc2_inpacket_t;
82
84{
85 int m_retres;
86} cdvdfsv_rpc2_outpacket_t;
87
89{
90 u32 m_b1len;
91 u32 m_b2len;
92 u32 m_b1dst;
93 u32 m_b2dst;
94 u8 m_pbuf1[64];
95 u8 m_pbuf2[64];
96} cdvdfsv_unaligned_data_outpacket_t;
97
99{
100 sceCdlFILE m_fp;
101 int m_file_attributes;
102 char m_path[256];
103 uiptr m_eedest;
104 int m_layer;
105} cdvdfsv_rpc4_sz12c_inpacket_t;
106
108{
109 sceCdlFILE m_fp;
110 int m_file_attributes;
111 char m_path[256];
112 uiptr m_eedest;
113} cdvdfsv_rpc4_sz128_inpacket_t;
114
116{
117 sceCdlFILE m_fp;
118 char m_path[256];
119 uiptr m_eedest;
120} cdvdfsv_rpc4_sz124_inpacket_t;
121
123{
124 cdvdfsv_rpc4_sz12c_inpacket_t m_pkt_sz12c;
125 cdvdfsv_rpc4_sz128_inpacket_t m_pkt_sz128;
126 cdvdfsv_rpc4_sz124_inpacket_t m_pkt_sz124;
127} cdvdfsv_rpc4_inpacket_t;
128
130{
131 int m_retres;
132 int m_padding[3];
133} cdvdfsv_rpc4_outpacket_t;
134
136{
137 sceCdCLOCK m_clock;
138} cdvdfsv_rpc3_02_inpacket_t;
139
141{
142 int m_param;
143} cdvdfsv_rpc3_05_inpacket_t;
144
146{
147 u8 m_buffer[8];
148} cdvdfsv_rpc3_07_inpacket_t;
149
151{
152 u32 m_address;
153 u16 m_data;
154 u8 xpad1;
155 u8 xpad2;
156} cdvdfsv_rpc3_08_inpacket_t;
157
159{
160 u32 m_address;
161 u16 m_data;
162 u8 xpad1;
163 u8 xpad2;
164} cdvdfsv_rpc3_09_inpacket_t;
165
167{
168 u8 m_enable_xor;
169 u8 m_enable_shift;
170 u8 m_shiftval;
171} cdvdfsv_rpc3_0A_inpacket_t;
172
174{
175 u8 m_cmdNum;
176 u8 m_gap1;
177 u16 m_inBuffSize;
178 u8 m_inBuff[16];
179} cdvdfsv_rpc3_0B_inpacket_t;
180
182{
183 u32 m_mode;
184} cdvdfsv_rpc3_0D_inpacket_t;
185
187{
188 u8 m_mode;
189 u8 m_block;
190 // EE side sceCdOpenConfig max NumBlocks 0x44, each block 15 bytes -> 1020 bytes total
191 // Max size is 105 bytes (7 blocks) due to mechacon config limits
192 u8 m_NumBlocks;
193 u8 xpad1;
194} cdvdfsv_rpc3_0E_inpacket_t;
195
197{
198 u8 m_buffer[1020];
199} cdvdfsv_rpc3_11_inpacket_t;
200
202{
203 u8 m_buffer[8];
204} cdvdfsv_rpc3_13_inpacket_t;
205
207{
208 int m_mode;
209} cdvdfsv_rpc3_15_inpacket_t;
210
212{
213 u32 m_mode;
214} cdvdfsv_rpc3_19_inpacket_t;
215
217{
218 char m_buffer[16];
219} cdvdfsv_rpc3_1B_inpacket_t;
220
222{
223 u32 m_spinctl;
224} cdvdfsv_rpc3_1D_inpacket_t;
225
227{
228 u8 m_romname[4];
229} cdvdfsv_rpc3_1E_inpacket_t;
230
232{
233 u32 m_control;
234} cdvdfsv_rpc3_20_inpacket_t;
235
237{
238 int m_media;
239 char m_char4;
240} cdvdfsv_rpc3_22_inpacket_t;
241
243{
244 int m_priority;
245} cdvdfsv_rpc3_23_inpacket_t;
246
248{
249 int m_param;
250 int m_timeout;
251} cdvdfsv_rpc3_25_inpacket_t;
252
254{
255 sceCdCLOCK m_clock;
256 u16 m_userdata;
257 u32 m_flags;
258} cdvdfsv_rpc3_28_inpacket_t;
259
261{
262 u32 m_param;
263} cdvdfsv_rpc3_2B_inpacket_t;
264
266{
267 u32 m_arg1;
268} cdvdfsv_rpc3_2D_inpacket_t;
269
271{
272 u32 m_arg1;
273 u32 m_arg2;
274} cdvdfsv_rpc3_2E_inpacket_t;
275
277{
278 u32 m_arg1;
279} cdvdfsv_rpc3_2F_inpacket_t;
280
282{
283 u32 m_mode;
284} cdvdfsv_rpc3_30_inpacket_t;
285
287{
288 u32 m_param;
289} cdvdfsv_rpc3_31_inpacket_t;
290
292{
293 u32 m_param;
294} cdvdfsv_rpc3_35_inpacket_t;
295
297{
298 u32 m_arg1;
299 u32 m_arg2;
300} cdvdfsv_rpc3_3C_inpacket_t;
301
303{
304 u32 m_arg1;
305} cdvdfsv_rpc3_3D_inpacket_t;
306
308{
309 u32 m_arg1;
310} cdvdfsv_rpc3_3F_inpacket_t;
311
313{
314 u8 m_arg1;
315 u8 m_arg2[12];
316 u8 m_arg3[2];
317} cdvdfsv_rpc3_44_inpacket_t;
318
320{
321 // OSD add
322 cdvdfsv_rpc3_02_inpacket_t m_pkt_02;
323 // OSD add end
324 cdvdfsv_rpc3_05_inpacket_t m_pkt_05;
325 // OSD add
326 cdvdfsv_rpc3_07_inpacket_t m_pkt_07;
327 cdvdfsv_rpc3_08_inpacket_t m_pkt_08;
328 cdvdfsv_rpc3_09_inpacket_t m_pkt_09;
329 cdvdfsv_rpc3_0A_inpacket_t m_pkt_0A;
330 // OSD add end
331 cdvdfsv_rpc3_0B_inpacket_t m_pkt_0B;
332 // OSD add
333 cdvdfsv_rpc3_0D_inpacket_t m_pkt_0D;
334 cdvdfsv_rpc3_0E_inpacket_t m_pkt_0E;
335 cdvdfsv_rpc3_11_inpacket_t m_pkt_11;
336 cdvdfsv_rpc3_13_inpacket_t m_pkt_13;
337 // OSD add end
338 cdvdfsv_rpc3_15_inpacket_t m_pkt_15;
339 // OSD add
340 cdvdfsv_rpc3_19_inpacket_t m_pkt_19;
341 cdvdfsv_rpc3_1B_inpacket_t m_pkt_1B;
342 cdvdfsv_rpc3_1D_inpacket_t m_pkt_1D;
343 cdvdfsv_rpc3_1E_inpacket_t m_pkt_1E;
344 cdvdfsv_rpc3_20_inpacket_t m_pkt_20;
345 // OSD add end
346 cdvdfsv_rpc3_22_inpacket_t m_pkt_22;
347 cdvdfsv_rpc3_23_inpacket_t m_pkt_23;
348 cdvdfsv_rpc3_25_inpacket_t m_pkt_25;
349 // OSD add
350 cdvdfsv_rpc3_28_inpacket_t m_pkt_28;
351 cdvdfsv_rpc3_2B_inpacket_t m_pkt_2B;
352 cdvdfsv_rpc3_2D_inpacket_t m_pkt_2D;
353 cdvdfsv_rpc3_2E_inpacket_t m_pkt_2E;
354 cdvdfsv_rpc3_2F_inpacket_t m_pkt_2F;
355 cdvdfsv_rpc3_30_inpacket_t m_pkt_30;
356 cdvdfsv_rpc3_31_inpacket_t m_pkt_31;
357 cdvdfsv_rpc3_35_inpacket_t m_pkt_35;
358 cdvdfsv_rpc3_3C_inpacket_t m_pkt_3C;
359 cdvdfsv_rpc3_3D_inpacket_t m_pkt_3D;
360 cdvdfsv_rpc3_3F_inpacket_t m_pkt_3F;
361 cdvdfsv_rpc3_44_inpacket_t m_pkt_44;
362 // OSD add end
363} cdvdfsv_rpc3_inpacket_t;
364
366{
367 int m_retres;
368 sceCdCLOCK m_clock;
369} cdvdfsv_rpc3_01_outpacket_t;
370
372{
373 int m_retres;
374 sceCdCLOCK m_clock;
375} cdvdfsv_rpc3_02_outpacket_t;
376
378{
379 int m_retres;
380 u32 m_traychk;
381} cdvdfsv_rpc3_05_outpacket_t;
382
384{
385 int m_retres;
386 u32 m_result;
387 u8 m_buffer[8];
388} cdvdfsv_rpc3_06_outpacket_t;
389
391{
392 int m_retres;
393 u32 m_status;
394} cdvdfsv_rpc3_07_outpacket_t;
395
397{
398 int m_retres;
399 u32 m_address;
400 u16 m_data;
401 u8 m_status;
402 u8 xpad1;
403} cdvdfsv_rpc3_08_outpacket_t;
404
406{
407 int m_retres;
408 u32 m_address;
409 u16 m_data;
410 u8 m_status;
411 u8 xpad1;
412} cdvdfsv_rpc3_09_outpacket_t;
413
415{
416 u8 m_outbuf[16];
417} cdvdfsv_rpc3_0B_outpacket_t;
418
420{
421 int m_retres;
422 u32 m_status;
423} cdvdfsv_rpc3_0E_outpacket_t;
424
426{
427 int m_retres;
428 u32 m_status;
429} cdvdfsv_rpc3_0F_outpacket_t;
430
432{
433 int m_retres;
434 u32 m_status;
435 u8 m_buffer[1020];
436} cdvdfsv_rpc3_10_outpacket_t;
437
439{
440 int m_retres;
441 u32 m_status;
442} cdvdfsv_rpc3_11_outpacket_t;
443
445{
446 int m_retres;
447 u32 m_status;
448 u8 m_buffer[8];
449} cdvdfsv_rpc3_12_outpacket_t;
450
452{
453 int m_retres;
454 u32 m_status;
455} cdvdfsv_rpc3_13_outpacket_t;
456
458{
459 int m_retres;
460 u32 m_status;
461 u8 m_buffer[4];
462} cdvdfsv_rpc3_14_outpacket_t;
463
465{
466 int m_retres;
467 u32 m_status;
468} cdvdfsv_rpc3_15_outpacket_t;
469
471{
472 int m_retres;
473 u32 m_status;
474 u8 m_buffer[10];
475} cdvdfsv_rpc3_17_outpacket_t;
476
478{
479 int m_retres;
480 u32 m_status;
481} cdvdfsv_rpc3_18_outpacket_t;
482
484{
485 int m_retres;
486 u32 m_status;
487} cdvdfsv_rpc3_19_outpacket_t;
488
490{
491 int m_retres;
492 u32 m_status;
493 char m_buffer[16];
494} cdvdfsv_rpc3_1A_outpacket_t;
495
497{
498 int m_retres;
499 u32 m_status;
500} cdvdfsv_rpc3_1B_outpacket_t;
501
503{
504 int m_retres;
505 u32 m_status;
506} cdvdfsv_rpc3_1C_outpacket_t;
507
509{
510 int m_retres;
511 u32 m_status;
512} cdvdfsv_rpc3_1F_outpacket_t;
513
515{
516 int m_retres;
517 u32 m_status;
518} cdvdfsv_rpc3_20_outpacket_t;
519
521{
522 int m_retres;
523 u32 m_result;
524} cdvdfsv_rpc3_21_outpacket_t;
525
527{
528 int m_retres;
529 u64 m_guid;
530} cdvdfsv_rpc3_24_outpacket_t;
531
533{
534 int m_retres;
535 unsigned int m_id;
536} cdvdfsv_rpc3_26_outpacket_t;
537
539{
540 int m_retres;
541 int m_on_dual;
542 unsigned int m_layer1_start;
543} cdvdfsv_rpc3_27_outpacket_t;
544
546{
547 int m_retres;
548 sceCdCLOCK m_clock;
549} cdvdfsv_rpc3_28_outpacket_t;
550
552{
553 int m_retres;
554 sceCdCLOCK m_clock;
555 u16 m_userdata;
556 int m_flags;
557 u32 m_wakeupreason;
558} cdvdfsv_rpc3_29_outpacket_t;
559
561{
562 int m_retres;
563 u32 m_status;
564 u8 m_out[11];
565} cdvdfsv_rpc3_2A_outpacket_t;
566
568{
569 int m_retres;
570 u32 m_status;
571} cdvdfsv_rpc3_2B_outpacket_t;
572
574{
575 int m_retres;
576 u32 m_arg2;
577 u32 m_arg1;
578} cdvdfsv_rpc3_2C_outpacket_t;
579
581{
582 int m_retres;
583 u32 m_result2;
584 u32 m_result1;
585} cdvdfsv_rpc3_2E_outpacket_t;
586
588{
589 int m_retres;
590 u32 m_status;
591} cdvdfsv_rpc3_2F_outpacket_t;
592
594{
595 int m_retres;
596 u32 m_status;
597} cdvdfsv_rpc3_30_outpacket_t;
598
600{
601 int m_retres;
602 u32 m_status;
603} cdvdfsv_rpc3_31_outpacket_t;
604
606{
607 int m_retres;
608 u32 m_arg4;
609 u32 m_arg1;
610 unsigned int m_arg2;
611 unsigned int m_arg3;
612} cdvdfsv_rpc3_32_outpacket_t;
613
615{
616 int m_retres;
617 u32 m_status;
618} cdvdfsv_rpc3_35_outpacket_t;
619
621{
622 int m_retres;
623 u32 m_status;
624 u32 m_param;
625} cdvdfsv_rpc3_38_outpacket_t;
626
628{
629 int m_retres;
630 u32 m_status;
631} cdvdfsv_rpc3_39_outpacket_t;
632
634{
635 int m_retres;
636 u32 m_arg2;
637} cdvdfsv_rpc3_3A_outpacket_t;
638
640{
641 int m_retres;
642 u32 m_arg2;
643 u8 m_arg1[16];
644} cdvdfsv_rpc3_3B_outpacket_t;
645
647{
648 int m_retres;
649 u32 m_result2;
650 u32 m_result1;
651} cdvdfsv_rpc3_3C_outpacket_t;
652
654{
655 int m_retres;
656 u32 m_status;
657} cdvdfsv_rpc3_3D_outpacket_t;
658
660{
661 int m_retres;
662 u32 m_result2;
663 u32 m_result1;
664} cdvdfsv_rpc3_3E_outpacket_t;
665
667{
668 int m_retres;
669 u32 m_status;
670} cdvdfsv_rpc3_3F_outpacket_t;
671
673{
674 int m_retres;
675 u32 m_status;
676 u32 m_arg1[4]; // TODO u8[15]
677} cdvdfsv_rpc3_43_outpacket_t;
678
680{
681 int m_retres;
682 u32 m_status;
683} cdvdfsv_rpc3_44_outpacket_t;
684
686{
687 int m_retres;
688 cdvdfsv_rpc3_01_outpacket_t m_pkt_01;
689 // OSD add
690 cdvdfsv_rpc3_02_outpacket_t m_pkt_02;
691 // OSD add end
692 cdvdfsv_rpc3_05_outpacket_t m_pkt_05;
693 cdvdfsv_rpc3_06_outpacket_t m_pkt_06;
694 // OSD add
695 cdvdfsv_rpc3_07_outpacket_t m_pkt_07;
696 cdvdfsv_rpc3_08_outpacket_t m_pkt_08;
697 cdvdfsv_rpc3_09_outpacket_t m_pkt_09;
698 // OSD add end
699 cdvdfsv_rpc3_0B_outpacket_t m_pkt_0B;
700 // OSD add
701 cdvdfsv_rpc3_0E_outpacket_t m_pkt_0E;
702 cdvdfsv_rpc3_0F_outpacket_t m_pkt_0F;
703 cdvdfsv_rpc3_10_outpacket_t m_pkt_10;
704 cdvdfsv_rpc3_11_outpacket_t m_pkt_11;
705 cdvdfsv_rpc3_12_outpacket_t m_pkt_12;
706 cdvdfsv_rpc3_13_outpacket_t m_pkt_13;
707 cdvdfsv_rpc3_14_outpacket_t m_pkt_14;
708 // OSD add end
709 cdvdfsv_rpc3_15_outpacket_t m_pkt_15;
710 // OSD add
711 cdvdfsv_rpc3_17_outpacket_t m_pkt_17;
712 cdvdfsv_rpc3_18_outpacket_t m_pkt_18;
713 cdvdfsv_rpc3_19_outpacket_t m_pkt_19;
714 // OSD add end
715 cdvdfsv_rpc3_1A_outpacket_t m_pkt_1A;
716 // OSD add
717 cdvdfsv_rpc3_1B_outpacket_t m_pkt_1B;
718 cdvdfsv_rpc3_1C_outpacket_t m_pkt_1C;
719 cdvdfsv_rpc3_1F_outpacket_t m_pkt_1F;
720 cdvdfsv_rpc3_20_outpacket_t m_pkt_20;
721 // OSD add end
722 cdvdfsv_rpc3_21_outpacket_t m_pkt_21;
723 cdvdfsv_rpc3_24_outpacket_t m_pkt_24;
724 cdvdfsv_rpc3_26_outpacket_t m_pkt_26;
725 cdvdfsv_rpc3_27_outpacket_t m_pkt_27;
726 // OSD add
727 cdvdfsv_rpc3_28_outpacket_t m_pkt_28;
728 cdvdfsv_rpc3_29_outpacket_t m_pkt_29;
729 cdvdfsv_rpc3_2A_outpacket_t m_pkt_2A;
730 cdvdfsv_rpc3_2B_outpacket_t m_pkt_2B;
731 cdvdfsv_rpc3_2C_outpacket_t m_pkt_2C;
732 cdvdfsv_rpc3_2E_outpacket_t m_pkt_2E;
733 cdvdfsv_rpc3_2F_outpacket_t m_pkt_2F;
734 cdvdfsv_rpc3_30_outpacket_t m_pkt_30;
735 cdvdfsv_rpc3_31_outpacket_t m_pkt_31;
736 cdvdfsv_rpc3_32_outpacket_t m_pkt_32;
737 cdvdfsv_rpc3_35_outpacket_t m_pkt_35;
738 cdvdfsv_rpc3_38_outpacket_t m_pkt_38;
739 cdvdfsv_rpc3_39_outpacket_t m_pkt_39;
740 cdvdfsv_rpc3_3A_outpacket_t m_pkt_3A;
741 cdvdfsv_rpc3_3B_outpacket_t m_pkt_3B;
742 cdvdfsv_rpc3_3C_outpacket_t m_pkt_3C;
743 cdvdfsv_rpc3_3D_outpacket_t m_pkt_3D;
744 cdvdfsv_rpc3_3E_outpacket_t m_pkt_3E;
745 cdvdfsv_rpc3_3F_outpacket_t m_pkt_3F;
746 cdvdfsv_rpc3_43_outpacket_t m_pkt_43;
747 cdvdfsv_rpc3_44_outpacket_t m_pkt_44;
748 // OSD add end
749} cdvdfsv_rpc3_outpacket_t;
750
752{
753 u32 m_lbn;
754 u32 m_sectors;
755 uiptr m_paddr;
756 sceCdRMode m_rmodeee;
757 uiptr m_eeremaindest;
758 uiptr m_eedest;
759 u32 m_decval;
760} cdvdfsv_rpc5_01_inpacket_t;
761
763{
764 u32 m_lbn;
765 u32 m_sectors;
766 uiptr m_buf;
767 sceCdRMode m_mode;
768 uiptr m_eeremaindest;
769 uiptr m_eedest;
770} cdvdfsv_rpc5_02_inpacket_t;
771
773{
774 u32 m_lbn;
775 u32 m_nsectors;
776 u32 m_buf;
777 sceCdRMode m_mode;
778 u32 m_eedest;
779} cdvdfsv_rpc5_03_inpacket_t;
780
782{
783 uiptr m_eedest;
784} cdvdfsv_rpc5_04_inpacket_t;
785
787{
788 u32 m_lbn;
789} cdvdfsv_rpc5_05_inpacket_t;
790
792{
793 u32 m_arg1;
794 u32 m_arg2;
795 u32 m_command;
796} cdvdfsv_rpc5_0B_inpacket_t;
797
799{
800 u8 m_cmdNum;
801 u8 m_gap1;
802 u16 m_inBuffSize;
803 u8 m_inBuff[16];
804} cdvdfsv_rpc5_0C_inpacket_t;
805
807{
808 u32 m_lbn;
809 u32 m_sectors;
810 void *m_buf;
811 sceCdRMode m_mode;
812 u8 m_unused[4];
813 uiptr m_eedest;
814} cdvdfsv_rpc5_0D_inpacket_t;
815
817{
818 sceCdRChain m_readChain[65];
819 sceCdRMode m_mode;
820 uiptr m_eedest;
821} cdvdfsv_rpc5_0F_inpacket_t;
822
824{
825 cdvdfsv_rpc5_01_inpacket_t m_pkt_01;
826 cdvdfsv_rpc5_02_inpacket_t m_pkt_02;
827 // OSD add
828 cdvdfsv_rpc5_03_inpacket_t m_pkt_03;
829 // OSD add end
830 cdvdfsv_rpc5_04_inpacket_t m_pkt_04;
831 cdvdfsv_rpc5_05_inpacket_t m_pkt_05;
832 // OSD add
833 cdvdfsv_rpc5_0B_inpacket_t m_pkt_0B;
834 // OSD add end
835 cdvdfsv_rpc5_0C_inpacket_t m_pkt_0C;
836 cdvdfsv_rpc5_0D_inpacket_t m_pkt_0D;
837 cdvdfsv_rpc5_0F_inpacket_t m_pkt_0F;
838} cdvdfsv_rpc5_inpacket_t;
839
841{
842 int m_retres;
843 int m_isdvd;
844} cdvdfsv_rpc5_04_outpacket_t;
845
847{
848 int m_retres;
849 u8 m_dg_buf[16];
850} cdvdfsv_rpc5_0B_outpacket_t;
851
853{
854 int m_retres;
855 u8 m_diskid[5];
856} cdvdfsv_rpc5_11_outpacket_t;
857
859{
860 int m_retres;
861 u32 m_status;
862} cdvdfsv_rpc5_17_outpacket_t;
863
865{
866 int m_retres;
867 cdvdfsv_rpc5_04_outpacket_t m_pkt_04;
868 // OSD add
869 cdvdfsv_rpc5_0B_outpacket_t m_pkt_0B;
870 // OSD add end
871 cdvdfsv_rpc5_11_outpacket_t m_pkt_11;
872 cdvdfsv_rpc5_17_outpacket_t m_pkt_17;
873} cdvdfsv_rpc5_outpacket_t;
874
875#endif /* _LIBCDVD_RPC_H_ */