patch-2.1.112 linux/fs/ufs/ufs_swab.h
Next file: linux/fs/ufs/ufs_symlink.c
Previous file: linux/fs/ufs/ufs_swab.c
Back to the patch index
Back to the overall index
- Lines: 122
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.1.111/linux/fs/ufs/ufs_swab.h
- Orig date:
Tue Feb 17 13:12:48 1998
diff -u --recursive --new-file v2.1.111/linux/fs/ufs/ufs_swab.h linux/fs/ufs/ufs_swab.h
@@ -1,121 +0,0 @@
-/*
- * linux/fs/ufs/ufs_swab.h
- *
- * Copyright (C) 1997
- * Francois-Rene Rideau <rideau@ens.fr>
- *
- */
-
-#ifndef _UFS_SWAB_H
-#define _UFS_SWAB_H
-
-
-/*
- * Notes:
- * (1) HERE WE ASSUME EITHER BIG OR LITTLE ENDIAN UFSes
- * in case there are ufs implementations that have strange bytesexes,
- * you'll need to modify code here as well as in ufs_super.c and ufs_fs.h
- * to support them.
- * (2) for a read/write ufs driver, we should distinguish
- * between byteswapping for read or write accesses!
- * naming should then be UFS16_TO_CPU and suches.
- *
- * 4.4BSD (FreeBSD) support added on February 1st 1998 by
- * Niels Kristian Bech Jensen <nkbj@image.dk> partially based
- * on code by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>.
- */
-
-#include <linux/ufs_fs.h>
-#include <asm/byteorder.h>
-
-/*
- * These are only valid inside ufs routines, after a variable named flags
- * has been made visible in current scope and properly initialized:
- __u32 flags = sb->u.ufs_sb.s_flags ;
- */
-#define SWAB16(x) ufs_swab16(flags,x)
-#define SWAB32(x) ufs_swab32(flags,x)
-#define SWAB64(x) ufs_swab64(flags,x)
-
-extern __inline__ __const__ __u16 ufs_swab16(__u32 flags, __u16 x) {
- if ((flags&UFS_BYTESEX) == UFS_LITTLE_ENDIAN) {
- return le16_to_cpu(x);
- } else {
- return be16_to_cpu(x);
- }
-}
-extern __inline__ __const__ __u32 ufs_swab32(__u32 flags, __u32 x) {
- if ((flags&UFS_BYTESEX) == UFS_LITTLE_ENDIAN) {
- return le32_to_cpu(x);
- } else {
- return be32_to_cpu(x);
- }
-}
-extern __inline__ __const__ __u64 ufs_swab64(__u32 flags, __u64 x) {
- if ((flags&UFS_BYTESEX) == UFS_LITTLE_ENDIAN) {
- return le64_to_cpu(x);
- } else {
- return be64_to_cpu(x);
- }
-}
-
-
-/*
- * These are for in-core superblock normalization.
- * It might or not be a bad idea once we go to a read/write driver,
- * as all critical info should be copied to the sb info structure anyway.
- * So better replace them with a static inline function
- * ufs_superblock_to_sb_info() in ufs_super.c
- */
-extern void ufs_superblock_le_to_cpus(struct ufs_superblock * usb);
-extern void ufs_superblock_be_to_cpus(struct ufs_superblock * usb);
-
-
-/*
- * These also implicitly depend on variable flags...
- * NAMLEN(foo) is already normalized to local format, so don't SWAB16() it!
- */
-
-#define NAMLEN(direct) ufs_namlen(flags,direct)
-extern __inline__ __u16 ufs_namlen(__u32 flags, struct ufs_direct * direct) {
- if ( (flags&UFS_DE_MASK) == UFS_DE_OLD) {
- return SWAB16(direct->d_u.d_namlen);
- } else /* UFS_DE_44BSD */ {
- return direct->d_u.d_44.d_namlen;
- }
-}
-
-/* Here is how the uid is computed:
- if the file system is 4.2BSD, get it from oldids.
- if it has sun extension and oldids is USEEFT, get it from ui_sun.
- if it is 4.4 or Hurd, get it from ui_44 (which is the same as ui_hurd).
- depends on implicit variable flags being initialized from
- __u32 flags = sb->u.ufs_sb.s_flags;
-*/
-#define UFS_UID(ino) ufs_uid(flags,ino)
-#define UFS_GID(ino) ufs_gid(flags,ino)
-
-extern __inline__ __u32 ufs_uid(__u32 flags,struct ufs_inode * ino) {
- switch(flags&UFS_UID_MASK) {
- case UFS_UID_EFT:
- return SWAB32(ino->ui_u3.ui_sun.ui_uid) ;
- case UFS_UID_44BSD:
- return SWAB32(ino->ui_u3.ui_44.ui_uid) ;
- case UFS_UID_OLD:
- default:
- return SWAB16(ino->ui_u1.oldids.suid) ;
- }
-}
-extern __inline__ __u32 ufs_gid(__u32 flags,struct ufs_inode * ino) {
- switch(flags&UFS_UID_MASK) {
- case UFS_UID_EFT:
- return SWAB32(ino->ui_u3.ui_sun.ui_gid) ;
- case UFS_UID_44BSD:
- return SWAB32(ino->ui_u3.ui_44.ui_gid) ;
- case UFS_UID_OLD:
- default:
- return SWAB16(ino->ui_u1.oldids.sgid) ;
- }
-}
-
-#endif /* _UFS_SWAB_H */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov