sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
cdvdman.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 __CDVDMAN_H__
18#define __CDVDMAN_H__
19
20#include <types.h>
21#include <irx.h>
22
23#include <libcdvd-common.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#ifdef BUILDING_CDVD_MODULE
30#define PRINTF(...) \
31 { \
32 printf(__VA_ARGS__); \
33 }
34#define KPRINTF(...) \
35 { \
36 Kprintf(__VA_ARGS__); \
37 }
38#define VERBOSE_PRINTF(level, ...) \
39 { \
40 if ( g_verbose_level >= (level) ) \
41 { \
42 printf(__VA_ARGS__);\
43 } \
44 }
45#define VERBOSE_KPRINTF(level, ...) \
46 { \
47 if ( g_verbose_level >= (level) ) \
48 { \
49 Kprintf(__VA_ARGS__);\
50 } \
51 }
52#endif
53
55{
56 u16 m_dma3_blkwords;
57 u16 m_dma3_blkcount;
58 void *m_dma3_maddress;
59 int (*m_dma3_callback)(void);
60 u16 m_dma3_csectors;
61 u16 m_cdvdreg_howto;
62 u32 m_dma3_msectors;
63} cdvdman_dma3_parameter_t;
64
66{
67 char m_cdvdman_command;
68 unsigned char m_last_error;
69 char m_unused_002;
70 char m_ncmd_intr_count;
71 int m_wait_flag;
72 int m_thread_id;
73 int m_stream_flag;
74 int m_read2_flag;
75 int m_cdvdman_lsn;
76 int m_cdvdman_rbuffer;
77 int m_cdvdman_nsec;
78 int m_cdvdman_csec;
79 int m_cdvdman_rsec;
80 int m_cdvdman_pattern;
81 sceCdRMode m_cdvdman_cdrmode;
82 int m_recover_status;
83 int m_dvd_flag;
84 int m_read_lsn;
85 void *m_read_buf;
86 int m_read_sectors;
87 sceCdRMode m_read_mode;
88 int m_read_chunk_reprocial_32;
89 int m_dintrlsn;
90 void *m_read_callback;
91 int m_read_chunk;
92 char m_scmd_flag;
93 char m_scmd;
94 char m_sdlen;
95 char m_rdlen;
96 char m_scmd_sd[16];
97 char m_scmd_rd[16];
98 int m_sync_error;
99 int m_last_read_timeout;
100 int m_power_flag;
101 u32 m_layer_1_lsn;
102 char m_use_toc;
103 char m_opo_or_para;
104 char m_current_dvd;
105 char m_dual_layer_emulation;
106 u32 m_current_dvd_lsn;
107 int m_check_version;
108 int m_dec_shift;
109 int m_dec_state;
110 int m_no_dec_flag;
111 cdvdman_dma3_parameter_t m_dma3_param;
112 int m_cdvdman_dma3sec;
113 int m_drive_interupt_request;
114 u16 m_dec_mode_set;
115 u16 m_dec_mode_last_set;
116 int m_waf_set_test;
117 // OSD add
118 int m_cd_mode_ps2_atapi;
119 void (*m_cd_atapi_intr_callback)(int writer_drive);
120 int (*m_chgsys_callback)(void *userdata, int writer_drive);
121 int m_chgsys_callback_next_disktype;
122 int m_unusedosd1;
123 int m_field_0DC;
124 int m_var_sc_ffffffdb;
125 // OSD add end
126 int m_interupt_read_state;
127 // OSD add
128 int m_atapi_disk_ejected;
129 // OSD add end
130 int m_cd_inited;
131 // OSD add
132 int m_medium_removal_state;
133 int m_chgsys_callback_next_disktype_last;
134 int m_chgsys_writer_drive_shell_is_open;
135 int m_unusedosd2[6];
136 // OSD add end
137 int m_tray_is_open;
138 int m_break_cdvdfsv_readchain;
139 int m_unused[10];
140} cdvdman_internal_struct_t;
141
142//IOP-only libcdvd function prototypes.
143extern int sceCdCheckCmd(void);
144extern int sceCdNop(void);
145extern void *sceGetFsvRbuf(void);
146extern int sceCdstm0Cb(void (*p)(int val));
147extern int sceCdstm1Cb(void (*p)(int val));
148extern int sceCdSC(int code, int *param);
149/* Within all CDVDMAN modules, sceCdReadClock and sceCdRC both exist. In the old one, both have exactly the same code.
150 In the newer ones, sceCdReadClock would automatically file off the most significant bit within the month field,
151 while sceCdRC continued having its original behaviour of not changing the data. */
152extern int sceCdRC(sceCdCLOCK *clock);
153extern int sceCdRead0(u32 lsn, u32 sectors, void *buffer, sceCdRMode *mode, int csec, void *callback);
154
160extern int sceCdRV(u32 lsn, u32 sectors, void *buf, sceCdRMode *mode, int arg5, void *cb);
161
170extern int sceCdApplySCmd2(u8 cmdNum, const void* inBuff, unsigned long int inBuffSize, void *outBuff);
171
182extern int sceCdApplySCmd3(u8 cmdNum, const void* inBuff, unsigned long int inBuffSize, void *outBuff);
183
190extern int sceCdSpinCtrlIOP(u32 speed);
191
200extern void *sceCdSetAtapiEjectCallback(int (*cb)(int reason, void *userdata), void *userdata);
201
202//DNAS functions
203
210extern int sceCdReadDiskID(unsigned int *id);
211
222extern int sceCdDeobfuscateUsingUniqueKey(u8 *buffer, unsigned int shiftval, int xorval, u32 *status);
223
224#define cdvdman_IMPORTS_start DECLARE_IMPORT_TABLE(cdvdman, 1, 1)
225#define cdvdman_IMPORTS_end END_IMPORT_TABLE
226
227#define I_sceCdInit DECLARE_IMPORT(4, sceCdInit)
228#define I_sceCdStandby DECLARE_IMPORT(5, sceCdStandby)
229#define I_sceCdRead DECLARE_IMPORT(6, sceCdRead)
230#define I_sceCdSeek DECLARE_IMPORT(7, sceCdSeek)
231#define I_sceCdGetError DECLARE_IMPORT(8, sceCdGetError)
232#define I_sceCdGetToc DECLARE_IMPORT(9, sceCdGetToc)
233#define I_sceCdSearchFile DECLARE_IMPORT(10, sceCdSearchFile)
234#define I_sceCdSync DECLARE_IMPORT(11, sceCdSync)
235#define I_sceCdGetDiskType DECLARE_IMPORT(12, sceCdGetDiskType)
236#define I_sceCdDiskReady DECLARE_IMPORT(13, sceCdDiskReady)
237#define I_sceCdTrayReq DECLARE_IMPORT(14, sceCdTrayReq)
238#define I_sceCdStop DECLARE_IMPORT(15, sceCdStop)
239#define I_sceCdPosToInt DECLARE_IMPORT(16, sceCdPosToInt)
240#define I_sceCdIntToPos DECLARE_IMPORT(17, sceCdIntToPos)
241#define I_sceCdGetToc2 DECLARE_IMPORT(19, sceCdGetToc2)
242#define I_sceCdReadDVDV DECLARE_IMPORT(20, sceCdReadDVDV)
243#define I_sceCdCheckCmd DECLARE_IMPORT(21, sceCdCheckCmd)
244#define I_sceCdRI DECLARE_IMPORT(22, sceCdRI)
245#define I_sceCdWI DECLARE_IMPORT(23, sceCdWI)
246#define I_sceCdReadClock DECLARE_IMPORT(24, sceCdReadClock)
247#define I_sceCdWriteClock DECLARE_IMPORT(25, sceCdWriteClock)
248#define I_sceCdReadNVM DECLARE_IMPORT(26, sceCdReadNVM)
249#define I_sceCdWriteNVM DECLARE_IMPORT(27, sceCdWriteNVM)
250#define I_sceCdStatus DECLARE_IMPORT(28, sceCdStatus)
251#define I_sceCdApplySCmd DECLARE_IMPORT(29, sceCdApplySCmd)
252#define I_sceCdSetHDMode DECLARE_IMPORT(30, sceCdSetHDMode)
253#define I_sceCdOpenConfig DECLARE_IMPORT(31, sceCdOpenConfig)
254#define I_sceCdCloseConfig DECLARE_IMPORT(32, sceCdCloseConfig)
255#define I_sceCdReadConfig DECLARE_IMPORT(33, sceCdReadConfig)
256#define I_sceCdWriteConfig DECLARE_IMPORT(34, sceCdWriteConfig)
257#define I_sceCdReadKey DECLARE_IMPORT(35, sceCdReadKey)
258#define I_sceCdDecSet DECLARE_IMPORT(36, sceCdDecSet)
259#define I_sceCdCallback DECLARE_IMPORT(37, sceCdCallback)
260#define I_sceCdPause DECLARE_IMPORT(38, sceCdPause)
261#define I_sceCdBreak DECLARE_IMPORT(39, sceCdBreak)
262#define I_sceCdReadCDDA DECLARE_IMPORT(40, sceCdReadCDDA)
263#define I_sceCdReadConsoleID DECLARE_IMPORT(41, sceCdReadConsoleID)
264#define I_sceCdWriteConsoleID DECLARE_IMPORT(42, sceCdWriteConsoleID)
265#define I_sceCdMV DECLARE_IMPORT(43, sceCdMV)
266#define I_sceCdGetReadPos DECLARE_IMPORT(44, sceCdGetReadPos)
267#define I_sceCdCtrlADout DECLARE_IMPORT(45, sceCdCtrlADout)
268#define I_sceCdNop DECLARE_IMPORT(46, sceCdNop)
269#define I_sceGetFsvRbuf DECLARE_IMPORT(47, sceGetFsvRbuf)
270#define I_sceCdstm0Cb DECLARE_IMPORT(48, sceCdstm0Cb)
271#define I_sceCdstm1Cb DECLARE_IMPORT(49, sceCdstm1Cb)
272#define I_sceCdSC DECLARE_IMPORT(50, sceCdSC)
273#define I_sceCdRC DECLARE_IMPORT(51, sceCdRC)
274#define I_sceCdForbidDVDP DECLARE_IMPORT(52, sceCdForbidDVDP)
275#define I_sceCdReadSUBQ DECLARE_IMPORT(53, sceCdReadSUBQ)
276#define I_sceCdApplyNCmd DECLARE_IMPORT(54, sceCdApplyNCmd)
277#define I_sceCdAutoAdjustCtrl DECLARE_IMPORT(55, sceCdAutoAdjustCtrl)
278#define I_sceCdStInit DECLARE_IMPORT(56, sceCdStInit)
279#define I_sceCdStRead DECLARE_IMPORT(57, sceCdStRead)
280#define I_sceCdStSeek DECLARE_IMPORT(58, sceCdStSeek)
281#define I_sceCdStStart DECLARE_IMPORT(59, sceCdStStart)
282#define I_sceCdStStat DECLARE_IMPORT(60, sceCdStStat)
283#define I_sceCdStStop DECLARE_IMPORT(61, sceCdStStop)
284#define I_sceCdRead0 DECLARE_IMPORT(62, sceCdRead0)
285#define I_sceCdRV DECLARE_IMPORT(63, sceCdRV)
286#define I_sceCdRM DECLARE_IMPORT(64, sceCdRM)
287#define I_sceCdWM DECLARE_IMPORT(65, sceCdWM)
288#define I_sceCdReadChain DECLARE_IMPORT(66, sceCdReadChain)
289#define I_sceCdStPause DECLARE_IMPORT(67, sceCdStPause)
290#define I_sceCdStResume DECLARE_IMPORT(68, sceCdStResume)
291#define I_sceCdForbidRead DECLARE_IMPORT(69, sceCdForbidRead)
292#define I_sceCdBootCertify DECLARE_IMPORT(70, sceCdBootCertify)
293#define I_sceCdSpinCtrlIOP DECLARE_IMPORT(71, sceCdSpinCtrlIOP)
294#define I_sceCdBlueLEDCtl DECLARE_IMPORT(72, sceCdBlueLEDCtl)
295#define I_sceCdCancelPOffRdy DECLARE_IMPORT(73, sceCdCancelPOffRdy)
296#define I_sceCdPowerOff DECLARE_IMPORT(74, sceCdPowerOff)
297#define I_sceCdMmode DECLARE_IMPORT(75, sceCdMmode)
298
299#define I_sceCdReadFull DECLARE_IMPORT(76, sceCdReadFull)
300#define I_sceCdStSeekF DECLARE_IMPORT(77, sceCdStSeekF)
301#define I_sceCdPOffCallback DECLARE_IMPORT(78, sceCdPOffCallback)
302#define I_sceCdReadDiskID DECLARE_IMPORT(79, sceCdReadDiskID)
303#define I_sceCdReadGUID DECLARE_IMPORT(80, sceCdReadGUID)
304#define I_sceCdSetTimeout DECLARE_IMPORT(81, sceCdSetTimeout)
305#define I_sceCdReadModelID DECLARE_IMPORT(82, sceCdReadModelID)
306#define I_sceCdReadDvdDualInfo DECLARE_IMPORT(83, sceCdReadDvdDualInfo)
307#define I_sceCdLayerSearchFile DECLARE_IMPORT(84, sceCdLayerSearchFile)
308#define I_sceCdStatus2 DECLARE_IMPORT(90, sceCdStatus2)
309#define I_sceCdReadWakeUpTime DECLARE_IMPORT(109, sceCdReadWakeUpTime)
310#define I_sceCdWriteWakeUpTime DECLARE_IMPORT(110, sceCdWriteWakeUpTime)
311#define I_sceCdApplySCmd2 DECLARE_IMPORT(112, sceCdApplySCmd2)
312#define I_sceCdRE DECLARE_IMPORT(114, sceCdRE)
313#define I_sceCdRcBypassCtl DECLARE_IMPORT(115, sceCdRcBypassCtl)
314#define I_sceCdSendSCmd1D DECLARE_IMPORT(116, sceCdSendSCmd1D)
315#define I_sceRemote2_7 DECLARE_IMPORT(117, sceRemote2_7)
316#define I_sceCdSetLEDsMode DECLARE_IMPORT(120, sceCdSetLEDsMode)
317#define I_sceCdApplySCmd3 DECLARE_IMPORT(125, sceCdApplySCmd3)
318#define I_sceRemote2_7Get DECLARE_IMPORT(128, sceRemote2_7Get)
319#define I_sceCdReadPS1BootParam DECLARE_IMPORT(148, sceCdReadPS1BootParam)
320#define I_sceCdSetFanProfile DECLARE_IMPORT(150, sceCdSetFanProfile)
321#define I_cdvdman_152_get_temperature DECLARE_IMPORT(152, cdvdman_152_get_temperature)
322#define I_sceCdChgSys DECLARE_IMPORT(154, sceCdChgSys)
323#define I_sceCdNoticeGameStart DECLARE_IMPORT(156, sceCdNoticeGameStart)
324#define I_sceCdDeobfuscateUsingUniqueKey DECLARE_IMPORT(161, sceCdDeobfuscateUsingUniqueKey)
325#define I_sceCdXLEDCtl DECLARE_IMPORT(163, sceCdXLEDCtl)
326#define I_sceCdBuzzerCtl DECLARE_IMPORT(165, sceCdBuzzerCtl)
327#define I_cdvdman_167_atapi2dragon DECLARE_IMPORT(167, cdvdman_167_atapi2dragon)
328#define I_cdvdman_169_dragon2atapi DECLARE_IMPORT(169, cdvdman_169_dragon2atapi)
329#define I_sceCdXBSPowerCtl DECLARE_IMPORT(171, sceCdXBSPowerCtl)
330#define I_sceCdSetAtapiEjectCallback DECLARE_IMPORT(173, sceCdSetAtapiEjectCallback)
331#define I_sceCdSetMediumRemoval DECLARE_IMPORT(175, sceCdSetMediumRemoval)
332#define I_sceCdGetMediumRemoval DECLARE_IMPORT(177, sceCdGetMediumRemoval)
333#define I_sceCdDoesUniqueKeyExist DECLARE_IMPORT(179, sceCdDoesUniqueKeyExist)
334#define I_sceCdXDVRPReset DECLARE_IMPORT(181, sceCdXDVRPReset)
335#define I_sceCdGetWakeUpReason DECLARE_IMPORT(183, sceCdGetWakeUpReason)
336#define I_sceCdReadRegionParams DECLARE_IMPORT(189, sceCdReadRegionParams)
337#define I_sceCdWriteRegionParams DECLARE_IMPORT(191, sceCdWriteRegionParams)
338
339#ifdef __cplusplus
340}
341#endif
342
343#endif /* __CDVDMAN_H__ */
int sceCdRV(u32 lsn, u32 sectors, void *buf, sceCdRMode *mode, int arg5, void *cb)
Definition cdvdman.c:7127
int sceCdApplySCmd2(u8 cmdNum, const void *inBuff, unsigned long int inBuffSize, void *outBuff)
Definition cdvdman.c:5441
int sceCdApplySCmd3(u8 cmdNum, const void *inBuff, unsigned long int inBuffSize, void *outBuff)
int sceCdSpinCtrlIOP(u32 speed)
Definition cdvdman.c:2183
int sceCdReadDiskID(unsigned int *id)
int sceCdDeobfuscateUsingUniqueKey(u8 *buffer, unsigned int shiftval, int xorval, u32 *status)
void * sceCdSetAtapiEjectCallback(int(*cb)(int reason, void *userdata), void *userdata)