Implement `makefs -t udf'.

Formatting options may be enhanced to make it more in line with newfs_udf on
say labeling.
This commit is contained in:
reinoud 2013-08-05 14:41:57 +00:00
parent 43ccd8ccbb
commit e2036ad8da
6 changed files with 1311 additions and 6 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.35 2013/01/27 20:05:46 christos Exp $
# $NetBSD: Makefile,v 1.36 2013/08/05 14:41:57 reinoud Exp $
#
WARNS?= 5
@ -6,7 +6,7 @@ WARNS?= 5
.include <bsd.own.mk>
PROG= makefs
SRCS= cd9660.c chfs.c ffs.c v7fs.c msdos.c \
SRCS= cd9660.c chfs.c ffs.c v7fs.c msdos.c udf.c\
getid.c \
makefs.c misc.c \
pack_dev.c \
@ -26,6 +26,7 @@ CPPFLAGS+= -I${.CURDIR} -I${MKNODSRC} -I${MTREESRC} -DMAKEFS
.include "${.CURDIR}/ffs/Makefile.inc"
.include "${.CURDIR}/v7fs/Makefile.inc"
.include "${.CURDIR}/msdos/Makefile.inc"
.include "${.CURDIR}/udf/Makefile.inc"
.if !defined(HOSTPROG)
DPADD+= ${LIBUTIL}
@ -33,3 +34,4 @@ LDADD+= -lutil
.endif
.include <bsd.prog.mk>
# DO NOT DELETE

View File

@ -1,4 +1,4 @@
.\" $NetBSD: makefs.8,v 1.45 2013/02/03 06:16:53 christos Exp $
.\" $NetBSD: makefs.8,v 1.46 2013/08/05 14:41:57 reinoud Exp $
.\"
.\" Copyright (c) 2001-2003 Wasabi Systems, Inc.
.\" All rights reserved.
@ -215,6 +215,8 @@ Chip flash file system.
FAT12, FAT16, or FAT32 file system.
.It Sy v7fs
7th Edition(V7) file system.
.It Sy udf
ISO/Ecma UDF file system.
.El
.It Fl x
Exclude file system nodes not explicitly listed in the specfile.
@ -388,6 +390,32 @@ PDP endian.
Display a progress meter for the file system construction and file
population.
.El
.Ss UDF-specific options
.Sy udf
images have ffs-specific optional parameters that may be provided.
Each of the options consists of a keyword, an equal sign
.Pq Ql = ,
and a value.
The following keywords are supported:
.Pp
.Bl -tag -width optimization -offset indent -compact
.It Sy T
disctype. It can have the values
.Bl -tag -width 3n -offset indent -compact
.It cdrom,
.It dvdrom
create a read-only fs
.It dvdram,
.It bdre,
.It disk
create a rewriteable fs without sparing
.It cdr,
.It dvdr
create a rewritable fs on once recordable media using a VAT
.It cdrw,
.It dvdrw
create a rewritable fs with sparing for defective sectors
.It
.Sh SEE ALSO
.Xr strsuftoll 3 ,
.Xr installboot 8 ,

View File

@ -1,4 +1,4 @@
/* $NetBSD: makefs.c,v 1.49 2013/02/03 06:16:53 christos Exp $ */
/* $NetBSD: makefs.c,v 1.50 2013/08/05 14:41:57 reinoud Exp $ */
/*
* Copyright (c) 2001-2003 Wasabi Systems, Inc.
@ -41,7 +41,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
__RCSID("$NetBSD: makefs.c,v 1.49 2013/02/03 06:16:53 christos Exp $");
__RCSID("$NetBSD: makefs.c,v 1.50 2013/08/05 14:41:57 reinoud Exp $");
#endif /* !__lint */
#include <assert.h>
@ -81,6 +81,7 @@ static fstype_t fstypes[] = {
ENTRY(chfs),
ENTRY(v7fs),
ENTRY(msdos),
ENTRY(udf),
{ .type = NULL },
};

View File

@ -1,4 +1,4 @@
/* $NetBSD: makefs.h,v 1.34 2013/02/03 06:16:53 christos Exp $ */
/* $NetBSD: makefs.h,v 1.35 2013/08/05 14:41:57 reinoud Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@ -92,6 +92,7 @@ typedef struct {
uint32_t nlink; /* number of links to this entry */
enum fi_flags flags; /* flags used by fs specific code */
struct stat st; /* stat entry */
void *fsuse; /* for storing FS dependent info */
} fsinode;
typedef struct _fsnode {
@ -194,6 +195,7 @@ DECLARE_FUN(cd9660);
DECLARE_FUN(chfs);
DECLARE_FUN(v7fs);
DECLARE_FUN(msdos);
DECLARE_FUN(udf);
extern u_int debug;
extern struct timespec start_time;

1252
usr.sbin/makefs/udf.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
# $NetBSD: Makefile.inc,v 1.1 2013/08/05 14:41:57 reinoud Exp $
#
SYSFS= ${NETBSDSRCDIR}/sys/fs
UDF= ${SYSFS}/udf
UDF_NEWFS= ${NETBSDSRCDIR}/sbin/newfs_udf
FSCK= ${NETBSDSRCDIR}/sbin/fsck # use progress meter.
.PATH: ${.CURDIR}/udf ${UDF} ${UDF_NEWFS} ${FSCK}
CPPFLAGS+= -I${UDF} -I${UDF_NEWFS} -I${FSCK}
SRCS += udf_create.c udf_write.c udf_osta.c
#SRCS += main.c # newfs
#.if !defined(HOSTPROG)
#SRCS += progress.c # progress bar (fsck)
#.endif
#SRCS += v7fs_estimate.c v7fs_populate.c