This file is indexed.

/usr/include/freeipmi/spec/ipmi-entity-ids-spec.h is in libfreeipmi-dev 1.4.11-1.1ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*
 * Copyright (C) 2003-2014 FreeIPMI Core Team
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

#ifndef IPMI_ENTITY_IDS_SPEC_H
#define IPMI_ENTITY_IDS_SPEC_H

#ifdef __cplusplus
extern "C" {
#endif

#define IPMI_ENTITY_ID_UNSPECIFIED                               0x00
#define IPMI_ENTITY_ID_OTHER                                     0x01
#define IPMI_ENTITY_ID_UNKNOWN                                   0x02
#define IPMI_ENTITY_ID_PROCESSOR                                 0x03
#define IPMI_ENTITY_ID_DISK_OR_DISK_BAY                          0x04
#define IPMI_ENTITY_ID_PERIPHERAL_BAY                            0x05 /* "peripheral bay" in spec */
#define IPMI_ENTITY_ID_SYSTEM_MANAGEMENT_MODULE                  0x06
#define IPMI_ENTITY_ID_SYSTEM_BOARD                              0x07
#define IPMI_ENTITY_ID_MEMORY_MODULE                             0x08
#define IPMI_ENTITY_ID_PROCESSOR_MODULE                          0x09
#define IPMI_ENTITY_ID_POWER_SUPPLY                              0x0A
#define IPMI_ENTITY_ID_ADD_IN_CARD                               0x0B
#define IPMI_ENTITY_ID_FRONT_PANEL_BOARD                         0x0C
#define IPMI_ENTITY_ID_BACK_PANEL_BOARD                          0x0D
#define IPMI_ENTITY_ID_POWER_SYSTEM_BOARD                        0x0E
#define IPMI_ENTITY_ID_DRIVE_BACKPLANE                           0x0F
#define IPMI_ENTITY_ID_SYSTEM_INTERNAL_EXPANSION_BOARD           0x10
#define IPMI_ENTITY_ID_OTHER_SYSTEM_BOARD                        0x11
#define IPMI_ENTITY_ID_PROCESSOR_BOARD                           0x12
#define IPMI_ENTITY_ID_POWER_UNIT_POWER_DOMAIN                   0x13
#define IPMI_ENTITY_ID_POWER_MODULE_DC_TO_DC_CONVERTER           0x14
#define IPMI_ENTITY_ID_POWER_MANAGEMENT_POWER_DISTRIBUTION_BOARD 0x15
#define IPMI_ENTITY_ID_CHASSI_BACK_PANEL_BOARD                   0x16
#define IPMI_ENTITY_ID_SYSTEM_CHASSIS                            0x17
#define IPMI_ENTITY_ID_SUB_CHASSIS                               0x18
#define IPMI_ENTITY_ID_OTHER_CHASSIS_BOARD                       0x19
#define IPMI_ENTITY_ID_DISK_DRIVE_BAY                            0x1A
#define IPMI_ENTITY_ID_PERIPHERAL_BAY2                           0x1B /* "Peripheral Bay" in spec */
#define IPMI_ENTITY_ID_DEVICE_BAY                                0x1C
#define IPMI_ENTITY_ID_FAN_COOLING_DEVICE                        0x1D
#define IPMI_ENTITY_ID_COOLING_UNIT_COOLING_DOMAIN               0x1E /* see errata */
#define IPMI_ENTITY_ID_CABLE_INTERCONNECT                        0x1F
#define IPMI_ENTITY_ID_MEMORY_DEVICE                             0x20
#define IPMI_ENTITY_ID_SYSTEM_MANAGEMENT_SOFTWARE                0x21
#define IPMI_ENTITY_ID_SYSTEM_FIRMWARE                           0x22 /* see errata */
#define IPMI_ENTITY_ID_OPERATING_SYSTEM                          0x23
#define IPMI_ENTITY_ID_SYSTEM_BUS                                0x24
#define IPMI_ENTITY_ID_GROUP                                     0x25
#define IPMI_ENTITY_ID_REMOTE_MANAGEMENT_COMMUNICATION_DEVICE    0x26
#define IPMI_ENTITY_ID_EXTERNAL_ENVIRONMENT                      0x27
#define IPMI_ENTITY_ID_BATTERY                                   0x28   
#define IPMI_ENTITY_ID_PROCESSING_BLADE                          0x29
#define IPMI_ENTITY_ID_CONNECTIVITY_SWTICH                       0x2A
#define IPMI_ENTITY_ID_PROCESSOR_MEMORY_MODULE                   0x2B
#define IPMI_ENTITY_ID_IO_MODULE                                 0x2C
#define IPMI_ENTITY_ID_PROCESSOR_IO_MODULE                       0x2D
#define IPMI_ENTITY_ID_MANAGEMENT_CONTROLLER_FIRMWARE            0x2E
#define IPMI_ENTITY_ID_IPMI_CHANNEL                              0x2F
#define IPMI_ENTITY_ID_PCI_BUS                                   0x30
#define IPMI_ENTITY_ID_PCI_EXPRESS_BUS                           0x31
#define IPMI_ENTITY_ID_SCSI_BUS                                  0x32
#define IPMI_ENTITY_ID_SATA_SAS_BUS                              0x33
#define IPMI_ENTITY_ID_PROCESSOR_FRONT_SIDE_BUS                  0x34
#define IPMI_ENTITY_ID_REAL_TIME_CLOCK                           0x35
/* 0x36 - reserved */
/* achu:
 *
 * Ugh .. 0x37 is listed as air inlet in markup 4 spec, but not in
 * errata 4.  Initial assumption was that it was a typo.  Later, DCMI
 * v1.5 spec lits 0x37 is inlet temperature.
 *
 * So the assumption is it's not a typo now, we'll list 0x37 as
 * AIR_INLET "B"
 */
#define IPMI_ENTITY_ID_AIR_INLET_B                               0x37
/* 0x38 - 0x3F - reserved */
#define IPMI_ENTITY_ID_AIR_INLET                                 0x40
#define IPMI_ENTITY_ID_AIR_INLET_A                               IPMI_ENTITY_ID_AIR_INLET
#define IPMI_ENTITY_ID_PROCESSOR_CPU                             0x41 /* considered same as 0x03, to match DCMI */
#define IPMI_ENTITY_ID_BASEBOARD_MAIN_SYSTEM_BOARD               0x42 /* considered same as 0x07, to match DCMI */
#define IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MIN                      0x90
#define IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MAX                      0xAF
#define IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MIN                    0xB0
#define IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MAX                    0xCF
#define IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MIN         0xD0
#define IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MAX         0xFF

/* To avoid gcc warnings, add +1 in comparison */
#define IPMI_ENTITY_ID_VALID(__entity_id)                  \
  ((((__entity_id + 1) >= (IPMI_ENTITY_ID_UNSPECIFIED + 1) \
     && (__entity_id) <= IPMI_ENTITY_ID_REAL_TIME_CLOCK)   \
    || ((__entity_id) >= IPMI_ENTITY_ID_AIR_INLET          \
        && (__entity_id) <= IPMI_ENTITY_ID_BASEBOARD_MAIN_SYSTEM_BOARD)) ? 1 : 0)

#define IPMI_ENTITY_ID_IS_CHASSIS_SPECIFIC(__entity_id) \
  (((__entity_id) >= IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MIN \
    && ((__entity_id) <= IPMI_ENTITY_ID_CHASSIS_SPECIFIC_MAX)) ? 1 : 0)

#define IPMI_ENTITY_ID_IS_BOARD_SET_SPECIFIC(__entity_id) \
  (((__entity_id) >= IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MIN \
    && ((__entity_id) <= IPMI_ENTITY_ID_BOARD_SET_SPECIFIC_MAX)) ? 1 : 0)

/* To avoid gcc warnings, subtract -1 in comparison */
#define IPMI_ENTITY_ID_IS_OEM_SYSTEM_INTEGRATOR_DEFINED(__entity_id) \
  (((__entity_id) >= IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MIN \
    && ((__entity_id - 1) <= (IPMI_ENTITY_ID_OEM_SYSTEM_INTEGRATOR_DEFINED_MAX - 1))) ? 1 : 0)

#define IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MIN 0x00
#define IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MAX 0x5F

#define IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MIN 0x60
#define IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MAX 0x7F

/* To avoid gcc warnings, add +1 in comparison */
#define IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE(__entity_instance) \
  (((__entity_instance + 1) >= (IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MIN + 1)) \
   && ((__entity_instance) >= IPMI_ENTITY_INSTANCE_SYSTEM_RELATIVE_MAX) ? 1 : 0)

#define IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE(__entity_instance) \
  (((__entity_instance) >= IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MIN)	\
   && ((__entity_instance) >= IPMI_ENTITY_INSTANCE_DEVICE_RELATIVE_MAX) ? 1 : 0)
  
extern const char *const ipmi_entity_ids[];
extern const char *const ipmi_entity_id_chassis_specific;
extern const char *const ipmi_entity_id_board_set_specific;
extern const char *const ipmi_entity_id_oem_system_integrator;

/* properly capitalize, for some entries if entity has an "or" or "/" remove it and pick one element, etc. */
extern const char *const ipmi_entity_ids_pretty[];

#ifdef __cplusplus
}
#endif

#endif /* IPMI_ENTITY_IDS_SPEC_H */