/usr/include/cdio/dvd.h is in libcdio-dev 1.0.0-2ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /*
Copyright (C) 2004, 2010 Rocky Bernstein <rocky@gnu.org>
Modeled after GNU/Linux definitions in linux/cdrom.h
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
\file dvd.h
\brief Definitions for DVD access.
The documents we make use of are described Multi-Media Commands
(MMC). This document generally has a numeric level number
appended. For example MMC-5 refers to ``Multi-Media Commands - 5'
which is the current version in 2010.
*/
#ifndef CDIO_DVD_H_
#define CDIO_DVD_H_
#include <cdio/types.h>
/**
Values used in a READ DVD STRUCTURE
*/
typedef enum cdio_dvd_structure
{
CDIO_DVD_STRUCT_PHYSICAL = 0x00,
CDIO_DVD_STRUCT_COPYRIGHT = 0x01,
CDIO_DVD_STRUCT_DISCKEY = 0x02,
CDIO_DVD_STRUCT_BCA = 0x03,
CDIO_DVD_STRUCT_MANUFACT = 0x04
} cdio_dvd_structure;
/**
Media definitions for "DVD Book" from MMC-5 Table 400, page 419.
*/
typedef enum cdio_dvd_book
{
CDIO_DVD_BOOK_DVD_ROM = 0x0, /**< DVD-ROM */
CDIO_DVD_BOOK_DVD_RAM = 0x1, /**< DVD-RAM */
CDIO_DVD_BOOK_DVD_R = 0x2, /**< DVD-R */
CDIO_DVD_BOOK_DVD_RW = 0x3, /**< DVD-RW */
CDIO_DVD_BOOK_HD_DVD_ROM = 0x4, /**< HD DVD-ROM */
CDIO_DVD_BOOK_HD_DVD_RAM = 0x5, /**< HD DVD-RAM */
CDIO_DVD_BOOK_HD_DVD_R = 0x6, /**< HD DVD-R */
CDIO_DVD_BOOK_DVD_PRW = 0x9, /**< DVD+RW */
CDIO_DVD_BOOK_DVD_PR = 0xa, /**< DVD+R */
CDIO_DVD_BOOK_DVD_PRW_DL = 0xd, /**< DVD+RW DL */
CDIO_DVD_BOOK_DVD_PR_DL = 0xe /**< DVD+R DL */
} cdio_dvd_book;
typedef struct cdio_dvd_layer {
unsigned int book_version : 4;
unsigned int book_type : 4;
unsigned int min_rate : 4;
unsigned int disc_size : 4;
unsigned int layer_type : 4;
unsigned int track_path : 1;
unsigned int nlayers : 2;
unsigned int track_density : 4;
unsigned int linear_density : 4;
unsigned int bca : 1;
uint32_t start_sector;
uint32_t end_sector;
uint32_t end_sector_l0;
} cdio_dvd_layer_t;
/**
Maximum number of layers in a DVD.
*/
#define CDIO_DVD_MAX_LAYERS 4
typedef struct cdio_dvd_physical {
uint8_t type;
uint8_t layer_num;
cdio_dvd_layer_t layer[CDIO_DVD_MAX_LAYERS];
} cdio_dvd_physical_t;
typedef struct cdio_dvd_copyright {
uint8_t type;
uint8_t layer_num;
uint8_t cpst;
uint8_t rmi;
} cdio_dvd_copyright_t;
typedef struct cdio_dvd_disckey {
uint8_t type;
unsigned agid : 2;
uint8_t value[2048];
} cdio_dvd_disckey_t;
typedef struct cdio_dvd_bca {
uint8_t type;
int len;
uint8_t value[188];
} cdio_dvd_bca_t;
typedef struct cdio_dvd_manufact {
uint8_t type;
uint8_t layer_num;
int len;
uint8_t value[2048];
} cdio_dvd_manufact_t;
typedef union {
uint8_t type;
cdio_dvd_physical_t physical;
cdio_dvd_copyright_t copyright;
cdio_dvd_disckey_t disckey;
cdio_dvd_bca_t bca;
cdio_dvd_manufact_t manufact;
} cdio_dvd_struct_t;
#endif /* CDIO_DVD_H_ */
|