Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/ExeBy/smexe_ro.../usr/include/linux
File: ipmi.h
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
[0] Fix | Delete
/*
[1] Fix | Delete
* ipmi.h
[2] Fix | Delete
*
[3] Fix | Delete
* MontaVista IPMI interface
[4] Fix | Delete
*
[5] Fix | Delete
* Author: MontaVista Software, Inc.
[6] Fix | Delete
* Corey Minyard <minyard@mvista.com>
[7] Fix | Delete
* source@mvista.com
[8] Fix | Delete
*
[9] Fix | Delete
* Copyright 2002 MontaVista Software Inc.
[10] Fix | Delete
*
[11] Fix | Delete
*/
[12] Fix | Delete
[13] Fix | Delete
#ifndef __LINUX_IPMI_H
[14] Fix | Delete
#define __LINUX_IPMI_H
[15] Fix | Delete
[16] Fix | Delete
#include <linux/ipmi_msgdefs.h>
[17] Fix | Delete
[18] Fix | Delete
[19] Fix | Delete
/*
[20] Fix | Delete
* This file describes an interface to an IPMI driver. You have to
[21] Fix | Delete
* have a fairly good understanding of IPMI to use this, so go read
[22] Fix | Delete
* the specs first before actually trying to do anything.
[23] Fix | Delete
*
[24] Fix | Delete
* With that said, this driver provides a multi-user interface to the
[25] Fix | Delete
* IPMI driver, and it allows multiple IPMI physical interfaces below
[26] Fix | Delete
* the driver. The physical interfaces bind as a lower layer on the
[27] Fix | Delete
* driver. They appear as interfaces to the application using this
[28] Fix | Delete
* interface.
[29] Fix | Delete
*
[30] Fix | Delete
* Multi-user means that multiple applications may use the driver,
[31] Fix | Delete
* send commands, receive responses, etc. The driver keeps track of
[32] Fix | Delete
* commands the user sends and tracks the responses. The responses
[33] Fix | Delete
* will go back to the application that send the command. If the
[34] Fix | Delete
* response doesn't come back in time, the driver will return a
[35] Fix | Delete
* timeout error response to the application. Asynchronous events
[36] Fix | Delete
* from the BMC event queue will go to all users bound to the driver.
[37] Fix | Delete
* The incoming event queue in the BMC will automatically be flushed
[38] Fix | Delete
* if it becomes full and it is queried once a second to see if
[39] Fix | Delete
* anything is in it. Incoming commands to the driver will get
[40] Fix | Delete
* delivered as commands.
[41] Fix | Delete
*/
[42] Fix | Delete
[43] Fix | Delete
/*
[44] Fix | Delete
* This is an overlay for all the address types, so it's easy to
[45] Fix | Delete
* determine the actual address type. This is kind of like addresses
[46] Fix | Delete
* work for sockets.
[47] Fix | Delete
*/
[48] Fix | Delete
#define IPMI_MAX_ADDR_SIZE 32
[49] Fix | Delete
struct ipmi_addr {
[50] Fix | Delete
/* Try to take these from the "Channel Medium Type" table
[51] Fix | Delete
in section 6.5 of the IPMI 1.5 manual. */
[52] Fix | Delete
int addr_type;
[53] Fix | Delete
short channel;
[54] Fix | Delete
char data[IPMI_MAX_ADDR_SIZE];
[55] Fix | Delete
};
[56] Fix | Delete
[57] Fix | Delete
/*
[58] Fix | Delete
* When the address is not used, the type will be set to this value.
[59] Fix | Delete
* The channel is the BMC's channel number for the channel (usually
[60] Fix | Delete
* 0), or IPMC_BMC_CHANNEL if communicating directly with the BMC.
[61] Fix | Delete
*/
[62] Fix | Delete
#define IPMI_SYSTEM_INTERFACE_ADDR_TYPE 0x0c
[63] Fix | Delete
struct ipmi_system_interface_addr {
[64] Fix | Delete
int addr_type;
[65] Fix | Delete
short channel;
[66] Fix | Delete
unsigned char lun;
[67] Fix | Delete
};
[68] Fix | Delete
[69] Fix | Delete
/* An IPMB Address. */
[70] Fix | Delete
#define IPMI_IPMB_ADDR_TYPE 0x01
[71] Fix | Delete
/* Used for broadcast get device id as described in section 17.9 of the
[72] Fix | Delete
IPMI 1.5 manual. */
[73] Fix | Delete
#define IPMI_IPMB_BROADCAST_ADDR_TYPE 0x41
[74] Fix | Delete
struct ipmi_ipmb_addr {
[75] Fix | Delete
int addr_type;
[76] Fix | Delete
short channel;
[77] Fix | Delete
unsigned char slave_addr;
[78] Fix | Delete
unsigned char lun;
[79] Fix | Delete
};
[80] Fix | Delete
[81] Fix | Delete
/*
[82] Fix | Delete
* Used for messages received directly from an IPMB that have not gone
[83] Fix | Delete
* through a MC. This is for systems that sit right on an IPMB so
[84] Fix | Delete
* they can receive commands and respond to them.
[85] Fix | Delete
*/
[86] Fix | Delete
#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81
[87] Fix | Delete
struct ipmi_ipmb_direct_addr {
[88] Fix | Delete
int addr_type;
[89] Fix | Delete
short channel;
[90] Fix | Delete
unsigned char slave_addr;
[91] Fix | Delete
unsigned char rs_lun;
[92] Fix | Delete
unsigned char rq_lun;
[93] Fix | Delete
};
[94] Fix | Delete
[95] Fix | Delete
/*
[96] Fix | Delete
* A LAN Address. This is an address to/from a LAN interface bridged
[97] Fix | Delete
* by the BMC, not an address actually out on the LAN.
[98] Fix | Delete
*
[99] Fix | Delete
* A conscious decision was made here to deviate slightly from the IPMI
[100] Fix | Delete
* spec. We do not use rqSWID and rsSWID like it shows in the
[101] Fix | Delete
* message. Instead, we use remote_SWID and local_SWID. This means
[102] Fix | Delete
* that any message (a request or response) from another device will
[103] Fix | Delete
* always have exactly the same address. If you didn't do this,
[104] Fix | Delete
* requests and responses from the same device would have different
[105] Fix | Delete
* addresses, and that's not too cool.
[106] Fix | Delete
*
[107] Fix | Delete
* In this address, the remote_SWID is always the SWID the remote
[108] Fix | Delete
* message came from, or the SWID we are sending the message to.
[109] Fix | Delete
* local_SWID is always our SWID. Note that having our SWID in the
[110] Fix | Delete
* message is a little weird, but this is required.
[111] Fix | Delete
*/
[112] Fix | Delete
#define IPMI_LAN_ADDR_TYPE 0x04
[113] Fix | Delete
struct ipmi_lan_addr {
[114] Fix | Delete
int addr_type;
[115] Fix | Delete
short channel;
[116] Fix | Delete
unsigned char privilege;
[117] Fix | Delete
unsigned char session_handle;
[118] Fix | Delete
unsigned char remote_SWID;
[119] Fix | Delete
unsigned char local_SWID;
[120] Fix | Delete
unsigned char lun;
[121] Fix | Delete
};
[122] Fix | Delete
[123] Fix | Delete
[124] Fix | Delete
/*
[125] Fix | Delete
* Channel for talking directly with the BMC. When using this
[126] Fix | Delete
* channel, This is for the system interface address type only. FIXME
[127] Fix | Delete
* - is this right, or should we use -1?
[128] Fix | Delete
*/
[129] Fix | Delete
#define IPMI_BMC_CHANNEL 0xf
[130] Fix | Delete
#define IPMI_NUM_CHANNELS 0x10
[131] Fix | Delete
[132] Fix | Delete
/*
[133] Fix | Delete
* Used to signify an "all channel" bitmask. This is more than the
[134] Fix | Delete
* actual number of channels because this is used in userland and
[135] Fix | Delete
* will cover us if the number of channels is extended.
[136] Fix | Delete
*/
[137] Fix | Delete
#define IPMI_CHAN_ALL (~0)
[138] Fix | Delete
[139] Fix | Delete
[140] Fix | Delete
/*
[141] Fix | Delete
* A raw IPMI message without any addressing. This covers both
[142] Fix | Delete
* commands and responses. The completion code is always the first
[143] Fix | Delete
* byte of data in the response (as the spec shows the messages laid
[144] Fix | Delete
* out).
[145] Fix | Delete
*/
[146] Fix | Delete
struct ipmi_msg {
[147] Fix | Delete
unsigned char netfn;
[148] Fix | Delete
unsigned char cmd;
[149] Fix | Delete
unsigned short data_len;
[150] Fix | Delete
unsigned char *data;
[151] Fix | Delete
};
[152] Fix | Delete
[153] Fix | Delete
struct kernel_ipmi_msg {
[154] Fix | Delete
unsigned char netfn;
[155] Fix | Delete
unsigned char cmd;
[156] Fix | Delete
unsigned short data_len;
[157] Fix | Delete
unsigned char *data;
[158] Fix | Delete
};
[159] Fix | Delete
[160] Fix | Delete
/*
[161] Fix | Delete
* Various defines that are useful for IPMI applications.
[162] Fix | Delete
*/
[163] Fix | Delete
#define IPMI_INVALID_CMD_COMPLETION_CODE 0xC1
[164] Fix | Delete
#define IPMI_TIMEOUT_COMPLETION_CODE 0xC3
[165] Fix | Delete
#define IPMI_UNKNOWN_ERR_COMPLETION_CODE 0xff
[166] Fix | Delete
[167] Fix | Delete
[168] Fix | Delete
/*
[169] Fix | Delete
* Receive types for messages coming from the receive interface. This
[170] Fix | Delete
* is used for the receive in-kernel interface and in the receive
[171] Fix | Delete
* IOCTL.
[172] Fix | Delete
*
[173] Fix | Delete
* The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but
[174] Fix | Delete
* it allows you to get the message results when you send a response
[175] Fix | Delete
* message.
[176] Fix | Delete
*/
[177] Fix | Delete
#define IPMI_RESPONSE_RECV_TYPE 1 /* A response to a command */
[178] Fix | Delete
#define IPMI_ASYNC_EVENT_RECV_TYPE 2 /* Something from the event queue */
[179] Fix | Delete
#define IPMI_CMD_RECV_TYPE 3 /* A command from somewhere else */
[180] Fix | Delete
#define IPMI_RESPONSE_RESPONSE_TYPE 4 /* The response for
[181] Fix | Delete
a sent response, giving any
[182] Fix | Delete
error status for sending the
[183] Fix | Delete
response. When you send a
[184] Fix | Delete
response message, this will
[185] Fix | Delete
be returned. */
[186] Fix | Delete
#define IPMI_OEM_RECV_TYPE 5 /* The response for OEM Channels */
[187] Fix | Delete
[188] Fix | Delete
/* Note that async events and received commands do not have a completion
[189] Fix | Delete
code as the first byte of the incoming data, unlike a response. */
[190] Fix | Delete
[191] Fix | Delete
[192] Fix | Delete
/*
[193] Fix | Delete
* Modes for ipmi_set_maint_mode() and the userland IOCTL. The AUTO
[194] Fix | Delete
* setting is the default and means it will be set on certain
[195] Fix | Delete
* commands. Hard setting it on and off will override automatic
[196] Fix | Delete
* operation.
[197] Fix | Delete
*/
[198] Fix | Delete
#define IPMI_MAINTENANCE_MODE_AUTO 0
[199] Fix | Delete
#define IPMI_MAINTENANCE_MODE_OFF 1
[200] Fix | Delete
#define IPMI_MAINTENANCE_MODE_ON 2
[201] Fix | Delete
[202] Fix | Delete
[203] Fix | Delete
[204] Fix | Delete
/*
[205] Fix | Delete
* The userland interface
[206] Fix | Delete
*/
[207] Fix | Delete
[208] Fix | Delete
/*
[209] Fix | Delete
* The userland interface for the IPMI driver is a standard character
[210] Fix | Delete
* device, with each instance of an interface registered as a minor
[211] Fix | Delete
* number under the major character device.
[212] Fix | Delete
*
[213] Fix | Delete
* The read and write calls do not work, to get messages in and out
[214] Fix | Delete
* requires ioctl calls because of the complexity of the data. select
[215] Fix | Delete
* and poll do work, so you can wait for input using the file
[216] Fix | Delete
* descriptor, you just can use read to get it.
[217] Fix | Delete
*
[218] Fix | Delete
* In general, you send a command down to the interface and receive
[219] Fix | Delete
* responses back. You can use the msgid value to correlate commands
[220] Fix | Delete
* and responses, the driver will take care of figuring out which
[221] Fix | Delete
* incoming messages are for which command and find the proper msgid
[222] Fix | Delete
* value to report. You will only receive reponses for commands you
[223] Fix | Delete
* send. Asynchronous events, however, go to all open users, so you
[224] Fix | Delete
* must be ready to handle these (or ignore them if you don't care).
[225] Fix | Delete
*
[226] Fix | Delete
* The address type depends upon the channel type. When talking
[227] Fix | Delete
* directly to the BMC (IPMC_BMC_CHANNEL), the address is ignored
[228] Fix | Delete
* (IPMI_UNUSED_ADDR_TYPE). When talking to an IPMB channel, you must
[229] Fix | Delete
* supply a valid IPMB address with the addr_type set properly.
[230] Fix | Delete
*
[231] Fix | Delete
* When talking to normal channels, the driver takes care of the
[232] Fix | Delete
* details of formatting and sending messages on that channel. You do
[233] Fix | Delete
* not, for instance, have to format a send command, you just send
[234] Fix | Delete
* whatever command you want to the channel, the driver will create
[235] Fix | Delete
* the send command, automatically issue receive command and get even
[236] Fix | Delete
* commands, and pass those up to the proper user.
[237] Fix | Delete
*/
[238] Fix | Delete
[239] Fix | Delete
[240] Fix | Delete
/* The magic IOCTL value for this interface. */
[241] Fix | Delete
#define IPMI_IOC_MAGIC 'i'
[242] Fix | Delete
[243] Fix | Delete
[244] Fix | Delete
/* Messages sent to the interface are this format. */
[245] Fix | Delete
struct ipmi_req {
[246] Fix | Delete
unsigned char *addr; /* Address to send the message to. */
[247] Fix | Delete
unsigned int addr_len;
[248] Fix | Delete
[249] Fix | Delete
long msgid; /* The sequence number for the message. This
[250] Fix | Delete
exact value will be reported back in the
[251] Fix | Delete
response to this request if it is a command.
[252] Fix | Delete
If it is a response, this will be used as
[253] Fix | Delete
the sequence value for the response. */
[254] Fix | Delete
[255] Fix | Delete
struct ipmi_msg msg;
[256] Fix | Delete
};
[257] Fix | Delete
/*
[258] Fix | Delete
* Send a message to the interfaces. error values are:
[259] Fix | Delete
* - EFAULT - an address supplied was invalid.
[260] Fix | Delete
* - EINVAL - The address supplied was not valid, or the command
[261] Fix | Delete
* was not allowed.
[262] Fix | Delete
* - EMSGSIZE - The message to was too large.
[263] Fix | Delete
* - ENOMEM - Buffers could not be allocated for the command.
[264] Fix | Delete
*/
[265] Fix | Delete
#define IPMICTL_SEND_COMMAND _IOR(IPMI_IOC_MAGIC, 13, \
[266] Fix | Delete
struct ipmi_req)
[267] Fix | Delete
[268] Fix | Delete
/* Messages sent to the interface with timing parameters are this
[269] Fix | Delete
format. */
[270] Fix | Delete
struct ipmi_req_settime {
[271] Fix | Delete
struct ipmi_req req;
[272] Fix | Delete
[273] Fix | Delete
/* See ipmi_request_settime() above for details on these
[274] Fix | Delete
values. */
[275] Fix | Delete
int retries;
[276] Fix | Delete
unsigned int retry_time_ms;
[277] Fix | Delete
};
[278] Fix | Delete
/*
[279] Fix | Delete
* Send a message to the interfaces with timing parameters. error values
[280] Fix | Delete
* are:
[281] Fix | Delete
* - EFAULT - an address supplied was invalid.
[282] Fix | Delete
* - EINVAL - The address supplied was not valid, or the command
[283] Fix | Delete
* was not allowed.
[284] Fix | Delete
* - EMSGSIZE - The message to was too large.
[285] Fix | Delete
* - ENOMEM - Buffers could not be allocated for the command.
[286] Fix | Delete
*/
[287] Fix | Delete
#define IPMICTL_SEND_COMMAND_SETTIME _IOR(IPMI_IOC_MAGIC, 21, \
[288] Fix | Delete
struct ipmi_req_settime)
[289] Fix | Delete
[290] Fix | Delete
/* Messages received from the interface are this format. */
[291] Fix | Delete
struct ipmi_recv {
[292] Fix | Delete
int recv_type; /* Is this a command, response or an
[293] Fix | Delete
asyncronous event. */
[294] Fix | Delete
[295] Fix | Delete
unsigned char *addr; /* Address the message was from is put
[296] Fix | Delete
here. The caller must supply the
[297] Fix | Delete
memory. */
[298] Fix | Delete
unsigned int addr_len; /* The size of the address buffer.
[299] Fix | Delete
The caller supplies the full buffer
[300] Fix | Delete
length, this value is updated to
[301] Fix | Delete
the actual message length when the
[302] Fix | Delete
message is received. */
[303] Fix | Delete
[304] Fix | Delete
long msgid; /* The sequence number specified in the request
[305] Fix | Delete
if this is a response. If this is a command,
[306] Fix | Delete
this will be the sequence number from the
[307] Fix | Delete
command. */
[308] Fix | Delete
[309] Fix | Delete
struct ipmi_msg msg; /* The data field must point to a buffer.
[310] Fix | Delete
The data_size field must be set to the
[311] Fix | Delete
size of the message buffer. The
[312] Fix | Delete
caller supplies the full buffer
[313] Fix | Delete
length, this value is updated to the
[314] Fix | Delete
actual message length when the message
[315] Fix | Delete
is received. */
[316] Fix | Delete
};
[317] Fix | Delete
[318] Fix | Delete
/*
[319] Fix | Delete
* Receive a message. error values:
[320] Fix | Delete
* - EAGAIN - no messages in the queue.
[321] Fix | Delete
* - EFAULT - an address supplied was invalid.
[322] Fix | Delete
* - EINVAL - The address supplied was not valid.
[323] Fix | Delete
* - EMSGSIZE - The message to was too large to fit into the message buffer,
[324] Fix | Delete
* the message will be left in the buffer. */
[325] Fix | Delete
#define IPMICTL_RECEIVE_MSG _IOWR(IPMI_IOC_MAGIC, 12, \
[326] Fix | Delete
struct ipmi_recv)
[327] Fix | Delete
[328] Fix | Delete
/*
[329] Fix | Delete
* Like RECEIVE_MSG, but if the message won't fit in the buffer, it
[330] Fix | Delete
* will truncate the contents instead of leaving the data in the
[331] Fix | Delete
* buffer.
[332] Fix | Delete
*/
[333] Fix | Delete
#define IPMICTL_RECEIVE_MSG_TRUNC _IOWR(IPMI_IOC_MAGIC, 11, \
[334] Fix | Delete
struct ipmi_recv)
[335] Fix | Delete
[336] Fix | Delete
/* Register to get commands from other entities on this interface. */
[337] Fix | Delete
struct ipmi_cmdspec {
[338] Fix | Delete
unsigned char netfn;
[339] Fix | Delete
unsigned char cmd;
[340] Fix | Delete
};
[341] Fix | Delete
[342] Fix | Delete
/*
[343] Fix | Delete
* Register to receive a specific command. error values:
[344] Fix | Delete
* - EFAULT - an address supplied was invalid.
[345] Fix | Delete
* - EBUSY - The netfn/cmd supplied was already in use.
[346] Fix | Delete
* - ENOMEM - could not allocate memory for the entry.
[347] Fix | Delete
*/
[348] Fix | Delete
#define IPMICTL_REGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 14, \
[349] Fix | Delete
struct ipmi_cmdspec)
[350] Fix | Delete
/*
[351] Fix | Delete
* Unregister a registered command. error values:
[352] Fix | Delete
* - EFAULT - an address supplied was invalid.
[353] Fix | Delete
* - ENOENT - The netfn/cmd was not found registered for this user.
[354] Fix | Delete
*/
[355] Fix | Delete
#define IPMICTL_UNREGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 15, \
[356] Fix | Delete
struct ipmi_cmdspec)
[357] Fix | Delete
[358] Fix | Delete
/*
[359] Fix | Delete
* Register to get commands from other entities on specific channels.
[360] Fix | Delete
* This way, you can only listen on specific channels, or have messages
[361] Fix | Delete
* from some channels go to one place and other channels to someplace
[362] Fix | Delete
* else. The chans field is a bitmask, (1 << channel) for each channel.
[363] Fix | Delete
* It may be IPMI_CHAN_ALL for all channels.
[364] Fix | Delete
*/
[365] Fix | Delete
struct ipmi_cmdspec_chans {
[366] Fix | Delete
unsigned int netfn;
[367] Fix | Delete
unsigned int cmd;
[368] Fix | Delete
unsigned int chans;
[369] Fix | Delete
};
[370] Fix | Delete
[371] Fix | Delete
/*
[372] Fix | Delete
* Register to receive a specific command on specific channels. error values:
[373] Fix | Delete
* - EFAULT - an address supplied was invalid.
[374] Fix | Delete
* - EBUSY - One of the netfn/cmd/chans supplied was already in use.
[375] Fix | Delete
* - ENOMEM - could not allocate memory for the entry.
[376] Fix | Delete
*/
[377] Fix | Delete
#define IPMICTL_REGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 28, \
[378] Fix | Delete
struct ipmi_cmdspec_chans)
[379] Fix | Delete
/*
[380] Fix | Delete
* Unregister some netfn/cmd/chans. error values:
[381] Fix | Delete
* - EFAULT - an address supplied was invalid.
[382] Fix | Delete
* - ENOENT - None of the netfn/cmd/chans were found registered for this user.
[383] Fix | Delete
*/
[384] Fix | Delete
#define IPMICTL_UNREGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 29, \
[385] Fix | Delete
struct ipmi_cmdspec_chans)
[386] Fix | Delete
[387] Fix | Delete
/*
[388] Fix | Delete
* Set whether this interface receives events. Note that the first
[389] Fix | Delete
* user registered for events will get all pending events for the
[390] Fix | Delete
* interface. error values:
[391] Fix | Delete
* - EFAULT - an address supplied was invalid.
[392] Fix | Delete
*/
[393] Fix | Delete
#define IPMICTL_SET_GETS_EVENTS_CMD _IOR(IPMI_IOC_MAGIC, 16, int)
[394] Fix | Delete
[395] Fix | Delete
/*
[396] Fix | Delete
* Set and get the slave address and LUN that we will use for our
[397] Fix | Delete
* source messages. Note that this affects the interface, not just
[398] Fix | Delete
* this user, so it will affect all users of this interface. This is
[399] Fix | Delete
* so some initialization code can come in and do the OEM-specific
[400] Fix | Delete
* things it takes to determine your address (if not the BMC) and set
[401] Fix | Delete
* it for everyone else. You should probably leave the LUN alone.
[402] Fix | Delete
*/
[403] Fix | Delete
struct ipmi_channel_lun_address_set {
[404] Fix | Delete
unsigned short channel;
[405] Fix | Delete
unsigned char value;
[406] Fix | Delete
};
[407] Fix | Delete
#define IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD \
[408] Fix | Delete
_IOR(IPMI_IOC_MAGIC, 24, struct ipmi_channel_lun_address_set)
[409] Fix | Delete
#define IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD \
[410] Fix | Delete
_IOR(IPMI_IOC_MAGIC, 25, struct ipmi_channel_lun_address_set)
[411] Fix | Delete
#define IPMICTL_SET_MY_CHANNEL_LUN_CMD \
[412] Fix | Delete
_IOR(IPMI_IOC_MAGIC, 26, struct ipmi_channel_lun_address_set)
[413] Fix | Delete
#define IPMICTL_GET_MY_CHANNEL_LUN_CMD \
[414] Fix | Delete
_IOR(IPMI_IOC_MAGIC, 27, struct ipmi_channel_lun_address_set)
[415] Fix | Delete
/* Legacy interfaces, these only set IPMB 0. */
[416] Fix | Delete
#define IPMICTL_SET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 17, unsigned int)
[417] Fix | Delete
#define IPMICTL_GET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 18, unsigned int)
[418] Fix | Delete
#define IPMICTL_SET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 19, unsigned int)
[419] Fix | Delete
#define IPMICTL_GET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 20, unsigned int)
[420] Fix | Delete
[421] Fix | Delete
/*
[422] Fix | Delete
* Get/set the default timing values for an interface. You shouldn't
[423] Fix | Delete
* generally mess with these.
[424] Fix | Delete
*/
[425] Fix | Delete
struct ipmi_timing_parms {
[426] Fix | Delete
int retries;
[427] Fix | Delete
unsigned int retry_time_ms;
[428] Fix | Delete
};
[429] Fix | Delete
#define IPMICTL_SET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 22, \
[430] Fix | Delete
struct ipmi_timing_parms)
[431] Fix | Delete
#define IPMICTL_GET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 23, \
[432] Fix | Delete
struct ipmi_timing_parms)
[433] Fix | Delete
[434] Fix | Delete
/*
[435] Fix | Delete
* Set the maintenance mode. See ipmi_set_maintenance_mode() above
[436] Fix | Delete
* for a description of what this does.
[437] Fix | Delete
*/
[438] Fix | Delete
#define IPMICTL_GET_MAINTENANCE_MODE_CMD _IOR(IPMI_IOC_MAGIC, 30, int)
[439] Fix | Delete
#define IPMICTL_SET_MAINTENANCE_MODE_CMD _IOW(IPMI_IOC_MAGIC, 31, int)
[440] Fix | Delete
[441] Fix | Delete
#endif /* __LINUX_IPMI_H */
[442] Fix | Delete
[443] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function