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

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

?? hpfs.h

?? 內核是系統的心臟
?? 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一区二区三区免费野_久草精品视频
美女在线视频一区| 黄色小说综合网站| 亚洲综合色婷婷| 成人自拍视频在线观看| 国产精品久久久久久久岛一牛影视| 欧美日韩成人一区二区| 国产精品你懂的| 成人午夜视频在线观看| 亚洲精品五月天| 日韩一区二区在线免费观看| 日韩一区二区三区电影| 国产成人综合在线观看| 一区二区三区精品在线| 国产综合色产在线精品| 亚洲精品欧美综合四区| 亚洲黄色尤物视频| 99久久精品国产导航| 日本vs亚洲vs韩国一区三区二区| 久久综合九色综合97_久久久| 色婷婷综合久久久久中文一区二区| 日韩制服丝袜av| 亚洲午夜一区二区三区| 国产精品久久看| 精品国产sm最大网站免费看| 色94色欧美sute亚洲线路一久 | 日韩欧美国产电影| 在线观看亚洲a| 91老师片黄在线观看| 成人美女视频在线观看| 亚洲一区中文日韩| 中文字幕综合网| 一个色在线综合| 一区二区三区四区亚洲| 国产精品欧美精品| 国产精品久久久久一区二区三区共 | 色综合色综合色综合| 国产精品69久久久久水密桃| 久久久精品国产免费观看同学| 欧美一区二区三区色| 欧美哺乳videos| 精品国产免费一区二区三区四区 | 美国三级日本三级久久99| 美腿丝袜亚洲一区| 国产一区欧美二区| 99re亚洲国产精品| 欧美亚洲一区二区在线| 亚洲国产精品一区二区www | 亚洲日本青草视频在线怡红院| 亚洲精品久久嫩草网站秘色| 日精品一区二区三区| 日韩和欧美一区二区| 亚洲视频一区二区在线| 一区二区久久久久久| 美国十次了思思久久精品导航| 懂色中文一区二区在线播放| 日本高清不卡一区| 精品欧美乱码久久久久久| 国产精品久久久久久久久免费桃花 | 色婷婷激情一区二区三区| 日韩精彩视频在线观看| 国产精品久久久久久久蜜臀| 亚洲国产视频在线| 久久电影网站中文字幕| 国产mv日韩mv欧美| 亚洲精品在线三区| 视频一区二区不卡| 欧美日韩精品三区| 依依成人精品视频| 懂色av一区二区三区免费观看| 7777精品伊人久久久大香线蕉的| 国产精品久久久久久久午夜片| 国内精品国产三级国产a久久| 欧美三区在线视频| 亚洲激情av在线| 欧美日韩精品综合在线| 一区二区三区高清| 在线观看一区日韩| 亚洲电影在线播放| 欧美绝品在线观看成人午夜影视| 国产剧情一区二区三区| 久久久99久久精品欧美| 国产欧美一区二区精品性| 懂色中文一区二区在线播放| 午夜久久久影院| 精品免费一区二区三区| 国模无码大尺度一区二区三区| 国产欧美日韩一区二区三区在线观看 | 豆国产96在线|亚洲| 欧美女孩性生活视频| 免费高清在线视频一区·| 亚洲精品一区二区三区影院| 成人av在线影院| 一本大道综合伊人精品热热| 亚洲一区国产视频| 国产免费观看久久| 欧美日韩精品是欧美日韩精品| 久久综合99re88久久爱| 亚洲成人av免费| 欧美激情在线看| 欧美亚洲日本国产| 国产**成人网毛片九色| 五月激情综合色| 国产69精品久久99不卡| 精品国产91洋老外米糕| 欧美日韩在线亚洲一区蜜芽| 国产在线播放一区三区四| 亚洲夂夂婷婷色拍ww47| 国产欧美日韩精品一区| 欧美一区二区三区在线看| 国产精品欧美一区二区三区| 欧美一区二区国产| 欧美日韩黄视频| 一区二区三区在线免费| 国产无人区一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 欧美日韩精品久久久| 欧美久久免费观看| 日韩av不卡在线观看| 天天综合天天综合色| √…a在线天堂一区| 中文字幕日韩一区二区| 亚洲婷婷在线视频| 亚洲二区在线观看| 免费高清视频精品| 国产河南妇女毛片精品久久久| 国产在线一区二区| 国产精品久久久久天堂| 亚洲色图视频网| 色妞www精品视频| 欧美日韩免费不卡视频一区二区三区| 欧美亚洲国产一区二区三区va| 欧美日韩一区中文字幕| 日韩欧美精品三级| 一色屋精品亚洲香蕉网站| 日韩国产欧美视频| www.亚洲激情.com| 精品国产91九色蝌蚪| 久久久精品免费观看| 欧美体内she精高潮| 欧美电影免费观看高清完整版在 | 久久精品水蜜桃av综合天堂| 国产精品久久久久久一区二区三区 | 综合色中文字幕| 欧美一级日韩免费不卡| 亚洲婷婷综合色高清在线| 日韩精品欧美成人高清一区二区| 国产精品123区| 亚洲永久免费视频| 91在线观看高清| 国产喂奶挤奶一区二区三区| 天天av天天翘天天综合网色鬼国产| 国产精品综合二区| 久久久久久97三级| 美国十次了思思久久精品导航| 日本在线观看不卡视频| 欧美日韩视频专区在线播放| 国产精品久久毛片av大全日韩| 欧美第一区第二区| 日本美女视频一区二区| 日韩欧美专区在线| 麻豆精品一二三| 精品国产乱码久久久久久久久| 久久国产日韩欧美精品| 欧美tk—视频vk| 国产91精品欧美| 日韩综合一区二区| 制服视频三区第一页精品| 日韩vs国产vs欧美| 精品国产99国产精品| kk眼镜猥琐国模调教系列一区二区| 亚洲国产精华液网站w| 91在线观看污| 日韩国产欧美三级| 2022国产精品视频| 91成人免费在线视频| 同产精品九九九| 麻豆精品一区二区综合av| 日本高清不卡在线观看| 日韩电影免费在线看| 欧美激情自拍偷拍| 欧美日韩国产成人在线免费| 精久久久久久久久久久| 亚洲色图在线播放| 久久久久久电影| 欧美卡1卡2卡| 色激情天天射综合网| 韩国精品在线观看| 日本中文一区二区三区| 不卡视频在线看| 国产美女主播视频一区| 亚洲成人免费看| 亚洲美女精品一区| 中文字幕中文字幕一区二区| 日韩精品一区二区三区视频在线观看 | 国产精品欧美一区喷水| 日韩一级完整毛片| 欧美精品三级日韩久久| 欧美美女黄视频| 蜜桃一区二区三区四区| 首页欧美精品中文字幕|