hardware.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _PARISC_HP_MACHINES_H_ 
  2. #define _PARISC_HP_MACHINES_H_ 
  3. struct hp_hardware {
  4. unsigned short hw_type:5; /* HPHW_xxx */
  5. unsigned short hversion;
  6. unsigned long  sversion:28;
  7. unsigned short opt;
  8. char *name; 
  9. };
  10. struct hp_device {
  11. unsigned short hw_type:5; /* HPHW_xxx */
  12. unsigned short hversion; /* HP-UX uses  hv_model:12 */
  13. unsigned int   sversion; /* HP-UX uses sv_model:20 sv_opt:8 */
  14. unsigned short opt;
  15. unsigned int hversion_rev;
  16. unsigned int sversion_rev;
  17. struct hp_hardware * reference;  /* This is a pointer to the
  18.                                             reference */
  19. unsigned int managed; /* this is if the device has a driver for it */
  20. void * hpa;
  21. #ifdef __LP64__
  22. /* parms for pdc_pat_cell_module() call */
  23. unsigned long  pcell_loc; /* Physical Cell location */
  24. unsigned long  mod_index; /* PAT specific - Misc Module info */
  25. /* generic info returned from pdc_pat_cell_module() */
  26. unsigned long  mod_info; /* PAT specific - Misc Module info */
  27. unsigned long  pmod_loc; /* physical Module location */
  28. unsigned long  mod_path; /* Module HW path */
  29. #endif
  30. };
  31. enum cpu_type {
  32. pcx = 0, /* pa7000 pa 1.0  */
  33. pcxs = 1, /* pa7000 pa 1.1a */
  34. pcxt = 2, /* pa7100 pa 1.1b */
  35. pcxt_ = 3, /* pa7200 (t') pa 1.1c */
  36. pcxl = 4, /* pa7100lc pa 1.1d */
  37. pcxl2 = 5, /* pa7300lc pa 1.1e */
  38. pcxu = 6, /* pa8000 pa 2.0  */
  39. pcxu_ = 7, /* pa8200 (u+) pa 2.0  */
  40. pcxw = 8, /* pa8500 pa 2.0  */
  41. pcxw_ = 9  /* pa8600 (w+) pa 2.0  */
  42. };
  43. extern char *cpu_name_version[][2]; /* mapping from enum cpu_type to strings */
  44. struct pa_iodc_driver {
  45. unsigned short hw_type:5; /* HPHW_xxx */
  46. unsigned short hversion;
  47. unsigned short hversion_rev;
  48. unsigned long  sversion:28;
  49. unsigned short sversion_rev;
  50. unsigned short opt;
  51. unsigned int check;  /* Components that are significant */
  52. char *name; 
  53. char *version; 
  54. int (* callback)(struct hp_device *d, struct pa_iodc_driver *dri);
  55. };
  56. #define DRIVER_CHECK_HWTYPE          1
  57. #define DRIVER_CHECK_HVERSION        2
  58. #define DRIVER_CHECK_SVERSION        4
  59. #define DRIVER_CHECK_OPT             8
  60. /* The following two are useless right now */
  61. #define DRIVER_CHECK_HVERSION_REV   16
  62. #define DRIVER_CHECK_SVERSION_REV   32
  63. #define DRIVER_CHECK_EVERYTHING     63
  64. #define HPHW_NPROC     0 
  65. #define HPHW_MEMORY    1       
  66. #define HPHW_B_DMA     2
  67. #define HPHW_OBSOLETE  3
  68. #define HPHW_A_DMA     4
  69. #define HPHW_A_DIRECT  5
  70. #define HPHW_OTHER     6
  71. #define HPHW_BCPORT    7
  72. #define HPHW_CIO       8
  73. #define HPHW_CONSOLE   9
  74. #define HPHW_FIO       10
  75. #define HPHW_BA        11
  76. #define HPHW_IOA       12
  77. #define HPHW_BRIDGE    13
  78. #define HPHW_FABRIC    14
  79. #define HPHW_FAULTY    31
  80. extern struct hp_hardware hp_hardware_list[];
  81. char *parisc_getHWtype( unsigned short hw_type );
  82. /* Attention: first hversion, then sversion...! */
  83. char *parisc_getHWdescription( unsigned short hw_type,
  84.                                 unsigned long hversion,  /* have to be long ! */
  85. unsigned long sversion );
  86. enum cpu_type parisc_get_cpu_type( unsigned long hversion );
  87. extern int register_driver(struct pa_iodc_driver *driver);
  88. #endif