This file is indexed.

/usr/include/freeipmi/locate/ipmi-locate.h is in libfreeipmi-dev 1.4.5-3.

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
/*
 * 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_LOCATE_H
#define IPMI_LOCATE_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>

#define IPMI_LOCATE_PATH_MAX                1024

#define IPMI_ADDRESS_SPACE_ID_SYSTEM_MEMORY 0x00
#define IPMI_ADDRESS_SPACE_ID_SYSTEM_IO     0x01
#define IPMI_ADDRESS_SPACE_ID_SMBUS         0x04

#define IPMI_LOCATE_ERR_SUCCESS              0
#define IPMI_LOCATE_ERR_NULL                 1
#define IPMI_LOCATE_ERR_INVALID              2
#define IPMI_LOCATE_ERR_PARAMETERS           3
#define IPMI_LOCATE_ERR_PERMISSION           4
#define IPMI_LOCATE_ERR_OUT_OF_MEMORY        5
#define IPMI_LOCATE_ERR_SYSTEM_ERROR         6
#define IPMI_LOCATE_ERR_INTERNAL_ERROR       7
#define IPMI_LOCATE_ERR_ERRNUMRANGE          8

typedef struct ipmi_locate_ctx *ipmi_locate_ctx_t;

enum ipmi_locate_driver_type
  {
    IPMI_LOCATE_DRIVER_NONE = 0,
    IPMI_LOCATE_DRIVER_DEFAULTS = 1,
    IPMI_LOCATE_DRIVER_SMBIOS = 2,
    IPMI_LOCATE_DRIVER_ACPI = 3,
    IPMI_LOCATE_DRIVER_PCI = 4,
    IPMI_LOCATE_DRIVER_DMIDECODE = 5
  };
typedef enum ipmi_locate_driver_type ipmi_locate_driver_type_t;

#define IPMI_LOCATE_DRIVER_VALID(__val)       \
  (((__val) == IPMI_LOCATE_DRIVER_NONE        \
    || (__val) == IPMI_LOCATE_DRIVER_DEFAULTS \
    || (__val) == IPMI_LOCATE_DRIVER_SMBIOS   \
    || (__val) == IPMI_LOCATE_DRIVER_ACPI     \
    || (__val) == IPMI_LOCATE_DRIVER_PCI      \
    || (__val) == IPMI_LOCATE_DRIVER_DMIDECODE) ? 1 : 0)

enum ipmi_interface_type
  {
    IPMI_INTERFACE_RESERVED = 0,
    IPMI_INTERFACE_KCS = 1,
    IPMI_INTERFACE_SMIC = 2,
    IPMI_INTERFACE_BT = 3,
    IPMI_INTERFACE_SSIF = 4,
  };
typedef enum ipmi_interface_type ipmi_interface_type_t;

#define IPMI_INTERFACE_TYPE_VALID(__val) \
  (((__val) == IPMI_INTERFACE_KCS        \
    || (__val) == IPMI_INTERFACE_SMIC    \
    || (__val) == IPMI_INTERFACE_BT      \
    || (__val) == IPMI_INTERFACE_SSIF) ? 1 : 0)

struct ipmi_locate_info
{
  uint8_t ipmi_version_major;
  uint8_t ipmi_version_minor;
  ipmi_locate_driver_type_t locate_driver_type;
  ipmi_interface_type_t interface_type;   /* KCS, SMIC, BT, SSIF */
  char driver_device[IPMI_LOCATE_PATH_MAX];
  uint8_t address_space_id;    /* Memory mapped, IO mapped, SMBus*/
  uint64_t driver_address;
  uint8_t register_spacing;   /* Register spacing in bytes */
};

ipmi_locate_ctx_t ipmi_locate_ctx_create (void);
void ipmi_locate_ctx_destroy (ipmi_locate_ctx_t ctx);
int ipmi_locate_ctx_errnum (ipmi_locate_ctx_t ctx);
char *ipmi_locate_ctx_strerror (int errnum);
char *ipmi_locate_ctx_errormsg (ipmi_locate_ctx_t ctx);

int ipmi_locate_get_device_info (ipmi_locate_ctx_t ctx,
                                 ipmi_interface_type_t type,
                                 struct ipmi_locate_info *info);

/* Identical to ipmi_locate_get_device_info() but will NOT return
 * defaults if no device info is found.
 */
int ipmi_locate_discover_device_info (ipmi_locate_ctx_t ctx,
                                      ipmi_interface_type_t type,
                                      struct ipmi_locate_info *info);

int ipmi_locate_smbios_get_device_info (ipmi_locate_ctx_t ctx,
                                        ipmi_interface_type_t type,
                                        struct ipmi_locate_info *info);

int ipmi_locate_pci_get_device_info (ipmi_locate_ctx_t ctx,
                                     ipmi_interface_type_t type,
                                     struct ipmi_locate_info *info);

int ipmi_locate_acpi_spmi_get_device_info (ipmi_locate_ctx_t ctx,
                                           ipmi_interface_type_t interface_type,
                                           struct ipmi_locate_info *info);

int ipmi_locate_defaults_get_device_info (ipmi_locate_ctx_t ctx,
                                          ipmi_interface_type_t type,
                                          struct ipmi_locate_info *info);

int ipmi_locate_dmidecode_get_device_info (ipmi_locate_ctx_t ctx,
                                           ipmi_interface_type_t type,
                                           struct ipmi_locate_info *info);

#ifdef __cplusplus
}
#endif

#endif /* IPMI_LOCATE_H */