Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef _ADFS_FS_H
  2 #define _ADFS_FS_H
  3 
  4 #include <linux/types.h>
  5 #include <linux/magic.h>
  6 
  7 /*
  8  * Disc Record at disc address 0xc00
  9  */
 10 struct adfs_discrecord {
 11     __u8  log2secsize;
 12     __u8  secspertrack;
 13     __u8  heads;
 14     __u8  density;
 15     __u8  idlen;
 16     __u8  log2bpmb;
 17     __u8  skew;
 18     __u8  bootoption;
 19     __u8  lowsector;
 20     __u8  nzones;
 21     __le16 zone_spare;
 22     __le32 root;
 23     __le32 disc_size;
 24     __le16 disc_id;
 25     __u8  disc_name[10];
 26     __le32 disc_type;
 27     __le32 disc_size_high;
 28     __u8  log2sharesize:4;
 29     __u8  unused40:4;
 30     __u8  big_flag:1;
 31     __u8  unused41:1;
 32     __u8  nzones_high;
 33     __le32 format_version;
 34     __le32 root_size;
 35     __u8  unused52[60 - 52];
 36 };
 37 
 38 #define ADFS_DISCRECORD         (0xc00)
 39 #define ADFS_DR_OFFSET          (0x1c0)
 40 #define ADFS_DR_SIZE             60
 41 #define ADFS_DR_SIZE_BITS       (ADFS_DR_SIZE << 3)
 42 
 43 #ifdef __KERNEL__
 44 #include <linux/adfs_fs_i.h>
 45 #include <linux/adfs_fs_sb.h>
 46 /*
 47  * Calculate the boot block checksum on an ADFS drive.  Note that this will
 48  * appear to be correct if the sector contains all zeros, so also check that
 49  * the disk size is non-zero!!!
 50  */
 51 static inline int adfs_checkbblk(unsigned char *ptr)
 52 {
 53         unsigned int result = 0;
 54         unsigned char *p = ptr + 511;
 55 
 56         do {
 57                 result = (result & 0xff) + (result >> 8);
 58                 result = result + *--p;
 59         } while (p != ptr);
 60 
 61         return (result & 0xff) != ptr[511];
 62 }
 63 
 64 static inline struct adfs_sb_info *ADFS_SB(struct super_block *sb)
 65 {
 66         return sb->s_fs_info;
 67 }
 68 
 69 static inline struct adfs_inode_info *ADFS_I(struct inode *inode)
 70 {
 71         return container_of(inode, struct adfs_inode_info, vfs_inode);
 72 }
 73 
 74 #endif
 75 
 76 #endif
 77 
  This page was automatically generated by the LXR engine.