亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mac_label.c

?? 創建一個符合iso-9660標準的iso文件系統
?? C
字號:
/* @(#)mac_label.c	1.2 00/07/20 joerg, Copyright 1997, 1998, 1999, 2000 James Pearson */#ifndef lintstatic	char sccsid[] =	"@(#)mac_label.c	1.2 00/07/20 joerg, Copyright 1997, 1998, 1999, 2000 James Pearson";#endif/* *      Copyright (c) 1997, 1998, 1999, 2000 James Pearson * * 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. *//* *	mac_label.c: generate Mactintosh partition maps and label * *	Taken from "mkisofs 1.05 PLUS" by Andy Polyakov <appro@fy.chalmers.se> *	(see http://fy.chalmers.se/~appro/mkisofs_plus.html for details) * *	The format of the HFS driver file: * *	HFS CD Label Block				512 bytes *	Driver Partition Map (for 2048 byte blocks)	512 bytes *	Driver Partition Map (for 512 byte blocks)	512 bytes *	Empty						512 bytes *	Driver Partition				N x 2048 bytes *	HFS Partition Boot Block			1024 bytes * *	File of the above format can be extracted from a CD using *	apple_driver.c * *	James Pearson 16/5/98 *//* PREP_BOOT Troy Benjegerdes 2/4/99 */#include <mconfig.h>#include "mkisofs.h"#include <statdefs.h>#include <mac_label.h>#include "apple.h"#ifdef PREP_BOOTvoid	gen_prepboot_label	__PR((unsigned char *ml));#endif	/* PREP_BOOT */int	gen_mac_label		__PR((defer * mac_boot));int	autostart		__PR((void));#ifdef PREP_BOOTvoidgen_prepboot_label(ml)	unsigned char	*ml;{	struct directory_entry *de;	int		i,			block,			size;	MacLabel	*mac_label = (MacLabel *) ml;	if (verbose > 1) {		fprintf(stderr, "Creating %d PReP boot partition(s)\n",								use_prep_boot);	}	mac_label->fdiskMagic[0] = fdiskMagic0;	mac_label->fdiskMagic[1] = fdiskMagic1;	for (i = 0; i < use_prep_boot; i++) {		de = search_tree_file(root, prep_boot_image[i]);		if (!de) {			fprintf(stderr,				"Uh oh, I cant find the boot image \"%s\"!\n",				prep_boot_image[i]);			exit(1);		}		/* get size and block in 512-byte blocks */		block = get_733(de->isorec.extent) * 2048 / 512;		size = get_733(de->isorec.size) / 512 + 1;		fprintf(stderr, "PReP boot partition %d is \"%s\"\n",			i + 1, prep_boot_image[i]);		/* deal with  endianess */		mac_label->image[i].type = prepPartType;	/* 0x41 */		mac_label->image[i].startSect[0] = block & 0xff;		mac_label->image[i].startSect[1] = (block >> 8) & 0xff;		mac_label->image[i].startSect[2] = (block >> 16) & 0xff;		mac_label->image[i].startSect[3] = (block >> 24) & 0xff;		mac_label->image[i].size[0] = size & 0xff;		mac_label->image[i].size[1] = (size >> 8) & 0xff;		mac_label->image[i].size[2] = (size >> 16) & 0xff;		mac_label->image[i].size[3] = (size >> 24) & 0xff;	}}#endif	/* PREP_BOOT */intgen_mac_label(mac_boot)	defer		*mac_boot;{	FILE		*fp;	MacLabel	*mac_label;	MacPart		*mac_part;	char		*buffer = (char *) hce->hfs_map;	int		block_size;	int		have_hfs_boot = 0;	char		tmp[SECTOR_SIZE];	struct stat	stat_buf;	mac_partition_table mpm[2];	int		mpc = 0;	int		i;	/* If we have a boot file, then open and check it */	if (mac_boot->name) {		if (stat(mac_boot->name, &stat_buf) < 0) {			sprintf(hce->error, "unable to stat HFS boot file %s",								mac_boot->name);			return (-1);		}		if ((fp = fopen(mac_boot->name, "rb")) == NULL) {			sprintf(hce->error, "unable to open HFS boot file %s",								mac_boot->name);			return (-1);		}		if (fread(tmp, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) {			sprintf(hce->error, "unable to read HFS boot file %s",								mac_boot->name);			return (-1);		}		/* check we have a bootable partition */		mac_part = (MacPart *) (tmp + HFS_BLOCKSZ);		if (!(IS_MAC_PART(mac_part) &&		   !strncmp((char *) mac_part->pmPartType, pmPartType_2, 12))) {			sprintf(hce->error, "%s is not a HFS boot file",								mac_boot->name);			return (-1);		}		/* check we have a boot block as well - last 2 blocks of file */		if (fseek(fp, -2 * HFS_BLOCKSZ, 2) != 0) {			sprintf(hce->error, "unable to seek HFS boot file %s",								mac_boot->name);			return (-1);		}		/* overwrite (empty) boot block for our HFS volume */		if (fread(hce->hfs_hdr, 2, HFS_BLOCKSZ, fp) != HFS_BLOCKSZ) {			sprintf(hce->error, "unable to read HFS boot block %s",								mac_boot->name);			return (-1);		}		fclose(fp);		/* check boot block is valid */		if (d_getw((unsigned char *) hce->hfs_hdr) != HFS_BB_SIGWORD) {			sprintf(hce->error,				"%s does not contain a valid boot block",								mac_boot->name);			return (-1);		}		/*		 * collect info about boot file for later user		 * - skip over the bootfile header		 */		mac_boot->size = stat_buf.st_size - SECTOR_SIZE - 2*HFS_BLOCKSZ;		mac_boot->off = SECTOR_SIZE;		mac_boot->pad = 0;		/*		 * get size in SECTOR_SIZE blocks		 * - shouldn't need to round up		 */		mpm[mpc].size = ISO_ROUND_UP(mac_boot->size) / SECTOR_SIZE;		mpm[mpc].ntype = PM2;		mpm[mpc].type = (char *) mac_part->pmPartType;		mpm[mpc].start = mac_boot->extent = last_extent;		mpm[mpc].name = 0;		/* flag that we have a boot file */		have_hfs_boot++;		/* add boot file size to the total size */		last_extent += mpm[mpc].size;		hfs_extra += mpm[mpc].size;		mpc++;	}	/* set info about our hybrid volume */	mpm[mpc].ntype = PM4;	mpm[mpc].type = pmPartType_4;	mpm[mpc].start = session_start + hce->hfs_map_size / HFS_BLK_CONV;	mpm[mpc].size = last_extent - mpm[mpc].start -			(ISO_ROUND_UP(mac_boot->size) / SECTOR_SIZE);	mpm[mpc].name = volume_id;	mpc++;	if (verbose > 1)		fprintf(stderr, "Creating HFS Label %s %s\n", mac_boot->name ?			"with boot file" : "",			mac_boot->name ? mac_boot->name : "");	/* for a bootable CD, block size is SECTOR_SIZE */	block_size = have_hfs_boot ? SECTOR_SIZE : HFS_BLOCKSZ;	/* create the CD label */	mac_label = (MacLabel *) buffer;	mac_label->sbSig[0] = 'E';	mac_label->sbSig[1] = 'R';	set_722((char *) mac_label->sbBlkSize, block_size);	set_732((char *) mac_label->sbBlkCount,				last_extent * (SECTOR_SIZE / block_size));	set_722((char *) mac_label->sbDevType, 1);	set_722((char *) mac_label->sbDevId, 1);	/* create the partition map entry */	mac_part = (MacPart *) (buffer + block_size);	mac_part->pmSig[0] = 'P';	mac_part->pmSig[1] = 'M';	set_732((char *) mac_part->pmMapBlkCnt, mpc + 1);	set_732((char *) mac_part->pmPyPartStart, 1);	set_732((char *) mac_part->pmPartBlkCnt, mpc + 1);	strncpy((char *) mac_part->pmPartName, "Apple",						sizeof(mac_part->pmPartName));	strncpy((char *) mac_part->pmPartType, "Apple_partition_map",						sizeof(mac_part->pmPartType));	set_732((char *) mac_part->pmLgDataStart, 0);	set_732((char *) mac_part->pmDataCnt, mpc + 1);	set_732((char *) mac_part->pmPartStatus, PM_STAT_DEFAULT);	/* create partition map entries for our partitions */	for (i = 0; i < mpc; i++) {		mac_part = (MacPart *) (buffer + (i + 2) * block_size);		if (mpm[i].ntype == PM2) {			/* get driver label and patch it */			memcpy((char *) mac_label, tmp, HFS_BLOCKSZ);			set_732((char *) mac_label->sbBlkCount,				last_extent * (SECTOR_SIZE / block_size));			set_732((char *) mac_label->ddBlock,				(mpm[i].start) * (SECTOR_SIZE / block_size));			memcpy((char *) mac_part, tmp + HFS_BLOCKSZ,								HFS_BLOCKSZ);			set_732((char *) mac_part->pmMapBlkCnt, mpc + 1);			set_732((char *) mac_part->pmPyPartStart,				(mpm[i].start) * (SECTOR_SIZE / block_size));		} else {			mac_part->pmSig[0] = 'P';			mac_part->pmSig[1] = 'M';			set_732((char *) mac_part->pmMapBlkCnt, mpc + 1);			set_732((char *) mac_part->pmPyPartStart,				mpm[i].start * (SECTOR_SIZE / HFS_BLOCKSZ));			set_732((char *) mac_part->pmPartBlkCnt,				mpm[i].size * (SECTOR_SIZE / HFS_BLOCKSZ));			strncpy((char *) mac_part->pmPartName, mpm[i].name,				sizeof(mac_part->pmPartName));			strncpy((char *) mac_part->pmPartType, mpm[i].type,				sizeof(mac_part->pmPartType));			set_732((char *) mac_part->pmLgDataStart, 0);			set_732((char *) mac_part->pmDataCnt,				mpm[i].size * (SECTOR_SIZE / HFS_BLOCKSZ));			set_732((char *) mac_part->pmPartStatus,				PM_STAT_DEFAULT);		}	}	if (have_hfs_boot) {	/* generate 512 partition table as well */		mac_part = (MacPart *) (buffer + HFS_BLOCKSZ);		if (mpc < 3) {	/* don't have to interleave with 2048 table */			mac_part->pmSig[0] = 'P';			mac_part->pmSig[1] = 'M';			set_732((char *) mac_part->pmMapBlkCnt, mpc + 1);			set_732((char *) mac_part->pmPyPartStart, 1);			set_732((char *) mac_part->pmPartBlkCnt, mpc + 1);			strncpy((char *) mac_part->pmPartName, "Apple",					sizeof(mac_part->pmPartName));			strncpy((char *) mac_part->pmPartType,					"Apple_partition_map",					sizeof(mac_part->pmPartType));			set_732((char *) mac_part->pmLgDataStart, 0);			set_732((char *) mac_part->pmDataCnt, mpc + 1);			set_732((char *) mac_part->pmPartStatus,							PM_STAT_DEFAULT);			mac_part++;	/* +HFS_BLOCKSZ */		}		for (i = 0; i < mpc; i++, mac_part++) {			if (mac_part == (MacPart *) (buffer + SECTOR_SIZE))				mac_part++;	/* jump over 2048 partition						   entry */			if (mpm[i].ntype == PM2) {				memcpy((char *) mac_part, tmp + HFS_BLOCKSZ * 2,							HFS_BLOCKSZ);				if (!IS_MAC_PART(mac_part)) {					mac_part--;					continue;				}				set_732((char *) mac_part->pmMapBlkCnt, mpc+1);				set_732((char *) mac_part->pmPyPartStart,				    mpm[i].start * (SECTOR_SIZE / HFS_BLOCKSZ));			} else {				mac_part->pmSig[0] = 'P';				mac_part->pmSig[1] = 'M';				set_732((char *) mac_part->pmMapBlkCnt, mpc+1);				set_732((char *) mac_part->pmPyPartStart,				    mpm[i].start * (SECTOR_SIZE / HFS_BLOCKSZ));				set_732((char *) mac_part->pmPartBlkCnt,				    mpm[i].size * (SECTOR_SIZE / HFS_BLOCKSZ));				strncpy((char *) mac_part->pmPartName,				    mpm[i].name, sizeof(mac_part->pmPartName));				strncpy((char *) mac_part->pmPartType,				    mpm[i].type, sizeof(mac_part->pmPartType));				set_732((char *) mac_part->pmLgDataStart, 0);				set_732((char *) mac_part->pmDataCnt,				    mpm[i].size * (SECTOR_SIZE / HFS_BLOCKSZ));				set_732((char *) mac_part->pmPartStatus,							PM_STAT_DEFAULT);			}		}	}	return (0);}/* *	autostart: make the HFS CD use the QuickTime 2.0 Autostart feature. * *	based on information from Eric Eisenhart <eric@sonic.net> and *	http://developer.apple.com/qa/qtpc/qtpc12.html and *	http://developer.apple.com/dev/techsupport/develop/issue26/macqa.html * *	The name of the AutoStart file is stored in the area allocated for *	the Clipboard name. This area begins 106 bytes into the sector of *	block 0, with the first four bytes at that offset containing the *	hex value 0x006A7068. This value indicates that an AutoStart *	filename follows. After this 4-byte tag, 12 bytes remain, starting *	at offset 110. In these 12 bytes, the name of the AutoStart file is *	stored as a Pascal string, giving you up to 11 characters to identify *	the file. The file must reside in the root directory of the HFS *	volume or partition. */intautostart(){	int	len;	int	i;	if ((len = strlen(autoname)) > 11)		return (-1);	hce->hfs_hdr[106] = 0x00;	hce->hfs_hdr[107] = 0x6A;	hce->hfs_hdr[108] = 0x70;	hce->hfs_hdr[109] = 0x68;	hce->hfs_hdr[110] = len;	for (i = 0; i < len; i++)		hce->hfs_hdr[111 + i] = autoname[i];	return (0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久超碰国产精品| 欧美一二三区在线| 欧美综合一区二区| 欧美大片一区二区三区| 国产精品麻豆久久久| 日本欧美在线观看| 99久久国产综合精品色伊| 欧美久久久久久蜜桃| 中文字幕精品综合| 久久精品国产亚洲a| 一本到不卡精品视频在线观看| 日韩美女一区二区三区| 亚洲自拍偷拍av| 成人免费视频一区二区| 精品精品欲导航| 亚洲一区二区高清| 91亚洲国产成人精品一区二三 | 91麻豆精品91久久久久久清纯| 国产日韩欧美激情| 蜜桃av一区二区三区| 在线看不卡av| 136国产福利精品导航| 国产麻豆视频一区二区| 日韩一区二区电影在线| 亚洲va欧美va国产va天堂影院| www.欧美日韩| 亚洲国产岛国毛片在线| 国产精品一区不卡| 久久精品一区四区| 国产美女娇喘av呻吟久久| 3atv在线一区二区三区| 亚洲国产一区二区三区| 91成人免费在线| 亚洲精品国产一区二区三区四区在线| 岛国精品在线观看| 国产欧美一区二区在线观看| 精品午夜一区二区三区在线观看| 欧美一区二区三区免费视频| 亚洲成人av一区二区| 欧美午夜在线观看| 亚洲第一成年网| 欧美男男青年gay1069videost| 亚洲午夜在线视频| 欧美夫妻性生活| 奇米影视7777精品一区二区| 91精品国产一区二区三区香蕉| 日韩精品电影在线观看| 欧美一级黄色录像| 激情伊人五月天久久综合| 久久久久99精品国产片| 成人涩涩免费视频| 悠悠色在线精品| 欧美绝品在线观看成人午夜影视| 日本欧美一区二区在线观看| 日韩欧美中文字幕公布| 国产精品一区2区| 国产精品久久毛片| 91福利视频在线| 日韩不卡一区二区| 久久综合久久鬼色中文字| 国产不卡视频一区二区三区| 亚洲欧美综合另类在线卡通| 欧美影视一区在线| 精品午夜久久福利影院| 中文字幕精品一区二区精品绿巨人 | 日本伊人午夜精品| 日韩视频国产视频| 福利一区二区在线| 精久久久久久久久久久| 国产精品剧情在线亚洲| 在线观看日韩一区| 久久国产精品无码网站| 国产精品免费aⅴ片在线观看| 在线视频一区二区三区| 七七婷婷婷婷精品国产| 中文字幕在线不卡国产视频| 欧美日韩大陆一区二区| 国产综合一区二区| 亚洲综合色丁香婷婷六月图片| 91精品国产品国语在线不卡| 懂色av一区二区三区免费观看| 亚洲狠狠爱一区二区三区| 久久久午夜精品| 欧美专区亚洲专区| 国产乱人伦偷精品视频不卡| 一区二区三区不卡视频在线观看| 91精品国产福利在线观看| av资源网一区| 国产综合成人久久大片91| 一区二区三区在线高清| 国产亚洲成av人在线观看导航| 欧美日韩视频在线观看一区二区三区| 国产乱人伦偷精品视频免下载| 亚洲一区av在线| 国产精品色呦呦| 精品伦理精品一区| 欧美乱妇15p| 91在线一区二区| 国产成人精品一区二区三区网站观看 | 精品污污网站免费看| 成人久久18免费网站麻豆| 久久99久久99| 日精品一区二区| 亚洲一区二区美女| 亚洲品质自拍视频网站| 国产婷婷色一区二区三区四区| 宅男在线国产精品| 精品视频在线免费看| 91亚洲永久精品| 不卡欧美aaaaa| 国产成a人无v码亚洲福利| 国产一区二区三区久久悠悠色av| 日韩国产在线观看一区| 亚洲一区二三区| 一区二区三区久久| 亚洲男女毛片无遮挡| ㊣最新国产の精品bt伙计久久| 国产亚洲欧美日韩俺去了| 久久免费国产精品| 亚洲精品一区二区三区影院| 日韩亚洲电影在线| 欧美一区二区久久| 91精品国产91久久久久久最新毛片 | 成人精品视频一区二区三区| 国产一区二区三区| 国产在线视频一区二区| 国产在线精品一区二区夜色 | 丰满少妇在线播放bd日韩电影| 久久精品噜噜噜成人av农村| 蜜臀av性久久久久av蜜臀妖精| 蜜臀av一区二区在线观看| 老汉av免费一区二区三区| 捆绑调教美女网站视频一区| 国产麻豆日韩欧美久久| 成人免费毛片片v| aa级大片欧美| 欧洲亚洲国产日韩| 制服丝袜亚洲播放| 久久综合九色综合欧美亚洲| 国产视频911| **网站欧美大片在线观看| 亚洲一区在线视频| 日本免费新一区视频| 国内精品嫩模私拍在线| 成人h精品动漫一区二区三区| av一区二区三区| 欧美体内she精高潮| 欧美一区二区高清| 中文字幕第一区二区| 亚洲一区免费视频| 激情欧美一区二区| 99国产精品久| 宅男噜噜噜66一区二区66| 国产日韩影视精品| 亚洲一区欧美一区| 国产一区在线精品| 欧美亚洲综合久久| 久久久久久97三级| 亚洲精品欧美二区三区中文字幕| 免费精品99久久国产综合精品| 国产精品一区二区视频| 日本高清视频一区二区| 精品嫩草影院久久| 亚洲欧美欧美一区二区三区| 免费欧美高清视频| av一区二区不卡| 精品少妇一区二区三区日产乱码 | 欧美性生交片4| 26uuu精品一区二区| 亚洲欧美国产77777| 精品一区二区三区日韩| 色一情一乱一乱一91av| www国产成人免费观看视频 深夜成人网 | 亚洲品质自拍视频| 精品在线你懂的| 欧美性受极品xxxx喷水| 国产精品热久久久久夜色精品三区 | 日韩av一区二| 91在线你懂得| 久久久久久久久久久久电影| 性欧美大战久久久久久久久| 不卡av免费在线观看| 精品乱码亚洲一区二区不卡| 亚洲午夜在线视频| 9人人澡人人爽人人精品| 精品美女一区二区三区| 午夜精品久久一牛影视| 一本一本久久a久久精品综合麻豆| 精品国免费一区二区三区| 亚洲一线二线三线视频| 91免费看`日韩一区二区| 国产拍揄自揄精品视频麻豆| 日韩电影在线免费观看| 欧美午夜寂寞影院| 亚洲精品高清在线| 色呦呦一区二区三区| 综合av第一页| 99久久精品免费看| 中文字幕视频一区| 成+人+亚洲+综合天堂|