UAPI: (Scripted) Disintegrate include/linux
Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Michael Kerrisk <mtk.manpages@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Dave Jones <davej@redhat.com>
This commit is contained in:
parent
08cce05c5a
commit
607ca46e97
578 changed files with 32659 additions and 30108 deletions
|
|
@ -22,389 +22,10 @@ header-y += wimax/
|
|||
|
||||
ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
|
||||
$(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),)
|
||||
header-y += a.out.h
|
||||
endif
|
||||
ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
|
||||
$(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm.h),)
|
||||
header-y += kvm.h
|
||||
endif
|
||||
ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
|
||||
$(srctree)/arch/$(SRCARCH)/include/uapi/asm/kvm_para.h),)
|
||||
header-y += kvm_para.h
|
||||
endif
|
||||
|
||||
header-y += acct.h
|
||||
header-y += adb.h
|
||||
header-y += adfs_fs.h
|
||||
header-y += affs_hardblocks.h
|
||||
header-y += agpgart.h
|
||||
header-y += aio_abi.h
|
||||
header-y += apm_bios.h
|
||||
header-y += arcfb.h
|
||||
header-y += atalk.h
|
||||
header-y += atm.h
|
||||
header-y += atm_eni.h
|
||||
header-y += atm_he.h
|
||||
header-y += atm_idt77105.h
|
||||
header-y += atm_nicstar.h
|
||||
header-y += atm_tcp.h
|
||||
header-y += atm_zatm.h
|
||||
header-y += atmapi.h
|
||||
header-y += atmarp.h
|
||||
header-y += atmbr2684.h
|
||||
header-y += atmclip.h
|
||||
header-y += atmdev.h
|
||||
header-y += atmioc.h
|
||||
header-y += atmlec.h
|
||||
header-y += atmmpc.h
|
||||
header-y += atmppp.h
|
||||
header-y += atmsap.h
|
||||
header-y += atmsvc.h
|
||||
header-y += audit.h
|
||||
header-y += auto_fs.h
|
||||
header-y += auto_fs4.h
|
||||
header-y += auxvec.h
|
||||
header-y += ax25.h
|
||||
header-y += b1lli.h
|
||||
header-y += baycom.h
|
||||
header-y += bfs_fs.h
|
||||
header-y += binfmts.h
|
||||
header-y += blkpg.h
|
||||
header-y += blktrace_api.h
|
||||
header-y += bpqether.h
|
||||
header-y += bsg.h
|
||||
header-y += can.h
|
||||
header-y += capability.h
|
||||
header-y += capi.h
|
||||
header-y += cciss_defs.h
|
||||
header-y += cciss_ioctl.h
|
||||
header-y += cdrom.h
|
||||
header-y += cgroupstats.h
|
||||
header-y += chio.h
|
||||
header-y += cm4000_cs.h
|
||||
header-y += cn_proc.h
|
||||
header-y += coda.h
|
||||
header-y += coda_psdev.h
|
||||
header-y += coff.h
|
||||
header-y += connector.h
|
||||
header-y += const.h
|
||||
header-y += cramfs_fs.h
|
||||
header-y += cuda.h
|
||||
header-y += cyclades.h
|
||||
header-y += cycx_cfm.h
|
||||
header-y += dcbnl.h
|
||||
header-y += dccp.h
|
||||
header-y += dlm.h
|
||||
header-y += dlm_device.h
|
||||
header-y += dlm_netlink.h
|
||||
header-y += dlm_plock.h
|
||||
header-y += dlmconstants.h
|
||||
header-y += dm-ioctl.h
|
||||
header-y += dm-log-userspace.h
|
||||
header-y += dn.h
|
||||
header-y += dqblk_xfs.h
|
||||
header-y += edd.h
|
||||
header-y += efs_fs_sb.h
|
||||
header-y += elf-em.h
|
||||
header-y += elf-fdpic.h
|
||||
header-y += elf.h
|
||||
header-y += elfcore.h
|
||||
header-y += errno.h
|
||||
header-y += errqueue.h
|
||||
header-y += ethtool.h
|
||||
header-y += eventpoll.h
|
||||
header-y += fadvise.h
|
||||
header-y += falloc.h
|
||||
header-y += fanotify.h
|
||||
header-y += fb.h
|
||||
header-y += fcntl.h
|
||||
header-y += fd.h
|
||||
header-y += fdreg.h
|
||||
header-y += fib_rules.h
|
||||
header-y += fiemap.h
|
||||
header-y += filter.h
|
||||
header-y += firewire-cdev.h
|
||||
header-y += firewire-constants.h
|
||||
header-y += flat.h
|
||||
header-y += fs.h
|
||||
header-y += fsl_hypervisor.h
|
||||
header-y += fuse.h
|
||||
header-y += futex.h
|
||||
header-y += gameport.h
|
||||
header-y += gen_stats.h
|
||||
header-y += genetlink.h
|
||||
header-y += gfs2_ondisk.h
|
||||
header-y += gigaset_dev.h
|
||||
header-y += hdlc.h
|
||||
header-y += hdlcdrv.h
|
||||
header-y += hdreg.h
|
||||
header-y += hid.h
|
||||
header-y += hiddev.h
|
||||
header-y += hidraw.h
|
||||
header-y += hpet.h
|
||||
header-y += hysdn_if.h
|
||||
header-y += i2c-dev.h
|
||||
header-y += i2c.h
|
||||
header-y += i2o-dev.h
|
||||
header-y += i8k.h
|
||||
header-y += icmp.h
|
||||
header-y += icmpv6.h
|
||||
header-y += if.h
|
||||
header-y += if_addr.h
|
||||
header-y += if_addrlabel.h
|
||||
header-y += if_alg.h
|
||||
header-y += if_arcnet.h
|
||||
header-y += if_arp.h
|
||||
header-y += if_bonding.h
|
||||
header-y += if_bridge.h
|
||||
header-y += if_cablemodem.h
|
||||
header-y += if_eql.h
|
||||
header-y += if_ether.h
|
||||
header-y += if_fc.h
|
||||
header-y += if_fddi.h
|
||||
header-y += if_frad.h
|
||||
header-y += if_hippi.h
|
||||
header-y += if_infiniband.h
|
||||
header-y += if_link.h
|
||||
header-y += if_ltalk.h
|
||||
header-y += if_packet.h
|
||||
header-y += if_phonet.h
|
||||
header-y += if_plip.h
|
||||
header-y += if_ppp.h
|
||||
header-y += if_pppol2tp.h
|
||||
header-y += if_pppox.h
|
||||
header-y += if_slip.h
|
||||
header-y += if_team.h
|
||||
header-y += if_tun.h
|
||||
header-y += if_tunnel.h
|
||||
header-y += if_vlan.h
|
||||
header-y += if_x25.h
|
||||
header-y += igmp.h
|
||||
header-y += in.h
|
||||
header-y += in6.h
|
||||
header-y += in_route.h
|
||||
header-y += sock_diag.h
|
||||
header-y += inet_diag.h
|
||||
header-y += unix_diag.h
|
||||
header-y += packet_diag.h
|
||||
header-y += inotify.h
|
||||
header-y += input.h
|
||||
header-y += ioctl.h
|
||||
header-y += ip.h
|
||||
header-y += ip6_tunnel.h
|
||||
header-y += ip_vs.h
|
||||
header-y += ipc.h
|
||||
header-y += ipmi.h
|
||||
header-y += ipmi_msgdefs.h
|
||||
header-y += ipsec.h
|
||||
header-y += ipv6.h
|
||||
header-y += ipv6_route.h
|
||||
header-y += ipx.h
|
||||
header-y += irda.h
|
||||
header-y += irqnr.h
|
||||
header-y += isdn.h
|
||||
header-y += isdn_divertif.h
|
||||
header-y += isdn_ppp.h
|
||||
header-y += isdnif.h
|
||||
header-y += iso_fs.h
|
||||
header-y += ivtv.h
|
||||
header-y += ivtvfb.h
|
||||
header-y += ixjuser.h
|
||||
header-y += jffs2.h
|
||||
header-y += joystick.h
|
||||
header-y += kd.h
|
||||
header-y += kdev_t.h
|
||||
header-y += kernel.h
|
||||
header-y += kernelcapi.h
|
||||
header-y += kernel-page-flags.h
|
||||
header-y += kexec.h
|
||||
header-y += keyboard.h
|
||||
header-y += keyctl.h
|
||||
header-y += l2tp.h
|
||||
header-y += limits.h
|
||||
header-y += llc.h
|
||||
header-y += loop.h
|
||||
header-y += lp.h
|
||||
header-y += magic.h
|
||||
header-y += major.h
|
||||
header-y += map_to_7segment.h
|
||||
header-y += matroxfb.h
|
||||
header-y += mdio.h
|
||||
header-y += media.h
|
||||
header-y += mei.h
|
||||
header-y += mempolicy.h
|
||||
header-y += meye.h
|
||||
header-y += mii.h
|
||||
header-y += minix_fs.h
|
||||
header-y += mman.h
|
||||
header-y += mmtimer.h
|
||||
header-y += mqueue.h
|
||||
header-y += mroute.h
|
||||
header-y += mroute6.h
|
||||
header-y += msdos_fs.h
|
||||
header-y += msg.h
|
||||
header-y += mtio.h
|
||||
header-y += n_r3964.h
|
||||
header-y += nbd.h
|
||||
header-y += ncp.h
|
||||
header-y += ncp_fs.h
|
||||
header-y += ncp_mount.h
|
||||
header-y += ncp_no.h
|
||||
header-y += neighbour.h
|
||||
header-y += net.h
|
||||
header-y += net_dropmon.h
|
||||
header-y += net_tstamp.h
|
||||
header-y += netdevice.h
|
||||
header-y += netfilter.h
|
||||
header-y += netfilter_arp.h
|
||||
header-y += netfilter_bridge.h
|
||||
header-y += netfilter_decnet.h
|
||||
header-y += netfilter_ipv4.h
|
||||
header-y += netfilter_ipv6.h
|
||||
header-y += netlink.h
|
||||
header-y += netrom.h
|
||||
header-y += nfc.h
|
||||
header-y += nfs.h
|
||||
header-y += nfs2.h
|
||||
header-y += nfs3.h
|
||||
header-y += nfs4.h
|
||||
header-y += nfs4_mount.h
|
||||
header-y += nfs_fs.h
|
||||
header-y += nfs_idmap.h
|
||||
header-y += nfs_mount.h
|
||||
header-y += nfsacl.h
|
||||
header-y += nl80211.h
|
||||
header-y += nubus.h
|
||||
header-y += nvram.h
|
||||
header-y += omap3isp.h
|
||||
header-y += omapfb.h
|
||||
header-y += oom.h
|
||||
header-y += param.h
|
||||
header-y += parport.h
|
||||
header-y += patchkey.h
|
||||
header-y += pci.h
|
||||
header-y += pci_regs.h
|
||||
header-y += perf_event.h
|
||||
header-y += personality.h
|
||||
header-y += pfkeyv2.h
|
||||
header-y += pg.h
|
||||
header-y += phantom.h
|
||||
header-y += phonet.h
|
||||
header-y += pkt_cls.h
|
||||
header-y += pkt_sched.h
|
||||
header-y += pktcdvd.h
|
||||
header-y += pmu.h
|
||||
header-y += poll.h
|
||||
header-y += posix_types.h
|
||||
header-y += ppdev.h
|
||||
header-y += ppp-comp.h
|
||||
header-y += ppp-ioctl.h
|
||||
header-y += ppp_defs.h
|
||||
header-y += pps.h
|
||||
header-y += prctl.h
|
||||
header-y += ptp_clock.h
|
||||
header-y += ptrace.h
|
||||
header-y += qnx4_fs.h
|
||||
header-y += qnxtypes.h
|
||||
header-y += quota.h
|
||||
header-y += radeonfb.h
|
||||
header-y += random.h
|
||||
header-y += raw.h
|
||||
header-y += rds.h
|
||||
header-y += reboot.h
|
||||
header-y += reiserfs_fs.h
|
||||
header-y += reiserfs_xattr.h
|
||||
header-y += resource.h
|
||||
header-y += rfkill.h
|
||||
header-y += romfs_fs.h
|
||||
header-y += rose.h
|
||||
header-y += route.h
|
||||
header-y += rtc.h
|
||||
header-y += rtnetlink.h
|
||||
header-y += scc.h
|
||||
header-y += sched.h
|
||||
header-y += screen_info.h
|
||||
header-y += sdla.h
|
||||
header-y += seccomp.h
|
||||
header-y += securebits.h
|
||||
header-y += selinux_netlink.h
|
||||
header-y += sem.h
|
||||
header-y += serial.h
|
||||
header-y += serial_core.h
|
||||
header-y += serial_reg.h
|
||||
header-y += serio.h
|
||||
header-y += shm.h
|
||||
header-y += signal.h
|
||||
header-y += signalfd.h
|
||||
header-y += snmp.h
|
||||
header-y += socket.h
|
||||
header-y += sockios.h
|
||||
header-y += som.h
|
||||
header-y += sonet.h
|
||||
header-y += sonypi.h
|
||||
header-y += sound.h
|
||||
header-y += soundcard.h
|
||||
header-y += stat.h
|
||||
header-y += stddef.h
|
||||
header-y += string.h
|
||||
header-y += suspend_ioctls.h
|
||||
header-y += swab.h
|
||||
header-y += synclink.h
|
||||
header-y += sysctl.h
|
||||
header-y += sysinfo.h
|
||||
header-y += taskstats.h
|
||||
header-y += tcp.h
|
||||
header-y += tcp_metrics.h
|
||||
header-y += telephony.h
|
||||
header-y += termios.h
|
||||
header-y += time.h
|
||||
header-y += times.h
|
||||
header-y += timex.h
|
||||
header-y += tiocl.h
|
||||
header-y += tipc.h
|
||||
header-y += tipc_config.h
|
||||
header-y += toshiba.h
|
||||
header-y += tty.h
|
||||
header-y += tty_flags.h
|
||||
header-y += types.h
|
||||
header-y += udf_fs_i.h
|
||||
header-y += udp.h
|
||||
header-y += uhid.h
|
||||
header-y += uinput.h
|
||||
header-y += uio.h
|
||||
header-y += ultrasound.h
|
||||
header-y += un.h
|
||||
header-y += unistd.h
|
||||
header-y += usbdevice_fs.h
|
||||
header-y += utime.h
|
||||
header-y += utsname.h
|
||||
header-y += uuid.h
|
||||
header-y += uvcvideo.h
|
||||
header-y += v4l2-common.h
|
||||
header-y += v4l2-controls.h
|
||||
header-y += v4l2-dv-timings.h
|
||||
header-y += v4l2-mediabus.h
|
||||
header-y += v4l2-subdev.h
|
||||
header-y += veth.h
|
||||
header-y += vfio.h
|
||||
header-y += vhost.h
|
||||
header-y += videodev2.h
|
||||
header-y += virtio_9p.h
|
||||
header-y += virtio_balloon.h
|
||||
header-y += virtio_blk.h
|
||||
header-y += virtio_config.h
|
||||
header-y += virtio_console.h
|
||||
header-y += virtio_ids.h
|
||||
header-y += virtio_net.h
|
||||
header-y += virtio_pci.h
|
||||
header-y += virtio_ring.h
|
||||
header-y += virtio_rng.h
|
||||
header-y += vt.h
|
||||
header-y += wait.h
|
||||
header-y += wanrouter.h
|
||||
header-y += watchdog.h
|
||||
header-y += wimax.h
|
||||
header-y += wireless.h
|
||||
header-y += x25.h
|
||||
header-y += xattr.h
|
||||
header-y += xfrm.h
|
||||
|
|
|
|||
|
|
@ -1,278 +1,84 @@
|
|||
#ifndef __A_OUT_GNU_H__
|
||||
#define __A_OUT_GNU_H__
|
||||
|
||||
#define __GNU_EXEC_MACROS__
|
||||
|
||||
#ifndef __STRUCT_EXEC_OVERRIDE__
|
||||
|
||||
#include <asm/a.out.h>
|
||||
|
||||
#endif /* __STRUCT_EXEC_OVERRIDE__ */
|
||||
#include <uapi/linux/a.out.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* these go in the N_MACHTYPE field */
|
||||
enum machine_type {
|
||||
#if defined (M_OLDSUN2)
|
||||
M__OLDSUN2 = M_OLDSUN2,
|
||||
#else
|
||||
M_OLDSUN2 = 0,
|
||||
#endif
|
||||
#if defined (M_68010)
|
||||
M__68010 = M_68010,
|
||||
#else
|
||||
M_68010 = 1,
|
||||
#endif
|
||||
#if defined (M_68020)
|
||||
M__68020 = M_68020,
|
||||
#else
|
||||
M_68020 = 2,
|
||||
#endif
|
||||
#if defined (M_SPARC)
|
||||
M__SPARC = M_SPARC,
|
||||
#else
|
||||
M_SPARC = 3,
|
||||
#endif
|
||||
/* skip a bunch so we don't run into any of sun's numbers */
|
||||
M_386 = 100,
|
||||
M_MIPS1 = 151, /* MIPS R3000/R3000 binary */
|
||||
M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
|
||||
};
|
||||
|
||||
#if !defined (N_MAGIC)
|
||||
#define N_MAGIC(exec) ((exec).a_info & 0xffff)
|
||||
#endif
|
||||
#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
|
||||
#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
|
||||
#define N_SET_INFO(exec, magic, type, flags) \
|
||||
((exec).a_info = ((magic) & 0xffff) \
|
||||
| (((int)(type) & 0xff) << 16) \
|
||||
| (((flags) & 0xff) << 24))
|
||||
#define N_SET_MAGIC(exec, magic) \
|
||||
((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))
|
||||
|
||||
#define N_SET_MACHTYPE(exec, machtype) \
|
||||
((exec).a_info = \
|
||||
((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
|
||||
|
||||
#define N_SET_FLAGS(exec, flags) \
|
||||
((exec).a_info = \
|
||||
((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
|
||||
|
||||
/* Code indicating object file or impure executable. */
|
||||
#define OMAGIC 0407
|
||||
/* Code indicating pure executable. */
|
||||
#define NMAGIC 0410
|
||||
/* Code indicating demand-paged executable. */
|
||||
#define ZMAGIC 0413
|
||||
/* This indicates a demand-paged executable with the header in the text.
|
||||
The first page is unmapped to help trap NULL pointer references */
|
||||
#define QMAGIC 0314
|
||||
|
||||
/* Code indicating core file. */
|
||||
#define CMAGIC 0421
|
||||
|
||||
#if !defined (N_BADMAG)
|
||||
#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
|
||||
&& N_MAGIC(x) != NMAGIC \
|
||||
&& N_MAGIC(x) != ZMAGIC \
|
||||
&& N_MAGIC(x) != QMAGIC)
|
||||
#endif
|
||||
|
||||
#define _N_HDROFF(x) (1024 - sizeof (struct exec))
|
||||
|
||||
#if !defined (N_TXTOFF)
|
||||
#define N_TXTOFF(x) \
|
||||
(N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \
|
||||
(N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
|
||||
#endif
|
||||
|
||||
#if !defined (N_DATOFF)
|
||||
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
|
||||
#endif
|
||||
|
||||
#if !defined (N_TRELOFF)
|
||||
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
|
||||
#endif
|
||||
|
||||
#if !defined (N_DRELOFF)
|
||||
#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
|
||||
#endif
|
||||
|
||||
#if !defined (N_SYMOFF)
|
||||
#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
|
||||
#endif
|
||||
|
||||
#if !defined (N_STROFF)
|
||||
#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
|
||||
#endif
|
||||
|
||||
/* Address of text segment in memory after it is loaded. */
|
||||
#if !defined (N_TXTADDR)
|
||||
#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0)
|
||||
#endif
|
||||
|
||||
/* Address of data segment in memory after it is loaded.
|
||||
Note that it is up to you to define SEGMENT_SIZE
|
||||
on machines not listed here. */
|
||||
#if defined(vax) || defined(hp300) || defined(pyr)
|
||||
#define SEGMENT_SIZE page_size
|
||||
#endif
|
||||
#ifdef sony
|
||||
#define SEGMENT_SIZE 0x2000
|
||||
#endif /* Sony. */
|
||||
#ifdef is68k
|
||||
#define SEGMENT_SIZE 0x20000
|
||||
#endif
|
||||
#if defined(m68k) && defined(PORTAR)
|
||||
#define PAGE_SIZE 0x400
|
||||
#define SEGMENT_SIZE PAGE_SIZE
|
||||
#endif
|
||||
|
||||
#ifdef linux
|
||||
#ifdef __KERNEL__
|
||||
#include <asm/page.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#if defined(__i386__) || defined(__mc68000__)
|
||||
#define SEGMENT_SIZE 1024
|
||||
#else
|
||||
#ifndef SEGMENT_SIZE
|
||||
#ifdef __KERNEL__
|
||||
#define SEGMENT_SIZE PAGE_SIZE
|
||||
#else
|
||||
#define SEGMENT_SIZE getpagesize()
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)
|
||||
|
||||
#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
|
||||
|
||||
#ifndef N_DATADDR
|
||||
#define N_DATADDR(x) \
|
||||
(N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \
|
||||
: (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
|
||||
#endif
|
||||
|
||||
/* Address of bss segment in memory after it is loaded. */
|
||||
#if !defined (N_BSSADDR)
|
||||
#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
|
||||
#endif
|
||||
|
||||
#if !defined (N_NLIST_DECLARED)
|
||||
struct nlist {
|
||||
union {
|
||||
char *n_name;
|
||||
struct nlist *n_next;
|
||||
long n_strx;
|
||||
} n_un;
|
||||
unsigned char n_type;
|
||||
char n_other;
|
||||
short n_desc;
|
||||
unsigned long n_value;
|
||||
};
|
||||
#endif /* no N_NLIST_DECLARED. */
|
||||
|
||||
#if !defined (N_UNDF)
|
||||
#define N_UNDF 0
|
||||
#endif
|
||||
#if !defined (N_ABS)
|
||||
#define N_ABS 2
|
||||
#endif
|
||||
#if !defined (N_TEXT)
|
||||
#define N_TEXT 4
|
||||
#endif
|
||||
#if !defined (N_DATA)
|
||||
#define N_DATA 6
|
||||
#endif
|
||||
#if !defined (N_BSS)
|
||||
#define N_BSS 8
|
||||
#endif
|
||||
#if !defined (N_FN)
|
||||
#define N_FN 15
|
||||
#endif
|
||||
|
||||
#if !defined (N_EXT)
|
||||
#define N_EXT 1
|
||||
#endif
|
||||
#if !defined (N_TYPE)
|
||||
#define N_TYPE 036
|
||||
#endif
|
||||
#if !defined (N_STAB)
|
||||
#define N_STAB 0340
|
||||
#endif
|
||||
|
||||
/* The following type indicates the definition of a symbol as being
|
||||
an indirect reference to another symbol. The other symbol
|
||||
appears as an undefined reference, immediately following this symbol.
|
||||
|
||||
Indirection is asymmetrical. The other symbol's value will be used
|
||||
to satisfy requests for the indirect symbol, but not vice versa.
|
||||
If the other symbol does not have a definition, libraries will
|
||||
be searched to find a definition. */
|
||||
#define N_INDR 0xa
|
||||
|
||||
/* The following symbols refer to set elements.
|
||||
All the N_SET[ATDB] symbols with the same name form one set.
|
||||
Space is allocated for the set in the text section, and each set
|
||||
element's value is stored into one word of the space.
|
||||
The first word of the space is the length of the set (number of elements).
|
||||
|
||||
The address of the set is made into an N_SETV symbol
|
||||
whose name is the same as the name of the set.
|
||||
This symbol acts like a N_DATA global symbol
|
||||
in that it can satisfy undefined external references. */
|
||||
|
||||
/* These appear as input to LD, in a .o file. */
|
||||
#define N_SETA 0x14 /* Absolute set element symbol */
|
||||
#define N_SETT 0x16 /* Text set element symbol */
|
||||
#define N_SETD 0x18 /* Data set element symbol */
|
||||
#define N_SETB 0x1A /* Bss set element symbol */
|
||||
|
||||
/* This is output from LD. */
|
||||
#define N_SETV 0x1C /* Pointer to set vector in data area. */
|
||||
|
||||
#if !defined (N_RELOCATION_INFO_DECLARED)
|
||||
/* This structure describes a single relocation to be performed.
|
||||
The text-relocation section of the file is a vector of these structures,
|
||||
all of which apply to the text section.
|
||||
Likewise, the data-relocation section applies to the data section. */
|
||||
|
||||
struct relocation_info
|
||||
{
|
||||
/* Address (within segment) to be relocated. */
|
||||
int r_address;
|
||||
/* The meaning of r_symbolnum depends on r_extern. */
|
||||
unsigned int r_symbolnum:24;
|
||||
/* Nonzero means value is a pc-relative offset
|
||||
and it should be relocated for changes in its own address
|
||||
as well as for changes in the symbol or section specified. */
|
||||
unsigned int r_pcrel:1;
|
||||
/* Length (as exponent of 2) of the field to be relocated.
|
||||
Thus, a value of 2 indicates 1<<2 bytes. */
|
||||
unsigned int r_length:2;
|
||||
/* 1 => relocate with value of symbol.
|
||||
r_symbolnum is the index of the symbol
|
||||
in file's the symbol table.
|
||||
0 => relocate with the address of a segment.
|
||||
r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
|
||||
(the N_EXT bit may be set also, but signifies nothing). */
|
||||
unsigned int r_extern:1;
|
||||
/* Four bits that aren't used, but when writing an object file
|
||||
it is desirable to clear them. */
|
||||
#ifdef NS32K
|
||||
unsigned r_bsr:1;
|
||||
unsigned r_disp:1;
|
||||
unsigned r_pad:2;
|
||||
#else
|
||||
unsigned int r_pad:4;
|
||||
#endif
|
||||
};
|
||||
#endif /* no N_RELOCATION_INFO_DECLARED. */
|
||||
|
||||
#endif /*__ASSEMBLY__ */
|
||||
#endif /* __A_OUT_GNU_H__ */
|
||||
|
|
|
|||
|
|
@ -11,109 +11,11 @@
|
|||
* Copyright (C) 1995 - 1997 Marco van Wieringen - ELM Consultancy B.V.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_ACCT_H
|
||||
#define _LINUX_ACCT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <uapi/linux/acct.h>
|
||||
|
||||
#include <asm/param.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/*
|
||||
* comp_t is a 16-bit "floating" point number with a 3-bit base 8
|
||||
* exponent and a 13-bit fraction.
|
||||
* comp2_t is 24-bit with 5-bit base 2 exponent and 20 bit fraction
|
||||
* (leading 1 not stored).
|
||||
* See linux/kernel/acct.c for the specific encoding systems used.
|
||||
*/
|
||||
|
||||
typedef __u16 comp_t;
|
||||
typedef __u32 comp2_t;
|
||||
|
||||
/*
|
||||
* accounting file record
|
||||
*
|
||||
* This structure contains all of the information written out to the
|
||||
* process accounting file whenever a process exits.
|
||||
*/
|
||||
|
||||
#define ACCT_COMM 16
|
||||
|
||||
struct acct
|
||||
{
|
||||
char ac_flag; /* Flags */
|
||||
char ac_version; /* Always set to ACCT_VERSION */
|
||||
/* for binary compatibility back until 2.0 */
|
||||
__u16 ac_uid16; /* LSB of Real User ID */
|
||||
__u16 ac_gid16; /* LSB of Real Group ID */
|
||||
__u16 ac_tty; /* Control Terminal */
|
||||
__u32 ac_btime; /* Process Creation Time */
|
||||
comp_t ac_utime; /* User Time */
|
||||
comp_t ac_stime; /* System Time */
|
||||
comp_t ac_etime; /* Elapsed Time */
|
||||
comp_t ac_mem; /* Average Memory Usage */
|
||||
comp_t ac_io; /* Chars Transferred */
|
||||
comp_t ac_rw; /* Blocks Read or Written */
|
||||
comp_t ac_minflt; /* Minor Pagefaults */
|
||||
comp_t ac_majflt; /* Major Pagefaults */
|
||||
comp_t ac_swaps; /* Number of Swaps */
|
||||
/* m68k had no padding here. */
|
||||
#if !defined(CONFIG_M68K) || !defined(__KERNEL__)
|
||||
__u16 ac_ahz; /* AHZ */
|
||||
#endif
|
||||
__u32 ac_exitcode; /* Exitcode */
|
||||
char ac_comm[ACCT_COMM + 1]; /* Command Name */
|
||||
__u8 ac_etime_hi; /* Elapsed Time MSB */
|
||||
__u16 ac_etime_lo; /* Elapsed Time LSB */
|
||||
__u32 ac_uid; /* Real User ID */
|
||||
__u32 ac_gid; /* Real Group ID */
|
||||
};
|
||||
|
||||
struct acct_v3
|
||||
{
|
||||
char ac_flag; /* Flags */
|
||||
char ac_version; /* Always set to ACCT_VERSION */
|
||||
__u16 ac_tty; /* Control Terminal */
|
||||
__u32 ac_exitcode; /* Exitcode */
|
||||
__u32 ac_uid; /* Real User ID */
|
||||
__u32 ac_gid; /* Real Group ID */
|
||||
__u32 ac_pid; /* Process ID */
|
||||
__u32 ac_ppid; /* Parent Process ID */
|
||||
__u32 ac_btime; /* Process Creation Time */
|
||||
#ifdef __KERNEL__
|
||||
__u32 ac_etime; /* Elapsed Time */
|
||||
#else
|
||||
float ac_etime; /* Elapsed Time */
|
||||
#endif
|
||||
comp_t ac_utime; /* User Time */
|
||||
comp_t ac_stime; /* System Time */
|
||||
comp_t ac_mem; /* Average Memory Usage */
|
||||
comp_t ac_io; /* Chars Transferred */
|
||||
comp_t ac_rw; /* Blocks Read or Written */
|
||||
comp_t ac_minflt; /* Minor Pagefaults */
|
||||
comp_t ac_majflt; /* Major Pagefaults */
|
||||
comp_t ac_swaps; /* Number of Swaps */
|
||||
char ac_comm[ACCT_COMM]; /* Command Name */
|
||||
};
|
||||
|
||||
/*
|
||||
* accounting flags
|
||||
*/
|
||||
/* bit set when the process ... */
|
||||
#define AFORK 0x01 /* ... executed fork, but did not exec */
|
||||
#define ASU 0x02 /* ... used super-user privileges */
|
||||
#define ACOMPAT 0x04 /* ... used compatibility mode (VAX only not used) */
|
||||
#define ACORE 0x08 /* ... dumped core */
|
||||
#define AXSIG 0x10 /* ... was killed by a signal */
|
||||
|
||||
#ifdef __BIG_ENDIAN
|
||||
#define ACCT_BYTEORDER 0x80 /* accounting file is big endian */
|
||||
#else
|
||||
#define ACCT_BYTEORDER 0x00 /* accounting file is little endian */
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
||||
#ifdef CONFIG_BSD_PROCESS_ACCT
|
||||
|
|
@ -163,12 +65,6 @@ typedef struct acct_v3 acct_t;
|
|||
typedef struct acct acct_t;
|
||||
#endif
|
||||
|
||||
#else
|
||||
#define ACCT_VERSION 2
|
||||
#define AHZ (HZ)
|
||||
#endif /* __KERNEL */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/jiffies.h>
|
||||
/*
|
||||
* Yet another set of HZ to *HZ helper functions.
|
||||
|
|
@ -210,6 +106,4 @@ static inline u64 nsec_to_AHZ(u64 x)
|
|||
return x;
|
||||
}
|
||||
|
||||
#endif /* __KERNEL */
|
||||
|
||||
#endif /* _LINUX_ACCT_H */
|
||||
|
|
|
|||
|
|
@ -4,43 +4,8 @@
|
|||
#ifndef __ADB_H
|
||||
#define __ADB_H
|
||||
|
||||
/* ADB commands */
|
||||
#define ADB_BUSRESET 0
|
||||
#define ADB_FLUSH(id) (0x01 | ((id) << 4))
|
||||
#define ADB_WRITEREG(id, reg) (0x08 | (reg) | ((id) << 4))
|
||||
#define ADB_READREG(id, reg) (0x0C | (reg) | ((id) << 4))
|
||||
#include <uapi/linux/adb.h>
|
||||
|
||||
/* ADB default device IDs (upper 4 bits of ADB command byte) */
|
||||
#define ADB_DONGLE 1 /* "software execution control" devices */
|
||||
#define ADB_KEYBOARD 2
|
||||
#define ADB_MOUSE 3
|
||||
#define ADB_TABLET 4
|
||||
#define ADB_MODEM 5
|
||||
#define ADB_MISC 7 /* maybe a monitor */
|
||||
|
||||
#define ADB_RET_OK 0
|
||||
#define ADB_RET_TIMEOUT 3
|
||||
|
||||
/* The kind of ADB request. The controller may emulate some
|
||||
or all of those CUDA/PMU packet kinds */
|
||||
#define ADB_PACKET 0
|
||||
#define CUDA_PACKET 1
|
||||
#define ERROR_PACKET 2
|
||||
#define TIMER_PACKET 3
|
||||
#define POWER_PACKET 4
|
||||
#define MACIIC_PACKET 5
|
||||
#define PMU_PACKET 6
|
||||
#define ADB_QUERY 7
|
||||
|
||||
/* ADB queries */
|
||||
|
||||
/* ADB_QUERY_GETDEVINFO
|
||||
* Query ADB slot for device presence
|
||||
* data[2] = id, rep[0] = orig addr, rep[1] = handler_id
|
||||
*/
|
||||
#define ADB_QUERY_GETDEVINFO 1
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
struct adb_request {
|
||||
unsigned char data[32];
|
||||
|
|
@ -98,6 +63,4 @@ int adb_reset_bus(void);
|
|||
int adb_try_handler_change(int address, int new_id);
|
||||
int adb_get_infos(int address, int *original_address, int *handler_id);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ADB_H */
|
||||
|
|
|
|||
|
|
@ -1,46 +1,8 @@
|
|||
#ifndef _ADFS_FS_H
|
||||
#define _ADFS_FS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/magic.h>
|
||||
#include <uapi/linux/adfs_fs.h>
|
||||
|
||||
/*
|
||||
* Disc Record at disc address 0xc00
|
||||
*/
|
||||
struct adfs_discrecord {
|
||||
__u8 log2secsize;
|
||||
__u8 secspertrack;
|
||||
__u8 heads;
|
||||
__u8 density;
|
||||
__u8 idlen;
|
||||
__u8 log2bpmb;
|
||||
__u8 skew;
|
||||
__u8 bootoption;
|
||||
__u8 lowsector;
|
||||
__u8 nzones;
|
||||
__le16 zone_spare;
|
||||
__le32 root;
|
||||
__le32 disc_size;
|
||||
__le16 disc_id;
|
||||
__u8 disc_name[10];
|
||||
__le32 disc_type;
|
||||
__le32 disc_size_high;
|
||||
__u8 log2sharesize:4;
|
||||
__u8 unused40:4;
|
||||
__u8 big_flag:1;
|
||||
__u8 unused41:1;
|
||||
__u8 nzones_high;
|
||||
__le32 format_version;
|
||||
__le32 root_size;
|
||||
__u8 unused52[60 - 52];
|
||||
};
|
||||
|
||||
#define ADFS_DISCRECORD (0xc00)
|
||||
#define ADFS_DR_OFFSET (0x1c0)
|
||||
#define ADFS_DR_SIZE 60
|
||||
#define ADFS_DR_SIZE_BITS (ADFS_DR_SIZE << 3)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/*
|
||||
* Calculate the boot block checksum on an ADFS drive. Note that this will
|
||||
* appear to be correct if the sector contains all zeros, so also check that
|
||||
|
|
@ -59,5 +21,3 @@ static inline int adfs_checkbblk(unsigned char *ptr)
|
|||
return (result & 0xff) != ptr[511];
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -23,94 +23,12 @@
|
|||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _AGP_H
|
||||
#define _AGP_H 1
|
||||
|
||||
#define AGPIOC_BASE 'A'
|
||||
#define AGPIOC_INFO _IOR (AGPIOC_BASE, 0, struct agp_info*)
|
||||
#define AGPIOC_ACQUIRE _IO (AGPIOC_BASE, 1)
|
||||
#define AGPIOC_RELEASE _IO (AGPIOC_BASE, 2)
|
||||
#define AGPIOC_SETUP _IOW (AGPIOC_BASE, 3, struct agp_setup*)
|
||||
#define AGPIOC_RESERVE _IOW (AGPIOC_BASE, 4, struct agp_region*)
|
||||
#define AGPIOC_PROTECT _IOW (AGPIOC_BASE, 5, struct agp_region*)
|
||||
#define AGPIOC_ALLOCATE _IOWR(AGPIOC_BASE, 6, struct agp_allocate*)
|
||||
#define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int)
|
||||
#define AGPIOC_BIND _IOW (AGPIOC_BASE, 8, struct agp_bind*)
|
||||
#define AGPIOC_UNBIND _IOW (AGPIOC_BASE, 9, struct agp_unbind*)
|
||||
#define AGPIOC_CHIPSET_FLUSH _IO (AGPIOC_BASE, 10)
|
||||
|
||||
#define AGP_DEVICE "/dev/agpgart"
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#ifndef __KERNEL__
|
||||
#include <linux/types.h>
|
||||
|
||||
struct agp_version {
|
||||
__u16 major;
|
||||
__u16 minor;
|
||||
};
|
||||
|
||||
typedef struct _agp_info {
|
||||
struct agp_version version; /* version of the driver */
|
||||
__u32 bridge_id; /* bridge vendor/device */
|
||||
__u32 agp_mode; /* mode info of bridge */
|
||||
unsigned long aper_base;/* base of aperture */
|
||||
size_t aper_size; /* size of aperture */
|
||||
size_t pg_total; /* max pages (swap + system) */
|
||||
size_t pg_system; /* max pages (system) */
|
||||
size_t pg_used; /* current pages used */
|
||||
} agp_info;
|
||||
|
||||
typedef struct _agp_setup {
|
||||
__u32 agp_mode; /* mode info of bridge */
|
||||
} agp_setup;
|
||||
|
||||
/*
|
||||
* The "prot" down below needs still a "sleep" flag somehow ...
|
||||
*/
|
||||
typedef struct _agp_segment {
|
||||
__kernel_off_t pg_start; /* starting page to populate */
|
||||
__kernel_size_t pg_count; /* number of pages */
|
||||
int prot; /* prot flags for mmap */
|
||||
} agp_segment;
|
||||
|
||||
typedef struct _agp_region {
|
||||
__kernel_pid_t pid; /* pid of process */
|
||||
__kernel_size_t seg_count; /* number of segments */
|
||||
struct _agp_segment *seg_list;
|
||||
} agp_region;
|
||||
|
||||
typedef struct _agp_allocate {
|
||||
int key; /* tag of allocation */
|
||||
__kernel_size_t pg_count;/* number of pages */
|
||||
__u32 type; /* 0 == normal, other devspec */
|
||||
__u32 physical; /* device specific (some devices
|
||||
* need a phys address of the
|
||||
* actual page behind the gatt
|
||||
* table) */
|
||||
} agp_allocate;
|
||||
|
||||
typedef struct _agp_bind {
|
||||
int key; /* tag of allocation */
|
||||
__kernel_off_t pg_start;/* starting page to populate */
|
||||
} agp_bind;
|
||||
|
||||
typedef struct _agp_unbind {
|
||||
int key; /* tag of allocation */
|
||||
__u32 priority; /* priority for paging out */
|
||||
} agp_unbind;
|
||||
|
||||
#else /* __KERNEL__ */
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/agp_backend.h>
|
||||
#include <uapi/linux/agpgart.h>
|
||||
|
||||
#define AGPGART_MINOR 175
|
||||
|
||||
|
|
@ -209,6 +127,4 @@ struct agp_front_data {
|
|||
bool backend_acquired;
|
||||
};
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _AGP_H */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
#ifndef _LINUX_APM_H
|
||||
#define _LINUX_APM_H
|
||||
|
||||
/*
|
||||
* Include file for the interface to an APM BIOS
|
||||
* Copyright 1994-2001 Stephen Rothwell (sfr@canb.auug.org.au)
|
||||
|
|
@ -15,25 +12,11 @@
|
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
#ifndef _LINUX_APM_H
|
||||
#define _LINUX_APM_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <uapi/linux/apm_bios.h>
|
||||
|
||||
typedef unsigned short apm_event_t;
|
||||
typedef unsigned short apm_eventinfo_t;
|
||||
|
||||
struct apm_bios_info {
|
||||
__u16 version;
|
||||
__u16 cseg;
|
||||
__u32 offset;
|
||||
__u16 cseg_16;
|
||||
__u16 dseg;
|
||||
__u16 flags;
|
||||
__u16 cseg_len;
|
||||
__u16 cseg_16_len;
|
||||
__u16 dseg_len;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define APM_CS (GDT_ENTRY_APMBIOS_BASE * 8)
|
||||
#define APM_CS_16 (APM_CS + 8)
|
||||
|
|
@ -110,111 +93,9 @@ struct apm_info {
|
|||
*/
|
||||
extern struct apm_info apm_info;
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/*
|
||||
* Power states
|
||||
*/
|
||||
#define APM_STATE_READY 0x0000
|
||||
#define APM_STATE_STANDBY 0x0001
|
||||
#define APM_STATE_SUSPEND 0x0002
|
||||
#define APM_STATE_OFF 0x0003
|
||||
#define APM_STATE_BUSY 0x0004
|
||||
#define APM_STATE_REJECT 0x0005
|
||||
#define APM_STATE_OEM_SYS 0x0020
|
||||
#define APM_STATE_OEM_DEV 0x0040
|
||||
|
||||
#define APM_STATE_DISABLE 0x0000
|
||||
#define APM_STATE_ENABLE 0x0001
|
||||
|
||||
#define APM_STATE_DISENGAGE 0x0000
|
||||
#define APM_STATE_ENGAGE 0x0001
|
||||
|
||||
/*
|
||||
* Events (results of Get PM Event)
|
||||
*/
|
||||
#define APM_SYS_STANDBY 0x0001
|
||||
#define APM_SYS_SUSPEND 0x0002
|
||||
#define APM_NORMAL_RESUME 0x0003
|
||||
#define APM_CRITICAL_RESUME 0x0004
|
||||
#define APM_LOW_BATTERY 0x0005
|
||||
#define APM_POWER_STATUS_CHANGE 0x0006
|
||||
#define APM_UPDATE_TIME 0x0007
|
||||
#define APM_CRITICAL_SUSPEND 0x0008
|
||||
#define APM_USER_STANDBY 0x0009
|
||||
#define APM_USER_SUSPEND 0x000a
|
||||
#define APM_STANDBY_RESUME 0x000b
|
||||
#define APM_CAPABILITY_CHANGE 0x000c
|
||||
|
||||
/*
|
||||
* Error codes
|
||||
*/
|
||||
#define APM_SUCCESS 0x00
|
||||
#define APM_DISABLED 0x01
|
||||
#define APM_CONNECTED 0x02
|
||||
#define APM_NOT_CONNECTED 0x03
|
||||
#define APM_16_CONNECTED 0x05
|
||||
#define APM_16_UNSUPPORTED 0x06
|
||||
#define APM_32_CONNECTED 0x07
|
||||
#define APM_32_UNSUPPORTED 0x08
|
||||
#define APM_BAD_DEVICE 0x09
|
||||
#define APM_BAD_PARAM 0x0a
|
||||
#define APM_NOT_ENGAGED 0x0b
|
||||
#define APM_BAD_FUNCTION 0x0c
|
||||
#define APM_RESUME_DISABLED 0x0d
|
||||
#define APM_NO_ERROR 0x53
|
||||
#define APM_BAD_STATE 0x60
|
||||
#define APM_NO_EVENTS 0x80
|
||||
#define APM_NOT_PRESENT 0x86
|
||||
|
||||
/*
|
||||
* APM Device IDs
|
||||
*/
|
||||
#define APM_DEVICE_BIOS 0x0000
|
||||
#define APM_DEVICE_ALL 0x0001
|
||||
#define APM_DEVICE_DISPLAY 0x0100
|
||||
#define APM_DEVICE_STORAGE 0x0200
|
||||
#define APM_DEVICE_PARALLEL 0x0300
|
||||
#define APM_DEVICE_SERIAL 0x0400
|
||||
#define APM_DEVICE_NETWORK 0x0500
|
||||
#define APM_DEVICE_PCMCIA 0x0600
|
||||
#define APM_DEVICE_BATTERY 0x8000
|
||||
#define APM_DEVICE_OEM 0xe000
|
||||
#define APM_DEVICE_OLD_ALL 0xffff
|
||||
#define APM_DEVICE_CLASS 0x00ff
|
||||
#define APM_DEVICE_MASK 0xff00
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/*
|
||||
* This is the "All Devices" ID communicated to the BIOS
|
||||
*/
|
||||
#define APM_DEVICE_BALL ((apm_info.connection_version > 0x0100) ? \
|
||||
APM_DEVICE_ALL : APM_DEVICE_OLD_ALL)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Battery status
|
||||
*/
|
||||
#define APM_MAX_BATTERIES 2
|
||||
|
||||
/*
|
||||
* APM defined capability bit flags
|
||||
*/
|
||||
#define APM_CAP_GLOBAL_STANDBY 0x0001
|
||||
#define APM_CAP_GLOBAL_SUSPEND 0x0002
|
||||
#define APM_CAP_RESUME_STANDBY_TIMER 0x0004 /* Timer resume from standby */
|
||||
#define APM_CAP_RESUME_SUSPEND_TIMER 0x0008 /* Timer resume from suspend */
|
||||
#define APM_CAP_RESUME_STANDBY_RING 0x0010 /* Resume on Ring fr standby */
|
||||
#define APM_CAP_RESUME_SUSPEND_RING 0x0020 /* Resume on Ring fr suspend */
|
||||
#define APM_CAP_RESUME_STANDBY_PCMCIA 0x0040 /* Resume on PCMCIA Ring */
|
||||
#define APM_CAP_RESUME_SUSPEND_PCMCIA 0x0080 /* Resume on PCMCIA Ring */
|
||||
|
||||
/*
|
||||
* ioctl operations
|
||||
*/
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define APM_IOC_STANDBY _IO('A', 1)
|
||||
#define APM_IOC_SUSPEND _IO('A', 2)
|
||||
|
||||
#endif /* LINUX_APM_H */
|
||||
|
|
|
|||
|
|
@ -1,49 +1,9 @@
|
|||
#ifndef __LINUX_ATALK_H__
|
||||
#define __LINUX_ATALK_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <linux/socket.h>
|
||||
|
||||
/*
|
||||
* AppleTalk networking structures
|
||||
*
|
||||
* The following are directly referenced from the University Of Michigan
|
||||
* netatalk for compatibility reasons.
|
||||
*/
|
||||
#define ATPORT_FIRST 1
|
||||
#define ATPORT_RESERVED 128
|
||||
#define ATPORT_LAST 254 /* 254 is only legal on localtalk */
|
||||
#define ATADDR_ANYNET (__u16)0
|
||||
#define ATADDR_ANYNODE (__u8)0
|
||||
#define ATADDR_ANYPORT (__u8)0
|
||||
#define ATADDR_BCAST (__u8)255
|
||||
#define DDP_MAXSZ 587
|
||||
#define DDP_MAXHOPS 15 /* 4 bits of hop counter */
|
||||
|
||||
#define SIOCATALKDIFADDR (SIOCPROTOPRIVATE + 0)
|
||||
|
||||
struct atalk_addr {
|
||||
__be16 s_net;
|
||||
__u8 s_node;
|
||||
};
|
||||
|
||||
struct sockaddr_at {
|
||||
__kernel_sa_family_t sat_family;
|
||||
__u8 sat_port;
|
||||
struct atalk_addr sat_addr;
|
||||
char sat_zero[8];
|
||||
};
|
||||
|
||||
struct atalk_netrange {
|
||||
__u8 nr_phase;
|
||||
__be16 nr_firstnet;
|
||||
__be16 nr_lastnet;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <net/sock.h>
|
||||
#include <uapi/linux/atalk.h>
|
||||
|
||||
struct atalk_route {
|
||||
struct net_device *dev;
|
||||
|
|
@ -205,5 +165,4 @@ extern void atalk_proc_exit(void);
|
|||
#define atalk_proc_exit() do { } while(0)
|
||||
#endif /* CONFIG_PROC_FS */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_ATALK_H__ */
|
||||
|
|
|
|||
|
|
@ -1,242 +1,9 @@
|
|||
/* atm.h - general ATM declarations */
|
||||
|
||||
/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
|
||||
|
||||
|
||||
/*
|
||||
* WARNING: User-space programs should not #include <linux/atm.h> directly.
|
||||
* Instead, #include <atm.h>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_ATM_H
|
||||
#define _LINUX_ATM_H
|
||||
|
||||
/*
|
||||
* BEGIN_xx and END_xx markers are used for automatic generation of
|
||||
* documentation. Do not change them.
|
||||
*/
|
||||
#include <uapi/linux/atm.h>
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/atmapi.h>
|
||||
#include <linux/atmsap.h>
|
||||
#include <linux/atmioc.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
||||
/* general ATM constants */
|
||||
#define ATM_CELL_SIZE 53 /* ATM cell size incl. header */
|
||||
#define ATM_CELL_PAYLOAD 48 /* ATM payload size */
|
||||
#define ATM_AAL0_SDU 52 /* AAL0 SDU size */
|
||||
#define ATM_MAX_AAL34_PDU 65535 /* maximum AAL3/4 PDU payload */
|
||||
#define ATM_AAL5_TRAILER 8 /* AAL5 trailer size */
|
||||
#define ATM_MAX_AAL5_PDU 65535 /* maximum AAL5 PDU payload */
|
||||
#define ATM_MAX_CDV 9999 /* maximum (default) CDV */
|
||||
#define ATM_NOT_RSV_VCI 32 /* first non-reserved VCI value */
|
||||
|
||||
#define ATM_MAX_VPI 255 /* maximum VPI at the UNI */
|
||||
#define ATM_MAX_VPI_NNI 4096 /* maximum VPI at the NNI */
|
||||
#define ATM_MAX_VCI 65535 /* maximum VCI */
|
||||
|
||||
|
||||
/* "protcol" values for the socket system call */
|
||||
#define ATM_NO_AAL 0 /* AAL not specified */
|
||||
#define ATM_AAL0 13 /* "raw" ATM cells */
|
||||
#define ATM_AAL1 1 /* AAL1 (CBR) */
|
||||
#define ATM_AAL2 2 /* AAL2 (VBR) */
|
||||
#define ATM_AAL34 3 /* AAL3/4 (data) */
|
||||
#define ATM_AAL5 5 /* AAL5 (data) */
|
||||
|
||||
/*
|
||||
* socket option name coding functions
|
||||
*
|
||||
* Note that __SO_ENCODE and __SO_LEVEL are somewhat a hack since the
|
||||
* << 22 only reserves 9 bits for the level. On some architectures
|
||||
* SOL_SOCKET is 0xFFFF, so that's a bit of a problem
|
||||
*/
|
||||
|
||||
#define __SO_ENCODE(l,n,t) ((((l) & 0x1FF) << 22) | ((n) << 16) | \
|
||||
sizeof(t))
|
||||
#define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF))
|
||||
#define __SO_NUMBER(c) (((c) >> 16) & 0x3f)
|
||||
#define __SO_SIZE(c) ((c) & 0x3fff)
|
||||
|
||||
/*
|
||||
* ATM layer
|
||||
*/
|
||||
|
||||
#define SO_SETCLP __SO_ENCODE(SOL_ATM,0,int)
|
||||
/* set CLP bit value - TODO */
|
||||
#define SO_CIRANGE __SO_ENCODE(SOL_ATM,1,struct atm_cirange)
|
||||
/* connection identifier range; socket must be
|
||||
bound or connected */
|
||||
#define SO_ATMQOS __SO_ENCODE(SOL_ATM,2,struct atm_qos)
|
||||
/* Quality of Service setting */
|
||||
#define SO_ATMSAP __SO_ENCODE(SOL_ATM,3,struct atm_sap)
|
||||
/* Service Access Point */
|
||||
#define SO_ATMPVC __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
|
||||
/* "PVC" address (also for SVCs); get only */
|
||||
#define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int)
|
||||
/* make this vc a p2mp */
|
||||
|
||||
|
||||
/*
|
||||
* Note @@@: since the socket layers don't really distinguish the control and
|
||||
* the data plane but generally seems to be data plane-centric, any layer is
|
||||
* about equally wrong for the SAP. If you have a better idea about this,
|
||||
* please speak up ...
|
||||
*/
|
||||
|
||||
|
||||
/* ATM cell header (for AAL0) */
|
||||
|
||||
/* BEGIN_CH */
|
||||
#define ATM_HDR_GFC_MASK 0xf0000000
|
||||
#define ATM_HDR_GFC_SHIFT 28
|
||||
#define ATM_HDR_VPI_MASK 0x0ff00000
|
||||
#define ATM_HDR_VPI_SHIFT 20
|
||||
#define ATM_HDR_VCI_MASK 0x000ffff0
|
||||
#define ATM_HDR_VCI_SHIFT 4
|
||||
#define ATM_HDR_PTI_MASK 0x0000000e
|
||||
#define ATM_HDR_PTI_SHIFT 1
|
||||
#define ATM_HDR_CLP 0x00000001
|
||||
/* END_CH */
|
||||
|
||||
|
||||
/* PTI codings */
|
||||
|
||||
/* BEGIN_PTI */
|
||||
#define ATM_PTI_US0 0 /* user data cell, congestion not exp, SDU-type 0 */
|
||||
#define ATM_PTI_US1 1 /* user data cell, congestion not exp, SDU-type 1 */
|
||||
#define ATM_PTI_UCES0 2 /* user data cell, cong. experienced, SDU-type 0 */
|
||||
#define ATM_PTI_UCES1 3 /* user data cell, cong. experienced, SDU-type 1 */
|
||||
#define ATM_PTI_SEGF5 4 /* segment OAM F5 flow related cell */
|
||||
#define ATM_PTI_E2EF5 5 /* end-to-end OAM F5 flow related cell */
|
||||
#define ATM_PTI_RSV_RM 6 /* reserved for traffic control/resource mgmt */
|
||||
#define ATM_PTI_RSV 7 /* reserved */
|
||||
/* END_PTI */
|
||||
|
||||
|
||||
/*
|
||||
* The following items should stay in linux/atm.h, which should be linked to
|
||||
* netatm/atm.h
|
||||
*/
|
||||
|
||||
/* Traffic description */
|
||||
|
||||
#define ATM_NONE 0 /* no traffic */
|
||||
#define ATM_UBR 1
|
||||
#define ATM_CBR 2
|
||||
#define ATM_VBR 3
|
||||
#define ATM_ABR 4
|
||||
#define ATM_ANYCLASS 5 /* compatible with everything */
|
||||
|
||||
#define ATM_MAX_PCR -1 /* maximum available PCR */
|
||||
|
||||
struct atm_trafprm {
|
||||
unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */
|
||||
int max_pcr; /* maximum PCR in cells per second */
|
||||
int pcr; /* desired PCR in cells per second */
|
||||
int min_pcr; /* minimum PCR in cells per second */
|
||||
int max_cdv; /* maximum CDV in microseconds */
|
||||
int max_sdu; /* maximum SDU in bytes */
|
||||
/* extra params for ABR */
|
||||
unsigned int icr; /* Initial Cell Rate (24-bit) */
|
||||
unsigned int tbe; /* Transient Buffer Exposure (24-bit) */
|
||||
unsigned int frtt : 24; /* Fixed Round Trip Time (24-bit) */
|
||||
unsigned int rif : 4; /* Rate Increment Factor (4-bit) */
|
||||
unsigned int rdf : 4; /* Rate Decrease Factor (4-bit) */
|
||||
unsigned int nrm_pres :1; /* nrm present bit */
|
||||
unsigned int trm_pres :1; /* rm present bit */
|
||||
unsigned int adtf_pres :1; /* adtf present bit */
|
||||
unsigned int cdf_pres :1; /* cdf present bit*/
|
||||
unsigned int nrm :3; /* Max # of Cells for each forward RM cell (3-bit) */
|
||||
unsigned int trm :3; /* Time between forward RM cells (3-bit) */
|
||||
unsigned int adtf :10; /* ACR Decrease Time Factor (10-bit) */
|
||||
unsigned int cdf :3; /* Cutoff Decrease Factor (3-bit) */
|
||||
unsigned int spare :9; /* spare bits */
|
||||
};
|
||||
|
||||
struct atm_qos {
|
||||
struct atm_trafprm txtp; /* parameters in TX direction */
|
||||
struct atm_trafprm rxtp __ATM_API_ALIGN;
|
||||
/* parameters in RX direction */
|
||||
unsigned char aal __ATM_API_ALIGN;
|
||||
};
|
||||
|
||||
/* PVC addressing */
|
||||
|
||||
#define ATM_ITF_ANY -1 /* "magic" PVC address values */
|
||||
#define ATM_VPI_ANY -1
|
||||
#define ATM_VCI_ANY -1
|
||||
#define ATM_VPI_UNSPEC -2
|
||||
#define ATM_VCI_UNSPEC -2
|
||||
|
||||
|
||||
struct sockaddr_atmpvc {
|
||||
unsigned short sap_family; /* address family, AF_ATMPVC */
|
||||
struct { /* PVC address */
|
||||
short itf; /* ATM interface */
|
||||
short vpi; /* VPI (only 8 bits at UNI) */
|
||||
int vci; /* VCI (only 16 bits at UNI) */
|
||||
} sap_addr __ATM_API_ALIGN; /* PVC address */
|
||||
};
|
||||
|
||||
/* SVC addressing */
|
||||
|
||||
#define ATM_ESA_LEN 20 /* ATM End System Address length */
|
||||
#define ATM_E164_LEN 12 /* maximum E.164 number length */
|
||||
|
||||
#define ATM_AFI_DCC 0x39 /* DCC ATM Format */
|
||||
#define ATM_AFI_ICD 0x47 /* ICD ATM Format */
|
||||
#define ATM_AFI_E164 0x45 /* E.164 ATM Format */
|
||||
#define ATM_AFI_LOCAL 0x49 /* Local ATM Format */
|
||||
|
||||
#define ATM_AFI_DCC_GROUP 0xBD /* DCC ATM Group Format */
|
||||
#define ATM_AFI_ICD_GROUP 0xC5 /* ICD ATM Group Format */
|
||||
#define ATM_AFI_E164_GROUP 0xC3 /* E.164 ATM Group Format */
|
||||
#define ATM_AFI_LOCAL_GROUP 0xC7 /* Local ATM Group Format */
|
||||
|
||||
#define ATM_LIJ_NONE 0 /* no leaf-initiated join */
|
||||
#define ATM_LIJ 1 /* request joining */
|
||||
#define ATM_LIJ_RPJ 2 /* set to root-prompted join */
|
||||
#define ATM_LIJ_NJ 3 /* set to network join */
|
||||
|
||||
|
||||
struct sockaddr_atmsvc {
|
||||
unsigned short sas_family; /* address family, AF_ATMSVC */
|
||||
struct { /* SVC address */
|
||||
unsigned char prv[ATM_ESA_LEN];/* private ATM address */
|
||||
char pub[ATM_E164_LEN+1]; /* public address (E.164) */
|
||||
/* unused addresses must be bzero'ed */
|
||||
char lij_type; /* role in LIJ call; one of ATM_LIJ* */
|
||||
__u32 lij_id; /* LIJ call identifier */
|
||||
} sas_addr __ATM_API_ALIGN; /* SVC address */
|
||||
};
|
||||
|
||||
|
||||
static __inline__ int atmsvc_addr_in_use(struct sockaddr_atmsvc addr)
|
||||
{
|
||||
return *addr.sas_addr.prv || *addr.sas_addr.pub;
|
||||
}
|
||||
|
||||
|
||||
static __inline__ int atmpvc_addr_in_use(struct sockaddr_atmpvc addr)
|
||||
{
|
||||
return addr.sap_addr.itf || addr.sap_addr.vpi || addr.sap_addr.vci;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Some stuff for linux/sockios.h
|
||||
*/
|
||||
|
||||
struct atmif_sioc {
|
||||
int number;
|
||||
int length;
|
||||
void __user *arg;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifdef CONFIG_COMPAT
|
||||
#include <linux/compat.h>
|
||||
struct compat_atmif_sioc {
|
||||
|
|
@ -246,6 +13,3 @@ struct compat_atmif_sioc {
|
|||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef unsigned short atm_backend_t;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3,62 +3,12 @@
|
|||
|
||||
/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */
|
||||
|
||||
|
||||
#ifndef LINUX_ATM_TCP_H
|
||||
#define LINUX_ATM_TCP_H
|
||||
|
||||
#include <linux/atmapi.h>
|
||||
#include <linux/atm.h>
|
||||
#include <linux/atmioc.h>
|
||||
#include <linux/types.h>
|
||||
#include <uapi/linux/atm_tcp.h>
|
||||
|
||||
|
||||
/*
|
||||
* All values in struct atmtcp_hdr are in network byte order
|
||||
*/
|
||||
|
||||
struct atmtcp_hdr {
|
||||
__u16 vpi;
|
||||
__u16 vci;
|
||||
__u32 length; /* ... of data part */
|
||||
};
|
||||
|
||||
/*
|
||||
* All values in struct atmtcp_command are in host byte order
|
||||
*/
|
||||
|
||||
#define ATMTCP_HDR_MAGIC (~0) /* this length indicates a command */
|
||||
#define ATMTCP_CTRL_OPEN 1 /* request/reply */
|
||||
#define ATMTCP_CTRL_CLOSE 2 /* request/reply */
|
||||
|
||||
struct atmtcp_control {
|
||||
struct atmtcp_hdr hdr; /* must be first */
|
||||
int type; /* message type; both directions */
|
||||
atm_kptr_t vcc; /* both directions */
|
||||
struct sockaddr_atmpvc addr; /* suggested value from kernel */
|
||||
struct atm_qos qos; /* both directions */
|
||||
int result; /* to kernel only */
|
||||
} __ATM_API_ALIGN;
|
||||
|
||||
/*
|
||||
* Field usage:
|
||||
* Messge type dir. hdr.v?i type addr qos vcc result
|
||||
* ----------- ---- ------- ---- ---- --- --- ------
|
||||
* OPEN K->D Y Y Y Y Y 0
|
||||
* OPEN D->K - Y Y Y Y Y
|
||||
* CLOSE K->D - - Y - Y 0
|
||||
* CLOSE D->K - - - - Y Y
|
||||
*/
|
||||
|
||||
#define SIOCSIFATMTCP _IO('a',ATMIOC_ITF) /* set ATMTCP mode */
|
||||
#define ATMTCP_CREATE _IO('a',ATMIOC_ITF+14) /* create persistent ATMTCP
|
||||
interface */
|
||||
#define ATMTCP_REMOVE _IO('a',ATMIOC_ITF+15) /* destroy persistent ATMTCP
|
||||
interface */
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
struct atm_tcp_ops {
|
||||
int (*attach)(struct atm_vcc *vcc,int itf);
|
||||
int (*create_persistent)(int itf);
|
||||
|
|
@ -69,5 +19,3 @@ struct atm_tcp_ops {
|
|||
extern struct atm_tcp_ops atm_tcp_ops;
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,218 +1,8 @@
|
|||
/* atmdev.h - ATM device driver declarations and various related items */
|
||||
|
||||
/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
|
||||
|
||||
|
||||
#ifndef LINUX_ATMDEV_H
|
||||
#define LINUX_ATMDEV_H
|
||||
|
||||
|
||||
#include <linux/atmapi.h>
|
||||
#include <linux/atm.h>
|
||||
#include <linux/atmioc.h>
|
||||
|
||||
|
||||
#define ESI_LEN 6
|
||||
|
||||
#define ATM_OC3_PCR (155520000/270*260/8/53)
|
||||
/* OC3 link rate: 155520000 bps
|
||||
SONET overhead: /270*260 (9 section, 1 path)
|
||||
bits per cell: /8/53
|
||||
max cell rate: 353207.547 cells/sec */
|
||||
#define ATM_25_PCR ((25600000/8-8000)/54)
|
||||
/* 25 Mbps ATM cell rate (59111) */
|
||||
#define ATM_OC12_PCR (622080000/1080*1040/8/53)
|
||||
/* OC12 link rate: 622080000 bps
|
||||
SONET overhead: /1080*1040
|
||||
bits per cell: /8/53
|
||||
max cell rate: 1412830.188 cells/sec */
|
||||
#define ATM_DS3_PCR (8000*12)
|
||||
/* DS3: 12 cells in a 125 usec time slot */
|
||||
|
||||
|
||||
#define __AAL_STAT_ITEMS \
|
||||
__HANDLE_ITEM(tx); /* TX okay */ \
|
||||
__HANDLE_ITEM(tx_err); /* TX errors */ \
|
||||
__HANDLE_ITEM(rx); /* RX okay */ \
|
||||
__HANDLE_ITEM(rx_err); /* RX errors */ \
|
||||
__HANDLE_ITEM(rx_drop); /* RX out of memory */
|
||||
|
||||
struct atm_aal_stats {
|
||||
#define __HANDLE_ITEM(i) int i
|
||||
__AAL_STAT_ITEMS
|
||||
#undef __HANDLE_ITEM
|
||||
};
|
||||
|
||||
|
||||
struct atm_dev_stats {
|
||||
struct atm_aal_stats aal0;
|
||||
struct atm_aal_stats aal34;
|
||||
struct atm_aal_stats aal5;
|
||||
} __ATM_API_ALIGN;
|
||||
|
||||
|
||||
#define ATM_GETLINKRATE _IOW('a',ATMIOC_ITF+1,struct atmif_sioc)
|
||||
/* get link rate */
|
||||
#define ATM_GETNAMES _IOW('a',ATMIOC_ITF+3,struct atm_iobuf)
|
||||
/* get interface names (numbers) */
|
||||
#define ATM_GETTYPE _IOW('a',ATMIOC_ITF+4,struct atmif_sioc)
|
||||
/* get interface type name */
|
||||
#define ATM_GETESI _IOW('a',ATMIOC_ITF+5,struct atmif_sioc)
|
||||
/* get interface ESI */
|
||||
#define ATM_GETADDR _IOW('a',ATMIOC_ITF+6,struct atmif_sioc)
|
||||
/* get itf's local ATM addr. list */
|
||||
#define ATM_RSTADDR _IOW('a',ATMIOC_ITF+7,struct atmif_sioc)
|
||||
/* reset itf's ATM address list */
|
||||
#define ATM_ADDADDR _IOW('a',ATMIOC_ITF+8,struct atmif_sioc)
|
||||
/* add a local ATM address */
|
||||
#define ATM_DELADDR _IOW('a',ATMIOC_ITF+9,struct atmif_sioc)
|
||||
/* remove a local ATM address */
|
||||
#define ATM_GETCIRANGE _IOW('a',ATMIOC_ITF+10,struct atmif_sioc)
|
||||
/* get connection identifier range */
|
||||
#define ATM_SETCIRANGE _IOW('a',ATMIOC_ITF+11,struct atmif_sioc)
|
||||
/* set connection identifier range */
|
||||
#define ATM_SETESI _IOW('a',ATMIOC_ITF+12,struct atmif_sioc)
|
||||
/* set interface ESI */
|
||||
#define ATM_SETESIF _IOW('a',ATMIOC_ITF+13,struct atmif_sioc)
|
||||
/* force interface ESI */
|
||||
#define ATM_ADDLECSADDR _IOW('a', ATMIOC_ITF+14, struct atmif_sioc)
|
||||
/* register a LECS address */
|
||||
#define ATM_DELLECSADDR _IOW('a', ATMIOC_ITF+15, struct atmif_sioc)
|
||||
/* unregister a LECS address */
|
||||
#define ATM_GETLECSADDR _IOW('a', ATMIOC_ITF+16, struct atmif_sioc)
|
||||
/* retrieve LECS address(es) */
|
||||
|
||||
#define ATM_GETSTAT _IOW('a',ATMIOC_SARCOM+0,struct atmif_sioc)
|
||||
/* get AAL layer statistics */
|
||||
#define ATM_GETSTATZ _IOW('a',ATMIOC_SARCOM+1,struct atmif_sioc)
|
||||
/* get AAL layer statistics and zero */
|
||||
#define ATM_GETLOOP _IOW('a',ATMIOC_SARCOM+2,struct atmif_sioc)
|
||||
/* get loopback mode */
|
||||
#define ATM_SETLOOP _IOW('a',ATMIOC_SARCOM+3,struct atmif_sioc)
|
||||
/* set loopback mode */
|
||||
#define ATM_QUERYLOOP _IOW('a',ATMIOC_SARCOM+4,struct atmif_sioc)
|
||||
/* query supported loopback modes */
|
||||
#define ATM_SETSC _IOW('a',ATMIOC_SPECIAL+1,int)
|
||||
/* enable or disable single-copy */
|
||||
#define ATM_SETBACKEND _IOW('a',ATMIOC_SPECIAL+2,atm_backend_t)
|
||||
/* set backend handler */
|
||||
#define ATM_NEWBACKENDIF _IOW('a',ATMIOC_SPECIAL+3,atm_backend_t)
|
||||
/* use backend to make new if */
|
||||
#define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf)
|
||||
/* add party to p2mp call */
|
||||
#ifdef CONFIG_COMPAT
|
||||
/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */
|
||||
#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf)
|
||||
#endif
|
||||
#define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int)
|
||||
/* drop party from p2mp call */
|
||||
|
||||
/*
|
||||
* These are backend handkers that can be set via the ATM_SETBACKEND call
|
||||
* above. In the future we may support dynamic loading of these - for now,
|
||||
* they're just being used to share the ATMIOC_BACKEND ioctls
|
||||
*/
|
||||
#define ATM_BACKEND_RAW 0
|
||||
#define ATM_BACKEND_PPP 1 /* PPPoATM - RFC2364 */
|
||||
#define ATM_BACKEND_BR2684 2 /* Bridged RFC1483/2684 */
|
||||
|
||||
/* for ATM_GETTYPE */
|
||||
#define ATM_ITFTYP_LEN 8 /* maximum length of interface type name */
|
||||
|
||||
/*
|
||||
* Loopback modes for ATM_{PHY,SAR}_{GET,SET}LOOP
|
||||
*/
|
||||
|
||||
/* Point of loopback CPU-->SAR-->PHY-->line--> ... */
|
||||
#define __ATM_LM_NONE 0 /* no loop back ^ ^ ^ ^ */
|
||||
#define __ATM_LM_AAL 1 /* loop back PDUs --' | | | */
|
||||
#define __ATM_LM_ATM 2 /* loop back ATM cells ---' | | */
|
||||
/* RESERVED 4 loop back on PHY side ---' */
|
||||
#define __ATM_LM_PHY 8 /* loop back bits (digital) ----' | */
|
||||
#define __ATM_LM_ANALOG 16 /* loop back the analog signal --------' */
|
||||
|
||||
/* Direction of loopback */
|
||||
#define __ATM_LM_MKLOC(n) ((n)) /* Local (i.e. loop TX to RX) */
|
||||
#define __ATM_LM_MKRMT(n) ((n) << 8) /* Remote (i.e. loop RX to TX) */
|
||||
|
||||
#define __ATM_LM_XTLOC(n) ((n) & 0xff)
|
||||
#define __ATM_LM_XTRMT(n) (((n) >> 8) & 0xff)
|
||||
|
||||
#define ATM_LM_NONE 0 /* no loopback */
|
||||
|
||||
#define ATM_LM_LOC_AAL __ATM_LM_MKLOC(__ATM_LM_AAL)
|
||||
#define ATM_LM_LOC_ATM __ATM_LM_MKLOC(__ATM_LM_ATM)
|
||||
#define ATM_LM_LOC_PHY __ATM_LM_MKLOC(__ATM_LM_PHY)
|
||||
#define ATM_LM_LOC_ANALOG __ATM_LM_MKLOC(__ATM_LM_ANALOG)
|
||||
|
||||
#define ATM_LM_RMT_AAL __ATM_LM_MKRMT(__ATM_LM_AAL)
|
||||
#define ATM_LM_RMT_ATM __ATM_LM_MKRMT(__ATM_LM_ATM)
|
||||
#define ATM_LM_RMT_PHY __ATM_LM_MKRMT(__ATM_LM_PHY)
|
||||
#define ATM_LM_RMT_ANALOG __ATM_LM_MKRMT(__ATM_LM_ANALOG)
|
||||
|
||||
/*
|
||||
* Note: ATM_LM_LOC_* and ATM_LM_RMT_* can be combined, provided that
|
||||
* __ATM_LM_XTLOC(x) <= __ATM_LM_XTRMT(x)
|
||||
*/
|
||||
|
||||
|
||||
struct atm_iobuf {
|
||||
int length;
|
||||
void __user *buffer;
|
||||
};
|
||||
|
||||
/* for ATM_GETCIRANGE / ATM_SETCIRANGE */
|
||||
|
||||
#define ATM_CI_MAX -1 /* use maximum range of VPI/VCI */
|
||||
|
||||
struct atm_cirange {
|
||||
signed char vpi_bits; /* 1..8, ATM_CI_MAX (-1) for maximum */
|
||||
signed char vci_bits; /* 1..16, ATM_CI_MAX (-1) for maximum */
|
||||
};
|
||||
|
||||
/* for ATM_SETSC; actually taken from the ATM_VF number space */
|
||||
|
||||
#define ATM_SC_RX 1024 /* enable RX single-copy */
|
||||
#define ATM_SC_TX 2048 /* enable TX single-copy */
|
||||
|
||||
#define ATM_BACKLOG_DEFAULT 32 /* if we get more, we're likely to time out
|
||||
anyway */
|
||||
|
||||
/* MF: change_qos (Modify) flags */
|
||||
|
||||
#define ATM_MF_IMMED 1 /* Block until change is effective */
|
||||
#define ATM_MF_INC_RSV 2 /* Change reservation on increase */
|
||||
#define ATM_MF_INC_SHP 4 /* Change shaping on increase */
|
||||
#define ATM_MF_DEC_RSV 8 /* Change reservation on decrease */
|
||||
#define ATM_MF_DEC_SHP 16 /* Change shaping on decrease */
|
||||
#define ATM_MF_BWD 32 /* Set the backward direction parameters */
|
||||
|
||||
#define ATM_MF_SET (ATM_MF_INC_RSV | ATM_MF_INC_SHP | ATM_MF_DEC_RSV | \
|
||||
ATM_MF_DEC_SHP | ATM_MF_BWD)
|
||||
|
||||
/*
|
||||
* ATM_VS_* are used to express VC state in a human-friendly way.
|
||||
*/
|
||||
|
||||
#define ATM_VS_IDLE 0 /* VC is not used */
|
||||
#define ATM_VS_CONNECTED 1 /* VC is connected */
|
||||
#define ATM_VS_CLOSING 2 /* VC is closing */
|
||||
#define ATM_VS_LISTEN 3 /* VC is listening for incoming setups */
|
||||
#define ATM_VS_INUSE 4 /* VC is in use (registered with atmsigd) */
|
||||
#define ATM_VS_BOUND 5 /* VC is bound */
|
||||
|
||||
#define ATM_VS2TXT_MAP \
|
||||
"IDLE", "CONNECTED", "CLOSING", "LISTEN", "INUSE", "BOUND"
|
||||
|
||||
#define ATM_VF2TXT_MAP \
|
||||
"ADDR", "READY", "PARTIAL", "REGIS", \
|
||||
"RELEASED", "HASQOS", "LISTEN", "META", \
|
||||
"256", "512", "1024", "2048", \
|
||||
"SESSION", "HASSAP", "BOUND", "CLOSE"
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/wait.h> /* wait_queue_head_t */
|
||||
#include <linux/time.h> /* struct timeval */
|
||||
#include <linux/net.h>
|
||||
|
|
@ -221,6 +11,7 @@ struct atm_cirange {
|
|||
#include <linux/uio.h>
|
||||
#include <net/sock.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <uapi/linux/atmdev.h>
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
#include <linux/proc_fs.h>
|
||||
|
|
@ -521,6 +312,4 @@ void deregister_atm_ioctl(struct atm_ioctl *);
|
|||
int register_atmdevice_notifier(struct notifier_block *nb);
|
||||
void unregister_atmdevice_notifier(struct notifier_block *nb);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -20,389 +20,11 @@
|
|||
* Written by Rickard E. (Rik) Faith <faith@redhat.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_AUDIT_H_
|
||||
#define _LINUX_AUDIT_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/elf-em.h>
|
||||
#include <linux/ptrace.h>
|
||||
|
||||
/* The netlink messages for the audit system is divided into blocks:
|
||||
* 1000 - 1099 are for commanding the audit system
|
||||
* 1100 - 1199 user space trusted application messages
|
||||
* 1200 - 1299 messages internal to the audit daemon
|
||||
* 1300 - 1399 audit event messages
|
||||
* 1400 - 1499 SE Linux use
|
||||
* 1500 - 1599 kernel LSPP events
|
||||
* 1600 - 1699 kernel crypto events
|
||||
* 1700 - 1799 kernel anomaly records
|
||||
* 1800 - 1899 kernel integrity events
|
||||
* 1900 - 1999 future kernel use
|
||||
* 2000 is for otherwise unclassified kernel audit messages (legacy)
|
||||
* 2001 - 2099 unused (kernel)
|
||||
* 2100 - 2199 user space anomaly records
|
||||
* 2200 - 2299 user space actions taken in response to anomalies
|
||||
* 2300 - 2399 user space generated LSPP events
|
||||
* 2400 - 2499 user space crypto events
|
||||
* 2500 - 2999 future user space (maybe integrity labels and related events)
|
||||
*
|
||||
* Messages from 1000-1199 are bi-directional. 1200-1299 & 2100 - 2999 are
|
||||
* exclusively user space. 1300-2099 is kernel --> user space
|
||||
* communication.
|
||||
*/
|
||||
#define AUDIT_GET 1000 /* Get status */
|
||||
#define AUDIT_SET 1001 /* Set status (enable/disable/auditd) */
|
||||
#define AUDIT_LIST 1002 /* List syscall rules -- deprecated */
|
||||
#define AUDIT_ADD 1003 /* Add syscall rule -- deprecated */
|
||||
#define AUDIT_DEL 1004 /* Delete syscall rule -- deprecated */
|
||||
#define AUDIT_USER 1005 /* Message from userspace -- deprecated */
|
||||
#define AUDIT_LOGIN 1006 /* Define the login id and information */
|
||||
#define AUDIT_WATCH_INS 1007 /* Insert file/dir watch entry */
|
||||
#define AUDIT_WATCH_REM 1008 /* Remove file/dir watch entry */
|
||||
#define AUDIT_WATCH_LIST 1009 /* List all file/dir watches */
|
||||
#define AUDIT_SIGNAL_INFO 1010 /* Get info about sender of signal to auditd */
|
||||
#define AUDIT_ADD_RULE 1011 /* Add syscall filtering rule */
|
||||
#define AUDIT_DEL_RULE 1012 /* Delete syscall filtering rule */
|
||||
#define AUDIT_LIST_RULES 1013 /* List syscall filtering rules */
|
||||
#define AUDIT_TRIM 1014 /* Trim junk from watched tree */
|
||||
#define AUDIT_MAKE_EQUIV 1015 /* Append to watched tree */
|
||||
#define AUDIT_TTY_GET 1016 /* Get TTY auditing status */
|
||||
#define AUDIT_TTY_SET 1017 /* Set TTY auditing status */
|
||||
|
||||
#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */
|
||||
#define AUDIT_USER_AVC 1107 /* We filter this differently */
|
||||
#define AUDIT_USER_TTY 1124 /* Non-ICANON TTY input meaning */
|
||||
#define AUDIT_LAST_USER_MSG 1199
|
||||
#define AUDIT_FIRST_USER_MSG2 2100 /* More user space messages */
|
||||
#define AUDIT_LAST_USER_MSG2 2999
|
||||
|
||||
#define AUDIT_DAEMON_START 1200 /* Daemon startup record */
|
||||
#define AUDIT_DAEMON_END 1201 /* Daemon normal stop record */
|
||||
#define AUDIT_DAEMON_ABORT 1202 /* Daemon error stop record */
|
||||
#define AUDIT_DAEMON_CONFIG 1203 /* Daemon config change */
|
||||
|
||||
#define AUDIT_SYSCALL 1300 /* Syscall event */
|
||||
/* #define AUDIT_FS_WATCH 1301 * Deprecated */
|
||||
#define AUDIT_PATH 1302 /* Filename path information */
|
||||
#define AUDIT_IPC 1303 /* IPC record */
|
||||
#define AUDIT_SOCKETCALL 1304 /* sys_socketcall arguments */
|
||||
#define AUDIT_CONFIG_CHANGE 1305 /* Audit system configuration change */
|
||||
#define AUDIT_SOCKADDR 1306 /* sockaddr copied as syscall arg */
|
||||
#define AUDIT_CWD 1307 /* Current working directory */
|
||||
#define AUDIT_EXECVE 1309 /* execve arguments */
|
||||
#define AUDIT_IPC_SET_PERM 1311 /* IPC new permissions record type */
|
||||
#define AUDIT_MQ_OPEN 1312 /* POSIX MQ open record type */
|
||||
#define AUDIT_MQ_SENDRECV 1313 /* POSIX MQ send/receive record type */
|
||||
#define AUDIT_MQ_NOTIFY 1314 /* POSIX MQ notify record type */
|
||||
#define AUDIT_MQ_GETSETATTR 1315 /* POSIX MQ get/set attribute record type */
|
||||
#define AUDIT_KERNEL_OTHER 1316 /* For use by 3rd party modules */
|
||||
#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */
|
||||
#define AUDIT_OBJ_PID 1318 /* ptrace target */
|
||||
#define AUDIT_TTY 1319 /* Input on an administrative TTY */
|
||||
#define AUDIT_EOE 1320 /* End of multi-record event */
|
||||
#define AUDIT_BPRM_FCAPS 1321 /* Information about fcaps increasing perms */
|
||||
#define AUDIT_CAPSET 1322 /* Record showing argument to sys_capset */
|
||||
#define AUDIT_MMAP 1323 /* Record showing descriptor and flags in mmap */
|
||||
#define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */
|
||||
#define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */
|
||||
|
||||
#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */
|
||||
#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */
|
||||
#define AUDIT_AVC_PATH 1402 /* dentry, vfsmount pair from avc */
|
||||
#define AUDIT_MAC_POLICY_LOAD 1403 /* Policy file load */
|
||||
#define AUDIT_MAC_STATUS 1404 /* Changed enforcing,permissive,off */
|
||||
#define AUDIT_MAC_CONFIG_CHANGE 1405 /* Changes to booleans */
|
||||
#define AUDIT_MAC_UNLBL_ALLOW 1406 /* NetLabel: allow unlabeled traffic */
|
||||
#define AUDIT_MAC_CIPSOV4_ADD 1407 /* NetLabel: add CIPSOv4 DOI entry */
|
||||
#define AUDIT_MAC_CIPSOV4_DEL 1408 /* NetLabel: del CIPSOv4 DOI entry */
|
||||
#define AUDIT_MAC_MAP_ADD 1409 /* NetLabel: add LSM domain mapping */
|
||||
#define AUDIT_MAC_MAP_DEL 1410 /* NetLabel: del LSM domain mapping */
|
||||
#define AUDIT_MAC_IPSEC_ADDSA 1411 /* Not used */
|
||||
#define AUDIT_MAC_IPSEC_DELSA 1412 /* Not used */
|
||||
#define AUDIT_MAC_IPSEC_ADDSPD 1413 /* Not used */
|
||||
#define AUDIT_MAC_IPSEC_DELSPD 1414 /* Not used */
|
||||
#define AUDIT_MAC_IPSEC_EVENT 1415 /* Audit an IPSec event */
|
||||
#define AUDIT_MAC_UNLBL_STCADD 1416 /* NetLabel: add a static label */
|
||||
#define AUDIT_MAC_UNLBL_STCDEL 1417 /* NetLabel: del a static label */
|
||||
|
||||
#define AUDIT_FIRST_KERN_ANOM_MSG 1700
|
||||
#define AUDIT_LAST_KERN_ANOM_MSG 1799
|
||||
#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
|
||||
#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */
|
||||
#define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */
|
||||
#define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */
|
||||
#define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */
|
||||
#define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */
|
||||
#define AUDIT_INTEGRITY_HASH 1803 /* Integrity HASH type */
|
||||
#define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */
|
||||
#define AUDIT_INTEGRITY_RULE 1805 /* policy rule */
|
||||
|
||||
#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
|
||||
|
||||
/* Rule flags */
|
||||
#define AUDIT_FILTER_USER 0x00 /* Apply rule to user-generated messages */
|
||||
#define AUDIT_FILTER_TASK 0x01 /* Apply rule at task creation (not syscall) */
|
||||
#define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */
|
||||
#define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */
|
||||
#define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */
|
||||
#define AUDIT_FILTER_TYPE 0x05 /* Apply rule at audit_log_start */
|
||||
|
||||
#define AUDIT_NR_FILTERS 6
|
||||
|
||||
#define AUDIT_FILTER_PREPEND 0x10 /* Prepend to front of list */
|
||||
|
||||
/* Rule actions */
|
||||
#define AUDIT_NEVER 0 /* Do not build context if rule matches */
|
||||
#define AUDIT_POSSIBLE 1 /* Build context if rule matches */
|
||||
#define AUDIT_ALWAYS 2 /* Generate audit record if rule matches */
|
||||
|
||||
/* Rule structure sizes -- if these change, different AUDIT_ADD and
|
||||
* AUDIT_LIST commands must be implemented. */
|
||||
#define AUDIT_MAX_FIELDS 64
|
||||
#define AUDIT_MAX_KEY_LEN 256
|
||||
#define AUDIT_BITMASK_SIZE 64
|
||||
#define AUDIT_WORD(nr) ((__u32)((nr)/32))
|
||||
#define AUDIT_BIT(nr) (1 << ((nr) - AUDIT_WORD(nr)*32))
|
||||
|
||||
#define AUDIT_SYSCALL_CLASSES 16
|
||||
#define AUDIT_CLASS_DIR_WRITE 0
|
||||
#define AUDIT_CLASS_DIR_WRITE_32 1
|
||||
#define AUDIT_CLASS_CHATTR 2
|
||||
#define AUDIT_CLASS_CHATTR_32 3
|
||||
#define AUDIT_CLASS_READ 4
|
||||
#define AUDIT_CLASS_READ_32 5
|
||||
#define AUDIT_CLASS_WRITE 6
|
||||
#define AUDIT_CLASS_WRITE_32 7
|
||||
#define AUDIT_CLASS_SIGNAL 8
|
||||
#define AUDIT_CLASS_SIGNAL_32 9
|
||||
|
||||
/* This bitmask is used to validate user input. It represents all bits that
|
||||
* are currently used in an audit field constant understood by the kernel.
|
||||
* If you are adding a new #define AUDIT_<whatever>, please ensure that
|
||||
* AUDIT_UNUSED_BITS is updated if need be. */
|
||||
#define AUDIT_UNUSED_BITS 0x07FFFC00
|
||||
|
||||
/* AUDIT_FIELD_COMPARE rule list */
|
||||
#define AUDIT_COMPARE_UID_TO_OBJ_UID 1
|
||||
#define AUDIT_COMPARE_GID_TO_OBJ_GID 2
|
||||
#define AUDIT_COMPARE_EUID_TO_OBJ_UID 3
|
||||
#define AUDIT_COMPARE_EGID_TO_OBJ_GID 4
|
||||
#define AUDIT_COMPARE_AUID_TO_OBJ_UID 5
|
||||
#define AUDIT_COMPARE_SUID_TO_OBJ_UID 6
|
||||
#define AUDIT_COMPARE_SGID_TO_OBJ_GID 7
|
||||
#define AUDIT_COMPARE_FSUID_TO_OBJ_UID 8
|
||||
#define AUDIT_COMPARE_FSGID_TO_OBJ_GID 9
|
||||
|
||||
#define AUDIT_COMPARE_UID_TO_AUID 10
|
||||
#define AUDIT_COMPARE_UID_TO_EUID 11
|
||||
#define AUDIT_COMPARE_UID_TO_FSUID 12
|
||||
#define AUDIT_COMPARE_UID_TO_SUID 13
|
||||
|
||||
#define AUDIT_COMPARE_AUID_TO_FSUID 14
|
||||
#define AUDIT_COMPARE_AUID_TO_SUID 15
|
||||
#define AUDIT_COMPARE_AUID_TO_EUID 16
|
||||
|
||||
#define AUDIT_COMPARE_EUID_TO_SUID 17
|
||||
#define AUDIT_COMPARE_EUID_TO_FSUID 18
|
||||
|
||||
#define AUDIT_COMPARE_SUID_TO_FSUID 19
|
||||
|
||||
#define AUDIT_COMPARE_GID_TO_EGID 20
|
||||
#define AUDIT_COMPARE_GID_TO_FSGID 21
|
||||
#define AUDIT_COMPARE_GID_TO_SGID 22
|
||||
|
||||
#define AUDIT_COMPARE_EGID_TO_FSGID 23
|
||||
#define AUDIT_COMPARE_EGID_TO_SGID 24
|
||||
#define AUDIT_COMPARE_SGID_TO_FSGID 25
|
||||
|
||||
#define AUDIT_MAX_FIELD_COMPARE AUDIT_COMPARE_SGID_TO_FSGID
|
||||
|
||||
/* Rule fields */
|
||||
/* These are useful when checking the
|
||||
* task structure at task creation time
|
||||
* (AUDIT_PER_TASK). */
|
||||
#define AUDIT_PID 0
|
||||
#define AUDIT_UID 1
|
||||
#define AUDIT_EUID 2
|
||||
#define AUDIT_SUID 3
|
||||
#define AUDIT_FSUID 4
|
||||
#define AUDIT_GID 5
|
||||
#define AUDIT_EGID 6
|
||||
#define AUDIT_SGID 7
|
||||
#define AUDIT_FSGID 8
|
||||
#define AUDIT_LOGINUID 9
|
||||
#define AUDIT_PERS 10
|
||||
#define AUDIT_ARCH 11
|
||||
#define AUDIT_MSGTYPE 12
|
||||
#define AUDIT_SUBJ_USER 13 /* security label user */
|
||||
#define AUDIT_SUBJ_ROLE 14 /* security label role */
|
||||
#define AUDIT_SUBJ_TYPE 15 /* security label type */
|
||||
#define AUDIT_SUBJ_SEN 16 /* security label sensitivity label */
|
||||
#define AUDIT_SUBJ_CLR 17 /* security label clearance label */
|
||||
#define AUDIT_PPID 18
|
||||
#define AUDIT_OBJ_USER 19
|
||||
#define AUDIT_OBJ_ROLE 20
|
||||
#define AUDIT_OBJ_TYPE 21
|
||||
#define AUDIT_OBJ_LEV_LOW 22
|
||||
#define AUDIT_OBJ_LEV_HIGH 23
|
||||
|
||||
/* These are ONLY useful when checking
|
||||
* at syscall exit time (AUDIT_AT_EXIT). */
|
||||
#define AUDIT_DEVMAJOR 100
|
||||
#define AUDIT_DEVMINOR 101
|
||||
#define AUDIT_INODE 102
|
||||
#define AUDIT_EXIT 103
|
||||
#define AUDIT_SUCCESS 104 /* exit >= 0; value ignored */
|
||||
#define AUDIT_WATCH 105
|
||||
#define AUDIT_PERM 106
|
||||
#define AUDIT_DIR 107
|
||||
#define AUDIT_FILETYPE 108
|
||||
#define AUDIT_OBJ_UID 109
|
||||
#define AUDIT_OBJ_GID 110
|
||||
#define AUDIT_FIELD_COMPARE 111
|
||||
|
||||
#define AUDIT_ARG0 200
|
||||
#define AUDIT_ARG1 (AUDIT_ARG0+1)
|
||||
#define AUDIT_ARG2 (AUDIT_ARG0+2)
|
||||
#define AUDIT_ARG3 (AUDIT_ARG0+3)
|
||||
|
||||
#define AUDIT_FILTERKEY 210
|
||||
|
||||
#define AUDIT_NEGATE 0x80000000
|
||||
|
||||
/* These are the supported operators.
|
||||
* 4 2 1 8
|
||||
* = > < ?
|
||||
* ----------
|
||||
* 0 0 0 0 00 nonsense
|
||||
* 0 0 0 1 08 & bit mask
|
||||
* 0 0 1 0 10 <
|
||||
* 0 1 0 0 20 >
|
||||
* 0 1 1 0 30 !=
|
||||
* 1 0 0 0 40 =
|
||||
* 1 0 0 1 48 &= bit test
|
||||
* 1 0 1 0 50 <=
|
||||
* 1 1 0 0 60 >=
|
||||
* 1 1 1 1 78 all operators
|
||||
*/
|
||||
#define AUDIT_BIT_MASK 0x08000000
|
||||
#define AUDIT_LESS_THAN 0x10000000
|
||||
#define AUDIT_GREATER_THAN 0x20000000
|
||||
#define AUDIT_NOT_EQUAL 0x30000000
|
||||
#define AUDIT_EQUAL 0x40000000
|
||||
#define AUDIT_BIT_TEST (AUDIT_BIT_MASK|AUDIT_EQUAL)
|
||||
#define AUDIT_LESS_THAN_OR_EQUAL (AUDIT_LESS_THAN|AUDIT_EQUAL)
|
||||
#define AUDIT_GREATER_THAN_OR_EQUAL (AUDIT_GREATER_THAN|AUDIT_EQUAL)
|
||||
#define AUDIT_OPERATORS (AUDIT_EQUAL|AUDIT_NOT_EQUAL|AUDIT_BIT_MASK)
|
||||
|
||||
enum {
|
||||
Audit_equal,
|
||||
Audit_not_equal,
|
||||
Audit_bitmask,
|
||||
Audit_bittest,
|
||||
Audit_lt,
|
||||
Audit_gt,
|
||||
Audit_le,
|
||||
Audit_ge,
|
||||
Audit_bad
|
||||
};
|
||||
|
||||
/* Status symbols */
|
||||
/* Mask values */
|
||||
#define AUDIT_STATUS_ENABLED 0x0001
|
||||
#define AUDIT_STATUS_FAILURE 0x0002
|
||||
#define AUDIT_STATUS_PID 0x0004
|
||||
#define AUDIT_STATUS_RATE_LIMIT 0x0008
|
||||
#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
|
||||
/* Failure-to-log actions */
|
||||
#define AUDIT_FAIL_SILENT 0
|
||||
#define AUDIT_FAIL_PRINTK 1
|
||||
#define AUDIT_FAIL_PANIC 2
|
||||
|
||||
/* distinguish syscall tables */
|
||||
#define __AUDIT_ARCH_64BIT 0x80000000
|
||||
#define __AUDIT_ARCH_LE 0x40000000
|
||||
#define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_ARMEB (EM_ARM)
|
||||
#define AUDIT_ARCH_CRIS (EM_CRIS|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_FRV (EM_FRV)
|
||||
#define AUDIT_ARCH_H8300 (EM_H8_300)
|
||||
#define AUDIT_ARCH_I386 (EM_386|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_IA64 (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_M32R (EM_M32R)
|
||||
#define AUDIT_ARCH_M68K (EM_68K)
|
||||
#define AUDIT_ARCH_MIPS (EM_MIPS)
|
||||
#define AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT)
|
||||
#define AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_OPENRISC (EM_OPENRISC)
|
||||
#define AUDIT_ARCH_PARISC (EM_PARISC)
|
||||
#define AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT)
|
||||
#define AUDIT_ARCH_PPC (EM_PPC)
|
||||
#define AUDIT_ARCH_PPC64 (EM_PPC64|__AUDIT_ARCH_64BIT)
|
||||
#define AUDIT_ARCH_S390 (EM_S390)
|
||||
#define AUDIT_ARCH_S390X (EM_S390|__AUDIT_ARCH_64BIT)
|
||||
#define AUDIT_ARCH_SH (EM_SH)
|
||||
#define AUDIT_ARCH_SHEL (EM_SH|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_SH64 (EM_SH|__AUDIT_ARCH_64BIT)
|
||||
#define AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
|
||||
#define AUDIT_ARCH_SPARC (EM_SPARC)
|
||||
#define AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT)
|
||||
#define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
|
||||
|
||||
#define AUDIT_PERM_EXEC 1
|
||||
#define AUDIT_PERM_WRITE 2
|
||||
#define AUDIT_PERM_READ 4
|
||||
#define AUDIT_PERM_ATTR 8
|
||||
|
||||
struct audit_status {
|
||||
__u32 mask; /* Bit mask for valid entries */
|
||||
__u32 enabled; /* 1 = enabled, 0 = disabled */
|
||||
__u32 failure; /* Failure-to-log action */
|
||||
__u32 pid; /* pid of auditd process */
|
||||
__u32 rate_limit; /* messages rate limit (per second) */
|
||||
__u32 backlog_limit; /* waiting messages limit */
|
||||
__u32 lost; /* messages lost */
|
||||
__u32 backlog; /* messages waiting in queue */
|
||||
};
|
||||
|
||||
struct audit_tty_status {
|
||||
__u32 enabled; /* 1 = enabled, 0 = disabled */
|
||||
};
|
||||
|
||||
/* audit_rule_data supports filter rules with both integer and string
|
||||
* fields. It corresponds with AUDIT_ADD_RULE, AUDIT_DEL_RULE and
|
||||
* AUDIT_LIST_RULES requests.
|
||||
*/
|
||||
struct audit_rule_data {
|
||||
__u32 flags; /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */
|
||||
__u32 action; /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */
|
||||
__u32 field_count;
|
||||
__u32 mask[AUDIT_BITMASK_SIZE]; /* syscall(s) affected */
|
||||
__u32 fields[AUDIT_MAX_FIELDS];
|
||||
__u32 values[AUDIT_MAX_FIELDS];
|
||||
__u32 fieldflags[AUDIT_MAX_FIELDS];
|
||||
__u32 buflen; /* total length of string fields */
|
||||
char buf[0]; /* string fields buffer */
|
||||
};
|
||||
|
||||
/* audit_rule is supported to maintain backward compatibility with
|
||||
* userspace. It supports integer fields only and corresponds to
|
||||
* AUDIT_ADD, AUDIT_DEL and AUDIT_LIST requests.
|
||||
*/
|
||||
struct audit_rule { /* for AUDIT_LIST, AUDIT_ADD, and AUDIT_DEL */
|
||||
__u32 flags; /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */
|
||||
__u32 action; /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */
|
||||
__u32 field_count;
|
||||
__u32 mask[AUDIT_BITMASK_SIZE];
|
||||
__u32 fields[AUDIT_MAX_FIELDS];
|
||||
__u32 values[AUDIT_MAX_FIELDS];
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/sched.h>
|
||||
#include <uapi/linux/audit.h>
|
||||
|
||||
struct audit_sig_info {
|
||||
uid_t uid;
|
||||
|
|
@ -860,4 +482,3 @@ static inline void audit_log_string(struct audit_buffer *ab, const char *buf)
|
|||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -10,77 +10,11 @@
|
|||
*
|
||||
* ----------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#ifndef _LINUX_AUTO_FS_H
|
||||
#define _LINUX_AUTO_FS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/fs.h>
|
||||
#include <linux/limits.h>
|
||||
#include <linux/ioctl.h>
|
||||
#else
|
||||
#include <sys/ioctl.h>
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/* This file describes autofs v3 */
|
||||
#define AUTOFS_PROTO_VERSION 3
|
||||
|
||||
/* Range of protocol versions defined */
|
||||
#define AUTOFS_MAX_PROTO_VERSION AUTOFS_PROTO_VERSION
|
||||
#define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION
|
||||
|
||||
/*
|
||||
* Architectures where both 32- and 64-bit binaries can be executed
|
||||
* on 64-bit kernels need this. This keeps the structure format
|
||||
* uniform, and makes sure the wait_queue_token isn't too big to be
|
||||
* passed back down to the kernel.
|
||||
*
|
||||
* This assumes that on these architectures:
|
||||
* mode 32 bit 64 bit
|
||||
* -------------------------
|
||||
* int 32 bit 32 bit
|
||||
* long 32 bit 64 bit
|
||||
*
|
||||
* If so, 32-bit user-space code should be backwards compatible.
|
||||
*/
|
||||
|
||||
#if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \
|
||||
|| defined(__powerpc__) || defined(__s390__)
|
||||
typedef unsigned int autofs_wqt_t;
|
||||
#else
|
||||
typedef unsigned long autofs_wqt_t;
|
||||
#endif
|
||||
|
||||
/* Packet types */
|
||||
#define autofs_ptype_missing 0 /* Missing entry (mount request) */
|
||||
#define autofs_ptype_expire 1 /* Expire entry (umount request) */
|
||||
|
||||
struct autofs_packet_hdr {
|
||||
int proto_version; /* Protocol version */
|
||||
int type; /* Type of packet */
|
||||
};
|
||||
|
||||
struct autofs_packet_missing {
|
||||
struct autofs_packet_hdr hdr;
|
||||
autofs_wqt_t wait_queue_token;
|
||||
int len;
|
||||
char name[NAME_MAX+1];
|
||||
};
|
||||
|
||||
/* v3 expire (via ioctl) */
|
||||
struct autofs_packet_expire {
|
||||
struct autofs_packet_hdr hdr;
|
||||
int len;
|
||||
char name[NAME_MAX+1];
|
||||
};
|
||||
|
||||
#define AUTOFS_IOC_READY _IO(0x93,0x60)
|
||||
#define AUTOFS_IOC_FAIL _IO(0x93,0x61)
|
||||
#define AUTOFS_IOC_CATATONIC _IO(0x93,0x62)
|
||||
#define AUTOFS_IOC_PROTOVER _IOR(0x93,0x63,int)
|
||||
#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93,0x64,compat_ulong_t)
|
||||
#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93,0x64,unsigned long)
|
||||
#define AUTOFS_IOC_EXPIRE _IOR(0x93,0x65,struct autofs_packet_expire)
|
||||
|
||||
#include <uapi/linux/auto_fs.h>
|
||||
#endif /* _LINUX_AUTO_FS_H */
|
||||
|
|
|
|||
|
|
@ -1,39 +1,8 @@
|
|||
#ifndef _LINUX_AUXVEC_H
|
||||
#define _LINUX_AUXVEC_H
|
||||
|
||||
#include <asm/auxvec.h>
|
||||
#include <uapi/linux/auxvec.h>
|
||||
|
||||
/* Symbolic values for the entries in the auxiliary table
|
||||
put on the initial stack */
|
||||
#define AT_NULL 0 /* end of vector */
|
||||
#define AT_IGNORE 1 /* entry should be ignored */
|
||||
#define AT_EXECFD 2 /* file descriptor of program */
|
||||
#define AT_PHDR 3 /* program headers for program */
|
||||
#define AT_PHENT 4 /* size of program header entry */
|
||||
#define AT_PHNUM 5 /* number of program headers */
|
||||
#define AT_PAGESZ 6 /* system page size */
|
||||
#define AT_BASE 7 /* base address of interpreter */
|
||||
#define AT_FLAGS 8 /* flags */
|
||||
#define AT_ENTRY 9 /* entry point of program */
|
||||
#define AT_NOTELF 10 /* program is not ELF */
|
||||
#define AT_UID 11 /* real uid */
|
||||
#define AT_EUID 12 /* effective uid */
|
||||
#define AT_GID 13 /* real gid */
|
||||
#define AT_EGID 14 /* effective gid */
|
||||
#define AT_PLATFORM 15 /* string identifying CPU for optimizations */
|
||||
#define AT_HWCAP 16 /* arch dependent hints at CPU capabilities */
|
||||
#define AT_CLKTCK 17 /* frequency at which times() increments */
|
||||
/* AT_* values 18 through 22 are reserved */
|
||||
#define AT_SECURE 23 /* secure mode boolean */
|
||||
#define AT_BASE_PLATFORM 24 /* string identifying real platform, may
|
||||
* differ from AT_PLATFORM. */
|
||||
#define AT_RANDOM 25 /* address of 16 random bytes */
|
||||
|
||||
#define AT_EXECFN 31 /* filename of program */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define AT_VECTOR_SIZE_BASE 19 /* NEW_AUX_ENT entries in auxiliary table */
|
||||
/* number of "#define AT_.*" above, minus {AT_NULL, AT_IGNORE, AT_NOTELF} */
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_AUXVEC_H */
|
||||
|
|
|
|||
|
|
@ -1,26 +1,10 @@
|
|||
#ifndef _LINUX_BINFMTS_H
|
||||
#define _LINUX_BINFMTS_H
|
||||
|
||||
#include <linux/capability.h>
|
||||
|
||||
struct pt_regs;
|
||||
|
||||
/*
|
||||
* These are the maximum length and maximum number of strings passed to the
|
||||
* execve() system call. MAX_ARG_STRLEN is essentially random but serves to
|
||||
* prevent the kernel from being unduly impacted by misaddressed pointers.
|
||||
* MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
|
||||
*/
|
||||
#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
|
||||
#define MAX_ARG_STRINGS 0x7FFFFFFF
|
||||
|
||||
/* sizeof(linux_binprm->buf) */
|
||||
#define BINPRM_BUF_SIZE 128
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/sched.h>
|
||||
#include <linux/unistd.h>
|
||||
#include <asm/exec.h>
|
||||
#include <uapi/linux/binfmts.h>
|
||||
|
||||
#define CORENAME_MAX_SIZE 128
|
||||
|
||||
|
|
@ -141,5 +125,4 @@ extern void free_bprm(struct linux_binprm *);
|
|||
extern void ret_from_kernel_execve(struct pt_regs *normal) __noreturn;
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _LINUX_BINFMTS_H */
|
||||
|
|
|
|||
|
|
@ -1,150 +1,11 @@
|
|||
#ifndef BLKTRACE_H
|
||||
#define BLKTRACE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/relay.h>
|
||||
#include <linux/compat.h>
|
||||
#endif
|
||||
#include <uapi/linux/blktrace_api.h>
|
||||
|
||||
/*
|
||||
* Trace categories
|
||||
*/
|
||||
enum blktrace_cat {
|
||||
BLK_TC_READ = 1 << 0, /* reads */
|
||||
BLK_TC_WRITE = 1 << 1, /* writes */
|
||||
BLK_TC_FLUSH = 1 << 2, /* flush */
|
||||
BLK_TC_SYNC = 1 << 3, /* sync IO */
|
||||
BLK_TC_SYNCIO = BLK_TC_SYNC,
|
||||
BLK_TC_QUEUE = 1 << 4, /* queueing/merging */
|
||||
BLK_TC_REQUEUE = 1 << 5, /* requeueing */
|
||||
BLK_TC_ISSUE = 1 << 6, /* issue */
|
||||
BLK_TC_COMPLETE = 1 << 7, /* completions */
|
||||
BLK_TC_FS = 1 << 8, /* fs requests */
|
||||
BLK_TC_PC = 1 << 9, /* pc requests */
|
||||
BLK_TC_NOTIFY = 1 << 10, /* special message */
|
||||
BLK_TC_AHEAD = 1 << 11, /* readahead */
|
||||
BLK_TC_META = 1 << 12, /* metadata */
|
||||
BLK_TC_DISCARD = 1 << 13, /* discard requests */
|
||||
BLK_TC_DRV_DATA = 1 << 14, /* binary per-driver data */
|
||||
BLK_TC_FUA = 1 << 15, /* fua requests */
|
||||
|
||||
BLK_TC_END = 1 << 15, /* we've run out of bits! */
|
||||
};
|
||||
|
||||
#define BLK_TC_SHIFT (16)
|
||||
#define BLK_TC_ACT(act) ((act) << BLK_TC_SHIFT)
|
||||
|
||||
/*
|
||||
* Basic trace actions
|
||||
*/
|
||||
enum blktrace_act {
|
||||
__BLK_TA_QUEUE = 1, /* queued */
|
||||
__BLK_TA_BACKMERGE, /* back merged to existing rq */
|
||||
__BLK_TA_FRONTMERGE, /* front merge to existing rq */
|
||||
__BLK_TA_GETRQ, /* allocated new request */
|
||||
__BLK_TA_SLEEPRQ, /* sleeping on rq allocation */
|
||||
__BLK_TA_REQUEUE, /* request requeued */
|
||||
__BLK_TA_ISSUE, /* sent to driver */
|
||||
__BLK_TA_COMPLETE, /* completed by driver */
|
||||
__BLK_TA_PLUG, /* queue was plugged */
|
||||
__BLK_TA_UNPLUG_IO, /* queue was unplugged by io */
|
||||
__BLK_TA_UNPLUG_TIMER, /* queue was unplugged by timer */
|
||||
__BLK_TA_INSERT, /* insert request */
|
||||
__BLK_TA_SPLIT, /* bio was split */
|
||||
__BLK_TA_BOUNCE, /* bio was bounced */
|
||||
__BLK_TA_REMAP, /* bio was remapped */
|
||||
__BLK_TA_ABORT, /* request aborted */
|
||||
__BLK_TA_DRV_DATA, /* driver-specific binary data */
|
||||
};
|
||||
|
||||
/*
|
||||
* Notify events.
|
||||
*/
|
||||
enum blktrace_notify {
|
||||
__BLK_TN_PROCESS = 0, /* establish pid/name mapping */
|
||||
__BLK_TN_TIMESTAMP, /* include system clock */
|
||||
__BLK_TN_MESSAGE, /* Character string message */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Trace actions in full. Additionally, read or write is masked
|
||||
*/
|
||||
#define BLK_TA_QUEUE (__BLK_TA_QUEUE | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_BACKMERGE (__BLK_TA_BACKMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_FRONTMERGE (__BLK_TA_FRONTMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_GETRQ (__BLK_TA_GETRQ | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_SLEEPRQ (__BLK_TA_SLEEPRQ | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_REQUEUE (__BLK_TA_REQUEUE | BLK_TC_ACT(BLK_TC_REQUEUE))
|
||||
#define BLK_TA_ISSUE (__BLK_TA_ISSUE | BLK_TC_ACT(BLK_TC_ISSUE))
|
||||
#define BLK_TA_COMPLETE (__BLK_TA_COMPLETE| BLK_TC_ACT(BLK_TC_COMPLETE))
|
||||
#define BLK_TA_PLUG (__BLK_TA_PLUG | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_UNPLUG_IO (__BLK_TA_UNPLUG_IO | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_UNPLUG_TIMER (__BLK_TA_UNPLUG_TIMER | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_INSERT (__BLK_TA_INSERT | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_SPLIT (__BLK_TA_SPLIT)
|
||||
#define BLK_TA_BOUNCE (__BLK_TA_BOUNCE)
|
||||
#define BLK_TA_REMAP (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
|
||||
#define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
|
||||
|
||||
#define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
|
||||
#define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
|
||||
#define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY))
|
||||
|
||||
#define BLK_IO_TRACE_MAGIC 0x65617400
|
||||
#define BLK_IO_TRACE_VERSION 0x07
|
||||
|
||||
/*
|
||||
* The trace itself
|
||||
*/
|
||||
struct blk_io_trace {
|
||||
__u32 magic; /* MAGIC << 8 | version */
|
||||
__u32 sequence; /* event number */
|
||||
__u64 time; /* in microseconds */
|
||||
__u64 sector; /* disk offset */
|
||||
__u32 bytes; /* transfer length */
|
||||
__u32 action; /* what happened */
|
||||
__u32 pid; /* who did it */
|
||||
__u32 device; /* device number */
|
||||
__u32 cpu; /* on what cpu did it happen */
|
||||
__u16 error; /* completion error */
|
||||
__u16 pdu_len; /* length of data after this trace */
|
||||
};
|
||||
|
||||
/*
|
||||
* The remap event
|
||||
*/
|
||||
struct blk_io_trace_remap {
|
||||
__be32 device_from;
|
||||
__be32 device_to;
|
||||
__be64 sector_from;
|
||||
};
|
||||
|
||||
enum {
|
||||
Blktrace_setup = 1,
|
||||
Blktrace_running,
|
||||
Blktrace_stopped,
|
||||
};
|
||||
|
||||
#define BLKTRACE_BDEV_SIZE 32
|
||||
|
||||
/*
|
||||
* User setup structure passed with BLKTRACESTART
|
||||
*/
|
||||
struct blk_user_trace_setup {
|
||||
char name[BLKTRACE_BDEV_SIZE]; /* output */
|
||||
__u16 act_mask; /* input */
|
||||
__u32 buf_size; /* input */
|
||||
__u32 buf_nr; /* input */
|
||||
__u64 start_lba;
|
||||
__u64 end_lba;
|
||||
__u32 pid;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#if defined(CONFIG_BLK_DEV_IO_TRACE)
|
||||
|
||||
#include <linux/sysfs.h>
|
||||
|
|
@ -250,5 +111,4 @@ extern void blk_fill_rwbs(char *rwbs, u32 rw, int bytes);
|
|||
|
||||
#endif /* CONFIG_EVENT_TRACING && CONFIG_BLOCK */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,67 +1,8 @@
|
|||
#ifndef BSG_H
|
||||
#define BSG_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <uapi/linux/bsg.h>
|
||||
|
||||
#define BSG_PROTOCOL_SCSI 0
|
||||
|
||||
#define BSG_SUB_PROTOCOL_SCSI_CMD 0
|
||||
#define BSG_SUB_PROTOCOL_SCSI_TMF 1
|
||||
#define BSG_SUB_PROTOCOL_SCSI_TRANSPORT 2
|
||||
|
||||
/*
|
||||
* For flags member below
|
||||
* sg.h sg_io_hdr also has bits defined for it's flags member. However
|
||||
* none of these bits are implemented/used by bsg. The bits below are
|
||||
* allocated to not conflict with sg.h ones anyway.
|
||||
*/
|
||||
#define BSG_FLAG_Q_AT_TAIL 0x10 /* default, == 0 at this bit, is Q_AT_HEAD */
|
||||
|
||||
struct sg_io_v4 {
|
||||
__s32 guard; /* [i] 'Q' to differentiate from v3 */
|
||||
__u32 protocol; /* [i] 0 -> SCSI , .... */
|
||||
__u32 subprotocol; /* [i] 0 -> SCSI command, 1 -> SCSI task
|
||||
management function, .... */
|
||||
|
||||
__u32 request_len; /* [i] in bytes */
|
||||
__u64 request; /* [i], [*i] {SCSI: cdb} */
|
||||
__u64 request_tag; /* [i] {SCSI: task tag (only if flagged)} */
|
||||
__u32 request_attr; /* [i] {SCSI: task attribute} */
|
||||
__u32 request_priority; /* [i] {SCSI: task priority} */
|
||||
__u32 request_extra; /* [i] {spare, for padding} */
|
||||
__u32 max_response_len; /* [i] in bytes */
|
||||
__u64 response; /* [i], [*o] {SCSI: (auto)sense data} */
|
||||
|
||||
/* "dout_": data out (to device); "din_": data in (from device) */
|
||||
__u32 dout_iovec_count; /* [i] 0 -> "flat" dout transfer else
|
||||
dout_xfer points to array of iovec */
|
||||
__u32 dout_xfer_len; /* [i] bytes to be transferred to device */
|
||||
__u32 din_iovec_count; /* [i] 0 -> "flat" din transfer */
|
||||
__u32 din_xfer_len; /* [i] bytes to be transferred from device */
|
||||
__u64 dout_xferp; /* [i], [*i] */
|
||||
__u64 din_xferp; /* [i], [*o] */
|
||||
|
||||
__u32 timeout; /* [i] units: millisecond */
|
||||
__u32 flags; /* [i] bit mask */
|
||||
__u64 usr_ptr; /* [i->o] unused internally */
|
||||
__u32 spare_in; /* [i] */
|
||||
|
||||
__u32 driver_status; /* [o] 0 -> ok */
|
||||
__u32 transport_status; /* [o] 0 -> ok */
|
||||
__u32 device_status; /* [o] {SCSI: command completion status} */
|
||||
__u32 retry_delay; /* [o] {SCSI: status auxiliary information} */
|
||||
__u32 info; /* [o] additional information */
|
||||
__u32 duration; /* [o] time to complete, in milliseconds */
|
||||
__u32 response_len; /* [o] bytes of response actually written */
|
||||
__s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */
|
||||
__s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */
|
||||
__u64 generated_tag; /* [o] {SCSI: transport generated task tag} */
|
||||
__u32 spare_out; /* [o] */
|
||||
|
||||
__u32 padding;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_BSG)
|
||||
struct bsg_class_device {
|
||||
|
|
@ -89,6 +30,4 @@ static inline void bsg_unregister_queue(struct request_queue *q)
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -9,82 +9,11 @@
|
|||
*
|
||||
* ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_CAPABILITY_H
|
||||
#define _LINUX_CAPABILITY_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <uapi/linux/capability.h>
|
||||
|
||||
struct task_struct;
|
||||
|
||||
/* User-level do most of the mapping between kernel and user
|
||||
capabilities based on the version tag given by the kernel. The
|
||||
kernel might be somewhat backwards compatible, but don't bet on
|
||||
it. */
|
||||
|
||||
/* Note, cap_t, is defined by POSIX (draft) to be an "opaque" pointer to
|
||||
a set of three capability sets. The transposition of 3*the
|
||||
following structure to such a composite is better handled in a user
|
||||
library since the draft standard requires the use of malloc/free
|
||||
etc.. */
|
||||
|
||||
#define _LINUX_CAPABILITY_VERSION_1 0x19980330
|
||||
#define _LINUX_CAPABILITY_U32S_1 1
|
||||
|
||||
#define _LINUX_CAPABILITY_VERSION_2 0x20071026 /* deprecated - use v3 */
|
||||
#define _LINUX_CAPABILITY_U32S_2 2
|
||||
|
||||
#define _LINUX_CAPABILITY_VERSION_3 0x20080522
|
||||
#define _LINUX_CAPABILITY_U32S_3 2
|
||||
|
||||
typedef struct __user_cap_header_struct {
|
||||
__u32 version;
|
||||
int pid;
|
||||
} __user *cap_user_header_t;
|
||||
|
||||
typedef struct __user_cap_data_struct {
|
||||
__u32 effective;
|
||||
__u32 permitted;
|
||||
__u32 inheritable;
|
||||
} __user *cap_user_data_t;
|
||||
|
||||
|
||||
#define VFS_CAP_REVISION_MASK 0xFF000000
|
||||
#define VFS_CAP_REVISION_SHIFT 24
|
||||
#define VFS_CAP_FLAGS_MASK ~VFS_CAP_REVISION_MASK
|
||||
#define VFS_CAP_FLAGS_EFFECTIVE 0x000001
|
||||
|
||||
#define VFS_CAP_REVISION_1 0x01000000
|
||||
#define VFS_CAP_U32_1 1
|
||||
#define XATTR_CAPS_SZ_1 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_1))
|
||||
|
||||
#define VFS_CAP_REVISION_2 0x02000000
|
||||
#define VFS_CAP_U32_2 2
|
||||
#define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2))
|
||||
|
||||
#define XATTR_CAPS_SZ XATTR_CAPS_SZ_2
|
||||
#define VFS_CAP_U32 VFS_CAP_U32_2
|
||||
#define VFS_CAP_REVISION VFS_CAP_REVISION_2
|
||||
|
||||
struct vfs_cap_data {
|
||||
__le32 magic_etc; /* Little endian */
|
||||
struct {
|
||||
__le32 permitted; /* Little endian */
|
||||
__le32 inheritable; /* Little endian */
|
||||
} data[VFS_CAP_U32];
|
||||
};
|
||||
|
||||
#ifndef __KERNEL__
|
||||
|
||||
/*
|
||||
* Backwardly compatible definition for source code - trapped in a
|
||||
* 32-bit world. If you find you need this, please consider using
|
||||
* libcap to untrap yourself...
|
||||
*/
|
||||
#define _LINUX_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_1
|
||||
#define _LINUX_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_1
|
||||
|
||||
#else
|
||||
|
||||
#define _KERNEL_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_3
|
||||
#define _KERNEL_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_3
|
||||
|
|
@ -105,277 +34,6 @@ struct cpu_vfs_cap_data {
|
|||
#define _USER_CAP_HEADER_SIZE (sizeof(struct __user_cap_header_struct))
|
||||
#define _KERNEL_CAP_T_SIZE (sizeof(kernel_cap_t))
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
** POSIX-draft defined capabilities.
|
||||
**/
|
||||
|
||||
/* In a system with the [_POSIX_CHOWN_RESTRICTED] option defined, this
|
||||
overrides the restriction of changing file ownership and group
|
||||
ownership. */
|
||||
|
||||
#define CAP_CHOWN 0
|
||||
|
||||
/* Override all DAC access, including ACL execute access if
|
||||
[_POSIX_ACL] is defined. Excluding DAC access covered by
|
||||
CAP_LINUX_IMMUTABLE. */
|
||||
|
||||
#define CAP_DAC_OVERRIDE 1
|
||||
|
||||
/* Overrides all DAC restrictions regarding read and search on files
|
||||
and directories, including ACL restrictions if [_POSIX_ACL] is
|
||||
defined. Excluding DAC access covered by CAP_LINUX_IMMUTABLE. */
|
||||
|
||||
#define CAP_DAC_READ_SEARCH 2
|
||||
|
||||
/* Overrides all restrictions about allowed operations on files, where
|
||||
file owner ID must be equal to the user ID, except where CAP_FSETID
|
||||
is applicable. It doesn't override MAC and DAC restrictions. */
|
||||
|
||||
#define CAP_FOWNER 3
|
||||
|
||||
/* Overrides the following restrictions that the effective user ID
|
||||
shall match the file owner ID when setting the S_ISUID and S_ISGID
|
||||
bits on that file; that the effective group ID (or one of the
|
||||
supplementary group IDs) shall match the file owner ID when setting
|
||||
the S_ISGID bit on that file; that the S_ISUID and S_ISGID bits are
|
||||
cleared on successful return from chown(2) (not implemented). */
|
||||
|
||||
#define CAP_FSETID 4
|
||||
|
||||
/* Overrides the restriction that the real or effective user ID of a
|
||||
process sending a signal must match the real or effective user ID
|
||||
of the process receiving the signal. */
|
||||
|
||||
#define CAP_KILL 5
|
||||
|
||||
/* Allows setgid(2) manipulation */
|
||||
/* Allows setgroups(2) */
|
||||
/* Allows forged gids on socket credentials passing. */
|
||||
|
||||
#define CAP_SETGID 6
|
||||
|
||||
/* Allows set*uid(2) manipulation (including fsuid). */
|
||||
/* Allows forged pids on socket credentials passing. */
|
||||
|
||||
#define CAP_SETUID 7
|
||||
|
||||
|
||||
/**
|
||||
** Linux-specific capabilities
|
||||
**/
|
||||
|
||||
/* Without VFS support for capabilities:
|
||||
* Transfer any capability in your permitted set to any pid,
|
||||
* remove any capability in your permitted set from any pid
|
||||
* With VFS support for capabilities (neither of above, but)
|
||||
* Add any capability from current's capability bounding set
|
||||
* to the current process' inheritable set
|
||||
* Allow taking bits out of capability bounding set
|
||||
* Allow modification of the securebits for a process
|
||||
*/
|
||||
|
||||
#define CAP_SETPCAP 8
|
||||
|
||||
/* Allow modification of S_IMMUTABLE and S_APPEND file attributes */
|
||||
|
||||
#define CAP_LINUX_IMMUTABLE 9
|
||||
|
||||
/* Allows binding to TCP/UDP sockets below 1024 */
|
||||
/* Allows binding to ATM VCIs below 32 */
|
||||
|
||||
#define CAP_NET_BIND_SERVICE 10
|
||||
|
||||
/* Allow broadcasting, listen to multicast */
|
||||
|
||||
#define CAP_NET_BROADCAST 11
|
||||
|
||||
/* Allow interface configuration */
|
||||
/* Allow administration of IP firewall, masquerading and accounting */
|
||||
/* Allow setting debug option on sockets */
|
||||
/* Allow modification of routing tables */
|
||||
/* Allow setting arbitrary process / process group ownership on
|
||||
sockets */
|
||||
/* Allow binding to any address for transparent proxying (also via NET_RAW) */
|
||||
/* Allow setting TOS (type of service) */
|
||||
/* Allow setting promiscuous mode */
|
||||
/* Allow clearing driver statistics */
|
||||
/* Allow multicasting */
|
||||
/* Allow read/write of device-specific registers */
|
||||
/* Allow activation of ATM control sockets */
|
||||
|
||||
#define CAP_NET_ADMIN 12
|
||||
|
||||
/* Allow use of RAW sockets */
|
||||
/* Allow use of PACKET sockets */
|
||||
/* Allow binding to any address for transparent proxying (also via NET_ADMIN) */
|
||||
|
||||
#define CAP_NET_RAW 13
|
||||
|
||||
/* Allow locking of shared memory segments */
|
||||
/* Allow mlock and mlockall (which doesn't really have anything to do
|
||||
with IPC) */
|
||||
|
||||
#define CAP_IPC_LOCK 14
|
||||
|
||||
/* Override IPC ownership checks */
|
||||
|
||||
#define CAP_IPC_OWNER 15
|
||||
|
||||
/* Insert and remove kernel modules - modify kernel without limit */
|
||||
#define CAP_SYS_MODULE 16
|
||||
|
||||
/* Allow ioperm/iopl access */
|
||||
/* Allow sending USB messages to any device via /proc/bus/usb */
|
||||
|
||||
#define CAP_SYS_RAWIO 17
|
||||
|
||||
/* Allow use of chroot() */
|
||||
|
||||
#define CAP_SYS_CHROOT 18
|
||||
|
||||
/* Allow ptrace() of any process */
|
||||
|
||||
#define CAP_SYS_PTRACE 19
|
||||
|
||||
/* Allow configuration of process accounting */
|
||||
|
||||
#define CAP_SYS_PACCT 20
|
||||
|
||||
/* Allow configuration of the secure attention key */
|
||||
/* Allow administration of the random device */
|
||||
/* Allow examination and configuration of disk quotas */
|
||||
/* Allow setting the domainname */
|
||||
/* Allow setting the hostname */
|
||||
/* Allow calling bdflush() */
|
||||
/* Allow mount() and umount(), setting up new smb connection */
|
||||
/* Allow some autofs root ioctls */
|
||||
/* Allow nfsservctl */
|
||||
/* Allow VM86_REQUEST_IRQ */
|
||||
/* Allow to read/write pci config on alpha */
|
||||
/* Allow irix_prctl on mips (setstacksize) */
|
||||
/* Allow flushing all cache on m68k (sys_cacheflush) */
|
||||
/* Allow removing semaphores */
|
||||
/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores
|
||||
and shared memory */
|
||||
/* Allow locking/unlocking of shared memory segment */
|
||||
/* Allow turning swap on/off */
|
||||
/* Allow forged pids on socket credentials passing */
|
||||
/* Allow setting readahead and flushing buffers on block devices */
|
||||
/* Allow setting geometry in floppy driver */
|
||||
/* Allow turning DMA on/off in xd driver */
|
||||
/* Allow administration of md devices (mostly the above, but some
|
||||
extra ioctls) */
|
||||
/* Allow tuning the ide driver */
|
||||
/* Allow access to the nvram device */
|
||||
/* Allow administration of apm_bios, serial and bttv (TV) device */
|
||||
/* Allow manufacturer commands in isdn CAPI support driver */
|
||||
/* Allow reading non-standardized portions of pci configuration space */
|
||||
/* Allow DDI debug ioctl on sbpcd driver */
|
||||
/* Allow setting up serial ports */
|
||||
/* Allow sending raw qic-117 commands */
|
||||
/* Allow enabling/disabling tagged queuing on SCSI controllers and sending
|
||||
arbitrary SCSI commands */
|
||||
/* Allow setting encryption key on loopback filesystem */
|
||||
/* Allow setting zone reclaim policy */
|
||||
|
||||
#define CAP_SYS_ADMIN 21
|
||||
|
||||
/* Allow use of reboot() */
|
||||
|
||||
#define CAP_SYS_BOOT 22
|
||||
|
||||
/* Allow raising priority and setting priority on other (different
|
||||
UID) processes */
|
||||
/* Allow use of FIFO and round-robin (realtime) scheduling on own
|
||||
processes and setting the scheduling algorithm used by another
|
||||
process. */
|
||||
/* Allow setting cpu affinity on other processes */
|
||||
|
||||
#define CAP_SYS_NICE 23
|
||||
|
||||
/* Override resource limits. Set resource limits. */
|
||||
/* Override quota limits. */
|
||||
/* Override reserved space on ext2 filesystem */
|
||||
/* Modify data journaling mode on ext3 filesystem (uses journaling
|
||||
resources) */
|
||||
/* NOTE: ext2 honors fsuid when checking for resource overrides, so
|
||||
you can override using fsuid too */
|
||||
/* Override size restrictions on IPC message queues */
|
||||
/* Allow more than 64hz interrupts from the real-time clock */
|
||||
/* Override max number of consoles on console allocation */
|
||||
/* Override max number of keymaps */
|
||||
|
||||
#define CAP_SYS_RESOURCE 24
|
||||
|
||||
/* Allow manipulation of system clock */
|
||||
/* Allow irix_stime on mips */
|
||||
/* Allow setting the real-time clock */
|
||||
|
||||
#define CAP_SYS_TIME 25
|
||||
|
||||
/* Allow configuration of tty devices */
|
||||
/* Allow vhangup() of tty */
|
||||
|
||||
#define CAP_SYS_TTY_CONFIG 26
|
||||
|
||||
/* Allow the privileged aspects of mknod() */
|
||||
|
||||
#define CAP_MKNOD 27
|
||||
|
||||
/* Allow taking of leases on files */
|
||||
|
||||
#define CAP_LEASE 28
|
||||
|
||||
#define CAP_AUDIT_WRITE 29
|
||||
|
||||
#define CAP_AUDIT_CONTROL 30
|
||||
|
||||
#define CAP_SETFCAP 31
|
||||
|
||||
/* Override MAC access.
|
||||
The base kernel enforces no MAC policy.
|
||||
An LSM may enforce a MAC policy, and if it does and it chooses
|
||||
to implement capability based overrides of that policy, this is
|
||||
the capability it should use to do so. */
|
||||
|
||||
#define CAP_MAC_OVERRIDE 32
|
||||
|
||||
/* Allow MAC configuration or state changes.
|
||||
The base kernel requires no MAC configuration.
|
||||
An LSM may enforce a MAC policy, and if it does and it chooses
|
||||
to implement capability based checks on modifications to that
|
||||
policy or the data required to maintain it, this is the
|
||||
capability it should use to do so. */
|
||||
|
||||
#define CAP_MAC_ADMIN 33
|
||||
|
||||
/* Allow configuring the kernel's syslog (printk behaviour) */
|
||||
|
||||
#define CAP_SYSLOG 34
|
||||
|
||||
/* Allow triggering something that will wake the system */
|
||||
|
||||
#define CAP_WAKE_ALARM 35
|
||||
|
||||
/* Allow preventing system suspends */
|
||||
|
||||
#define CAP_BLOCK_SUSPEND 36
|
||||
|
||||
#define CAP_LAST_CAP CAP_BLOCK_SUSPEND
|
||||
|
||||
#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
|
||||
|
||||
/*
|
||||
* Bit location of each capability (used by user-space library and kernel)
|
||||
*/
|
||||
|
||||
#define CAP_TO_INDEX(x) ((x) >> 5) /* 1 << 5 == bits in __u32 */
|
||||
#define CAP_TO_MASK(x) (1 << ((x) & 31)) /* mask for indexed __u32 */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
struct inode;
|
||||
struct dentry;
|
||||
|
|
@ -557,6 +215,4 @@ extern bool inode_capable(const struct inode *inode, int cap);
|
|||
/* audit system wants to get cap info from files as well */
|
||||
extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* !_LINUX_CAPABILITY_H */
|
||||
|
|
|
|||
|
|
@ -1,91 +1,8 @@
|
|||
#ifndef CCISS_IOCTLH
|
||||
#define CCISS_IOCTLH
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/cciss_defs.h>
|
||||
#include <uapi/linux/cciss_ioctl.h>
|
||||
|
||||
#define CCISS_IOC_MAGIC 'B'
|
||||
|
||||
|
||||
typedef struct _cciss_pci_info_struct
|
||||
{
|
||||
unsigned char bus;
|
||||
unsigned char dev_fn;
|
||||
unsigned short domain;
|
||||
__u32 board_id;
|
||||
} cciss_pci_info_struct;
|
||||
|
||||
typedef struct _cciss_coalint_struct
|
||||
{
|
||||
__u32 delay;
|
||||
__u32 count;
|
||||
} cciss_coalint_struct;
|
||||
|
||||
typedef char NodeName_type[16];
|
||||
|
||||
typedef __u32 Heartbeat_type;
|
||||
|
||||
#define CISS_PARSCSIU2 0x0001
|
||||
#define CISS_PARCSCIU3 0x0002
|
||||
#define CISS_FIBRE1G 0x0100
|
||||
#define CISS_FIBRE2G 0x0200
|
||||
typedef __u32 BusTypes_type;
|
||||
|
||||
typedef char FirmwareVer_type[4];
|
||||
typedef __u32 DriverVer_type;
|
||||
|
||||
#define MAX_KMALLOC_SIZE 128000
|
||||
|
||||
typedef struct _IOCTL_Command_struct {
|
||||
LUNAddr_struct LUN_info;
|
||||
RequestBlock_struct Request;
|
||||
ErrorInfo_struct error_info;
|
||||
WORD buf_size; /* size in bytes of the buf */
|
||||
BYTE __user *buf;
|
||||
} IOCTL_Command_struct;
|
||||
|
||||
typedef struct _BIG_IOCTL_Command_struct {
|
||||
LUNAddr_struct LUN_info;
|
||||
RequestBlock_struct Request;
|
||||
ErrorInfo_struct error_info;
|
||||
DWORD malloc_size; /* < MAX_KMALLOC_SIZE in cciss.c */
|
||||
DWORD buf_size; /* size in bytes of the buf */
|
||||
/* < malloc_size * MAXSGENTRIES */
|
||||
BYTE __user *buf;
|
||||
} BIG_IOCTL_Command_struct;
|
||||
|
||||
typedef struct _LogvolInfo_struct{
|
||||
__u32 LunID;
|
||||
int num_opens; /* number of opens on the logical volume */
|
||||
int num_parts; /* number of partitions configured on logvol */
|
||||
} LogvolInfo_struct;
|
||||
|
||||
#define CCISS_GETPCIINFO _IOR(CCISS_IOC_MAGIC, 1, cciss_pci_info_struct)
|
||||
|
||||
#define CCISS_GETINTINFO _IOR(CCISS_IOC_MAGIC, 2, cciss_coalint_struct)
|
||||
#define CCISS_SETINTINFO _IOW(CCISS_IOC_MAGIC, 3, cciss_coalint_struct)
|
||||
|
||||
#define CCISS_GETNODENAME _IOR(CCISS_IOC_MAGIC, 4, NodeName_type)
|
||||
#define CCISS_SETNODENAME _IOW(CCISS_IOC_MAGIC, 5, NodeName_type)
|
||||
|
||||
#define CCISS_GETHEARTBEAT _IOR(CCISS_IOC_MAGIC, 6, Heartbeat_type)
|
||||
#define CCISS_GETBUSTYPES _IOR(CCISS_IOC_MAGIC, 7, BusTypes_type)
|
||||
#define CCISS_GETFIRMVER _IOR(CCISS_IOC_MAGIC, 8, FirmwareVer_type)
|
||||
#define CCISS_GETDRIVVER _IOR(CCISS_IOC_MAGIC, 9, DriverVer_type)
|
||||
#define CCISS_REVALIDVOLS _IO(CCISS_IOC_MAGIC, 10)
|
||||
#define CCISS_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 11, IOCTL_Command_struct)
|
||||
#define CCISS_DEREGDISK _IO(CCISS_IOC_MAGIC, 12)
|
||||
|
||||
/* no longer used... use REGNEWD instead */
|
||||
#define CCISS_REGNEWDISK _IOW(CCISS_IOC_MAGIC, 13, int)
|
||||
|
||||
#define CCISS_REGNEWD _IO(CCISS_IOC_MAGIC, 14)
|
||||
#define CCISS_RESCANDISK _IO(CCISS_IOC_MAGIC, 16)
|
||||
#define CCISS_GETLUNINFO _IOR(CCISS_IOC_MAGIC, 17, LogvolInfo_struct)
|
||||
#define CCISS_BIG_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL_Command_struct)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifdef CONFIG_COMPAT
|
||||
|
||||
/* 32 bit compatible ioctl structs */
|
||||
|
|
@ -111,5 +28,4 @@ typedef struct _BIG_IOCTL32_Command_struct {
|
|||
#define CCISS_BIG_PASSTHRU32 _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL32_Command_struct)
|
||||
|
||||
#endif /* CONFIG_COMPAT */
|
||||
#endif /* __KERNEL__ */
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -7,910 +7,12 @@
|
|||
* 1997, 1998 Erik Andersen, andersee@debian.org
|
||||
* 1998-2002 Jens Axboe, axboe@suse.de
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_CDROM_H
|
||||
#define _LINUX_CDROM_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
/*******************************************************
|
||||
* As of Linux 2.1.x, all Linux CD-ROM application programs will use this
|
||||
* (and only this) include file. It is my hope to provide Linux with
|
||||
* a uniform interface between software accessing CD-ROMs and the various
|
||||
* device drivers that actually talk to the drives. There may still be
|
||||
* 23 different kinds of strange CD-ROM drives, but at least there will
|
||||
* now be one, and only one, Linux CD-ROM interface.
|
||||
*
|
||||
* Additionally, as of Linux 2.1.x, all Linux application programs
|
||||
* should use the O_NONBLOCK option when opening a CD-ROM device
|
||||
* for subsequent ioctl commands. This allows for neat system errors
|
||||
* like "No medium found" or "Wrong medium type" upon attempting to
|
||||
* mount or play an empty slot, mount an audio disc, or play a data disc.
|
||||
* Generally, changing an application program to support O_NONBLOCK
|
||||
* is as easy as the following:
|
||||
* - drive = open("/dev/cdrom", O_RDONLY);
|
||||
* + drive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK);
|
||||
* It is worth the small change.
|
||||
*
|
||||
* Patches for many common CD programs (provided by David A. van Leeuwen)
|
||||
* can be found at: ftp://ftp.gwdg.de/pub/linux/cdrom/drivers/cm206/
|
||||
*
|
||||
*******************************************************/
|
||||
|
||||
/* When a driver supports a certain function, but the cdrom drive we are
|
||||
* using doesn't, we will return the error EDRIVE_CANT_DO_THIS. We will
|
||||
* borrow the "Operation not supported" error from the network folks to
|
||||
* accomplish this. Maybe someday we will get a more targeted error code,
|
||||
* but this will do for now... */
|
||||
#define EDRIVE_CANT_DO_THIS EOPNOTSUPP
|
||||
|
||||
/*******************************************************
|
||||
* The CD-ROM IOCTL commands -- these should be supported by
|
||||
* all the various cdrom drivers. For the CD-ROM ioctls, we
|
||||
* will commandeer byte 0x53, or 'S'.
|
||||
*******************************************************/
|
||||
#define CDROMPAUSE 0x5301 /* Pause Audio Operation */
|
||||
#define CDROMRESUME 0x5302 /* Resume paused Audio Operation */
|
||||
#define CDROMPLAYMSF 0x5303 /* Play Audio MSF (struct cdrom_msf) */
|
||||
#define CDROMPLAYTRKIND 0x5304 /* Play Audio Track/index
|
||||
(struct cdrom_ti) */
|
||||
#define CDROMREADTOCHDR 0x5305 /* Read TOC header
|
||||
(struct cdrom_tochdr) */
|
||||
#define CDROMREADTOCENTRY 0x5306 /* Read TOC entry
|
||||
(struct cdrom_tocentry) */
|
||||
#define CDROMSTOP 0x5307 /* Stop the cdrom drive */
|
||||
#define CDROMSTART 0x5308 /* Start the cdrom drive */
|
||||
#define CDROMEJECT 0x5309 /* Ejects the cdrom media */
|
||||
#define CDROMVOLCTRL 0x530a /* Control output volume
|
||||
(struct cdrom_volctrl) */
|
||||
#define CDROMSUBCHNL 0x530b /* Read subchannel data
|
||||
(struct cdrom_subchnl) */
|
||||
#define CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes)
|
||||
(struct cdrom_read) */
|
||||
#define CDROMREADMODE1 0x530d /* Read CDROM mode 1 data (2048 Bytes)
|
||||
(struct cdrom_read) */
|
||||
#define CDROMREADAUDIO 0x530e /* (struct cdrom_read_audio) */
|
||||
#define CDROMEJECT_SW 0x530f /* enable(1)/disable(0) auto-ejecting */
|
||||
#define CDROMMULTISESSION 0x5310 /* Obtain the start-of-last-session
|
||||
address of multi session disks
|
||||
(struct cdrom_multisession) */
|
||||
#define CDROM_GET_MCN 0x5311 /* Obtain the "Universal Product Code"
|
||||
if available (struct cdrom_mcn) */
|
||||
#define CDROM_GET_UPC CDROM_GET_MCN /* This one is deprecated,
|
||||
but here anyway for compatibility */
|
||||
#define CDROMRESET 0x5312 /* hard-reset the drive */
|
||||
#define CDROMVOLREAD 0x5313 /* Get the drive's volume setting
|
||||
(struct cdrom_volctrl) */
|
||||
#define CDROMREADRAW 0x5314 /* read data in raw mode (2352 Bytes)
|
||||
(struct cdrom_read) */
|
||||
/*
|
||||
* These ioctls are used only used in aztcd.c and optcd.c
|
||||
*/
|
||||
#define CDROMREADCOOKED 0x5315 /* read data in cooked mode */
|
||||
#define CDROMSEEK 0x5316 /* seek msf address */
|
||||
|
||||
/*
|
||||
* This ioctl is only used by the scsi-cd driver.
|
||||
It is for playing audio in logical block addressing mode.
|
||||
*/
|
||||
#define CDROMPLAYBLK 0x5317 /* (struct cdrom_blk) */
|
||||
|
||||
/*
|
||||
* These ioctls are only used in optcd.c
|
||||
*/
|
||||
#define CDROMREADALL 0x5318 /* read all 2646 bytes */
|
||||
|
||||
/*
|
||||
* These ioctls are (now) only in ide-cd.c for controlling
|
||||
* drive spindown time. They should be implemented in the
|
||||
* Uniform driver, via generic packet commands, GPCMD_MODE_SELECT_10,
|
||||
* GPCMD_MODE_SENSE_10 and the GPMODE_POWER_PAGE...
|
||||
* -Erik
|
||||
*/
|
||||
#define CDROMGETSPINDOWN 0x531d
|
||||
#define CDROMSETSPINDOWN 0x531e
|
||||
|
||||
/*
|
||||
* These ioctls are implemented through the uniform CD-ROM driver
|
||||
* They _will_ be adopted by all CD-ROM drivers, when all the CD-ROM
|
||||
* drivers are eventually ported to the uniform CD-ROM driver interface.
|
||||
*/
|
||||
#define CDROMCLOSETRAY 0x5319 /* pendant of CDROMEJECT */
|
||||
#define CDROM_SET_OPTIONS 0x5320 /* Set behavior options */
|
||||
#define CDROM_CLEAR_OPTIONS 0x5321 /* Clear behavior options */
|
||||
#define CDROM_SELECT_SPEED 0x5322 /* Set the CD-ROM speed */
|
||||
#define CDROM_SELECT_DISC 0x5323 /* Select disc (for juke-boxes) */
|
||||
#define CDROM_MEDIA_CHANGED 0x5325 /* Check is media changed */
|
||||
#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
|
||||
#define CDROM_DISC_STATUS 0x5327 /* Get disc type, etc. */
|
||||
#define CDROM_CHANGER_NSLOTS 0x5328 /* Get number of slots */
|
||||
#define CDROM_LOCKDOOR 0x5329 /* lock or unlock door */
|
||||
#define CDROM_DEBUG 0x5330 /* Turn debug messages on/off */
|
||||
#define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */
|
||||
|
||||
/* Note that scsi/scsi_ioctl.h also uses 0x5382 - 0x5386.
|
||||
* Future CDROM ioctls should be kept below 0x537F
|
||||
*/
|
||||
|
||||
/* This ioctl is only used by sbpcd at the moment */
|
||||
#define CDROMAUDIOBUFSIZ 0x5382 /* set the audio buffer size */
|
||||
/* conflict with SCSI_IOCTL_GET_IDLUN */
|
||||
|
||||
/* DVD-ROM Specific ioctls */
|
||||
#define DVD_READ_STRUCT 0x5390 /* Read structure */
|
||||
#define DVD_WRITE_STRUCT 0x5391 /* Write structure */
|
||||
#define DVD_AUTH 0x5392 /* Authentication */
|
||||
|
||||
#define CDROM_SEND_PACKET 0x5393 /* send a packet to the drive */
|
||||
#define CDROM_NEXT_WRITABLE 0x5394 /* get next writable block */
|
||||
#define CDROM_LAST_WRITTEN 0x5395 /* get last block written on disc */
|
||||
|
||||
/*******************************************************
|
||||
* CDROM IOCTL structures
|
||||
*******************************************************/
|
||||
|
||||
/* Address in MSF format */
|
||||
struct cdrom_msf0
|
||||
{
|
||||
__u8 minute;
|
||||
__u8 second;
|
||||
__u8 frame;
|
||||
};
|
||||
|
||||
/* Address in either MSF or logical format */
|
||||
union cdrom_addr
|
||||
{
|
||||
struct cdrom_msf0 msf;
|
||||
int lba;
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMPLAYMSF ioctl */
|
||||
struct cdrom_msf
|
||||
{
|
||||
__u8 cdmsf_min0; /* start minute */
|
||||
__u8 cdmsf_sec0; /* start second */
|
||||
__u8 cdmsf_frame0; /* start frame */
|
||||
__u8 cdmsf_min1; /* end minute */
|
||||
__u8 cdmsf_sec1; /* end second */
|
||||
__u8 cdmsf_frame1; /* end frame */
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMPLAYTRKIND ioctl */
|
||||
struct cdrom_ti
|
||||
{
|
||||
__u8 cdti_trk0; /* start track */
|
||||
__u8 cdti_ind0; /* start index */
|
||||
__u8 cdti_trk1; /* end track */
|
||||
__u8 cdti_ind1; /* end index */
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMREADTOCHDR ioctl */
|
||||
struct cdrom_tochdr
|
||||
{
|
||||
__u8 cdth_trk0; /* start track */
|
||||
__u8 cdth_trk1; /* end track */
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMVOLCTRL and CDROMVOLREAD ioctls */
|
||||
struct cdrom_volctrl
|
||||
{
|
||||
__u8 channel0;
|
||||
__u8 channel1;
|
||||
__u8 channel2;
|
||||
__u8 channel3;
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMSUBCHNL ioctl */
|
||||
struct cdrom_subchnl
|
||||
{
|
||||
__u8 cdsc_format;
|
||||
__u8 cdsc_audiostatus;
|
||||
__u8 cdsc_adr: 4;
|
||||
__u8 cdsc_ctrl: 4;
|
||||
__u8 cdsc_trk;
|
||||
__u8 cdsc_ind;
|
||||
union cdrom_addr cdsc_absaddr;
|
||||
union cdrom_addr cdsc_reladdr;
|
||||
};
|
||||
|
||||
|
||||
/* This struct is used by the CDROMREADTOCENTRY ioctl */
|
||||
struct cdrom_tocentry
|
||||
{
|
||||
__u8 cdte_track;
|
||||
__u8 cdte_adr :4;
|
||||
__u8 cdte_ctrl :4;
|
||||
__u8 cdte_format;
|
||||
union cdrom_addr cdte_addr;
|
||||
__u8 cdte_datamode;
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMREADMODE1, and CDROMREADMODE2 ioctls */
|
||||
struct cdrom_read
|
||||
{
|
||||
int cdread_lba;
|
||||
char *cdread_bufaddr;
|
||||
int cdread_buflen;
|
||||
};
|
||||
|
||||
/* This struct is used by the CDROMREADAUDIO ioctl */
|
||||
struct cdrom_read_audio
|
||||
{
|
||||
union cdrom_addr addr; /* frame address */
|
||||
__u8 addr_format; /* CDROM_LBA or CDROM_MSF */
|
||||
int nframes; /* number of 2352-byte-frames to read at once */
|
||||
__u8 __user *buf; /* frame buffer (size: nframes*2352 bytes) */
|
||||
};
|
||||
|
||||
/* This struct is used with the CDROMMULTISESSION ioctl */
|
||||
struct cdrom_multisession
|
||||
{
|
||||
union cdrom_addr addr; /* frame address: start-of-last-session
|
||||
(not the new "frame 16"!). Only valid
|
||||
if the "xa_flag" is true. */
|
||||
__u8 xa_flag; /* 1: "is XA disk" */
|
||||
__u8 addr_format; /* CDROM_LBA or CDROM_MSF */
|
||||
};
|
||||
|
||||
/* This struct is used with the CDROM_GET_MCN ioctl.
|
||||
* Very few audio discs actually have Universal Product Code information,
|
||||
* which should just be the Medium Catalog Number on the box. Also note
|
||||
* that the way the codeis written on CD is _not_ uniform across all discs!
|
||||
*/
|
||||
struct cdrom_mcn
|
||||
{
|
||||
__u8 medium_catalog_number[14]; /* 13 ASCII digits, null-terminated */
|
||||
};
|
||||
|
||||
/* This is used by the CDROMPLAYBLK ioctl */
|
||||
struct cdrom_blk
|
||||
{
|
||||
unsigned from;
|
||||
unsigned short len;
|
||||
};
|
||||
|
||||
#define CDROM_PACKET_SIZE 12
|
||||
|
||||
#define CGC_DATA_UNKNOWN 0
|
||||
#define CGC_DATA_WRITE 1
|
||||
#define CGC_DATA_READ 2
|
||||
#define CGC_DATA_NONE 3
|
||||
|
||||
/* for CDROM_PACKET_COMMAND ioctl */
|
||||
struct cdrom_generic_command
|
||||
{
|
||||
unsigned char cmd[CDROM_PACKET_SIZE];
|
||||
unsigned char __user *buffer;
|
||||
unsigned int buflen;
|
||||
int stat;
|
||||
struct request_sense __user *sense;
|
||||
unsigned char data_direction;
|
||||
int quiet;
|
||||
int timeout;
|
||||
void __user *reserved[1]; /* unused, actually */
|
||||
};
|
||||
|
||||
/*
|
||||
* A CD-ROM physical sector size is 2048, 2052, 2056, 2324, 2332, 2336,
|
||||
* 2340, or 2352 bytes long.
|
||||
|
||||
* Sector types of the standard CD-ROM data formats:
|
||||
*
|
||||
* format sector type user data size (bytes)
|
||||
* -----------------------------------------------------------------------------
|
||||
* 1 (Red Book) CD-DA 2352 (CD_FRAMESIZE_RAW)
|
||||
* 2 (Yellow Book) Mode1 Form1 2048 (CD_FRAMESIZE)
|
||||
* 3 (Yellow Book) Mode1 Form2 2336 (CD_FRAMESIZE_RAW0)
|
||||
* 4 (Green Book) Mode2 Form1 2048 (CD_FRAMESIZE)
|
||||
* 5 (Green Book) Mode2 Form2 2328 (2324+4 spare bytes)
|
||||
*
|
||||
*
|
||||
* The layout of the standard CD-ROM data formats:
|
||||
* -----------------------------------------------------------------------------
|
||||
* - audio (red): | audio_sample_bytes |
|
||||
* | 2352 |
|
||||
*
|
||||
* - data (yellow, mode1): | sync - head - data - EDC - zero - ECC |
|
||||
* | 12 - 4 - 2048 - 4 - 8 - 276 |
|
||||
*
|
||||
* - data (yellow, mode2): | sync - head - data |
|
||||
* | 12 - 4 - 2336 |
|
||||
*
|
||||
* - XA data (green, mode2 form1): | sync - head - sub - data - EDC - ECC |
|
||||
* | 12 - 4 - 8 - 2048 - 4 - 276 |
|
||||
*
|
||||
* - XA data (green, mode2 form2): | sync - head - sub - data - Spare |
|
||||
* | 12 - 4 - 8 - 2324 - 4 |
|
||||
*
|
||||
*/
|
||||
|
||||
/* Some generally useful CD-ROM information -- mostly based on the above */
|
||||
#define CD_MINS 74 /* max. minutes per CD, not really a limit */
|
||||
#define CD_SECS 60 /* seconds per minute */
|
||||
#define CD_FRAMES 75 /* frames per second */
|
||||
#define CD_SYNC_SIZE 12 /* 12 sync bytes per raw data frame */
|
||||
#define CD_MSF_OFFSET 150 /* MSF numbering offset of first frame */
|
||||
#define CD_CHUNK_SIZE 24 /* lowest-level "data bytes piece" */
|
||||
#define CD_NUM_OF_CHUNKS 98 /* chunks per frame */
|
||||
#define CD_FRAMESIZE_SUB 96 /* subchannel data "frame" size */
|
||||
#define CD_HEAD_SIZE 4 /* header (address) bytes per raw data frame */
|
||||
#define CD_SUBHEAD_SIZE 8 /* subheader bytes per raw XA data frame */
|
||||
#define CD_EDC_SIZE 4 /* bytes EDC per most raw data frame types */
|
||||
#define CD_ZERO_SIZE 8 /* bytes zero per yellow book mode 1 frame */
|
||||
#define CD_ECC_SIZE 276 /* bytes ECC per most raw data frame types */
|
||||
#define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */
|
||||
#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */
|
||||
#define CD_FRAMESIZE_RAWER 2646 /* The maximum possible returned bytes */
|
||||
/* most drives don't deliver everything: */
|
||||
#define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /*2340*/
|
||||
#define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /*2336*/
|
||||
|
||||
#define CD_XA_HEAD (CD_HEAD_SIZE+CD_SUBHEAD_SIZE) /* "before data" part of raw XA frame */
|
||||
#define CD_XA_TAIL (CD_EDC_SIZE+CD_ECC_SIZE) /* "after data" part of raw XA frame */
|
||||
#define CD_XA_SYNC_HEAD (CD_SYNC_SIZE+CD_XA_HEAD) /* sync bytes + header of XA frame */
|
||||
|
||||
/* CD-ROM address types (cdrom_tocentry.cdte_format) */
|
||||
#define CDROM_LBA 0x01 /* "logical block": first frame is #0 */
|
||||
#define CDROM_MSF 0x02 /* "minute-second-frame": binary, not bcd here! */
|
||||
|
||||
/* bit to tell whether track is data or audio (cdrom_tocentry.cdte_ctrl) */
|
||||
#define CDROM_DATA_TRACK 0x04
|
||||
|
||||
/* The leadout track is always 0xAA, regardless of # of tracks on disc */
|
||||
#define CDROM_LEADOUT 0xAA
|
||||
|
||||
/* audio states (from SCSI-2, but seen with other drives, too) */
|
||||
#define CDROM_AUDIO_INVALID 0x00 /* audio status not supported */
|
||||
#define CDROM_AUDIO_PLAY 0x11 /* audio play operation in progress */
|
||||
#define CDROM_AUDIO_PAUSED 0x12 /* audio play operation paused */
|
||||
#define CDROM_AUDIO_COMPLETED 0x13 /* audio play successfully completed */
|
||||
#define CDROM_AUDIO_ERROR 0x14 /* audio play stopped due to error */
|
||||
#define CDROM_AUDIO_NO_STATUS 0x15 /* no current audio status to return */
|
||||
|
||||
/* capability flags used with the uniform CD-ROM driver */
|
||||
#define CDC_CLOSE_TRAY 0x1 /* caddy systems _can't_ close */
|
||||
#define CDC_OPEN_TRAY 0x2 /* but _can_ eject. */
|
||||
#define CDC_LOCK 0x4 /* disable manual eject */
|
||||
#define CDC_SELECT_SPEED 0x8 /* programmable speed */
|
||||
#define CDC_SELECT_DISC 0x10 /* select disc from juke-box */
|
||||
#define CDC_MULTI_SESSION 0x20 /* read sessions>1 */
|
||||
#define CDC_MCN 0x40 /* Medium Catalog Number */
|
||||
#define CDC_MEDIA_CHANGED 0x80 /* media changed */
|
||||
#define CDC_PLAY_AUDIO 0x100 /* audio functions */
|
||||
#define CDC_RESET 0x200 /* hard reset device */
|
||||
#define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */
|
||||
#define CDC_GENERIC_PACKET 0x1000 /* driver implements generic packets */
|
||||
#define CDC_CD_R 0x2000 /* drive is a CD-R */
|
||||
#define CDC_CD_RW 0x4000 /* drive is a CD-RW */
|
||||
#define CDC_DVD 0x8000 /* drive is a DVD */
|
||||
#define CDC_DVD_R 0x10000 /* drive can write DVD-R */
|
||||
#define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */
|
||||
#define CDC_MO_DRIVE 0x40000 /* drive is an MO device */
|
||||
#define CDC_MRW 0x80000 /* drive can read MRW */
|
||||
#define CDC_MRW_W 0x100000 /* drive can write MRW */
|
||||
#define CDC_RAM 0x200000 /* ok to open for WRITE */
|
||||
|
||||
/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */
|
||||
#define CDS_NO_INFO 0 /* if not implemented */
|
||||
#define CDS_NO_DISC 1
|
||||
#define CDS_TRAY_OPEN 2
|
||||
#define CDS_DRIVE_NOT_READY 3
|
||||
#define CDS_DISC_OK 4
|
||||
|
||||
/* return values for the CDROM_DISC_STATUS ioctl */
|
||||
/* can also return CDS_NO_[INFO|DISC], from above */
|
||||
#define CDS_AUDIO 100
|
||||
#define CDS_DATA_1 101
|
||||
#define CDS_DATA_2 102
|
||||
#define CDS_XA_2_1 103
|
||||
#define CDS_XA_2_2 104
|
||||
#define CDS_MIXED 105
|
||||
|
||||
/* User-configurable behavior options for the uniform CD-ROM driver */
|
||||
#define CDO_AUTO_CLOSE 0x1 /* close tray on first open() */
|
||||
#define CDO_AUTO_EJECT 0x2 /* open tray on last release() */
|
||||
#define CDO_USE_FFLAGS 0x4 /* use O_NONBLOCK information on open */
|
||||
#define CDO_LOCK 0x8 /* lock tray on open files */
|
||||
#define CDO_CHECK_TYPE 0x10 /* check type on open for data */
|
||||
|
||||
/* Special codes used when specifying changer slots. */
|
||||
#define CDSL_NONE (INT_MAX-1)
|
||||
#define CDSL_CURRENT INT_MAX
|
||||
|
||||
/* For partition based multisession access. IDE can handle 64 partitions
|
||||
* per drive - SCSI CD-ROM's use minors to differentiate between the
|
||||
* various drives, so we can't do multisessions the same way there.
|
||||
* Use the -o session=x option to mount on them.
|
||||
*/
|
||||
#define CD_PART_MAX 64
|
||||
#define CD_PART_MASK (CD_PART_MAX - 1)
|
||||
|
||||
/*********************************************************************
|
||||
* Generic Packet commands, MMC commands, and such
|
||||
*********************************************************************/
|
||||
|
||||
/* The generic packet command opcodes for CD/DVD Logical Units,
|
||||
* From Table 57 of the SFF8090 Ver. 3 (Mt. Fuji) draft standard. */
|
||||
#define GPCMD_BLANK 0xa1
|
||||
#define GPCMD_CLOSE_TRACK 0x5b
|
||||
#define GPCMD_FLUSH_CACHE 0x35
|
||||
#define GPCMD_FORMAT_UNIT 0x04
|
||||
#define GPCMD_GET_CONFIGURATION 0x46
|
||||
#define GPCMD_GET_EVENT_STATUS_NOTIFICATION 0x4a
|
||||
#define GPCMD_GET_PERFORMANCE 0xac
|
||||
#define GPCMD_INQUIRY 0x12
|
||||
#define GPCMD_LOAD_UNLOAD 0xa6
|
||||
#define GPCMD_MECHANISM_STATUS 0xbd
|
||||
#define GPCMD_MODE_SELECT_10 0x55
|
||||
#define GPCMD_MODE_SENSE_10 0x5a
|
||||
#define GPCMD_PAUSE_RESUME 0x4b
|
||||
#define GPCMD_PLAY_AUDIO_10 0x45
|
||||
#define GPCMD_PLAY_AUDIO_MSF 0x47
|
||||
#define GPCMD_PLAY_AUDIO_TI 0x48
|
||||
#define GPCMD_PLAY_CD 0xbc
|
||||
#define GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e
|
||||
#define GPCMD_READ_10 0x28
|
||||
#define GPCMD_READ_12 0xa8
|
||||
#define GPCMD_READ_BUFFER 0x3c
|
||||
#define GPCMD_READ_BUFFER_CAPACITY 0x5c
|
||||
#define GPCMD_READ_CDVD_CAPACITY 0x25
|
||||
#define GPCMD_READ_CD 0xbe
|
||||
#define GPCMD_READ_CD_MSF 0xb9
|
||||
#define GPCMD_READ_DISC_INFO 0x51
|
||||
#define GPCMD_READ_DVD_STRUCTURE 0xad
|
||||
#define GPCMD_READ_FORMAT_CAPACITIES 0x23
|
||||
#define GPCMD_READ_HEADER 0x44
|
||||
#define GPCMD_READ_TRACK_RZONE_INFO 0x52
|
||||
#define GPCMD_READ_SUBCHANNEL 0x42
|
||||
#define GPCMD_READ_TOC_PMA_ATIP 0x43
|
||||
#define GPCMD_REPAIR_RZONE_TRACK 0x58
|
||||
#define GPCMD_REPORT_KEY 0xa4
|
||||
#define GPCMD_REQUEST_SENSE 0x03
|
||||
#define GPCMD_RESERVE_RZONE_TRACK 0x53
|
||||
#define GPCMD_SEND_CUE_SHEET 0x5d
|
||||
#define GPCMD_SCAN 0xba
|
||||
#define GPCMD_SEEK 0x2b
|
||||
#define GPCMD_SEND_DVD_STRUCTURE 0xbf
|
||||
#define GPCMD_SEND_EVENT 0xa2
|
||||
#define GPCMD_SEND_KEY 0xa3
|
||||
#define GPCMD_SEND_OPC 0x54
|
||||
#define GPCMD_SET_READ_AHEAD 0xa7
|
||||
#define GPCMD_SET_STREAMING 0xb6
|
||||
#define GPCMD_START_STOP_UNIT 0x1b
|
||||
#define GPCMD_STOP_PLAY_SCAN 0x4e
|
||||
#define GPCMD_TEST_UNIT_READY 0x00
|
||||
#define GPCMD_VERIFY_10 0x2f
|
||||
#define GPCMD_WRITE_10 0x2a
|
||||
#define GPCMD_WRITE_12 0xaa
|
||||
#define GPCMD_WRITE_AND_VERIFY_10 0x2e
|
||||
#define GPCMD_WRITE_BUFFER 0x3b
|
||||
/* This is listed as optional in ATAPI 2.6, but is (curiously)
|
||||
* missing from Mt. Fuji, Table 57. It _is_ mentioned in Mt. Fuji
|
||||
* Table 377 as an MMC command for SCSi devices though... Most ATAPI
|
||||
* drives support it. */
|
||||
#define GPCMD_SET_SPEED 0xbb
|
||||
/* This seems to be a SCSI specific CD-ROM opcode
|
||||
* to play data at track/index */
|
||||
#define GPCMD_PLAYAUDIO_TI 0x48
|
||||
/*
|
||||
* From MS Media Status Notification Support Specification. For
|
||||
* older drives only.
|
||||
*/
|
||||
#define GPCMD_GET_MEDIA_STATUS 0xda
|
||||
|
||||
/* Mode page codes for mode sense/set */
|
||||
#define GPMODE_VENDOR_PAGE 0x00
|
||||
#define GPMODE_R_W_ERROR_PAGE 0x01
|
||||
#define GPMODE_WRITE_PARMS_PAGE 0x05
|
||||
#define GPMODE_WCACHING_PAGE 0x08
|
||||
#define GPMODE_AUDIO_CTL_PAGE 0x0e
|
||||
#define GPMODE_POWER_PAGE 0x1a
|
||||
#define GPMODE_FAULT_FAIL_PAGE 0x1c
|
||||
#define GPMODE_TO_PROTECT_PAGE 0x1d
|
||||
#define GPMODE_CAPABILITIES_PAGE 0x2a
|
||||
#define GPMODE_ALL_PAGES 0x3f
|
||||
/* Not in Mt. Fuji, but in ATAPI 2.6 -- deprecated now in favor
|
||||
* of MODE_SENSE_POWER_PAGE */
|
||||
#define GPMODE_CDROM_PAGE 0x0d
|
||||
|
||||
|
||||
|
||||
/* DVD struct types */
|
||||
#define DVD_STRUCT_PHYSICAL 0x00
|
||||
#define DVD_STRUCT_COPYRIGHT 0x01
|
||||
#define DVD_STRUCT_DISCKEY 0x02
|
||||
#define DVD_STRUCT_BCA 0x03
|
||||
#define DVD_STRUCT_MANUFACT 0x04
|
||||
|
||||
struct dvd_layer {
|
||||
__u8 book_version : 4;
|
||||
__u8 book_type : 4;
|
||||
__u8 min_rate : 4;
|
||||
__u8 disc_size : 4;
|
||||
__u8 layer_type : 4;
|
||||
__u8 track_path : 1;
|
||||
__u8 nlayers : 2;
|
||||
__u8 track_density : 4;
|
||||
__u8 linear_density : 4;
|
||||
__u8 bca : 1;
|
||||
__u32 start_sector;
|
||||
__u32 end_sector;
|
||||
__u32 end_sector_l0;
|
||||
};
|
||||
|
||||
#define DVD_LAYERS 4
|
||||
|
||||
struct dvd_physical {
|
||||
__u8 type;
|
||||
__u8 layer_num;
|
||||
struct dvd_layer layer[DVD_LAYERS];
|
||||
};
|
||||
|
||||
struct dvd_copyright {
|
||||
__u8 type;
|
||||
|
||||
__u8 layer_num;
|
||||
__u8 cpst;
|
||||
__u8 rmi;
|
||||
};
|
||||
|
||||
struct dvd_disckey {
|
||||
__u8 type;
|
||||
|
||||
unsigned agid : 2;
|
||||
__u8 value[2048];
|
||||
};
|
||||
|
||||
struct dvd_bca {
|
||||
__u8 type;
|
||||
|
||||
int len;
|
||||
__u8 value[188];
|
||||
};
|
||||
|
||||
struct dvd_manufact {
|
||||
__u8 type;
|
||||
|
||||
__u8 layer_num;
|
||||
int len;
|
||||
__u8 value[2048];
|
||||
};
|
||||
|
||||
typedef union {
|
||||
__u8 type;
|
||||
|
||||
struct dvd_physical physical;
|
||||
struct dvd_copyright copyright;
|
||||
struct dvd_disckey disckey;
|
||||
struct dvd_bca bca;
|
||||
struct dvd_manufact manufact;
|
||||
} dvd_struct;
|
||||
|
||||
/*
|
||||
* DVD authentication ioctl
|
||||
*/
|
||||
|
||||
/* Authentication states */
|
||||
#define DVD_LU_SEND_AGID 0
|
||||
#define DVD_HOST_SEND_CHALLENGE 1
|
||||
#define DVD_LU_SEND_KEY1 2
|
||||
#define DVD_LU_SEND_CHALLENGE 3
|
||||
#define DVD_HOST_SEND_KEY2 4
|
||||
|
||||
/* Termination states */
|
||||
#define DVD_AUTH_ESTABLISHED 5
|
||||
#define DVD_AUTH_FAILURE 6
|
||||
|
||||
/* Other functions */
|
||||
#define DVD_LU_SEND_TITLE_KEY 7
|
||||
#define DVD_LU_SEND_ASF 8
|
||||
#define DVD_INVALIDATE_AGID 9
|
||||
#define DVD_LU_SEND_RPC_STATE 10
|
||||
#define DVD_HOST_SEND_RPC_STATE 11
|
||||
|
||||
/* State data */
|
||||
typedef __u8 dvd_key[5]; /* 40-bit value, MSB is first elem. */
|
||||
typedef __u8 dvd_challenge[10]; /* 80-bit value, MSB is first elem. */
|
||||
|
||||
struct dvd_lu_send_agid {
|
||||
__u8 type;
|
||||
unsigned agid : 2;
|
||||
};
|
||||
|
||||
struct dvd_host_send_challenge {
|
||||
__u8 type;
|
||||
unsigned agid : 2;
|
||||
|
||||
dvd_challenge chal;
|
||||
};
|
||||
|
||||
struct dvd_send_key {
|
||||
__u8 type;
|
||||
unsigned agid : 2;
|
||||
|
||||
dvd_key key;
|
||||
};
|
||||
|
||||
struct dvd_lu_send_challenge {
|
||||
__u8 type;
|
||||
unsigned agid : 2;
|
||||
|
||||
dvd_challenge chal;
|
||||
};
|
||||
|
||||
#define DVD_CPM_NO_COPYRIGHT 0
|
||||
#define DVD_CPM_COPYRIGHTED 1
|
||||
|
||||
#define DVD_CP_SEC_NONE 0
|
||||
#define DVD_CP_SEC_EXIST 1
|
||||
|
||||
#define DVD_CGMS_UNRESTRICTED 0
|
||||
#define DVD_CGMS_SINGLE 2
|
||||
#define DVD_CGMS_RESTRICTED 3
|
||||
|
||||
struct dvd_lu_send_title_key {
|
||||
__u8 type;
|
||||
unsigned agid : 2;
|
||||
|
||||
dvd_key title_key;
|
||||
int lba;
|
||||
unsigned cpm : 1;
|
||||
unsigned cp_sec : 1;
|
||||
unsigned cgms : 2;
|
||||
};
|
||||
|
||||
struct dvd_lu_send_asf {
|
||||
__u8 type;
|
||||
unsigned agid : 2;
|
||||
|
||||
unsigned asf : 1;
|
||||
};
|
||||
|
||||
struct dvd_host_send_rpcstate {
|
||||
__u8 type;
|
||||
__u8 pdrc;
|
||||
};
|
||||
|
||||
struct dvd_lu_send_rpcstate {
|
||||
__u8 type : 2;
|
||||
__u8 vra : 3;
|
||||
__u8 ucca : 3;
|
||||
__u8 region_mask;
|
||||
__u8 rpc_scheme;
|
||||
};
|
||||
|
||||
typedef union {
|
||||
__u8 type;
|
||||
|
||||
struct dvd_lu_send_agid lsa;
|
||||
struct dvd_host_send_challenge hsc;
|
||||
struct dvd_send_key lsk;
|
||||
struct dvd_lu_send_challenge lsc;
|
||||
struct dvd_send_key hsk;
|
||||
struct dvd_lu_send_title_key lstk;
|
||||
struct dvd_lu_send_asf lsasf;
|
||||
struct dvd_host_send_rpcstate hrpcs;
|
||||
struct dvd_lu_send_rpcstate lrpcs;
|
||||
} dvd_authinfo;
|
||||
|
||||
struct request_sense {
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 valid : 1;
|
||||
__u8 error_code : 7;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 error_code : 7;
|
||||
__u8 valid : 1;
|
||||
#endif
|
||||
__u8 segment_number;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved1 : 2;
|
||||
__u8 ili : 1;
|
||||
__u8 reserved2 : 1;
|
||||
__u8 sense_key : 4;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 sense_key : 4;
|
||||
__u8 reserved2 : 1;
|
||||
__u8 ili : 1;
|
||||
__u8 reserved1 : 2;
|
||||
#endif
|
||||
__u8 information[4];
|
||||
__u8 add_sense_len;
|
||||
__u8 command_info[4];
|
||||
__u8 asc;
|
||||
__u8 ascq;
|
||||
__u8 fruc;
|
||||
__u8 sks[3];
|
||||
__u8 asb[46];
|
||||
};
|
||||
|
||||
/*
|
||||
* feature profile
|
||||
*/
|
||||
#define CDF_RWRT 0x0020 /* "Random Writable" */
|
||||
#define CDF_HWDM 0x0024 /* "Hardware Defect Management" */
|
||||
#define CDF_MRW 0x0028
|
||||
|
||||
/*
|
||||
* media status bits
|
||||
*/
|
||||
#define CDM_MRW_NOTMRW 0
|
||||
#define CDM_MRW_BGFORMAT_INACTIVE 1
|
||||
#define CDM_MRW_BGFORMAT_ACTIVE 2
|
||||
#define CDM_MRW_BGFORMAT_COMPLETE 3
|
||||
|
||||
/*
|
||||
* mrw address spaces
|
||||
*/
|
||||
#define MRW_LBA_DMA 0
|
||||
#define MRW_LBA_GAA 1
|
||||
|
||||
/*
|
||||
* mrw mode pages (first is deprecated) -- probed at init time and
|
||||
* cdi->mrw_mode_page is set
|
||||
*/
|
||||
#define MRW_MODE_PC_PRE1 0x2c
|
||||
#define MRW_MODE_PC 0x03
|
||||
|
||||
struct mrw_feature_desc {
|
||||
__be16 feature_code;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved1 : 2;
|
||||
__u8 feature_version : 4;
|
||||
__u8 persistent : 1;
|
||||
__u8 curr : 1;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 curr : 1;
|
||||
__u8 persistent : 1;
|
||||
__u8 feature_version : 4;
|
||||
__u8 reserved1 : 2;
|
||||
#endif
|
||||
__u8 add_len;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved2 : 7;
|
||||
__u8 write : 1;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 write : 1;
|
||||
__u8 reserved2 : 7;
|
||||
#endif
|
||||
__u8 reserved3;
|
||||
__u8 reserved4;
|
||||
__u8 reserved5;
|
||||
};
|
||||
|
||||
/* cf. mmc4r02g.pdf 5.3.10 Random Writable Feature (0020h) pg 197 of 635 */
|
||||
struct rwrt_feature_desc {
|
||||
__be16 feature_code;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved1 : 2;
|
||||
__u8 feature_version : 4;
|
||||
__u8 persistent : 1;
|
||||
__u8 curr : 1;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 curr : 1;
|
||||
__u8 persistent : 1;
|
||||
__u8 feature_version : 4;
|
||||
__u8 reserved1 : 2;
|
||||
#endif
|
||||
__u8 add_len;
|
||||
__u32 last_lba;
|
||||
__u32 block_size;
|
||||
__u16 blocking;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved2 : 7;
|
||||
__u8 page_present : 1;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 page_present : 1;
|
||||
__u8 reserved2 : 7;
|
||||
#endif
|
||||
__u8 reserved3;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
__be16 disc_information_length;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved1 : 3;
|
||||
__u8 erasable : 1;
|
||||
__u8 border_status : 2;
|
||||
__u8 disc_status : 2;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 disc_status : 2;
|
||||
__u8 border_status : 2;
|
||||
__u8 erasable : 1;
|
||||
__u8 reserved1 : 3;
|
||||
#else
|
||||
#error "Please fix <asm/byteorder.h>"
|
||||
#endif
|
||||
__u8 n_first_track;
|
||||
__u8 n_sessions_lsb;
|
||||
__u8 first_track_lsb;
|
||||
__u8 last_track_lsb;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 did_v : 1;
|
||||
__u8 dbc_v : 1;
|
||||
__u8 uru : 1;
|
||||
__u8 reserved2 : 2;
|
||||
__u8 dbit : 1;
|
||||
__u8 mrw_status : 2;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 mrw_status : 2;
|
||||
__u8 dbit : 1;
|
||||
__u8 reserved2 : 2;
|
||||
__u8 uru : 1;
|
||||
__u8 dbc_v : 1;
|
||||
__u8 did_v : 1;
|
||||
#endif
|
||||
__u8 disc_type;
|
||||
__u8 n_sessions_msb;
|
||||
__u8 first_track_msb;
|
||||
__u8 last_track_msb;
|
||||
__u32 disc_id;
|
||||
__u32 lead_in;
|
||||
__u32 lead_out;
|
||||
__u8 disc_bar_code[8];
|
||||
__u8 reserved3;
|
||||
__u8 n_opc;
|
||||
} disc_information;
|
||||
|
||||
typedef struct {
|
||||
__be16 track_information_length;
|
||||
__u8 track_lsb;
|
||||
__u8 session_lsb;
|
||||
__u8 reserved1;
|
||||
#if defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u8 reserved2 : 2;
|
||||
__u8 damage : 1;
|
||||
__u8 copy : 1;
|
||||
__u8 track_mode : 4;
|
||||
__u8 rt : 1;
|
||||
__u8 blank : 1;
|
||||
__u8 packet : 1;
|
||||
__u8 fp : 1;
|
||||
__u8 data_mode : 4;
|
||||
__u8 reserved3 : 6;
|
||||
__u8 lra_v : 1;
|
||||
__u8 nwa_v : 1;
|
||||
#elif defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u8 track_mode : 4;
|
||||
__u8 copy : 1;
|
||||
__u8 damage : 1;
|
||||
__u8 reserved2 : 2;
|
||||
__u8 data_mode : 4;
|
||||
__u8 fp : 1;
|
||||
__u8 packet : 1;
|
||||
__u8 blank : 1;
|
||||
__u8 rt : 1;
|
||||
__u8 nwa_v : 1;
|
||||
__u8 lra_v : 1;
|
||||
__u8 reserved3 : 6;
|
||||
#endif
|
||||
__be32 track_start;
|
||||
__be32 next_writable;
|
||||
__be32 free_blocks;
|
||||
__be32 fixed_packet_size;
|
||||
__be32 track_size;
|
||||
__be32 last_rec_address;
|
||||
} track_information;
|
||||
|
||||
struct feature_header {
|
||||
__u32 data_len;
|
||||
__u8 reserved1;
|
||||
__u8 reserved2;
|
||||
__u16 curr_profile;
|
||||
};
|
||||
|
||||
struct mode_page_header {
|
||||
__be16 mode_data_length;
|
||||
__u8 medium_type;
|
||||
__u8 reserved1;
|
||||
__u8 reserved2;
|
||||
__u8 reserved3;
|
||||
__be16 desc_length;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/fs.h> /* not really needed, later.. */
|
||||
#include <linux/list.h>
|
||||
#include <uapi/linux/cdrom.h>
|
||||
|
||||
struct packet_command
|
||||
{
|
||||
|
|
@ -1209,6 +311,4 @@ static inline int msf_to_lba(u8 m, u8 s, u8 f)
|
|||
{
|
||||
return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET;
|
||||
}
|
||||
#endif /* End of kernel only stuff */
|
||||
|
||||
#endif /* _LINUX_CDROM_H */
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue