macros.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * macros.h
  3.  *
  4.  * Copyright (C) 1995 Martin von L鰓is
  5.  * Copyright (C) 1996 R間is Duchesne
  6.  * Copyright (c) 2001 Anton Altaparmakov
  7.  */
  8. #include <linux/ntfs_fs_i.h>
  9. #include <linux/fs.h>
  10. #include <asm/page.h>
  11. #define NTFS_FD(vol) ((vol)->u.fd)
  12. #define NTFS_SB(vol) ((struct super_block*)(vol)->sb)
  13. #define NTFS_SB2VOL(sb)         (&(sb)->u.ntfs_sb)
  14. #define NTFS_INO2VOL(ino) (&((ino)->i_sb->u.ntfs_sb))
  15. #define NTFS_LINO2NINO(ino)     ((struct ntfs_inode_info*)(&((ino)->u.ntfs_i)))
  16. static inline struct inode *VFS_I(struct ntfs_inode_info *ntfs_ino)
  17. {
  18. struct inode *i = (struct inode*)((char*)ntfs_ino -
  19. ((char*)&(((struct inode*)NULL)->u.ntfs_i) -
  20. (char*)NULL));
  21. #ifdef DEBUG
  22. if ((char*)NTFS_LINO2NINO(i) != (char*)ntfs_ino)
  23. BUG();
  24. #endif
  25. return i;
  26. }
  27. #define IS_MAGIC(a,b) (*(int*)(a) == *(int*)(b))
  28. #define IS_MFT_RECORD(a) IS_MAGIC((a),"FILE")
  29. #define IS_INDEX_RECORD(a) IS_MAGIC((a),"INDX")
  30. /* 'NTFS' in little endian */
  31. #define NTFS_SUPER_MAGIC 0x5346544E
  32. #define NTFS_AFLAG_RO           1
  33. #define NTFS_AFLAG_HIDDEN       2
  34. #define NTFS_AFLAG_SYSTEM       4
  35. #define NTFS_AFLAG_ARCHIVE      20
  36. #define NTFS_AFLAG_COMPRESSED   0x800
  37. #define NTFS_AFLAG_DIR          0x10000000