/usr/include/freeipmi/locate/ipmi-locate.h is in libfreeipmi-dev 1.4.11-1ubuntu1.
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 */
|