]> git.pld-linux.org Git - packages/klibc.git/commitdiff
- add jfs support to utils/fstype.
authorPaweł Sikora <pluto@pld-linux.org>
Fri, 30 Sep 2005 11:51:53 +0000 (11:51 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- TODO added (klibc loader crash).

Changed files:
    klibc-fstype_jfs.patch -> 1.1
    klibc.spec -> 1.40

klibc-fstype_jfs.patch [new file with mode: 0644]
klibc.spec

diff --git a/klibc-fstype_jfs.patch b/klibc-fstype_jfs.patch
new file mode 100644 (file)
index 0000000..47d5268
--- /dev/null
@@ -0,0 +1,171 @@
+--- utils/fstype.c.old 2005-09-13 14:50:59.000000000 -0400
++++ utils/fstype.c     2005-09-13 17:42:33.000000000 -0400
+@@ -7,7 +7,7 @@
+  *  FSSIZE - filesystem size (if known)
+  *
+  * We currently detect (in order):
+- *  gzip, cramfs, romfs, xfs, minix, ext3, ext2, reiserfs
++ *  gzip, cramfs, romfs, xfs, minix, ext3, ext2, reiserfs, jfs
+  *
+  * MINIX, ext3 and Reiserfs bits are currently untested.
+  */
+@@ -29,6 +29,12 @@
+ #include "xfs_sb.h"
+ /*
++ * Slightly cleaned up version of jfs_superblock to
++ * avoid pulling in other kernel header files.
++ */
++#include "jfs_superblock.h"
++
++/*
+  * reiserfs_fs.h is too sick to include directly.
+  * Use a cleaned up version.
+  */
+@@ -174,6 +180,19 @@
+       return 0;
+ }
++static int jfs_image(const unsigned char *buf, unsigned long *blocks)
++{
++      const struct jfs_superblock *sb =
++              (const struct jfs_superblock *)buf;
++
++      if (! strncmp(sb->s_magic,JFS_MAGIC, 4)) {
++              /* 512 is the VFS Block size */
++              *blocks = __le32_to_cpu(sb->s_size) * 512;;
++              return 1;
++      }
++      return 0;
++}
++
+ struct imagetype {
+       off_t           block;
+       const char      name[12];
+@@ -189,7 +208,8 @@
+       { 1,    "ext3",         ext3_image      },
+       { 1,    "ext2",         ext2_image      },
+       { 8,    "reiserfs",     reiserfs_image  },
+-      { 64,   "reiserfs",     reiserfs_image  }
++      { 64,   "reiserfs",     reiserfs_image  },
++      { 32,   "jfs",          jfs_image       }
+ };
+ int main(int argc, char *argv[])
+--- /dev/null  2005-09-13 04:36:56.252809544 -0400
++++ utils/jfs_superblock.h     2005-09-13 15:08:00.000000000 -0400
+@@ -0,0 +1,114 @@
++/*
++ *   Copyright (C) International Business Machines Corp., 2000-2003
++ *
++ *   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 of the License, 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;  if not, write to the Free Software 
++ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++#ifndef       _H_JFS_SUPERBLOCK
++#define _H_JFS_SUPERBLOCK
++
++struct timestruc_t {
++      __le32 tv_sec;
++      __le32 tv_nsec;
++};
++
++/*
++ * make the magic number something a human could read
++ */
++#define JFS_MAGIC     "JFS1"  /* Magic word */
++
++#define JFS_VERSION   2       /* Version number: Version 2 */
++
++#define LV_NAME_SIZE  11      /* MUST BE 11 for OS/2 boot sector */
++
++/* 
++ *    aggregate superblock 
++ *
++ * The name superblock is too close to super_block, so the name has been
++ * changed to jfs_superblock.  The utilities are still using the old name.
++ */
++struct jfs_superblock {
++      char s_magic[4];        /* 4: magic number */
++      __le32 s_version;       /* 4: version number */
++
++      __le64 s_size;          /* 8: aggregate size in hardware/LVM blocks;
++                               * VFS: number of blocks
++                               */
++      __le32 s_bsize;         /* 4: aggregate block size in bytes; 
++                               * VFS: fragment size
++                               */
++      __le16 s_l2bsize;       /* 2: log2 of s_bsize */
++      __le16 s_l2bfactor;     /* 2: log2(s_bsize/hardware block size) */
++      __le32 s_pbsize;        /* 4: hardware/LVM block size in bytes */
++      __le16 s_l2pbsize;      /* 2: log2 of s_pbsize */
++      __le16 pad;             /* 2: padding necessary for alignment */
++
++      __le32 s_agsize;        /* 4: allocation group size in aggr. blocks */
++
++      __le32 s_flag;          /* 4: aggregate attributes:
++                               *    see jfs_filsys.h
++                               */
++      __le32 s_state;         /* 4: mount/unmount/recovery state: 
++                               *    see jfs_filsys.h
++                               */
++      __le32 s_compress;              /* 4: > 0 if data compression */
++
++      __le64 s_ait2;          /* 8: first extent of secondary
++                               *    aggregate inode table
++                               */
++
++      __le64 s_aim2;          /* 8: first extent of secondary
++                               *    aggregate inode map
++                               */
++      __le32 s_logdev;                /* 4: device address of log */
++      __le32 s_logserial;     /* 4: log serial number at aggregate mount */
++      __le64 s_logpxd;                /* 8: inline log extent */
++
++      __le64 s_fsckpxd;       /* 8: inline fsck work space extent */
++
++      struct timestruc_t s_time;      /* 8: time last updated */
++
++      __le32 s_fsckloglen;    /* 4: Number of filesystem blocks reserved for
++                               *    the fsck service log.  
++                               *    N.B. These blocks are divided among the
++                               *         versions kept.  This is not a per
++                               *         version size.
++                               *    N.B. These blocks are included in the 
++                               *         length field of s_fsckpxd.
++                               */
++      char s_fscklog;         /* 1: which fsck service log is most recent
++                               *    0 => no service log data yet
++                               *    1 => the first one
++                               *    2 => the 2nd one
++                               */
++      char s_fpack[11];       /* 11: file system volume name 
++                               *     N.B. This must be 11 bytes to
++                               *          conform with the OS/2 BootSector
++                               *          requirements
++                               *          Only used when s_version is 1
++                               */
++
++      /* extendfs() parameter under s_state & FM_EXTENDFS */
++      __le64 s_xsize;         /* 8: extendfs s_size */
++      __le64 s_xfsckpxd;      /* 8: extendfs fsckpxd */
++      __le64 s_xlogpxd;       /* 8: extendfs logpxd */
++      /* - 128 byte boundary - */
++
++      char s_uuid[16];        /* 16: 128-bit uuid for volume */
++      char s_label[16];       /* 16: volume label */
++      char s_loguuid[16];     /* 16: 128-bit uuid for log device */
++
++};
++
++#endif /*_H_JFS_SUPERBLOCK */
index 72767f1b6620db0df973dd80878be4ce90a2e11d..8086bbeeed50adbce00db177529c04fe066f1c31 100644 (file)
@@ -1,4 +1,8 @@
 #
+# TODO:
+#      -       fix klibc loader crash:
+#              http://www.zytor.com/pipermail/klibc/2005-September/001150.html
+#
 # Conditional build:
 %bcond_without dist_kernel     # build without distribution kernel-headers
 #
@@ -13,6 +17,7 @@ Source0:      http://www.kernel.org/pub/linux/libs/klibc/Testing/%{name}-%{version}.t
 # Source0-md5: baa1f6e0b6acbf9576bb28cca5c32c89
 Patch0:                %{name}-ksh-quotation.patch
 Patch1:                %{name}-klcc.patch
+Patch2:                %{name}-fstype_jfs.patch
 URL:           http://www.zytor.com/mailman/listinfo/klibc/
 %{?with_dist_kernel:BuildRequires:     kernel-headers >= 2.4}
 BuildRequires: rpmbuild(macros) >= 1.153
@@ -86,6 +91,7 @@ Narz
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p0
 
 %build
 cd include
This page took 0.046744 seconds and 4 git commands to generate.