linux/include/linux/adfs_fs.h
<<
>>
Prefs
   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 */
  10struct 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 */
  51static 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
  64static inline struct adfs_sb_info *ADFS_SB(struct super_block *sb)
  65{
  66        return sb->s_fs_info;
  67}
  68
  69static 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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.