libcdio  2.1.0
mmc_ll_cmds.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2018 Thomas Schmitt
3  Copyright (C) 2010, 2012, 2016, 2019 Rocky Bernstein <rocky@gnu.org>
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
36 #ifndef CDIO_MMC_LL_CMDS_H_
37 #define CDIO_MMC_LL_CMDS_H_
38 
39 #include <cdio/mmc.h>
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif /* __cplusplus */
44 
71  mmc_get_configuration(const CdIo_t *p_cdio, void *p_buf,
72  unsigned int i_size,
73  unsigned int i_return_type,
74  unsigned int i_starting_feature_number,
75  unsigned int i_timeout_ms);
76 
88  uint8_t out_buf[2]);
89 
90 
109  driver_return_code_t mmc_mode_select_10(CdIo_t *p_cdio, /*out*/ void *p_buf,
110  unsigned int i_size, int page,
111  unsigned int i_timeout_ms);
125  driver_return_code_t mmc_mode_sense_10( CdIo_t *p_cdio, /*out*/ void *p_buf,
126  unsigned int i_size,
127  unsigned int i_page_code);
128 
138  driver_return_code_t mmc_mode_sense_6( CdIo_t *p_cdio, /*out*/ void *p_buf,
139  unsigned int i_size, int page);
140 
158  bool b_persistent, bool b_prevent,
159  unsigned int i_timeout_ms);
160 
265  mmc_read_cd(const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn,
266  int expected_sector_type, bool b_digital_audio_play,
267  bool b_sync, uint8_t header_codes, bool b_user_data,
268  bool b_edc_ecc, uint8_t c2_error_information,
269  uint8_t subchannel_selection, uint16_t i_blocksize,
270  uint32_t i_blocks);
271 
291  mmc_read_disc_information(const CdIo_t *p_cdio, /*out*/ void *p_buf,
292  unsigned int i_size,
294  unsigned int i_timeout_ms);
295 
323  int i_Kbs_speed,
324  unsigned int i_timeout_ms);
325 
346  driver_return_code_t mmc_start_stop_unit(const CdIo_t *p_cdio, bool b_eject,
347  bool b_immediate,
348  uint8_t power_condition,
349  unsigned int i_timeout_ms);
350 
363  unsigned int i_timeout_ms);
364 
382 mmc_read_subchannel ( const CdIo_t *p_cdio,
383  track_t i_track,
384  unsigned char sub_chan_param,
385  unsigned int *i_length,
386  char *p_buf,
387  unsigned int i_timeout_ms
388  );
389 
390 
437 mmc_read_toc_cdtext ( const CdIo_t *p_cdio, unsigned int *i_length,
438  unsigned char *p_buf, unsigned int i_timeout_ms );
439 
440 
441 #ifndef DO_NOT_WANT_OLD_MMC_COMPATIBILITY
442 #define mmc_start_stop_media(c, e, i, p, t) \
443  mmc_start_stop_unit(c, e, i, p, t, 0)
444 #endif /*DO_NOT_WANT_PARANOIA_COMPATIBILITY*/
445 
446 #ifdef __cplusplus
447 }
448 #endif /* __cplusplus */
449 
450 #endif /* CDIO_MMC_HL_CMDS_H_ */
451 
452 /*
453  * Local variables:
454  * c-file-style: "gnu"
455  * tab-width: 8
456  * indent-tabs-mode: nil
457  * End:
458  */
driver_return_code_t
Definition: device.h:205
driver_return_code_t mmc_get_event_status(const CdIo_t *p_cdio, uint8_t out_buf[2])
driver_return_code_t mmc_start_stop_unit(const CdIo_t *p_cdio, bool b_eject, bool b_immediate, uint8_t power_condition, unsigned int i_timeout_ms)
int32_t lsn_t
Definition: types.h:266
driver_return_code_t mmc_read_cd(const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, int expected_sector_type, bool b_digital_audio_play, bool b_sync, uint8_t header_codes, bool b_user_data, bool b_edc_ecc, uint8_t c2_error_information, uint8_t subchannel_selection, uint16_t i_blocksize, uint32_t i_blocks)
driver_return_code_t mmc_read_subchannel(const CdIo_t *p_cdio, track_t i_track, unsigned char sub_chan_param, unsigned int *i_length, char *p_buf, unsigned int i_timeout_ms)
uint8_t track_t
Definition: types.h:276
driver_return_code_t mmc_mode_select_10(CdIo_t *p_cdio, void *p_buf, unsigned int i_size, int page, unsigned int i_timeout_ms)
driver_return_code_t mmc_prevent_allow_medium_removal(const CdIo_t *p_cdio, bool b_persistent, bool b_prevent, unsigned int i_timeout_ms)
cdio_mmc_read_disc_info_datatype_t
Definition: mmc.h:330
driver_return_code_t mmc_mode_sense_10(CdIo_t *p_cdio, void *p_buf, unsigned int i_size, unsigned int i_page_code)
driver_return_code_t mmc_set_speed(const CdIo_t *p_cdio, int i_Kbs_speed, unsigned int i_timeout_ms)
driver_return_code_t mmc_mode_sense_6(CdIo_t *p_cdio, void *p_buf, unsigned int i_size, int page)
driver_return_code_t mmc_test_unit_ready(const CdIo_t *p_cdio, unsigned int i_timeout_ms)
struct _CdIo CdIo_t
Definition: cdio.h:47
driver_return_code_t mmc_read_disc_information(const CdIo_t *p_cdio, void *p_buf, unsigned int i_size, cdio_mmc_read_disc_info_datatype_t data_type, unsigned int i_timeout_ms)
Common definitions for MMC (Multimedia Commands). Applications include this for direct MMC access...
driver_return_code_t mmc_get_configuration(const CdIo_t *p_cdio, void *p_buf, unsigned int i_size, unsigned int i_return_type, unsigned int i_starting_feature_number, unsigned int i_timeout_ms)
driver_return_code_t mmc_read_toc_cdtext(const CdIo_t *p_cdio, unsigned int *i_length, unsigned char *p_buf, unsigned int i_timeout_ms)