OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [linux/] [ufs_fs.h] - Diff between revs 1765 and 1782

Only display areas with differences | Details | Blame | View Log

Rev 1765 Rev 1782
/*
/*
 *  linux/include/linux/ufs_fs.h
 *  linux/include/linux/ufs_fs.h
 *
 *
 * Copyright (C) 1996
 * Copyright (C) 1996
 * Adrian Rodriguez (adrian@franklins-tower.rutgers.edu)
 * Adrian Rodriguez (adrian@franklins-tower.rutgers.edu)
 * Laboratory for Computer Science Research Computing Facility
 * Laboratory for Computer Science Research Computing Facility
 * Rutgers, The State University of New Jersey
 * Rutgers, The State University of New Jersey
 *
 *
 * $Id: ufs_fs.h,v 1.1 2005-12-20 11:32:27 jcastillo Exp $
 * $Id: ufs_fs.h,v 1.1 2005-12-20 11:32:27 jcastillo Exp $
 *
 *
 */
 */
 
 
#ifndef __LINUX_UFS_FS_H
#ifndef __LINUX_UFS_FS_H
#define __LINUX_UFS_FS_H
#define __LINUX_UFS_FS_H
 
 
#include <linux/types.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/time.h>
#include <linux/time.h>
#include <linux/stat.h>
#include <linux/stat.h>
 
 
#define UFS_BBLOCK 0
#define UFS_BBLOCK 0
#define UFS_BBSIZE 8192
#define UFS_BBSIZE 8192
#define UFS_SBLOCK 8192
#define UFS_SBLOCK 8192
#define UFS_SBSIZE 8192
#define UFS_SBSIZE 8192
 
 
#define UFS_MAGIC 0x00011954
#define UFS_MAGIC 0x00011954
 
 
#define UFS_FSIZE 1024
#define UFS_FSIZE 1024
#define UFS_BSIZE 8192
#define UFS_BSIZE 8192
 
 
#define UFS_NDADDR 12
#define UFS_NDADDR 12
#define UFS_NINDIR 3
#define UFS_NINDIR 3
 
 
#define UFS_ROOTINO 2
#define UFS_ROOTINO 2
 
 
#define UFS_USEEFT  ((__u16)65535)
#define UFS_USEEFT  ((__u16)65535)
 
 
#define UFS_FSOK      0x7c269d38
#define UFS_FSOK      0x7c269d38
#define UFS_FSACTIVE  ((char)0x00)
#define UFS_FSACTIVE  ((char)0x00)
#define UFS_FSCLEAN   ((char)0x01)
#define UFS_FSCLEAN   ((char)0x01)
#define UFS_FSSTABLE  ((char)0x02)
#define UFS_FSSTABLE  ((char)0x02)
#define UFS_FSBAD     ((char)0xff)
#define UFS_FSBAD     ((char)0xff)
 
 
/* Flags for ufs_sb_info */
/* Flags for ufs_sb_info */
#define UFS_DEBUG       0x00000001
#define UFS_DEBUG       0x00000001
#define UFS_DEBUG_INODE 0x00000002
#define UFS_DEBUG_INODE 0x00000002
#define UFS_DEBUG_NAMEI 0x00000004
#define UFS_DEBUG_NAMEI 0x00000004
#define UFS_DEBUG_LINKS 0x00000008
#define UFS_DEBUG_LINKS 0x00000008
 
 
 
 
/* Test if the inode number is valid. */
/* Test if the inode number is valid. */
#define ufs_ino_ok(inode)  ((inode->i_ino < 2) &&  \
#define ufs_ino_ok(inode)  ((inode->i_ino < 2) &&  \
                            (inode->i_ino > (inode->i_sb->u.ufs_sb.s_ncg * inode->i_sb->u.ufs_sb.s_ipg - 1)))
                            (inode->i_ino > (inode->i_sb->u.ufs_sb.s_ncg * inode->i_sb->u.ufs_sb.s_ipg - 1)))
 
 
/* Convert (sb,cg) to the first physical block number for that cg. */
/* Convert (sb,cg) to the first physical block number for that cg. */
#define ufs_cgstart(sb, cg)   \
#define ufs_cgstart(sb, cg)   \
  (((sb)->u.ufs_sb.s_fpg * (cg)) + (sb)->u.ufs_sb.s_cgoffset * ((cg) & ~((sb)->u.ufs_sb.s_cgmask)))
  (((sb)->u.ufs_sb.s_fpg * (cg)) + (sb)->u.ufs_sb.s_cgoffset * ((cg) & ~((sb)->u.ufs_sb.s_cgmask)))
 
 
/* Convert (sb,cg) to the first phys. block number for inodes in that cg. */
/* Convert (sb,cg) to the first phys. block number for inodes in that cg. */
#define ufs_cgimin(sb, cg) (ufs_cgstart((sb), (cg)) + (sb)->u.ufs_sb.s_iblkno)
#define ufs_cgimin(sb, cg) (ufs_cgstart((sb), (cg)) + (sb)->u.ufs_sb.s_iblkno)
#define ufs_cgdmin(sb, cg) (ufs_cgstart((sb), (cg)) + (sb)->u.ufs_sb.s_dblkno)
#define ufs_cgdmin(sb, cg) (ufs_cgstart((sb), (cg)) + (sb)->u.ufs_sb.s_dblkno)
 
 
/* Convert an inode number to a cg number. */
/* Convert an inode number to a cg number. */
/* XXX - this can be optimized if s_ipg is a power of 2. */
/* XXX - this can be optimized if s_ipg is a power of 2. */
#define ufs_ino2cg(inode)  ((inode)->i_ino/(inode)->i_sb->u.ufs_sb.s_ipg)
#define ufs_ino2cg(inode)  ((inode)->i_ino/(inode)->i_sb->u.ufs_sb.s_ipg)
 
 
#define UFS_MAXNAMLEN 255
#define UFS_MAXNAMLEN 255
 
 
struct ufs_direct {
struct ufs_direct {
        __u32  d_ino;                   /* inode number of this entry */
        __u32  d_ino;                   /* inode number of this entry */
        __u16  d_reclen;                /* length of this entry */
        __u16  d_reclen;                /* length of this entry */
        __u16  d_namlen;                /* actual length of d_name */
        __u16  d_namlen;                /* actual length of d_name */
        char   d_name[UFS_MAXNAMLEN + 1];       /* file name */
        char   d_name[UFS_MAXNAMLEN + 1];       /* file name */
};
};
 
 
#define MAXMNTLEN 512
#define MAXMNTLEN 512
#define MAXCSBUFS 32
#define MAXCSBUFS 32
 
 
struct ufs_csum {
struct ufs_csum {
        __u32   cs_ndir;        /* number of directories */
        __u32   cs_ndir;        /* number of directories */
        __u32   cs_nbfree;      /* number of free blocks */
        __u32   cs_nbfree;      /* number of free blocks */
        __u32   cs_nifree;      /* number of free inodes */
        __u32   cs_nifree;      /* number of free inodes */
        __u32   cs_nffree;      /* number of free frags */
        __u32   cs_nffree;      /* number of free frags */
};
};
 
 
typedef struct _ufsquad {
typedef struct _ufsquad {
        __u32 val[2];
        __u32 val[2];
} ufsquad;
} ufsquad;
 
 
/*
/*
 * This is the actual superblock, as it is laid out on the disk.
 * This is the actual superblock, as it is laid out on the disk.
 */
 */
struct ufs_superblock {
struct ufs_superblock {
        __u32   fs_link;        /* UNUSED */
        __u32   fs_link;        /* UNUSED */
        __u32   fs_rlink;       /* UNUSED */
        __u32   fs_rlink;       /* UNUSED */
        __u32   fs_sblkno;
        __u32   fs_sblkno;
        __u32   fs_cblkno;
        __u32   fs_cblkno;
        __u32   fs_iblkno;
        __u32   fs_iblkno;
        __u32   fs_dblkno;
        __u32   fs_dblkno;
        __u32   fs_cgoffset;
        __u32   fs_cgoffset;
        __u32   fs_cgmask;
        __u32   fs_cgmask;
        time_t  fs_time;        /* XXX - check type */
        time_t  fs_time;        /* XXX - check type */
        __u32   fs_size;
        __u32   fs_size;
        __u32   fs_dsize;
        __u32   fs_dsize;
        __u32   fs_ncg;
        __u32   fs_ncg;
        __u32   fs_bsize;
        __u32   fs_bsize;
        __u32   fs_fsize;
        __u32   fs_fsize;
        __u32   fs_frag;
        __u32   fs_frag;
        __u32   fs_minfree;
        __u32   fs_minfree;
        __u32   fs_rotdelay;
        __u32   fs_rotdelay;
        __u32   fs_rps;
        __u32   fs_rps;
        __u32   fs_bmask;
        __u32   fs_bmask;
        __u32   fs_fmask;
        __u32   fs_fmask;
        __u32   fs_bshift;
        __u32   fs_bshift;
        __u32   fs_fshift;
        __u32   fs_fshift;
        __u32   fs_maxcontig;
        __u32   fs_maxcontig;
        __u32   fs_maxbpg;
        __u32   fs_maxbpg;
        __u32   fs_fragshift;
        __u32   fs_fragshift;
        __u32   fs_fsbtodb;
        __u32   fs_fsbtodb;
        __u32   fs_sbsize;
        __u32   fs_sbsize;
        __u32   fs_csmask;
        __u32   fs_csmask;
        __u32   fs_csshift;
        __u32   fs_csshift;
        __u32   fs_nindir;
        __u32   fs_nindir;
        __u32   fs_inopb;
        __u32   fs_inopb;
        __u32   fs_nspf;
        __u32   fs_nspf;
        __u32   fs_optim;
        __u32   fs_optim;
        __u32   fs_XXX1;
        __u32   fs_XXX1;
        __u32   fs_interleave;
        __u32   fs_interleave;
        __u32   fs_trackskew;
        __u32   fs_trackskew;
        __u32   fs_id[2];
        __u32   fs_id[2];
        __u32   fs_csaddr;
        __u32   fs_csaddr;
        __u32   fs_cssize;
        __u32   fs_cssize;
        __u32   fs_cgsize;
        __u32   fs_cgsize;
        __u32   fs_ntrak;
        __u32   fs_ntrak;
        __u32   fs_nsect;
        __u32   fs_nsect;
        __u32   fs_spc;
        __u32   fs_spc;
        __u32   fs_ncyl;
        __u32   fs_ncyl;
        __u32   fs_cpg;
        __u32   fs_cpg;
        __u32   fs_ipg;
        __u32   fs_ipg;
        __u32   fs_fpg;
        __u32   fs_fpg;
        struct ufs_csum fs_cstotal;
        struct ufs_csum fs_cstotal;
        __u8    fs_fmod;
        __u8    fs_fmod;
        __u8    fs_clean;
        __u8    fs_clean;
        __u8    fs_ronly;
        __u8    fs_ronly;
        __u8    fs_flags;
        __u8    fs_flags;
        __u8    fs_fsmnt[MAXMNTLEN];
        __u8    fs_fsmnt[MAXMNTLEN];
        __u32   fs_cgrotor;
        __u32   fs_cgrotor;
        struct ufs_csum * fs_csp[MAXCSBUFS];
        struct ufs_csum * fs_csp[MAXCSBUFS];
        __u32   fs_cpc;
        __u32   fs_cpc;
        __u16   fs_opostbl[16][8];      /* old rotation block list head */
        __u16   fs_opostbl[16][8];      /* old rotation block list head */
        __s32   fs_sparecon[55];        /* reserved for future constants */
        __s32   fs_sparecon[55];        /* reserved for future constants */
        __s32   fs_state;               /* file system state time stamp */
        __s32   fs_state;               /* file system state time stamp */
        ufsquad fs_qbmask;              /* ~usb_bmask - for use with __s64 size */
        ufsquad fs_qbmask;              /* ~usb_bmask - for use with __s64 size */
        ufsquad fs_qfmask;              /* ~usb_fmask - for use with __s64 size */
        ufsquad fs_qfmask;              /* ~usb_fmask - for use with __s64 size */
        __s32   fs_postblformat;        /* format of positional layout tables */
        __s32   fs_postblformat;        /* format of positional layout tables */
        __s32   fs_nrpos;               /* number of rotational positions */
        __s32   fs_nrpos;               /* number of rotational positions */
        __s32   fs_postbloff;           /* (__s16) rotation block list head */
        __s32   fs_postbloff;           /* (__s16) rotation block list head */
        __s32   fs_rotbloff;            /* (__u8) blocks for each rotation */
        __s32   fs_rotbloff;            /* (__u8) blocks for each rotation */
        __s32   fs_magic;               /* magic number */
        __s32   fs_magic;               /* magic number */
        __u8    fs_space[1];            /* list of blocks for each rotation */
        __u8    fs_space[1];            /* list of blocks for each rotation */
 
 
};
};
 
 
/*
/*
 * structure of an on-disk inode
 * structure of an on-disk inode
 */
 */
struct ufs_inode {
struct ufs_inode {
        __u16   ui_mode;                /*  0x0 */
        __u16   ui_mode;                /*  0x0 */
        __u16   ui_nlink;               /*  0x2 */
        __u16   ui_nlink;               /*  0x2 */
        __u16   ui_suid;                /*  0x4 */
        __u16   ui_suid;                /*  0x4 */
        __u16   ui_sgid;                /*  0x6 */
        __u16   ui_sgid;                /*  0x6 */
        ufsquad ui_size;                /*  0x8 */  /* XXX - should be __u64 */
        ufsquad ui_size;                /*  0x8 */  /* XXX - should be __u64 */
        struct timeval ui_atime;        /* 0x10 */
        struct timeval ui_atime;        /* 0x10 */
        struct timeval ui_mtime;        /* 0x18 */
        struct timeval ui_mtime;        /* 0x18 */
        struct timeval ui_ctime;        /* 0x20 */
        struct timeval ui_ctime;        /* 0x20 */
        __u32   ui_db[UFS_NDADDR];              /* 0x28 data blocks */
        __u32   ui_db[UFS_NDADDR];              /* 0x28 data blocks */
        __u32   ui_ib[UFS_NINDIR];              /* 0x58 indirect blocks */
        __u32   ui_ib[UFS_NINDIR];              /* 0x58 indirect blocks */
        __u32   ui_flags;               /* 0x64 unused */
        __u32   ui_flags;               /* 0x64 unused */
        __u32   ui_blocks;              /* 0x68 blocks in use */
        __u32   ui_blocks;              /* 0x68 blocks in use */
        __u32   ui_gen;                 /* 0x6c generation number XXX - what is this? */
        __u32   ui_gen;                 /* 0x6c generation number XXX - what is this? */
        __u32   ui_shadow;              /* 0x70 shadow inode XXX - what is this?*/
        __u32   ui_shadow;              /* 0x70 shadow inode XXX - what is this?*/
        __u32   ui_uid;                 /* 0x74 long EFT version of uid */
        __u32   ui_uid;                 /* 0x74 long EFT version of uid */
        __u32   ui_gid;                 /* 0x78 long EFT version of gid */
        __u32   ui_gid;                 /* 0x78 long EFT version of gid */
        __u32   ui_oeftflag;            /* 0x7c reserved */
        __u32   ui_oeftflag;            /* 0x7c reserved */
};
};
 
 
extern int init_ufs_fs(void);
extern int init_ufs_fs(void);
 
 
#endif /* __LINUX_UFS_FS_H */
#endif /* __LINUX_UFS_FS_H */
/*
/*
 * Local Variables: ***
 * Local Variables: ***
 * c-indent-level: 8 ***
 * c-indent-level: 8 ***
 * c-continued-statement-offset: 8 ***
 * c-continued-statement-offset: 8 ***
 * c-brace-offset: -8 ***
 * c-brace-offset: -8 ***
 * c-argdecl-indent: 0 ***
 * c-argdecl-indent: 0 ***
 * c-label-offset: -8 ***
 * c-label-offset: -8 ***
 * End: ***
 * End: ***
 */
 */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.