syslinux: Update to 4.06
PATCH 1/1 syslinux: Update to 4.06
Patches are now part of upstream or no longer needed. Paths updated to reflect directory structure changes.
--- meta/classes/boot-directdisk.bbclass | 2 +- .../syslinux/files/cross-build.patch | 71 -- .../libinstaller-Avoid-using-linux-ext2_fs.h.patch | 975 --------------------- .../recipes-devtools/syslinux/files/no-strip.patch | 31 - meta/recipes-devtools/syslinux/syslinux_4.03.bb | 65 -- meta/recipes-devtools/syslinux/syslinux_4.06.bb | 62 ++ 6 files changed, 63 insertions(+), 1143 deletions(-) delete mode 100644 meta/recipes-devtools/syslinux/files/cross-build.patch delete mode 100644 meta/recipes-devtools/syslinux/files/libinstaller-Avoid-using-linux-ext2_fs.h.patch delete mode 100644 meta/recipes-devtools/syslinux/files/no-strip.patch delete mode 100644 meta/recipes-devtools/syslinux/syslinux_4.03.bb create mode 100644 meta/recipes-devtools/syslinux/syslinux_4.06.bb
meta/classes/boot-directdisk.bbclass +1 -1
@@ -82,7 +82,7 @@ build_boot_dd() { parted $IMAGE print OFFSET=`expr $END2 / 512` - dd if=${STAGING_LIBDIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc + dd if=${STAGING_DATADIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc dd if=${HDDIMG} of=$IMAGE conv=notrunc seek=1 bs=512 dd if=${ROOTFS} of=$IMAGE conv=notrunc seek=$OFFSET bs=512 diff --git a/meta/recipes-devtools/syslinux/files/cross-build.patch
b/meta/recipes-devtools/syslinux/files/cross-build.patch deleted file mode 100644
index 7bb6bda..0000000
meta/recipes-devtools/syslinux/files/cross-build.patch deleted +0 -66
66 lines not on this page · raw message
meta/recipes-devtools/syslinux/files/libinstaller-Avoid-using-linux-ext2_fs.h.patch deleted +0 -963
963 lines not on this page · raw message
meta/recipes-devtools/syslinux/files/no-strip.patch deleted +0 -28
@@ -1,31 +0,0 @@ -Disable stripping of binaries - -We don't want to strip these as this is handled separately at package -time. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Paul Eggleton <[email protected]> - ---- syslinux-4.03.orig/mtools/Makefile -+++ syslinux-4.03/mtools/Makefile -@@ -4,7 +4,7 @@ include $(topdir)/MCONFIG - OPTFLAGS = -g -Os - INCLUDES = -I. -I.. -I../libfat -I../libinstaller - CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) --LDFLAGS = -s -+LDFLAGS = - - SRCS = syslinux.c \ - ../libinstaller/fat.c \ ---- syslinux-4.03.orig/utils/Makefile -+++ syslinux-4.03/utils/Makefile -@@ -18,7 +18,7 @@ topdir = .. - include $(topdir)/MCONFIG - - CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 --LDFLAGS = -O2 -s -+LDFLAGS = -O2 - - TARGETS = mkdiskimage isohybrid gethostip memdiskfind - TARGETS += isohybrid.pl # about to be obsoleted
meta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0 -65
65 lines not on this page · raw message
meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +62 -0
62 lines not on this page · raw message
Signature · 1 line
1.8.2.1
Quoted 3 lines · Jonathan Liu
Patches are now part of upstream or no longer needed. Paths updated to reflect directory structure changes.
Some how this patch is corrupted, not sure if you attached it or something else.
Can you resend.
Thanks
Sau!
Quoted 1,355 lines
Signed-off-by Jonathan Liu <[email protected]>--- meta/classes/boot-directdisk.bbclass | 2 +- .../syslinux/files/cross-build.patch | 71 -- .../libinstaller-Avoid-using-linux-ext2_fs.h.patch | 975 --------------------- .../recipes-devtools/syslinux/files/no-strip.patch | 31 - meta/recipes-devtools/syslinux/syslinux_4.03.bb | 65 -- meta/recipes-devtools/syslinux/syslinux_4.06.bb | 62 ++ 6 files changed, 63 insertions(+), 1143 deletions(-)delete mode 100644
meta/recipes-devtools/syslinux/files/cross-build.patchdelete mode 100644meta/recipes-devtools/syslinux/files/libinstaller-Avoid-using-linux-ext2_fs.h.patchdelete mode 100644
meta/recipes-devtools/syslinux/files/no-strip.patchdelete mode 100644 meta/recipes-devtools/syslinux/syslinux_4.03.bb create mode 100644 meta/recipes-devtools/syslinux/syslinux_4.06.bbmeta/classes/boot-directdisk.bbclass +1
-1@@ -82,7 +82,7 @@ build_boot_dd() { parted $IMAGE print OFFSET=`expr $END2 / 512` - dd if=${STAGING_LIBDIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc + dd if=${STAGING_DATADIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc dd if=${HDDIMG} of=$IMAGE conv=notrunc seek=1 bs=512 dd if=${ROOTFS} of=$IMAGE conv=notrunc seek=$OFFSET bs=512 diff --git a/meta/recipes-devtools/syslinux/files/cross-build.patch
b/meta/recipes-devtools/syslinux/files/cross-build.patchdeleted file mode 100644
index 7bb6bda..0000000meta/recipes-devtools/syslinux/files/cross-build.patch deleted +0
-66@@ -1,71 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Use ?= for Makefile variables to use poky environment variables. -Original method to sed s/CC =/CC ?=/ is not applicable anymore -because of the Makefile changes. - -against 3.86 - -06/28/2010 - qhe - -also AUXDIR stays in $(LIBDIR)/syslinux rather than $(DATADIR)/syslinux - -07/08/2010 - qhe - -updated for 4.03 - -11/16/2010 - Qing He <[email protected]> - ---- -diff --git a/MCONFIG b/MCONFIG -index e9c16d3..4d49f33 100644 ---- a/MCONFIG -+++ b/MCONFIG -@@ -18,13 +18,13 @@ - MAKEFLAGS += -r - MAKE += -r - --BINDIR = /usr/bin --SBINDIR = /sbin --LIBDIR = /usr/lib --DATADIR = /usr/share --AUXDIR = $(DATADIR)/syslinux --MANDIR = /usr/man --INCDIR = /usr/include -+BINDIR ?= /usr/bin -+SBINDIR ?= /sbin -+LIBDIR ?= /usr/lib -+DATADIR ?= /usr/share -+AUXDIR = $(LIBDIR)/syslinux -+MANDIR ?= /usr/man -+INCDIR ?= /usr/include - TFTPBOOT = /tftpboot - COM32DIR = $(AUXDIR)/com32 - -@@ -38,18 +38,18 @@ PERL = perl - - CHMOD = chmod - --CC = gcc -+CC ?= gcc - gcc_ok = $(shell tmpf=gcc_ok.$$$$.tmp; \ - if $(CC) $(GCCOPT) $(1) -c $(topdir)/dummy.c \ - -o $$tmpf 2>/dev/null ; \ - then echo '$(1)'; else echo '$(2)'; fi; \ - rm -f $$tmpf) - --LD = ld --OBJDUMP = objdump --OBJCOPY = objcopy --AR = ar --NM = nm --RANLIB = ranlib -+LD ?= ld -+OBJDUMP ?= objdump -+OBJCOPY ?= objcopy -+AR ?= ar -+NM ?= nm -+RANLIB ?= ranlib - GZIPPROG = gzip - PNGTOPNM = pngtopnm - MCOPY = mcopydiff --git
a/meta/recipes-devtools/syslinux/files/libinstaller-Avoid-using-linux-ext2_fs.h.patchb/meta/recipes-devtools/syslinux/files/libinstaller-Avoid-using-linux-ext2_fs.h.patchdeleted file mode 100644
index 77d7a5d..0000000
---a/meta/recipes-devtools/syslinux/files/libinstaller-Avoid-using-linux-ext2_fs.h.patch+++
/dev/nullmeta/recipes-devtools/syslinux/files/cross-build.patch deleted +0
-2@@ -1,975 +0,0 @@ -From a1006762fa6f98750bb77d76dd992cb8ea9f9c99 Mon Sep 17 00:00:00 2001 -Message-Id:<a1006762fa6f98750bb77d76dd992cb8ea9f9c99.1333550572.git.dvhart@linux.intel.com>
meta/recipes-devtools/syslinux/files/cross-build.patch deleted +1
-83-From: "H. Peter Anvin" <[email protected]> -Date: Mon, 26 Mar 2012 22:51:09 -0700 -Subject: [PATCH] libinstaller: Avoid using <linux/ext2_fs.h> - -Don't use <linux/ext2_fs.h> if we can avoid it. - -Upstream-Status: Available in syslinux-4.06-pre3 - -The ioctl constants have been globalized and moved to <linux/fs.h>. -Use a private copy of ext2_fs.h from e2fsprogs with the ioctl -constants removed for the data structures. - -Do at least attempt backward compatibility for old kernel headers, but -no real hope of proper operation there... - -Signed-off-by: H. Peter Anvin <[email protected]> - -Massaged into 4.03. - -Integrated-by: Darren Hart <[email protected]> ---- - libinstaller/ext2fs/ext2_fs.h | 856 +++++++++++++++++++++++++++++++++++++++++ - libinstaller/linuxioctl.h | 29 ++- - libinstaller/syslxcom.c | 12 +- - 3 files changed, 886 insertions(+), 11 deletions(-) - create mode 100644 libinstaller/ext2fs/ext2_fs.h - -Index: syslinux-4.03/libinstaller/ext2fs/ext2_fs.h -=================================================================== ---- /dev/null -+++ syslinux-4.03/libinstaller/ext2fs/ext2_fs.h -@@ -0,0 +1,856 @@ -+/* -+ * linux/include/linux/ext2_fs.h -+ * -+ * Copyright (C) 1992, 1993, 1994, 1995 -+ * Remy Card ([email protected]) -+ * Laboratoire MASI - Institut Blaise Pascal -+ * Universite Pierre et Marie Curie (Paris VI) -+ * -+ * from -+ * -+ * linux/include/linux/minix_fs.h -+ * -+ * Copyright (C) 1991, 1992 Linus Torvalds -+ */ -+ -+#ifndef _EXT2FS_EXT2_FS_H -+#define _EXT2FS_EXT2_FS_H -+ -+#include <linux/types.h> -+ -+/* -+ * The second extended filesystem constants/structures -+ */ -+ -+/* -+ * Define EXT2FS_DEBUG to produce debug messages -+ */ -+#undef EXT2FS_DEBUG -+ -+/* -+ * Define EXT2_PREALLOCATE to preallocate data blocks for expanding files -+ */ -+#define EXT2_PREALLOCATE -+#define EXT2_DEFAULT_PREALLOC_BLOCKS 8 -+ -+/* -+ * The second extended file system version -+ */ -+#define EXT2FS_DATE "95/08/09" -+#define EXT2FS_VERSION "0.5b" -+ -+/* -+ * Special inode numbers -+ */ -+#define EXT2_BAD_INO 1 /* Bad blocks inode */ -+#define EXT2_ROOT_INO 2 /* Root inode */ -+#define EXT4_USR_QUOTA_INO 3 /* User quota inode */ -+#define EXT4_GRP_QUOTA_INO 4 /* Group quota inode */ -+#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */ -+#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */ -+#define EXT2_RESIZE_INO 7 /* Reserved group descriptorsinode */
-+#define EXT2_JOURNAL_INO 8 /* Journal inode */ -+#define EXT2_EXCLUDE_INO 9 /* The "exclude" inode, forsnapshots */
-+#defineEXT4_REPLICA_INO10 /* Used by non-upstream feature */
-+
-+/* First non-reserved inode for old ext2 filesystems */
-+#defineEXT2_GOOD_OLD_FIRST_INO11
-+
-+/*
-+ * The second extended file system magic number
-+ */
-+#defineEXT2_SUPER_MAGIC0xEF53
-+
-+#ifdef__KERNEL__
-+#defineEXT2_SB(sb)(&((sb)->u.ext2_sb))
-+#else
-+/* Assume that user mode programs are passing in an ext2fs superblock, not
-+ * a kernel structsuper_block. This will allow us to call the feature-test
-+ * macros from user land. */
-+#defineEXT2_SB(sb)(sb)
-+#endif
-+
-+/*
-+ * Maximal count of links to a file
-+ */
-+#defineEXT2_LINK_MAX65000
-+
-+/*
-+ * Macro-instructions used to manage several block sizes -+ */-+#define EXT2_MIN_BLOCK_LOG_SIZE 10 /* 1024 */ -+#define EXT2_MAX_BLOCK_LOG_SIZE 16 /* 65536 */-+#define
EXT2_MIN_BLOCK_SIZE(1 <<EXT2_MIN_BLOCK_LOG_SIZE)
-+#defineEXT2_MAX_BLOCK_SIZE(1 <<EXT2_MAX_BLOCK_LOG_SIZE)
-+#ifdef__KERNEL__
-+#defineEXT2_BLOCK_SIZE(s)((s)->s_blocksize)
-+#defineEXT2_BLOCK_SIZE_BITS(s)((s)->s_blocksize_bits)
-+#defineEXT2_ADDR_PER_BLOCK_BITS(s)(EXT2_SB(s)->addr_per_block_bits)
-+#defineEXT2_INODE_SIZE(s)(EXT2_SB(s)->s_inode_size)
-+#defineEXT2_FIRST_INO(s)(EXT2_SB(s)->s_first_ino)
-+#else
-+#defineEXT2_BLOCK_SIZE(s)(EXT2_MIN_BLOCK_SIZE<<
(s)->s_log_block_size)
-+#defineEXT2_BLOCK_SIZE_BITS(s)((s)->s_log_block_size + 10)
-+#defineEXT2_INODE_SIZE(s)(((s)->s_rev_level ==EXT2_GOOD_OLD_REV)
? \
-+EXT2_GOOD_OLD_INODE_SIZE: (s)->s_inode_size)
-+#defineEXT2_FIRST_INO(s)(((s)->s_rev_level ==EXT2_GOOD_OLD_REV) ? \
-+EXT2_GOOD_OLD_FIRST_INO: (s)->s_first_ino)
-+#endif
-+#defineEXT2_ADDR_PER_BLOCK(s)(EXT2_BLOCK_SIZE(s)/sizeof(__u32))
-+
-+/*
-+ * Macro-instructions used to manage allocation clusters -+ */-+#define EXT2_MIN_CLUSTER_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE -+#define EXT2_MAX_CLUSTER_LOG_SIZE 29 /* 512MB */ -+#define EXT2_MIN_CLUSTER_SIZE EXT2_MIN_BLOCK_SIZE -+#define EXT2_MAX_CLUSTER_SIZE (1 << EXT2_MAX_CLUSTER_LOG_SIZE)-+#define
EXT2_CLUSTER_SIZE(s)(EXT2_MIN_BLOCK_SIZE<< \
-+ (s)->s_log_cluster_size)
-+#defineEXT2_CLUSTER_SIZE_BITS(s)((s)->s_log_cluster_size + 10)
-+
-+/*
-+ * Macro-instructions used to manage fragments
-+ *
-+ * Note: for backwards compatibility only, for the dump program. -+ * Ext2/3/4 will never support fragments....
-+ */-+#define EXT2_MIN_FRAG_SIZE EXT2_MIN_BLOCK_SIZE -+#define EXT2_MAX_FRAG_SIZE EXT2_MAX_BLOCK_SIZE -+#define EXT2_MIN_FRAG_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE-+#define
EXT2_FRAG_SIZE(s)EXT2_BLOCK_SIZE(s)
-+#defineEXT2_FRAGS_PER_BLOCK(s)1
-+
-+/*
-+ * ACL structures
-+ */
-+structext2_acl_header/* Header of Access Control Lists */
-+{-+ __u32 aclh_size; -+ __u32 aclh_file_count; -+ __u32 aclh_acle_count; -+ __u32 aclh_first_acle;-+};
-+
-+structext2_acl_entry/* Access Control List Entry */
-+{-+ __u32 acle_size; -+ __u16 acle_perms; /* Access permissions */ -+ __u16 acle_type; /* Type of entry */ -+ __u16 acle_tag; /* User or group identity */ -+ __u16 acle_pad1; -+ __u32 acle_next; /* Pointer on next entry for the */-+ /* same inode or on next free entry */
-+};
-+
-+/*
-+ * Structure of a blocks group descriptor
-+ */
-+structext2_group_desc
-+{-+ __u32 bg_block_bitmap; /* Blocks bitmap block */ -+ __u32 bg_inode_bitmap; /* Inodes bitmap block */ -+ __u32 bg_inode_table; /* Inodes table block */ -+ __u16 bg_free_blocks_count; /* Free blocks count */ -+ __u16 bg_free_inodes_count; /* Free inodes count */ -+ __u16 bg_used_dirs_count; /* Directories count */ -+ __u16 bg_flags; -+ __u32 bg_exclude_bitmap_lo; /* Exclude bitmap for snapshots */ -+ __u16 bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */ -+ __u16 bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */ -+ __u16 bg_itable_unused; /* Unused inodes count */ -+ __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/-+};
-+
-+/*
-+ * Structure of a blocks group descriptor
-+ */
-+structext4_group_desc
-+{-+ __u32 bg_block_bitmap; /* Blocks bitmap block */ -+ __u32 bg_inode_bitmap; /* Inodes bitmap block */ -+ __u32 bg_inode_table; /* Inodes table block */ -+ __u16 bg_free_blocks_count; /* Free blocks count */ -+ __u16 bg_free_inodes_count; /* Free inodes count */ -+ __u16 bg_used_dirs_count; /* Directories count */ -+ __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */ -+ __u32 bg_exclude_bitmap_lo; /* Exclude bitmap for snapshots */ -+ __u16 bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */ -+ __u16 bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */ -+ __u16 bg_itable_unused; /* Unused inodes count */ -+ __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */ -+ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */ -+ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */ -+ __u32 bg_inode_table_hi; /* Inodes table block MSB */ -+ __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */ -+ __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */ -+ __u16 bg_used_dirs_count_hi; /* Directories count MSB */ -+ __u16 bg_itable_unused_hi; /* Unused inodes count MSB */ -+ __u32 bg_exclude_bitmap_hi; /* Exclude bitmap block MSB */ -+ __u16 bg_block_bitmap_csum_hi;/* crc32c(s_uuid+grp_num+bitmap)MSB */
-+__u16bg_inode_bitmap_csum_hi;/*crc32c(s_uuid+grp_num+bitmap)
MSB */
-+__u32bg_reserved;
-+};
-+
-+#defineEXT2_BG_INODE_UNINIT0x0001/* Inode table/bitmap not
initialized */
-+#defineEXT2_BG_BLOCK_UNINIT0x0002/* Block bitmap not initialized */
-+#defineEXT2_BG_INODE_ZEROED0x0004/* On-disk itable initialized
to zero */
-+
-+/*
-+ * Data structures used by the directory indexing feature -+ *
-+ * Note: all of the multibyte integer fields are little endian. -+ */
-+
-+/*
-+ * Note:dx_root_infois laid out so that if it should somehow get -+ * overlaid by a dirent the two low bits of the hash version will be -+ * zero. Therefore, the hash version mod 4 should never be 0. -+ * Sincerely, the paranoia department.
-+ */
-+structext2_dx_root_info{-+ __u32 reserved_zero; -+ __u8 hash_version; /* 0 now, 1 at release */ -+ __u8 info_length; /* 8 */ -+ __u8 indirect_levels; -+ __u8 unused_flags;-+};
-+
-+#defineEXT2_HASH_LEGACY0
-+#defineEXT2_HASH_HALF_MD41
-+#defineEXT2_HASH_TEA2
-+#defineEXT2_HASH_LEGACY_UNSIGNED3 /* reserved for userspace lib */
-+#defineEXT2_HASH_HALF_MD4_UNSIGNED4 /* reserved for userspace lib */
-+#defineEXT2_HASH_TEA_UNSIGNED5 /* reserved for userspace lib */
-+
-+#defineEXT2_HASH_FLAG_INCOMPAT0x1
-+
-+structext2_dx_entry{
-+__u32hash;
-+__u32block;
-+};
-+
-+structext2_dx_countlimit{
-+__u16limit;
-+__u16count;
-+};
-+
-+
-+/*
-+ * Macro-instructions used to manage group descriptors -+ */-+#define EXT2_MIN_DESC_SIZE 32 -+#define EXT2_MIN_DESC_SIZE_64BIT 64 -+#define EXT2_MAX_DESC_SIZE EXT2_MIN_BLOCK_SIZE-+#define
EXT2_DESC_SIZE(s)\
-+ ((EXT2_SB(s)->s_feature_incompat &EXT4_FEATURE_INCOMPAT_64BIT)
? \
-+ (s)->s_desc_size :EXT2_MIN_DESC_SIZE)
-+
-+#defineEXT2_BLOCKS_PER_GROUP(s)(EXT2_SB(s)->s_blocks_per_group)
-+#defineEXT2_INODES_PER_GROUP(s)(EXT2_SB(s)->s_inodes_per_group)
-+#defineEXT2_CLUSTERS_PER_GROUP(s)(EXT2_SB(s)->s_clusters_per_group)
-+#defineEXT2_INODES_PER_BLOCK(s)(EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
-+/* limits imposed by 16-bit value gd_free_{blocks,inode}_count */
-+#defineEXT2_MAX_BLOCKS_PER_GROUP(s)((((unsigned) 1 << 16) - 8)
* \
-+ (EXT2_CLUSTER_SIZE(s)/ \
-+EXT2_BLOCK_SIZE(s)))
-+#defineEXT2_MAX_CLUSTERS_PER_GROUP(s)(((unsigned) 1 << 16) - 8)
-+#defineEXT2_MAX_INODES_PER_GROUP(s)(((unsigned) 1 << 16) - \
-+EXT2_INODES_PER_BLOCK(s))
-+#ifdef__KERNEL__
-+#defineEXT2_DESC_PER_BLOCK(s)(EXT2_SB(s)->s_desc_per_block)
-+#defineEXT2_DESC_PER_BLOCK_BITS(s)(EXT2_SB(s)->s_desc_per_block_bits)
-+#else
-+#defineEXT2_DESC_PER_BLOCK(s)(EXT2_BLOCK_SIZE(s)/EXT2_DESC_SIZE(s))
-+#endif
-+
-+/*
-+ * Constants relative to the data blocks
-+ */
-+#defineEXT2_NDIR_BLOCKS12
-+#defineEXT2_IND_BLOCKEXT2_NDIR_BLOCKS
-+#defineEXT2_DIND_BLOCK(EXT2_IND_BLOCK+ 1)
-+#defineEXT2_TIND_BLOCK(EXT2_DIND_BLOCK+ 1)
-+#defineEXT2_N_BLOCKS(EXT2_TIND_BLOCK+ 1)
-+
-+/*
-+ * Inode flags
-+ */
-+#defineEXT2_SECRM_FL0x00000001/* Secure deletion */
-+#defineEXT2_UNRM_FL0x00000002/* Undelete */
-+#defineEXT2_COMPR_FL0x00000004/* Compress file */
-+#defineEXT2_SYNC_FL0x00000008/* Synchronous updates */
-+#defineEXT2_IMMUTABLE_FL0x00000010/* Immutable file */
-+#defineEXT2_APPEND_FL0x00000020/* writes to file may
only append */
-+#defineEXT2_NODUMP_FL0x00000040/* do not dump file */
-+#defineEXT2_NOATIME_FL0x00000080/* do not update atime */
-+/* Reserved for compression usage... */
-+#defineEXT2_DIRTY_FL0x00000100
-+#defineEXT2_COMPRBLK_FL0x00000200/* One or more compressed
clusters */
-+#defineEXT2_NOCOMPR_FL0x00000400/* Access raw compressed
data */
-+#defineEXT2_ECOMPR_FL0x00000800/* Compression error */
-+/* End compression flags --- maybe not all used */
-+#defineEXT2_BTREE_FL0x00001000/* btree format dir */
-+#defineEXT2_INDEX_FL0x00001000/* hash-indexed directory */
-+#defineEXT2_IMAGIC_FL0x00002000
-+#defineEXT3_JOURNAL_DATA_FL0x00004000/* file data should be
journaled */
-+#defineEXT2_NOTAIL_FL0x00008000/* file tail should not
be merged */
-+#defineEXT2_DIRSYNC_FL0x00010000/* Synchronous directory
modifications */
-+#defineEXT2_TOPDIR_FL0x00020000/* Top of directory
hierarchies*/
-+#defineEXT4_HUGE_FILE_FL0x00040000/* Set to each huge
file */
-+#defineEXT4_EXTENTS_FL0x00080000/* Inode uses extents */
-+#defineEXT4_EA_INODE_FL0x00200000/* Inode used for large
EA */
-+/*EXT4_EOFBLOCKS_FL0x00400000was here */
-+#defineEXT4_SNAPFILE_FL0x01000000/* Inode is a snapshot */
-+#defineEXT4_SNAPFILE_DELETED_FL0x04000000/* Snapshot is being
deleted */
-+#defineEXT4_SNAPFILE_SHRUNK_FL0x08000000/* Snapshot shrink
has completed */
-+#defineEXT2_RESERVED_FL0x80000000/* reserved for ext2 lib */
-+
-+#defineEXT2_FL_USER_VISIBLE0x004BDFFF/* User visible flags */
-+#defineEXT2_FL_USER_MODIFIABLE0x004B80FF/* User modifiable
flags */
-+
-+/*
-+ * ioctl commands
-+ */
-+
-+/* Used for online resize */
-+structext2_new_group_input{-+ __u32 group; /* Group number for this data */ -+ __u32 block_bitmap; /* Absolute block number of block bitmap */ -+ __u32 inode_bitmap; /* Absolute block number of inode bitmap */ -+ __u32 inode_table; /* Absolute block number of inode tablestart */
-+__u32blocks_count; /* Total number of blocks in this group */
-+__u16reserved_blocks; /* Number of reserved blocks in this
group */
-+__u16unused; /* Number of reserved GDT blocks in group */
-+};
-+
-+structext4_new_group_input{-+ __u32 group; /* Group number for this data */ -+ __u64 block_bitmap; /* Absolute block number of block bitmap */ -+ __u64 inode_bitmap; /* Absolute block number of inode bitmap */ -+ __u64 inode_table; /* Absolute block number of inode tablestart */
-+__u32blocks_count; /* Total number of blocks in this group */
-+__u16reserved_blocks; /* Number of reserved blocks in this
group */
-+__u16unused;
-+};
-+
-+#ifdef__GNU__/* Needed for the Hurd */
-+#define_IOT_ext2_new_group_input_IOT(_IOTS(__u32), 5,_IOTS(__u16), 2, 0, 0)
-+#endif
-+
-+#defineEXT2_IOC_GETFLAGS_IOR('f', 1, long)
-+#defineEXT2_IOC_SETFLAGS_IOW('f', 2, long)
-+#defineEXT2_IOC_GETVERSION_IOR('v', 1, long)
-+#defineEXT2_IOC_SETVERSION_IOW('v', 2, long)
-+#defineEXT2_IOC_GETVERSION_NEW_IOR('f', 3, long)
-+#defineEXT2_IOC_SETVERSION_NEW_IOW('f', 4, long)
-+#defineEXT2_IOC_GROUP_EXTEND_IOW('f', 7, unsigned long)
-+#defineEXT2_IOC_GROUP_ADD_IOW('f', 8,structext2_new_group_input)
-+#defineEXT4_IOC_GROUP_ADD_IOW('f', 8,structext4_new_group_input)
-+#defineEXT4_IOC_RESIZE_FS_IOW('f', 16, __u64)
-+
-+/*
-+ * Structure of an inode on the disk
-+ */
-+structext2_inode{-+ __u16 i_mode; /* File mode */ -+ __u16 i_uid; /* Low 16 bits of Owner Uid */ -+ __u32 i_size; /* Size in bytes */ -+ __u32 i_atime; /* Access time */ -+ __u32 i_ctime; /* Inode change time */ -+ __u32 i_mtime; /* Modification time */ -+ __u32 i_dtime; /* Deletion Time */ -+ __u16 i_gid; /* Low 16 bits of Group Id */ -+ __u16 i_links_count; /* Links count */ -+ __u32 i_blocks; /* Blocks count */ -+ __u32 i_flags; /* File flags */ -+ union {-+ struct {
-+__u32l_i_version; /* wasl_i_reserved1*/
-+ } linux1;
-+ struct {
-+__u32h_i_translator;
-+ } hurd1;-+ } osd1; /* OS dependent 1 */ -+ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */ -+ __u32 i_generation; /* File version (for NFS) */ -+ __u32 i_file_acl; /* File ACL */ -+ __u32 i_size_high; /* Formerly i_dir_acl, directory ACL */ -+ __u32 i_faddr; /* Fragment address */ -+ union { -+ struct { -+ __u16 l_i_blocks_hi; -+ __u16 l_i_file_acl_high; -+ __u16 l_i_uid_high; /* these 2 fields */ -+ __u16 l_i_gid_high; /* were reserved2[0] */ -+ __u16 l_i_checksum_lo; /* crc32c(uuid+inum+inode) */ -+ __u16 l_i_reserved; -+ } linux2; -+ struct { -+ __u8 h_i_frag; /* Fragment number */ -+ __u8 h_i_fsize; /* Fragment size */ -+ __u16 h_i_mode_high; -+ __u16 h_i_uid_high; -+ __u16 h_i_gid_high; -+ __u32 h_i_author;-+ } hurd2;
-+ } osd2; /* OS dependent 2 */
-+};
-+
-+/*
-+ * Permanent part of an large inode on the disk
-+ */
-+structext2_inode_large{-+ __u16 i_mode; /* File mode */ -+ __u16 i_uid; /* Low 16 bits of Owner Uid */ -+ __u32 i_size; /* Size in bytes */ -+ __u32 i_atime; /* Access time */ -+ __u32 i_ctime; /* Inode Change time */ -+ __u32 i_mtime; /* Modification time */ -+ __u32 i_dtime; /* Deletion Time */ -+ __u16 i_gid; /* Low 16 bits of Group Id */ -+ __u16 i_links_count; /* Links count */ -+ __u32 i_blocks; /* Blocks count */ -+ __u32 i_flags; /* File flags */ -+ union {-+ struct {
-+__u32l_i_version; /* wasl_i_reserved1*/
-+ } linux1;
-+ struct {
-+__u32h_i_translator;
-+ } hurd1;-+ } osd1; /* OS dependent 1 */ -+ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */ -+ __u32 i_generation; /* File version (for NFS) */ -+ __u32 i_file_acl; /* File ACL */ -+ __u32 i_size_high; /* Formerly i_dir_acl, directory ACL */ -+ __u32 i_faddr; /* Fragment address */ -+ union { -+ struct { -+ __u16 l_i_blocks_hi; -+ __u16 l_i_file_acl_high; -+ __u16 l_i_uid_high; /* these 2 fields */ -+ __u16 l_i_gid_high; /* were reserved2[0] */ -+ __u16 l_i_checksum_lo; /* crc32c(uuid+inum+inode) */ -+ __u16 l_i_reserved; -+ } linux2; -+ struct { -+ __u8 h_i_frag; /* Fragment number */ -+ __u8 h_i_fsize; /* Fragment size */ -+ __u16 h_i_mode_high; -+ __u16 h_i_uid_high; -+ __u16 h_i_gid_high; -+ __u32 h_i_author; -+ } hurd2; -+ } osd2; /* OS dependent 2 */ -+ __u16 i_extra_isize; -+ __u16 i_checksum_hi; /* crc32c(uuid+inum+inode) */ -+ __u32 i_ctime_extra; /* extra Change time (nsec << 2 |epoch) */
-+__u32i_mtime_extra; /* extra Modification time (nsec << 2 |
epoch) */
-+__u32i_atime_extra; /* extra Access time (nsec << 2 |
epoch) */-+ __u32 i_crtime; /* File creation time */ -+ __u32 i_crtime_extra; /* extra File creation time (nsec << 2| epoch)*/
-+__u32i_version_hi; /* high 32 bits for 64-bit version */
-+};
-+
-+#definei_dir_acli_size_high
-+
-+#ifdefined(__KERNEL__)||defined(__linux__)
-+#definei_reserved1osd1.linux1.l_i_reserved1
-+#definei_fragosd2.linux2.l_i_frag
-+#definei_fsizeosd2.linux2.l_i_fsize
-+#definei_uid_lowi_uid
-+#definei_gid_lowi_gid
-+#definei_uid_highosd2.linux2.l_i_uid_high
-+#definei_gid_highosd2.linux2.l_i_gid_high
-+#else
-+#ifdefined(__GNU__)
-+
-+#definei_translatorosd1.hurd1.h_i_translator
-+#definei_fragosd2.hurd2.h_i_frag;
-+#definei_fsizeosd2.hurd2.h_i_fsize;
-+#definei_uid_highosd2.hurd2.h_i_uid_high
-+#definei_gid_highosd2.hurd2.h_i_gid_high
-+#definei_authorosd2.hurd2.h_i_author
-+
-+#endif /*__GNU__*/
-+#endif /*defined(__KERNEL__)||defined(__linux__)*/
-+
-+#defineinode_uid(inode)((inode).i_uid |
(inode).osd2.linux2.l_i_uid_high << 16)
-+#defineinode_gid(inode)((inode).i_gid |
(inode).osd2.linux2.l_i_gid_high << 16)
-+#defineext2fs_set_i_uid_high(inode,x)
((inode).osd2.linux2.l_i_uid_high = (x))
-+#defineext2fs_set_i_gid_high(inode,x)
((inode).osd2.linux2.l_i_gid_high = (x))
-+
-+/*
-+ * File system states
-+ */-+#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */ -+#define EXT2_ERROR_FS 0x0002 /* Errors detected */-+#define
EXT3_ORPHAN_FS0x0004/* Orphans being recovered */
-+
-+/*
-+ * Misc. filesystem flags
-+ */
-+#defineEXT2_FLAGS_SIGNED_HASH0x0001/* Signed dirhash in use */
-+#defineEXT2_FLAGS_UNSIGNED_HASH0x0002/* Unsigned dirhash in use */
-+#defineEXT2_FLAGS_TEST_FILESYS0x0004/* OK for use on
development code */
-+#defineEXT2_FLAGS_IS_SNAPSHOT0x0010/* This is a snapshot
image */
-+#defineEXT2_FLAGS_FIX_SNAPSHOT0x0020/* Snapshot inodes
corrupted */
-+#defineEXT2_FLAGS_FIX_EXCLUDE0x0040/* Exclude bitmaps
corrupted */
-+
-+/*
-+ * Mount flags
-+ */-+#define EXT2_MOUNT_CHECK 0x0001 /* Do mount-time checks */ -+#define EXT2_MOUNT_GRPID 0x0004 /* Create files withdirectory's group */
-+#defineEXT2_MOUNT_DEBUG0x0008/* Some debugging messages */
-+#defineEXT2_MOUNT_ERRORS_CONT0x0010/* Continue on errors */
-+#defineEXT2_MOUNT_ERRORS_RO0x0020/* Remount fs ro on
errors */
-+#defineEXT2_MOUNT_ERRORS_PANIC0x0040/* Panic on errors */
-+#defineEXT2_MOUNT_MINIX_DF0x0080/* Mimics the Minix
statfs */
-+#defineEXT2_MOUNT_NO_UID320x0200/* Disable 32-bit UIDs */
-+
-+#defineclear_opt(o, opt)o &= ~EXT2_MOUNT_##opt
-+#defineset_opt(o, opt)o |= EXT2_MOUNT_##opt
-+#definetest_opt(sb, opt)(EXT2_SB(sb)->s_mount_opt & \
-+ EXT2_MOUNT_##opt)
-+/*
-+ * Maximal mount counts between two filesystem checks
-+ */
-+#defineEXT2_DFL_MAX_MNT_COUNT20 /* Allow 20 mounts */
-+#defineEXT2_DFL_CHECKINTERVAL0 /* Don't use interval check */
-+
-+/*
-+ * Behaviour when detecting errors
-+ */
-+#defineEXT2_ERRORS_CONTINUE1 /* Continue execution */
-+#defineEXT2_ERRORS_RO2 /* Remount fs read-only */
-+#defineEXT2_ERRORS_PANIC3 /* Panic */
-+#defineEXT2_ERRORS_DEFAULTEXT2_ERRORS_CONTINUE
-+
-+#if (__GNUC__>= 4)
-+#defineext4_offsetof(TYPE,MEMBER)__builtin_offsetof(TYPE,MEMBER)-+#else
-+#defineext4_offsetof(TYPE, MEMBER)((size_t) &((TYPE *)0)->MEMBER) -+#endif
-+
-+/*
-+ * Structure of the super block
-+ */
-+structext2_super_block{-+ __u32 s_inodes_count; /* Inodes count */ -+ __u32 s_blocks_count; /* Blocks count */ -+ __u32 s_r_blocks_count; /* Reserved blocks count */ -+ __u32 s_free_blocks_count; /* Free blocks count */ -+ __u32 s_free_inodes_count; /* Free inodes count */ -+ __u32 s_first_data_block; /* First Data Block */ -+ __u32 s_log_block_size; /* Block size */ -+ __u32 s_log_cluster_size; /* Allocation cluster size */ -+ __u32 s_blocks_per_group; /* # Blocks per group */ -+ __u32 s_clusters_per_group; /* # Fragments per group */ -+ __u32 s_inodes_per_group; /* # Inodes per group */ -+ __u32 s_mtime; /* Mount time */ -+ __u32 s_wtime; /* Write time */ -+ __u16 s_mnt_count; /* Mount count */ -+ __s16 s_max_mnt_count; /* Maximal mount count */ -+ __u16 s_magic; /* Magic signature */ -+ __u16 s_state; /* File system state */ -+ __u16 s_errors; /* Behaviour when detecting errors */ -+ __u16 s_minor_rev_level; /* minor revision level */ -+ __u32 s_lastcheck; /* time of last check */ -+ __u32 s_checkinterval; /* max. time between checks */ -+ __u32 s_creator_os; /* OS */ -+ __u32 s_rev_level; /* Revision level */ -+ __u16 s_def_resuid; /* Default uid for reserved blocks */ -+ __u16 s_def_resgid; /* Default gid for reserved blocks */ -+ /* -+ * These fields are for EXT2_DYNAMIC_REV superblocks only. -+ * -+ * Note: the difference between the compatible feature set and -+ * the incompatible feature set is that if there is a bit set -+ * in the incompatible feature set that the kernel doesn't -+ * know about, it should refuse to mount the filesystem. -+ * -+ * e2fsck's requirements are more strict; if it doesn't know -+ * about a feature in either the compatible or incompatible -+ * feature set, it must abort and not try to meddle with -+ * things it doesn't understand... -+ */ -+ __u32 s_first_ino; /* First non-reserved inode */ -+ __u16 s_inode_size; /* size of inode structure */ -+ __u16 s_block_group_nr; /* block group # of this superblock */ -+ __u32 s_feature_compat; /* compatible feature set */ -+ __u32 s_feature_incompat; /* incompatible feature set */ -+ __u32 s_feature_ro_compat; /* readonly-compatible feature set */ -+ __u8 s_uuid[16]; /* 128-bit uuid for volume */ -+ char s_volume_name[16]; /* volume name */ -+ char s_last_mounted[64]; /* directory where last mounted */ -+ __u32 s_algorithm_usage_bitmap; /* For compression */ -+ /* -+ * Performance hints. Directory preallocation should only -+ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on. -+ */ -+ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ -+ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ -+ __u16 s_reserved_gdt_blocks; /* Per group table for onlinegrowth */
-+ /*
-+ * Journaling support valid ifEXT2_FEATURE_COMPAT_HAS_JOURNALset.
-+ */-+ __u8 s_journal_uuid[16]; /* uuid of journal superblock */ -+ __u32 s_journal_inum; /* inode number of journal file */ -+ __u32 s_journal_dev; /* device number of journal file */ -+ __u32 s_last_orphan; /* start of list of inodes to delete */ -+ __u32 s_hash_seed[4]; /* HTREE hash seed */ -+ __u8 s_def_hash_version; /* Default hash version to use */ -+ __u8 s_jnl_backup_type; /* Default type of journal backup */ -+ __u16 s_desc_size; /* Group desc. size: INCOMPAT_64BIT */ -+ __u32 s_default_mount_opts; -+ __u32 s_first_meta_bg; /* First metablock group */ -+ __u32 s_mkfs_time; /* When the filesystem was created */ -+ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */ -+ __u32 s_blocks_count_hi; /* Blocks count high 32bits */ -+ __u32 s_r_blocks_count_hi; /* Reserved blocks count high 32 bits*/ -+ __u32 s_free_blocks_hi; /* Free blocks count */ -+ __u16 s_min_extra_isize; /* All inodes have at least # bytes */ -+ __u16 s_want_extra_isize; /* New inodes should reserve # bytes */ -+ __u32 s_flags; /* Miscellaneous flags */ -+ __u16 s_raid_stride; /* RAID stride */ -+ __u16 s_mmp_update_interval; /* # seconds to wait in MMPchecking */
-+__u64s_mmp_block; /* Block for multi-mount
protection */
-+__u32s_raid_stripe_width; /* blocks on all data disks
(N*stride)*/-+ __u8 s_log_groups_per_flex; /* FLEX_BG group size */ -+ __u8 s_reserved_char_pad; -+ __u16 s_reserved_pad; /* Padding to next 32bits */ -+ __u64 s_kbytes_written; /* nr of lifetime kilobytes written */ -+ __u32 s_snapshot_inum; /* Inode number of active snapshot */ -+ __u32 s_snapshot_id; /* sequential ID of active snapshot */ -+ __u64 s_snapshot_r_blocks_count; /* reserved blocks for active-+ snapshot's future use */
-+__u32s_snapshot_list; /* inode number of the head of the
on-disk snapshot list */
-+#defineEXT4_S_ERR_STARText4_offsetof(struct ext2_super_block, s_error_count)-+ __u32 s_error_count; /* number of fs errors */ -+ __u32 s_first_error_time; /* first time an error happened */ -+ __u32 s_first_error_ino; /* inode involved in first error */ -+ __u64 s_first_error_block; /* block involved of first error */ -+ __u8 s_first_error_func[32]; /* function where the error happened */ -+ __u32 s_first_error_line; /* line number where error happened */ -+ __u32 s_last_error_time; /* most recent time of an error */ -+ __u32 s_last_error_ino; /* inode involved in last error */ -+ __u32 s_last_error_line; /* line number where error happened */ -+ __u64 s_last_error_block; /* block involved of last error */ -+ __u8 s_last_error_func[32]; /* function where the error happened */ -+#define EXT4_S_ERR_END ext4_offsetof(struct ext2_super_block, s_mount_opts) -+ __u8 s_mount_opts[64]; -+ __u32 s_usr_quota_inum; /* inode number of user quota file */ -+ __u32 s_grp_quota_inum; /* inode number of group quota file */ -+ __u32 s_overhead_blocks; /* overhead blocks/clusters in fs */ -+ __u32 s_reserved[108]; /* Padding to the end of the block */ -+ __u32 s_checksum; /* crc32c(superblock) */-+};
-+
-+#defineEXT4_S_ERR_LEN(EXT4_S_ERR_END-EXT4_S_ERR_START) -+
-+/*
-+ * Codes for operating systems
-+ */
-+#defineEXT2_OS_LINUX0
-+#defineEXT2_OS_HURD1
-+#defineEXT2_OBSO_OS_MASIX2
-+#defineEXT2_OS_FREEBSD3
-+#defineEXT2_OS_LITES4
-+
-+/*
-+ * Revision levels
-+ */
-+#defineEXT2_GOOD_OLD_REV0 /* The good old (original) format */
-+#defineEXT2_DYNAMIC_REV1 /* V2 format w/ dynamic inode sizes */
-+
-+#defineEXT2_CURRENT_REVEXT2_GOOD_OLD_REV
-+#defineEXT2_MAX_SUPP_REVEXT2_DYNAMIC_REV
-+
-+#defineEXT2_GOOD_OLD_INODE_SIZE128
-+
-+/*
-+ * Journal inode backup types
-+ */
-+#defineEXT3_JNL_BACKUP_BLOCKS1
-+
-+/*
-+ * Feature set definitions
-+ */
-+
-+#defineEXT2_HAS_COMPAT_FEATURE(sb,mask)\
-+ ( EXT2_SB(sb)->s_feature_compat & (mask) )
-+#defineEXT2_HAS_RO_COMPAT_FEATURE(sb,mask)\
-+ ( EXT2_SB(sb)->s_feature_ro_compat & (mask) )
-+#defineEXT2_HAS_INCOMPAT_FEATURE(sb,mask)\
-+ ( EXT2_SB(sb)->s_feature_incompat & (mask) )
-+
-+#defineEXT2_FEATURE_COMPAT_DIR_PREALLOC0x0001
-+#defineEXT2_FEATURE_COMPAT_IMAGIC_INODES0x0002
-+#defineEXT3_FEATURE_COMPAT_HAS_JOURNAL0x0004
-+#defineEXT2_FEATURE_COMPAT_EXT_ATTR0x0008
-+#defineEXT2_FEATURE_COMPAT_RESIZE_INODE0x0010
-+#defineEXT2_FEATURE_COMPAT_DIR_INDEX0x0020
-+#defineEXT2_FEATURE_COMPAT_LAZY_BG0x0040
-+/* #defineEXT2_FEATURE_COMPAT_EXCLUDE_INODE0x0080not used,
legacy */
-+#defineEXT2_FEATURE_COMPAT_EXCLUDE_BITMAP0x0100
-+
-+
-+#defineEXT2_FEATURE_RO_COMPAT_SPARSE_SUPER0x0001
-+#defineEXT2_FEATURE_RO_COMPAT_LARGE_FILE0x0002
-+/* #defineEXT2_FEATURE_RO_COMPAT_BTREE_DIR0x0004not used */
-+#defineEXT4_FEATURE_RO_COMPAT_HUGE_FILE0x0008
-+#defineEXT4_FEATURE_RO_COMPAT_GDT_CSUM0x0010
-+#defineEXT4_FEATURE_RO_COMPAT_DIR_NLINK0x0020
-+#defineEXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE0x0040
-+#defineEXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT0x0080
-+#defineEXT4_FEATURE_RO_COMPAT_QUOTA0x0100
-+#defineEXT4_FEATURE_RO_COMPAT_BIGALLOC0x0200
-+#defineEXT4_FEATURE_RO_COMPAT_METADATA_CSUM0x0400
-+#defineEXT4_FEATURE_RO_COMPAT_REPLICA0x0800
-+
-+#defineEXT2_FEATURE_INCOMPAT_COMPRESSION0x0001
-+#defineEXT2_FEATURE_INCOMPAT_FILETYPE0x0002-+#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */ -+#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */ -+#define EXT2_FEATURE_INCOMPAT_META_BG 0x0010 -+#define EXT3_FEATURE_INCOMPAT_EXTENTS 0x0040-+#define
EXT4_FEATURE_INCOMPAT_64BIT0x0080
-+#defineEXT4_FEATURE_INCOMPAT_MMP0x0100
-+#defineEXT4_FEATURE_INCOMPAT_FLEX_BG0x0200
-+#defineEXT4_FEATURE_INCOMPAT_EA_INODE0x0400
-+#defineEXT4_FEATURE_INCOMPAT_DIRDATA0x1000
-+
-+#defineEXT2_FEATURE_COMPAT_SUPP0
-+#defineEXT2_FEATURE_INCOMPAT_SUPP(EXT2_FEATURE_INCOMPAT_FILETYPE| \
-+EXT4_FEATURE_INCOMPAT_MMP)
-+#defineEXT2_FEATURE_RO_COMPAT_SUPP
(EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \-+ EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \ -+ EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \ -+ EXT2_FEATURE_RO_COMPAT_BTREE_DIR)-+
-+/*
-+ * Default values for user and/or group using reserved blocks -+ */
-+#defineEXT2_DEF_RESUID0
-+#defineEXT2_DEF_RESGID0
-+
-+/*
-+ * Default mount options
-+ */
-+#defineEXT2_DEFM_DEBUG0x0001
-+#defineEXT2_DEFM_BSDGROUPS0x0002
-+#defineEXT2_DEFM_XATTR_USER0x0004
-+#defineEXT2_DEFM_ACL0x0008
-+#defineEXT2_DEFM_UID160x0010
-+#defineEXT3_DEFM_JMODE0x0060
-+#defineEXT3_DEFM_JMODE_DATA0x0020
-+#defineEXT3_DEFM_JMODE_ORDERED0x0040
-+#defineEXT3_DEFM_JMODE_WBACK0x0060
-+#defineEXT4_DEFM_NOBARRIER0x0100
-+#defineEXT4_DEFM_BLOCK_VALIDITY0x0200
-+#defineEXT4_DEFM_DISCARD0x0400
-+#defineEXT4_DEFM_NODELALLOC0x0800
-+
-+/*
-+ * Structure of a directory entry
-+ */
-+#defineEXT2_NAME_LEN255
-+
-+structext2_dir_entry{-+ __u32 inode; /* Inode number */ -+ __u16 rec_len; /* Directory entry length */ -+ __u16 name_len; /* Name length */ -+ char name[EXT2_NAME_LEN]; /* File name */-+};
-+
-+/*
-+ * The new version of the directory entry. Since EXT2 structures are -+ * stored in intel byte order, and thename_lenfield could never be -+ * bigger than 255 chars, it's safe to reclaim the extra byte for the -+ *file_typefield.
-+ */
-+structext2_dir_entry_2{-+ __u32 inode; /* Inode number */ -+ __u16 rec_len; /* Directory entry length */ -+ __u8 name_len; /* Name length */ -+ __u8 file_type; -+ char name[EXT2_NAME_LEN]; /* File name */-+};
-+
-+/*
-+ * Ext2 directory file types. Only the low 3 bits are used. The -+ * other bits are reserved for now.
-+ */
-+#defineEXT2_FT_UNKNOWN0
-+#defineEXT2_FT_REG_FILE1
-+#defineEXT2_FT_DIR2
-+#defineEXT2_FT_CHRDEV3
-+#defineEXT2_FT_BLKDEV4
-+#defineEXT2_FT_FIFO5
-+#defineEXT2_FT_SOCK6
-+#defineEXT2_FT_SYMLINK7
-+
-+#defineEXT2_FT_MAX8
-+
-+/*
-+ *EXT2_DIR_PADdefines the directory entries boundaries
-+ *
-+ * NOTE: It must be a multiple of 4
-+ */
-+#defineEXT2_DIR_PAD4
-+#defineEXT2_DIR_ROUND(EXT2_DIR_PAD- 1)
-+#defineEXT2_DIR_REC_LEN(name_len)(((name_len) + 8 +EXT2_DIR_ROUND) & \
-+ ~EXT2_DIR_ROUND)
-+
-+/*
-+ * This structure is used for multiple mount protection. It is written -+ * into the block number saved in thes_mmp_blockfield in the superblock.
-+ * Programs that check MMP should assume that ifSEQ_FSCK(or any unknown -+ * code aboveSEQ_MAX) is present then it is NOT safe to use the filesystem,
-+ * regardless of how old the timestamp is.
-+ *
-+ * The timestamp in the MMP structure will be updated by e2fsck at some -+ * arbitary intervals (start of passes, after every few groups of inodes -+ * in pass1 and pass1b). There is no guarantee that e2fsck is updating -+ * the MMP block in a timely manner, and the updates it does are purely -+ * for the convenience of the sysadmin and not for automatic validation. -+ *
-+ * Note: Only themmp_seqvalue is used to determine whether the MMP block-+ * is being updated. The mmp_time, mmp_nodename, and mmp_bdevname -+ * fields are only for informational purposes for the administrator, -+ * due to clock skew between nodes and hostname HA service takeover.-+ */
-+#defineEXT4_MMP_MAGIC0x004D4D50U/* ASCII for MMP */
-+#defineEXT4_MMP_SEQ_CLEAN0xFF4D4D50U/*mmp_seqvalue for clean unmount */
-+#defineEXT4_MMP_SEQ_FSCK0xE24D4D50U/*mmp_seqvalue when being fscked */
-+#defineEXT4_MMP_SEQ_MAX0xE24D4D4FU/* maximum validmmp_seqvalue */
-+
-+structmmp_struct{-+ __u32 mmp_magic; /* Magic number for MMP */ -+ __u32 mmp_seq; /* Sequence no. updated periodically */ -+ __u64 mmp_time; /* Time last updated */ -+ char mmp_nodename[64]; /* Node which last updated MMP block */ -+ char mmp_bdevname[32]; /* Bdev which last updated MMP block */ -+ __u16 mmp_check_interval; /* Changed mmp_check_interval */ -+ __u16 mmp_pad1; -+ __u32 mmp_pad2[227];-+};
-+
-+/*
-+ * Default interval for MMP update in seconds.
-+ */
-+#defineEXT4_MMP_UPDATE_INTERVAL5
-+
-+/*
-+ * Maximum interval for MMP update in seconds.
-+ */
-+#defineEXT4_MMP_MAX_UPDATE_INTERVAL300
-+
-+/*
-+ * Minimum interval for MMP checking in seconds.
-+ */
-+#defineEXT4_MMP_MIN_CHECK_INTERVAL5
-+
-+#endif /*_EXT2FS_EXT2_FS_H*/
-Index:syslinux-4.03/libinstaller/linuxioctl.h
-===================================================================
----syslinux-4.03.orig/libinstaller/linuxioctl.h
-+++syslinux-4.03/libinstaller/linuxioctl.h
-@@ -9,17 +9,33 @@
- - #include <sys/ioctl.h>
- -+#ifdef__linux__
-+
- #define statfs_kernel_statfs/* HACK to deal with broken 2.4
distros */
- - #include <linux/fd.h> /* Floppy geometry */
- #include <linux/hdreg.h> /* Hard disk geometry */
- --#include <linux/fs.h> /* FIGETBSZ, FIBMAP,FS_IOC_FIEMAP*/
-+#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_* */
- #include <linux/msdos_fs.h> /*FAT_IOCTL_SET_ATTRIBUTES*/
- - #undefSECTOR_SIZE/* Defined inmsdos_fs.hfor no good
reason */
- #undefSECTOR_BITS
--#include <linux/ext2_fs.h> /* EXT2_IOC_* */
-+
-+#ifndefFS_IOC_GETFLAGS
-+/* Old kernel headers, these were once ext2-specific... */
-+# include <linux/ext2_fs.h> /* EXT2_IOC_* */
-+
-+# defineFS_IOC_GETFLAGSEXT2_IOC_GETFLAGS
-+# defineFS_IOC_SETFLAGSEXT2_IOC_SETFLAGS
-+
-+# defineFS_IMMUTABLE_FLEXT2_IMMUTABLE_FL
-+
-+#else
-+
-+# include <ext2fs/ext2_fs.h>
-+
-+#endif
- - #ifndefFAT_IOCTL_GET_ATTRIBUTES
- # defineFAT_IOCTL_GET_ATTRIBUTES_IOR('r', 0x10, __u32)
-@@ -37,11 +53,13 @@
- - #undef statfs
- --#ifdefined(__linux__)&& !defined(BLKGETSIZE64) -+#ifndef BLKGETSIZE64
- /* This takes a u64, but the size field sayssize_t. Someone screwed big. */
- # define BLKGETSIZE64_IOR(0x12,114,size_t)
- #endif
- - #include <linux/loop.h>
- -+#endif /*__linux__*/
-+
- #endif /*LIBINSTALLER_LINUXIOCTL_H*/meta/recipes-devtools/syslinux/files/cross-build.patch deleted +0
-28-Index: syslinux-4.03/libinstaller/syslxcom.c -=================================================================== ---- syslinux-4.03.orig/libinstaller/syslxcom.c -+++ syslinux-4.03/libinstaller/syslxcom.c -@@ -121,9 +121,9 @@ void clear_attributes(int fd) - { - int flags; - -- if (!ioctl(fd, EXT2_IOC_GETFLAGS, &flags)) { -- flags &= ~EXT2_IMMUTABLE_FL; -- ioctl(fd, EXT2_IOC_SETFLAGS, &flags); -+ if (!ioctl(fd, FS_IOC_GETFLAGS, &flags)) { -+ flags &= ~FS_IMMUTABLE_FL; -+ ioctl(fd, FS_IOC_SETFLAGS, &flags); - } - break; - } -@@ -151,9 +151,9 @@ void set_attributes(int fd) - { - int flags; - -- if (st.st_uid == 0 && !ioctl(fd, EXT2_IOC_GETFLAGS, &flags)) { -- flags |= EXT2_IMMUTABLE_FL; -- ioctl(fd, EXT2_IOC_SETFLAGS, &flags); -+ if (st.st_uid == 0 && !ioctl(fd, FS_IOC_GETFLAGS, &flags)) { -+ flags |= FS_IMMUTABLE_FL; -+ ioctl(fd, FS_IOC_SETFLAGS, &flags); - } - break; - }meta/recipes-devtools/syslinux/files/no-strip.patch deleted +0
-28@@ -1,31 +0,0 @@ -Disable stripping of binaries - -We don't want to strip these as this is handled separately at package -time. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Paul Eggleton <[email protected]> - ---- syslinux-4.03.orig/mtools/Makefile -+++ syslinux-4.03/mtools/Makefile -@@ -4,7 +4,7 @@ include $(topdir)/MCONFIG - OPTFLAGS = -g -Os - INCLUDES = -I. -I.. -I../libfat -I../libinstaller - CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) --LDFLAGS = -s -+LDFLAGS = - - SRCS = syslinux.c \ - ../libinstaller/fat.c \ ---- syslinux-4.03.orig/utils/Makefile -+++ syslinux-4.03/utils/Makefile -@@ -18,7 +18,7 @@ topdir = .. - include $(topdir)/MCONFIG - - CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 --LDFLAGS = -O2 -s -+LDFLAGS = -O2 - - TARGETS = mkdiskimage isohybrid gethostip memdiskfind - TARGETS += isohybrid.pl # about to be obsoletedmeta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0
-5@@ -1,65 +0,0 @@ -DESCRIPTION = "A multi-purpose linux bootloader" -HOMEPAGE = "http://syslinux.zytor.com/" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ -file://README;beginline=28;endline=34;md5=a4607efd4a6392017186d08099e7d546"
meta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0
-7- -# If you really want to run syslinux, you need mtools. We just want the -# ldlinux.* stuff for now, so skip mtools-native -DEPENDS = "nasm-native" -PR = "r9" - -SRC_URI ="${KERNELORG_MIRROR}/linux/utils/boot/syslinux/4.xx/syslinux-${PV}.tar.bz2 \
meta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0
-6- file://cross-build.patch \ - file://no-strip.patch \ - file://libinstaller-Avoid-using-linux-ext2_fs.h.patch" - -SRC_URI[md5sum] = "a7ca38a0a5786b6efae8fb01a1ae8070" -SRC_URI[sha256sum] ="
c65567e324f9d1f7f794ae8f9578a0292bbd47d7b8d895a004d2f0152d0bda38"meta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0
-33- -COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)' - -EXTRA_OEMAKE = " \ - BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \ - DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \ -" -# syslinux uses $LD for linking, strip `-Wl,' so it can work -export LDFLAGS = "`echo $LDFLAGS | sed 's/-Wl,//g'`" - -do_configure() { - # drop win32 targets or build fails - sed -e 's,win32/\S*,,g' -i Makefile - - # clean installer executables included in source tarball - oe_runmake clean -} - -do_compile() { - # Rebuild only the installer; keep precompiled bootloaders - # as per author's request (doc/distrib.txt) - oe_runmake CC="${CC}" installer -} - -do_install() { - oe_runmake install INSTALLROOT="${D}" - - install -d ${D}${libdir}/syslinux/ - install -m 644 ${S}/core/ldlinux.sys ${D}${libdir}/syslinux/ - install -m 644 ${S}/core/ldlinux.bss ${D}${libdir}/syslinux/ -} - -PACKAGES += "${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux${PN}-isolinux ${PN}-misc"
meta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0
-10- -RDEPENDS_${PN} += "mtools" - -FILES_${PN} = "${bindir}/syslinux" -FILES_${PN}-extlinux = "${sbindir}/extlinux" -FILES_${PN}-mbr = "${libdir}/${BPN}/mbr.bin" -FILES_${PN}-chain = "${libdir}/${BPN}/chain.c32" -FILES_${PN}-isolinux = "${libdir}/${BPN}/isolinux.bin" -FILES_${PN}-pxelinux = "${libdir}/${BPN}/pxelinux.0" -FILES_${PN}-dev += "${datadir}/${BPN}/com32/lib*${SOLIBS}${datadir}/${BPN}/com32/include ${datadir}/${BPN}/com32/com32.ld" -FILES_${PN}-staticdev += "${datadir}/${BPN}/com32/lib*.a ${libdir}/${BPN}/com32/lib*.a"
meta/recipes-devtools/syslinux/syslinux_4.03.bb deleted +0
-3-FILES_${PN}-misc = "${libdir}/${BPN}/* ${bindir}/*" - -BBCLASSEXTEND = "native"meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +5
-0@@ -0,0 +1,62 @@ +DESCRIPTION = "A multi-purpose linux bootloader" +HOMEPAGE = "http://syslinux.zytor.com/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ +file://README;beginline=35;endline=41;md5=f7249a750bc692d1048b2626752aa415"
meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +7
-0+ +# If you really want to run syslinux, you need mtools. We just want the +# ldlinux.* stuff for now, so skip mtools-native +DEPENDS = "nasm-native" +PR = "r0" + +SRC_URI ="${KERNELORG_MIRROR}/linux/utils/boot/syslinux/4.xx/syslinux-${PV}.tar.bz2"
meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +3
-0+ +SRC_URI[md5sum] = "0384ef35b724615074e77b1fc89d5b47" +SRC_URI[sha256sum] ="
dbb7774e36c4596de68fa5e6788ad57809ab31a1760e5d7626e697766d30ad26"meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +33
-0+ +COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)' + +EXTRA_OEMAKE = " \ + BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \ + DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \ +" +# syslinux uses $LD for linking, strip `-Wl,' so it can work +export LDFLAGS = "`echo $LDFLAGS | sed 's/-Wl,//g'`" + +do_configure() { + # drop win32 targets or build fails + sed -e 's,win32/\S*,,g' -i Makefile + + # clean installer executables included in source tarball + oe_runmake clean +} + +do_compile() { + # Rebuild only the installer; keep precompiled bootloaders + # as per author's request (doc/distrib.txt) + oe_runmake CC="${CC}" installer +} + +do_install() { + oe_runmake install INSTALLROOT="${D}" + + install -d ${D}${libdir}/syslinux/ + install -m 644 ${S}/core/ldlinux.sys ${D}${libdir}/syslinux/ + install -m 644 ${S}/core/ldlinux.bss ${D}${libdir}/syslinux/ +} + +PACKAGES += "${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux${PN}-isolinux ${PN}-misc"
meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +10
-0+ +RDEPENDS_${PN} += "mtools" + +FILES_${PN} = "${bindir}/syslinux" +FILES_${PN}-extlinux = "${sbindir}/extlinux" +FILES_${PN}-mbr = "${datadir}/${BPN}/mbr.bin" +FILES_${PN}-chain = "${datadir}/${BPN}/chain.c32" +FILES_${PN}-isolinux = "${datadir}/${BPN}/isolinux.bin" +FILES_${PN}-pxelinux = "${datadir}/${BPN}/pxelinux.0" +FILES_${PN}-dev += "${datadir}/${BPN}/com32/lib*${SOLIBS}${datadir}/${BPN}/com32/include ${datadir}/${BPN}/com32/com32.ld" +FILES_${PN}-staticdev += "${datadir}/${BPN}/com32/lib*.a ${libdir}/${BPN}/com32/lib*.a"
meta/recipes-devtools/syslinux/syslinux_4.06.bb new file +3
-0+FILES_${PN}-misc = "${datadir}/${BPN}/* ${libdir}/${BPN}/* ${bindir}/*" + +BBCLASSEXTEND = "native"_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core