iso9660.h

来自「刻录光盘的程序」· C头文件 代码 · 共 170 行

H
170
字号
/* @(#)iso9660.h	1.4 99/10/18 Copyright 1996 J. Schilling *//* *	Copyright (c) 1996 J. Schilling *//* * 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 2, 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; see the file COPYING.  If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */#define	_delta(from, to)	((to) - (from) + 1)#define	VD_BOOT		0#define	VD_PRIMARY	1#define	VD_SUPPLEMENT	2#define	VD_PARTITION	3#define	VD_TERM		255#define	VD_ID		"CD001"struct	iso9660_voldesc {	char	vd_type		[_delta(1, 1)];	char	vd_id		[_delta(2, 6)];	char	vd_version	[_delta(7, 7)];	char	vd_fill		[_delta(8, 2048)];};struct	iso9660_boot_voldesc {	char	vd_type		[_delta(1, 1)];	char	vd_id		[_delta(2, 6)];	char	vd_version	[_delta(7, 7)];	char	vd_bootsys	[_delta(8, 39)];	char	vd_bootid	[_delta(40, 71)];	char	vd_bootcode	[_delta(72, 2048)];};struct	iso9660_pr_voldesc {	char	vd_type			[_delta(   1,	1)];	char	vd_id			[_delta(   2,	6)];	char	vd_version		[_delta(   7,	7)];	char	vd_unused1		[_delta(   8,	8)];	char	vd_system_id		[_delta(   9,	40)];	char	vd_volume_id		[_delta(  41,	72)];	char	vd_unused2		[_delta(  73,	80)];	char	vd_volume_space_size	[_delta(  81,	88)];	char	vd_unused3		[_delta(  89,	120)];	char	vd_volume_set_size	[_delta( 121,	124)];	char	vd_volume_seq_number	[_delta( 125,	128)];	char	vd_lbsize		[_delta( 129,	132)];	char	vd_path_table_size	[_delta( 133,	140)];	char	vd_pos_path_table_l	[_delta( 141,	144)];	char	vd_opt_pos_path_table_l	[_delta( 145,	148)];	char	vd_pos_path_table_m	[_delta( 149,	152)];	char	vd_opt_pos_path_table_m	[_delta( 153,	156)];	char	vd_root_dir		[_delta( 157,	190)];	char	vd_volume_set_id	[_delta( 191,	318)];	char	vd_publisher_id		[_delta( 319,	446)];	char	vd_data_preparer_id	[_delta( 447,	574)];	char	vd_application_id	[_delta( 575,	702)];	char	vd_copyr_file_id	[_delta( 703,	739)];	char	vd_abstr_file_id	[_delta( 740,	776)];	char	vd_bibl_file_id		[_delta( 777,	813)];	char	vd_create_time		[_delta( 814,	830)];	char	vd_mod_time		[_delta( 831,	847)];	char	vd_expiry_time		[_delta( 848,	864)];	char	vd_effective_time	[_delta( 865,	881)];	char	vd_file_struct_vers	[_delta( 882,	882)];	char	vd_reserved1		[_delta( 883,	883)];	char	vd_application_use	[_delta( 884,	1395)];	char	vd_fill			[_delta(1396,	2048)];};struct	iso9660_dir {	char	dr_len			[_delta(   1,	1)];	char	dr_eattr_len		[_delta(   2,	2)];	char	dr_eattr_pos		[_delta(   3,	10)];	char	dr_data_len		[_delta(  11,	18)];	char	dr_recording_time	[_delta(  19,	25)];	char	dr_file_flags		[_delta(  26,	26)];	char	dr_file_unit_size	[_delta(  27,	27)];	char	dr_interleave_gap	[_delta(  28,	28)];	char	dr_volume_seq_number	[_delta(  29,	32)];	char	dr_file_name_len	[_delta(  33,	33)];	char	dr_file_name		[_delta(  34,	34)];};struct	iso9660_dtime {	unsigned char	dt_year;	unsigned char	dt_month;	unsigned char	dt_day;	unsigned char	dt_hour;	unsigned char	dt_minute;	unsigned char	dt_second;		 char	dt_gmtoff;};struct	iso9660_ltime {	char	lt_year			[_delta(   1,	4)];	char	lt_month		[_delta(   5,	6)];	char	lt_day			[_delta(   7,	8)];	char	lt_hour			[_delta(   9,	10)];	char	lt_minute		[_delta(  11,	12)];	char	lt_second		[_delta(  13,	14)];	char	lt_hsecond		[_delta(  15,	16)];	char	lt_gmtoff		[_delta(  17,	17)];};struct iso9660_path_table {	char	pt_di_len		[_delta(   1,	1)];	char	pt_eattr_len		[_delta(   2,	2)];	char	pt_eattr_pos		[_delta(   3,	6)];	char	pt_di_parent		[_delta(   7,	8)];	char	pt_name			[_delta(   9,	9)];};struct iso9660_eattr {	char	ea_owner		[_delta(   1,	4)];	char	ea_group		[_delta(   5,	8)];	char	ea_perm			[_delta(   9,	10)];	char	ea_ctime		[_delta(  11,	27)];	char	ea_mtime		[_delta(  28,	44)];	char	ea_extime		[_delta(  45,	61)];	char	ea_eftime		[_delta(  62,	78)];	char	ea_record_format	[_delta(  79,	79)];	char	ea_record_attr		[_delta(  80,	80)];	char	ea_record_len		[_delta(  81,	84)];	char	ea_system_id		[_delta(  85,	116)];	char	ea_system_use		[_delta( 117,	180)];	char	ea_version		[_delta( 181,	181)];	char	ea_esc_seq_len		[_delta( 182,	182)];	char	ea_reserved1		[_delta( 183,	246)];	char	ea_appl_use_len		[_delta( 247,	250)];	char	ea_appl_use		[_delta( 251,	251)];	/* actually more *//*	char	ea_esc_seq		[_delta( xxx,	xxx)];	*/};#define	PERM_MB_ONE	0xAAAA#define	PERM_RSYS	0x0001#define	PERM_XSYS	0x0004#define	PERM_RUSR	0x0010#define	PERM_XUSR	0x0040#define	PERM_RGRP	0x0100#define	PERM_XGRP	0x0400#define	PERM_ROTH	0x1000#define	PERM_XOTH	0x4000#define	GET_UBYTE(a)	a_to_u_byte(a)#define	GET_SBYTE(a)	a_to_byte(a)#define	GET_SHORT(a)	a_to_u_2_byte(&((unsigned char *) (a))[0])#define	GET_BSHORT(a)	a_to_u_2_byte(&((unsigned char *) (a))[2])#define	GET_INT(a)	a_to_4_byte(&((unsigned char *) (a))[0])#define	GET_LINT(a)	la_to_4_byte(&((unsigned char *) (a))[0])#define	GET_BINT(a)	a_to_4_byte(&((unsigned char *) (a))[4])

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?