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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * efs_vh.h
  3.  *
  4.  * Copyright (c) 1999 Al Smith
  5.  *
  6.  * Portions derived from IRIX header files (c) 1985 MIPS Computer Systems, Inc.
  7.  */
  8. #ifndef __EFS_VH_H__
  9. #define __EFS_VH_H__
  10. #define VHMAGIC 0xbe5a941 /* volume header magic number */
  11. #define NPARTAB 16 /* 16 unix partitions */
  12. #define NVDIR 15 /* max of 15 directory entries */
  13. #define BFNAMESIZE 16 /* max 16 chars in boot file name */
  14. #define VDNAMESIZE 8
  15. struct volume_directory {
  16. char vd_name[VDNAMESIZE]; /* name */
  17. int vd_lbn; /* logical block number */
  18. int vd_nbytes; /* file length in bytes */
  19. };
  20. struct partition_table { /* one per logical partition */
  21. int pt_nblks; /* # of logical blks in partition */
  22. int pt_firstlbn; /* first lbn of partition */
  23. int pt_type; /* use of partition */
  24. };
  25. struct volume_header {
  26. int vh_magic; /* identifies volume header */
  27. short vh_rootpt; /* root partition number */
  28. short vh_swappt; /* swap partition number */
  29. char vh_bootfile[BFNAMESIZE]; /* name of file to boot */
  30. char pad[48]; /* device param space */
  31. struct volume_directory vh_vd[NVDIR]; /* other vol hdr contents */
  32. struct partition_table  vh_pt[NPARTAB]; /* device partition layout */
  33. int vh_csum; /* volume header checksum */
  34. int vh_fill; /* fill out to 512 bytes */
  35. };
  36. /* partition type sysv is used for EFS format CD-ROM partitions */
  37. #define SGI_SYSV 0x05
  38. #define SGI_EFS 0x07
  39. #define IS_EFS(x) (((x) == SGI_EFS) || ((x) == SGI_SYSV))
  40. struct pt_types {
  41. int pt_type;
  42. char *pt_name;
  43. } sgi_pt_types[] = {
  44. {0x00, "SGI vh"},
  45. {0x01, "SGI trkrepl"},
  46. {0x02, "SGI secrepl"},
  47. {0x03, "SGI raw"},
  48. {0x04, "SGI bsd"},
  49. {SGI_SYSV, "SGI sysv"},
  50. {0x06, "SGI vol"},
  51. {SGI_EFS, "SGI efs"},
  52. {0x08, "SGI lv"},
  53. {0x09, "SGI rlv"},
  54. {0x0A, "SGI xfs"},
  55. {0x0B, "SGI xfslog"},
  56. {0x0C, "SGI xlv"},
  57. {0x82, "Linux swap"},
  58. {0x83, "Linux native"},
  59. {0, NULL}
  60. };
  61. #endif /* __EFS_VH_H__ */