This file is indexed.

/usr/include/freeipmi/spec/ipmi-entity-ids-spec.h is in libfreeipmi-dev 0.8.12-3ubuntu1.

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
/*
   Copyright (C) 2003-2010 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 2, 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, write to the Free Software Foundation,
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 */

#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 */
/* 0x37 - listed as air inlet, but not markup not consistent to errata, assume errata correct and markup has typo */
#define IPMI_ENTITY_ID_AIR_INLET                                 0x40
#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)

extern const char *const ipmi_entity_ids[];

/* 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