Allow building UDF parts of makefs on !NetBSD.
This commit is contained in:
parent
45b48fe34b
commit
9656a3f6dc
|
@ -41,7 +41,9 @@
|
||||||
/* global variables describing disc and format requests */
|
/* global variables describing disc and format requests */
|
||||||
extern int fd; /* device: file descriptor */
|
extern int fd; /* device: file descriptor */
|
||||||
extern char *dev; /* device: name */
|
extern char *dev; /* device: name */
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
extern struct mmc_discinfo mmc_discinfo; /* device: disc info */
|
extern struct mmc_discinfo mmc_discinfo; /* device: disc info */
|
||||||
|
#endif
|
||||||
|
|
||||||
extern char *format_str; /* format: string representation */
|
extern char *format_str; /* format: string representation */
|
||||||
extern int format_flags; /* format: attribute flags */
|
extern int format_flags; /* format: attribute flags */
|
||||||
|
@ -59,7 +61,9 @@ struct udf_disclayout layout;
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
int udf_write_sector(void *sector, uint32_t location);
|
int udf_write_sector(void *sector, uint32_t location);
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
int udf_update_trackinfo(struct mmc_discinfo *di, struct mmc_trackinfo *ti);
|
int udf_update_trackinfo(struct mmc_discinfo *di, struct mmc_trackinfo *ti);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* tmp */
|
/* tmp */
|
||||||
int writeout_write_queue(void);
|
int writeout_write_queue(void);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: udf_create.c,v 1.19 2013/08/05 16:44:58 reinoud Exp $ */
|
/* $NetBSD: udf_create.c,v 1.20 2013/08/05 17:12:04 joerg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2006, 2008 Reinoud Zandijk
|
* Copyright (c) 2006, 2008 Reinoud Zandijk
|
||||||
|
@ -25,11 +25,12 @@
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#if HAVE_NBTOOL_CONFIG_H
|
||||||
|
#include "nbtool_config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
#ifndef lint
|
__RCSID("$NetBSD: udf_create.c,v 1.20 2013/08/05 17:12:04 joerg Exp $");
|
||||||
__RCSID("$NetBSD: udf_create.c,v 1.19 2013/08/05 16:44:58 reinoud Exp $");
|
|
||||||
#endif /* not lint */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -76,9 +77,15 @@ udf_init_create_context(void)
|
||||||
context.volset_name = NULL;
|
context.volset_name = NULL;
|
||||||
context.fileset_name = NULL;
|
context.fileset_name = NULL;
|
||||||
|
|
||||||
|
#ifdef __NetBSD_Version__
|
||||||
context.app_name = "*NetBSD newfs";
|
context.app_name = "*NetBSD newfs";
|
||||||
context.app_version_main = __NetBSD_Version__ / 100000000;
|
context.app_version_main = __NetBSD_Version__ / 100000000;
|
||||||
context.app_version_sub = (__NetBSD_Version__ / 1000000) % 100;
|
context.app_version_sub = (__NetBSD_Version__ / 1000000) % 100;
|
||||||
|
#else
|
||||||
|
context.app_name = "*NetBSD makefs";
|
||||||
|
context.app_version_main = 0;
|
||||||
|
context.app_version_sub = 0;
|
||||||
|
#endif
|
||||||
context.impl_name = "*NetBSD kernel UDF";
|
context.impl_name = "*NetBSD kernel UDF";
|
||||||
|
|
||||||
context.vds_seq = 0; /* first one starts with zero */
|
context.vds_seq = 0; /* first one starts with zero */
|
||||||
|
@ -1794,7 +1801,11 @@ udf_create_new_fe(struct file_entry **fep, int file_type, struct stat *st)
|
||||||
|
|
||||||
/* set attributes */
|
/* set attributes */
|
||||||
if (st) {
|
if (st) {
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
udf_set_timestamp(&birthtime, st->st_birthtime);
|
udf_set_timestamp(&birthtime, st->st_birthtime);
|
||||||
|
#else
|
||||||
|
udf_set_timestamp(&birthtime, 0);
|
||||||
|
#endif
|
||||||
udf_set_timestamp(&fe->atime, st->st_atime);
|
udf_set_timestamp(&fe->atime, st->st_atime);
|
||||||
udf_set_timestamp(&fe->attrtime, st->st_ctime);
|
udf_set_timestamp(&fe->attrtime, st->st_ctime);
|
||||||
udf_set_timestamp(&fe->mtime, st->st_mtime);
|
udf_set_timestamp(&fe->mtime, st->st_mtime);
|
||||||
|
@ -1891,7 +1902,11 @@ udf_create_new_efe(struct extfile_entry **efep, int file_type, struct stat *st)
|
||||||
|
|
||||||
/* set attributes */
|
/* set attributes */
|
||||||
if (st) {
|
if (st) {
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
udf_set_timestamp(&efe->ctime, st->st_birthtime);
|
udf_set_timestamp(&efe->ctime, st->st_birthtime);
|
||||||
|
#else
|
||||||
|
udf_set_timestamp(&efe->ctime, 0);
|
||||||
|
#endif
|
||||||
udf_set_timestamp(&efe->atime, st->st_atime);
|
udf_set_timestamp(&efe->atime, st->st_atime);
|
||||||
udf_set_timestamp(&efe->attrtime, st->st_ctime);
|
udf_set_timestamp(&efe->attrtime, st->st_ctime);
|
||||||
udf_set_timestamp(&efe->mtime, st->st_mtime);
|
udf_set_timestamp(&efe->mtime, st->st_mtime);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: udf_create.h,v 1.4 2013/08/05 14:11:30 reinoud Exp $ */
|
/* $NetBSD: udf_create.h,v 1.5 2013/08/05 17:12:04 joerg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2006, 2008 Reinoud Zandijk
|
* Copyright (c) 2006, 2008 Reinoud Zandijk
|
||||||
|
@ -31,7 +31,11 @@
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
#include <fs/udf/ecma167-udf.h>
|
#include <fs/udf/ecma167-udf.h>
|
||||||
|
#else
|
||||||
|
#include "../../sys/fs/udf/ecma167-udf.h"
|
||||||
|
#endif
|
||||||
#include "udf_bswap.h"
|
#include "udf_bswap.h"
|
||||||
#include "udf_osta.h"
|
#include "udf_osta.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: udf_write.c,v 1.4 2013/08/05 16:44:58 reinoud Exp $ */
|
/* $NetBSD: udf_write.c,v 1.5 2013/08/05 17:12:04 joerg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2006, 2008, 2013 Reinoud Zandijk
|
* Copyright (c) 2006, 2008, 2013 Reinoud Zandijk
|
||||||
|
@ -25,11 +25,12 @@
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#if HAVE_NBTOOL_CONFIG_H
|
||||||
|
#include "nbtool_config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
#ifndef lint
|
__RCSID("$NetBSD: udf_write.c,v 1.5 2013/08/05 17:12:04 joerg Exp $");
|
||||||
__RCSID("$NetBSD: udf_write.c,v 1.4 2013/08/05 16:44:58 reinoud Exp $");
|
|
||||||
#endif /* not lint */
|
|
||||||
|
|
||||||
#define _EXPOSE_MMC
|
#define _EXPOSE_MMC
|
||||||
|
|
||||||
|
@ -42,7 +43,9 @@ __RCSID("$NetBSD: udf_write.c,v 1.4 2013/08/05 16:44:58 reinoud Exp $");
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
#include <sys/cdio.h>
|
#include <sys/cdio.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "udf_create.h"
|
#include "udf_create.h"
|
||||||
#include "udf_write.h"
|
#include "udf_write.h"
|
||||||
|
@ -172,6 +175,7 @@ udf_data_alloc(int nblk, struct long_ad *pos)
|
||||||
int
|
int
|
||||||
udf_derive_format(int req_enable, int req_disable, int force)
|
udf_derive_format(int req_enable, int req_disable, int force)
|
||||||
{
|
{
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
/* disc writability, formatted, appendable */
|
/* disc writability, formatted, appendable */
|
||||||
if ((mmc_discinfo.mmc_cur & MMC_CAP_RECORDABLE) == 0) {
|
if ((mmc_discinfo.mmc_cur & MMC_CAP_RECORDABLE) == 0) {
|
||||||
(void)printf("Can't newfs readonly device\n");
|
(void)printf("Can't newfs readonly device\n");
|
||||||
|
@ -195,8 +199,10 @@ udf_derive_format(int req_enable, int req_disable, int force)
|
||||||
return EROFS;
|
return EROFS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* determine UDF format */
|
/* determine UDF format */
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
format_flags = 0;
|
format_flags = 0;
|
||||||
if (mmc_discinfo.mmc_cur & MMC_CAP_REWRITABLE) {
|
if (mmc_discinfo.mmc_cur & MMC_CAP_REWRITABLE) {
|
||||||
/* all rewritable media */
|
/* all rewritable media */
|
||||||
|
@ -229,6 +235,13 @@ udf_derive_format(int req_enable, int req_disable, int force)
|
||||||
format_flags |= FORMAT_WORM;
|
format_flags |= FORMAT_WORM;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
format_flags = FORMAT_REWRITABLE;
|
||||||
|
if (context.min_udf >= 0x0250) {
|
||||||
|
/* standard dictates meta as default */
|
||||||
|
format_flags |= FORMAT_META;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* enable/disable requests */
|
/* enable/disable requests */
|
||||||
if (req_disable & FORMAT_META) {
|
if (req_disable & FORMAT_META) {
|
||||||
|
@ -244,6 +257,7 @@ udf_derive_format(int req_enable, int req_disable, int force)
|
||||||
|
|
||||||
/* determine partition/media access type */
|
/* determine partition/media access type */
|
||||||
media_accesstype = UDF_ACCESSTYPE_NOT_SPECIFIED;
|
media_accesstype = UDF_ACCESSTYPE_NOT_SPECIFIED;
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
if (mmc_discinfo.mmc_cur & MMC_CAP_REWRITABLE) {
|
if (mmc_discinfo.mmc_cur & MMC_CAP_REWRITABLE) {
|
||||||
media_accesstype = UDF_ACCESSTYPE_OVERWRITABLE;
|
media_accesstype = UDF_ACCESSTYPE_OVERWRITABLE;
|
||||||
if (mmc_discinfo.mmc_cur & MMC_CAP_ERASABLE)
|
if (mmc_discinfo.mmc_cur & MMC_CAP_ERASABLE)
|
||||||
|
@ -254,6 +268,9 @@ udf_derive_format(int req_enable, int req_disable, int force)
|
||||||
}
|
}
|
||||||
if (mmc_discinfo.mmc_cur & MMC_CAP_PSEUDOOVERWRITE)
|
if (mmc_discinfo.mmc_cur & MMC_CAP_PSEUDOOVERWRITE)
|
||||||
media_accesstype = UDF_ACCESSTYPE_PSEUDO_OVERWITE;
|
media_accesstype = UDF_ACCESSTYPE_PSEUDO_OVERWITE;
|
||||||
|
#else
|
||||||
|
media_accesstype = UDF_ACCESSTYPE_OVERWRITABLE;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* patch up media accesstype */
|
/* patch up media accesstype */
|
||||||
if (req_enable & FORMAT_READONLY) {
|
if (req_enable & FORMAT_READONLY) {
|
||||||
|
@ -319,21 +336,30 @@ udf_proces_names(void)
|
||||||
if (context.logvol_name == NULL)
|
if (context.logvol_name == NULL)
|
||||||
context.logvol_name = strdup("anonymous");
|
context.logvol_name = strdup("anonymous");
|
||||||
if (context.primary_name == NULL) {
|
if (context.primary_name == NULL) {
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
if (mmc_discinfo.disc_flags & MMC_DFLAGS_DISCIDVALID) {
|
if (mmc_discinfo.disc_flags & MMC_DFLAGS_DISCIDVALID) {
|
||||||
primary_nr = mmc_discinfo.disc_id;
|
primary_nr = mmc_discinfo.disc_id;
|
||||||
} else {
|
} else {
|
||||||
primary_nr = (uint32_t) random();
|
primary_nr = (uint32_t) random();
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
primary_nr = (uint32_t) random();
|
||||||
|
#endif
|
||||||
context.primary_name = calloc(32, 1);
|
context.primary_name = calloc(32, 1);
|
||||||
sprintf(context.primary_name, "%08"PRIx32, primary_nr);
|
sprintf(context.primary_name, "%08"PRIx32, primary_nr);
|
||||||
}
|
}
|
||||||
if (context.volset_name == NULL) {
|
if (context.volset_name == NULL) {
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
if (mmc_discinfo.disc_flags & MMC_DFLAGS_BARCODEVALID) {
|
if (mmc_discinfo.disc_flags & MMC_DFLAGS_BARCODEVALID) {
|
||||||
volset_nr = mmc_discinfo.disc_barcode;
|
volset_nr = mmc_discinfo.disc_barcode;
|
||||||
} else {
|
} else {
|
||||||
volset_nr = (uint32_t) random();
|
volset_nr = (uint32_t) random();
|
||||||
volset_nr |= ((uint64_t) random()) << 32;
|
volset_nr |= ((uint64_t) random()) << 32;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
volset_nr = (uint32_t) random();
|
||||||
|
volset_nr |= ((uint64_t) random()) << 32;
|
||||||
|
#endif
|
||||||
context.volset_name = calloc(128,1);
|
context.volset_name = calloc(128,1);
|
||||||
sprintf(context.volset_name, "%016"PRIx64, volset_nr);
|
sprintf(context.volset_name, "%016"PRIx64, volset_nr);
|
||||||
}
|
}
|
||||||
|
@ -441,7 +467,11 @@ udf_do_newfs_prefix(void)
|
||||||
{
|
{
|
||||||
union dscrptr *zero_dscr;
|
union dscrptr *zero_dscr;
|
||||||
union dscrptr *dscr;
|
union dscrptr *dscr;
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
struct mmc_trackinfo ti;
|
struct mmc_trackinfo ti;
|
||||||
|
#else
|
||||||
|
extern off_t sectors;
|
||||||
|
#endif
|
||||||
uint32_t sparable_blocks;
|
uint32_t sparable_blocks;
|
||||||
uint32_t sector_size, blockingnr;
|
uint32_t sector_size, blockingnr;
|
||||||
uint32_t cnt, loc, len;
|
uint32_t cnt, loc, len;
|
||||||
|
@ -449,22 +479,29 @@ udf_do_newfs_prefix(void)
|
||||||
int error, integrity_type;
|
int error, integrity_type;
|
||||||
int data_part, metadata_part;
|
int data_part, metadata_part;
|
||||||
|
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
/* init */
|
/* init */
|
||||||
sector_size = mmc_discinfo.sector_size;
|
sector_size = mmc_discinfo.sector_size;
|
||||||
|
|
||||||
/* determine span/size */
|
/* determine span/size */
|
||||||
ti.tracknr = mmc_discinfo.first_track_last_session;
|
ti.tracknr = mmc_discinfo.first_track_last_session;
|
||||||
error = udf_update_trackinfo(&mmc_discinfo, &ti);
|
error = udf_update_trackinfo(&mmc_discinfo, &ti);
|
||||||
|
#else
|
||||||
|
sector_size = 2048;
|
||||||
|
#endif
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
if (mmc_discinfo.sector_size < context.sector_size) {
|
if (mmc_discinfo.sector_size < context.sector_size) {
|
||||||
fprintf(stderr, "Impossible to format: sectorsize too small\n");
|
fprintf(stderr, "Impossible to format: sectorsize too small\n");
|
||||||
return EIO;
|
return EIO;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
context.sector_size = sector_size;
|
context.sector_size = sector_size;
|
||||||
|
|
||||||
/* determine blockingnr */
|
/* determine blockingnr */
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
blockingnr = ti.packet_size;
|
blockingnr = ti.packet_size;
|
||||||
if (blockingnr <= 1) {
|
if (blockingnr <= 1) {
|
||||||
/* paranoia on blockingnr */
|
/* paranoia on blockingnr */
|
||||||
|
@ -491,7 +528,6 @@ udf_do_newfs_prefix(void)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (blockingnr <= 0) {
|
if (blockingnr <= 0) {
|
||||||
printf("Can't fixup blockingnumber for device "
|
printf("Can't fixup blockingnumber for device "
|
||||||
|
@ -518,6 +554,17 @@ udf_do_newfs_prefix(void)
|
||||||
ti.track_start, mmc_discinfo.last_possible_lba,
|
ti.track_start, mmc_discinfo.last_possible_lba,
|
||||||
context.sector_size, blockingnr, sparable_blocks,
|
context.sector_size, blockingnr, sparable_blocks,
|
||||||
meta_fract);
|
meta_fract);
|
||||||
|
#else
|
||||||
|
blockingnr = 32;
|
||||||
|
wrtrack_skew = 0;
|
||||||
|
sparable_blocks = 32;
|
||||||
|
|
||||||
|
error = udf_calculate_disc_layout(format_flags, context.min_udf,
|
||||||
|
wrtrack_skew,
|
||||||
|
0, sectors - 1,
|
||||||
|
context.sector_size, blockingnr, sparable_blocks,
|
||||||
|
meta_fract);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* cache partition for we need it often */
|
/* cache partition for we need it often */
|
||||||
data_part = context.data_part;
|
data_part = context.data_part;
|
||||||
|
@ -549,7 +596,11 @@ udf_do_newfs_prefix(void)
|
||||||
if ((zero_dscr = calloc(1, context.sector_size)) == NULL)
|
if ((zero_dscr = calloc(1, context.sector_size)) == NULL)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
|
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
loc = (format_flags & FORMAT_TRACK512) ? layout.vds1 : ti.track_start;
|
loc = (format_flags & FORMAT_TRACK512) ? layout.vds1 : ti.track_start;
|
||||||
|
#else
|
||||||
|
loc = (format_flags & FORMAT_TRACK512) ? layout.vds1 : 0;
|
||||||
|
#endif
|
||||||
for (; loc < layout.part_start_lba; loc++) {
|
for (; loc < layout.part_start_lba; loc++) {
|
||||||
if ((error = udf_write_sector(zero_dscr, loc))) {
|
if ((error = udf_write_sector(zero_dscr, loc))) {
|
||||||
free(zero_dscr);
|
free(zero_dscr);
|
||||||
|
|
|
@ -28,7 +28,9 @@
|
||||||
#define _FS_UDF_UDF_WRITE_H_
|
#define _FS_UDF_UDF_WRITE_H_
|
||||||
|
|
||||||
#include "udf_create.h"
|
#include "udf_create.h"
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
#include <sys/cdio.h>
|
#include <sys/cdio.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: udf.c,v 1.2 2013/08/05 16:43:46 reinoud Exp $ */
|
/* $NetBSD: udf.c,v 1.3 2013/08/05 17:12:04 joerg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2006, 2008, 2013 Reinoud Zandijk
|
* Copyright (c) 2006, 2008, 2013 Reinoud Zandijk
|
||||||
|
@ -25,11 +25,12 @@
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#if HAVE_NBTOOL_CONFIG_H
|
||||||
|
#include "nbtool_config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
#ifndef lint
|
__RCSID("$NetBSD: udf.c,v 1.3 2013/08/05 17:12:04 joerg Exp $");
|
||||||
__RCSID("$NetBSD: udf.c,v 1.2 2013/08/05 16:43:46 reinoud Exp $");
|
|
||||||
#endif /* not lint */
|
|
||||||
|
|
||||||
#define _EXPOSE_MMC
|
#define _EXPOSE_MMC
|
||||||
|
|
||||||
|
@ -44,7 +45,9 @@ __RCSID("$NetBSD: udf.c,v 1.2 2013/08/05 16:43:46 reinoud Exp $");
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
#include <sys/cdio.h>
|
#include <sys/cdio.h>
|
||||||
|
#endif
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <util.h>
|
#include <util.h>
|
||||||
|
|
||||||
|
@ -63,7 +66,9 @@ __RCSID("$NetBSD: udf.c,v 1.2 2013/08/05 16:43:46 reinoud Exp $");
|
||||||
/* global variables describing disc and format requests */
|
/* global variables describing disc and format requests */
|
||||||
int fd; /* device: file descriptor */
|
int fd; /* device: file descriptor */
|
||||||
char *dev; /* device: name */
|
char *dev; /* device: name */
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
struct mmc_discinfo mmc_discinfo; /* device: disc info */
|
struct mmc_discinfo mmc_discinfo; /* device: disc info */
|
||||||
|
#endif
|
||||||
|
|
||||||
char *format_str; /* format: string representation */
|
char *format_str; /* format: string representation */
|
||||||
int format_flags; /* format: attribute flags */
|
int format_flags; /* format: attribute flags */
|
||||||
|
@ -150,6 +155,7 @@ udf_dump_discinfo(struct mmc_discinfo *di)
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
static int
|
static int
|
||||||
udf_emulate_discinfo(fsinfo_t *fsopts, struct mmc_discinfo *di,
|
udf_emulate_discinfo(fsinfo_t *fsopts, struct mmc_discinfo *di,
|
||||||
int mmc_emuprofile)
|
int mmc_emuprofile)
|
||||||
|
@ -260,7 +266,16 @@ udf_update_trackinfo(struct mmc_discinfo *di, struct mmc_trackinfo *ti)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
off_t sectors;
|
||||||
|
|
||||||
|
static int
|
||||||
|
udf_emulate_discinfo(fsinfo_t *fsopts, int mmc_emuprofile)
|
||||||
|
{
|
||||||
|
sectors = fsopts->size / fsopts->sectorsize;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define OPT_STR(letter, name, desc) \
|
#define OPT_STR(letter, name, desc) \
|
||||||
{ letter, name, NULL, OPT_STRBUF, 0, 0, desc }
|
{ letter, name, NULL, OPT_STRBUF, 0, 0, desc }
|
||||||
|
@ -879,7 +894,7 @@ udf_copy_file(struct stat *st, char *path, fsnode *cur, struct fileid_desc *fid,
|
||||||
|
|
||||||
fnode = cur->inode;
|
fnode = cur->inode;
|
||||||
|
|
||||||
f = open(path, O_RDONLY, 0, 0);
|
f = open(path, O_RDONLY);
|
||||||
if (f < 0) {
|
if (f < 0) {
|
||||||
warn("Can't open file %s for reading", cur->name);
|
warn("Can't open file %s for reading", cur->name);
|
||||||
return errno;
|
return errno;
|
||||||
|
@ -1169,7 +1184,11 @@ udf_makefs(const char *image, const char *dir, fsnode *root, fsinfo_t *fsopts)
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
/* determine format */
|
/* determine format */
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
udf_emulate_discinfo(fsopts, &mmc_discinfo, mmc_profile);
|
udf_emulate_discinfo(fsopts, &mmc_discinfo, mmc_profile);
|
||||||
|
#else
|
||||||
|
udf_emulate_discinfo(fsopts, mmc_profile);
|
||||||
|
#endif
|
||||||
printf("req_enable %d, req_disable %d\n", req_enable, req_disable);
|
printf("req_enable %d, req_disable %d\n", req_enable, req_disable);
|
||||||
|
|
||||||
context.sector_size = fsopts->sectorsize;
|
context.sector_size = fsopts->sectorsize;
|
||||||
|
@ -1212,7 +1231,11 @@ udf_makefs(const char *image, const char *dir, fsnode *root, fsinfo_t *fsopts)
|
||||||
meta_fract = ((int) ((meta_fract + 0.005)*100.0)) / 100;
|
meta_fract = ((int) ((meta_fract + 0.005)*100.0)) / 100;
|
||||||
|
|
||||||
/* update mmc info but now with correct size */
|
/* update mmc info but now with correct size */
|
||||||
|
#if !HAVE_NBTOOL_CONFIG_H
|
||||||
udf_emulate_discinfo(fsopts, &mmc_discinfo, mmc_profile);
|
udf_emulate_discinfo(fsopts, &mmc_discinfo, mmc_profile);
|
||||||
|
#else
|
||||||
|
udf_emulate_discinfo(fsopts, mmc_profile);
|
||||||
|
#endif
|
||||||
|
|
||||||
udf_do_newfs_prefix();
|
udf_do_newfs_prefix();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue