/
usr
/
include
/
linux
/
/usr/include/linux
mkdir
upload
Name
Size
Mode
Actions
byteorder/
-
0755
rm
can/
-
0755
rm
dvb/
-
0755
rm
hdlc/
-
0755
rm
isdn/
-
0755
rm
netfilter/
-
0755
rm
netfilter_arp/
-
0755
rm
netfilter_bridge/
-
0755
rm
netfilter_ipv4/
-
0755
rm
netfilter_ipv6/
-
0755
rm
nfsd/
-
0755
rm
raid/
-
0755
rm
spi/
-
0755
rm
sunrpc/
-
0755
rm
tc_act/
-
0755
rm
tc_ematch/
-
0755
rm
usb/
-
0755
rm
wimax/
-
0755
rm
a.out.h
7319
0644
edit
dl
rm
acct.h
3490
0644
edit
dl
rm
adb.h
1077
0644
edit
dl
rm
adfs_fs.h
856
0644
edit
dl
rm
affs_hardblocks.h
1481
0644
edit
dl
rm
agpgart.h
3925
0644
edit
dl
rm
aio_abi.h
3112
0644
edit
dl
rm
apm_bios.h
3544
0644
edit
dl
rm
arcfb.h
150
0644
edit
dl
rm
atalk.h
927
0644
edit
dl
rm
atm.h
7806
0644
edit
dl
rm
atmapi.h
889
0644
edit
dl
rm
atmarp.h
1233
0644
edit
dl
rm
atmbr2684.h
3208
0644
edit
dl
rm
atmclip.h
513
0644
edit
dl
rm
atmdev.h
7593
0644
edit
dl
rm
atmioc.h
1583
0644
edit
dl
rm
atmlec.h
2561
0644
edit
dl
rm
atmmpc.h
4163
0644
edit
dl
rm
atmppp.h
576
0644
edit
dl
rm
atmsap.h
4907
0644
edit
dl
rm
atmsvc.h
1790
0644
edit
dl
rm
atm_eni.h
585
0644
edit
dl
rm
atm_he.h
343
0644
edit
dl
rm
atm_idt77105.h
892
0644
edit
dl
rm
atm_nicstar.h
1215
0644
edit
dl
rm
atm_tcp.h
1537
0644
edit
dl
rm
atm_zatm.h
1606
0644
edit
dl
rm
audit.h
15880
0644
edit
dl
rm
auto_fs.h
2346
0644
edit
dl
rm
auto_fs4.h
4131
0644
edit
dl
rm
auxvec.h
1384
0644
edit
dl
rm
ax25.h
2752
0644
edit
dl
rm
b1lli.h
1654
0644
edit
dl
rm
baycom.h
820
0644
edit
dl
rm
bfs_fs.h
1830
0644
edit
dl
rm
binfmts.h
565
0644
edit
dl
rm
blkpg.h
1598
0644
edit
dl
rm
blktrace_api.h
4473
0644
edit
dl
rm
blk_types.h
7106
0644
edit
dl
rm
bpqether.h
952
0644
edit
dl
rm
bsg.h
2385
0644
edit
dl
rm
can.h
3326
0644
edit
dl
rm
capability.h
10589
0644
edit
dl
rm
capi.h
3057
0644
edit
dl
rm
cciss_ioctl.h
5824
0644
edit
dl
rm
cdk.h
12770
0644
edit
dl
rm
cdrom.h
28129
0644
edit
dl
rm
cgroupstats.h
2155
0644
edit
dl
rm
chio.h
5280
0644
edit
dl
rm
cm4000_cs.h
1718
0644
edit
dl
rm
cn_proc.h
2715
0644
edit
dl
rm
coda.h
17487
0644
edit
dl
rm
coda_psdev.h
679
0644
edit
dl
rm
coff.h
12413
0644
edit
dl
rm
comstats.h
3120
0644
edit
dl
rm
connector.h
2129
0644
edit
dl
rm
const.h
682
0644
edit
dl
rm
cramfs_fs.h
2930
0644
edit
dl
rm
cuda.h
769
0644
edit
dl
rm
cyclades.h
17045
0644
edit
dl
rm
cycx_cfm.h
2926
0644
edit
dl
rm
dcbnl.h
22120
0644
edit
dl
rm
dccp.h
5800
0644
edit
dl
rm
dlm.h
2529
0644
edit
dl
rm
dlmconstants.h
5013
0644
edit
dl
rm
dlm_device.h
2480
0644
edit
dl
rm
dlm_netlink.h
1064
0644
edit
dl
rm
dlm_plock.h
806
0644
edit
dl
rm
dm-ioctl.h
10668
0644
edit
dl
rm
dm-log-userspace.h
15173
0644
edit
dl
rm
dn.h
4527
0644
edit
dl
rm
dqblk_xfs.h
6952
0644
edit
dl
rm
edd.h
5544
0644
edit
dl
rm
efs_fs_sb.h
2164
0644
edit
dl
rm
elf-em.h
1834
0644
edit
dl
rm
elf-fdpic.h
2557
0644
edit
dl
rm
elf.h
11236
0644
edit
dl
rm
elfcore.h
2932
0644
edit
dl
rm
errno.h
79
0644
edit
dl
rm
errqueue.h
443
0644
edit
dl
rm
ethtool.h
34166
0644
edit
dl
rm
eventpoll.h
1353
0644
edit
dl
rm
ext2_fs.h
18802
0644
edit
dl
rm
fadvise.h
855
0644
edit
dl
rm
falloc.h
293
0644
edit
dl
rm
fb.h
16016
0644
edit
dl
rm
fcntl.h
1607
0644
edit
dl
rm
fd.h
11563
0644
edit
dl
rm
fdreg.h
5355
0644
edit
dl
rm
fib_rules.h
1459
0644
edit
dl
rm
fiemap.h
2548
0644
edit
dl
rm
filter.h
3534
0644
edit
dl
rm
firewire-cdev.h
25053
0644
edit
dl
rm
firewire-constants.h
1975
0644
edit
dl
rm
flat.h
2085
0644
edit
dl
rm
fs.h
18910
0644
edit
dl
rm
fuse.h
11441
0644
edit
dl
rm
futex.h
4909
0644
edit
dl
rm
gameport.h
816
0644
edit
dl
rm
generic_serial.h
895
0644
edit
dl
rm
genetlink.h
1683
0644
edit
dl
rm
gen_stats.h
1304
0644
edit
dl
rm
gfs2_ondisk.h
11814
0644
edit
dl
rm
gigaset_dev.h
981
0644
edit
dl
rm
hayesesp.h
230
0644
edit
dl
rm
hdlc.h
574
0644
edit
dl
rm
hdlcdrv.h
2845
0644
edit
dl
rm
hdreg.h
22640
0644
edit
dl
rm
hid.h
1824
0644
edit
dl
rm
hiddev.h
6265
0644
edit
dl
rm
hidraw.h
1217
0644
edit
dl
rm
hpet.h
686
0644
edit
dl
rm
hysdn_if.h
1319
0644
edit
dl
rm
i2c-dev.h
2403
0644
edit
dl
rm
i2c.h
6631
0644
edit
dl
rm
i2o-dev.h
11488
0644
edit
dl
rm
i8k.h
1438
0644
edit
dl
rm
icmp.h
2892
0644
edit
dl
rm
icmpv6.h
3831
0644
edit
dl
rm
if.h
8673
0644
edit
dl
rm
if_addr.h
1456
0644
edit
dl
rm
if_addrlabel.h
658
0644
edit
dl
rm
if_arcnet.h
3718
0644
edit
dl
rm
if_arp.h
6109
0644
edit
dl
rm
if_bonding.h
4076
0644
edit
dl
rm
if_bridge.h
3810
0644
edit
dl
rm
if_cablemodem.h
910
0644
edit
dl
rm
if_ec.h
901
0644
edit
dl
rm
if_eql.h
1284
0644
edit
dl
rm
if_ether.h
6539
0644
edit
dl
rm
if_fc.h
1674
0644
edit
dl
rm
if_fddi.h
3700
0644
edit
dl
rm
if_frad.h
2940
0644
edit
dl
rm
if_hippi.h
4175
0644
edit
dl
rm
if_infiniband.h
1145
0644
edit
dl
rm
if_link.h
12078
0644
edit
dl
rm
if_ltalk.h
125
0644
edit
dl
rm
if_packet.h
3530
0644
edit
dl
rm
if_phonet.h
337
0644
edit
dl
rm
if_plip.h
596
0644
edit
dl
rm
if_ppp.h
6938
0644
edit
dl
rm
if_pppol2tp.h
1983
0644
edit
dl
rm
if_pppox.h
3772
0644
edit
dl
rm
if_slip.h
809
0644
edit
dl
rm
if_strip.h
700
0644
edit
dl
rm
if_tr.h
3199
0644
edit
dl
rm
if_tun.h
3014
0644
edit
dl
rm
if_tunnel.h
1459
0644
edit
dl
rm
if_vlan.h
1708
0644
edit
dl
rm
igmp.h
2928
0644
edit
dl
rm
in.h
9203
0644
edit
dl
rm
in6.h
7495
0644
edit
dl
rm
inet_diag.h
2453
0644
edit
dl
rm
inotify.h
2838
0644
edit
dl
rm
input.h
27594
0644
edit
dl
rm
in_route.h
873
0644
edit
dl
rm
ioctl.h
100
0644
edit
dl
rm
ip.h
3555
0644
edit
dl
rm
ip6_tunnel.h
1073
0644
edit
dl
rm
ipc.h
2038
0644
edit
dl
rm
ipmi.h
16543
0644
edit
dl
rm
ipmi_msgdefs.h
4477
0644
edit
dl
rm
ipsec.h
884
0644
edit
dl
rm
ipv6.h
2892
0644
edit
dl
rm
ipv6_route.h
1614
0644
edit
dl
rm
ipx.h
1824
0644
edit
dl
rm
ip_vs.h
12583
0644
edit
dl
rm
irda.h
7651
0644
edit
dl
rm
irqnr.h
93
0644
edit
dl
rm
isdn.h
5687
0644
edit
dl
rm
isdnif.h
2306
0644
edit
dl
rm
isdn_divertif.h
1038
0644
edit
dl
rm
isdn_ppp.h
1859
0644
edit
dl
rm
iso_fs.h
6439
0644
edit
dl
rm
ivtv.h
2726
0644
edit
dl
rm
ivtvfb.h
1143
0644
edit
dl
rm
ixjuser.h
25116
0644
edit
dl
rm
jffs2.h
6949
0644
edit
dl
rm
joystick.h
3587
0644
edit
dl
rm
kd.h
6169
0644
edit
dl
rm
kdev_t.h
298
0644
edit
dl
rm
kernel.h
2457
0644
edit
dl
rm
kernelcapi.h
959
0644
edit
dl
rm
keyboard.h
12695
0644
edit
dl
rm
keyctl.h
2984
0644
edit
dl
rm
kvm.h
20681
0644
edit
dl
rm
kvm_para.h
564
0644
edit
dl
rm
libc-compat.h
3540
0644
edit
dl
rm
limits.h
874
0644
edit
dl
rm
llc.h
2835
0644
edit
dl
rm
loop.h
2189
0644
edit
dl
rm
lp.h
3794
0644
edit
dl
rm
magic.h
2292
0644
edit
dl
rm
major.h
4655
0644
edit
dl
rm
map_to_7segment.h
7187
0644
edit
dl
rm
matroxfb.h
1429
0644
edit
dl
rm
mempolicy.h
2052
0644
edit
dl
rm
meye.h
2544
0644
edit
dl
rm
mii.h
7950
0644
edit
dl
rm
minix_fs.h
2059
0644
edit
dl
rm
mman.h
230
0644
edit
dl
rm
mmtimer.h
2054
0644
edit
dl
rm
mqueue.h
2055
0644
edit
dl
rm
mroute.h
3813
0644
edit
dl
rm
mroute6.h
3991
0644
edit
dl
rm
msdos_fs.h
5839
0644
edit
dl
rm
msg.h
2539
0644
edit
dl
rm
mtio.h
8080
0644
edit
dl
rm
nbd.h
1958
0644
edit
dl
rm
ncp.h
5055
0644
edit
dl
rm
ncp_fs.h
3354
0644
edit
dl
rm
ncp_mount.h
2112
0644
edit
dl
rm
ncp_no.h
651
0644
edit
dl
rm
neighbour.h
4060
0644
edit
dl
rm
net.h
2021
0644
edit
dl
rm
netdevice.h
1771
0644
edit
dl
rm
netfilter.h
1546
0644
edit
dl
rm
netfilter_arp.h
380
0644
edit
dl
rm
netfilter_bridge.h
735
0644
edit
dl
rm
netfilter_decnet.h
1872
0644
edit
dl
rm
netfilter_ipv4.h
2032
0644
edit
dl
rm
netfilter_ipv6.h
2050
0644
edit
dl
rm
netlink.h
4969
0644
edit
dl
rm
netrom.h
719
0644
edit
dl
rm
net_dropmon.h
1091
0644
edit
dl
rm
net_tstamp.h
3468
0644
edit
dl
rm
nfs.h
4351
0644
edit
dl
rm
nfs2.h
1405
0644
edit
dl
rm
nfs3.h
2207
0644
edit
dl
rm
nfs4.h
5763
0644
edit
dl
rm
nfs4_mount.h
1869
0644
edit
dl
rm
nfsacl.h
577
0644
edit
dl
rm
nfs_fs.h
1552
0644
edit
dl
rm
nfs_idmap.h
2238
0644
edit
dl
rm
nfs_mount.h
3200
0644
edit
dl
rm
nl80211.h
192354
0644
edit
dl
rm
nubus.h
8366
0644
edit
dl
rm
nvram.h
470
0644
edit
dl
rm
n_r3964.h
2349
0644
edit
dl
rm
oom.h
456
0644
edit
dl
rm
param.h
78
0644
edit
dl
rm
parport.h
3644
0644
edit
dl
rm
patchkey.h
831
0644
edit
dl
rm
pci.h
1485
0644
edit
dl
rm
pci_regs.h
37975
0644
edit
dl
rm
perf_event.h
21849
0644
edit
dl
rm
personality.h
1998
0644
edit
dl
rm
pfkeyv2.h
10147
0644
edit
dl
rm
pg.h
2282
0644
edit
dl
rm
phantom.h
1590
0644
edit
dl
rm
phonet.h
4349
0644
edit
dl
rm
pktcdvd.h
2623
0644
edit
dl
rm
pkt_cls.h
9293
0644
edit
dl
rm
pkt_sched.h
10887
0644
edit
dl
rm
pmu.h
5187
0644
edit
dl
rm
poll.h
96
0644
edit
dl
rm
posix_types.h
1270
0644
edit
dl
rm
ppdev.h
3147
0644
edit
dl
rm
ppp-comp.h
6516
0644
edit
dl
rm
ppp_defs.h
6461
0644
edit
dl
rm
pps.h
3939
0644
edit
dl
rm
prctl.h
4972
0644
edit
dl
rm
ptp_clock.h
3496
0644
edit
dl
rm
ptrace.h
2290
0644
edit
dl
rm
qnx4_fs.h
2265
0644
edit
dl
rm
qnxtypes.h
561
0644
edit
dl
rm
quota.h
5723
0644
edit
dl
rm
radeonfb.h
297
0644
edit
dl
rm
random.h
1085
0644
edit
dl
rm
raw.h
302
0644
edit
dl
rm
reboot.h
1280
0644
edit
dl
rm
reiserfs_fs.h
907
0644
edit
dl
rm
reiserfs_xattr.h
465
0644
edit
dl
rm
resource.h
2087
0644
edit
dl
rm
rfkill.h
3384
0644
edit
dl
rm
romfs_fs.h
1127
0644
edit
dl
rm
rose.h
2100
0644
edit
dl
rm
route.h
2269
0644
edit
dl
rm
rtc.h
3696
0644
edit
dl
rm
rtnetlink.h
15335
0644
edit
dl
rm
scc.h
4543
0644
edit
dl
rm
sched.h
2096
0644
edit
dl
rm
screen_info.h
2202
0644
edit
dl
rm
sdla.h
2837
0644
edit
dl
rm
selinux_netlink.h
1132
0644
edit
dl
rm
sem.h
3666
0644
edit
dl
rm
serial.h
6780
0644
edit
dl
rm
serial_core.h
4024
0644
edit
dl
rm
serial_reg.h
13245
0644
edit
dl
rm
serio.h
1688
0644
edit
dl
rm
shm.h
2187
0644
edit
dl
rm
signal.h
129
0644
edit
dl
rm
signalfd.h
1096
0644
edit
dl
rm
smb.h
1209
0644
edit
dl
rm
smbno.h
14520
0644
edit
dl
rm
smb_fs.h
535
0644
edit
dl
rm
smb_mount.h
468
0644
edit
dl
rm
snmp.h
11157
0644
edit
dl
rm
socket.h
738
0644
edit
dl
rm
sockios.h
5967
0644
edit
dl
rm
som.h
5480
0644
edit
dl
rm
sonet.h
2207
0644
edit
dl
rm
sonypi.h
5136
0644
edit
dl
rm
sound.h
1099
0644
edit
dl
rm
soundcard.h
46019
0644
edit
dl
rm
stat.h
1005
0644
edit
dl
rm
stddef.h
633
0644
edit
dl
rm
string.h
175
0644
edit
dl
rm
suspend_ioctls.h
1368
0644
edit
dl
rm
swab.h
6292
0644
edit
dl
rm
synclink.h
8695
0644
edit
dl
rm
sysctl.h
26495
0644
edit
dl
rm
taskstats.h
6947
0644
edit
dl
rm
tcp.h
5205
0644
edit
dl
rm
telephony.h
9051
0644
edit
dl
rm
termios.h
544
0644
edit
dl
rm
time.h
1736
0644
edit
dl
rm
times.h
215
0644
edit
dl
rm
timex.h
6221
0644
edit
dl
rm
tiocl.h
1666
0644
edit
dl
rm
tipc.h
5910
0644
edit
dl
rm
tipc_config.h
15370
0644
edit
dl
rm
toshiba.h
1284
0644
edit
dl
rm
tty.h
128
0644
edit
dl
rm
types.h
991
0644
edit
dl
rm
udf_fs_i.h
634
0644
edit
dl
rm
udp.h
1166
0644
edit
dl
rm
uinput.h
5125
0644
edit
dl
rm
uio.h
648
0644
edit
dl
rm
ultrasound.h
4499
0644
edit
dl
rm
un.h
203
0644
edit
dl
rm
unistd.h
157
0644
edit
dl
rm
usbdevice_fs.h
5340
0644
edit
dl
rm
utime.h
152
0644
edit
dl
rm
utsname.h
606
0644
edit
dl
rm
uuid.h
1769
0644
edit
dl
rm
version.h
281
0644
edit
dl
rm
veth.h
474
0644
edit
dl
rm
vhost.h
4566
0644
edit
dl
rm
videodev.h
10513
0644
edit
dl
rm
videodev2.h
66071
0644
edit
dl
rm
videotext.h
4242
0644
edit
dl
rm
virtio_9p.h
351
0644
edit
dl
rm
virtio_balloon.h
1255
0644
edit
dl
rm
virtio_blk.h
2981
0644
edit
dl
rm
virtio_config.h
1284
0644
edit
dl
rm
virtio_console.h
1406
0644
edit
dl
rm
virtio_ids.h
545
0644
edit
dl
rm
virtio_net.h
7026
0644
edit
dl
rm
virtio_pci.h
2263
0644
edit
dl
rm
virtio_ring.h
4489
0644
edit
dl
rm
virtio_rng.h
265
0644
edit
dl
rm
vt.h
3070
0644
edit
dl
rm
wait.h
580
0644
edit
dl
rm
wanrouter.h
17836
0644
edit
dl
rm
watchdog.h
2400
0644
edit
dl
rm
wimax.h
8370
0644
edit
dl
rm
wireless.h
42653
0644
edit
dl
rm
x25.h
3418
0644
edit
dl
rm
xattr.h
646
0644
edit
dl
rm
xfrm.h
10558
0644
edit
dl
rm
Edit:
/usr/include/linux/ipmi.h
(16543B)
/* * ipmi.h * * MontaVista IPMI interface * * Author: MontaVista Software, Inc. * Corey Minyard <minyard@mvista.com> * source@mvista.com * * Copyright 2002 MontaVista Software Inc. * * 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 of the License, or (at your * option) any later version. * * * 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. * * 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., * 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __LINUX_IPMI_H #define __LINUX_IPMI_H #include <linux/ipmi_msgdefs.h> /* * This file describes an interface to an IPMI driver. You have to * have a fairly good understanding of IPMI to use this, so go read * the specs first before actually trying to do anything. * * With that said, this driver provides a multi-user interface to the * IPMI driver, and it allows multiple IPMI physical interfaces below * the driver. The physical interfaces bind as a lower layer on the * driver. They appear as interfaces to the application using this * interface. * * Multi-user means that multiple applications may use the driver, * send commands, receive responses, etc. The driver keeps track of * commands the user sends and tracks the responses. The responses * will go back to the application that send the command. If the * response doesn't come back in time, the driver will return a * timeout error response to the application. Asynchronous events * from the BMC event queue will go to all users bound to the driver. * The incoming event queue in the BMC will automatically be flushed * if it becomes full and it is queried once a second to see if * anything is in it. Incoming commands to the driver will get * delivered as commands. * * This driver provides two main interfaces: one for in-kernel * applications and another for userland applications. The * capabilities are basically the same for both interface, although * the interfaces are somewhat different. The stuff in the * #ifdef __KERNEL__ below is the in-kernel interface. The userland * interface is defined later in the file. */ /* * This is an overlay for all the address types, so it's easy to * determine the actual address type. This is kind of like addresses * work for sockets. */ #define IPMI_MAX_ADDR_SIZE 32 struct ipmi_addr { /* Try to take these from the "Channel Medium Type" table in section 6.5 of the IPMI 1.5 manual. */ int addr_type; short channel; char data[IPMI_MAX_ADDR_SIZE]; }; /* * When the address is not used, the type will be set to this value. * The channel is the BMC's channel number for the channel (usually * 0), or IPMC_BMC_CHANNEL if communicating directly with the BMC. */ #define IPMI_SYSTEM_INTERFACE_ADDR_TYPE 0x0c struct ipmi_system_interface_addr { int addr_type; short channel; unsigned char lun; }; /* An IPMB Address. */ #define IPMI_IPMB_ADDR_TYPE 0x01 /* Used for broadcast get device id as described in section 17.9 of the IPMI 1.5 manual. */ #define IPMI_IPMB_BROADCAST_ADDR_TYPE 0x41 struct ipmi_ipmb_addr { int addr_type; short channel; unsigned char slave_addr; unsigned char lun; }; /* * A LAN Address. This is an address to/from a LAN interface bridged * by the BMC, not an address actually out on the LAN. * * A concious decision was made here to deviate slightly from the IPMI * spec. We do not use rqSWID and rsSWID like it shows in the * message. Instead, we use remote_SWID and local_SWID. This means * that any message (a request or response) from another device will * always have exactly the same address. If you didn't do this, * requests and responses from the same device would have different * addresses, and that's not too cool. * * In this address, the remote_SWID is always the SWID the remote * message came from, or the SWID we are sending the message to. * local_SWID is always our SWID. Note that having our SWID in the * message is a little weird, but this is required. */ #define IPMI_LAN_ADDR_TYPE 0x04 struct ipmi_lan_addr { int addr_type; short channel; unsigned char privilege; unsigned char session_handle; unsigned char remote_SWID; unsigned char local_SWID; unsigned char lun; }; /* * Channel for talking directly with the BMC. When using this * channel, This is for the system interface address type only. FIXME * - is this right, or should we use -1? */ #define IPMI_BMC_CHANNEL 0xf #define IPMI_NUM_CHANNELS 0x10 /* * Used to signify an "all channel" bitmask. This is more than the * actual number of channels because this is used in userland and * will cover us if the number of channels is extended. */ #define IPMI_CHAN_ALL (~0) /* * A raw IPMI message without any addressing. This covers both * commands and responses. The completion code is always the first * byte of data in the response (as the spec shows the messages laid * out). */ struct ipmi_msg { unsigned char netfn; unsigned char cmd; unsigned short data_len; unsigned char *data; }; struct kernel_ipmi_msg { unsigned char netfn; unsigned char cmd; unsigned short data_len; unsigned char *data; }; /* * Various defines that are useful for IPMI applications. */ #define IPMI_INVALID_CMD_COMPLETION_CODE 0xC1 #define IPMI_TIMEOUT_COMPLETION_CODE 0xC3 #define IPMI_UNKNOWN_ERR_COMPLETION_CODE 0xff /* * Receive types for messages coming from the receive interface. This * is used for the receive in-kernel interface and in the receive * IOCTL. * * The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but * it allows you to get the message results when you send a response * message. */ #define IPMI_RESPONSE_RECV_TYPE 1 /* A response to a command */ #define IPMI_ASYNC_EVENT_RECV_TYPE 2 /* Something from the event queue */ #define IPMI_CMD_RECV_TYPE 3 /* A command from somewhere else */ #define IPMI_RESPONSE_RESPONSE_TYPE 4 /* The response for a sent response, giving any error status for sending the response. When you send a response message, this will be returned. */ #define IPMI_OEM_RECV_TYPE 5 /* The response for OEM Channels */ /* Note that async events and received commands do not have a completion code as the first byte of the incoming data, unlike a response. */ /* * Modes for ipmi_set_maint_mode() and the userland IOCTL. The AUTO * setting is the default and means it will be set on certain * commands. Hard setting it on and off will override automatic * operation. */ #define IPMI_MAINTENANCE_MODE_AUTO 0 #define IPMI_MAINTENANCE_MODE_OFF 1 #define IPMI_MAINTENANCE_MODE_ON 2 /* * The userland interface */ /* * The userland interface for the IPMI driver is a standard character * device, with each instance of an interface registered as a minor * number under the major character device. * * The read and write calls do not work, to get messages in and out * requires ioctl calls because of the complexity of the data. select * and poll do work, so you can wait for input using the file * descriptor, you just can use read to get it. * * In general, you send a command down to the interface and receive * responses back. You can use the msgid value to correlate commands * and responses, the driver will take care of figuring out which * incoming messages are for which command and find the proper msgid * value to report. You will only receive reponses for commands you * send. Asynchronous events, however, go to all open users, so you * must be ready to handle these (or ignore them if you don't care). * * The address type depends upon the channel type. When talking * directly to the BMC (IPMC_BMC_CHANNEL), the address is ignored * (IPMI_UNUSED_ADDR_TYPE). When talking to an IPMB channel, you must * supply a valid IPMB address with the addr_type set properly. * * When talking to normal channels, the driver takes care of the * details of formatting and sending messages on that channel. You do * not, for instance, have to format a send command, you just send * whatever command you want to the channel, the driver will create * the send command, automatically issue receive command and get even * commands, and pass those up to the proper user. */ /* The magic IOCTL value for this interface. */ #define IPMI_IOC_MAGIC 'i' /* Messages sent to the interface are this format. */ struct ipmi_req { unsigned char *addr; /* Address to send the message to. */ unsigned int addr_len; long msgid; /* The sequence number for the message. This exact value will be reported back in the response to this request if it is a command. If it is a response, this will be used as the sequence value for the response. */ struct ipmi_msg msg; }; /* * Send a message to the interfaces. error values are: * - EFAULT - an address supplied was invalid. * - EINVAL - The address supplied was not valid, or the command * was not allowed. * - EMSGSIZE - The message to was too large. * - ENOMEM - Buffers could not be allocated for the command. */ #define IPMICTL_SEND_COMMAND _IOR(IPMI_IOC_MAGIC, 13, \ struct ipmi_req) /* Messages sent to the interface with timing parameters are this format. */ struct ipmi_req_settime { struct ipmi_req req; /* See ipmi_request_settime() above for details on these values. */ int retries; unsigned int retry_time_ms; }; /* * Send a message to the interfaces with timing parameters. error values * are: * - EFAULT - an address supplied was invalid. * - EINVAL - The address supplied was not valid, or the command * was not allowed. * - EMSGSIZE - The message to was too large. * - ENOMEM - Buffers could not be allocated for the command. */ #define IPMICTL_SEND_COMMAND_SETTIME _IOR(IPMI_IOC_MAGIC, 21, \ struct ipmi_req_settime) /* Messages received from the interface are this format. */ struct ipmi_recv { int recv_type; /* Is this a command, response or an asyncronous event. */ unsigned char *addr; /* Address the message was from is put here. The caller must supply the memory. */ unsigned int addr_len; /* The size of the address buffer. The caller supplies the full buffer length, this value is updated to the actual message length when the message is received. */ long msgid; /* The sequence number specified in the request if this is a response. If this is a command, this will be the sequence number from the command. */ struct ipmi_msg msg; /* The data field must point to a buffer. The data_size field must be set to the size of the message buffer. The caller supplies the full buffer length, this value is updated to the actual message length when the message is received. */ }; /* * Receive a message. error values: * - EAGAIN - no messages in the queue. * - EFAULT - an address supplied was invalid. * - EINVAL - The address supplied was not valid. * - EMSGSIZE - The message to was too large to fit into the message buffer, * the message will be left in the buffer. */ #define IPMICTL_RECEIVE_MSG _IOWR(IPMI_IOC_MAGIC, 12, \ struct ipmi_recv) /* * Like RECEIVE_MSG, but if the message won't fit in the buffer, it * will truncate the contents instead of leaving the data in the * buffer. */ #define IPMICTL_RECEIVE_MSG_TRUNC _IOWR(IPMI_IOC_MAGIC, 11, \ struct ipmi_recv) /* Register to get commands from other entities on this interface. */ struct ipmi_cmdspec { unsigned char netfn; unsigned char cmd; }; /* * Register to receive a specific command. error values: * - EFAULT - an address supplied was invalid. * - EBUSY - The netfn/cmd supplied was already in use. * - ENOMEM - could not allocate memory for the entry. */ #define IPMICTL_REGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 14, \ struct ipmi_cmdspec) /* * Unregister a regsitered command. error values: * - EFAULT - an address supplied was invalid. * - ENOENT - The netfn/cmd was not found registered for this user. */ #define IPMICTL_UNREGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 15, \ struct ipmi_cmdspec) /* * Register to get commands from other entities on specific channels. * This way, you can only listen on specific channels, or have messages * from some channels go to one place and other channels to someplace * else. The chans field is a bitmask, (1 << channel) for each channel. * It may be IPMI_CHAN_ALL for all channels. */ struct ipmi_cmdspec_chans { unsigned int netfn; unsigned int cmd; unsigned int chans; }; /* * Register to receive a specific command on specific channels. error values: * - EFAULT - an address supplied was invalid. * - EBUSY - One of the netfn/cmd/chans supplied was already in use. * - ENOMEM - could not allocate memory for the entry. */ #define IPMICTL_REGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 28, \ struct ipmi_cmdspec_chans) /* * Unregister some netfn/cmd/chans. error values: * - EFAULT - an address supplied was invalid. * - ENOENT - None of the netfn/cmd/chans were found registered for this user. */ #define IPMICTL_UNREGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 29, \ struct ipmi_cmdspec_chans) /* * Set whether this interface receives events. Note that the first * user registered for events will get all pending events for the * interface. error values: * - EFAULT - an address supplied was invalid. */ #define IPMICTL_SET_GETS_EVENTS_CMD _IOR(IPMI_IOC_MAGIC, 16, int) /* * Set and get the slave address and LUN that we will use for our * source messages. Note that this affects the interface, not just * this user, so it will affect all users of this interface. This is * so some initialization code can come in and do the OEM-specific * things it takes to determine your address (if not the BMC) and set * it for everyone else. You should probably leave the LUN alone. */ struct ipmi_channel_lun_address_set { unsigned short channel; unsigned char value; }; #define IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD \ _IOR(IPMI_IOC_MAGIC, 24, struct ipmi_channel_lun_address_set) #define IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD \ _IOR(IPMI_IOC_MAGIC, 25, struct ipmi_channel_lun_address_set) #define IPMICTL_SET_MY_CHANNEL_LUN_CMD \ _IOR(IPMI_IOC_MAGIC, 26, struct ipmi_channel_lun_address_set) #define IPMICTL_GET_MY_CHANNEL_LUN_CMD \ _IOR(IPMI_IOC_MAGIC, 27, struct ipmi_channel_lun_address_set) /* Legacy interfaces, these only set IPMB 0. */ #define IPMICTL_SET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 17, unsigned int) #define IPMICTL_GET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 18, unsigned int) #define IPMICTL_SET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 19, unsigned int) #define IPMICTL_GET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 20, unsigned int) /* * Get/set the default timing values for an interface. You shouldn't * generally mess with these. */ struct ipmi_timing_parms { int retries; unsigned int retry_time_ms; }; #define IPMICTL_SET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 22, \ struct ipmi_timing_parms) #define IPMICTL_GET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 23, \ struct ipmi_timing_parms) /* * Set the maintenance mode. See ipmi_set_maintenance_mode() above * for a description of what this does. */ #define IPMICTL_GET_MAINTENANCE_MODE_CMD _IOR(IPMI_IOC_MAGIC, 30, int) #define IPMICTL_SET_MAINTENANCE_MODE_CMD _IOW(IPMI_IOC_MAGIC, 31, int) #endif /* __LINUX_IPMI_H */
Save
cmd:
run