亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hpfs.h

?? LINUX1.0源代碼,代碼條理清晰
?? H
?? 第 1 頁 / 共 2 頁
字號:
  time_t write_date;			/* mtime */
  unsigned file_size;			/* file length, bytes */
  time_t read_date;			/* atime */
  time_t creation_date;			/* ctime */
  unsigned ea_size;			/* total EA length, bytes */
  unsigned char zero1;
  unsigned char locality;		/* 0=unk 1=seq 2=random 3=both */
  unsigned char namelen, name[1];	/* file name */
  /* dnode_secno down;	  btree down pointer, if present,
     			  follows name on next word boundary, or maybe it's
			  precedes next dirent, which is on a word boundary. */
};

/* The b-tree down pointer from a dir entry */

static inline dnode_secno de_down_pointer (struct hpfs_dirent *de)
{
  return *(dnode_secno *) ((void *) de + de->length - 4);
}

/* The first dir entry in a dnode */

static inline struct hpfs_dirent *dnode_first_de (struct dnode *dnode)
{
  return (void *) dnode->dirent;
}

/* The end+1 of the dir entries */

static inline struct hpfs_dirent *dnode_end_de (struct dnode *dnode)
{
  return (void *) dnode + dnode->first_free;
}

/* The dir entry after dir entry de */

static inline struct hpfs_dirent *de_next_de (struct hpfs_dirent *de)
{
  return (void *) de + de->length;
}


/* B+ tree: allocation info in fnodes and anodes */

/* dnodes point to fnodes which are responsible for listing the sectors
   assigned to the file.  This is done with trees of (length,address)
   pairs.  (Actually triples, of (length, file-address, disk-address)
   which can represent holes.  Find out if HPFS does that.)
   At any rate, fnodes contain a small tree; if subtrees are needed
   they occupy essentially a full block in anodes.  A leaf-level tree node
   has 3-word entries giving sector runs, a non-leaf node has 2-word
   entries giving subtree pointers.  A flag in the header says which. */

struct bplus_leaf_node
{
  unsigned file_secno;			/* first file sector in extent */
  unsigned length;			/* length, sectors */
  secno disk_secno;			/* first corresponding disk sector */
};

struct bplus_internal_node
{
  unsigned file_secno;			/* subtree maps sectors < this  */
  anode_secno down;			/* pointer to subtree */
};

struct bplus_header
{
  unsigned flag0: 1;
  unsigned flag1: 1;
  unsigned flag2: 1;
  unsigned flag3: 1;
  unsigned flag4: 1;
  unsigned fnode_parent: 1;		/* ? we're pointed to by an fnode,
					   the data btree or some ea or the
					   main ea bootage pointer ea_secno */
					/* also can get set in fnodes, which
					   may be a chkdsk glitch or may mean
					   this bit is irrelevant in fnodes,
					   or this interpretation is all wet */
  unsigned flag6: 1;
  unsigned internal: 1;			/* 1 -> (internal) tree of anodes
					   0 -> (leaf) list of extents */
  unsigned char fill[3];
  unsigned char n_free_nodes;		/* free nodes in following array */
  unsigned char n_used_nodes;		/* used nodes in following array */
  unsigned short first_free;		/* offset from start of header to
					   first free node in array */
  union {
    struct bplus_internal_node internal[0]; /* (internal) 2-word entries giving
					       subtree pointers */
    struct bplus_leaf_node external[0];	    /* (external) 3-word entries giving
					       sector runs */
  } u;
};

/* fnode: root of allocation b+ tree, and EA's */

/* Every file and every directory has one fnode, pointed to by the directory
   entry and pointing to the file's sectors or directory's root dnode.  EA's
   are also stored here, and there are said to be ACL's somewhere here too. */

#define FNODE_MAGIC 0xf7e40aae

struct fnode
{
  unsigned magic;			/* f7e4 0aae */
  unsigned zero1[2];
  unsigned char len, name[15];		/* true length, truncated name */
  fnode_secno up;			/* pointer to file's directory fnode */
  unsigned zero2[3];
  unsigned ea_size_l;			/* length of disk-resident ea's */
  secno ea_secno;			/* first sector of disk-resident ea's*/
  unsigned short ea_size_s;		/* length of fnode-resident ea's */

  unsigned flag0: 1;
  unsigned ea_anode: 1;			/* 1 -> ea_secno is an anode */
  unsigned flag2: 1;
  unsigned flag3: 1;
  unsigned flag4: 1;
  unsigned flag5: 1;
  unsigned flag6: 1;
  unsigned flag7: 1;
  unsigned dirflag: 1;			/* 1 -> directory.  first & only extent
					   points to dnode. */
  unsigned flag9: 1;
  unsigned flag10: 1;
  unsigned flag11: 1;
  unsigned flag12: 1;
  unsigned flag13: 1;
  unsigned flag14: 1;
  unsigned flag15: 1;

  struct bplus_header btree;		/* b+ tree, 8 extents or 12 subtrees */
  union {
    struct bplus_leaf_node external[8];
    struct bplus_internal_node internal[12];
  } u;

  unsigned file_size;			/* file length, bytes */
  unsigned n_needea;			/* number of EA's with NEEDEA set */
  unsigned zero4[4];
  unsigned ea_offs;			/* offset from start of fnode
					   to first fnode-resident ea */
  unsigned zero5[2];
  unsigned char ea[316];		/* zero or more EA's, packed together
					   with no alignment padding.
					   (Do not use this name, get here
					   via fnode + ea_offs. I think.) */
};


/* anode: 99.44% pure allocation tree */

#define ANODE_MAGIC 0x37e40aae

struct anode
{
  unsigned magic;			/* 37e4 0aae */
  anode_secno self;			/* pointer to this anode */
  secno up;				/* parent anode or fnode */

  struct bplus_header btree;		/* b+tree, 40 extents or 60 subtrees */
  union {
    struct bplus_leaf_node external[40];
    struct bplus_internal_node internal[60];
  } u;

  unsigned fill[3];			/* unused */
};


/* extended attributes.

   A file's EA info is stored as a list of (name,value) pairs.  It is
   usually in the fnode, but (if it's large) it is moved to a single
   sector run outside the fnode, or to multiple runs with an anode tree
   that points to them.

   The value of a single EA is stored along with the name, or (if large)
   it is moved to a single sector run, or multiple runs pointed to by an
   anode tree, pointed to by the value field of the (name,value) pair.

   Flags in the EA tell whether the value is immediate, in a single sector
   run, or in multiple runs.  Flags in the fnode tell whether the EA list
   is immediate, in a single run, or in multiple runs. */

struct extended_attribute
{
  unsigned indirect: 1;			/* 1 -> value gives sector number
					   where real value starts */
  unsigned anode: 1;			/* 1 -> sector is an anode
					   that points to fragmented value */
  unsigned flag2: 1;
  unsigned flag3: 1;
  unsigned flag4: 1;
  unsigned flag5: 1;
  unsigned flag6: 1;
  unsigned needea: 1;			/* required ea */
  unsigned char namelen;		/* length of name, bytes */
  unsigned short valuelen;		/* length of value, bytes */
  /*
    unsigned char name[namelen];	ascii attrib name
    unsigned char nul;			terminating '\0', not counted
    unsigned char value[valuelen];	value, arbitrary
      if this.indirect, valuelen is 8 and the value is
        unsigned length;		real length of value, bytes
        secno secno;			sector address where it starts
      if this.anode, the above sector number is the root of an anode tree
        which points to the value.
  */
};

static inline unsigned char *ea_name (struct extended_attribute *ea)
{
  return (void *) ea + sizeof *ea;
}

static inline unsigned char *ea_value (struct extended_attribute *ea)
{
  return (void *) ea + sizeof *ea + ea->namelen + 1;
}

static inline struct extended_attribute *
    ea_next_ea (struct extended_attribute *ea)
{
  return (void *) ea + sizeof *ea + ea->namelen + 1 + ea->valuelen;
}

static inline unsigned ea_indirect_length (struct extended_attribute *ea)
{
  unsigned *v = (void *) ea_value (ea);
  return v[0];
}

static inline secno ea_indirect_secno (struct extended_attribute *ea)
{
  unsigned *v = (void *) ea_value (ea);
  return v[1];
}

/*
   Local Variables:
   comment-column: 40
   End:
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线视频一区二区| 在线播放一区二区三区| 欧美日韩三级视频| 久久久九九九九| 性久久久久久久| 国产成人亚洲综合a∨猫咪| 精品视频在线免费| 日韩毛片精品高清免费| 国产一区美女在线| 欧美一区二区三区视频在线观看| 1024亚洲合集| 成人一区在线观看| 2022国产精品视频| 久久99久久精品欧美| 欧美日韩一二三区| 一区精品在线播放| 大胆欧美人体老妇| 久久先锋影音av鲁色资源网| 丝袜诱惑亚洲看片| 欧美中文字幕亚洲一区二区va在线| 国产午夜亚洲精品午夜鲁丝片| 免费在线观看一区| 欧美日韩一区二区三区免费看| 日韩毛片在线免费观看| 高清免费成人av| 国产欧美日本一区视频| 韩国午夜理伦三级不卡影院| 日韩欧美精品在线| 日韩精品欧美成人高清一区二区| 欧美视频一区二区在线观看| 一区二区三区精品在线观看| 91一区二区在线观看| 国产精品久久久久久久久免费樱桃 | 日韩欧美激情一区| 日本女人一区二区三区| 日韩一区二区免费视频| 裸体健美xxxx欧美裸体表演| 日韩欧美久久久| 国产最新精品免费| 欧美国产一区在线| 92国产精品观看| 亚洲精品国产第一综合99久久 | 视频一区国产视频| 91超碰这里只有精品国产| 天天综合天天综合色| 日韩一区二区三区四区| 国产在线不卡一卡二卡三卡四卡| 久久久噜噜噜久噜久久综合| 成人av网址在线| 一区二区三区欧美激情| 6080午夜不卡| 精品写真视频在线观看| 国产精品网站在线播放| 91丝袜美女网| 日韩国产一二三区| 日本一区二区三区视频视频| 91色在线porny| 日韩高清在线电影| 国产日产欧产精品推荐色| 91丨porny丨首页| 婷婷亚洲久悠悠色悠在线播放 | 国产精品乱人伦一区二区| 97久久人人超碰| 日韩高清在线一区| 国产精品久久久久久久久久久免费看| 91亚洲国产成人精品一区二区三 | 亚洲国产激情av| 欧美系列一区二区| 国内精品伊人久久久久av一坑| **性色生活片久久毛片| 欧美一区二区高清| av高清久久久| 六月婷婷色综合| 成人免费在线观看入口| 日韩欧美一级二级三级| 色天使久久综合网天天| 国产在线视频精品一区| 亚洲电影在线免费观看| 国产三区在线成人av| 欧美精品三级日韩久久| 成人精品小蝌蚪| 久色婷婷小香蕉久久| 一区二区三区视频在线看| 精品国产凹凸成av人网站| 色婷婷av一区| 狠狠色狠狠色综合系列| 亚洲国产精品精华液网站| 欧美高清在线一区二区| 日韩免费观看2025年上映的电影| 日本高清成人免费播放| 国产精品一品视频| 麻豆视频观看网址久久| 婷婷丁香久久五月婷婷| 亚洲桃色在线一区| 国产精品网曝门| 精品国产一区二区三区av性色| 欧美性大战久久久| 一本到高清视频免费精品| 成人性生交大片免费看中文网站| 蜜臀a∨国产成人精品| 图片区小说区区亚洲影院| 亚洲人吸女人奶水| 亚洲欧美日韩一区二区三区在线观看| 久久精品亚洲麻豆av一区二区| 日韩一区二区不卡| 日韩一区二区三区精品视频 | 成人动漫视频在线| 国产成人h网站| 国产麻豆精品theporn| 韩国理伦片一区二区三区在线播放| 日韩国产精品久久| 男男成人高潮片免费网站| 免费在线观看精品| 麻豆精品新av中文字幕| 蜜桃av噜噜一区二区三区小说| 日韩精品免费专区| 免费在线观看一区二区三区| 美国毛片一区二区| 经典三级视频一区| 国产成人综合在线观看| 成人av资源网站| 一本色道久久综合精品竹菊| 色成人在线视频| 欧美区在线观看| 日韩欧美一级二级| 久久精品亚洲精品国产欧美| 国产精品人妖ts系列视频| 自拍视频在线观看一区二区| 亚洲精品免费在线| 天天射综合影视| 国产一区二区在线看| www.色综合.com| 欧美日韩一级二级三级| 欧美电视剧免费全集观看| 国产亚洲午夜高清国产拍精品| 国产欧美日韩不卡免费| 亚洲精品久久久久久国产精华液| 亚洲午夜在线观看视频在线| 久久9热精品视频| 成人app网站| 91精品国产综合久久小美女| 国产亚洲欧美日韩俺去了| 日韩伦理免费电影| 视频一区欧美精品| 国产成人三级在线观看| 欧美综合亚洲图片综合区| 91精品国产一区二区| 国产精品女人毛片| 日本三级亚洲精品| 成人福利视频网站| 69成人精品免费视频| 亚洲国产激情av| 午夜精品福利一区二区三区av | 欧美一级在线视频| 国产视频亚洲色图| 五月综合激情网| 懂色av噜噜一区二区三区av| 欧美日韩精品一区二区三区 | 亚洲成人综合网站| 国产麻豆成人精品| 在线成人免费观看| 中文字幕亚洲不卡| 国内外成人在线| 欧美日韩aaaaaa| 国产精品电影一区二区三区| 日韩电影在线观看网站| av福利精品导航| 精品美女一区二区| 性感美女极品91精品| 成人av电影在线网| 久久美女艺术照精彩视频福利播放 | 午夜精品爽啪视频| 99精品视频在线观看免费| 精品久久久久久最新网址| 亚洲五月六月丁香激情| 99在线视频精品| 国产区在线观看成人精品| 日本美女一区二区| 欧美日韩一区二区不卡| 亚洲三级电影网站| 国产成人精品aa毛片| 日韩一级高清毛片| 日韩黄色免费电影| 欧美午夜精品电影| 亚洲欧美国产77777| 成人动漫一区二区在线| 国产日韩成人精品| 韩国成人在线视频| 精品国产99国产精品| 日本成人在线网站| 在线播放91灌醉迷j高跟美女| 亚洲一区二区在线视频| 在线视频你懂得一区二区三区| 亚洲视频 欧洲视频| www.日本不卡| 亚洲欧洲综合另类| 色爱区综合激月婷婷| 亚洲自拍偷拍九九九| 欧美午夜免费电影| 亚洲.国产.中文慕字在线|