This file is indexed.

/usr/include/OpenIPMI/ipmi_err.h is in libopenipmi-dev 2.0.22-1.1.

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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/*
 * ipmi_err.h
 *
 * MontaVista IPMI interface, error values.
 *
 * Author: MontaVista Software, Inc.
 *         Corey Minyard <minyard@mvista.com>
 *         source@mvista.com
 *
 * Copyright 2002,2003,2004,2005 MontaVista Software Inc.
 *
 * This software is available to you under a choice of one of two
 * licenses.  You may choose to be licensed under the terms of the GNU
 * Lesser General Public License (GPL) Version 2 or the modified BSD
 * license below.  The following disclamer applies to both licenses:
 *
 *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
 *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * GNU Lesser General Public Licence
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this program; if not, write to the Free
 *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * Modified BSD Licence
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   1. Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above
 *      copyright notice, this list of conditions and the following
 *      disclaimer in the documentation and/or other materials provided
 *      with the distribution.
 *   3. The name of the author may not be used to endorse or promote
 *      products derived from this software without specific prior
 *      written permission.
 */

#ifndef _IPMI_ERR_H
#define _IPMI_ERR_H

/*
 * Error values
 *
 * Return errors or reported errors can be due to OS problems or to 
 * reported IPMI errors for messages this code handled.  These macros
 * differentiate these.  Note that this is NOT for handling the first
 * byte of a response (the completion code) on a message you handle, it
 * will simply be a byte of information.
 */
#define IPMI_OS_ERR_TOP		0x00000000
#define IPMI_IPMI_ERR_TOP	0x01000000
#define IPMI_RMCPP_ERR_TOP	0x02000000
#define IPMI_SOL_ERR_TOP	0x03000000
#define IPMI_IS_OS_ERR(E)	(((E) & 0xffffff00) == IPMI_OS_ERR_TOP)
#define IPMI_GET_OS_ERR(E)	((E) & 0xff)
#define IPMI_OS_ERR_VAL(v)	((v) | IPMI_OS_ERR_TOP)
#define IPMI_IS_IPMI_ERR(E)	(((E) & 0xffffff00) == IPMI_IPMI_ERR_TOP)
#define IPMI_GET_IPMI_ERR(E)	((E) & 0xff)
#define IPMI_IPMI_ERR_VAL(v)	((v) | IPMI_IPMI_ERR_TOP)
#define IPMI_IS_RMCPP_ERR(E)	(((E) & 0xffffff00) == IPMI_RMCPP_ERR_TOP)
#define IPMI_GET_RMCPP_ERR(E)	((E) & 0xff)
#define IPMI_RMCPP_ERR_VAL(v)	((v) | IPMI_RMCPP_ERR_TOP)
#define IPMI_IS_SOL_ERR(E)	(((E) & 0xffffff00) == IPMI_SOL_ERR_TOP)
#define IPMI_GET_SOL_ERR(E)	((E) & 0xff)
#define IPMI_SOL_ERR_VAL(v)	((v) | IPMI_SOL_ERR_TOP)

/* The following local system completion codes are defined to be
 * returned by OpenIPMI:
 *
 * EBADF
 * EINVAL
 * E2BIG
 * ENOMEM
 * ENOENT
 * ECANCELED
 * ENOSYS
 * EEXIST
 * EAGAIN
 * EPERM
 */

/*
 * Completion codes for IPMI.
 */
#define IPMI_NODE_BUSY_CC			0xC0
#define IPMI_INVALID_CMD_CC			0xC1
#define IPMI_COMMAND_INVALID_FOR_LUN_CC		0xC2
#define IPMI_TIMEOUT_CC				0xC3
#define IPMI_OUT_OF_SPACE_CC			0xC4
#define IPMI_INVALID_RESERVATION_CC		0xC5
#define IPMI_REQUEST_DATA_TRUNCATED_CC		0xC6
#define IPMI_REQUEST_DATA_LENGTH_INVALID_CC	0xC7
#define IPMI_REQUESTED_DATA_LENGTH_EXCEEDED_CC	0xC8
#define IPMI_PARAMETER_OUT_OF_RANGE_CC		0xC9
#define IPMI_CANNOT_RETURN_REQ_LENGTH_CC	0xCA
#define IPMI_NOT_PRESENT_CC			0xCB
#define IPMI_INVALID_DATA_FIELD_CC		0xCC
#define IPMI_COMMAND_ILLEGAL_FOR_SENSOR_CC	0xCD
#define IPMI_COULD_NOT_PROVIDE_RESPONSE_CC	0xCE
#define IPMI_CANNOT_EXEC_DUPLICATE_REQUEST_CC	0xCF
#define IPMI_REPOSITORY_IN_UPDATE_MODE_CC	0xD0
#define IPMI_DEVICE_IN_FIRMWARE_UPDATE_CC	0xD1
#define IPMI_BMC_INIT_IN_PROGRESS_CC		0xD2
#define IPMI_DESTINATION_UNAVAILABLE_CC		0xD3
#define IPMI_INSUFFICIENT_PRIVILEGE_CC		0xD4
#define IPMI_NOT_SUPPORTED_IN_PRESENT_STATE_CC	0xD5
#define IPMI_UNKNOWN_ERR_CC			0xff

/* Error codes from RMCP+ */
#define IPMI_RMCPP_INSUFFICIENT_RESOURCES_FOR_SESSION	0x01
#define IPMI_RMCPP_INVALID_SESSION_ID			0x02
#define IPMI_RMCPP_INVALID_PAYLOAD_TYPE			0x03
#define IPMI_RMCPP_INVALID_AUTHENTICATION_ALGORITHM	0x04
#define IPMI_RMCPP_INVALID_INTEGRITY_ALGORITHM		0x05
#define IPMI_RMCPP_NO_MATCHING_AUTHENTICATION_PAYLOAD	0x06
#define IPMI_RMCPP_NO_MATCHING_INTEGRITY_PAYLOAD	0x07
#define IPMI_RMCPP_INACTIVE_SESSION_ID			0x08
#define IPMI_RMCPP_INVALID_ROLE				0x09
#define IPMI_RMCPP_UNAUTHORIZED_ROLE_OR_PRIVILEGE	0x0a
#define IPMI_RMCPP_INSUFFICIENT_RESOURCES_FOR_ROLE	0x0b
#define IPMI_RMCPP_INVALID_NAME_LENGTH			0x0c
#define IPMI_RMCPP_UNAUTHORIZED_NAME			0x0d
#define IPMI_RMCPP_UNAUTHORIZED_GUID			0x0e
#define IPMI_RMCPP_INVALID_INTEGRITY_CHECK_VALUE	0x0f
#define IPMI_RMCPP_INVALID_CONFIDENTIALITY_ALGORITHM	0x10
#define IPMI_RMCPP_NO_CIPHER_SUITE_MATCHES		0x11
#define IPMI_RMCPP_ILLEGAL_PARAMETER			0x12

/**
 * Serial-over-LAN error codes
 */
#define IPMI_SOL_CHARACTER_TRANSFER_UNAVAILABLE	0x01 ///< The request was NACKed because Char Trans was Unavail
#define IPMI_SOL_DEACTIVATED			0x02 ///< The managed system deactivated SoL
#define IPMI_SOL_NOT_AVAILABLE			0x03 ///< SoL is not available due to managed system configuration.
#define IPMI_SOL_DISCONNECTED			0x04 ///< The connection has been forcibly disconnected.
#define IPMI_SOL_UNCONFIRMABLE_OPERATION	0x05 ///< The operation has been attempted, but no confirmation is possible.
#define IPMI_SOL_FLUSHED			0x06 ///< The packet containing the request was flushed before transmission.

#ifdef __cplusplus
extern "C" {
#endif

/* Convert a completion code into a string.  You must pass a buffer in
   (32 bytes is good) and the buffer length.  The string will be
   stored in that buffer and also returned. */
char *ipmi_get_cc_string(unsigned int cc,
			 char         *buffer,
			 unsigned int buf_len);
int ipmi_get_cc_string_len(unsigned int cc);

char *ipmi_get_error_string(unsigned int err,
			    char *buffer,
			    unsigned int buf_len);
int ipmi_get_error_string_len(unsigned int err);

#ifdef __cplusplus
}
#endif

#include <errno.h>

#endif /* _IPMI_ERR_H */