30#include <sys/_tz_structs.h>
35#define CD_SERVER_SCMD 0x80000593
38 CD_SCMD_READCLOCK = 0x01,
43 CD_SCMD_READ_ILINK_ID,
44 CD_SCMD_WRITE_ILINK_ID,
55 CD_SCMD_READ_CONSOLE_ID,
56 CD_SCMD_WRITE_CONSOLE_ID,
57 CD_SCMD_READ_MECHACON_VERSION,
62 CD_SCMD_AUTO_ADJUST_CTRL,
63 CD_SCMD_READ_MODEL_NAME,
64 CD_SCMD_WRITE_MODEL_NAME,
68 CD_SCMD_CANCELPOWEROFF,
89#ifdef F__scmd_internals
101int CdConfigRdWrNumBlocks;
106extern int sCmdSemaId;
107extern u8 sCmdRecvBuff[];
111extern int CdConfigRdWrNumBlocks;
115int _CdCheckSCmd(
int cmd);
119#ifdef F_sceCdReadClock
122 if (_CdCheckSCmd(CD_SCMD_READCLOCK) == 0)
126 printf(
"Libcdvd call Clock read 1\n");
128 if (SifCallRpc(&clientSCmd, CD_SCMD_READCLOCK, 0, NULL, 0, sCmdRecvBuff, 16, NULL, NULL) < 0) {
129 SignalSema(sCmdSemaId);
133 memcpy(clock, UNCACHED_SEG(sCmdRecvBuff + 4), 8);
136 printf(
"Libcdvd call Clock read 2\n");
138 SignalSema(sCmdSemaId);
139 return *(
int *)UNCACHED_SEG(sCmdRecvBuff);
150time_t ps2time(time_t *t)
161 convertfrombcd(&ps2tim);
163 printf(
"ps2time: %d-%d-%d %d:%d:%d\n",
171 tim.tm_sec = ps2tim.
second;
172 tim.tm_min = ps2tim.
minute;
173 tim.tm_hour = ps2tim.
hour;
174 tim.tm_mday = ps2tim.
day;
175 tim.tm_mon = ps2tim.
month - 1;
176 tim.tm_year = ps2tim.
year + 100;
181 offset_save = tz->__tzrule[0].offset;
182 tz->__tzrule[0].offset = -9 * 60 * 60;
186 tz->__tzrule[0].offset = offset_save;
195#ifdef F_sceCdWriteClock
200 if (_CdCheckSCmd(CD_SCMD_WRITECLOCK) == 0)
203 memcpy(&sCmdSendBuff.clock, clock, 8);
205 if (SifCallRpc(&clientSCmd, CD_SCMD_WRITECLOCK, 0, &sCmdSendBuff, 8, sCmdRecvBuff, 16, NULL, NULL) < 0) {
206 SignalSema(sCmdSemaId);
210 memcpy(clock, UNCACHED_SEG(sCmdRecvBuff + 4), 8);
211 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
213 SignalSema(sCmdSemaId);
218#ifdef F_sceCdGetDiskType
223 if (_CdCheckSCmd(CD_SCMD_GETDISKTYPE) == 0)
226 if (SifCallRpc(&clientSCmd, CD_SCMD_GETDISKTYPE, 0, NULL, 0, sCmdRecvBuff, 4, NULL, NULL) < 0) {
227 SignalSema(sCmdSemaId);
231 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
233 SignalSema(sCmdSemaId);
238#ifdef F_sceCdGetError
243 if (_CdCheckSCmd(CD_SCMD_GETERROR) == 0)
246 if (SifCallRpc(&clientSCmd, CD_SCMD_GETERROR, 0, NULL, 0, sCmdRecvBuff, 4, NULL, NULL) < 0) {
247 SignalSema(sCmdSemaId);
251 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
253 SignalSema(sCmdSemaId);
263 if (_CdCheckSCmd(CD_SCMD_TRAYREQ) == 0)
266 sCmdSendBuff.s32arg = param;
268 if (SifCallRpc(&clientSCmd, CD_SCMD_TRAYREQ, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 8, NULL, NULL) < 0) {
269 SignalSema(sCmdSemaId);
274 *traychk = *(u32 *)UNCACHED_SEG(sCmdRecvBuff + 4);
275 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
277 SignalSema(sCmdSemaId);
282#ifdef F_sceCdApplySCmd
283int sceCdApplySCmd(u8 cmdNum,
const void *inBuff, u16 inBuffSize,
void *outBuff)
285 if (_CdCheckSCmd(CD_SCMD_SCMD) == 0)
288 sCmdSendBuff.scmd.cmdNum = cmdNum;
289 sCmdSendBuff.scmd.inBuffSize = inBuffSize;
290 memset(sCmdSendBuff.scmd.inBuff, 0, 16);
292 memcpy(sCmdSendBuff.scmd.inBuff, inBuff, inBuffSize);
294 if (SifCallRpc(&clientSCmd, CD_SCMD_SCMD, 0, &sCmdSendBuff, 20, sCmdRecvBuff, 16, NULL, NULL) < 0) {
295 SignalSema(sCmdSemaId);
300 memcpy(outBuff, UNCACHED_SEG(sCmdRecvBuff), 16);
301 SignalSema(sCmdSemaId);
311 if (_CdCheckSCmd(CD_SCMD_STATUS) == 0)
314 if (SifCallRpc(&clientSCmd, CD_SCMD_STATUS, 0, NULL, 0, sCmdRecvBuff, 4, NULL, NULL) < 0) {
315 SignalSema(sCmdSemaId);
320 printf(
"status called\n");
321 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
323 SignalSema(sCmdSemaId);
333 if (_CdCheckSCmd(CD_SCMD_BREAK) == 0)
336 if (SifCallRpc(&clientSCmd, CD_SCMD_BREAK, 0, NULL, 0, sCmdRecvBuff, 4, NULL, NULL) < 0) {
337 SignalSema(sCmdSemaId);
340 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
342 SignalSema(sCmdSemaId);
347#ifdef F_sceCdCancelPOffRdy
352 if (_CdCheckSCmd(CD_SCMD_CANCELPOWEROFF) == 0)
355 if (SifCallRpc(&clientSCmd, CD_SCMD_CANCELPOWEROFF, 0, NULL, 0, sCmdRecvBuff, 8, NULL, NULL) < 0) {
356 SignalSema(sCmdSemaId);
360 *result = *(u32 *)UNCACHED_SEG(sCmdRecvBuff + 4);
361 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
363 SignalSema(sCmdSemaId);
368#ifdef F_sceCdBlueLedCtrl
369int sceCdBlueLedCtrl(u8 control, u32 *result)
373 if (_CdCheckSCmd(CD_SCMD_BLUELEDCTRL) == 0)
376 sCmdSendBuff.u32arg = control;
377 if (SifCallRpc(&clientSCmd, CD_SCMD_BLUELEDCTRL, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 8, NULL, NULL) < 0) {
378 SignalSema(sCmdSemaId);
382 *result = *(u32 *)UNCACHED_SEG(sCmdRecvBuff + 4);
383 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
385 SignalSema(sCmdSemaId);
390#ifdef F_sceCdPowerOff
395 if (_CdCheckSCmd(CD_SCMD_POWEROFF) == 0)
398 if (SifCallRpc(&clientSCmd, CD_SCMD_POWEROFF, 0, NULL, 0, sCmdRecvBuff, 8, NULL, NULL) < 0) {
399 SignalSema(sCmdSemaId);
403 *result = *(u32 *)UNCACHED_SEG(sCmdRecvBuff + 4);
404 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
406 SignalSema(sCmdSemaId);
416 if (_CdCheckSCmd(CD_SCMD_MMODE) == 0)
419 sCmdSendBuff.s32arg = media;
420 if (SifCallRpc(&clientSCmd, CD_SCMD_MMODE, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 4, NULL, NULL) < 0) {
421 SignalSema(sCmdSemaId);
425 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
427 SignalSema(sCmdSemaId);
432#ifdef F_sceCdChangeThreadPriority
437 if (_CdCheckSCmd(CD_SCMD_SETTHREADPRI) == 0)
440 sCmdSendBuff.s32arg = priority;
441 if (SifCallRpc(&clientSCmd, CD_SCMD_SETTHREADPRI, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 4, NULL, NULL) < 0) {
442 SignalSema(sCmdSemaId);
446 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
448 SignalSema(sCmdSemaId);
454int _CdCheckSCmd(
int cur_cmd)
457 if (PollSema(sCmdSemaId) != sCmdSemaId) {
459 printf(
"Scmd fail sema cur_cmd:%d keep_cmd:%d\n", cur_cmd, sCmdNum);
463 ReferThreadStatus(CdThreadId, &CdThreadParam);
465 SignalSema(sCmdSemaId);
475 printf(
"Libcdvd bind err S cmd\n");
477 if (clientSCmd.server != 0)
488#ifdef F_sceCdForbidRead
493 if (_CdCheckSCmd(CD_SCMD_FORBID_READ) == 0)
495 if (SifCallRpc(&clientSCmd, CD_SCMD_FORBID_READ, 0, NULL, 0, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
496 *status = ((u32 *)UNCACHED_SEG(sCmdRecvBuff))[1];
497 result = ((
int *)UNCACHED_SEG(sCmdRecvBuff))[0];
501 SignalSema(sCmdSemaId);
506#ifdef F_sceCdSpinCtrlEE
511 if (_CdCheckSCmd(CD_SCMD_SPIN_CTRL) == 0)
513 sCmdSendBuff.u32arg = speed;
514 if (SifCallRpc(&clientSCmd, CD_SCMD_SPIN_CTRL, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
515 result = ((
int *)UNCACHED_SEG(sCmdRecvBuff))[0];
519 SignalSema(sCmdSemaId);
524#ifdef F_sceCdBootCertify
529 if (_CdCheckSCmd(CD_SCMD_BOOT_CERTIFY) == 0)
532 memcpy(sCmdSendBuff.bcertify, romname, 4);
533 if (SifCallRpc(&clientSCmd, CD_SCMD_BOOT_CERTIFY, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 4, NULL, NULL) >= 0) {
534 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
539 SignalSema(sCmdSemaId);
544#ifdef F_sceCdReadSUBQ
549 if (_CdCheckSCmd(CD_SCMD_READ_SUBQ) == 0)
552 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_SUBQ, 0, NULL, 0, sCmdRecvBuff, 0x12, NULL, NULL) >= 0) {
553 memcpy(buffer, UNCACHED_SEG(&sCmdRecvBuff[8]), 0x12);
554 *status = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
555 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
560 SignalSema(sCmdSemaId);
565#ifdef F_sceCdForbidDVDP
570 if (_CdCheckSCmd(CD_SCMD_FORBID_DVDP) == 0)
573 if (SifCallRpc(&clientSCmd, CD_SCMD_FORBID_DVDP, 0, NULL, 0, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
574 *result = ((u32 *)UNCACHED_SEG(sCmdRecvBuff))[1];
575 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
580 SignalSema(sCmdSemaId);
585#ifdef F_sceCdAutoAdjustCtrl
590 if (_CdCheckSCmd(CD_SCMD_AUTO_ADJUST_CTRL) == 0)
593 sCmdSendBuff.s32arg = mode;
594 if (SifCallRpc(&clientSCmd, CD_SCMD_AUTO_ADJUST_CTRL, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
595 *result = ((u32 *)UNCACHED_SEG(sCmdRecvBuff))[1];
596 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
601 SignalSema(sCmdSemaId);
607int sceCdDecSet(
unsigned char arg1,
unsigned char arg2,
unsigned char shift)
611 if (_CdCheckSCmd(CD_SCMD_DEC_SET) == 0)
614 sCmdSendBuff.decSet.arg1 = arg1;
615 sCmdSendBuff.decSet.arg2 = arg2;
616 sCmdSendBuff.decSet.shift = shift;
618 if (SifCallRpc(&clientSCmd, CD_SCMD_DEC_SET, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 16, NULL, NULL) >= 0) {
619 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
624 SignalSema(sCmdSemaId);
629#ifdef F_sceCdSetHDMode
634 if (_CdCheckSCmd(CD_SCMD_SET_HD_MODE) == 0)
636 sCmdSendBuff.u32arg = mode;
637 if (SifCallRpc(&clientSCmd, CD_SCMD_SET_HD_MODE, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 4, NULL, NULL) >= 0) {
638 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
642 SignalSema(sCmdSemaId);
647#ifdef F_sceCdOpenConfig
652 if (NumBlocks < 0x45) {
653 if (_CdCheckSCmd(CD_SCMD_OPEN_CONFIG) == 0)
656 sCmdSendBuff.u32arg = ((NumBlocks & 0xFF) << 16) | (mode & 0xFF) | ((block & 0xFF) << 8);
657 CdConfigRdWrNumBlocks = NumBlocks;
658 if (SifCallRpc(&clientSCmd, CD_SCMD_OPEN_CONFIG, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
659 *status = ((u32 *)UNCACHED_SEG(sCmdRecvBuff))[1];
660 result = ((
int *)UNCACHED_SEG(sCmdRecvBuff))[0];
664 SignalSema(sCmdSemaId);
672#ifdef F_sceCdCloseConfig
677 if (_CdCheckSCmd(CD_SCMD_CLOSE_CONFIG) == 0)
680 if (SifCallRpc(&clientSCmd, CD_SCMD_CLOSE_CONFIG, 0, NULL, 0, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
681 *result = ((u32 *)UNCACHED_SEG(sCmdRecvBuff))[1];
682 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
687 SignalSema(sCmdSemaId);
692#ifdef F_sceCdReadConfig
697 if (_CdCheckSCmd(CD_SCMD_READ_CONFIG) == 0)
700 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_CONFIG, 0, NULL, 0, sCmdRecvBuff, 0x408, NULL, NULL) >= 0) {
701 *result = ((
int *)UNCACHED_SEG(sCmdRecvBuff))[1];
702 memcpy(buffer, &((u32 *)UNCACHED_SEG(sCmdRecvBuff))[2], (CdConfigRdWrNumBlocks << 4) - CdConfigRdWrNumBlocks);
703 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
708 SignalSema(sCmdSemaId);
713#ifdef F_sceCdWriteConfig
718 if (_CdCheckSCmd(CD_SCMD_WRITE_CONFIG) == 0)
721 memcpy(sCmdSendBuff.data, buffer, (CdConfigRdWrNumBlocks << 4) - CdConfigRdWrNumBlocks);
722 if (SifCallRpc(&clientSCmd, CD_SCMD_WRITE_CONFIG, 0, &sCmdSendBuff, 0x400, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
723 *result = ((
int *)UNCACHED_SEG(sCmdRecvBuff))[1];
724 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
729 SignalSema(sCmdSemaId);
740 if (_CdCheckSCmd(CD_SCMD_READ_NVM) == 0)
743 sCmdSendBuff.nvm.address = address;
744 sCmdSendBuff.nvm.value = 0;
745 sCmdSendBuff.nvm.pad = 0;
747 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_NVM, 0, &sCmdSendBuff, 8, sCmdRecvBuff, 0x10, NULL, NULL) >= 0) {
748 *data = *(
unsigned short int *)UNCACHED_SEG(&sCmdRecvBuff[8]);
749 *result = *(u8 *)UNCACHED_SEG(&sCmdRecvBuff[10]);
750 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
755 SignalSema(sCmdSemaId);
760#ifdef F_sceCdWriteNVM
765 if (_CdCheckSCmd(CD_SCMD_WRITE_NVM) == 0)
768 sCmdSendBuff.nvm.address = address;
769 sCmdSendBuff.nvm.value = data;
770 sCmdSendBuff.nvm.pad = 0;
772 if (SifCallRpc(&clientSCmd, CD_SCMD_WRITE_NVM, 0, &sCmdSendBuff, 8, sCmdRecvBuff, 0x10, NULL, NULL) >= 0) {
773 *result = *(u8 *)UNCACHED_SEG(&sCmdRecvBuff[10]);
774 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
779 SignalSema(sCmdSemaId);
785int sceCdRI(
unsigned char *buffer, u32 *result)
789 if (_CdCheckSCmd(CD_SCMD_READ_ILINK_ID) == 0)
792 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_ILINK_ID, 0, NULL, 0, sCmdRecvBuff, 16, NULL, NULL) >= 0) {
793 memcpy(buffer, UNCACHED_SEG(&sCmdRecvBuff[8]), 8);
794 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
795 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
800 SignalSema(sCmdSemaId);
806int sceCdWI(
const unsigned char *buffer, u32 *status)
810 if (_CdCheckSCmd(CD_SCMD_WRITE_ILINK_ID) == 0)
813 memcpy(sCmdSendBuff.id, buffer, 8);
814 if (SifCallRpc(&clientSCmd, CD_SCMD_WRITE_ILINK_ID, 0, &sCmdSendBuff, 8, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
815 *status = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
816 result = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
821 SignalSema(sCmdSemaId);
826#ifdef F_sceCdReadConsoleID
831 if (_CdCheckSCmd(CD_SCMD_READ_CONSOLE_ID) == 0)
834 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_CONSOLE_ID, 0, NULL, 0, sCmdRecvBuff, 16, NULL, NULL) >= 0) {
835 memcpy(buffer, UNCACHED_SEG(&sCmdRecvBuff[8]), 8);
836 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
837 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
842 SignalSema(sCmdSemaId);
847#ifdef F_sceCdWriteConsoleID
852 if (_CdCheckSCmd(CD_SCMD_WRITE_CONSOLE_ID) == 0)
855 memcpy(sCmdSendBuff.id, buffer, 8);
856 if (SifCallRpc(&clientSCmd, CD_SCMD_WRITE_CONSOLE_ID, 0, &sCmdSendBuff, 8, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
857 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
858 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
863 SignalSema(sCmdSemaId);
869int sceCdMV(
unsigned char *buffer, u32 *result)
873 if (_CdCheckSCmd(CD_SCMD_READ_MECHACON_VERSION) == 0)
876 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_MECHACON_VERSION, 0, NULL, 0, sCmdRecvBuff, 16, NULL, NULL) >= 0) {
879 memcpy(buffer, UNCACHED_SEG(&sCmdRecvBuff[8]), 4);
881 memcpy(buffer, UNCACHED_SEG(&sCmdRecvBuff[8]), 3);
883 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
884 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
889 SignalSema(sCmdSemaId);
894#ifdef F_sceCdCtrlADout
899 if (_CdCheckSCmd(CD_SCMD_CTRL_AD_OUT) == 0)
902 sCmdSendBuff.s32arg = arg1;
903 if (SifCallRpc(&clientSCmd, CD_SCMD_CTRL_AD_OUT, 0, &sCmdSendBuff, 4, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
904 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
905 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
910 SignalSema(sCmdSemaId);
916int sceCdRM(
char *buffer, u32 *result)
920 if (_CdCheckSCmd(CD_SCMD_READ_MODEL_NAME) == 0)
923 if (SifCallRpc(&clientSCmd, CD_SCMD_READ_MODEL_NAME, 0, NULL, 0, sCmdRecvBuff, 0x18, NULL, NULL) >= 0) {
924 memcpy(buffer, UNCACHED_SEG(&sCmdRecvBuff[8]), 16);
925 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
926 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
931 SignalSema(sCmdSemaId);
937int sceCdWM(
const char *buffer, u32 *result)
941 if (_CdCheckSCmd(CD_SCMD_WRITE_MODEL_NAME) == 0)
944 memcpy(sCmdSendBuff.mname, buffer, 16);
945 if (SifCallRpc(&clientSCmd, CD_SCMD_WRITE_MODEL_NAME, 0, &sCmdSendBuff, 0x10, sCmdRecvBuff, 8, NULL, NULL) >= 0) {
946 *result = *(u32 *)UNCACHED_SEG(&sCmdRecvBuff[4]);
947 status = *(
int *)UNCACHED_SEG(sCmdRecvBuff);
952 SignalSema(sCmdSemaId);
957#ifdef F_sceCdNoticeGameStart
971 *result = (u8)out[0];
979int _CdSyncS(
int mode)
983 printf(
"S cmd wait\n");
984 while (SifCheckStatRpc(&clientSCmd))
989 return SifCheckStatRpc(&clientSCmd);
int sceCdCancelPOffRdy(u32 *result)
int sceCdPowerOff(u32 *result)
int sceCdReadSUBQ(void *buffer, u32 *status)
int sceCdSetHDMode(u32 mode)
int sceCdReadNVM(u32 address, u16 *data, u8 *result)
int sceCdCloseConfig(u32 *result)
int sceCdChangeThreadPriority(int priority)
int sceCdForbidRead(u32 *result)
int sceCdRM(char *buffer, u32 *status)
int sceCdReadConsoleID(u8 *buffer, u32 *result)
int sceCdReadClock(sceCdCLOCK *clock)
int sceCdWriteConfig(const void *buffer, u32 *result)
int sceCdWM(const char *buffer, u32 *status)
int sceCdWriteConsoleID(const u8 *buffer, u32 *status)
int sceCdGetDiskType(void)
int sceCdMmode(int media)
int sceCdWI(const u8 *buffer, u32 *result)
int sceCdAutoAdjustCtrl(int mode, u32 *result)
int sceCdApplySCmd(u8 cmdNum, const void *inBuff, u16 inBuffSize, void *outBuff)
int sceCdBootCertify(const u8 *romname)
int sceCdReadConfig(void *buffer, u32 *result)
int sceCdMV(u8 *buffer, u32 *status)
int sceCdWriteNVM(u32 address, u16 data, u8 *result)
int sceCdDecSet(unsigned char enable_xor, unsigned char enable_shift, unsigned char shiftval)
int sceCdRI(u8 *buffer, u32 *result)
int sceCdNoticeGameStart(u8 arg1, u32 *result)
int sceCdForbidDVDP(u32 *result)
int sceCdOpenConfig(int block, int mode, int NumBlocks, u32 *status)
int sceCdTrayReq(int param, u32 *traychk)
int sceCdWriteClock(sceCdCLOCK *clock)
int sceCdCtrlADout(int mode, u32 *status)
int sceCdSpinCtrlEE(u32 speed)