diff options
Diffstat (limited to 'include/linux')
379 files changed, 249 insertions, 60010 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index e2a1346514a..5b57367e28d 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild @@ -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 diff --git a/include/linux/a.out.h b/include/linux/a.out.h index e86dfca4458..220f1433889 100644 --- a/include/linux/a.out.h +++ b/include/linux/a.out.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__ */ diff --git a/include/linux/acct.h b/include/linux/acct.h index d537aa0ec41..4a5b7cb5607 100644 --- a/include/linux/acct.h +++ b/include/linux/acct.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 <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. - */ +#include <uapi/linux/acct.h> -#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 */ diff --git a/include/linux/adb.h b/include/linux/adb.h index 63bca502fa5..cde41300c7a 100644 --- a/include/linux/adb.h +++ b/include/linux/adb.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 */ diff --git a/include/linux/adfs_fs.h b/include/linux/adfs_fs.h index b19801f7389..0d991071a9d 100644 --- a/include/linux/adfs_fs.h +++ b/include/linux/adfs_fs.h @@ -1,47 +1,9 @@  #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   * the disk size is non-zero!!! @@ -59,5 +21,3 @@ static inline int adfs_checkbblk(unsigned char *ptr)  	return (result & 0xff) != ptr[511];  }  #endif - -#endif diff --git a/include/linux/affs_hardblocks.h b/include/linux/affs_hardblocks.h deleted file mode 100644 index f1b948c1f59..00000000000 --- a/include/linux/affs_hardblocks.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef	AFFS_HARDBLOCKS_H -#define	AFFS_HARDBLOCKS_H - -#include <linux/types.h> - -/* Just the needed definitions for the RDB of an Amiga HD. */ - -struct RigidDiskBlock { -	__u32	rdb_ID; -	__be32	rdb_SummedLongs; -	__s32	rdb_ChkSum; -	__u32	rdb_HostID; -	__be32	rdb_BlockBytes; -	__u32	rdb_Flags; -	__u32	rdb_BadBlockList; -	__be32	rdb_PartitionList; -	__u32	rdb_FileSysHeaderList; -	__u32	rdb_DriveInit; -	__u32	rdb_Reserved1[6]; -	__u32	rdb_Cylinders; -	__u32	rdb_Sectors; -	__u32	rdb_Heads; -	__u32	rdb_Interleave; -	__u32	rdb_Park; -	__u32	rdb_Reserved2[3]; -	__u32	rdb_WritePreComp; -	__u32	rdb_ReducedWrite; -	__u32	rdb_StepRate; -	__u32	rdb_Reserved3[5]; -	__u32	rdb_RDBBlocksLo; -	__u32	rdb_RDBBlocksHi; -	__u32	rdb_LoCylinder; -	__u32	rdb_HiCylinder; -	__u32	rdb_CylBlocks; -	__u32	rdb_AutoParkSeconds; -	__u32	rdb_HighRDSKBlock; -	__u32	rdb_Reserved4; -	char	rdb_DiskVendor[8]; -	char	rdb_DiskProduct[16]; -	char	rdb_DiskRevision[4]; -	char	rdb_ControllerVendor[8]; -	char	rdb_ControllerProduct[16]; -	char	rdb_ControllerRevision[4]; -	__u32	rdb_Reserved5[10]; -}; - -#define	IDNAME_RIGIDDISK	0x5244534B	/* "RDSK" */ - -struct PartitionBlock { -	__be32	pb_ID; -	__be32	pb_SummedLongs; -	__s32	pb_ChkSum; -	__u32	pb_HostID; -	__be32	pb_Next; -	__u32	pb_Flags; -	__u32	pb_Reserved1[2]; -	__u32	pb_DevFlags; -	__u8	pb_DriveName[32]; -	__u32	pb_Reserved2[15]; -	__be32	pb_Environment[17]; -	__u32	pb_EReserved[15]; -}; - -#define	IDNAME_PARTITION	0x50415254	/* "PART" */ - -#define RDB_ALLOCATION_LIMIT	16 - -#endif	/* AFFS_HARDBLOCKS_H */ diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h index f6778eceb8f..c6b61ca9705 100644 --- a/include/linux/agpgart.h +++ b/include/linux/agpgart.h @@ -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 */ diff --git a/include/linux/aio_abi.h b/include/linux/aio_abi.h deleted file mode 100644 index 86fa7a71336..00000000000 --- a/include/linux/aio_abi.h +++ /dev/null @@ -1,111 +0,0 @@ -/* include/linux/aio_abi.h - * - * Copyright 2000,2001,2002 Red Hat. - * - * Written by Benjamin LaHaise <bcrl@kvack.org> - * - * Distribute under the terms of the GPLv2 (see ../../COPYING) or under  - * the following terms. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation is hereby granted, provided that the above copyright - * notice appears in all copies.  This software is provided without any - * warranty, express or implied.  Red Hat makes no representations about - * the suitability of this software for any purpose. - * - * IN NO EVENT SHALL RED HAT BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, - * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RED HAT HAS BEEN ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * RED HAT DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND - * RED HAT HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, - * ENHANCEMENTS, OR MODIFICATIONS. - */ -#ifndef __LINUX__AIO_ABI_H -#define __LINUX__AIO_ABI_H - -#include <linux/types.h> -#include <asm/byteorder.h> - -typedef __kernel_ulong_t aio_context_t; - -enum { -	IOCB_CMD_PREAD = 0, -	IOCB_CMD_PWRITE = 1, -	IOCB_CMD_FSYNC = 2, -	IOCB_CMD_FDSYNC = 3, -	/* These two are experimental. -	 * IOCB_CMD_PREADX = 4, -	 * IOCB_CMD_POLL = 5, -	 */ -	IOCB_CMD_NOOP = 6, -	IOCB_CMD_PREADV = 7, -	IOCB_CMD_PWRITEV = 8, -}; - -/* - * Valid flags for the "aio_flags" member of the "struct iocb". - * - * IOCB_FLAG_RESFD - Set if the "aio_resfd" member of the "struct iocb" - *                   is valid. - */ -#define IOCB_FLAG_RESFD		(1 << 0) - -/* read() from /dev/aio returns these structures. */ -struct io_event { -	__u64		data;		/* the data field from the iocb */ -	__u64		obj;		/* what iocb this event came from */ -	__s64		res;		/* result code for this event */ -	__s64		res2;		/* secondary result */ -}; - -#if defined(__LITTLE_ENDIAN) -#define PADDED(x,y)	x, y -#elif defined(__BIG_ENDIAN) -#define PADDED(x,y)	y, x -#else -#error edit for your odd byteorder. -#endif - -/* - * we always use a 64bit off_t when communicating - * with userland.  its up to libraries to do the - * proper padding and aio_error abstraction - */ - -struct iocb { -	/* these are internal to the kernel/libc. */ -	__u64	aio_data;	/* data to be returned in event's data */ -	__u32	PADDED(aio_key, aio_reserved1); -				/* the kernel sets aio_key to the req # */ - -	/* common fields */ -	__u16	aio_lio_opcode;	/* see IOCB_CMD_ above */ -	__s16	aio_reqprio; -	__u32	aio_fildes; - -	__u64	aio_buf; -	__u64	aio_nbytes; -	__s64	aio_offset; - -	/* extra parameters */ -	__u64	aio_reserved2;	/* TODO: use this for a (struct sigevent *) */ - -	/* flags for the "struct iocb" */ -	__u32	aio_flags; - -	/* -	 * if the IOCB_FLAG_RESFD flag of "aio_flags" is set, this is an -	 * eventfd to signal AIO readiness to -	 */ -	__u32	aio_resfd; -}; /* 64 bytes */ - -#undef IFBIG -#undef IFLITTLE - -#endif /* __LINUX__AIO_ABI_H */ - diff --git a/include/linux/apm_bios.h b/include/linux/apm_bios.h index 01a6244c9bc..9c3a87184f4 100644 --- a/include/linux/apm_bios.h +++ b/include/linux/apm_bios.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> - -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; -}; +#include <uapi/linux/apm_bios.h> -#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 */ diff --git a/include/linux/arcfb.h b/include/linux/arcfb.h deleted file mode 100644 index 721e7654dae..00000000000 --- a/include/linux/arcfb.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __LINUX_ARCFB_H__ -#define __LINUX_ARCFB_H__ - -#define FBIO_WAITEVENT		_IO('F', 0x88) -#define FBIO_GETCONTROL2	_IOR('F', 0x89, size_t) - -#endif - diff --git a/include/linux/atalk.h b/include/linux/atalk.h index f57c36881c4..73fd8b7e953 100644 --- a/include/linux/atalk.h +++ b/include/linux/atalk.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__ */ diff --git a/include/linux/atm.h b/include/linux/atm.h index d3b292174ae..30006c43595 100644 --- a/include/linux/atm.h +++ b/include/linux/atm.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 <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 */ +#include <uapi/linux/atm.h> -#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 diff --git a/include/linux/atm_eni.h b/include/linux/atm_eni.h deleted file mode 100644 index 34f31797255..00000000000 --- a/include/linux/atm_eni.h +++ /dev/null @@ -1,23 +0,0 @@ -/* atm_eni.h - Driver-specific declarations of the ENI driver (for use by -	       driver-specific utilities) */ - -/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ - - -#ifndef LINUX_ATM_ENI_H -#define LINUX_ATM_ENI_H - -#include <linux/atmioc.h> - - -struct eni_multipliers { -	int tx,rx;	/* values are in percent and must be > 100 */ -}; - - -#define ENI_MEMDUMP     _IOW('a',ATMIOC_SARPRV,struct atmif_sioc) -                                                /* printk memory map */ -#define ENI_SETMULT	_IOW('a',ATMIOC_SARPRV+7,struct atmif_sioc) -						/* set buffer multipliers */ - -#endif diff --git a/include/linux/atm_he.h b/include/linux/atm_he.h deleted file mode 100644 index 2a7713b597c..00000000000 --- a/include/linux/atm_he.h +++ /dev/null @@ -1,20 +0,0 @@ -/* atm_he.h */ - -#ifndef LINUX_ATM_HE_H -#define LINUX_ATM_HE_H - -#include <linux/atmioc.h> - -#define HE_GET_REG	_IOW('a', ATMIOC_SARPRV, struct atmif_sioc) - -#define HE_REGTYPE_PCI	1 -#define HE_REGTYPE_RCM	2 -#define HE_REGTYPE_TCM	3 -#define HE_REGTYPE_MBOX	4 - -struct he_ioctl_reg { -	unsigned addr, val; -	char type; -}; - -#endif /* LINUX_ATM_HE_H */ diff --git a/include/linux/atm_idt77105.h b/include/linux/atm_idt77105.h deleted file mode 100644 index 8b724000aa5..00000000000 --- a/include/linux/atm_idt77105.h +++ /dev/null @@ -1,28 +0,0 @@ -/* atm_idt77105.h - Driver-specific declarations of the IDT77105 driver (for - * use by driver-specific utilities) */ - -/* Written 1999 by Greg Banks <gnb@linuxfan.com>. Copied from atm_suni.h. */ - - -#ifndef LINUX_ATM_IDT77105_H -#define LINUX_ATM_IDT77105_H - -#include <linux/types.h> -#include <linux/atmioc.h> -#include <linux/atmdev.h> - -/* - * Structure for IDT77105_GETSTAT and IDT77105_GETSTATZ ioctls. - * Pointed to by `arg' in atmif_sioc. - */ -struct idt77105_stats { -        __u32 symbol_errors;  /* wire symbol errors */ -        __u32 tx_cells;       /* cells transmitted */ -        __u32 rx_cells;       /* cells received */ -        __u32 rx_hec_errors;  /* Header Error Check errors on receive */ -}; - -#define IDT77105_GETSTAT	_IOW('a',ATMIOC_PHYPRV+2,struct atmif_sioc)	/* get stats */ -#define IDT77105_GETSTATZ	_IOW('a',ATMIOC_PHYPRV+3,struct atmif_sioc)	/* get stats and zero */ - -#endif diff --git a/include/linux/atm_nicstar.h b/include/linux/atm_nicstar.h deleted file mode 100644 index 577b79f33e8..00000000000 --- a/include/linux/atm_nicstar.h +++ /dev/null @@ -1,53 +0,0 @@ -/****************************************************************************** - * - * atm_nicstar.h - * - * Driver-specific declarations for use by NICSTAR driver specific utils. - * - * Author: Rui Prior - * - * (C) INESC 1998 - * - ******************************************************************************/ - - -#ifndef LINUX_ATM_NICSTAR_H -#define LINUX_ATM_NICSTAR_H - -/* Note: non-kernel programs including this file must also include - * sys/types.h for struct timeval - */ - -#include <linux/atmapi.h> -#include <linux/atmioc.h> - -#define NS_GETPSTAT	_IOWR('a',ATMIOC_SARPRV+1,struct atmif_sioc) -						/* get pool statistics */ -#define NS_SETBUFLEV	_IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) -						/* set buffer level markers */ -#define NS_ADJBUFLEV	_IO('a',ATMIOC_SARPRV+3) -						/* adjust buffer level */ - -typedef struct buf_nr -{ -   unsigned min; -   unsigned init; -   unsigned max; -}buf_nr; - - -typedef struct pool_levels -{ -   int buftype; -   int count;		/* (At least for now) only used in NS_GETPSTAT */ -   buf_nr level; -} pool_levels; - -/* type must be one of the following: */ -#define NS_BUFTYPE_SMALL 1 -#define NS_BUFTYPE_LARGE 2 -#define NS_BUFTYPE_HUGE 3 -#define NS_BUFTYPE_IOVEC 4 - - -#endif /* LINUX_ATM_NICSTAR_H */ diff --git a/include/linux/atm_tcp.h b/include/linux/atm_tcp.h index 375638f8554..db6b65fc0ae 100644 --- a/include/linux/atm_tcp.h +++ b/include/linux/atm_tcp.h @@ -3,61 +3,11 @@  /* 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> - - -/* - * 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 */ +#include <uapi/linux/atm_tcp.h> -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); @@ -69,5 +19,3 @@ struct atm_tcp_ops {  extern struct atm_tcp_ops atm_tcp_ops;  #endif - -#endif diff --git a/include/linux/atm_zatm.h b/include/linux/atm_zatm.h deleted file mode 100644 index 10f0fa29454..00000000000 --- a/include/linux/atm_zatm.h +++ /dev/null @@ -1,52 +0,0 @@ -/* atm_zatm.h - Driver-specific declarations of the ZATM driver (for use by -		driver-specific utilities) */ - -/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ - - -#ifndef LINUX_ATM_ZATM_H -#define LINUX_ATM_ZATM_H - -/* - * Note: non-kernel programs including this file must also include - * sys/types.h for struct timeval - */ - -#include <linux/atmapi.h> -#include <linux/atmioc.h> - -#define ZATM_GETPOOL	_IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc) -						/* get pool statistics */ -#define ZATM_GETPOOLZ	_IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) -						/* get statistics and zero */ -#define ZATM_SETPOOL	_IOW('a',ATMIOC_SARPRV+3,struct atmif_sioc) -						/* set pool parameters */ - -struct zatm_pool_info { -	int ref_count;			/* free buffer pool usage counters */ -	int low_water,high_water;	/* refill parameters */ -	int rqa_count,rqu_count;	/* queue condition counters */ -	int offset,next_off;		/* alignment optimizations: offset */ -	int next_cnt,next_thres;	/* repetition counter and threshold */ -}; - -struct zatm_pool_req { -	int pool_num;			/* pool number */ -	struct zatm_pool_info info;	/* actual information */ -}; - -struct zatm_t_hist { -	struct timeval real;		/* real (wall-clock) time */ -	struct timeval expected;	/* expected real time */ -}; - - -#define ZATM_OAM_POOL		0	/* free buffer pool for OAM cells */ -#define ZATM_AAL0_POOL		1	/* free buffer pool for AAL0 cells */ -#define ZATM_AAL5_POOL_BASE	2	/* first AAL5 free buffer pool */ -#define ZATM_LAST_POOL	ZATM_AAL5_POOL_BASE+10 /* max. 64 kB */ - -#define ZATM_TIMER_HISTORY_SIZE	16	/* number of timer adjustments to -					   record; must be 2^n */ - -#endif diff --git a/include/linux/atmapi.h b/include/linux/atmapi.h deleted file mode 100644 index 8fe54d90d95..00000000000 --- a/include/linux/atmapi.h +++ /dev/null @@ -1,29 +0,0 @@ -/* atmapi.h - ATM API user space/kernel compatibility */ -  -/* Written 1999,2000 by Werner Almesberger, EPFL ICA */ -  - -#ifndef _LINUX_ATMAPI_H -#define _LINUX_ATMAPI_H - -#if defined(__sparc__) || defined(__ia64__) -/* such alignment is not required on 32 bit sparcs, but we can't -   figure that we are on a sparc64 while compiling user-space programs. */ -#define __ATM_API_ALIGN	__attribute__((aligned(8))) -#else -#define __ATM_API_ALIGN -#endif - - -/* - * Opaque type for kernel pointers. Note that _ is never accessed. We need - * the struct in order hide the array, so that we can make simple assignments - * instead of being forced to use memcpy. It also improves error reporting for - * code that still assumes that we're passing unsigned longs. - * - * Convention: NULL pointers are passed as a field of all zeroes. - */ -  -typedef struct { unsigned char _[8]; } __ATM_API_ALIGN atm_kptr_t; - -#endif diff --git a/include/linux/atmarp.h b/include/linux/atmarp.h deleted file mode 100644 index 231f4bdec73..00000000000 --- a/include/linux/atmarp.h +++ /dev/null @@ -1,41 +0,0 @@ -/* atmarp.h - ATM ARP protocol and kernel-demon interface definitions */ -  -/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ -  - -#ifndef _LINUX_ATMARP_H -#define _LINUX_ATMARP_H - -#include <linux/types.h> -#include <linux/atmapi.h> -#include <linux/atmioc.h> - - -#define ATMARP_RETRY_DELAY 30		/* request next resolution or forget -					   NAK after 30 sec - should go into -					   atmclip.h */ -#define ATMARP_MAX_UNRES_PACKETS 5	/* queue that many packets while -					   waiting for the resolver */ - - -#define ATMARPD_CTRL	_IO('a',ATMIOC_CLIP+1)	/* become atmarpd ctrl sock */ -#define ATMARP_MKIP	_IO('a',ATMIOC_CLIP+2)	/* attach socket to IP */ -#define ATMARP_SETENTRY	_IO('a',ATMIOC_CLIP+3)	/* fill or hide ARP entry */ -#define ATMARP_ENCAP	_IO('a',ATMIOC_CLIP+5)	/* change encapsulation */ - - -enum atmarp_ctrl_type { -	act_invalid,		/* catch uninitialized structures */ -	act_need,		/* need address resolution */ -	act_up,			/* interface is coming up */ -	act_down,		/* interface is going down */ -	act_change		/* interface configuration has changed */ -}; - -struct atmarp_ctrl { -	enum atmarp_ctrl_type	type;	/* message type */ -	int			itf_num;/* interface number (if present) */ -	__be32			ip;	/* IP address (act_need only) */ -}; - -#endif diff --git a/include/linux/atmbr2684.h b/include/linux/atmbr2684.h deleted file mode 100644 index fdb2629b618..00000000000 --- a/include/linux/atmbr2684.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef _LINUX_ATMBR2684_H -#define _LINUX_ATMBR2684_H - -#include <linux/types.h> -#include <linux/atm.h> -#include <linux/if.h>		/* For IFNAMSIZ */ - -/* - * Type of media we're bridging (ethernet, token ring, etc)  Currently only - * ethernet is supported - */ -#define BR2684_MEDIA_ETHERNET	(0)	/* 802.3 */ -#define BR2684_MEDIA_802_4	(1)	/* 802.4 */ -#define BR2684_MEDIA_TR		(2)	/* 802.5 - token ring */ -#define BR2684_MEDIA_FDDI	(3) -#define BR2684_MEDIA_802_6	(4)	/* 802.6 */ - -					/* used only at device creation:  */ -#define BR2684_FLAG_ROUTED	(1<<16)	/* payload is routed, not bridged */ - -/* - * Is there FCS inbound on this VC?  This currently isn't supported. - */ -#define BR2684_FCSIN_NO		(0) -#define BR2684_FCSIN_IGNORE	(1) -#define BR2684_FCSIN_VERIFY	(2) - -/* - * Is there FCS outbound on this VC?  This currently isn't supported. - */ -#define BR2684_FCSOUT_NO	(0) -#define BR2684_FCSOUT_SENDZERO	(1) -#define BR2684_FCSOUT_GENERATE	(2) - -/* - * Does this VC include LLC encapsulation? - */ -#define BR2684_ENCAPS_VC	(0)	/* VC-mux */ -#define BR2684_ENCAPS_LLC	(1) -#define BR2684_ENCAPS_AUTODETECT (2)	/* Unsuported */ - -/* - * Is this VC bridged or routed? - */ - -#define BR2684_PAYLOAD_ROUTED   (0) -#define BR2684_PAYLOAD_BRIDGED  (1) - -/* - * This is for the ATM_NEWBACKENDIF call - these are like socket families: - * the first element of the structure is the backend number and the rest - * is per-backend specific - */ -struct atm_newif_br2684 { -	atm_backend_t backend_num;	/* ATM_BACKEND_BR2684 */ -	int media;		/* BR2684_MEDIA_*, flags in upper bits */ -	char ifname[IFNAMSIZ]; -	int mtu; -}; - -/* - * This structure is used to specify a br2684 interface - either by a - * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name - */ -#define BR2684_FIND_BYNOTHING	(0) -#define BR2684_FIND_BYNUM	(1) -#define BR2684_FIND_BYIFNAME	(2) -struct br2684_if_spec { -	int method;		/* BR2684_FIND_* */ -	union { -		char ifname[IFNAMSIZ]; -		int devnum; -	} spec; -}; - -/* - * This is for the ATM_SETBACKEND call - these are like socket families: - * the first element of the structure is the backend number and the rest - * is per-backend specific - */ -struct atm_backend_br2684 { -	atm_backend_t backend_num;	/* ATM_BACKEND_BR2684 */ -	struct br2684_if_spec ifspec; -	int fcs_in;		/* BR2684_FCSIN_* */ -	int fcs_out;		/* BR2684_FCSOUT_* */ -	int fcs_auto;		/* 1: fcs_{in,out} disabled if no FCS rx'ed */ -	int encaps;		/* BR2684_ENCAPS_* */ -	int has_vpiid;		/* 1: use vpn_id - Unsupported */ -	__u8 vpn_id[7]; -	int send_padding;	/* unsupported */ -	int min_size;		/* we will pad smaller packets than this */ -}; - -/* - * The BR2684_SETFILT ioctl is an experimental mechanism for folks - * terminating a large number of IP-only vcc's.  When netfilter allows - * efficient per-if in/out filters, this support will be removed - */ -struct br2684_filter { -	__be32 prefix;		/* network byte order */ -	__be32 netmask;		/* 0 = disable filter */ -}; - -struct br2684_filter_set { -	struct br2684_if_spec ifspec; -	struct br2684_filter filter; -}; - -enum br2684_payload { -	p_routed = BR2684_PAYLOAD_ROUTED, -	p_bridged = BR2684_PAYLOAD_BRIDGED, -}; - -#define BR2684_SETFILT	_IOW( 'a', ATMIOC_BACKEND + 0, \ -				struct br2684_filter_set) - -#endif /* _LINUX_ATMBR2684_H */ diff --git a/include/linux/atmclip.h b/include/linux/atmclip.h deleted file mode 100644 index 02c94c448dd..00000000000 --- a/include/linux/atmclip.h +++ /dev/null @@ -1,21 +0,0 @@ -/* atmclip.h - Classical IP over ATM */ -  -/* Written 1995-1998 by Werner Almesberger, EPFL LRC/ICA */ -  - -#ifndef LINUX_ATMCLIP_H -#define LINUX_ATMCLIP_H - -#include <linux/sockios.h> -#include <linux/atmioc.h> - - -#define RFC1483LLC_LEN	8		/* LLC+OUI+PID = 8 */ -#define RFC1626_MTU	9180		/* RFC1626 default MTU */ - -#define CLIP_DEFAULT_IDLETIMER 1200	/* 20 minutes, see RFC1755 */ -#define CLIP_CHECK_INTERVAL	 10	/* check every ten seconds */ - -#define	SIOCMKCLIP	_IO('a',ATMIOC_CLIP)	/* create IP interface */ - -#endif diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h index 06fd4bbc58f..22ef21c33d0 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h @@ -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 diff --git a/include/linux/atmioc.h b/include/linux/atmioc.h deleted file mode 100644 index 37f67aa8f1c..00000000000 --- a/include/linux/atmioc.h +++ /dev/null @@ -1,41 +0,0 @@ -/* atmioc.h - ranges for ATM-related ioctl numbers */ -  -/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ - - -/* - * See http://icawww1.epfl.ch/linux-atm/magic.html for the complete list of - * "magic" ioctl numbers. - */ - - -#ifndef _LINUX_ATMIOC_H -#define _LINUX_ATMIOC_H - -#include <asm/ioctl.h> -		/* everybody including atmioc.h will also need _IO{,R,W,WR} */ - -#define ATMIOC_PHYCOM	  0x00 /* PHY device common ioctls, globally unique */ -#define ATMIOC_PHYCOM_END 0x0f -#define ATMIOC_PHYTYP	  0x10 /* PHY dev type ioctls, unique per PHY type */ -#define ATMIOC_PHYTYP_END 0x2f -#define ATMIOC_PHYPRV	  0x30 /* PHY dev private ioctls, unique per driver */ -#define ATMIOC_PHYPRV_END 0x4f -#define ATMIOC_SARCOM	  0x50 /* SAR device common ioctls, globally unique */ -#define ATMIOC_SARCOM_END 0x50 -#define ATMIOC_SARPRV	  0x60 /* SAR dev private ioctls, unique per driver */ -#define ATMIOC_SARPRV_END 0x7f -#define ATMIOC_ITF	  0x80 /* Interface ioctls, globally unique */ -#define ATMIOC_ITF_END	  0x8f -#define ATMIOC_BACKEND	  0x90 /* ATM generic backend ioctls, u. per backend */ -#define ATMIOC_BACKEND_END 0xaf -/* 0xb0-0xbf: Reserved for future use */ -#define ATMIOC_AREQUIPA	  0xc0 /* Application requested IP over ATM, glob. u. */ -#define ATMIOC_LANE	  0xd0 /* LAN Emulation, globally unique */ -#define ATMIOC_MPOA       0xd8 /* MPOA, globally unique */ -#define	ATMIOC_CLIP	  0xe0 /* Classical IP over ATM control, globally u. */ -#define	ATMIOC_CLIP_END	  0xef -#define	ATMIOC_SPECIAL	  0xf0 /* Special-purpose controls, globally unique */ -#define	ATMIOC_SPECIAL_END 0xff - -#endif diff --git a/include/linux/atmlec.h b/include/linux/atmlec.h deleted file mode 100644 index 302791e3ab2..00000000000 --- a/include/linux/atmlec.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * ATM Lan Emulation Daemon driver interface - * - * Marko Kiiskila <mkiiskila@yahoo.com> - */ - -#ifndef _ATMLEC_H_ -#define _ATMLEC_H_ - -#include <linux/atmapi.h> -#include <linux/atmioc.h> -#include <linux/atm.h> -#include <linux/if_ether.h> -#include <linux/types.h> - -/* ATM lec daemon control socket */ -#define ATMLEC_CTRL	_IO('a', ATMIOC_LANE) -#define ATMLEC_DATA	_IO('a', ATMIOC_LANE+1) -#define ATMLEC_MCAST	_IO('a', ATMIOC_LANE+2) - -/* Maximum number of LEC interfaces (tweakable) */ -#define MAX_LEC_ITF 48 - -typedef enum { -	l_set_mac_addr, -	l_del_mac_addr, -	l_svc_setup, -	l_addr_delete, -	l_topology_change, -	l_flush_complete, -	l_arp_update, -	l_narp_req,		/* LANE2 mandates the use of this */ -	l_config, -	l_flush_tran_id, -	l_set_lecid, -	l_arp_xmt, -	l_rdesc_arp_xmt, -	l_associate_req, -	l_should_bridge		/* should we bridge this MAC? */ -} atmlec_msg_type; - -#define ATMLEC_MSG_TYPE_MAX l_should_bridge - -struct atmlec_config_msg { -	unsigned int maximum_unknown_frame_count; -	unsigned int max_unknown_frame_time; -	unsigned short max_retry_count; -	unsigned int aging_time; -	unsigned int forward_delay_time; -	unsigned int arp_response_time; -	unsigned int flush_timeout; -	unsigned int path_switching_delay; -	unsigned int lane_version;	/* LANE2: 1 for LANEv1, 2 for LANEv2 */ -	int mtu; -	int is_proxy; -}; - -struct atmlec_msg { -	atmlec_msg_type type; -	int sizeoftlvs;		/* LANE2: if != 0, tlvs follow */ -	union { -		struct { -			unsigned char mac_addr[ETH_ALEN]; -			unsigned char atm_addr[ATM_ESA_LEN]; -			unsigned int flag;	/* -						 * Topology_change flag, -						 * remoteflag, permanent flag, -						 * lecid, transaction id -						 */ -			unsigned int targetless_le_arp;	/* LANE2 */ -			unsigned int no_source_le_narp;	/* LANE2 */ -		} normal; -		struct atmlec_config_msg config; -		struct { -			__u16 lec_id;				/* requestor lec_id  */ -			__u32 tran_id;				/* transaction id    */ -			unsigned char mac_addr[ETH_ALEN];	/* dst mac addr      */ -			unsigned char atm_addr[ATM_ESA_LEN];	/* reqestor ATM addr */ -		} proxy;	/* -				 * For mapping LE_ARP requests to responses. Filled by -				 * zeppelin, returned by kernel. Used only when proxying -				 */ -	} content; -} __ATM_API_ALIGN; - -struct atmlec_ioc { -	int dev_num; -	unsigned char atm_addr[ATM_ESA_LEN]; -	unsigned char receive;	/* 1= receive vcc, 0 = send vcc */ -}; -#endif /* _ATMLEC_H_ */ diff --git a/include/linux/atmmpc.h b/include/linux/atmmpc.h deleted file mode 100644 index 2aba5787fa6..00000000000 --- a/include/linux/atmmpc.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef _ATMMPC_H_ -#define _ATMMPC_H_ - -#include <linux/atmapi.h> -#include <linux/atmioc.h> -#include <linux/atm.h> -#include <linux/types.h> - -#define ATMMPC_CTRL _IO('a', ATMIOC_MPOA) -#define ATMMPC_DATA _IO('a', ATMIOC_MPOA+1) - -#define MPC_SOCKET_INGRESS 1 -#define MPC_SOCKET_EGRESS  2 - -struct atmmpc_ioc { -        int dev_num; -        __be32 ipaddr;              /* the IP address of the shortcut    */ -        int type;                     /* ingress or egress                 */ -}; - -typedef struct in_ctrl_info { -        __u8   Last_NHRP_CIE_code; -        __u8   Last_Q2931_cause_value; -        __u8   eg_MPC_ATM_addr[ATM_ESA_LEN]; -        __be32  tag; -        __be32  in_dst_ip;      /* IP address this ingress MPC sends packets to */ -        __u16  holding_time; -        __u32  request_id; -} in_ctrl_info; - -typedef struct eg_ctrl_info { -        __u8   DLL_header[256]; -        __u8   DH_length; -        __be32  cache_id; -        __be32  tag; -        __be32  mps_ip; -        __be32  eg_dst_ip;      /* IP address to which ingress MPC sends packets */ -        __u8   in_MPC_data_ATM_addr[ATM_ESA_LEN]; -        __u16  holding_time; -} eg_ctrl_info; - -struct mpc_parameters { -        __u16 mpc_p1;   /* Shortcut-Setup Frame Count    */ -        __u16 mpc_p2;   /* Shortcut-Setup Frame Time     */ -        __u8 mpc_p3[8]; /* Flow-detection Protocols      */ -        __u16 mpc_p4;   /* MPC Initial Retry Time        */ -        __u16 mpc_p5;   /* MPC Retry Time Maximum        */ -        __u16 mpc_p6;   /* Hold Down Time                */ -} ; - -struct k_message { -        __u16 type; -        __be32 ip_mask; -        __u8  MPS_ctrl[ATM_ESA_LEN]; -        union { -                in_ctrl_info in_info; -                eg_ctrl_info eg_info; -                struct mpc_parameters params; -        } content; -        struct atm_qos qos;        -} __ATM_API_ALIGN; - -struct llc_snap_hdr { -	/* RFC 1483 LLC/SNAP encapsulation for routed IP PDUs */ -        __u8  dsap;    /* Destination Service Access Point (0xAA)     */ -        __u8  ssap;    /* Source Service Access Point      (0xAA)     */ -        __u8  ui;      /* Unnumbered Information           (0x03)     */ -        __u8  org[3];  /* Organizational identification    (0x000000) */ -        __u8  type[2]; /* Ether type (for IP)              (0x0800)   */ -}; - -/* TLVs this MPC recognizes */ -#define TLV_MPOA_DEVICE_TYPE         0x00a03e2a   - -/* MPOA device types in MPOA Device Type TLV */ -#define NON_MPOA    0 -#define MPS         1 -#define MPC         2 -#define MPS_AND_MPC 3 - - -/* MPC parameter defaults */ - -#define MPC_P1 10  /* Shortcut-Setup Frame Count  */  -#define MPC_P2 1   /* Shortcut-Setup Frame Time   */ -#define MPC_P3 0   /* Flow-detection Protocols    */ -#define MPC_P4 5   /* MPC Initial Retry Time      */ -#define MPC_P5 40  /* MPC Retry Time Maximum      */ -#define MPC_P6 160 /* Hold Down Time              */ -#define HOLDING_TIME_DEFAULT 1200 /* same as MPS-p7 */ - -/* MPC constants */ - -#define MPC_C1 2   /* Retry Time Multiplier       */ -#define MPC_C2 60  /* Initial Keep-Alive Lifetime */ - -/* Message types - to MPOA daemon */ - -#define SND_MPOA_RES_RQST    201 -#define SET_MPS_CTRL_ADDR    202 -#define SND_MPOA_RES_RTRY    203 /* Different type in a retry due to req id         */ -#define STOP_KEEP_ALIVE_SM   204 -#define EGRESS_ENTRY_REMOVED 205 -#define SND_EGRESS_PURGE     206 -#define DIE                  207 /* tell the daemon to exit()                       */ -#define DATA_PLANE_PURGE     208 /* Data plane purge because of egress cache hit miss or dead MPS */ -#define OPEN_INGRESS_SVC     209 - -/* Message types - from MPOA daemon */ - -#define MPOA_TRIGGER_RCVD     101 -#define MPOA_RES_REPLY_RCVD   102 -#define INGRESS_PURGE_RCVD    103 -#define EGRESS_PURGE_RCVD     104 -#define MPS_DEATH             105 -#define CACHE_IMPOS_RCVD      106 -#define SET_MPC_CTRL_ADDR     107 /* Our MPC's control ATM address   */ -#define SET_MPS_MAC_ADDR      108 -#define CLEAN_UP_AND_EXIT     109 -#define SET_MPC_PARAMS        110 /* MPC configuration parameters    */ - -/* Message types - bidirectional */        - -#define RELOAD                301 /* kill -HUP the daemon for reload */ - -#endif /* _ATMMPC_H_ */ diff --git a/include/linux/atmppp.h b/include/linux/atmppp.h deleted file mode 100644 index 300dcce0c83..00000000000 --- a/include/linux/atmppp.h +++ /dev/null @@ -1,24 +0,0 @@ -/* atmppp.h - RFC2364 PPPoATM */ - -/* Written 2000 by Mitchell Blank Jr */ - -#ifndef _LINUX_ATMPPP_H -#define _LINUX_ATMPPP_H - -#include <linux/atm.h> - -#define PPPOATM_ENCAPS_AUTODETECT	(0) -#define PPPOATM_ENCAPS_VC		(1) -#define PPPOATM_ENCAPS_LLC		(2) - -/* - * This is for the ATM_SETBACKEND call - these are like socket families: - * the first element of the structure is the backend number and the rest - * is per-backend specific - */ -struct atm_backend_ppp { -	atm_backend_t	backend_num;	/* ATM_BACKEND_PPP */ -	int		encaps;		/* PPPOATM_ENCAPS_* */ -}; - -#endif	/* _LINUX_ATMPPP_H */ diff --git a/include/linux/atmsap.h b/include/linux/atmsap.h deleted file mode 100644 index 799b104515d..00000000000 --- a/include/linux/atmsap.h +++ /dev/null @@ -1,162 +0,0 @@ -/* atmsap.h - ATM Service Access Point addressing definitions */ - -/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ - - -#ifndef _LINUX_ATMSAP_H -#define _LINUX_ATMSAP_H - -#include <linux/atmapi.h> - -/* - * BEGIN_xx and END_xx markers are used for automatic generation of - * documentation. Do not change them. - */ - - -/* - * Layer 2 protocol identifiers - */ - -/* BEGIN_L2 */ -#define ATM_L2_NONE	0	/* L2 not specified */ -#define ATM_L2_ISO1745  0x01	/* Basic mode ISO 1745 */ -#define ATM_L2_Q291	0x02	/* ITU-T Q.291 (Rec. I.441) */ -#define ATM_L2_X25_LL	0x06	/* ITU-T X.25, link layer */ -#define ATM_L2_X25_ML	0x07	/* ITU-T X.25, multilink */ -#define ATM_L2_LAPB	0x08	/* Extended LAPB, half-duplex (Rec. T.71) */ -#define ATM_L2_HDLC_ARM	0x09	/* HDLC ARM (ISO/IEC 4335) */ -#define ATM_L2_HDLC_NRM	0x0a	/* HDLC NRM (ISO/IEC 4335) */ -#define ATM_L2_HDLC_ABM	0x0b	/* HDLC ABM (ISO/IEC 4335) */ -#define ATM_L2_ISO8802	0x0c	/* LAN LLC (ISO/IEC 8802/2) */ -#define ATM_L2_X75	0x0d	/* ITU-T X.75, SLP */ -#define ATM_L2_Q922	0x0e	/* ITU-T Q.922 */ -#define ATM_L2_USER	0x10	/* user-specified */ -#define ATM_L2_ISO7776	0x11	/* ISO 7776 DTE-DTE */ -/* END_L2 */ - - -/* - * Layer 3 protocol identifiers - */ - -/* BEGIN_L3 */ -#define ATM_L3_NONE	0	/* L3 not specified */ -#define ATM_L3_X25	0x06	/* ITU-T X.25, packet layer */ -#define ATM_L3_ISO8208	0x07	/* ISO/IEC 8208 */ -#define ATM_L3_X223	0x08	/* ITU-T X.223 | ISO/IEC 8878 */ -#define ATM_L3_ISO8473	0x09	/* ITU-T X.233 | ISO/IEC 8473 */ -#define ATM_L3_T70	0x0a	/* ITU-T T.70 minimum network layer */ -#define ATM_L3_TR9577	0x0b	/* ISO/IEC TR 9577 */ -#define ATM_L3_H310	0x0c	/* ITU-T Recommendation H.310 */ -#define ATM_L3_H321	0x0d	/* ITU-T Recommendation H.321 */ -#define ATM_L3_USER	0x10	/* user-specified */ -/* END_L3 */ - - -/* - * High layer identifiers - */ - -/* BEGIN_HL */ -#define ATM_HL_NONE	0	/* HL not specified */ -#define ATM_HL_ISO	0x01	/* ISO */ -#define ATM_HL_USER	0x02	/* user-specific */ -#define ATM_HL_HLP	0x03	/* high layer profile - UNI 3.0 only */ -#define ATM_HL_VENDOR	0x04	/* vendor-specific application identifier */ -/* END_HL */ - - -/* - * ITU-T coded mode of operation - */ - -/* BEGIN_IMD */ -#define ATM_IMD_NONE	 0	/* mode not specified */ -#define ATM_IMD_NORMAL	 1	/* normal mode of operation */ -#define ATM_IMD_EXTENDED 2	/* extended mode of operation */ -/* END_IMD */ - -/* - * H.310 code points - */ - -#define ATM_TT_NONE	0	/* terminal type not specified */ -#define ATM_TT_RX	1	/* receive only */ -#define ATM_TT_TX	2	/* send only */ -#define ATM_TT_RXTX	3	/* receive and send */ - -#define ATM_MC_NONE	0	/* no multiplexing */ -#define ATM_MC_TS	1	/* transport stream (TS) */ -#define ATM_MC_TS_FEC	2	/* transport stream with forward error corr. */ -#define ATM_MC_PS	3	/* program stream (PS) */ -#define ATM_MC_PS_FEC	4	/* program stream with forward error corr. */ -#define ATM_MC_H221	5	/* ITU-T Rec. H.221 */ - -/* - * SAP structures - */ - -#define ATM_MAX_HLI	8	/* maximum high-layer information length */ - - -struct atm_blli { -    unsigned char l2_proto;	/* layer 2 protocol */ -    union { -	struct { -	    unsigned char mode;	/* mode of operation (ATM_IMD_xxx), 0 if */ -				/* absent */ -	    unsigned char window; /* window size (k), 1-127 (0 to omit) */ -	} itu;			/* ITU-T encoding */ -	unsigned char user;	/* user-specified l2 information */ -    } l2; -    unsigned char l3_proto;	/* layer 3 protocol */ -    union { -	struct { -	    unsigned char mode;	/* mode of operation (ATM_IMD_xxx), 0 if */ -				/* absent */ -	    unsigned char def_size; /* default packet size (log2), 4-12 (0 to */ -				    /* omit) */ -	    unsigned char window;/* packet window size, 1-127 (0 to omit) */ -	} itu;			/* ITU-T encoding */ -	unsigned char user;	/* user specified l3 information */ -	struct {		      /* if l3_proto = ATM_L3_H310 */ -	    unsigned char term_type;  /* terminal type */ -	    unsigned char fw_mpx_cap; /* forward multiplexing capability */ -				      /* only if term_type != ATM_TT_NONE */ -	    unsigned char bw_mpx_cap; /* backward multiplexing capability */ -				      /* only if term_type != ATM_TT_NONE */ -	} h310; -	struct {		  /* if l3_proto = ATM_L3_TR9577 */ -	    unsigned char ipi;	  /* initial protocol id */ -	    unsigned char snap[5];/* IEEE 802.1 SNAP identifier */ -				  /* (only if ipi == NLPID_IEEE802_1_SNAP) */ -	} tr9577; -    } l3; -} __ATM_API_ALIGN; - - -struct atm_bhli { -    unsigned char hl_type;	/* high layer information type */ -    unsigned char hl_length;	/* length (only if hl_type == ATM_HL_USER || */ -				/* hl_type == ATM_HL_ISO) */ -    unsigned char hl_info[ATM_MAX_HLI];/* high layer information */ -}; - - -#define ATM_MAX_BLLI	3		/* maximum number of BLLI elements */ - - -struct atm_sap { -	struct atm_bhli bhli;		/* local SAP, high-layer information */ -	struct atm_blli blli[ATM_MAX_BLLI] __ATM_API_ALIGN; -					/* local SAP, low-layer info */ -}; - - -static __inline__ int blli_in_use(struct atm_blli blli) -{ -	return blli.l2_proto || blli.l3_proto; -} - -#endif diff --git a/include/linux/atmsvc.h b/include/linux/atmsvc.h deleted file mode 100644 index aa71583b8da..00000000000 --- a/include/linux/atmsvc.h +++ /dev/null @@ -1,55 +0,0 @@ -/* atmsvc.h - ATM signaling kernel-demon interface definitions */ -  -/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ -  - -#ifndef _LINUX_ATMSVC_H -#define _LINUX_ATMSVC_H - -#include <linux/atmapi.h> -#include <linux/atm.h> -#include <linux/atmioc.h> - - -#define ATMSIGD_CTRL _IO('a',ATMIOC_SPECIAL) -				/* become ATM signaling demon control socket */ - -enum atmsvc_msg_type { as_catch_null, as_bind, as_connect, as_accept, as_reject, -		       as_listen, as_okay, as_error, as_indicate, as_close, -		       as_itf_notify, as_modify, as_identify, as_terminate, -		       as_addparty, as_dropparty }; - -struct atmsvc_msg { -	enum atmsvc_msg_type type; -	atm_kptr_t vcc; -	atm_kptr_t listen_vcc;		/* indicate */ -	int reply;			/* for okay and close:		   */ -					/*   < 0: error before active	   */ -					/*        (sigd has discarded ctx) */ -					/*   ==0: success		   */ -				        /*   > 0: error when active (still */ -					/*        need to close)	   */ -	struct sockaddr_atmpvc pvc;	/* indicate, okay (connect) */ -	struct sockaddr_atmsvc local;	/* local SVC address */ -	struct atm_qos qos;		/* QOS parameters */ -	struct atm_sap sap;		/* SAP */ -	unsigned int session;		/* for p2pm */ -	struct sockaddr_atmsvc svc;	/* SVC address */ -} __ATM_API_ALIGN; - -/* - * Message contents: see ftp://icaftp.epfl.ch/pub/linux/atm/docs/isp-*.tar.gz - */ - -/* - * Some policy stuff for atmsigd and for net/atm/svc.c. Both have to agree on - * what PCR is used to request bandwidth from the device driver. net/atm/svc.c - * tries to do better than that, but only if there's no routing decision (i.e. - * if signaling only uses one ATM interface). - */ - -#define SELECT_TOP_PCR(tp) ((tp).pcr ? (tp).pcr : \ -  (tp).max_pcr && (tp).max_pcr != ATM_MAX_PCR ? (tp).max_pcr : \ -  (tp).min_pcr ? (tp).min_pcr : ATM_MAX_PCR) - -#endif diff --git a/include/linux/audit.h b/include/linux/audit.h index b889fa64b0e..bce729afbcf 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -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 diff --git a/include/linux/auto_fs.h b/include/linux/auto_fs.h index da64e15004b..fcd704d354c 100644 --- a/include/linux/auto_fs.h +++ b/include/linux/auto_fs.h @@ -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 */ diff --git a/include/linux/auto_fs4.h b/include/linux/auto_fs4.h deleted file mode 100644 index e02982fa295..00000000000 --- a/include/linux/auto_fs4.h +++ /dev/null @@ -1,164 +0,0 @@ -/* -*- c -*- - * linux/include/linux/auto_fs4.h - * - * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org> - * - * This file is part of the Linux kernel and is made available under - * the terms of the GNU General Public License, version 2, or at your - * option, any later version, incorporated herein by reference. - */ - -#ifndef _LINUX_AUTO_FS4_H -#define _LINUX_AUTO_FS4_H - -/* Include common v3 definitions */ -#include <linux/types.h> -#include <linux/auto_fs.h> - -/* autofs v4 definitions */ -#undef AUTOFS_PROTO_VERSION -#undef AUTOFS_MIN_PROTO_VERSION -#undef AUTOFS_MAX_PROTO_VERSION - -#define AUTOFS_PROTO_VERSION		5 -#define AUTOFS_MIN_PROTO_VERSION	3 -#define AUTOFS_MAX_PROTO_VERSION	5 - -#define AUTOFS_PROTO_SUBVERSION		2 - -/* Mask for expire behaviour */ -#define AUTOFS_EXP_IMMEDIATE		1 -#define AUTOFS_EXP_LEAVES		2 - -#define AUTOFS_TYPE_ANY			0U -#define AUTOFS_TYPE_INDIRECT		1U -#define AUTOFS_TYPE_DIRECT		2U -#define AUTOFS_TYPE_OFFSET		4U - -static inline void set_autofs_type_indirect(unsigned int *type) -{ -	*type = AUTOFS_TYPE_INDIRECT; -	return; -} - -static inline unsigned int autofs_type_indirect(unsigned int type) -{ -	return (type == AUTOFS_TYPE_INDIRECT); -} - -static inline void set_autofs_type_direct(unsigned int *type) -{ -	*type = AUTOFS_TYPE_DIRECT; -	return; -} - -static inline unsigned int autofs_type_direct(unsigned int type) -{ -	return (type == AUTOFS_TYPE_DIRECT); -} - -static inline void set_autofs_type_offset(unsigned int *type) -{ -	*type = AUTOFS_TYPE_OFFSET; -	return; -} - -static inline unsigned int autofs_type_offset(unsigned int type) -{ -	return (type == AUTOFS_TYPE_OFFSET); -} - -static inline unsigned int autofs_type_trigger(unsigned int type) -{ -	return (type == AUTOFS_TYPE_DIRECT || type == AUTOFS_TYPE_OFFSET); -} - -/* - * This isn't really a type as we use it to say "no type set" to - * indicate we want to search for "any" mount in the - * autofs_dev_ioctl_ismountpoint() device ioctl function. - */ -static inline void set_autofs_type_any(unsigned int *type) -{ -	*type = AUTOFS_TYPE_ANY; -	return; -} - -static inline unsigned int autofs_type_any(unsigned int type) -{ -	return (type == AUTOFS_TYPE_ANY); -} - -/* Daemon notification packet types */ -enum autofs_notify { -	NFY_NONE, -	NFY_MOUNT, -	NFY_EXPIRE -}; - -/* Kernel protocol version 4 packet types */ - -/* Expire entry (umount request) */ -#define autofs_ptype_expire_multi	2 - -/* Kernel protocol version 5 packet types */ - -/* Indirect mount missing and expire requests. */ -#define autofs_ptype_missing_indirect	3 -#define autofs_ptype_expire_indirect	4 - -/* Direct mount missing and expire requests */ -#define autofs_ptype_missing_direct	5 -#define autofs_ptype_expire_direct	6 - -/* v4 multi expire (via pipe) */ -struct autofs_packet_expire_multi { -	struct autofs_packet_hdr hdr; -        autofs_wqt_t wait_queue_token; -	int len; -	char name[NAME_MAX+1]; -}; - -union autofs_packet_union { -	struct autofs_packet_hdr hdr; -	struct autofs_packet_missing missing; -	struct autofs_packet_expire expire; -	struct autofs_packet_expire_multi expire_multi; -}; - -/* autofs v5 common packet struct */ -struct autofs_v5_packet { -	struct autofs_packet_hdr hdr; -	autofs_wqt_t wait_queue_token; -	__u32 dev; -	__u64 ino; -	__u32 uid; -	__u32 gid; -	__u32 pid; -	__u32 tgid; -	__u32 len; -	char name[NAME_MAX+1]; -}; - -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; - -union autofs_v5_packet_union { -	struct autofs_packet_hdr hdr; -	struct autofs_v5_packet v5_packet; -	autofs_packet_missing_indirect_t missing_indirect; -	autofs_packet_expire_indirect_t expire_indirect; -	autofs_packet_missing_direct_t missing_direct; -	autofs_packet_expire_direct_t expire_direct; -}; - -#define AUTOFS_IOC_EXPIRE_MULTI		_IOW(0x93,0x66,int) -#define AUTOFS_IOC_EXPIRE_INDIRECT	AUTOFS_IOC_EXPIRE_MULTI -#define AUTOFS_IOC_EXPIRE_DIRECT	AUTOFS_IOC_EXPIRE_MULTI -#define AUTOFS_IOC_PROTOSUBVER		_IOR(0x93,0x67,int) -#define AUTOFS_IOC_ASKUMOUNT		_IOR(0x93,0x70,int) - - -#endif /* _LINUX_AUTO_FS4_H */ diff --git a/include/linux/auxvec.h b/include/linux/auxvec.h index f3b5d4e3a2a..669fef5c745 100644 --- a/include/linux/auxvec.h +++ b/include/linux/auxvec.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 */ diff --git a/include/linux/ax25.h b/include/linux/ax25.h deleted file mode 100644 index 74c89a41732..00000000000 --- a/include/linux/ax25.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * These are the public elements of the Linux kernel AX.25 code. A similar - * file netrom.h exists for the NET/ROM protocol. - */ - -#ifndef	AX25_KERNEL_H -#define	AX25_KERNEL_H - -#include <linux/socket.h> - -#define AX25_MTU	256 -#define AX25_MAX_DIGIS  8 - -#define AX25_WINDOW	1 -#define AX25_T1		2 -#define AX25_N2		3 -#define AX25_T3		4 -#define AX25_T2		5 -#define	AX25_BACKOFF	6 -#define	AX25_EXTSEQ	7 -#define	AX25_PIDINCL	8 -#define AX25_IDLE	9 -#define AX25_PACLEN	10 -#define AX25_IAMDIGI	12 - -#define AX25_KILL	99 - -#define SIOCAX25GETUID		(SIOCPROTOPRIVATE+0) -#define SIOCAX25ADDUID		(SIOCPROTOPRIVATE+1) -#define SIOCAX25DELUID		(SIOCPROTOPRIVATE+2) -#define SIOCAX25NOUID		(SIOCPROTOPRIVATE+3) -#define SIOCAX25OPTRT		(SIOCPROTOPRIVATE+7) -#define SIOCAX25CTLCON		(SIOCPROTOPRIVATE+8) -#define SIOCAX25GETINFOOLD	(SIOCPROTOPRIVATE+9) -#define SIOCAX25ADDFWD		(SIOCPROTOPRIVATE+10) -#define SIOCAX25DELFWD		(SIOCPROTOPRIVATE+11) -#define SIOCAX25DEVCTL          (SIOCPROTOPRIVATE+12) -#define SIOCAX25GETINFO         (SIOCPROTOPRIVATE+13) - -#define AX25_SET_RT_IPMODE	2 - -#define AX25_NOUID_DEFAULT	0 -#define AX25_NOUID_BLOCK	1 - -typedef struct { -	char		ax25_call[7];	/* 6 call + SSID (shifted ascii!) */ -} ax25_address; - -struct sockaddr_ax25 { -	__kernel_sa_family_t sax25_family; -	ax25_address	sax25_call; -	int		sax25_ndigis; -	/* Digipeater ax25_address sets follow */ -}; - -#define sax25_uid	sax25_ndigis - -struct full_sockaddr_ax25 { -	struct sockaddr_ax25 fsa_ax25; -	ax25_address	fsa_digipeater[AX25_MAX_DIGIS]; -}; - -struct ax25_routes_struct { -	ax25_address	port_addr; -	ax25_address	dest_addr; -	unsigned char	digi_count; -	ax25_address	digi_addr[AX25_MAX_DIGIS]; -}; - -struct ax25_route_opt_struct { -	ax25_address	port_addr; -	ax25_address	dest_addr; -	int		cmd; -	int		arg; -}; - -struct ax25_ctl_struct { -        ax25_address            port_addr; -        ax25_address            source_addr; -        ax25_address            dest_addr; -        unsigned int            cmd; -        unsigned long           arg; -        unsigned char           digi_count; -        ax25_address            digi_addr[AX25_MAX_DIGIS]; -}; - -/* this will go away. Please do not export to user land */ -struct ax25_info_struct_deprecated { -	unsigned int	n2, n2count; -	unsigned int	t1, t1timer; -	unsigned int	t2, t2timer; -	unsigned int	t3, t3timer; -	unsigned int	idle, idletimer; -	unsigned int	state; -	unsigned int	rcv_q, snd_q; -}; - -struct ax25_info_struct { -	unsigned int	n2, n2count; -	unsigned int	t1, t1timer; -	unsigned int	t2, t2timer; -	unsigned int	t3, t3timer; -	unsigned int	idle, idletimer; -	unsigned int	state; -	unsigned int	rcv_q, snd_q; -	unsigned int	vs, vr, va, vs_max; -	unsigned int	paclen; -	unsigned int	window; -}; - -struct ax25_fwd_struct { -	ax25_address	port_from; -	ax25_address	port_to; -}; - -#endif diff --git a/include/linux/b1lli.h b/include/linux/b1lli.h deleted file mode 100644 index 713f712685d..00000000000 --- a/include/linux/b1lli.h +++ /dev/null @@ -1,73 +0,0 @@ -/* $Id: b1lli.h,v 1.8.8.3 2001/09/23 22:25:05 kai Exp $ - * - * ISDN lowlevel-module for AVM B1-card. - * - * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de) - * - * This software may be used and distributed according to the terms - * of the GNU General Public License, incorporated herein by reference. - * - */ - -#ifndef _B1LLI_H_ -#define _B1LLI_H_ -/* - * struct for loading t4 file  - */ -typedef struct avmb1_t4file { -	int len; -	unsigned char *data; -} avmb1_t4file; - -typedef struct avmb1_loaddef { -	int contr; -	avmb1_t4file t4file; -} avmb1_loaddef; - -typedef struct avmb1_loadandconfigdef { -	int contr; -	avmb1_t4file t4file; -        avmb1_t4file t4config;  -} avmb1_loadandconfigdef; - -typedef struct avmb1_resetdef { -	int contr; -} avmb1_resetdef; - -typedef struct avmb1_getdef { -	int contr; -	int cardtype; -	int cardstate; -} avmb1_getdef; - -/* - * struct for adding new cards  - */ -typedef struct avmb1_carddef { -	int port; -	int irq; -} avmb1_carddef; - -#define AVM_CARDTYPE_B1		0 -#define AVM_CARDTYPE_T1		1 -#define AVM_CARDTYPE_M1		2 -#define AVM_CARDTYPE_M2		3 - -typedef struct avmb1_extcarddef { -	int port; -	int irq; -        int cardtype; -        int cardnr;  /* for HEMA/T1 */ -} avmb1_extcarddef; - -#define	AVMB1_LOAD		0	/* load image to card */ -#define AVMB1_ADDCARD		1	/* add a new card - OBSOLETE */ -#define AVMB1_RESETCARD		2	/* reset a card */ -#define	AVMB1_LOAD_AND_CONFIG	3	/* load image and config to card */ -#define	AVMB1_ADDCARD_WITH_TYPE	4	/* add a new card, with cardtype */ -#define AVMB1_GET_CARDINFO	5	/* get cardtype */ -#define AVMB1_REMOVECARD	6	/* remove a card - OBSOLETE */ - -#define	AVMB1_REGISTERCARD_IS_OBSOLETE - -#endif				/* _B1LLI_H_ */ diff --git a/include/linux/baycom.h b/include/linux/baycom.h deleted file mode 100644 index 81249e029da..00000000000 --- a/include/linux/baycom.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * The Linux BAYCOM driver for the Baycom serial 1200 baud modem - * and the parallel 9600 baud modem - * (C) 1997-1998 by Thomas Sailer, HB9JNX/AE4WA - */ - -#ifndef _BAYCOM_H -#define _BAYCOM_H - -/* -------------------------------------------------------------------- */ -/* - * structs for the IOCTL commands - */ - -struct baycom_debug_data { -	unsigned long debug1; -	unsigned long debug2; -	long debug3; -}; - -struct baycom_ioctl { -	int cmd; -	union { -		struct baycom_debug_data dbg; -	} data; -}; - -/* -------------------------------------------------------------------- */ - -/* - * ioctl values change for baycom - */ -#define BAYCOMCTL_GETDEBUG       0x92 - -/* -------------------------------------------------------------------- */ - -#endif /* _BAYCOM_H */ - -/* --------------------------------------------------------------------- */ diff --git a/include/linux/bfs_fs.h b/include/linux/bfs_fs.h deleted file mode 100644 index 1c0b355aa51..00000000000 --- a/include/linux/bfs_fs.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - *	include/linux/bfs_fs.h - BFS data structures on disk. - *	Copyright (C) 1999 Tigran Aivazian <tigran@veritas.com> - */ - -#ifndef _LINUX_BFS_FS_H -#define _LINUX_BFS_FS_H - -#include <linux/types.h> - -#define BFS_BSIZE_BITS		9 -#define BFS_BSIZE		(1<<BFS_BSIZE_BITS) - -#define BFS_MAGIC		0x1BADFACE -#define BFS_ROOT_INO		2 -#define BFS_INODES_PER_BLOCK	8 - -/* SVR4 vnode type values (bfs_inode->i_vtype) */ -#define BFS_VDIR 2L -#define BFS_VREG 1L - -/* BFS inode layout on disk */ -struct bfs_inode { -	__le16 i_ino; -	__u16 i_unused; -	__le32 i_sblock; -	__le32 i_eblock; -	__le32 i_eoffset; -	__le32 i_vtype; -	__le32 i_mode; -	__le32 i_uid; -	__le32 i_gid; -	__le32 i_nlink; -	__le32 i_atime; -	__le32 i_mtime; -	__le32 i_ctime; -	__u32 i_padding[4]; -}; - -#define BFS_NAMELEN		14	 -#define BFS_DIRENT_SIZE		16 -#define BFS_DIRS_PER_BLOCK	32 - -struct bfs_dirent { -	__le16 ino; -	char name[BFS_NAMELEN]; -}; - -/* BFS superblock layout on disk */ -struct bfs_super_block { -	__le32 s_magic; -	__le32 s_start; -	__le32 s_end; -	__le32 s_from; -	__le32 s_to; -	__s32 s_bfrom; -	__s32 s_bto; -	char  s_fsname[6]; -	char  s_volume[6]; -	__u32 s_padding[118]; -}; - - -#define BFS_OFF2INO(offset) \ -        ((((offset) - BFS_BSIZE) / sizeof(struct bfs_inode)) + BFS_ROOT_INO) - -#define BFS_INO2OFF(ino) \ -	((__u32)(((ino) - BFS_ROOT_INO) * sizeof(struct bfs_inode)) + BFS_BSIZE) -#define BFS_NZFILESIZE(ip) \ -        ((le32_to_cpu((ip)->i_eoffset) + 1) -  le32_to_cpu((ip)->i_sblock) * BFS_BSIZE) - -#define BFS_FILESIZE(ip) \ -        ((ip)->i_sblock == 0 ? 0 : BFS_NZFILESIZE(ip)) - -#define BFS_FILEBLOCKS(ip) \ -        ((ip)->i_sblock == 0 ? 0 : (le32_to_cpu((ip)->i_eblock) + 1) -  le32_to_cpu((ip)->i_sblock)) -#define BFS_UNCLEAN(bfs_sb, sb)	\ -	((le32_to_cpu(bfs_sb->s_from) != -1) && (le32_to_cpu(bfs_sb->s_to) != -1) && !(sb->s_flags & MS_RDONLY)) - - -#endif	/* _LINUX_BFS_FS_H */ diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index 26531f32bbb..cfcc6bfcaec 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.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 */ diff --git a/include/linux/blkpg.h b/include/linux/blkpg.h deleted file mode 100644 index a8519446c11..00000000000 --- a/include/linux/blkpg.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _LINUX_BLKPG_H -#define _LINUX_BLKPG_H - -/* - * Partition table and disk geometry handling - * - * A single ioctl with lots of subfunctions: - * - * Device number stuff: - *    get_whole_disk()		(given the device number of a partition, - *                               find the device number of the encompassing disk) - *    get_all_partitions()	(given the device number of a disk, return the - *				 device numbers of all its known partitions) - * - * Partition stuff: - *    add_partition() - *    delete_partition() - *    test_partition_in_use()	(also for test_disk_in_use) - * - * Geometry stuff: - *    get_geometry() - *    set_geometry() - *    get_bios_drivedata() - * - * For today, only the partition stuff - aeb, 990515 - */ -#include <linux/compiler.h> -#include <linux/ioctl.h> - -#define BLKPG      _IO(0x12,105) - -/* The argument structure */ -struct blkpg_ioctl_arg { -        int op; -        int flags; -        int datalen; -        void __user *data; -}; - -/* The subfunctions (for the op field) */ -#define BLKPG_ADD_PARTITION	1 -#define BLKPG_DEL_PARTITION	2 -#define BLKPG_RESIZE_PARTITION	3 - -/* Sizes of name fields. Unused at present. */ -#define BLKPG_DEVNAMELTH	64 -#define BLKPG_VOLNAMELTH	64 - -/* The data structure for ADD_PARTITION and DEL_PARTITION */ -struct blkpg_partition { -	long long start;		/* starting offset in bytes */ -	long long length;		/* length in bytes */ -	int pno;			/* partition number */ -	char devname[BLKPG_DEVNAMELTH];	/* partition name, like sda5 or c0d1p2, -					   to be used in kernel messages */ -	char volname[BLKPG_VOLNAMELTH];	/* volume label */ -}; - -#endif /* _LINUX_BLKPG_H */ diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index 4d1a0748eaf..7c2e030e72f 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.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 - -/* - * 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; -}; +#include <uapi/linux/blktrace_api.h> -#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 diff --git a/include/linux/bpqether.h b/include/linux/bpqether.h deleted file mode 100644 index a6c35e1a89a..00000000000 --- a/include/linux/bpqether.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef	__BPQETHER_H -#define	__BPQETHER_H - -/* - * 	Defines for the BPQETHER pseudo device driver - */ - -#ifndef __LINUX_IF_ETHER_H -#include <linux/if_ether.h> -#endif - -#define SIOCSBPQETHOPT		(SIOCDEVPRIVATE+0)	/* reserved */ -#define SIOCSBPQETHADDR		(SIOCDEVPRIVATE+1) -  -struct bpq_ethaddr { -	unsigned char destination[ETH_ALEN]; -	unsigned char accept[ETH_ALEN]; -}; - -/*  - * For SIOCSBPQETHOPT - this is compatible with PI2/PacketTwin card drivers, - * currently not implemented, though. If someone wants to hook a radio - * to his Ethernet card he may find this useful. ;-) - */ - -#define SIOCGBPQETHPARAM	0x5000  /* get Level 1 parameters */ -#define SIOCSBPQETHPARAM	0x5001  /* set */ - -struct bpq_req  { -    int cmd; -    int speed;			/* unused */ -    int clockmode;		/* unused */ -    int txdelay; -    unsigned char persist;	/* unused */ -    int slotime;		/* unused */ -    int squeldelay; -    int dmachan;		/* unused */ -    int irq;			/* unused */ -}; - -#endif diff --git a/include/linux/bsg.h b/include/linux/bsg.h index ecb4730d086..7173f6e9d2d 100644 --- a/include/linux/bsg.h +++ b/include/linux/bsg.h @@ -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 diff --git a/include/linux/can.h b/include/linux/can.h deleted file mode 100644 index e52958d7c2d..00000000000 --- a/include/linux/can.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - * linux/can.h - * - * Definitions for CAN network layer (socket addr / CAN frame / CAN filter) - * - * Authors: Oliver Hartkopp <oliver.hartkopp@volkswagen.de> - *          Urs Thuermann   <urs.thuermann@volkswagen.de> - * Copyright (c) 2002-2007 Volkswagen Group Electronic Research - * All rights reserved. - * - */ - -#ifndef CAN_H -#define CAN_H - -#include <linux/types.h> -#include <linux/socket.h> - -/* controller area network (CAN) kernel definitions */ - -/* special address description flags for the CAN_ID */ -#define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */ -#define CAN_RTR_FLAG 0x40000000U /* remote transmission request */ -#define CAN_ERR_FLAG 0x20000000U /* error message frame */ - -/* valid bits in CAN ID for frame formats */ -#define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */ -#define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */ -#define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */ - -/* - * Controller Area Network Identifier structure - * - * bit 0-28	: CAN identifier (11/29 bit) - * bit 29	: error message frame flag (0 = data frame, 1 = error message) - * bit 30	: remote transmission request flag (1 = rtr frame) - * bit 31	: frame format flag (0 = standard 11 bit, 1 = extended 29 bit) - */ -typedef __u32 canid_t; - -#define CAN_SFF_ID_BITS		11 -#define CAN_EFF_ID_BITS		29 - -/* - * Controller Area Network Error Message Frame Mask structure - * - * bit 0-28	: error class mask (see include/linux/can/error.h) - * bit 29-31	: set to zero - */ -typedef __u32 can_err_mask_t; - -/* CAN payload length and DLC definitions according to ISO 11898-1 */ -#define CAN_MAX_DLC 8 -#define CAN_MAX_DLEN 8 - -/* CAN FD payload length and DLC definitions according to ISO 11898-7 */ -#define CANFD_MAX_DLC 15 -#define CANFD_MAX_DLEN 64 - -/** - * struct can_frame - basic CAN frame structure - * @can_id:  CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition - * @can_dlc: frame payload length in byte (0 .. 8) aka data length code - *           N.B. the DLC field from ISO 11898-1 Chapter 8.4.2.3 has a 1:1 - *           mapping of the 'data length code' to the real payload length - * @data:    CAN frame payload (up to 8 byte) - */ -struct can_frame { -	canid_t can_id;  /* 32 bit CAN_ID + EFF/RTR/ERR flags */ -	__u8    can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */ -	__u8    data[CAN_MAX_DLEN] __attribute__((aligned(8))); -}; - -/* - * defined bits for canfd_frame.flags - * - * The use of struct canfd_frame implies the Extended Data Length (EDL) bit to - * be set in the CAN frame bitstream on the wire. The EDL bit switch turns - * the CAN controllers bitstream processor into the CAN FD mode which creates - * two new options within the CAN FD frame specification: - * - * Bit Rate Switch - to indicate a second bitrate is/was used for the payload - * Error State Indicator - represents the error state of the transmitting node - * - * As the CANFD_ESI bit is internally generated by the transmitting CAN - * controller only the CANFD_BRS bit is relevant for real CAN controllers when - * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make - * sense for virtual CAN interfaces to test applications with echoed frames. - */ -#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */ -#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */ - -/** - * struct canfd_frame - CAN flexible data rate frame structure - * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition - * @len:    frame payload length in byte (0 .. CANFD_MAX_DLEN) - * @flags:  additional flags for CAN FD - * @__res0: reserved / padding - * @__res1: reserved / padding - * @data:   CAN FD frame payload (up to CANFD_MAX_DLEN byte) - */ -struct canfd_frame { -	canid_t can_id;  /* 32 bit CAN_ID + EFF/RTR/ERR flags */ -	__u8    len;     /* frame payload length in byte */ -	__u8    flags;   /* additional flags for CAN FD */ -	__u8    __res0;  /* reserved / padding */ -	__u8    __res1;  /* reserved / padding */ -	__u8    data[CANFD_MAX_DLEN] __attribute__((aligned(8))); -}; - -#define CAN_MTU		(sizeof(struct can_frame)) -#define CANFD_MTU	(sizeof(struct canfd_frame)) - -/* particular protocols of the protocol family PF_CAN */ -#define CAN_RAW		1 /* RAW sockets */ -#define CAN_BCM		2 /* Broadcast Manager */ -#define CAN_TP16	3 /* VAG Transport Protocol v1.6 */ -#define CAN_TP20	4 /* VAG Transport Protocol v2.0 */ -#define CAN_MCNET	5 /* Bosch MCNet */ -#define CAN_ISOTP	6 /* ISO 15765-2 Transport Protocol */ -#define CAN_NPROTO	7 - -#define SOL_CAN_BASE 100 - -/** - * struct sockaddr_can - the sockaddr structure for CAN sockets - * @can_family:  address family number AF_CAN. - * @can_ifindex: CAN network interface index. - * @can_addr:    protocol specific address information - */ -struct sockaddr_can { -	__kernel_sa_family_t can_family; -	int         can_ifindex; -	union { -		/* transport protocol class address information (e.g. ISOTP) */ -		struct { canid_t rx_id, tx_id; } tp; - -		/* reserved for future CAN protocols address information */ -	} can_addr; -}; - -/** - * struct can_filter - CAN ID based filter in can_register(). - * @can_id:   relevant bits of CAN ID which are not masked out. - * @can_mask: CAN mask (see description) - * - * Description: - * A filter matches, when - * - *          <received_can_id> & mask == can_id & mask - * - * The filter can be inverted (CAN_INV_FILTER bit set in can_id) or it can - * filter for error message frames (CAN_ERR_FLAG bit set in mask). - */ -struct can_filter { -	canid_t can_id; -	canid_t can_mask; -}; - -#define CAN_INV_FILTER 0x20000000U /* to be set in can_filter.can_id */ - -#endif /* CAN_H */ diff --git a/include/linux/capability.h b/include/linux/capability.h index d10b7ed595b..98503b79236 100644 --- a/include/linux/capability.h +++ b/include/linux/capability.h @@ -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> - -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)) +#include <uapi/linux/capability.h> -#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 */ diff --git a/include/linux/capi.h b/include/linux/capi.h deleted file mode 100644 index 65100d6cb89..00000000000 --- a/include/linux/capi.h +++ /dev/null @@ -1,133 +0,0 @@ -/* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ - *  - * CAPI 2.0 Interface for Linux - *  - * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) - *  - * This software may be used and distributed according to the terms - * of the GNU General Public License, incorporated herein by reference. - * - */ - -#ifndef __LINUX_CAPI_H__ -#define __LINUX_CAPI_H__ - -#include <linux/types.h> -#include <linux/ioctl.h> -#ifndef __KERNEL__ -#include <linux/kernelcapi.h> -#endif - -/* - * CAPI_REGISTER - */ - -typedef struct capi_register_params {	/* CAPI_REGISTER */ -	__u32 level3cnt;	/* No. of simulatneous user data connections */ -	__u32 datablkcnt;	/* No. of buffered data messages */ -	__u32 datablklen;	/* Size of buffered data messages */ -} capi_register_params; - -#define	CAPI_REGISTER	_IOW('C',0x01,struct capi_register_params) - -/* - * CAPI_GET_MANUFACTURER - */ - -#define CAPI_MANUFACTURER_LEN		64 - -#define	CAPI_GET_MANUFACTURER	_IOWR('C',0x06,int)	/* broken: wanted size 64 (CAPI_MANUFACTURER_LEN) */ - -/* - * CAPI_GET_VERSION - */ - -typedef struct capi_version { -	__u32 majorversion; -	__u32 minorversion; -	__u32 majormanuversion; -	__u32 minormanuversion; -} capi_version; - -#define CAPI_GET_VERSION	_IOWR('C',0x07,struct capi_version) - -/* - * CAPI_GET_SERIAL - */ - -#define CAPI_SERIAL_LEN		8 -#define CAPI_GET_SERIAL		_IOWR('C',0x08,int)	/* broken: wanted size 8 (CAPI_SERIAL_LEN) */ - -/* - * CAPI_GET_PROFILE - */ - -typedef struct capi_profile { -	__u16 ncontroller;	/* number of installed controller */ -	__u16 nbchannel;	/* number of B-Channels */ -	__u32 goptions;		/* global options */ -	__u32 support1;		/* B1 protocols support */ -	__u32 support2;		/* B2 protocols support */ -	__u32 support3;		/* B3 protocols support */ -	__u32 reserved[6];	/* reserved */ -	__u32 manu[5];		/* manufacturer specific information */ -} capi_profile; - -#define CAPI_GET_PROFILE	_IOWR('C',0x09,struct capi_profile) - -typedef struct capi_manufacturer_cmd { -	unsigned long cmd; -	void __user *data; -} capi_manufacturer_cmd; - -/* - * CAPI_MANUFACTURER_CMD - */ - -#define CAPI_MANUFACTURER_CMD	_IOWR('C',0x20, struct capi_manufacturer_cmd) - -/* - * CAPI_GET_ERRCODE - * capi errcode is set, * if read, write, or ioctl returns EIO, - * ioctl returns errcode directly, and in arg, if != 0 - */ - -#define CAPI_GET_ERRCODE	_IOR('C',0x21, __u16) - -/* - * CAPI_INSTALLED - */ -#define CAPI_INSTALLED		_IOR('C',0x22, __u16) - - -/* - * member contr is input for - * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL - * and CAPI_GET_PROFILE - */ -typedef union capi_ioctl_struct { -	__u32 contr; -	capi_register_params rparams; -	__u8 manufacturer[CAPI_MANUFACTURER_LEN]; -	capi_version version; -	__u8 serial[CAPI_SERIAL_LEN]; -	capi_profile profile; -	capi_manufacturer_cmd cmd; -	__u16 errcode; -} capi_ioctl_struct; - -/* - * Middleware extension - */ - -#define CAPIFLAG_HIGHJACKING	0x0001 - -#define CAPI_GET_FLAGS		_IOR('C',0x23, unsigned) -#define CAPI_SET_FLAGS		_IOR('C',0x24, unsigned) -#define CAPI_CLR_FLAGS		_IOR('C',0x25, unsigned) - -#define CAPI_NCCI_OPENCOUNT	_IOR('C',0x26, unsigned) - -#define CAPI_NCCI_GETUNIT	_IOR('C',0x27, unsigned) - -#endif				/* __LINUX_CAPI_H__ */ diff --git a/include/linux/cciss_defs.h b/include/linux/cciss_defs.h deleted file mode 100644 index 316b670d4e3..00000000000 --- a/include/linux/cciss_defs.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef CCISS_DEFS_H -#define CCISS_DEFS_H - -#include <linux/types.h> - -/* general boundary definitions */ -#define SENSEINFOBYTES          32 /* note that this value may vary -				      between host implementations */ - -/* Command Status value */ -#define CMD_SUCCESS             0x0000 -#define CMD_TARGET_STATUS       0x0001 -#define CMD_DATA_UNDERRUN       0x0002 -#define CMD_DATA_OVERRUN        0x0003 -#define CMD_INVALID             0x0004 -#define CMD_PROTOCOL_ERR        0x0005 -#define CMD_HARDWARE_ERR        0x0006 -#define CMD_CONNECTION_LOST     0x0007 -#define CMD_ABORTED             0x0008 -#define CMD_ABORT_FAILED        0x0009 -#define CMD_UNSOLICITED_ABORT   0x000A -#define CMD_TIMEOUT             0x000B -#define CMD_UNABORTABLE		0x000C - -/* transfer direction */ -#define XFER_NONE               0x00 -#define XFER_WRITE              0x01 -#define XFER_READ               0x02 -#define XFER_RSVD               0x03 - -/* task attribute */ -#define ATTR_UNTAGGED           0x00 -#define ATTR_SIMPLE             0x04 -#define ATTR_HEADOFQUEUE        0x05 -#define ATTR_ORDERED            0x06 -#define ATTR_ACA                0x07 - -/* cdb type */ -#define TYPE_CMD				0x00 -#define TYPE_MSG				0x01 - -/* Type defs used in the following structs */ -#define BYTE __u8 -#define WORD __u16 -#define HWORD __u16 -#define DWORD __u32 - -#define CISS_MAX_LUN	1024 - -#define LEVEL2LUN   1 /* index into Target(x) structure, due to byte swapping */ -#define LEVEL3LUN   0 - -#pragma pack(1) - -/* Command List Structure */ -typedef union _SCSI3Addr_struct { -   struct { -    BYTE Dev; -    BYTE Bus:6; -    BYTE Mode:2;        /* b00 */ -  } PeripDev; -   struct { -    BYTE DevLSB; -    BYTE DevMSB:6; -    BYTE Mode:2;        /* b01 */ -  } LogDev; -   struct { -    BYTE Dev:5; -    BYTE Bus:3; -    BYTE Targ:6; -    BYTE Mode:2;        /* b10 */ -  } LogUnit; -} SCSI3Addr_struct; - -typedef struct _PhysDevAddr_struct { -  DWORD             TargetId:24; -  DWORD             Bus:6; -  DWORD             Mode:2; -  SCSI3Addr_struct  Target[2]; /* 2 level target device addr */ -} PhysDevAddr_struct; - -typedef struct _LogDevAddr_struct { -  DWORD            VolId:30; -  DWORD            Mode:2; -  BYTE             reserved[4]; -} LogDevAddr_struct; - -typedef union _LUNAddr_struct { -  BYTE               LunAddrBytes[8]; -  SCSI3Addr_struct   SCSI3Lun[4]; -  PhysDevAddr_struct PhysDev; -  LogDevAddr_struct  LogDev; -} LUNAddr_struct; - -typedef struct _RequestBlock_struct { -  BYTE   CDBLen; -  struct { -    BYTE Type:3; -    BYTE Attribute:3; -    BYTE Direction:2; -  } Type; -  HWORD  Timeout; -  BYTE   CDB[16]; -} RequestBlock_struct; - -typedef union _MoreErrInfo_struct{ -  struct { -    BYTE  Reserved[3]; -    BYTE  Type; -    DWORD ErrorInfo; -  } Common_Info; -  struct{ -    BYTE  Reserved[2]; -    BYTE  offense_size; /* size of offending entry */ -    BYTE  offense_num;  /* byte # of offense 0-base */ -    DWORD offense_value; -  } Invalid_Cmd; -} MoreErrInfo_struct; -typedef struct _ErrorInfo_struct { -  BYTE               ScsiStatus; -  BYTE               SenseLen; -  HWORD              CommandStatus; -  DWORD              ResidualCnt; -  MoreErrInfo_struct MoreErrInfo; -  BYTE               SenseInfo[SENSEINFOBYTES]; -} ErrorInfo_struct; - -#pragma pack() - -#endif /* CCISS_DEFS_H */ diff --git a/include/linux/cciss_ioctl.h b/include/linux/cciss_ioctl.h index 986493f5b92..84b6e2d0f44 100644 --- a/include/linux/cciss_ioctl.h +++ b/include/linux/cciss_ioctl.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   diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h index dfd7f187c35..8609d577bb6 100644 --- a/include/linux/cdrom.h +++ b/include/linux/cdrom.h @@ -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 */ diff --git a/include/linux/cgroupstats.h b/include/linux/cgroupstats.h deleted file mode 100644 index 3753c33160d..00000000000 --- a/include/linux/cgroupstats.h +++ /dev/null @@ -1,71 +0,0 @@ -/* cgroupstats.h - exporting per-cgroup statistics - * - * Copyright IBM Corporation, 2007 - * Author Balbir Singh <balbir@linux.vnet.ibm.com> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2.1 of the GNU Lesser General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef _LINUX_CGROUPSTATS_H -#define _LINUX_CGROUPSTATS_H - -#include <linux/types.h> -#include <linux/taskstats.h> - -/* - * Data shared between user space and kernel space on a per cgroup - * basis. This data is shared using taskstats. - * - * Most of these states are derived by looking at the task->state value - * For the nr_io_wait state, a flag in the delay accounting structure - * indicates that the task is waiting on IO - * - * Each member is aligned to a 8 byte boundary. - */ -struct cgroupstats { -	__u64	nr_sleeping;		/* Number of tasks sleeping */ -	__u64	nr_running;		/* Number of tasks running */ -	__u64	nr_stopped;		/* Number of tasks in stopped state */ -	__u64	nr_uninterruptible;	/* Number of tasks in uninterruptible */ -					/* state */ -	__u64	nr_io_wait;		/* Number of tasks waiting on IO */ -}; - -/* - * Commands sent from userspace - * Not versioned. New commands should only be inserted at the enum's end - * prior to __CGROUPSTATS_CMD_MAX - */ - -enum { -	CGROUPSTATS_CMD_UNSPEC = __TASKSTATS_CMD_MAX,	/* Reserved */ -	CGROUPSTATS_CMD_GET,		/* user->kernel request/get-response */ -	CGROUPSTATS_CMD_NEW,		/* kernel->user event */ -	__CGROUPSTATS_CMD_MAX, -}; - -#define CGROUPSTATS_CMD_MAX (__CGROUPSTATS_CMD_MAX - 1) - -enum { -	CGROUPSTATS_TYPE_UNSPEC = 0,	/* Reserved */ -	CGROUPSTATS_TYPE_CGROUP_STATS,	/* contains name + stats */ -	__CGROUPSTATS_TYPE_MAX, -}; - -#define CGROUPSTATS_TYPE_MAX (__CGROUPSTATS_TYPE_MAX - 1) - -enum { -	CGROUPSTATS_CMD_ATTR_UNSPEC = 0, -	CGROUPSTATS_CMD_ATTR_FD, -	__CGROUPSTATS_CMD_ATTR_MAX, -}; - -#define CGROUPSTATS_CMD_ATTR_MAX (__CGROUPSTATS_CMD_ATTR_MAX - 1) - -#endif /* _LINUX_CGROUPSTATS_H */ diff --git a/include/linux/chio.h b/include/linux/chio.h deleted file mode 100644 index d9bac7f9728..00000000000 --- a/include/linux/chio.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * ioctl interface for the scsi media changer driver - */ - -/* changer element types */ -#define CHET_MT   0	/* media transport element (robot) */ -#define CHET_ST   1	/* storage element (media slots) */ -#define CHET_IE   2	/* import/export element */ -#define CHET_DT   3	/* data transfer element (tape/cdrom/whatever) */ -#define CHET_V1   4	/* vendor specific #1 */ -#define CHET_V2   5	/* vendor specific #2 */ -#define CHET_V3   6	/* vendor specific #3 */ -#define CHET_V4   7	/* vendor specific #4 */ - - -/* - * CHIOGPARAMS - *    query changer properties - * - * CHIOVGPARAMS - *    query vendor-specific element types - * - *    accessing elements works by specifing type and unit of the element. - *    for example, storage elements are addressed with type = CHET_ST and - *    unit = 0 .. cp_nslots-1 - * - */ -struct changer_params { -	int cp_curpicker;  /* current transport element */ -	int cp_npickers;   /* number of transport elements      (CHET_MT) */ -	int cp_nslots;     /* number of storage elements        (CHET_ST) */ -	int cp_nportals;   /* number of import/export elements  (CHET_IE) */ -	int cp_ndrives;    /* number of data transfer elements  (CHET_DT) */ -}; -struct changer_vendor_params { -	int  cvp_n1;       /* number of vendor specific elems   (CHET_V1) */ -	char cvp_label1[16]; -	int  cvp_n2;       /* number of vendor specific elems   (CHET_V2) */ -	char cvp_label2[16]; -	int  cvp_n3;       /* number of vendor specific elems   (CHET_V3) */ -	char cvp_label3[16]; -	int  cvp_n4;       /* number of vendor specific elems   (CHET_V4) */ -	char cvp_label4[16]; -	int  reserved[8]; -}; - - -/* - * CHIOMOVE - *    move a medium from one element to another - */ -struct changer_move { -	int cm_fromtype;	/* type/unit of source element */ -	int cm_fromunit;	 -	int cm_totype;	/* type/unit of destination element */ -	int cm_tounit; -	int cm_flags; -}; -#define CM_INVERT   1   /* flag: rotate media (for double-sided like MOD) */ - - -/* - * CHIOEXCHANGE - *    move one medium from element #1 to element #2, - *    and another one from element #2 to element #3. - *    element #1 and #3 are allowed to be identical. - */ -struct changer_exchange { -	int ce_srctype;	    /* type/unit of element #1 */ -	int ce_srcunit; -	int ce_fdsttype;    /* type/unit of element #2 */ -	int ce_fdstunit; -	int ce_sdsttype;    /* type/unit of element #3 */ -	int ce_sdstunit; -	int ce_flags; -}; -#define CE_INVERT1   1 -#define CE_INVERT2   2 - - -/* - * CHIOPOSITION - *    move the transport element (robot arm) to a specific element. - */ -struct changer_position { -	int cp_type; -	int cp_unit; -	int cp_flags; -}; -#define CP_INVERT   1 - - -/* - * CHIOGSTATUS - *    get element status for all elements of a specific type - */ -struct changer_element_status { -	int             ces_type; -	unsigned char   __user *ces_data; -}; -#define CESTATUS_FULL     0x01 /* full */ -#define CESTATUS_IMPEXP   0x02	/* media was imported (inserted by sysop) */ -#define CESTATUS_EXCEPT   0x04	/* error condition */ -#define CESTATUS_ACCESS   0x08	/* access allowed */ -#define CESTATUS_EXENAB   0x10	/* element can export media */ -#define CESTATUS_INENAB   0x20	/* element can import media */ - - -/* - * CHIOGELEM - *    get more detailed status information for a single element - */ -struct changer_get_element { -	int	cge_type;	 /* type/unit */ -	int	cge_unit; -	int	cge_status;      /* status */ -	int     cge_errno;       /* errno */ -	int     cge_srctype;     /* source element of the last move/exchange */ -	int     cge_srcunit; -	int     cge_id;          /* scsi id  (for data transfer elements) */ -	int     cge_lun;         /* scsi lun (for data transfer elements) */ -	char    cge_pvoltag[36]; /* primary volume tag */ -	char    cge_avoltag[36]; /* alternate volume tag */ -	int     cge_flags; -}; -/* flags */ -#define CGE_ERRNO     0x01       /* errno available       */ -#define CGE_INVERT    0x02       /* media inverted        */ -#define CGE_SRC       0x04       /* media src available   */ -#define CGE_IDLUN     0x08       /* ID+LUN available      */ -#define CGE_PVOLTAG   0x10       /* primary volume tag available */ -#define CGE_AVOLTAG   0x20       /* alternate volume tag available */ - - -/* - * CHIOSVOLTAG - *    set volume tag - */ -struct changer_set_voltag { -	int	csv_type;	 /* type/unit */ -	int	csv_unit; -	char    csv_voltag[36];  /* volume tag */ -	int     csv_flags; -}; -#define CSV_PVOLTAG   0x01       /* primary volume tag */ -#define CSV_AVOLTAG   0x02       /* alternate volume tag */ -#define CSV_CLEARTAG  0x04       /* clear volume tag */ - -/* ioctls */ -#define CHIOMOVE       _IOW('c', 1,struct changer_move) -#define CHIOEXCHANGE   _IOW('c', 2,struct changer_exchange) -#define CHIOPOSITION   _IOW('c', 3,struct changer_position) -#define CHIOGPICKER    _IOR('c', 4,int)                        /* not impl. */ -#define CHIOSPICKER    _IOW('c', 5,int)                        /* not impl. */ -#define CHIOGPARAMS    _IOR('c', 6,struct changer_params) -#define CHIOGSTATUS    _IOW('c', 8,struct changer_element_status) -#define CHIOGELEM      _IOW('c',16,struct changer_get_element) -#define CHIOINITELEM   _IO('c',17) -#define CHIOSVOLTAG    _IOW('c',18,struct changer_set_voltag) -#define CHIOGVPARAMS   _IOR('c',19,struct changer_vendor_params) - -/* ---------------------------------------------------------------------- */ - -/* - * Local variables: - * c-basic-offset: 8 - * End: - */ diff --git a/include/linux/cm4000_cs.h b/include/linux/cm4000_cs.h index 3c4aac40617..88bee3a3309 100644 --- a/include/linux/cm4000_cs.h +++ b/include/linux/cm4000_cs.h @@ -1,68 +1,10 @@  #ifndef	_CM4000_H_  #define	_CM4000_H_ -#include <linux/types.h> +#include <uapi/linux/cm4000_cs.h> -#define	MAX_ATR			33 - -#define	CM4000_MAX_DEV		4 - -/* those two structures are passed via ioctl() from/to userspace.  They are - * used by existing userspace programs, so I kepth the awkward "bIFSD" naming - * not to break compilation of userspace apps. -HW */ - -typedef struct atreq { -	__s32 atr_len; -	unsigned char atr[64]; -	__s32 power_act; -	unsigned char bIFSD; -	unsigned char bIFSC; -} atreq_t; - - -/* what is particularly stupid in the original driver is the arch-dependent - * member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace - * will lay out the structure members differently than the 64bit kernel. - * - * I've changed "ptsreq.protocol" from "unsigned long" to "__u32". - * On 32bit this will make no difference.  With 64bit kernels, it will make - * 32bit apps work, too. - */ - -typedef struct ptsreq { -	__u32 protocol; /*T=0: 2^0, T=1:  2^1*/ - 	unsigned char flags; - 	unsigned char pts1; - 	unsigned char pts2; -	unsigned char pts3; -} ptsreq_t; - -#define	CM_IOC_MAGIC		'c' -#define	CM_IOC_MAXNR	        255 - -#define	CM_IOCGSTATUS		_IOR (CM_IOC_MAGIC, 0, unsigned char *) -#define	CM_IOCGATR		_IOWR(CM_IOC_MAGIC, 1, atreq_t *) -#define	CM_IOCSPTS		_IOW (CM_IOC_MAGIC, 2, ptsreq_t *) -#define	CM_IOCSRDR		_IO  (CM_IOC_MAGIC, 3) -#define CM_IOCARDOFF            _IO  (CM_IOC_MAGIC, 4) - -#define CM_IOSDBGLVL            _IOW(CM_IOC_MAGIC, 250, int*) - -/* card and device states */ -#define	CM_CARD_INSERTED		0x01 -#define	CM_CARD_POWERED			0x02 -#define	CM_ATR_PRESENT			0x04 -#define	CM_ATR_VALID	 		0x08 -#define	CM_STATE_VALID			0x0f -/* extra info only from CM4000 */ -#define	CM_NO_READER			0x10 -#define	CM_BAD_CARD			0x20 - - -#ifdef __KERNEL__  #define	DEVICE_NAME		"cmm"  #define	MODULE_NAME		"cm4000_cs" -#endif	/* __KERNEL__ */  #endif	/* _CM4000_H_ */ diff --git a/include/linux/cn_proc.h b/include/linux/cn_proc.h index d03612b196e..2c1bc1ea04e 100644 --- a/include/linux/cn_proc.h +++ b/include/linux/cn_proc.h @@ -14,111 +14,11 @@   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   */ -  #ifndef CN_PROC_H  #define CN_PROC_H -#include <linux/types.h> - -/* - * Userspace sends this enum to register with the kernel that it is listening - * for events on the connector. - */ -enum proc_cn_mcast_op { -	PROC_CN_MCAST_LISTEN = 1, -	PROC_CN_MCAST_IGNORE = 2 -}; - -/* - * From the user's point of view, the process - * ID is the thread group ID and thread ID is the internal - * kernel "pid". So, fields are assigned as follow: - * - *  In user space     -  In  kernel space - * - * parent process ID  =  parent->tgid - * parent thread  ID  =  parent->pid - * child  process ID  =  child->tgid - * child  thread  ID  =  child->pid - */ - -struct proc_event { -	enum what { -		/* Use successive bits so the enums can be used to record -		 * sets of events as well -		 */ -		PROC_EVENT_NONE = 0x00000000, -		PROC_EVENT_FORK = 0x00000001, -		PROC_EVENT_EXEC = 0x00000002, -		PROC_EVENT_UID  = 0x00000004, -		PROC_EVENT_GID  = 0x00000040, -		PROC_EVENT_SID  = 0x00000080, -		PROC_EVENT_PTRACE = 0x00000100, -		PROC_EVENT_COMM = 0x00000200, -		/* "next" should be 0x00000400 */ -		/* "last" is the last process event: exit */ -		PROC_EVENT_EXIT = 0x80000000 -	} what; -	__u32 cpu; -	__u64 __attribute__((aligned(8))) timestamp_ns; -		/* Number of nano seconds since system boot */ -	union { /* must be last field of proc_event struct */ -		struct { -			__u32 err; -		} ack; - -		struct fork_proc_event { -			__kernel_pid_t parent_pid; -			__kernel_pid_t parent_tgid; -			__kernel_pid_t child_pid; -			__kernel_pid_t child_tgid; -		} fork; - -		struct exec_proc_event { -			__kernel_pid_t process_pid; -			__kernel_pid_t process_tgid; -		} exec; - -		struct id_proc_event { -			__kernel_pid_t process_pid; -			__kernel_pid_t process_tgid; -			union { -				__u32 ruid; /* task uid */ -				__u32 rgid; /* task gid */ -			} r; -			union { -				__u32 euid; -				__u32 egid; -			} e; -		} id; - -		struct sid_proc_event { -			__kernel_pid_t process_pid; -			__kernel_pid_t process_tgid; -		} sid; - -		struct ptrace_proc_event { -			__kernel_pid_t process_pid; -			__kernel_pid_t process_tgid; -			__kernel_pid_t tracer_pid; -			__kernel_pid_t tracer_tgid; -		} ptrace; - -		struct comm_proc_event { -			__kernel_pid_t process_pid; -			__kernel_pid_t process_tgid; -			char           comm[16]; -		} comm; - -		struct exit_proc_event { -			__kernel_pid_t process_pid; -			__kernel_pid_t process_tgid; -			__u32 exit_code, exit_signal; -		} exit; -	} event_data; -}; +#include <uapi/linux/cn_proc.h> -#ifdef __KERNEL__  #ifdef CONFIG_PROC_EVENTS  void proc_fork_connector(struct task_struct *task);  void proc_exec_connector(struct task_struct *task); @@ -151,5 +51,4 @@ static inline void proc_ptrace_connector(struct task_struct *task,  static inline void proc_exit_connector(struct task_struct *task)  {}  #endif	/* CONFIG_PROC_EVENTS */ -#endif	/* __KERNEL__ */  #endif	/* CN_PROC_H */ diff --git a/include/linux/coda.h b/include/linux/coda.h index 96c87693800..cff544f8110 100644 --- a/include/linux/coda.h +++ b/include/linux/coda.h @@ -55,690 +55,12 @@ Mellon the rights to redistribute these changes without encumbrance.   * Linux modifications by    * Peter Braam, Aug 1996   */ -  #ifndef _CODA_HEADER_  #define _CODA_HEADER_ - -/* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */ -#if defined(__NetBSD__) || \ -  ((defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)) -#include <sys/types.h> -#endif  - -#ifndef CODA_MAXSYMLINKS -#define CODA_MAXSYMLINKS 10 -#endif - -#if defined(DJGPP) || defined(__CYGWIN32__) -#ifdef KERNEL -typedef unsigned long u_long; -typedef unsigned int u_int; -typedef unsigned short u_short; -typedef u_long ino_t; -typedef u_long dev_t; -typedef void * caddr_t; -#ifdef DOS -typedef unsigned __int64 u_quad_t; -#else  -typedef unsigned long long u_quad_t; -#endif - -#define inline - -struct timespec { -        long       ts_sec; -        long       ts_nsec; -}; -#else  /* DJGPP but not KERNEL */ -#include <sys/time.h> -typedef unsigned long long u_quad_t; -#endif /* !KERNEL */ -#endif /* !DJGPP */ - -  #if defined(__linux__) -#include <linux/time.h> -#define cdev_t u_quad_t -#ifndef __KERNEL__ -#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2) -#define _UQUAD_T_ 1  typedef unsigned long long u_quad_t; -#endif -#else /*__KERNEL__ */ -typedef unsigned long long u_quad_t; -#endif /* __KERNEL__ */  #else -#define cdev_t dev_t -#endif - -#ifdef __CYGWIN32__ -struct timespec { -        time_t  tv_sec;         /* seconds */ -        long    tv_nsec;        /* nanoseconds */ -}; -#endif - -#ifndef __BIT_TYPES_DEFINED__ -#define __BIT_TYPES_DEFINED__ -typedef signed char	      int8_t; -typedef unsigned char	    u_int8_t; -typedef short		     int16_t; -typedef unsigned short	   u_int16_t; -typedef int		     int32_t; -typedef unsigned int	   u_int32_t; -#endif - - -/* - * Cfs constants - */ -#define CODA_MAXNAMLEN   255 -#define CODA_MAXPATHLEN  1024 -#define CODA_MAXSYMLINK  10 - -/* these are Coda's version of O_RDONLY etc combinations - * to deal with VFS open modes - */ -#define	C_O_READ	0x001 -#define	C_O_WRITE       0x002 -#define C_O_TRUNC       0x010 -#define C_O_EXCL	0x100 -#define C_O_CREAT	0x200 - -/* these are to find mode bits in Venus */  -#define C_M_READ  00400 -#define C_M_WRITE 00200 - -/* for access Venus will use */ -#define C_A_C_OK    8               /* Test for writing upon create.  */ -#define C_A_R_OK    4               /* Test for read permission.  */ -#define C_A_W_OK    2               /* Test for write permission.  */ -#define C_A_X_OK    1               /* Test for execute permission.  */ -#define C_A_F_OK    0               /* Test for existence.  */ - - - -#ifndef _VENUS_DIRENT_T_ -#define _VENUS_DIRENT_T_ 1 -struct venus_dirent { -        u_int32_t d_fileno;		/* file number of entry */ -        u_int16_t d_reclen;		/* length of this record */ -        u_int8_t  d_type;			/* file type, see below */ -        u_int8_t  d_namlen;		/* length of string in d_name */ -        char	  d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */ -}; -#undef DIRSIZ -#define DIRSIZ(dp)      ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \ -                         (((dp)->d_namlen+1 + 3) &~ 3)) - -/* - * File types - */ -#define	CDT_UNKNOWN	 0 -#define	CDT_FIFO	 1 -#define	CDT_CHR		 2 -#define	CDT_DIR		 4 -#define	CDT_BLK		 6 -#define	CDT_REG		 8 -#define	CDT_LNK		10 -#define	CDT_SOCK	12 -#define	CDT_WHT		14 - -/* - * Convert between stat structure types and directory types. - */ -#define	IFTOCDT(mode)	(((mode) & 0170000) >> 12) -#define	CDTTOIF(dirtype)	((dirtype) << 12) -  #endif - -#ifndef _VUID_T_ -#define _VUID_T_ -typedef u_int32_t vuid_t; -typedef u_int32_t vgid_t; -#endif /*_VUID_T_ */ - -struct CodaFid { -	u_int32_t opaque[4]; -}; - -#define coda_f2i(fid)\ -	(fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0) - -#ifndef _VENUS_VATTR_T_ -#define _VENUS_VATTR_T_ -/* - * Vnode types.  VNON means no type. - */ -enum coda_vtype	{ C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD }; - -struct coda_vattr { -	long     	va_type;	/* vnode type (for create) */ -	u_short		va_mode;	/* files access mode and type */ -	short		va_nlink;	/* number of references to file */ -	vuid_t		va_uid;		/* owner user id */ -	vgid_t		va_gid;		/* owner group id */ -	long		va_fileid;	/* file id */ -	u_quad_t	va_size;	/* file size in bytes */ -	long		va_blocksize;	/* blocksize preferred for i/o */ -	struct timespec	va_atime;	/* time of last access */ -	struct timespec	va_mtime;	/* time of last modification */ -	struct timespec	va_ctime;	/* time file changed */ -	u_long		va_gen;		/* generation number of file */ -	u_long		va_flags;	/* flags defined for file */ -	cdev_t	        va_rdev;	/* device special file represents */ -	u_quad_t	va_bytes;	/* bytes of disk space held by file */ -	u_quad_t	va_filerev;	/* file modification number */ -}; - +#include <uapi/linux/coda.h>  #endif  - -/* structure used by CODA_STATFS for getting cache information from venus */ -struct coda_statfs { -    int32_t f_blocks; -    int32_t f_bfree; -    int32_t f_bavail; -    int32_t f_files; -    int32_t f_ffree; -}; - -/* - * Kernel <--> Venus communications. - */ - -#define CODA_ROOT	2 -#define CODA_OPEN_BY_FD	3 -#define CODA_OPEN	4 -#define CODA_CLOSE	5 -#define CODA_IOCTL	6 -#define CODA_GETATTR	7 -#define CODA_SETATTR	8 -#define CODA_ACCESS	9 -#define CODA_LOOKUP	10 -#define CODA_CREATE	11 -#define CODA_REMOVE	12 -#define CODA_LINK	13 -#define CODA_RENAME	14 -#define CODA_MKDIR	15 -#define CODA_RMDIR	16 -#define CODA_SYMLINK	18 -#define CODA_READLINK	19 -#define CODA_FSYNC	20 -#define CODA_VGET	22 -#define CODA_SIGNAL	23 -#define CODA_REPLACE	 24 /* DOWNCALL */ -#define CODA_FLUSH       25 /* DOWNCALL */ -#define CODA_PURGEUSER   26 /* DOWNCALL */ -#define CODA_ZAPFILE     27 /* DOWNCALL */ -#define CODA_ZAPDIR      28 /* DOWNCALL */ -#define CODA_PURGEFID    30 /* DOWNCALL */ -#define CODA_OPEN_BY_PATH 31 -#define CODA_RESOLVE     32 -#define CODA_REINTEGRATE 33 -#define CODA_STATFS	 34 -#define CODA_STORE	 35 -#define CODA_RELEASE	 36 -#define CODA_NCALLS 37 - -#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID) - -#define VC_MAXDATASIZE	    8192 -#define VC_MAXMSGSIZE      sizeof(union inputArgs)+sizeof(union outputArgs) +\ -                            VC_MAXDATASIZE   - -#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t) - -#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ - -/* - *        Venus <-> Coda  RPC arguments - */ -struct coda_in_hdr { -    u_int32_t opcode; -    u_int32_t unique;	    /* Keep multiple outstanding msgs distinct */ -    pid_t pid; -    pid_t pgid; -    vuid_t uid; -}; - -/* Really important that opcode and unique are 1st two fields! */ -struct coda_out_hdr { -    u_int32_t opcode; -    u_int32_t unique;	 -    u_int32_t result; -}; - -/* coda_root: NO_IN */ -struct coda_root_out { -    struct coda_out_hdr oh; -    struct CodaFid VFid; -}; - -struct coda_root_in { -    struct coda_in_hdr in; -}; - -/* coda_open: */ -struct coda_open_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	flags; -}; - -struct coda_open_out { -    struct coda_out_hdr oh; -    cdev_t	dev; -    ino_t	inode; -}; - - -/* coda_store: */ -struct coda_store_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	flags; -}; - -struct coda_store_out { -    struct coda_out_hdr out; -}; - -/* coda_release: */ -struct coda_release_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	flags; -}; - -struct coda_release_out { -    struct coda_out_hdr out; -}; - -/* coda_close: */ -struct coda_close_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	flags; -}; - -struct coda_close_out { -    struct coda_out_hdr out; -}; - -/* coda_ioctl: */ -struct coda_ioctl_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	cmd; -    int	len; -    int	rwflag; -    char *data;			/* Place holder for data. */ -}; - -struct coda_ioctl_out { -    struct coda_out_hdr oh; -    int	len; -    caddr_t	data;		/* Place holder for data. */ -}; - - -/* coda_getattr: */ -struct coda_getattr_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -}; - -struct coda_getattr_out { -    struct coda_out_hdr oh; -    struct coda_vattr attr; -}; - - -/* coda_setattr: NO_OUT */ -struct coda_setattr_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    struct coda_vattr attr; -}; - -struct coda_setattr_out { -    struct coda_out_hdr out; -}; - -/* coda_access: NO_OUT */ -struct coda_access_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	flags; -}; - -struct coda_access_out { -    struct coda_out_hdr out; -}; - - -/* lookup flags */ -#define CLU_CASE_SENSITIVE     0x01 -#define CLU_CASE_INSENSITIVE   0x02 - -/* coda_lookup: */ -struct  coda_lookup_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int         name;		/* Place holder for data. */ -    int         flags;	 -}; - -struct coda_lookup_out { -    struct coda_out_hdr oh; -    struct CodaFid VFid; -    int	vtype; -}; - - -/* coda_create: */ -struct coda_create_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    struct coda_vattr attr; -    int excl; -    int mode; -    int 	name;		/* Place holder for data. */ -}; - -struct coda_create_out { -    struct coda_out_hdr oh; -    struct CodaFid VFid; -    struct coda_vattr attr; -}; - - -/* coda_remove: NO_OUT */ -struct coda_remove_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int name;		/* Place holder for data. */ -}; - -struct coda_remove_out { -    struct coda_out_hdr out; -}; - -/* coda_link: NO_OUT */ -struct coda_link_in { -    struct coda_in_hdr ih; -    struct CodaFid sourceFid;	/* cnode to link *to* */ -    struct CodaFid destFid;	/* Directory in which to place link */ -    int tname;		/* Place holder for data. */ -}; - -struct coda_link_out { -    struct coda_out_hdr out; -}; - - -/* coda_rename: NO_OUT */ -struct coda_rename_in { -    struct coda_in_hdr ih; -    struct CodaFid sourceFid; -    int 	srcname; -    struct CodaFid destFid; -    int 	destname; -}; - -struct coda_rename_out { -    struct coda_out_hdr out; -}; - -/* coda_mkdir: */ -struct coda_mkdir_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    struct coda_vattr attr; -    int	   name;		/* Place holder for data. */ -}; - -struct coda_mkdir_out { -    struct coda_out_hdr oh; -    struct CodaFid VFid; -    struct coda_vattr attr; -}; - - -/* coda_rmdir: NO_OUT */ -struct coda_rmdir_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int name;		/* Place holder for data. */ -}; - -struct coda_rmdir_out { -    struct coda_out_hdr out; -}; - -/* coda_symlink: NO_OUT */ -struct coda_symlink_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid;	/* Directory to put symlink in */ -    int srcname; -    struct coda_vattr attr; -    int tname; -}; - -struct coda_symlink_out { -    struct coda_out_hdr out; -}; - -/* coda_readlink: */ -struct coda_readlink_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -}; - -struct coda_readlink_out { -    struct coda_out_hdr oh; -    int	count; -    caddr_t	data;		/* Place holder for data. */ -}; - - -/* coda_fsync: NO_OUT */ -struct coda_fsync_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -}; - -struct coda_fsync_out { -    struct coda_out_hdr out; -}; - -/* coda_vget: */ -struct coda_vget_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -}; - -struct coda_vget_out { -    struct coda_out_hdr oh; -    struct CodaFid VFid; -    int	vtype; -}; - - -/* CODA_SIGNAL is out-of-band, doesn't need data. */ -/* CODA_INVALIDATE is a venus->kernel call */ -/* CODA_FLUSH is a venus->kernel call */ - -/* coda_purgeuser: */ -/* CODA_PURGEUSER is a venus->kernel call */ -struct coda_purgeuser_out { -    struct coda_out_hdr oh; -    vuid_t uid; -}; - -/* coda_zapfile: */ -/* CODA_ZAPFILE is a venus->kernel call */ -struct coda_zapfile_out {   -    struct coda_out_hdr oh; -    struct CodaFid CodaFid; -}; - -/* coda_zapdir: */ -/* CODA_ZAPDIR is a venus->kernel call */	 -struct coda_zapdir_out {	   -    struct coda_out_hdr oh; -    struct CodaFid CodaFid; -}; - -/* coda_purgefid: */ -/* CODA_PURGEFID is a venus->kernel call */	 -struct coda_purgefid_out {  -    struct coda_out_hdr oh; -    struct CodaFid CodaFid; -}; - -/* coda_replace: */ -/* CODA_REPLACE is a venus->kernel call */	 -struct coda_replace_out { /* coda_replace is a venus->kernel call */ -    struct coda_out_hdr oh; -    struct CodaFid NewFid; -    struct CodaFid OldFid; -}; - -/* coda_open_by_fd: */ -struct coda_open_by_fd_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int        flags; -}; - -struct coda_open_by_fd_out { -    struct coda_out_hdr oh; -    int fd; - -#ifdef __KERNEL__ -    struct file *fh; /* not passed from userspace but used in-kernel only */ -#endif -}; - -/* coda_open_by_path: */ -struct coda_open_by_path_in { -    struct coda_in_hdr ih; -    struct CodaFid VFid; -    int	flags; -}; - -struct coda_open_by_path_out { -    struct coda_out_hdr oh; -	int path; -}; - -/* coda_statfs: NO_IN */ -struct coda_statfs_in { -    struct coda_in_hdr in; -}; - -struct coda_statfs_out { -    struct coda_out_hdr oh; -    struct coda_statfs stat; -}; - -/*  - * Occasionally, we don't cache the fid returned by CODA_LOOKUP.  - * For instance, if the fid is inconsistent.  - * This case is handled by setting the top bit of the type result parameter. - */ -#define CODA_NOCACHE          0x80000000 - -union inputArgs { -    struct coda_in_hdr ih;		/* NB: every struct below begins with an ih */ -    struct coda_open_in coda_open; -    struct coda_store_in coda_store; -    struct coda_release_in coda_release; -    struct coda_close_in coda_close; -    struct coda_ioctl_in coda_ioctl; -    struct coda_getattr_in coda_getattr; -    struct coda_setattr_in coda_setattr; -    struct coda_access_in coda_access; -    struct coda_lookup_in coda_lookup; -    struct coda_create_in coda_create; -    struct coda_remove_in coda_remove; -    struct coda_link_in coda_link; -    struct coda_rename_in coda_rename; -    struct coda_mkdir_in coda_mkdir; -    struct coda_rmdir_in coda_rmdir; -    struct coda_symlink_in coda_symlink; -    struct coda_readlink_in coda_readlink; -    struct coda_fsync_in coda_fsync; -    struct coda_vget_in coda_vget; -    struct coda_open_by_fd_in coda_open_by_fd; -    struct coda_open_by_path_in coda_open_by_path; -    struct coda_statfs_in coda_statfs; -}; - -union outputArgs { -    struct coda_out_hdr oh;		/* NB: every struct below begins with an oh */ -    struct coda_root_out coda_root; -    struct coda_open_out coda_open; -    struct coda_ioctl_out coda_ioctl; -    struct coda_getattr_out coda_getattr; -    struct coda_lookup_out coda_lookup; -    struct coda_create_out coda_create; -    struct coda_mkdir_out coda_mkdir; -    struct coda_readlink_out coda_readlink; -    struct coda_vget_out coda_vget; -    struct coda_purgeuser_out coda_purgeuser; -    struct coda_zapfile_out coda_zapfile; -    struct coda_zapdir_out coda_zapdir; -    struct coda_purgefid_out coda_purgefid; -    struct coda_replace_out coda_replace; -    struct coda_open_by_fd_out coda_open_by_fd; -    struct coda_open_by_path_out coda_open_by_path; -    struct coda_statfs_out coda_statfs; -};     - -union coda_downcalls { -    /* CODA_INVALIDATE is a venus->kernel call */ -    /* CODA_FLUSH is a venus->kernel call */ -    struct coda_purgeuser_out purgeuser; -    struct coda_zapfile_out zapfile; -    struct coda_zapdir_out zapdir; -    struct coda_purgefid_out purgefid; -    struct coda_replace_out replace; -}; - - -/* - * Used for identifying usage of "Control" and pioctls - */ - -#define PIOCPARM_MASK 0x0000ffff -struct ViceIoctl { -        void __user *in;        /* Data to be transferred in */ -        void __user *out;       /* Data to be transferred out */ -        u_short in_size;        /* Size of input buffer <= 2K */ -        u_short out_size;       /* Maximum size of output buffer, <= 2K */ -}; - -struct PioctlData { -        const char __user *path; -        int follow; -        struct ViceIoctl vi; -}; - -#define CODA_CONTROL		".CONTROL" -#define CODA_CONTROLLEN		8 -#define CTL_INO			-1 - -/* Data passed to mount */ - -#define CODA_MOUNT_VERSION 1 - -struct coda_mount_data { -	int		version; -	int		fd;       /* Opened device */ -}; - -#endif  - diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h index 72f2d2f0af9..8031d6eef10 100644 --- a/include/linux/coda_psdev.h +++ b/include/linux/coda_psdev.h @@ -1,14 +1,9 @@  #ifndef __CODA_PSDEV_H  #define __CODA_PSDEV_H -#include <linux/magic.h> - -#define CODA_PSDEV_MAJOR 67 -#define MAX_CODADEVS  5	   /* how many do we allow */ - -#ifdef __KERNEL__  #include <linux/backing-dev.h>  #include <linux/mutex.h> +#include <uapi/linux/coda_psdev.h>  struct kstatfs; @@ -74,23 +69,4 @@ int venus_statfs(struct dentry *dentry, struct kstatfs *sfs);   */  extern struct venus_comm coda_comms[]; -#endif /* __KERNEL__ */ - -/* messages between coda filesystem in kernel and Venus */ -struct upc_req { -	struct list_head    uc_chain; -	caddr_t	            uc_data; -	u_short	            uc_flags; -	u_short             uc_inSize;  /* Size is at most 5000 bytes */ -	u_short	            uc_outSize; -	u_short	            uc_opcode;  /* copied from data to save lookup */ -	int		    uc_unique; -	wait_queue_head_t   uc_sleep;   /* process' wait queue */ -}; - -#define CODA_REQ_ASYNC  0x1 -#define CODA_REQ_READ   0x2 -#define CODA_REQ_WRITE  0x4 -#define CODA_REQ_ABORT  0x8 -  #endif diff --git a/include/linux/coff.h b/include/linux/coff.h deleted file mode 100644 index 6354a7fe22b..00000000000 --- a/include/linux/coff.h +++ /dev/null @@ -1,351 +0,0 @@ -/* This file is derived from the GAS 2.1.4 assembler control file. -   The GAS product is under the GNU General Public License, version 2 or later. -   As such, this file is also under that license. - -   If the file format changes in the COFF object, this file should be -   subsequently updated to reflect the changes. - -   The actual loader module only uses a few of these structures. The full -   set is documented here because I received the full set. If you wish -   more information about COFF, then O'Reilly has a very excellent book. -*/ - -#define  E_SYMNMLEN  8   /* Number of characters in a symbol name         */ -#define  E_FILNMLEN 14   /* Number of characters in a file name           */ -#define  E_DIMNUM    4   /* Number of array dimensions in auxiliary entry */ - -/* - * These defines are byte order independent. There is no alignment of fields - * permitted in the structures. Therefore they are declared as characters - * and the values loaded from the character positions. It also makes it - * nice to have it "endian" independent. - */ -  -/* Load a short int from the following tables with little-endian formats */ -#define COFF_SHORT_L(ps) ((short)(((unsigned short)((unsigned char)ps[1])<<8)|\ -				  ((unsigned short)((unsigned char)ps[0])))) - -/* Load a long int from the following tables with little-endian formats */ -#define COFF_LONG_L(ps) (((long)(((unsigned long)((unsigned char)ps[3])<<24) |\ -				 ((unsigned long)((unsigned char)ps[2])<<16) |\ -				 ((unsigned long)((unsigned char)ps[1])<<8)  |\ -				 ((unsigned long)((unsigned char)ps[0]))))) -  -/* Load a short int from the following tables with big-endian formats */ -#define COFF_SHORT_H(ps) ((short)(((unsigned short)((unsigned char)ps[0])<<8)|\ -				  ((unsigned short)((unsigned char)ps[1])))) - -/* Load a long int from the following tables with big-endian formats */ -#define COFF_LONG_H(ps) (((long)(((unsigned long)((unsigned char)ps[0])<<24) |\ -				 ((unsigned long)((unsigned char)ps[1])<<16) |\ -				 ((unsigned long)((unsigned char)ps[2])<<8)  |\ -				 ((unsigned long)((unsigned char)ps[3]))))) - -/* These may be overridden later by brain dead implementations which generate -   a big-endian header with little-endian data. In that case, generate a -   replacement macro which tests a flag and uses either of the two above -   as appropriate. */ - -#define COFF_LONG(v)   COFF_LONG_L(v) -#define COFF_SHORT(v)  COFF_SHORT_L(v) - -/*** coff information for Intel 386/486.  */ - -/********************** FILE HEADER **********************/ - -struct COFF_filehdr { -	char f_magic[2];	/* magic number			*/ -	char f_nscns[2];	/* number of sections		*/ -	char f_timdat[4];	/* time & date stamp		*/ -	char f_symptr[4];	/* file pointer to symtab	*/ -	char f_nsyms[4];	/* number of symtab entries	*/ -	char f_opthdr[2];	/* sizeof(optional hdr)		*/ -	char f_flags[2];	/* flags			*/ -}; - -/* - *   Bits for f_flags: - * - *	F_RELFLG	relocation info stripped from file - *	F_EXEC		file is executable  (i.e. no unresolved external - *			references) - *	F_LNNO		line numbers stripped from file - *	F_LSYMS		local symbols stripped from file - *	F_MINMAL	this is a minimal object file (".m") output of fextract - *	F_UPDATE	this is a fully bound update file, output of ogen - *	F_SWABD		this file has had its bytes swabbed (in names) - *	F_AR16WR	this file has the byte ordering of an AR16WR - *			(e.g. 11/70) machine - *	F_AR32WR	this file has the byte ordering of an AR32WR machine - *			(e.g. vax and iNTEL 386) - *	F_AR32W		this file has the byte ordering of an AR32W machine - *			(e.g. 3b,maxi) - *	F_PATCH		file contains "patch" list in optional header - *	F_NODF		(minimal file only) no decision functions for - *			replaced functions - */ - -#define  COFF_F_RELFLG		0000001 -#define  COFF_F_EXEC		0000002 -#define  COFF_F_LNNO		0000004 -#define  COFF_F_LSYMS		0000010 -#define  COFF_F_MINMAL		0000020 -#define  COFF_F_UPDATE		0000040 -#define  COFF_F_SWABD		0000100 -#define  COFF_F_AR16WR		0000200 -#define  COFF_F_AR32WR		0000400 -#define  COFF_F_AR32W		0001000 -#define  COFF_F_PATCH		0002000 -#define  COFF_F_NODF		0002000 - -#define	COFF_I386MAGIC	        0x14c   /* Linux's system    */ - -#if 0   /* Perhaps, someday, these formats may be used.      */ -#define COFF_I386PTXMAGIC	0x154 -#define COFF_I386AIXMAGIC	0x175   /* IBM's AIX system  */ -#define COFF_I386BADMAG(x) ((COFF_SHORT((x).f_magic) != COFF_I386MAGIC) \ -			  && COFF_SHORT((x).f_magic) != COFF_I386PTXMAGIC \ -			  && COFF_SHORT((x).f_magic) != COFF_I386AIXMAGIC) -#else -#define COFF_I386BADMAG(x) (COFF_SHORT((x).f_magic) != COFF_I386MAGIC) -#endif - -#define	COFF_FILHDR	struct COFF_filehdr -#define	COFF_FILHSZ	sizeof(COFF_FILHDR) - -/********************** AOUT "OPTIONAL HEADER" **********************/ - -/* Linux COFF must have this "optional" header. Standard COFF has no entry -   location for the "entry" point. They normally would start with the first -   location of the .text section. This is not a good idea for linux. So, -   the use of this "optional" header is not optional. It is required. - -   Do not be tempted to assume that the size of the optional header is -   a constant and simply index the next byte by the size of this structure. -   Use the 'f_opthdr' field in the main coff header for the size of the -   structure actually written to the file!! -*/ - -typedef struct  -{ -  char 	magic[2];		/* type of file				 */ -  char	vstamp[2];		/* version stamp			 */ -  char	tsize[4];		/* text size in bytes, padded to FW bdry */ -  char	dsize[4];		/* initialized   data "   "		 */ -  char	bsize[4];		/* uninitialized data "   "		 */ -  char	entry[4];		/* entry pt.				 */ -  char 	text_start[4];		/* base of text used for this file       */ -  char 	data_start[4];		/* base of data used for this file       */ -} -COFF_AOUTHDR; - -#define COFF_AOUTSZ (sizeof(COFF_AOUTHDR)) - -#define COFF_STMAGIC	0401 -#define COFF_OMAGIC     0404 -#define COFF_JMAGIC     0407    /* dirty text and data image, can't share  */ -#define COFF_DMAGIC     0410    /* dirty text segment, data aligned        */ -#define COFF_ZMAGIC     0413    /* The proper magic number for executables  */ -#define COFF_SHMAGIC	0443	/* shared library header                   */ - -/********************** SECTION HEADER **********************/ - -struct COFF_scnhdr { -  char		s_name[8];	/* section name			    */ -  char		s_paddr[4];	/* physical address, aliased s_nlib */ -  char		s_vaddr[4];	/* virtual address		    */ -  char		s_size[4];	/* section size			    */ -  char		s_scnptr[4];	/* file ptr to raw data for section */ -  char		s_relptr[4];	/* file ptr to relocation	    */ -  char		s_lnnoptr[4];	/* file ptr to line numbers	    */ -  char		s_nreloc[2];	/* number of relocation entries	    */ -  char		s_nlnno[2];	/* number of line number entries    */ -  char		s_flags[4];	/* flags			    */ -}; - -#define	COFF_SCNHDR	struct COFF_scnhdr -#define	COFF_SCNHSZ	sizeof(COFF_SCNHDR) - -/* - * names of "special" sections - */ - -#define COFF_TEXT	".text" -#define COFF_DATA	".data" -#define COFF_BSS	".bss" -#define COFF_COMMENT    ".comment" -#define COFF_LIB        ".lib" - -#define COFF_SECT_TEXT  0      /* Section for instruction code             */ -#define COFF_SECT_DATA  1      /* Section for initialized globals          */ -#define COFF_SECT_BSS   2      /* Section for un-initialized globals       */ -#define COFF_SECT_REQD  3      /* Minimum number of sections for good file */ - -#define COFF_STYP_REG     0x00 /* regular segment                          */ -#define COFF_STYP_DSECT   0x01 /* dummy segment                            */ -#define COFF_STYP_NOLOAD  0x02 /* no-load segment                          */ -#define COFF_STYP_GROUP   0x04 /* group segment                            */ -#define COFF_STYP_PAD     0x08 /* .pad segment                             */ -#define COFF_STYP_COPY    0x10 /* copy section                             */ -#define COFF_STYP_TEXT    0x20 /* .text segment                            */ -#define COFF_STYP_DATA    0x40 /* .data segment                            */ -#define COFF_STYP_BSS     0x80 /* .bss segment                             */ -#define COFF_STYP_INFO   0x200 /* .comment section                         */ -#define COFF_STYP_OVER   0x400 /* overlay section                          */ -#define COFF_STYP_LIB    0x800 /* library section                          */ - -/* - * Shared libraries have the following section header in the data field for - * each library. - */ - -struct COFF_slib { -  char		sl_entsz[4];	/* Size of this entry               */ -  char		sl_pathndx[4];	/* size of the header field         */ -}; - -#define	COFF_SLIBHD	struct COFF_slib -#define	COFF_SLIBSZ	sizeof(COFF_SLIBHD) - -/********************** LINE NUMBERS **********************/ - -/* 1 line number entry for every "breakpointable" source line in a section. - * Line numbers are grouped on a per function basis; first entry in a function - * grouping will have l_lnno = 0 and in place of physical address will be the - * symbol table index of the function name. - */ - -struct COFF_lineno { -  union { -    char l_symndx[4];	/* function name symbol index, iff l_lnno == 0*/ -    char l_paddr[4];	/* (physical) address of line number	*/ -  } l_addr; -  char l_lnno[2];	/* line number		*/ -}; - -#define	COFF_LINENO	struct COFF_lineno -#define	COFF_LINESZ	6 - -/********************** SYMBOLS **********************/ - -#define COFF_E_SYMNMLEN	 8	/* # characters in a short symbol name	*/ -#define COFF_E_FILNMLEN	14	/* # characters in a file name		*/ -#define COFF_E_DIMNUM	 4	/* # array dimensions in auxiliary entry */ - -/* - *  All symbols and sections have the following definition - */ - -struct COFF_syment  -{ -  union { -    char e_name[E_SYMNMLEN];    /* Symbol name (first 8 characters) */ -    struct { -      char e_zeroes[4];         /* Leading zeros */ -      char e_offset[4];         /* Offset if this is a header section */ -    } e; -  } e; - -  char e_value[4];              /* Value (address) of the segment */ -  char e_scnum[2];              /* Section number */ -  char e_type[2];               /* Type of section */ -  char e_sclass[1];             /* Loader class */ -  char e_numaux[1];             /* Number of auxiliary entries which follow */ -}; - -#define COFF_N_BTMASK	(0xf)   /* Mask for important class bits */ -#define COFF_N_TMASK	(0x30)  /* Mask for important type bits  */ -#define COFF_N_BTSHFT	(4)     /* # bits to shift class field   */ -#define COFF_N_TSHIFT	(2)     /* # bits to shift type field    */ - -/* - *  Auxiliary entries because the main table is too limiting. - */ -   -union COFF_auxent { - -/* - *  Debugger information - */ - -  struct { -    char x_tagndx[4];	        /* str, un, or enum tag indx */ -    union { -      struct { -	char  x_lnno[2];        /* declaration line number */ -	char  x_size[2];        /* str/union/array size */ -      } x_lnsz; -      char x_fsize[4];	        /* size of function */ -    } x_misc; - -    union { -      struct {		        /* if ISFCN, tag, or .bb */ -	char x_lnnoptr[4];	/* ptr to fcn line # */ -	char x_endndx[4];	/* entry ndx past block end */ -      } x_fcn; - -      struct {		        /* if ISARY, up to 4 dimen. */ -	char x_dimen[E_DIMNUM][2]; -      } x_ary; -    } x_fcnary; - -    char x_tvndx[2];	/* tv index */ -  } x_sym; - -/* - *   Source file names (debugger information) - */ - -  union { -    char x_fname[E_FILNMLEN]; -    struct { -      char x_zeroes[4]; -      char x_offset[4]; -    } x_n; -  } x_file; - -/* - *   Section information - */ - -  struct { -    char x_scnlen[4];	/* section length */ -    char x_nreloc[2];	/* # relocation entries */ -    char x_nlinno[2];	/* # line numbers */ -  } x_scn; - -/* - *   Transfer vector (branch table) - */ -   -  struct { -    char x_tvfill[4];	/* tv fill value */ -    char x_tvlen[2];	/* length of .tv */ -    char x_tvran[2][2];	/* tv range */ -  } x_tv;		/* info about .tv section (in auxent of symbol .tv)) */ -}; - -#define	COFF_SYMENT	struct COFF_syment -#define	COFF_SYMESZ	18	 -#define	COFF_AUXENT	union COFF_auxent -#define	COFF_AUXESZ	18 - -#define COFF_ETEXT	"etext" - -/********************** RELOCATION DIRECTIVES **********************/ - -struct COFF_reloc { -  char r_vaddr[4];        /* Virtual address of item    */ -  char r_symndx[4];       /* Symbol index in the symtab */ -  char r_type[2];         /* Relocation type            */ -}; - -#define COFF_RELOC struct COFF_reloc -#define COFF_RELSZ 10 - -#define COFF_DEF_DATA_SECTION_ALIGNMENT  4 -#define COFF_DEF_BSS_SECTION_ALIGNMENT   4 -#define COFF_DEF_TEXT_SECTION_ALIGNMENT  4 - -/* For new sections we haven't heard of before */ -#define COFF_DEF_SECTION_ALIGNMENT       4 diff --git a/include/linux/connector.h b/include/linux/connector.h index 76384074262..b2b5a41b6a2 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h @@ -18,63 +18,9 @@   * along with this program; if not, write to the Free Software   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ -  #ifndef __CONNECTOR_H  #define __CONNECTOR_H -#include <linux/types.h> - -/* - * Process Events connector unique ids -- used for message routing - */ -#define CN_IDX_PROC			0x1 -#define CN_VAL_PROC			0x1 -#define CN_IDX_CIFS			0x2 -#define CN_VAL_CIFS                     0x1 -#define CN_W1_IDX			0x3	/* w1 communication */ -#define CN_W1_VAL			0x1 -#define CN_IDX_V86D			0x4 -#define CN_VAL_V86D_UVESAFB		0x1 -#define CN_IDX_BB			0x5	/* BlackBoard, from the TSP GPL sampling framework */ -#define CN_DST_IDX			0x6 -#define CN_DST_VAL			0x1 -#define CN_IDX_DM			0x7	/* Device Mapper */ -#define CN_VAL_DM_USERSPACE_LOG		0x1 -#define CN_IDX_DRBD			0x8 -#define CN_VAL_DRBD			0x1 -#define CN_KVP_IDX			0x9	/* HyperV KVP */ -#define CN_KVP_VAL			0x1	/* queries from the kernel */ - -#define CN_NETLINK_USERS		10	/* Highest index + 1 */ - -/* - * Maximum connector's message size. - */ -#define CONNECTOR_MAX_MSG_SIZE		16384 - -/* - * idx and val are unique identifiers which  - * are used for message routing and  - * must be registered in connector.h for in-kernel usage. - */ - -struct cb_id { -	__u32 idx; -	__u32 val; -}; - -struct cn_msg { -	struct cb_id id; - -	__u32 seq; -	__u32 ack; - -	__u16 len;		/* Length of the following data */ -	__u16 flags; -	__u8 data[0]; -}; - -#ifdef __KERNEL__  #include <linux/atomic.h> @@ -82,6 +28,7 @@ struct cn_msg {  #include <linux/workqueue.h>  #include <net/sock.h> +#include <uapi/linux/connector.h>  #define CN_CBQ_NAMELEN		32 @@ -137,5 +84,4 @@ void cn_queue_free_dev(struct cn_queue_dev *dev);  int cn_cb_equal(struct cb_id *, struct cb_id *); -#endif				/* __KERNEL__ */  #endif				/* __CONNECTOR_H */ diff --git a/include/linux/const.h b/include/linux/const.h deleted file mode 100644 index c22c707c455..00000000000 --- a/include/linux/const.h +++ /dev/null @@ -1,24 +0,0 @@ -/* const.h: Macros for dealing with constants.  */ - -#ifndef _LINUX_CONST_H -#define _LINUX_CONST_H - -/* Some constant macros are used in both assembler and - * C code.  Therefore we cannot annotate them always with - * 'UL' and other type specifiers unilaterally.  We - * use the following macros to deal with this. - * - * Similarly, _AT() will cast an expression with a type in C, but - * leave it unchanged in asm. - */ - -#ifdef __ASSEMBLY__ -#define _AC(X,Y)	X -#define _AT(T,X)	X -#else -#define __AC(X,Y)	(X##Y) -#define _AC(X,Y)	__AC(X,Y) -#define _AT(T,X)	((T)(X)) -#endif - -#endif /* !(_LINUX_CONST_H) */ diff --git a/include/linux/cramfs_fs.h b/include/linux/cramfs_fs.h index 0e7bf272ec2..133789609f2 100644 --- a/include/linux/cramfs_fs.h +++ b/include/linux/cramfs_fs.h @@ -1,94 +1,10 @@  #ifndef __CRAMFS_H  #define __CRAMFS_H -#include <linux/types.h> -#include <linux/magic.h> +#include <uapi/linux/cramfs_fs.h> -#define CRAMFS_SIGNATURE	"Compressed ROMFS" - -/* - * Width of various bitfields in struct cramfs_inode. - * Primarily used to generate warnings in mkcramfs. - */ -#define CRAMFS_MODE_WIDTH 16 -#define CRAMFS_UID_WIDTH 16 -#define CRAMFS_SIZE_WIDTH 24 -#define CRAMFS_GID_WIDTH 8 -#define CRAMFS_NAMELEN_WIDTH 6 -#define CRAMFS_OFFSET_WIDTH 26 - -/* - * Since inode.namelen is a unsigned 6-bit number, the maximum cramfs - * path length is 63 << 2 = 252. - */ -#define CRAMFS_MAXPATHLEN (((1 << CRAMFS_NAMELEN_WIDTH) - 1) << 2) - -/* - * Reasonably terse representation of the inode data. - */ -struct cramfs_inode { -	__u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH; -	/* SIZE for device files is i_rdev */ -	__u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH; -	/* NAMELEN is the length of the file name, divided by 4 and -           rounded up.  (cramfs doesn't support hard links.) */ -	/* OFFSET: For symlinks and non-empty regular files, this -	   contains the offset (divided by 4) of the file data in -	   compressed form (starting with an array of block pointers; -	   see README).  For non-empty directories it is the offset -	   (divided by 4) of the inode of the first file in that -	   directory.  For anything else, offset is zero. */ -	__u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH; -}; - -struct cramfs_info { -	__u32 crc; -	__u32 edition; -	__u32 blocks; -	__u32 files; -}; - -/* - * Superblock information at the beginning of the FS. - */ -struct cramfs_super { -	__u32 magic;			/* 0x28cd3d45 - random number */ -	__u32 size;			/* length in bytes */ -	__u32 flags;			/* feature flags */ -	__u32 future;			/* reserved for future use */ -	__u8 signature[16];		/* "Compressed ROMFS" */ -	struct cramfs_info fsid;	/* unique filesystem info */ -	__u8 name[16];			/* user-defined name */ -	struct cramfs_inode root;	/* root inode data */ -}; - -/* - * Feature flags - * - * 0x00000000 - 0x000000ff: features that work for all past kernels - * 0x00000100 - 0xffffffff: features that don't work for past kernels - */ -#define CRAMFS_FLAG_FSID_VERSION_2	0x00000001	/* fsid version #2 */ -#define CRAMFS_FLAG_SORTED_DIRS		0x00000002	/* sorted dirs */ -#define CRAMFS_FLAG_HOLES		0x00000100	/* support for holes */ -#define CRAMFS_FLAG_WRONG_SIGNATURE	0x00000200	/* reserved */ -#define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET	0x00000400	/* shifted root fs */ - -/* - * Valid values in super.flags.  Currently we refuse to mount - * if (flags & ~CRAMFS_SUPPORTED_FLAGS).  Maybe that should be - * changed to test super.future instead. - */ -#define CRAMFS_SUPPORTED_FLAGS	( 0x000000ff \ -				| CRAMFS_FLAG_HOLES \ -				| CRAMFS_FLAG_WRONG_SIGNATURE \ -				| CRAMFS_FLAG_SHIFTED_ROOT_OFFSET ) - -#ifdef __KERNEL__  /* Uncompression interfaces to the underlying zlib */  int cramfs_uncompress_block(void *dst, int dstlen, void *src, int srclen);  int cramfs_uncompress_init(void);  void cramfs_uncompress_exit(void); -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/cuda.h b/include/linux/cuda.h index 9f9865ff781..b7233282380 100644 --- a/include/linux/cuda.h +++ b/include/linux/cuda.h @@ -4,38 +4,15 @@   *   * Copyright (C) 1996 Paul Mackerras.   */ -  #ifndef _LINUX_CUDA_H  #define _LINUX_CUDA_H -/* CUDA commands (2nd byte) */ -#define CUDA_WARM_START		0 -#define CUDA_AUTOPOLL		1 -#define CUDA_GET_6805_ADDR	2 -#define CUDA_GET_TIME		3 -#define CUDA_GET_PRAM		7 -#define CUDA_SET_6805_ADDR	8 -#define CUDA_SET_TIME		9 -#define CUDA_POWERDOWN		0xa -#define CUDA_POWERUP_TIME	0xb -#define CUDA_SET_PRAM		0xc -#define CUDA_MS_RESET		0xd -#define CUDA_SEND_DFAC		0xe -#define CUDA_RESET_SYSTEM	0x11 -#define CUDA_SET_IPL		0x12 -#define CUDA_SET_AUTO_RATE	0x14 -#define CUDA_GET_AUTO_RATE	0x16 -#define CUDA_SET_DEVICE_LIST	0x19 -#define CUDA_GET_DEVICE_LIST	0x1a -#define CUDA_GET_SET_IIC	0x22 +#include <uapi/linux/cuda.h> -#ifdef __KERNEL__  extern int find_via_cuda(void);  extern int cuda_request(struct adb_request *req,  			void (*done)(struct adb_request *), int nbytes, ...);  extern void cuda_poll(void); -#endif	/* __KERNEL */ -  #endif /* _LINUX_CUDA_H */ diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h index a5049eaf782..19ae518f547 100644 --- a/include/linux/cyclades.h +++ b/include/linux/cyclades.h @@ -63,434 +63,11 @@   *   *   */ -  #ifndef _LINUX_CYCLADES_H  #define _LINUX_CYCLADES_H -#include <linux/types.h> - -struct cyclades_monitor { -        unsigned long           int_count; -        unsigned long           char_count; -        unsigned long           char_max; -        unsigned long           char_last; -}; - -/* - * These stats all reflect activity since the device was last initialized. - * (i.e., since the port was opened with no other processes already having it - * open) - */ -struct cyclades_idle_stats { -    __kernel_time_t in_use;	/* Time device has been in use (secs) */ -    __kernel_time_t recv_idle;	/* Time since last char received (secs) */ -    __kernel_time_t xmit_idle;	/* Time since last char transmitted (secs) */ -    unsigned long  recv_bytes;	/* Bytes received */ -    unsigned long  xmit_bytes;	/* Bytes transmitted */ -    unsigned long  overruns;	/* Input overruns */ -    unsigned long  frame_errs;	/* Input framing errors */ -    unsigned long  parity_errs;	/* Input parity errors */ -}; - -#define CYCLADES_MAGIC  0x4359 - -#define CYGETMON                0x435901 -#define CYGETTHRESH             0x435902 -#define CYSETTHRESH             0x435903 -#define CYGETDEFTHRESH          0x435904 -#define CYSETDEFTHRESH          0x435905 -#define CYGETTIMEOUT            0x435906 -#define CYSETTIMEOUT            0x435907 -#define CYGETDEFTIMEOUT         0x435908 -#define CYSETDEFTIMEOUT         0x435909 -#define CYSETRFLOW		0x43590a -#define CYGETRFLOW		0x43590b -#define CYSETRTSDTR_INV		0x43590c -#define CYGETRTSDTR_INV		0x43590d -#define CYZSETPOLLCYCLE		0x43590e -#define CYZGETPOLLCYCLE		0x43590f -#define CYGETCD1400VER		0x435910 -#define	CYSETWAIT		0x435912 -#define	CYGETWAIT		0x435913 - -/*************** CYCLOM-Z ADDITIONS ***************/ - -#define CZIOC           ('M' << 8) -#define CZ_NBOARDS      (CZIOC|0xfa) -#define CZ_BOOT_START   (CZIOC|0xfb) -#define CZ_BOOT_DATA    (CZIOC|0xfc) -#define CZ_BOOT_END     (CZIOC|0xfd) -#define CZ_TEST         (CZIOC|0xfe) - -#define CZ_DEF_POLL	(HZ/25) - -#define MAX_BOARD       4       /* Max number of boards */ -#define MAX_DEV         256     /* Max number of ports total */ -#define	CYZ_MAX_SPEED	921600 - -#define	CYZ_FIFO_SIZE	16 - -#define CYZ_BOOT_NWORDS 0x100 -struct CYZ_BOOT_CTRL { -        unsigned short  nboard; -        int             status[MAX_BOARD]; -        int             nchannel[MAX_BOARD]; -        int             fw_rev[MAX_BOARD]; -        unsigned long   offset; -        unsigned long   data[CYZ_BOOT_NWORDS]; -}; - - -#ifndef DP_WINDOW_SIZE -/* - *	Memory Window Sizes - */ - -#define	DP_WINDOW_SIZE		(0x00080000)	/* window size 512 Kb */ -#define	ZE_DP_WINDOW_SIZE	(0x00100000)	/* window size 1 Mb (Ze and -						  8Zo V.2 */ -#define	CTRL_WINDOW_SIZE	(0x00000080)	/* runtime regs 128 bytes */ - -/* - *	CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver - *	normally will access only interested on the fpga_id, fpga_version, - *	start_cpu and stop_cpu. - */ - -struct	CUSTOM_REG { -	__u32	fpga_id;		/* FPGA Identification Register */ -	__u32	fpga_version;		/* FPGA Version Number Register */ -	__u32	cpu_start;		/* CPU start Register (write) */ -	__u32	cpu_stop;		/* CPU stop Register (write) */ -	__u32	misc_reg;		/* Miscellaneous Register */ -	__u32	idt_mode;		/* IDT mode Register */ -	__u32	uart_irq_status;	/* UART IRQ status Register */ -	__u32	clear_timer0_irq;	/* Clear timer interrupt Register */ -	__u32	clear_timer1_irq;	/* Clear timer interrupt Register */ -	__u32	clear_timer2_irq;	/* Clear timer interrupt Register */ -	__u32	test_register;		/* Test Register */ -	__u32	test_count;		/* Test Count Register */ -	__u32	timer_select;		/* Timer select register */ -	__u32	pr_uart_irq_status;	/* Prioritized UART IRQ stat Reg */ -	__u32	ram_wait_state;		/* RAM wait-state Register */ -	__u32	uart_wait_state;	/* UART wait-state Register */ -	__u32	timer_wait_state;	/* timer wait-state Register */ -	__u32	ack_wait_state;		/* ACK wait State Register */ -}; - -/* - *	RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime - *	registers. This structure can be used to access the 9060 registers - *	(memory mapped). - */ - -struct RUNTIME_9060 { -	__u32	loc_addr_range;	/* 00h - Local Address Range */ -	__u32	loc_addr_base;	/* 04h - Local Address Base */ -	__u32	loc_arbitr;	/* 08h - Local Arbitration */ -	__u32	endian_descr;	/* 0Ch - Big/Little Endian Descriptor */ -	__u32	loc_rom_range;	/* 10h - Local ROM Range */ -	__u32	loc_rom_base;	/* 14h - Local ROM Base */ -	__u32	loc_bus_descr;	/* 18h - Local Bus descriptor */ -	__u32	loc_range_mst;	/* 1Ch - Local Range for Master to PCI */ -	__u32	loc_base_mst;	/* 20h - Local Base for Master PCI */ -	__u32	loc_range_io;	/* 24h - Local Range for Master IO */ -	__u32	pci_base_mst;	/* 28h - PCI Base for Master PCI */ -	__u32	pci_conf_io;	/* 2Ch - PCI configuration for Master IO */ -	__u32	filler1;	/* 30h */ -	__u32	filler2;	/* 34h */ -	__u32	filler3;	/* 38h */ -	__u32	filler4;	/* 3Ch */ -	__u32	mail_box_0;	/* 40h - Mail Box 0 */ -	__u32	mail_box_1;	/* 44h - Mail Box 1 */ -	__u32	mail_box_2;	/* 48h - Mail Box 2 */ -	__u32	mail_box_3;	/* 4Ch - Mail Box 3 */ -	__u32	filler5;	/* 50h */ -	__u32	filler6;	/* 54h */ -	__u32	filler7;	/* 58h */ -	__u32	filler8;	/* 5Ch */ -	__u32	pci_doorbell;	/* 60h - PCI to Local Doorbell */ -	__u32	loc_doorbell;	/* 64h - Local to PCI Doorbell */ -	__u32	intr_ctrl_stat;	/* 68h - Interrupt Control/Status */ -	__u32	init_ctrl;	/* 6Ch - EEPROM control, Init Control, etc */ -}; - -/* Values for the Local Base Address re-map register */ - -#define	WIN_RAM		0x00000001L	/* set the sliding window to RAM */ -#define	WIN_CREG	0x14000001L	/* set the window to custom Registers */ - -/* Values timer select registers */ - -#define	TIMER_BY_1M	0x00		/* clock divided by 1M */ -#define	TIMER_BY_256K	0x01		/* clock divided by 256k */ -#define	TIMER_BY_128K	0x02		/* clock divided by 128k */ -#define	TIMER_BY_32K	0x03		/* clock divided by 32k */ - -/****************** ****************** *******************/ -#endif - -#ifndef ZFIRM_ID -/* #include "zfwint.h" */ -/****************** ****************** *******************/ -/* - *	This file contains the definitions for interfacing with the - *	Cyclom-Z ZFIRM Firmware. - */ - -/* General Constant definitions */ - -#define	MAX_CHAN	64		/* max number of channels per board */ - -/* firmware id structure (set after boot) */ - -#define ID_ADDRESS	0x00000180L	/* signature/pointer address */ -#define	ZFIRM_ID	0x5557465AL	/* ZFIRM/U signature */ -#define	ZFIRM_HLT	0x59505B5CL	/* ZFIRM needs external power supply */ -#define	ZFIRM_RST	0x56040674L	/* RST signal (due to FW reset) */ - -#define	ZF_TINACT_DEF	1000		/* default inactivity timeout  -					   (1000 ms) */ -#define	ZF_TINACT	ZF_TINACT_DEF - -struct	FIRM_ID { -	__u32	signature;		/* ZFIRM/U signature */ -	__u32	zfwctrl_addr;		/* pointer to ZFW_CTRL structure */ -}; - -/* Op. System id */ - -#define	C_OS_LINUX	0x00000030	/* generic Linux system */ - -/* channel op_mode */ - -#define	C_CH_DISABLE	0x00000000	/* channel is disabled */ -#define	C_CH_TXENABLE	0x00000001	/* channel Tx enabled */ -#define	C_CH_RXENABLE	0x00000002	/* channel Rx enabled */ -#define	C_CH_ENABLE	0x00000003	/* channel Tx/Rx enabled */ -#define	C_CH_LOOPBACK	0x00000004	/* Loopback mode */ - -/* comm_parity - parity */ - -#define	C_PR_NONE	0x00000000	/* None */ -#define	C_PR_ODD	0x00000001	/* Odd */ -#define C_PR_EVEN	0x00000002	/* Even */ -#define C_PR_MARK	0x00000004	/* Mark */ -#define C_PR_SPACE	0x00000008	/* Space */ -#define C_PR_PARITY	0x000000ff - -#define	C_PR_DISCARD	0x00000100	/* discard char with frame/par error */ -#define C_PR_IGNORE	0x00000200	/* ignore frame/par error */ - -/* comm_data_l - data length and stop bits */ - -#define C_DL_CS5	0x00000001 -#define C_DL_CS6	0x00000002 -#define C_DL_CS7	0x00000004 -#define C_DL_CS8	0x00000008 -#define	C_DL_CS		0x0000000f -#define C_DL_1STOP	0x00000010 -#define C_DL_15STOP	0x00000020 -#define C_DL_2STOP	0x00000040 -#define	C_DL_STOP	0x000000f0 - -/* interrupt enabling/status */ - -#define	C_IN_DISABLE	0x00000000	/* zero, disable interrupts */ -#define	C_IN_TXBEMPTY	0x00000001	/* tx buffer empty */ -#define	C_IN_TXLOWWM	0x00000002	/* tx buffer below LWM */ -#define	C_IN_RXHIWM	0x00000010	/* rx buffer above HWM */ -#define	C_IN_RXNNDT	0x00000020	/* rx no new data timeout */ -#define	C_IN_MDCD	0x00000100	/* modem DCD change */ -#define	C_IN_MDSR	0x00000200	/* modem DSR change */ -#define	C_IN_MRI	0x00000400	/* modem RI change */ -#define	C_IN_MCTS	0x00000800	/* modem CTS change */ -#define	C_IN_RXBRK	0x00001000	/* Break received */ -#define	C_IN_PR_ERROR	0x00002000	/* parity error */ -#define	C_IN_FR_ERROR	0x00004000	/* frame error */ -#define C_IN_OVR_ERROR  0x00008000      /* overrun error */ -#define C_IN_RXOFL	0x00010000      /* RX buffer overflow */ -#define C_IN_IOCTLW	0x00020000      /* I/O control w/ wait */ -#define C_IN_MRTS	0x00040000	/* modem RTS drop */ -#define C_IN_ICHAR	0x00080000 -  -/* flow control */ - -#define	C_FL_OXX	0x00000001	/* output Xon/Xoff flow control */ -#define	C_FL_IXX	0x00000002	/* output Xon/Xoff flow control */ -#define C_FL_OIXANY	0x00000004	/* output Xon/Xoff (any xon) */ -#define	C_FL_SWFLOW	0x0000000f - -/* flow status */ - -#define	C_FS_TXIDLE	0x00000000	/* no Tx data in the buffer or UART */ -#define	C_FS_SENDING	0x00000001	/* UART is sending data */ -#define	C_FS_SWFLOW	0x00000002	/* Tx is stopped by received Xoff */ - -/* rs_control/rs_status RS-232 signals */ - -#define C_RS_PARAM	0x80000000	/* Indicates presence of parameter in  -					   IOCTLM command */ -#define	C_RS_RTS	0x00000001	/* RTS */ -#define	C_RS_DTR	0x00000004	/* DTR */ -#define	C_RS_DCD	0x00000100	/* CD */ -#define	C_RS_DSR	0x00000200	/* DSR */ -#define	C_RS_RI		0x00000400	/* RI */ -#define	C_RS_CTS	0x00000800	/* CTS */ - -/* commands Host <-> Board */ - -#define	C_CM_RESET	0x01		/* reset/flush buffers */ -#define	C_CM_IOCTL	0x02		/* re-read CH_CTRL */ -#define	C_CM_IOCTLW	0x03		/* re-read CH_CTRL, intr when done */ -#define	C_CM_IOCTLM	0x04		/* RS-232 outputs change */ -#define	C_CM_SENDXOFF	0x10		/* send Xoff */ -#define	C_CM_SENDXON	0x11		/* send Xon */ -#define C_CM_CLFLOW	0x12		/* Clear flow control (resume) */ -#define	C_CM_SENDBRK	0x41		/* send break */ -#define	C_CM_INTBACK	0x42		/* Interrupt back */ -#define	C_CM_SET_BREAK	0x43		/* Tx break on */ -#define	C_CM_CLR_BREAK	0x44		/* Tx break off */ -#define	C_CM_CMD_DONE	0x45		/* Previous command done */ -#define C_CM_INTBACK2	0x46		/* Alternate Interrupt back */ -#define	C_CM_TINACT	0x51		/* set inactivity detection */ -#define	C_CM_IRQ_ENBL	0x52		/* enable generation of interrupts */ -#define	C_CM_IRQ_DSBL	0x53		/* disable generation of interrupts */ -#define	C_CM_ACK_ENBL	0x54		/* enable acknowledged interrupt mode */ -#define	C_CM_ACK_DSBL	0x55		/* disable acknowledged intr mode */ -#define	C_CM_FLUSH_RX	0x56		/* flushes Rx buffer */ -#define	C_CM_FLUSH_TX	0x57		/* flushes Tx buffer */ -#define C_CM_Q_ENABLE	0x58		/* enables queue access from the  -					   driver */ -#define C_CM_Q_DISABLE  0x59            /* disables queue access from the  -					   driver */ - -#define	C_CM_TXBEMPTY	0x60		/* Tx buffer is empty */ -#define	C_CM_TXLOWWM	0x61		/* Tx buffer low water mark */ -#define	C_CM_RXHIWM	0x62		/* Rx buffer high water mark */ -#define	C_CM_RXNNDT	0x63		/* rx no new data timeout */ -#define	C_CM_TXFEMPTY	0x64 -#define	C_CM_ICHAR	0x65 -#define	C_CM_MDCD	0x70		/* modem DCD change */ -#define	C_CM_MDSR	0x71		/* modem DSR change */ -#define	C_CM_MRI	0x72		/* modem RI change */ -#define	C_CM_MCTS	0x73		/* modem CTS change */ -#define C_CM_MRTS	0x74		/* modem RTS drop */ -#define	C_CM_RXBRK	0x84		/* Break received */ -#define	C_CM_PR_ERROR	0x85		/* Parity error */ -#define	C_CM_FR_ERROR	0x86		/* Frame error */ -#define C_CM_OVR_ERROR  0x87            /* Overrun error */ -#define C_CM_RXOFL	0x88            /* RX buffer overflow */ -#define	C_CM_CMDERROR	0x90		/* command error */ -#define	C_CM_FATAL	0x91		/* fatal error */ -#define	C_CM_HW_RESET	0x92		/* reset board */ - -/* - *	CH_CTRL - This per port structure contains all parameters - *	that control an specific port. It can be seen as the - *	configuration registers of a "super-serial-controller". - */ - -struct CH_CTRL { -	__u32	op_mode;	/* operation mode */ -	__u32	intr_enable;	/* interrupt masking */ -	__u32	sw_flow;	/* SW flow control */ -	__u32	flow_status;	/* output flow status */ -	__u32	comm_baud;	/* baud rate  - numerically specified */ -	__u32	comm_parity;	/* parity */ -	__u32	comm_data_l;	/* data length/stop */ -	__u32	comm_flags;	/* other flags */ -	__u32	hw_flow;	/* HW flow control */ -	__u32	rs_control;	/* RS-232 outputs */ -	__u32	rs_status;	/* RS-232 inputs */ -	__u32	flow_xon;	/* xon char */ -	__u32	flow_xoff;	/* xoff char */ -	__u32	hw_overflow;	/* hw overflow counter */ -	__u32	sw_overflow;	/* sw overflow counter */ -	__u32	comm_error;	/* frame/parity error counter */ -	__u32 ichar; -	__u32 filler[7]; -}; - - -/* - *	BUF_CTRL - This per channel structure contains - *	all Tx and Rx buffer control for a given channel. - */ - -struct	BUF_CTRL	{ -	__u32	flag_dma;	/* buffers are in Host memory */ -	__u32	tx_bufaddr;	/* address of the tx buffer */ -	__u32	tx_bufsize;	/* tx buffer size */ -	__u32	tx_threshold;	/* tx low water mark */ -	__u32	tx_get;		/* tail index tx buf */ -	__u32	tx_put;		/* head index tx buf */ -	__u32	rx_bufaddr;	/* address of the rx buffer */ -	__u32	rx_bufsize;	/* rx buffer size */ -	__u32	rx_threshold;	/* rx high water mark */ -	__u32	rx_get;		/* tail index rx buf */ -	__u32	rx_put;		/* head index rx buf */ -	__u32	filler[5];	/* filler to align structures */ -}; - -/* - *	BOARD_CTRL - This per board structure contains all global  - *	control fields related to the board. - */ - -struct BOARD_CTRL { - -	/* static info provided by the on-board CPU */ -	__u32	n_channel;	/* number of channels */ -	__u32	fw_version;	/* firmware version */ - -	/* static info provided by the driver */ -	__u32	op_system;	/* op_system id */ -	__u32	dr_version;	/* driver version */ - -	/* board control area */ -	__u32	inactivity;	/* inactivity control */ - -	/* host to FW commands */ -	__u32	hcmd_channel;	/* channel number */ -	__u32	hcmd_param;	/* pointer to parameters */ - -	/* FW to Host commands */ -	__u32	fwcmd_channel;	/* channel number */ -	__u32	fwcmd_param;	/* pointer to parameters */ -	__u32	zf_int_queue_addr; /* offset for INT_QUEUE structure */ - -	/* filler so the structures are aligned */ -	__u32	filler[6]; -}; - -/* Host Interrupt Queue */ - -#define QUEUE_SIZE	(10*MAX_CHAN) - -struct	INT_QUEUE { -	unsigned char	intr_code[QUEUE_SIZE]; -	unsigned long	channel[QUEUE_SIZE]; -	unsigned long	param[QUEUE_SIZE]; -	unsigned long	put; -	unsigned long	get; -}; - -/* - *	ZFW_CTRL - This is the data structure that includes all other - *	data structures used by the Firmware. - */ -  -struct ZFW_CTRL { -	struct BOARD_CTRL	board_ctrl; -	struct CH_CTRL		ch_ctrl[MAX_CHAN]; -	struct BUF_CTRL		buf_ctrl[MAX_CHAN]; -}; - -/****************** ****************** *******************/ -#endif +#include <uapi/linux/cyclades.h> -#ifdef __KERNEL__  /* Per card data structure */  struct cyclades_card { @@ -780,5 +357,4 @@ struct cyclades_port {  /***************************************************************************/ -#endif /* __KERNEL__ */  #endif /* _LINUX_CYCLADES_H */ diff --git a/include/linux/cycx_cfm.h b/include/linux/cycx_cfm.h deleted file mode 100644 index 032d26ed838..00000000000 --- a/include/linux/cycx_cfm.h +++ /dev/null @@ -1,101 +0,0 @@ -/* -* cycx_cfm.h	Cyclom 2X WAN Link Driver. -*		Definitions for the Cyclom 2X Firmware Module (CFM). -* -* Author:	Arnaldo Carvalho de Melo <acme@conectiva.com.br> -* -* Copyright:	(c) 1998-2003 Arnaldo Carvalho de Melo -* -* Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.com> -* -*		This program is free software; you can redistribute it and/or -*		modify it under the terms of the GNU General Public License -*		as published by the Free Software Foundation; either version -*		2 of the License, or (at your option) any later version. -* ============================================================================ -* 1998/08/08	acme		Initial version. -*/ -#ifndef	_CYCX_CFM_H -#define	_CYCX_CFM_H - -/* Defines */ - -#define	CFM_VERSION	2 -#define	CFM_SIGNATURE	"CFM - Cyclades CYCX Firmware Module" - -/* min/max */ -#define	CFM_IMAGE_SIZE	0x20000	/* max size of CYCX code image file */ -#define	CFM_DESCR_LEN	256	/* max length of description string */ -#define	CFM_MAX_CYCX	1	/* max number of compatible adapters */ -#define	CFM_LOAD_BUFSZ	0x400	/* buffer size for reset code (buffer_load) */ - -/* Firmware Commands */ -#define GEN_POWER_ON	0x1280 - -#define GEN_SET_SEG	0x1401	/* boot segment setting. */ -#define GEN_BOOT_DAT	0x1402	/* boot data. */ -#define GEN_START	0x1403	/* board start. */ -#define GEN_DEFPAR	0x1404	/* buffer length for boot. */ - -/* Adapter Types */ -#define CYCX_2X		2 -/* for now only the 2X is supported, no plans to support 8X or 16X */ -#define CYCX_8X		8 -#define CYCX_16X	16 - -#define	CFID_X25_2X	5200 - -/** - *	struct cycx_fw_info - firmware module information. - *	@codeid - firmware ID - *	@version - firmware version number - *	@adapter - compatible adapter types - *	@memsize - minimum memory size - *	@reserved - reserved - *	@startoffs - entry point offset - *	@winoffs - dual-port memory window offset - *	@codeoffs - code load offset - *	@codesize - code size - *	@dataoffs - configuration data load offset - *	@datasize - configuration data size - */ -struct cycx_fw_info { -	unsigned short	codeid; -	unsigned short	version; -	unsigned short	adapter[CFM_MAX_CYCX]; -	unsigned long	memsize; -	unsigned short	reserved[2]; -	unsigned short	startoffs; -	unsigned short	winoffs; -	unsigned short	codeoffs; -	unsigned long	codesize; -	unsigned short	dataoffs; -	unsigned long	datasize; -}; - -/** - *	struct cycx_firmware - CYCX firmware file structure - *	@signature - CFM file signature - *	@version - file format version - *	@checksum - info + image - *	@reserved - reserved - *	@descr - description string - *	@info - firmware module info - *	@image - code image (variable size) - */ -struct cycx_firmware { -	char		    signature[80]; -	unsigned short	    version; -	unsigned short	    checksum; -	unsigned short	    reserved[6]; -	char		    descr[CFM_DESCR_LEN]; -	struct cycx_fw_info info; -	unsigned char	    image[0]; -}; - -struct cycx_fw_header { -	unsigned long  reset_size; -	unsigned long  data_size; -	unsigned long  code_size; -}; -#endif	/* _CYCX_CFM_H */ diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h deleted file mode 100644 index 6bb43382f3f..00000000000 --- a/include/linux/dcbnl.h +++ /dev/null @@ -1,684 +0,0 @@ -/* - * Copyright (c) 2008-2011, Intel Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307 USA. - * - * Author: Lucy Liu <lucy.liu@intel.com> - */ - -#ifndef __LINUX_DCBNL_H__ -#define __LINUX_DCBNL_H__ - -#include <linux/types.h> - -/* IEEE 802.1Qaz std supported values */ -#define IEEE_8021QAZ_MAX_TCS	8 - -#define IEEE_8021QAZ_TSA_STRICT		0 -#define IEEE_8021QAZ_TSA_CB_SHAPER	1 -#define IEEE_8021QAZ_TSA_ETS		2 -#define IEEE_8021QAZ_TSA_VENDOR		255 - -/* This structure contains the IEEE 802.1Qaz ETS managed object - * - * @willing: willing bit in ETS configuration TLV - * @ets_cap: indicates supported capacity of ets feature - * @cbs: credit based shaper ets algorithm supported - * @tc_tx_bw: tc tx bandwidth indexed by traffic class - * @tc_rx_bw: tc rx bandwidth indexed by traffic class - * @tc_tsa: TSA Assignment table, indexed by traffic class - * @prio_tc: priority assignment table mapping 8021Qp to traffic class - * @tc_reco_bw: recommended tc bandwidth indexed by traffic class for TLV - * @tc_reco_tsa: recommended tc bandwidth indexed by traffic class for TLV - * @reco_prio_tc: recommended tc tx bandwidth indexed by traffic class for TLV - * - * Recommended values are used to set fields in the ETS recommendation TLV - * with hardware offloaded LLDP. - * - * ---- - *  TSA Assignment 8 bit identifiers - *	0	strict priority - *	1	credit-based shaper - *	2	enhanced transmission selection - *	3-254	reserved - *	255	vendor specific - */ -struct ieee_ets { -	__u8	willing; -	__u8	ets_cap; -	__u8	cbs; -	__u8	tc_tx_bw[IEEE_8021QAZ_MAX_TCS]; -	__u8	tc_rx_bw[IEEE_8021QAZ_MAX_TCS]; -	__u8	tc_tsa[IEEE_8021QAZ_MAX_TCS]; -	__u8	prio_tc[IEEE_8021QAZ_MAX_TCS]; -	__u8	tc_reco_bw[IEEE_8021QAZ_MAX_TCS]; -	__u8	tc_reco_tsa[IEEE_8021QAZ_MAX_TCS]; -	__u8	reco_prio_tc[IEEE_8021QAZ_MAX_TCS]; -}; - -/* This structure contains rate limit extension to the IEEE 802.1Qaz ETS - * managed object. - * Values are 64 bits long and specified in Kbps to enable usage over both - * slow and very fast networks. - * - * @tc_maxrate: maximal tc tx bandwidth indexed by traffic class - */ -struct ieee_maxrate { -	__u64	tc_maxrate[IEEE_8021QAZ_MAX_TCS]; -}; - -/* This structure contains the IEEE 802.1Qaz PFC managed object - * - * @pfc_cap: Indicates the number of traffic classes on the local device - *	     that may simultaneously have PFC enabled. - * @pfc_en: bitmap indicating pfc enabled traffic classes - * @mbc: enable macsec bypass capability - * @delay: the allowance made for a round-trip propagation delay of the - *	   link in bits. - * @requests: count of the sent pfc frames - * @indications: count of the received pfc frames - */ -struct ieee_pfc { -	__u8	pfc_cap; -	__u8	pfc_en; -	__u8	mbc; -	__u16	delay; -	__u64	requests[IEEE_8021QAZ_MAX_TCS]; -	__u64	indications[IEEE_8021QAZ_MAX_TCS]; -}; - -/* CEE DCBX std supported values */ -#define CEE_DCBX_MAX_PGS	8 -#define CEE_DCBX_MAX_PRIO	8 - -/** - * struct cee_pg - CEE Priority-Group managed object - * - * @willing: willing bit in the PG tlv - * @error: error bit in the PG tlv - * @pg_en: enable bit of the PG feature - * @tcs_supported: number of traffic classes supported - * @pg_bw: bandwidth percentage for each priority group - * @prio_pg: priority to PG mapping indexed by priority - */ -struct cee_pg { -	__u8    willing; -	__u8    error; -	__u8    pg_en; -	__u8    tcs_supported; -	__u8    pg_bw[CEE_DCBX_MAX_PGS]; -	__u8    prio_pg[CEE_DCBX_MAX_PGS]; -}; - -/** - * struct cee_pfc - CEE PFC managed object - * - * @willing: willing bit in the PFC tlv - * @error: error bit in the PFC tlv - * @pfc_en: bitmap indicating pfc enabled traffic classes - * @tcs_supported: number of traffic classes supported - */ -struct cee_pfc { -	__u8    willing; -	__u8    error; -	__u8    pfc_en; -	__u8    tcs_supported; -}; - -/* IEEE 802.1Qaz std supported values */ -#define IEEE_8021QAZ_APP_SEL_ETHERTYPE	1 -#define IEEE_8021QAZ_APP_SEL_STREAM	2 -#define IEEE_8021QAZ_APP_SEL_DGRAM	3 -#define IEEE_8021QAZ_APP_SEL_ANY	4 - -/* This structure contains the IEEE 802.1Qaz APP managed object. This - * object is also used for the CEE std as well. There is no difference - * between the objects. - * - * @selector: protocol identifier type - * @protocol: protocol of type indicated - * @priority: 3-bit unsigned integer indicating priority - * - * ---- - *  Selector field values - *	0	Reserved - *	1	Ethertype - *	2	Well known port number over TCP or SCTP - *	3	Well known port number over UDP or DCCP - *	4	Well known port number over TCP, SCTP, UDP, or DCCP - *	5-7	Reserved - */ -struct dcb_app { -	__u8	selector; -	__u8	priority; -	__u16	protocol; -}; - -/** - * struct dcb_peer_app_info - APP feature information sent by the peer - * - * @willing: willing bit in the peer APP tlv - * @error: error bit in the peer APP tlv - * - * In addition to this information the full peer APP tlv also contains - * a table of 'app_count' APP objects defined above. - */ -struct dcb_peer_app_info { -	__u8	willing; -	__u8	error; -}; - -struct dcbmsg { -	__u8               dcb_family; -	__u8               cmd; -	__u16              dcb_pad; -}; - -/** - * enum dcbnl_commands - supported DCB commands - * - * @DCB_CMD_UNDEFINED: unspecified command to catch errors - * @DCB_CMD_GSTATE: request the state of DCB in the device - * @DCB_CMD_SSTATE: set the state of DCB in the device - * @DCB_CMD_PGTX_GCFG: request the priority group configuration for Tx - * @DCB_CMD_PGTX_SCFG: set the priority group configuration for Tx - * @DCB_CMD_PGRX_GCFG: request the priority group configuration for Rx - * @DCB_CMD_PGRX_SCFG: set the priority group configuration for Rx - * @DCB_CMD_PFC_GCFG: request the priority flow control configuration - * @DCB_CMD_PFC_SCFG: set the priority flow control configuration - * @DCB_CMD_SET_ALL: apply all changes to the underlying device - * @DCB_CMD_GPERM_HWADDR: get the permanent MAC address of the underlying - *                        device.  Only useful when using bonding. - * @DCB_CMD_GCAP: request the DCB capabilities of the device - * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported - * @DCB_CMD_SNUMTCS: set the number of traffic classes - * @DCB_CMD_GBCN: set backward congestion notification configuration - * @DCB_CMD_SBCN: get backward congestion notification configration. - * @DCB_CMD_GAPP: get application protocol configuration - * @DCB_CMD_SAPP: set application protocol configuration - * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration - * @DCB_CMD_IEEE_GET: get IEEE 802.1Qaz configuration - * @DCB_CMD_GDCBX: get DCBX engine configuration - * @DCB_CMD_SDCBX: set DCBX engine configuration - * @DCB_CMD_GFEATCFG: get DCBX features flags - * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags - * @DCB_CMD_CEE_GET: get CEE aggregated configuration - * @DCB_CMD_IEEE_DEL: delete IEEE 802.1Qaz configuration - */ -enum dcbnl_commands { -	DCB_CMD_UNDEFINED, - -	DCB_CMD_GSTATE, -	DCB_CMD_SSTATE, - -	DCB_CMD_PGTX_GCFG, -	DCB_CMD_PGTX_SCFG, -	DCB_CMD_PGRX_GCFG, -	DCB_CMD_PGRX_SCFG, - -	DCB_CMD_PFC_GCFG, -	DCB_CMD_PFC_SCFG, - -	DCB_CMD_SET_ALL, - -	DCB_CMD_GPERM_HWADDR, - -	DCB_CMD_GCAP, - -	DCB_CMD_GNUMTCS, -	DCB_CMD_SNUMTCS, - -	DCB_CMD_PFC_GSTATE, -	DCB_CMD_PFC_SSTATE, - -	DCB_CMD_BCN_GCFG, -	DCB_CMD_BCN_SCFG, - -	DCB_CMD_GAPP, -	DCB_CMD_SAPP, - -	DCB_CMD_IEEE_SET, -	DCB_CMD_IEEE_GET, - -	DCB_CMD_GDCBX, -	DCB_CMD_SDCBX, - -	DCB_CMD_GFEATCFG, -	DCB_CMD_SFEATCFG, - -	DCB_CMD_CEE_GET, -	DCB_CMD_IEEE_DEL, - -	__DCB_CMD_ENUM_MAX, -	DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, -}; - -/** - * enum dcbnl_attrs - DCB top-level netlink attributes - * - * @DCB_ATTR_UNDEFINED: unspecified attribute to catch errors - * @DCB_ATTR_IFNAME: interface name of the underlying device (NLA_STRING) - * @DCB_ATTR_STATE: enable state of DCB in the device (NLA_U8) - * @DCB_ATTR_PFC_STATE: enable state of PFC in the device (NLA_U8) - * @DCB_ATTR_PFC_CFG: priority flow control configuration (NLA_NESTED) - * @DCB_ATTR_NUM_TC: number of traffic classes supported in the device (NLA_U8) - * @DCB_ATTR_PG_CFG: priority group configuration (NLA_NESTED) - * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8) - * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED) - * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED) - * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED) - * @DCB_ATTR_BCN: backward congestion notification configuration (NLA_NESTED) - * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED) - * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8) - * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED) - * @DCB_ATTR_CEE: CEE std supported attributes (NLA_NESTED) - */ -enum dcbnl_attrs { -	DCB_ATTR_UNDEFINED, - -	DCB_ATTR_IFNAME, -	DCB_ATTR_STATE, -	DCB_ATTR_PFC_STATE, -	DCB_ATTR_PFC_CFG, -	DCB_ATTR_NUM_TC, -	DCB_ATTR_PG_CFG, -	DCB_ATTR_SET_ALL, -	DCB_ATTR_PERM_HWADDR, -	DCB_ATTR_CAP, -	DCB_ATTR_NUMTCS, -	DCB_ATTR_BCN, -	DCB_ATTR_APP, - -	/* IEEE std attributes */ -	DCB_ATTR_IEEE, - -	DCB_ATTR_DCBX, -	DCB_ATTR_FEATCFG, - -	/* CEE nested attributes */ -	DCB_ATTR_CEE, - -	__DCB_ATTR_ENUM_MAX, -	DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, -}; - -/** - * enum ieee_attrs - IEEE 802.1Qaz get/set attributes - * - * @DCB_ATTR_IEEE_UNSPEC: unspecified - * @DCB_ATTR_IEEE_ETS: negotiated ETS configuration - * @DCB_ATTR_IEEE_PFC: negotiated PFC configuration - * @DCB_ATTR_IEEE_APP_TABLE: negotiated APP configuration - * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only - * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only - * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only - */ -enum ieee_attrs { -	DCB_ATTR_IEEE_UNSPEC, -	DCB_ATTR_IEEE_ETS, -	DCB_ATTR_IEEE_PFC, -	DCB_ATTR_IEEE_APP_TABLE, -	DCB_ATTR_IEEE_PEER_ETS, -	DCB_ATTR_IEEE_PEER_PFC, -	DCB_ATTR_IEEE_PEER_APP, -	DCB_ATTR_IEEE_MAXRATE, -	__DCB_ATTR_IEEE_MAX -}; -#define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) - -enum ieee_attrs_app { -	DCB_ATTR_IEEE_APP_UNSPEC, -	DCB_ATTR_IEEE_APP, -	__DCB_ATTR_IEEE_APP_MAX -}; -#define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) - -/** - * enum cee_attrs - CEE DCBX get attributes. - * - * @DCB_ATTR_CEE_UNSPEC: unspecified - * @DCB_ATTR_CEE_PEER_PG: peer PG configuration - get only - * @DCB_ATTR_CEE_PEER_PFC: peer PFC configuration - get only - * @DCB_ATTR_CEE_PEER_APP_TABLE: peer APP tlv - get only - * @DCB_ATTR_CEE_TX_PG: TX PG configuration (DCB_CMD_PGTX_GCFG) - * @DCB_ATTR_CEE_RX_PG: RX PG configuration (DCB_CMD_PGRX_GCFG) - * @DCB_ATTR_CEE_PFC: PFC configuration (DCB_CMD_PFC_GCFG) - * @DCB_ATTR_CEE_APP_TABLE: APP configuration (multi DCB_CMD_GAPP) - * @DCB_ATTR_CEE_FEAT: DCBX features flags (DCB_CMD_GFEATCFG) - * - * An aggregated collection of the cee std negotiated parameters. - */ -enum cee_attrs { -	DCB_ATTR_CEE_UNSPEC, -	DCB_ATTR_CEE_PEER_PG, -	DCB_ATTR_CEE_PEER_PFC, -	DCB_ATTR_CEE_PEER_APP_TABLE, -	DCB_ATTR_CEE_TX_PG, -	DCB_ATTR_CEE_RX_PG, -	DCB_ATTR_CEE_PFC, -	DCB_ATTR_CEE_APP_TABLE, -	DCB_ATTR_CEE_FEAT, -	__DCB_ATTR_CEE_MAX -}; -#define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1) - -enum peer_app_attr { -	DCB_ATTR_CEE_PEER_APP_UNSPEC, -	DCB_ATTR_CEE_PEER_APP_INFO, -	DCB_ATTR_CEE_PEER_APP, -	__DCB_ATTR_CEE_PEER_APP_MAX -}; -#define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1) - -enum cee_attrs_app { -	DCB_ATTR_CEE_APP_UNSPEC, -	DCB_ATTR_CEE_APP, -	__DCB_ATTR_CEE_APP_MAX -}; -#define DCB_ATTR_CEE_APP_MAX (__DCB_ATTR_CEE_APP_MAX - 1) - -/** - * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs - * - * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors - * @DCB_PFC_UP_ATTR_0: Priority Flow Control value for User Priority 0 (NLA_U8) - * @DCB_PFC_UP_ATTR_1: Priority Flow Control value for User Priority 1 (NLA_U8) - * @DCB_PFC_UP_ATTR_2: Priority Flow Control value for User Priority 2 (NLA_U8) - * @DCB_PFC_UP_ATTR_3: Priority Flow Control value for User Priority 3 (NLA_U8) - * @DCB_PFC_UP_ATTR_4: Priority Flow Control value for User Priority 4 (NLA_U8) - * @DCB_PFC_UP_ATTR_5: Priority Flow Control value for User Priority 5 (NLA_U8) - * @DCB_PFC_UP_ATTR_6: Priority Flow Control value for User Priority 6 (NLA_U8) - * @DCB_PFC_UP_ATTR_7: Priority Flow Control value for User Priority 7 (NLA_U8) - * @DCB_PFC_UP_ATTR_MAX: highest attribute number currently defined - * @DCB_PFC_UP_ATTR_ALL: apply to all priority flow control attrs (NLA_FLAG) - * - */ -enum dcbnl_pfc_up_attrs { -	DCB_PFC_UP_ATTR_UNDEFINED, - -	DCB_PFC_UP_ATTR_0, -	DCB_PFC_UP_ATTR_1, -	DCB_PFC_UP_ATTR_2, -	DCB_PFC_UP_ATTR_3, -	DCB_PFC_UP_ATTR_4, -	DCB_PFC_UP_ATTR_5, -	DCB_PFC_UP_ATTR_6, -	DCB_PFC_UP_ATTR_7, -	DCB_PFC_UP_ATTR_ALL, - -	__DCB_PFC_UP_ATTR_ENUM_MAX, -	DCB_PFC_UP_ATTR_MAX = __DCB_PFC_UP_ATTR_ENUM_MAX - 1, -}; - -/** - * enum dcbnl_pg_attrs - DCB Priority Group attributes - * - * @DCB_PG_ATTR_UNDEFINED: unspecified attribute to catch errors - * @DCB_PG_ATTR_TC_0: Priority Group Traffic Class 0 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_1: Priority Group Traffic Class 1 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_2: Priority Group Traffic Class 2 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_3: Priority Group Traffic Class 3 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_4: Priority Group Traffic Class 4 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_5: Priority Group Traffic Class 5 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_6: Priority Group Traffic Class 6 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_7: Priority Group Traffic Class 7 configuration (NLA_NESTED) - * @DCB_PG_ATTR_TC_MAX: highest attribute number currently defined - * @DCB_PG_ATTR_TC_ALL: apply to all traffic classes (NLA_NESTED) - * @DCB_PG_ATTR_BW_ID_0: Percent of link bandwidth for Priority Group 0 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_1: Percent of link bandwidth for Priority Group 1 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_2: Percent of link bandwidth for Priority Group 2 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_3: Percent of link bandwidth for Priority Group 3 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_4: Percent of link bandwidth for Priority Group 4 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_5: Percent of link bandwidth for Priority Group 5 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_6: Percent of link bandwidth for Priority Group 6 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_7: Percent of link bandwidth for Priority Group 7 (NLA_U8) - * @DCB_PG_ATTR_BW_ID_MAX: highest attribute number currently defined - * @DCB_PG_ATTR_BW_ID_ALL: apply to all priority groups (NLA_FLAG) - * - */ -enum dcbnl_pg_attrs { -	DCB_PG_ATTR_UNDEFINED, - -	DCB_PG_ATTR_TC_0, -	DCB_PG_ATTR_TC_1, -	DCB_PG_ATTR_TC_2, -	DCB_PG_ATTR_TC_3, -	DCB_PG_ATTR_TC_4, -	DCB_PG_ATTR_TC_5, -	DCB_PG_ATTR_TC_6, -	DCB_PG_ATTR_TC_7, -	DCB_PG_ATTR_TC_MAX, -	DCB_PG_ATTR_TC_ALL, - -	DCB_PG_ATTR_BW_ID_0, -	DCB_PG_ATTR_BW_ID_1, -	DCB_PG_ATTR_BW_ID_2, -	DCB_PG_ATTR_BW_ID_3, -	DCB_PG_ATTR_BW_ID_4, -	DCB_PG_ATTR_BW_ID_5, -	DCB_PG_ATTR_BW_ID_6, -	DCB_PG_ATTR_BW_ID_7, -	DCB_PG_ATTR_BW_ID_MAX, -	DCB_PG_ATTR_BW_ID_ALL, - -	__DCB_PG_ATTR_ENUM_MAX, -	DCB_PG_ATTR_MAX = __DCB_PG_ATTR_ENUM_MAX - 1, -}; - -/** - * enum dcbnl_tc_attrs - DCB Traffic Class attributes - * - * @DCB_TC_ATTR_PARAM_UNDEFINED: unspecified attribute to catch errors - * @DCB_TC_ATTR_PARAM_PGID: (NLA_U8) Priority group the traffic class belongs to - *                          Valid values are:  0-7 - * @DCB_TC_ATTR_PARAM_UP_MAPPING: (NLA_U8) Traffic class to user priority map - *                                Some devices may not support changing the - *                                user priority map of a TC. - * @DCB_TC_ATTR_PARAM_STRICT_PRIO: (NLA_U8) Strict priority setting - *                                 0 - none - *                                 1 - group strict - *                                 2 - link strict - * @DCB_TC_ATTR_PARAM_BW_PCT: optional - (NLA_U8) If supported by the device and - *                            not configured to use link strict priority, - *                            this is the percentage of bandwidth of the - *                            priority group this traffic class belongs to - * @DCB_TC_ATTR_PARAM_ALL: (NLA_FLAG) all traffic class parameters - * - */ -enum dcbnl_tc_attrs { -	DCB_TC_ATTR_PARAM_UNDEFINED, - -	DCB_TC_ATTR_PARAM_PGID, -	DCB_TC_ATTR_PARAM_UP_MAPPING, -	DCB_TC_ATTR_PARAM_STRICT_PRIO, -	DCB_TC_ATTR_PARAM_BW_PCT, -	DCB_TC_ATTR_PARAM_ALL, - -	__DCB_TC_ATTR_PARAM_ENUM_MAX, -	DCB_TC_ATTR_PARAM_MAX = __DCB_TC_ATTR_PARAM_ENUM_MAX - 1, -}; - -/** - * enum dcbnl_cap_attrs - DCB Capability attributes - * - * @DCB_CAP_ATTR_UNDEFINED: unspecified attribute to catch errors - * @DCB_CAP_ATTR_ALL: (NLA_FLAG) all capability parameters - * @DCB_CAP_ATTR_PG: (NLA_U8) device supports Priority Groups - * @DCB_CAP_ATTR_PFC: (NLA_U8) device supports Priority Flow Control - * @DCB_CAP_ATTR_UP2TC: (NLA_U8) device supports user priority to - *                               traffic class mapping - * @DCB_CAP_ATTR_PG_TCS: (NLA_U8) bitmap where each bit represents a - *                                number of traffic classes the device - *                                can be configured to use for Priority Groups - * @DCB_CAP_ATTR_PFC_TCS: (NLA_U8) bitmap where each bit represents a - *                                 number of traffic classes the device can be - *                                 configured to use for Priority Flow Control - * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority - * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion - *                             Notification - * @DCB_CAP_ATTR_DCBX: (NLA_U8) device supports DCBX engine - * - */ -enum dcbnl_cap_attrs { -	DCB_CAP_ATTR_UNDEFINED, -	DCB_CAP_ATTR_ALL, -	DCB_CAP_ATTR_PG, -	DCB_CAP_ATTR_PFC, -	DCB_CAP_ATTR_UP2TC, -	DCB_CAP_ATTR_PG_TCS, -	DCB_CAP_ATTR_PFC_TCS, -	DCB_CAP_ATTR_GSP, -	DCB_CAP_ATTR_BCN, -	DCB_CAP_ATTR_DCBX, - -	__DCB_CAP_ATTR_ENUM_MAX, -	DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, -}; - -/** - * DCBX capability flags - * - * @DCB_CAP_DCBX_HOST: DCBX negotiation is performed by the host LLDP agent. - *                     'set' routines are used to configure the device with - *                     the negotiated parameters - * - * @DCB_CAP_DCBX_LLD_MANAGED: DCBX negotiation is not performed in the host but - *                            by another entity - *                            'get' routines are used to retrieve the - *                            negotiated parameters - *                            'set' routines can be used to set the initial - *                            negotiation configuration - * - * @DCB_CAP_DCBX_VER_CEE: for a non-host DCBX engine, indicates the engine - *                        supports the CEE protocol flavor - * - * @DCB_CAP_DCBX_VER_IEEE: for a non-host DCBX engine, indicates the engine - *                         supports the IEEE protocol flavor - * - * @DCB_CAP_DCBX_STATIC: for a non-host DCBX engine, indicates the engine - *                       supports static configuration (i.e no actual - *                       negotiation is performed negotiated parameters equal - *                       the initial configuration) - * - */ -#define DCB_CAP_DCBX_HOST		0x01 -#define DCB_CAP_DCBX_LLD_MANAGED	0x02 -#define DCB_CAP_DCBX_VER_CEE		0x04 -#define DCB_CAP_DCBX_VER_IEEE		0x08 -#define DCB_CAP_DCBX_STATIC		0x10 - -/** - * enum dcbnl_numtcs_attrs - number of traffic classes - * - * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors - * @DCB_NUMTCS_ATTR_ALL: (NLA_FLAG) all traffic class attributes - * @DCB_NUMTCS_ATTR_PG: (NLA_U8) number of traffic classes used for - *                               priority groups - * @DCB_NUMTCS_ATTR_PFC: (NLA_U8) number of traffic classes which can - *                                support priority flow control - */ -enum dcbnl_numtcs_attrs { -	DCB_NUMTCS_ATTR_UNDEFINED, -	DCB_NUMTCS_ATTR_ALL, -	DCB_NUMTCS_ATTR_PG, -	DCB_NUMTCS_ATTR_PFC, - -	__DCB_NUMTCS_ATTR_ENUM_MAX, -	DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1, -}; - -enum dcbnl_bcn_attrs{ -	DCB_BCN_ATTR_UNDEFINED = 0, - -	DCB_BCN_ATTR_RP_0, -	DCB_BCN_ATTR_RP_1, -	DCB_BCN_ATTR_RP_2, -	DCB_BCN_ATTR_RP_3, -	DCB_BCN_ATTR_RP_4, -	DCB_BCN_ATTR_RP_5, -	DCB_BCN_ATTR_RP_6, -	DCB_BCN_ATTR_RP_7, -	DCB_BCN_ATTR_RP_ALL, - -	DCB_BCN_ATTR_BCNA_0, -	DCB_BCN_ATTR_BCNA_1, -	DCB_BCN_ATTR_ALPHA, -	DCB_BCN_ATTR_BETA, -	DCB_BCN_ATTR_GD, -	DCB_BCN_ATTR_GI, -	DCB_BCN_ATTR_TMAX, -	DCB_BCN_ATTR_TD, -	DCB_BCN_ATTR_RMIN, -	DCB_BCN_ATTR_W, -	DCB_BCN_ATTR_RD, -	DCB_BCN_ATTR_RU, -	DCB_BCN_ATTR_WRTT, -	DCB_BCN_ATTR_RI, -	DCB_BCN_ATTR_C, -	DCB_BCN_ATTR_ALL, - -	__DCB_BCN_ATTR_ENUM_MAX, -	DCB_BCN_ATTR_MAX = __DCB_BCN_ATTR_ENUM_MAX - 1, -}; - -/** - * enum dcb_general_attr_values - general DCB attribute values - * - * @DCB_ATTR_UNDEFINED: value used to indicate an attribute is not supported - * - */ -enum dcb_general_attr_values { -	DCB_ATTR_VALUE_UNDEFINED = 0xff -}; - -#define DCB_APP_IDTYPE_ETHTYPE	0x00 -#define DCB_APP_IDTYPE_PORTNUM	0x01 -enum dcbnl_app_attrs { -	DCB_APP_ATTR_UNDEFINED, - -	DCB_APP_ATTR_IDTYPE, -	DCB_APP_ATTR_ID, -	DCB_APP_ATTR_PRIORITY, - -	__DCB_APP_ATTR_ENUM_MAX, -	DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1, -}; - -/** - * enum dcbnl_featcfg_attrs - features conifiguration flags - * - * @DCB_FEATCFG_ATTR_UNDEFINED: unspecified attribute to catch errors - * @DCB_FEATCFG_ATTR_ALL: (NLA_FLAG) all features configuration attributes - * @DCB_FEATCFG_ATTR_PG: (NLA_U8) configuration flags for priority groups - * @DCB_FEATCFG_ATTR_PFC: (NLA_U8) configuration flags for priority - *                                 flow control - * @DCB_FEATCFG_ATTR_APP: (NLA_U8) configuration flags for application TLV - * - */ -#define DCB_FEATCFG_ERROR	0x01	/* error in feature resolution */ -#define DCB_FEATCFG_ENABLE	0x02	/* enable feature */ -#define DCB_FEATCFG_WILLING	0x04	/* feature is willing */ -#define DCB_FEATCFG_ADVERTISE	0x08	/* advertise feature */ -enum dcbnl_featcfg_attrs { -	DCB_FEATCFG_ATTR_UNDEFINED, -	DCB_FEATCFG_ATTR_ALL, -	DCB_FEATCFG_ATTR_PG, -	DCB_FEATCFG_ATTR_PFC, -	DCB_FEATCFG_ATTR_APP, - -	__DCB_FEATCFG_ATTR_ENUM_MAX, -	DCB_FEATCFG_ATTR_MAX = __DCB_FEATCFG_ATTR_ENUM_MAX - 1, -}; - -#endif /* __LINUX_DCBNL_H__ */ diff --git a/include/linux/dccp.h b/include/linux/dccp.h index d16294e2a11..439ff698000 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h @@ -1,239 +1,6 @@  #ifndef _LINUX_DCCP_H  #define _LINUX_DCCP_H -#include <linux/types.h> -#include <asm/byteorder.h> - -/** - * struct dccp_hdr - generic part of DCCP packet header - * - * @dccph_sport - Relevant port on the endpoint that sent this packet - * @dccph_dport - Relevant port on the other endpoint - * @dccph_doff - Data Offset from the start of the DCCP header, in 32-bit words - * @dccph_ccval - Used by the HC-Sender CCID - * @dccph_cscov - Parts of the packet that are covered by the Checksum field - * @dccph_checksum - Internet checksum, depends on dccph_cscov - * @dccph_x - 0 = 24 bit sequence number, 1 = 48 - * @dccph_type - packet type, see DCCP_PKT_ prefixed macros - * @dccph_seq - sequence number high or low order 24 bits, depends on dccph_x - */ -struct dccp_hdr { -	__be16	dccph_sport, -		dccph_dport; -	__u8	dccph_doff; -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u8	dccph_cscov:4, -		dccph_ccval:4; -#elif defined(__BIG_ENDIAN_BITFIELD) -	__u8	dccph_ccval:4, -		dccph_cscov:4; -#else -#error  "Adjust your <asm/byteorder.h> defines" -#endif -	__sum16	dccph_checksum; -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u8	dccph_x:1, -		dccph_type:4, -		dccph_reserved:3; -#elif defined(__BIG_ENDIAN_BITFIELD) -	__u8	dccph_reserved:3, -		dccph_type:4, -		dccph_x:1; -#else -#error  "Adjust your <asm/byteorder.h> defines" -#endif -	__u8	dccph_seq2; -	__be16	dccph_seq; -}; - -/** - * struct dccp_hdr_ext - the low bits of a 48 bit seq packet - * - * @dccph_seq_low - low 24 bits of a 48 bit seq packet - */ -struct dccp_hdr_ext { -	__be32	dccph_seq_low; -}; - -/** - * struct dccp_hdr_request - Connection initiation request header - * - * @dccph_req_service - Service to which the client app wants to connect - */ -struct dccp_hdr_request { -	__be32	dccph_req_service; -}; -/** - * struct dccp_hdr_ack_bits - acknowledgment bits common to most packets - * - * @dccph_resp_ack_nr_high - 48 bit ack number high order bits, contains GSR - * @dccph_resp_ack_nr_low - 48 bit ack number low order bits, contains GSR - */ -struct dccp_hdr_ack_bits { -	__be16	dccph_reserved1; -	__be16	dccph_ack_nr_high; -	__be32	dccph_ack_nr_low; -}; -/** - * struct dccp_hdr_response - Connection initiation response header - * - * @dccph_resp_ack - 48 bit Acknowledgment Number Subheader (5.3) - * @dccph_resp_service - Echoes the Service Code on a received DCCP-Request - */ -struct dccp_hdr_response { -	struct dccp_hdr_ack_bits	dccph_resp_ack; -	__be32				dccph_resp_service; -}; - -/** - * struct dccp_hdr_reset - Unconditionally shut down a connection - * - * @dccph_reset_ack - 48 bit Acknowledgment Number Subheader (5.6) - * @dccph_reset_code - one of %dccp_reset_codes - * @dccph_reset_data - the Data 1 ... Data 3 fields from 5.6 - */ -struct dccp_hdr_reset { -	struct dccp_hdr_ack_bits	dccph_reset_ack; -	__u8				dccph_reset_code, -					dccph_reset_data[3]; -}; - -enum dccp_pkt_type { -	DCCP_PKT_REQUEST = 0, -	DCCP_PKT_RESPONSE, -	DCCP_PKT_DATA, -	DCCP_PKT_ACK, -	DCCP_PKT_DATAACK, -	DCCP_PKT_CLOSEREQ, -	DCCP_PKT_CLOSE, -	DCCP_PKT_RESET, -	DCCP_PKT_SYNC, -	DCCP_PKT_SYNCACK, -	DCCP_PKT_INVALID, -}; - -#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID - -static inline unsigned int dccp_packet_hdr_len(const __u8 type) -{ -	if (type == DCCP_PKT_DATA) -		return 0; -	if (type == DCCP_PKT_DATAACK	|| -	    type == DCCP_PKT_ACK	|| -	    type == DCCP_PKT_SYNC	|| -	    type == DCCP_PKT_SYNCACK	|| -	    type == DCCP_PKT_CLOSE	|| -	    type == DCCP_PKT_CLOSEREQ) -		return sizeof(struct dccp_hdr_ack_bits); -	if (type == DCCP_PKT_REQUEST) -		return sizeof(struct dccp_hdr_request); -	if (type == DCCP_PKT_RESPONSE) -		return sizeof(struct dccp_hdr_response); -	return sizeof(struct dccp_hdr_reset); -} -enum dccp_reset_codes { -	DCCP_RESET_CODE_UNSPECIFIED = 0, -	DCCP_RESET_CODE_CLOSED, -	DCCP_RESET_CODE_ABORTED, -	DCCP_RESET_CODE_NO_CONNECTION, -	DCCP_RESET_CODE_PACKET_ERROR, -	DCCP_RESET_CODE_OPTION_ERROR, -	DCCP_RESET_CODE_MANDATORY_ERROR, -	DCCP_RESET_CODE_CONNECTION_REFUSED, -	DCCP_RESET_CODE_BAD_SERVICE_CODE, -	DCCP_RESET_CODE_TOO_BUSY, -	DCCP_RESET_CODE_BAD_INIT_COOKIE, -	DCCP_RESET_CODE_AGGRESSION_PENALTY, - -	DCCP_MAX_RESET_CODES		/* Leave at the end!  */ -}; - -/* DCCP options */ -enum { -	DCCPO_PADDING = 0, -	DCCPO_MANDATORY = 1, -	DCCPO_MIN_RESERVED = 3, -	DCCPO_MAX_RESERVED = 31, -	DCCPO_CHANGE_L = 32, -	DCCPO_CONFIRM_L = 33, -	DCCPO_CHANGE_R = 34, -	DCCPO_CONFIRM_R = 35, -	DCCPO_NDP_COUNT = 37, -	DCCPO_ACK_VECTOR_0 = 38, -	DCCPO_ACK_VECTOR_1 = 39, -	DCCPO_TIMESTAMP = 41, -	DCCPO_TIMESTAMP_ECHO = 42, -	DCCPO_ELAPSED_TIME = 43, -	DCCPO_MAX = 45, -	DCCPO_MIN_RX_CCID_SPECIFIC = 128,	/* from sender to receiver */ -	DCCPO_MAX_RX_CCID_SPECIFIC = 191, -	DCCPO_MIN_TX_CCID_SPECIFIC = 192,	/* from receiver to sender */ -	DCCPO_MAX_TX_CCID_SPECIFIC = 255, -}; -/* maximum size of a single TLV-encoded DCCP option (sans type/len bytes) */ -#define DCCP_SINGLE_OPT_MAXLEN	253 - -/* DCCP CCIDS */ -enum { -	DCCPC_CCID2 = 2, -	DCCPC_CCID3 = 3, -}; - -/* DCCP features (RFC 4340 section 6.4) */ -enum dccp_feature_numbers { -	DCCPF_RESERVED = 0, -	DCCPF_CCID = 1, -	DCCPF_SHORT_SEQNOS = 2, -	DCCPF_SEQUENCE_WINDOW = 3, -	DCCPF_ECN_INCAPABLE = 4, -	DCCPF_ACK_RATIO = 5, -	DCCPF_SEND_ACK_VECTOR = 6, -	DCCPF_SEND_NDP_COUNT = 7, -	DCCPF_MIN_CSUM_COVER = 8, -	DCCPF_DATA_CHECKSUM = 9, -	/* 10-127 reserved */ -	DCCPF_MIN_CCID_SPECIFIC = 128, -	DCCPF_SEND_LEV_RATE = 192,	/* RFC 4342, sec. 8.4 */ -	DCCPF_MAX_CCID_SPECIFIC = 255, -}; - -/* DCCP socket control message types for cmsg */ -enum dccp_cmsg_type { -	DCCP_SCM_PRIORITY = 1, -	DCCP_SCM_QPOLICY_MAX = 0xFFFF, -	/* ^-- Up to here reserved exclusively for qpolicy parameters */ -	DCCP_SCM_MAX -}; - -/* DCCP priorities for outgoing/queued packets */ -enum dccp_packet_dequeueing_policy { -	DCCPQ_POLICY_SIMPLE, -	DCCPQ_POLICY_PRIO, -	DCCPQ_POLICY_MAX -}; - -/* DCCP socket options */ -#define DCCP_SOCKOPT_PACKET_SIZE	1 /* XXX deprecated, without effect */ -#define DCCP_SOCKOPT_SERVICE		2 -#define DCCP_SOCKOPT_CHANGE_L		3 -#define DCCP_SOCKOPT_CHANGE_R		4 -#define DCCP_SOCKOPT_GET_CUR_MPS	5 -#define DCCP_SOCKOPT_SERVER_TIMEWAIT	6 -#define DCCP_SOCKOPT_SEND_CSCOV		10 -#define DCCP_SOCKOPT_RECV_CSCOV		11 -#define DCCP_SOCKOPT_AVAILABLE_CCIDS	12 -#define DCCP_SOCKOPT_CCID		13 -#define DCCP_SOCKOPT_TX_CCID		14 -#define DCCP_SOCKOPT_RX_CCID		15 -#define DCCP_SOCKOPT_QPOLICY_ID		16 -#define DCCP_SOCKOPT_QPOLICY_TXQLEN	17 -#define DCCP_SOCKOPT_CCID_RX_INFO	128 -#define DCCP_SOCKOPT_CCID_TX_INFO	192 - -/* maximum number of services provided on the same listening port */ -#define DCCP_SERVICE_LIST_MAX_LEN      32 - -#ifdef __KERNEL__  #include <linux/in.h>  #include <linux/interrupt.h> @@ -246,6 +13,7 @@ enum dccp_packet_dequeueing_policy {  #include <net/inet_sock.h>  #include <net/inet_timewait_sock.h>  #include <net/tcp_states.h> +#include <uapi/linux/dccp.h>  enum dccp_state {  	DCCP_OPEN	     = TCP_ESTABLISHED, @@ -551,6 +319,4 @@ static inline const char *dccp_role(const struct sock *sk)  extern void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_DCCP_H */ diff --git a/include/linux/dlm.h b/include/linux/dlm.h index 520152411cd..1d47dcce11e 100644 --- a/include/linux/dlm.h +++ b/include/linux/dlm.h @@ -10,68 +10,11 @@  **  *******************************************************************************  ******************************************************************************/ -  #ifndef __DLM_DOT_H__  #define __DLM_DOT_H__ -/* - * Interface to Distributed Lock Manager (DLM) - * routines and structures to use DLM lockspaces - */ - -/* Lock levels and flags are here */ -#include <linux/dlmconstants.h> -#include <linux/types.h> - -typedef void dlm_lockspace_t; - -/* - * Lock status block - * - * Use this structure to specify the contents of the lock value block.  For a - * conversion request, this structure is used to specify the lock ID of the - * lock.  DLM writes the status of the lock request and the lock ID assigned - * to the request in the lock status block. - * - * sb_lkid: the returned lock ID.  It is set on new (non-conversion) requests. - * It is available when dlm_lock returns. - * - * sb_lvbptr: saves or returns the contents of the lock's LVB according to rules - * shown for the DLM_LKF_VALBLK flag. - * - * sb_flags: DLM_SBF_DEMOTED is returned if in the process of promoting a lock, - * it was first demoted to NL to avoid conversion deadlock. - * DLM_SBF_VALNOTVALID is returned if the resource's LVB is marked invalid. - * - * sb_status: the returned status of the lock request set prior to AST - * execution.  Possible return values: - * - * 0 if lock request was successful - * -EAGAIN if request would block and is flagged DLM_LKF_NOQUEUE - * -DLM_EUNLOCK if unlock request was successful - * -DLM_ECANCEL if a cancel completed successfully - * -EDEADLK if a deadlock was detected - * -ETIMEDOUT if the lock request was canceled due to a timeout - */ - -#define DLM_SBF_DEMOTED		0x01 -#define DLM_SBF_VALNOTVALID	0x02 -#define DLM_SBF_ALTMODE		0x04 +#include <uapi/linux/dlm.h> -struct dlm_lksb { -	int 	 sb_status; -	__u32	 sb_lkid; -	char 	 sb_flags; -	char *	 sb_lvbptr; -}; - -/* dlm_new_lockspace() flags */ - -#define DLM_LSFL_TIMEWARN	0x00000002 -#define DLM_LSFL_FS     	0x00000004 -#define DLM_LSFL_NEWEXCL     	0x00000008 - -#ifdef __KERNEL__  struct dlm_slot {  	int nodeid; /* 1 to MAX_INT */ @@ -226,7 +169,4 @@ int dlm_unlock(dlm_lockspace_t *lockspace,  	       struct dlm_lksb *lksb,  	       void *astarg); -#endif				/* __KERNEL__ */ -  #endif				/* __DLM_DOT_H__ */ - diff --git a/include/linux/dlm_device.h b/include/linux/dlm_device.h deleted file mode 100644 index 3060783c419..00000000000 --- a/include/linux/dlm_device.h +++ /dev/null @@ -1,108 +0,0 @@ -/****************************************************************************** -******************************************************************************* -** -**  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved. -**  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved. -** -**  This copyrighted material is made available to anyone wishing to use, -**  modify, copy, or redistribute it subject to the terms and conditions -**  of the GNU General Public License v.2. -** -******************************************************************************* -******************************************************************************/ - -#ifndef _LINUX_DLM_DEVICE_H -#define _LINUX_DLM_DEVICE_H - -/* This is the device interface for dlm, most users will use a library - * interface. - */ - -#include <linux/dlm.h> -#include <linux/types.h> - -#define DLM_USER_LVB_LEN	32 - -/* Version of the device interface */ -#define DLM_DEVICE_VERSION_MAJOR 6 -#define DLM_DEVICE_VERSION_MINOR 0 -#define DLM_DEVICE_VERSION_PATCH 1 - -/* struct passed to the lock write */ -struct dlm_lock_params { -	__u8 mode; -	__u8 namelen; -	__u16 unused; -	__u32 flags; -	__u32 lkid; -	__u32 parent; -	__u64 xid; -	__u64 timeout; -	void __user *castparam; -	void __user *castaddr; -	void __user *bastparam; -	void __user *bastaddr; -	struct dlm_lksb __user *lksb; -	char lvb[DLM_USER_LVB_LEN]; -	char name[0]; -}; - -struct dlm_lspace_params { -	__u32 flags; -	__u32 minor; -	char name[0]; -}; - -struct dlm_purge_params { -	__u32 nodeid; -	__u32 pid; -}; - -struct dlm_write_request { -	__u32 version[3]; -	__u8 cmd; -	__u8 is64bit; -	__u8 unused[2]; - -	union  { -		struct dlm_lock_params   lock; -		struct dlm_lspace_params lspace; -		struct dlm_purge_params  purge; -	} i; -}; - -struct dlm_device_version { -	__u32 version[3]; -}; - -/* struct read from the "device" fd, -   consists mainly of userspace pointers for the library to use */ - -struct dlm_lock_result { -	__u32 version[3]; -	__u32 length; -	void __user * user_astaddr; -	void __user * user_astparam; -	struct dlm_lksb __user * user_lksb; -	struct dlm_lksb lksb; -	__u8 bast_mode; -	__u8 unused[3]; -	/* Offsets may be zero if no data is present */ -	__u32 lvb_offset; -}; - -/* Commands passed to the device */ -#define DLM_USER_LOCK         1 -#define DLM_USER_UNLOCK       2 -#define DLM_USER_QUERY        3 -#define DLM_USER_CREATE_LOCKSPACE  4 -#define DLM_USER_REMOVE_LOCKSPACE  5 -#define DLM_USER_PURGE        6 -#define DLM_USER_DEADLOCK     7 - -/* Lockspace flags */ -#define DLM_USER_LSFLG_AUTOFREE   1 -#define DLM_USER_LSFLG_FORCEFREE  2 - -#endif - diff --git a/include/linux/dlm_netlink.h b/include/linux/dlm_netlink.h deleted file mode 100644 index 647c8ef2722..00000000000 --- a/include/linux/dlm_netlink.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2007 Red Hat, Inc.  All rights reserved. - * - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU General Public License v.2. - */ - -#ifndef _DLM_NETLINK_H -#define _DLM_NETLINK_H - -#include <linux/types.h> - -enum { -	DLM_STATUS_WAITING = 1, -	DLM_STATUS_GRANTED = 2, -	DLM_STATUS_CONVERT = 3, -}; - -#define DLM_LOCK_DATA_VERSION 1 - -struct dlm_lock_data { -	__u16 version; -	__u32 lockspace_id; -	int nodeid; -	int ownpid; -	__u32 id; -	__u32 remid; -	__u64 xid; -	__s8 status; -	__s8 grmode; -	__s8 rqmode; -	unsigned long timestamp; -	int resource_namelen; -	char resource_name[DLM_RESNAME_MAXLEN]; -}; - -enum { -	DLM_CMD_UNSPEC = 0, -	DLM_CMD_HELLO,		/* user->kernel */ -	DLM_CMD_TIMEOUT,	/* kernel->user */ -	__DLM_CMD_MAX, -}; - -#define DLM_CMD_MAX (__DLM_CMD_MAX - 1) - -enum { -	DLM_TYPE_UNSPEC = 0, -	DLM_TYPE_LOCK, -	__DLM_TYPE_MAX, -}; - -#define DLM_TYPE_MAX (__DLM_TYPE_MAX - 1) - -#define DLM_GENL_VERSION 0x1 -#define DLM_GENL_NAME "DLM" - -#endif /* _DLM_NETLINK_H */ diff --git a/include/linux/dlm_plock.h b/include/linux/dlm_plock.h index 3b1cc1be419..95ad387a776 100644 --- a/include/linux/dlm_plock.h +++ b/include/linux/dlm_plock.h @@ -5,50 +5,15 @@   * modify, copy, or redistribute it subject to the terms and conditions   * of the GNU General Public License v.2.   */ -  #ifndef __DLM_PLOCK_DOT_H__  #define __DLM_PLOCK_DOT_H__ -#include <linux/types.h> - -#define DLM_PLOCK_MISC_NAME		"dlm_plock" - -#define DLM_PLOCK_VERSION_MAJOR	1 -#define DLM_PLOCK_VERSION_MINOR	2 -#define DLM_PLOCK_VERSION_PATCH	0 - -enum { -	DLM_PLOCK_OP_LOCK = 1, -	DLM_PLOCK_OP_UNLOCK, -	DLM_PLOCK_OP_GET, -}; +#include <uapi/linux/dlm_plock.h> -#define DLM_PLOCK_FL_CLOSE 1 - -struct dlm_plock_info { -	__u32 version[3]; -	__u8 optype; -	__u8 ex; -	__u8 wait; -	__u8 flags; -	__u32 pid; -	__s32 nodeid; -	__s32 rv; -	__u32 fsid; -	__u64 number; -	__u64 start; -	__u64 end; -	__u64 owner; -}; - -#ifdef __KERNEL__  int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,  		int cmd, struct file_lock *fl);  int dlm_posix_unlock(dlm_lockspace_t *lockspace, u64 number, struct file *file,  		struct file_lock *fl);  int dlm_posix_get(dlm_lockspace_t *lockspace, u64 number, struct file *file,  		struct file_lock *fl); -#endif /* __KERNEL__ */ -  #endif - diff --git a/include/linux/dlmconstants.h b/include/linux/dlmconstants.h deleted file mode 100644 index 47bf08dc756..00000000000 --- a/include/linux/dlmconstants.h +++ /dev/null @@ -1,163 +0,0 @@ -/****************************************************************************** -******************************************************************************* -** -**  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved. -**  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved. -** -**  This copyrighted material is made available to anyone wishing to use, -**  modify, copy, or redistribute it subject to the terms and conditions -**  of the GNU General Public License v.2. -** -******************************************************************************* -******************************************************************************/ - -#ifndef __DLMCONSTANTS_DOT_H__ -#define __DLMCONSTANTS_DOT_H__ - -/* - * Constants used by DLM interface. - */ - -#define DLM_LOCKSPACE_LEN       64 -#define DLM_RESNAME_MAXLEN      64 - - -/* - * Lock Modes - */ - -#define DLM_LOCK_IV		(-1)	/* invalid */ -#define DLM_LOCK_NL		0	/* null */ -#define DLM_LOCK_CR		1	/* concurrent read */ -#define DLM_LOCK_CW		2	/* concurrent write */ -#define DLM_LOCK_PR		3	/* protected read */ -#define DLM_LOCK_PW		4	/* protected write */ -#define DLM_LOCK_EX		5	/* exclusive */ - - -/* - * Flags to dlm_lock - * - * DLM_LKF_NOQUEUE - * - * Do not queue the lock request on the wait queue if it cannot be granted - * immediately.  If the lock cannot be granted because of this flag, DLM will - * either return -EAGAIN from the dlm_lock call or will return 0 from - * dlm_lock and -EAGAIN in the lock status block when the AST is executed. - * - * DLM_LKF_CANCEL - * - * Used to cancel a pending lock request or conversion.  A converting lock is - * returned to its previously granted mode. - * - * DLM_LKF_CONVERT - * - * Indicates a lock conversion request.  For conversions the name and namelen - * are ignored and the lock ID in the LKSB is used to identify the lock. - * - * DLM_LKF_VALBLK - * - * Requests DLM to return the current contents of the lock value block in the - * lock status block.  When this flag is set in a lock conversion from PW or EX - * modes, DLM assigns the value specified in the lock status block to the lock - * value block of the lock resource.  The LVB is a DLM_LVB_LEN size array - * containing application-specific information. - * - * DLM_LKF_QUECVT - * - * Force a conversion request to be queued, even if it is compatible with - * the granted modes of other locks on the same resource. - * - * DLM_LKF_IVVALBLK - * - * Invalidate the lock value block. - * - * DLM_LKF_CONVDEADLK - * - * Allows the dlm to resolve conversion deadlocks internally by demoting the - * granted mode of a converting lock to NL.  The DLM_SBF_DEMOTED flag is - * returned for a conversion that's been effected by this. - * - * DLM_LKF_PERSISTENT - * - * Only relevant to locks originating in userspace.  A persistent lock will not - * be removed if the process holding the lock exits. - * - * DLM_LKF_NODLCKWT - * - * Do not cancel the lock if it gets into conversion deadlock. - * Exclude this lock from being monitored due to DLM_LSFL_TIMEWARN. - * - * DLM_LKF_NODLCKBLK - * - * net yet implemented - * - * DLM_LKF_EXPEDITE - * - * Used only with new requests for NL mode locks.  Tells the lock manager - * to grant the lock, ignoring other locks in convert and wait queues. - * - * DLM_LKF_NOQUEUEBAST - * - * Send blocking AST's before returning -EAGAIN to the caller.  It is only - * used along with the NOQUEUE flag.  Blocking AST's are not sent for failed - * NOQUEUE requests otherwise. - * - * DLM_LKF_HEADQUE - * - * Add a lock to the head of the convert or wait queue rather than the tail. - * - * DLM_LKF_NOORDER - * - * Disregard the standard grant order rules and grant a lock as soon as it - * is compatible with other granted locks. - * - * DLM_LKF_ORPHAN - * - * not yet implemented - * - * DLM_LKF_ALTPR - * - * If the requested mode cannot be granted immediately, try to grant the lock - * in PR mode instead.  If this alternate mode is granted instead of the - * requested mode, DLM_SBF_ALTMODE is returned in the lksb. - * - * DLM_LKF_ALTCW - * - * The same as ALTPR, but the alternate mode is CW. - * - * DLM_LKF_FORCEUNLOCK - * - * Unlock the lock even if it is converting or waiting or has sublocks. - * Only really for use by the userland device.c code. - * - */ - -#define DLM_LKF_NOQUEUE		0x00000001 -#define DLM_LKF_CANCEL		0x00000002 -#define DLM_LKF_CONVERT		0x00000004 -#define DLM_LKF_VALBLK		0x00000008 -#define DLM_LKF_QUECVT		0x00000010 -#define DLM_LKF_IVVALBLK	0x00000020 -#define DLM_LKF_CONVDEADLK	0x00000040 -#define DLM_LKF_PERSISTENT	0x00000080 -#define DLM_LKF_NODLCKWT	0x00000100 -#define DLM_LKF_NODLCKBLK	0x00000200 -#define DLM_LKF_EXPEDITE	0x00000400 -#define DLM_LKF_NOQUEUEBAST	0x00000800 -#define DLM_LKF_HEADQUE		0x00001000 -#define DLM_LKF_NOORDER		0x00002000 -#define DLM_LKF_ORPHAN		0x00004000 -#define DLM_LKF_ALTPR		0x00008000 -#define DLM_LKF_ALTCW		0x00010000 -#define DLM_LKF_FORCEUNLOCK	0x00020000 -#define DLM_LKF_TIMEOUT		0x00040000 - -/* - * Some return codes that are not in errno.h - */ - -#define DLM_ECANCEL		0x10001 -#define DLM_EUNLOCK		0x10002 - -#endif  /* __DLMCONSTANTS_DOT_H__ */ diff --git a/include/linux/dm-ioctl.h b/include/linux/dm-ioctl.h deleted file mode 100644 index 91e3a360f61..00000000000 --- a/include/linux/dm-ioctl.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright (C) 2001 - 2003 Sistina Software (UK) Limited. - * Copyright (C) 2004 - 2009 Red Hat, Inc. All rights reserved. - * - * This file is released under the LGPL. - */ - -#ifndef _LINUX_DM_IOCTL_V4_H -#define _LINUX_DM_IOCTL_V4_H - -#include <linux/types.h> - -#define DM_DIR "mapper"		/* Slashes not supported */ -#define DM_CONTROL_NODE "control" -#define DM_MAX_TYPE_NAME 16 -#define DM_NAME_LEN 128 -#define DM_UUID_LEN 129 - -/* - * A traditional ioctl interface for the device mapper. - * - * Each device can have two tables associated with it, an - * 'active' table which is the one currently used by io passing - * through the device, and an 'inactive' one which is a table - * that is being prepared as a replacement for the 'active' one. - * - * DM_VERSION: - * Just get the version information for the ioctl interface. - * - * DM_REMOVE_ALL: - * Remove all dm devices, destroy all tables.  Only really used - * for debug. - * - * DM_LIST_DEVICES: - * Get a list of all the dm device names. - * - * DM_DEV_CREATE: - * Create a new device, neither the 'active' or 'inactive' table - * slots will be filled.  The device will be in suspended state - * after creation, however any io to the device will get errored - * since it will be out-of-bounds. - * - * DM_DEV_REMOVE: - * Remove a device, destroy any tables. - * - * DM_DEV_RENAME: - * Rename a device or set its uuid if none was previously supplied. - * - * DM_SUSPEND: - * This performs both suspend and resume, depending which flag is - * passed in. - * Suspend: This command will not return until all pending io to - * the device has completed.  Further io will be deferred until - * the device is resumed. - * Resume: It is no longer an error to issue this command on an - * unsuspended device.  If a table is present in the 'inactive' - * slot, it will be moved to the active slot, then the old table - * from the active slot will be _destroyed_.  Finally the device - * is resumed. - * - * DM_DEV_STATUS: - * Retrieves the status for the table in the 'active' slot. - * - * DM_DEV_WAIT: - * Wait for a significant event to occur to the device.  This - * could either be caused by an event triggered by one of the - * targets of the table in the 'active' slot, or a table change. - * - * DM_TABLE_LOAD: - * Load a table into the 'inactive' slot for the device.  The - * device does _not_ need to be suspended prior to this command. - * - * DM_TABLE_CLEAR: - * Destroy any table in the 'inactive' slot (ie. abort). - * - * DM_TABLE_DEPS: - * Return a set of device dependencies for the 'active' table. - * - * DM_TABLE_STATUS: - * Return the targets status for the 'active' table. - * - * DM_TARGET_MSG: - * Pass a message string to the target at a specific offset of a device. - * - * DM_DEV_SET_GEOMETRY: - * Set the geometry of a device by passing in a string in this format: - * - * "cylinders heads sectors_per_track start_sector" - * - * Beware that CHS geometry is nearly obsolete and only provided - * for compatibility with dm devices that can be booted by a PC - * BIOS.  See struct hd_geometry for range limits.  Also note that - * the geometry is erased if the device size changes. - */ - -/* - * All ioctl arguments consist of a single chunk of memory, with - * this structure at the start.  If a uuid is specified any - * lookup (eg. for a DM_INFO) will be done on that, *not* the - * name. - */ -struct dm_ioctl { -	/* -	 * The version number is made up of three parts: -	 * major - no backward or forward compatibility, -	 * minor - only backwards compatible, -	 * patch - both backwards and forwards compatible. -	 * -	 * All clients of the ioctl interface should fill in the -	 * version number of the interface that they were -	 * compiled with. -	 * -	 * All recognised ioctl commands (ie. those that don't -	 * return -ENOTTY) fill out this field, even if the -	 * command failed. -	 */ -	__u32 version[3];	/* in/out */ -	__u32 data_size;	/* total size of data passed in -				 * including this struct */ - -	__u32 data_start;	/* offset to start of data -				 * relative to start of this struct */ - -	__u32 target_count;	/* in/out */ -	__s32 open_count;	/* out */ -	__u32 flags;		/* in/out */ - -	/* -	 * event_nr holds either the event number (input and output) or the -	 * udev cookie value (input only). -	 * The DM_DEV_WAIT ioctl takes an event number as input. -	 * The DM_SUSPEND, DM_DEV_REMOVE and DM_DEV_RENAME ioctls -	 * use the field as a cookie to return in the DM_COOKIE -	 * variable with the uevents they issue. -	 * For output, the ioctls return the event number, not the cookie. -	 */ -	__u32 event_nr;      	/* in/out */ -	__u32 padding; - -	__u64 dev;		/* in/out */ - -	char name[DM_NAME_LEN];	/* device name */ -	char uuid[DM_UUID_LEN];	/* unique identifier for -				 * the block device */ -	char data[7];		/* padding or data */ -}; - -/* - * Used to specify tables.  These structures appear after the - * dm_ioctl. - */ -struct dm_target_spec { -	__u64 sector_start; -	__u64 length; -	__s32 status;		/* used when reading from kernel only */ - -	/* -	 * Location of the next dm_target_spec. -	 * - When specifying targets on a DM_TABLE_LOAD command, this value is -	 *   the number of bytes from the start of the "current" dm_target_spec -	 *   to the start of the "next" dm_target_spec. -	 * - When retrieving targets on a DM_TABLE_STATUS command, this value -	 *   is the number of bytes from the start of the first dm_target_spec -	 *   (that follows the dm_ioctl struct) to the start of the "next" -	 *   dm_target_spec. -	 */ -	__u32 next; - -	char target_type[DM_MAX_TYPE_NAME]; - -	/* -	 * Parameter string starts immediately after this object. -	 * Be careful to add padding after string to ensure correct -	 * alignment of subsequent dm_target_spec. -	 */ -}; - -/* - * Used to retrieve the target dependencies. - */ -struct dm_target_deps { -	__u32 count;	/* Array size */ -	__u32 padding;	/* unused */ -	__u64 dev[0];	/* out */ -}; - -/* - * Used to get a list of all dm devices. - */ -struct dm_name_list { -	__u64 dev; -	__u32 next;		/* offset to the next record from -				   the _start_ of this */ -	char name[0]; -}; - -/* - * Used to retrieve the target versions - */ -struct dm_target_versions { -        __u32 next; -        __u32 version[3]; - -        char name[0]; -}; - -/* - * Used to pass message to a target - */ -struct dm_target_msg { -	__u64 sector;	/* Device sector */ - -	char message[0]; -}; - -/* - * If you change this make sure you make the corresponding change - * to dm-ioctl.c:lookup_ioctl() - */ -enum { -	/* Top level cmds */ -	DM_VERSION_CMD = 0, -	DM_REMOVE_ALL_CMD, -	DM_LIST_DEVICES_CMD, - -	/* device level cmds */ -	DM_DEV_CREATE_CMD, -	DM_DEV_REMOVE_CMD, -	DM_DEV_RENAME_CMD, -	DM_DEV_SUSPEND_CMD, -	DM_DEV_STATUS_CMD, -	DM_DEV_WAIT_CMD, - -	/* Table level cmds */ -	DM_TABLE_LOAD_CMD, -	DM_TABLE_CLEAR_CMD, -	DM_TABLE_DEPS_CMD, -	DM_TABLE_STATUS_CMD, - -	/* Added later */ -	DM_LIST_VERSIONS_CMD, -	DM_TARGET_MSG_CMD, -	DM_DEV_SET_GEOMETRY_CMD -}; - -#define DM_IOCTL 0xfd - -#define DM_VERSION       _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl) -#define DM_REMOVE_ALL    _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl) -#define DM_LIST_DEVICES  _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl) - -#define DM_DEV_CREATE    _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl) -#define DM_DEV_REMOVE    _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl) -#define DM_DEV_RENAME    _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl) -#define DM_DEV_SUSPEND   _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl) -#define DM_DEV_STATUS    _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl) -#define DM_DEV_WAIT      _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl) - -#define DM_TABLE_LOAD    _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl) -#define DM_TABLE_CLEAR   _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl) -#define DM_TABLE_DEPS    _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl) -#define DM_TABLE_STATUS  _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl) - -#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl) - -#define DM_TARGET_MSG	 _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl) -#define DM_DEV_SET_GEOMETRY	_IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) - -#define DM_VERSION_MAJOR	4 -#define DM_VERSION_MINOR	23 -#define DM_VERSION_PATCHLEVEL	0 -#define DM_VERSION_EXTRA	"-ioctl (2012-07-25)" - -/* Status bits */ -#define DM_READONLY_FLAG	(1 << 0) /* In/Out */ -#define DM_SUSPEND_FLAG		(1 << 1) /* In/Out */ -#define DM_PERSISTENT_DEV_FLAG	(1 << 3) /* In */ - -/* - * Flag passed into ioctl STATUS command to get table information - * rather than current status. - */ -#define DM_STATUS_TABLE_FLAG	(1 << 4) /* In */ - -/* - * Flags that indicate whether a table is present in either of - * the two table slots that a device has. - */ -#define DM_ACTIVE_PRESENT_FLAG   (1 << 5) /* Out */ -#define DM_INACTIVE_PRESENT_FLAG (1 << 6) /* Out */ - -/* - * Indicates that the buffer passed in wasn't big enough for the - * results. - */ -#define DM_BUFFER_FULL_FLAG	(1 << 8) /* Out */ - -/* - * This flag is now ignored. - */ -#define DM_SKIP_BDGET_FLAG	(1 << 9) /* In */ - -/* - * Set this to avoid attempting to freeze any filesystem when suspending. - */ -#define DM_SKIP_LOCKFS_FLAG	(1 << 10) /* In */ - -/* - * Set this to suspend without flushing queued ios. - * Also disables flushing uncommitted changes in the thin target before - * generating statistics for DM_TABLE_STATUS and DM_DEV_WAIT. - */ -#define DM_NOFLUSH_FLAG		(1 << 11) /* In */ - -/* - * If set, any table information returned will relate to the inactive - * table instead of the live one.  Always check DM_INACTIVE_PRESENT_FLAG - * is set before using the data returned. - */ -#define DM_QUERY_INACTIVE_TABLE_FLAG	(1 << 12) /* In */ - -/* - * If set, a uevent was generated for which the caller may need to wait. - */ -#define DM_UEVENT_GENERATED_FLAG	(1 << 13) /* Out */ - -/* - * If set, rename changes the uuid not the name.  Only permitted - * if no uuid was previously supplied: an existing uuid cannot be changed. - */ -#define DM_UUID_FLAG			(1 << 14) /* In */ - -/* - * If set, all buffers are wiped after use. Use when sending - * or requesting sensitive data such as an encryption key. - */ -#define DM_SECURE_DATA_FLAG		(1 << 15) /* In */ - -#endif				/* _LINUX_DM_IOCTL_H */ diff --git a/include/linux/dm-log-userspace.h b/include/linux/dm-log-userspace.h deleted file mode 100644 index 0678c2adc42..00000000000 --- a/include/linux/dm-log-userspace.h +++ /dev/null @@ -1,416 +0,0 @@ -/* - * Copyright (C) 2006-2009 Red Hat, Inc. - * - * This file is released under the LGPL. - */ - -#ifndef __DM_LOG_USERSPACE_H__ -#define __DM_LOG_USERSPACE_H__ - -#include <linux/dm-ioctl.h> /* For DM_UUID_LEN */ - -/* - * The device-mapper userspace log module consists of a kernel component and - * a user-space component.  The kernel component implements the API defined - * in dm-dirty-log.h.  Its purpose is simply to pass the parameters and - * return values of those API functions between kernel and user-space. - * - * Below are defined the 'request_types' - DM_ULOG_CTR, DM_ULOG_DTR, etc. - * These request types represent the different functions in the device-mapper - * dirty log API.  Each of these is described in more detail below. - * - * The user-space program must listen for requests from the kernel (representing - * the various API functions) and process them. - * - * User-space begins by setting up the communication link (error checking - * removed for clarity): - *	fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR); - *	addr.nl_family = AF_NETLINK; - *	addr.nl_groups = CN_IDX_DM; - *	addr.nl_pid = 0; - *	r = bind(fd, (struct sockaddr *) &addr, sizeof(addr)); - *	opt = addr.nl_groups; - *	setsockopt(fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP, &opt, sizeof(opt)); - * - * User-space will then wait to receive requests form the kernel, which it - * will process as described below.  The requests are received in the form, - * ((struct dm_ulog_request) + (additional data)).  Depending on the request - * type, there may or may not be 'additional data'.  In the descriptions below, - * you will see 'Payload-to-userspace' and 'Payload-to-kernel'.  The - * 'Payload-to-userspace' is what the kernel sends in 'additional data' as - * necessary parameters to complete the request.  The 'Payload-to-kernel' is - * the 'additional data' returned to the kernel that contains the necessary - * results of the request.  The 'data_size' field in the dm_ulog_request - * structure denotes the availability and amount of payload data. - */ - -/* - * DM_ULOG_CTR corresponds to (found in dm-dirty-log.h): - * int (*ctr)(struct dm_dirty_log *log, struct dm_target *ti, - *	      unsigned argc, char **argv); - * - * Payload-to-userspace: - *	A single string containing all the argv arguments separated by ' 's - * Payload-to-kernel: - *	A NUL-terminated string that is the name of the device that is used - *	as the backing store for the log data.  'dm_get_device' will be called - *	on this device.  ('dm_put_device' will be called on this device - *	automatically after calling DM_ULOG_DTR.)  If there is no device needed - *	for log data, 'data_size' in the dm_ulog_request struct should be 0. - * - * The UUID contained in the dm_ulog_request structure is the reference that - * will be used by all request types to a specific log.  The constructor must - * record this association with the instance created. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field, filling the - * data field with the log device if necessary, and setting 'data_size' - * appropriately. - */ -#define DM_ULOG_CTR                    1 - -/* - * DM_ULOG_DTR corresponds to (found in dm-dirty-log.h): - * void (*dtr)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	A single string containing all the argv arguments separated by ' 's - * Payload-to-kernel: - *	None.  ('data_size' in the dm_ulog_request struct should be 0.) - * - * The UUID contained in the dm_ulog_request structure is all that is - * necessary to identify the log instance being destroyed.  There is no - * payload data. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and clearing - * 'data_size' appropriately. - */ -#define DM_ULOG_DTR                    2 - -/* - * DM_ULOG_PRESUSPEND corresponds to (found in dm-dirty-log.h): - * int (*presuspend)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	None. - * - * The UUID contained in the dm_ulog_request structure is all that is - * necessary to identify the log instance being presuspended.  There is no - * payload data. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_PRESUSPEND             3 - -/* - * DM_ULOG_POSTSUSPEND corresponds to (found in dm-dirty-log.h): - * int (*postsuspend)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	None. - * - * The UUID contained in the dm_ulog_request structure is all that is - * necessary to identify the log instance being postsuspended.  There is no - * payload data. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_POSTSUSPEND            4 - -/* - * DM_ULOG_RESUME corresponds to (found in dm-dirty-log.h): - * int (*resume)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	None. - * - * The UUID contained in the dm_ulog_request structure is all that is - * necessary to identify the log instance being resumed.  There is no - * payload data. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_RESUME                 5 - -/* - * DM_ULOG_GET_REGION_SIZE corresponds to (found in dm-dirty-log.h): - * uint32_t (*get_region_size)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	uint64_t - contains the region size - * - * The region size is something that was determined at constructor time. - * It is returned in the payload area and 'data_size' is set to - * reflect this. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field appropriately. - */ -#define DM_ULOG_GET_REGION_SIZE        6 - -/* - * DM_ULOG_IS_CLEAN corresponds to (found in dm-dirty-log.h): - * int (*is_clean)(struct dm_dirty_log *log, region_t region); - * - * Payload-to-userspace: - *	uint64_t - the region to get clean status on - * Payload-to-kernel: - *	int64_t  - 1 if clean, 0 otherwise - * - * Payload is sizeof(uint64_t) and contains the region for which the clean - * status is being made. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - filling the payload with 0 (not clean) or - * 1 (clean), setting 'data_size' and 'error' appropriately. - */ -#define DM_ULOG_IS_CLEAN               7 - -/* - * DM_ULOG_IN_SYNC corresponds to (found in dm-dirty-log.h): - * int (*in_sync)(struct dm_dirty_log *log, region_t region, - *		  int can_block); - * - * Payload-to-userspace: - *	uint64_t - the region to get sync status on - * Payload-to-kernel: - *	int64_t - 1 if in-sync, 0 otherwise - * - * Exactly the same as 'is_clean' above, except this time asking "has the - * region been recovered?" vs. "is the region not being modified?" - */ -#define DM_ULOG_IN_SYNC                8 - -/* - * DM_ULOG_FLUSH corresponds to (found in dm-dirty-log.h): - * int (*flush)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	None. - * - * No incoming or outgoing payload.  Simply flush log state to disk. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and clearing - * 'data_size' appropriately. - */ -#define DM_ULOG_FLUSH                  9 - -/* - * DM_ULOG_MARK_REGION corresponds to (found in dm-dirty-log.h): - * void (*mark_region)(struct dm_dirty_log *log, region_t region); - * - * Payload-to-userspace: - *	uint64_t [] - region(s) to mark - * Payload-to-kernel: - *	None. - * - * Incoming payload contains the one or more regions to mark dirty. - * The number of regions contained in the payload can be determined from - * 'data_size/sizeof(uint64_t)'. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and clearing - * 'data_size' appropriately. - */ -#define DM_ULOG_MARK_REGION           10 - -/* - * DM_ULOG_CLEAR_REGION corresponds to (found in dm-dirty-log.h): - * void (*clear_region)(struct dm_dirty_log *log, region_t region); - * - * Payload-to-userspace: - *	uint64_t [] - region(s) to clear - * Payload-to-kernel: - *	None. - * - * Incoming payload contains the one or more regions to mark clean. - * The number of regions contained in the payload can be determined from - * 'data_size/sizeof(uint64_t)'. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and clearing - * 'data_size' appropriately. - */ -#define DM_ULOG_CLEAR_REGION          11 - -/* - * DM_ULOG_GET_RESYNC_WORK corresponds to (found in dm-dirty-log.h): - * int (*get_resync_work)(struct dm_dirty_log *log, region_t *region); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	{ - *		int64_t i; -- 1 if recovery necessary, 0 otherwise - *		uint64_t r; -- The region to recover if i=1 - *	} - * 'data_size' should be set appropriately. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field appropriately. - */ -#define DM_ULOG_GET_RESYNC_WORK       12 - -/* - * DM_ULOG_SET_REGION_SYNC corresponds to (found in dm-dirty-log.h): - * void (*set_region_sync)(struct dm_dirty_log *log, - *			   region_t region, int in_sync); - * - * Payload-to-userspace: - *	{ - *		uint64_t - region to set sync state on - *		int64_t  - 0 if not-in-sync, 1 if in-sync - *	} - * Payload-to-kernel: - *	None. - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and clearing - * 'data_size' appropriately. - */ -#define DM_ULOG_SET_REGION_SYNC       13 - -/* - * DM_ULOG_GET_SYNC_COUNT corresponds to (found in dm-dirty-log.h): - * region_t (*get_sync_count)(struct dm_dirty_log *log); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	uint64_t - the number of in-sync regions - * - * No incoming payload.  Kernel-bound payload contains the number of - * regions that are in-sync (in a size_t). - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_GET_SYNC_COUNT        14 - -/* - * DM_ULOG_STATUS_INFO corresponds to (found in dm-dirty-log.h): - * int (*status)(struct dm_dirty_log *log, STATUSTYPE_INFO, - *		 char *result, unsigned maxlen); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	Character string containing STATUSTYPE_INFO - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_STATUS_INFO           15 - -/* - * DM_ULOG_STATUS_TABLE corresponds to (found in dm-dirty-log.h): - * int (*status)(struct dm_dirty_log *log, STATUSTYPE_TABLE, - *		 char *result, unsigned maxlen); - * - * Payload-to-userspace: - *	None. - * Payload-to-kernel: - *	Character string containing STATUSTYPE_TABLE - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_STATUS_TABLE          16 - -/* - * DM_ULOG_IS_REMOTE_RECOVERING corresponds to (found in dm-dirty-log.h): - * int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region); - * - * Payload-to-userspace: - *	uint64_t - region to determine recovery status on - * Payload-to-kernel: - *	{ - *		int64_t is_recovering;  -- 0 if no, 1 if yes - *		uint64_t in_sync_hint;  -- lowest region still needing resync - *	} - * - * When the request has been processed, user-space must return the - * dm_ulog_request to the kernel - setting the 'error' field and - * 'data_size' appropriately. - */ -#define DM_ULOG_IS_REMOTE_RECOVERING  17 - -/* - * (DM_ULOG_REQUEST_MASK & request_type) to get the request type - * - * Payload-to-userspace: - *	A single string containing all the argv arguments separated by ' 's - * Payload-to-kernel: - *	None.  ('data_size' in the dm_ulog_request struct should be 0.) - * - * We are reserving 8 bits of the 32-bit 'request_type' field for the - * various request types above.  The remaining 24-bits are currently - * set to zero and are reserved for future use and compatibility concerns. - * - * User-space should always use DM_ULOG_REQUEST_TYPE to acquire the - * request type from the 'request_type' field to maintain forward compatibility. - */ -#define DM_ULOG_REQUEST_MASK 0xFF -#define DM_ULOG_REQUEST_TYPE(request_type) \ -	(DM_ULOG_REQUEST_MASK & (request_type)) - -/* - * DM_ULOG_REQUEST_VERSION is incremented when there is a - * change to the way information is passed between kernel - * and userspace.  This could be a structure change of - * dm_ulog_request or a change in the way requests are - * issued/handled.  Changes are outlined here: - *	version 1:  Initial implementation - *	version 2:  DM_ULOG_CTR allowed to return a string containing a - *	            device name that is to be registered with DM via - *	            'dm_get_device'. - */ -#define DM_ULOG_REQUEST_VERSION 2 - -struct dm_ulog_request { -	/* -	 * The local unique identifier (luid) and the universally unique -	 * identifier (uuid) are used to tie a request to a specific -	 * mirror log.  A single machine log could probably make due with -	 * just the 'luid', but a cluster-aware log must use the 'uuid' and -	 * the 'luid'.  The uuid is what is required for node to node -	 * communication concerning a particular log, but the 'luid' helps -	 * differentiate between logs that are being swapped and have the -	 * same 'uuid'.  (Think "live" and "inactive" device-mapper tables.) -	 */ -	uint64_t luid; -	char uuid[DM_UUID_LEN]; -	char padding[3];        /* Padding because DM_UUID_LEN = 129 */ - -	uint32_t version;       /* See DM_ULOG_REQUEST_VERSION */ -	int32_t error;          /* Used to report back processing errors */ - -	uint32_t seq;           /* Sequence number for request */ -	uint32_t request_type;  /* DM_ULOG_* defined above */ -	uint32_t data_size;     /* How much data (not including this struct) */ - -	char data[0]; -}; - -#endif /* __DM_LOG_USERSPACE_H__ */ diff --git a/include/linux/dn.h b/include/linux/dn.h deleted file mode 100644 index 9c50445462d..00000000000 --- a/include/linux/dn.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef _LINUX_DN_H -#define _LINUX_DN_H - -#include <linux/types.h> - -/* - -	DECnet Data Structures and Constants - -*/ - -/*  - * DNPROTO_NSP can't be the same as SOL_SOCKET,  - * so increment each by one (compared to ULTRIX) - */ -#define DNPROTO_NSP     2                       /* NSP protocol number       */ -#define DNPROTO_ROU     3                       /* Routing protocol number   */ -#define DNPROTO_NML     4                       /* Net mgt protocol number   */ -#define DNPROTO_EVL     5                       /* Evl protocol number (usr) */ -#define DNPROTO_EVR     6                       /* Evl protocol number (evl) */ -#define DNPROTO_NSPT    7                       /* NSP trace protocol number */ - - -#define DN_ADDL		2 -#define DN_MAXADDL	2 /* ULTRIX headers have 20 here, but pathworks has 2 */ -#define DN_MAXOPTL	16 -#define DN_MAXOBJL	16 -#define DN_MAXACCL	40 -#define DN_MAXALIASL	128 -#define DN_MAXNODEL	256 -#define DNBUFSIZE	65023 - -/*  - * SET/GET Socket options  - must match the DSO_ numbers below - */ -#define SO_CONDATA      1 -#define SO_CONACCESS    2 -#define SO_PROXYUSR     3 -#define SO_LINKINFO     7 - -#define DSO_CONDATA     1        /* Set/Get connect data                */ -#define DSO_DISDATA     10       /* Set/Get disconnect data             */ -#define DSO_CONACCESS   2        /* Set/Get connect access data         */ -#define DSO_ACCEPTMODE  4        /* Set/Get accept mode                 */ -#define DSO_CONACCEPT   5        /* Accept deferred connection          */ -#define DSO_CONREJECT   6        /* Reject deferred connection          */ -#define DSO_LINKINFO    7        /* Set/Get link information            */ -#define DSO_STREAM      8        /* Set socket type to stream           */ -#define DSO_SEQPACKET   9        /* Set socket type to sequenced packet */ -#define DSO_MAXWINDOW   11       /* Maximum window size allowed         */ -#define DSO_NODELAY	12       /* Turn off nagle                      */ -#define DSO_CORK        13       /* Wait for more data!                 */ -#define DSO_SERVICES	14       /* NSP Services field                  */ -#define DSO_INFO	15       /* NSP Info field                      */ -#define DSO_MAX         15       /* Maximum option number               */ - - -/* LINK States */ -#define LL_INACTIVE	0 -#define LL_CONNECTING	1 -#define LL_RUNNING	2 -#define LL_DISCONNECTING 3 - -#define ACC_IMMED 0 -#define ACC_DEFER 1 - -#define SDF_WILD        1                  /* Wild card object          */ -#define SDF_PROXY       2                  /* Addr eligible for proxy   */ -#define SDF_UICPROXY    4                  /* Use uic-based proxy       */ - -/* Structures */ - - -struct dn_naddr { -	__le16		a_len; -	__u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */ -}; - -struct sockaddr_dn { -	__u16		sdn_family; -	__u8		sdn_flags; -	__u8		sdn_objnum; -	__le16		sdn_objnamel; -	__u8		sdn_objname[DN_MAXOBJL]; -	struct   dn_naddr	sdn_add; -}; -#define sdn_nodeaddrl   sdn_add.a_len   /* Node address length  */ -#define sdn_nodeaddr    sdn_add.a_addr  /* Node address         */ - - - -/* - * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure - */ -struct optdata_dn { -        __le16  opt_status;     /* Extended status return */ -#define opt_sts opt_status -        __le16  opt_optl;       /* Length of user data    */ -        __u8   opt_data[16];   /* User data              */ -}; - -struct accessdata_dn { -	__u8		acc_accl; -	__u8		acc_acc[DN_MAXACCL]; -	__u8 		acc_passl; -	__u8		acc_pass[DN_MAXACCL]; -	__u8 		acc_userl; -	__u8		acc_user[DN_MAXACCL]; -}; - -/* - * DECnet logical link information structure - */ -struct linkinfo_dn { -        __u16  idn_segsize;    /* Segment size for link */ -        __u8   idn_linkstate;  /* Logical link state    */ -}; - -/* - * Ethernet address format (for DECnet) - */ -union etheraddress { -        __u8 dne_addr[6];             /* Full ethernet address */ -  struct { -                __u8 dne_hiord[4];    /* DECnet HIORD prefix   */ -                __u8 dne_nodeaddr[2]; /* DECnet node address   */ -  } dne_remote; -}; - - -/* - * DECnet physical socket address format - */ -struct dn_addr { -        __le16 dna_family;      /* AF_DECnet               */ -        union etheraddress dna_netaddr; /* DECnet ethernet address */ -}; - -#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */ - -#define SIOCSNETADDR  _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr) -#define SIOCGNETADDR  _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr) -#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int) -#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int) - -#endif /* _LINUX_DN_H */ diff --git a/include/linux/dqblk_xfs.h b/include/linux/dqblk_xfs.h deleted file mode 100644 index 86552807aed..00000000000 --- a/include/linux/dqblk_xfs.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (c) 1995-2001,2004 Silicon Graphics, Inc.  All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesset General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - */ -#ifndef _LINUX_DQBLK_XFS_H -#define _LINUX_DQBLK_XFS_H - -#include <linux/types.h> - -/* - * Disk quota - quotactl(2) commands for the XFS Quota Manager (XQM). - */ - -#define XQM_CMD(x)	(('X'<<8)+(x))	/* note: forms first QCMD argument */ -#define XQM_COMMAND(x)	(((x) & (0xff<<8)) == ('X'<<8))	/* test if for XFS */ - -#define XQM_USRQUOTA	0	/* system call user quota type */ -#define XQM_GRPQUOTA	1	/* system call group quota type */ -#define XQM_PRJQUOTA	2	/* system call project quota type */ -#define XQM_MAXQUOTAS	3 - -#define Q_XQUOTAON	XQM_CMD(1)	/* enable accounting/enforcement */ -#define Q_XQUOTAOFF	XQM_CMD(2)	/* disable accounting/enforcement */ -#define Q_XGETQUOTA	XQM_CMD(3)	/* get disk limits and usage */ -#define Q_XSETQLIM	XQM_CMD(4)	/* set disk limits */ -#define Q_XGETQSTAT	XQM_CMD(5)	/* get quota subsystem status */ -#define Q_XQUOTARM	XQM_CMD(6)	/* free disk space used by dquots */ -#define Q_XQUOTASYNC	XQM_CMD(7)	/* delalloc flush, updates dquots */ - -/* - * fs_disk_quota structure: - * - * This contains the current quota information regarding a user/proj/group. - * It is 64-bit aligned, and all the blk units are in BBs (Basic Blocks) of - * 512 bytes. - */ -#define FS_DQUOT_VERSION	1	/* fs_disk_quota.d_version */ -typedef struct fs_disk_quota { -	__s8		d_version;	/* version of this structure */ -	__s8		d_flags;	/* FS_{USER,PROJ,GROUP}_QUOTA */ -	__u16		d_fieldmask;	/* field specifier */ -	__u32		d_id;		/* user, project, or group ID */ -	__u64		d_blk_hardlimit;/* absolute limit on disk blks */ -	__u64		d_blk_softlimit;/* preferred limit on disk blks */ -	__u64		d_ino_hardlimit;/* maximum # allocated inodes */ -	__u64		d_ino_softlimit;/* preferred inode limit */ -	__u64		d_bcount;	/* # disk blocks owned by the user */ -	__u64		d_icount;	/* # inodes owned by the user */ -	__s32		d_itimer;	/* zero if within inode limits */ -					/* if not, we refuse service */ -	__s32		d_btimer;	/* similar to above; for disk blocks */ -	__u16	  	d_iwarns;       /* # warnings issued wrt num inodes */ -	__u16	  	d_bwarns;       /* # warnings issued wrt disk blocks */ -	__s32		d_padding2;	/* padding2 - for future use */ -	__u64		d_rtb_hardlimit;/* absolute limit on realtime blks */ -	__u64		d_rtb_softlimit;/* preferred limit on RT disk blks */ -	__u64		d_rtbcount;	/* # realtime blocks owned */ -	__s32		d_rtbtimer;	/* similar to above; for RT disk blks */ -	__u16	  	d_rtbwarns;     /* # warnings issued wrt RT disk blks */ -	__s16		d_padding3;	/* padding3 - for future use */	 -	char		d_padding4[8];	/* yet more padding */ -} fs_disk_quota_t; - -/* - * These fields are sent to Q_XSETQLIM to specify fields that need to change. - */ -#define FS_DQ_ISOFT	(1<<0) -#define FS_DQ_IHARD	(1<<1) -#define FS_DQ_BSOFT	(1<<2) -#define FS_DQ_BHARD 	(1<<3) -#define FS_DQ_RTBSOFT	(1<<4) -#define FS_DQ_RTBHARD	(1<<5) -#define FS_DQ_LIMIT_MASK	(FS_DQ_ISOFT | FS_DQ_IHARD | FS_DQ_BSOFT | \ -				 FS_DQ_BHARD | FS_DQ_RTBSOFT | FS_DQ_RTBHARD) -/* - * These timers can only be set in super user's dquot. For others, timers are - * automatically started and stopped. Superusers timer values set the limits - * for the rest.  In case these values are zero, the DQ_{F,B}TIMELIMIT values - * defined below are used.  - * These values also apply only to the d_fieldmask field for Q_XSETQLIM. - */ -#define FS_DQ_BTIMER	(1<<6) -#define FS_DQ_ITIMER	(1<<7) -#define FS_DQ_RTBTIMER 	(1<<8) -#define FS_DQ_TIMER_MASK	(FS_DQ_BTIMER | FS_DQ_ITIMER | FS_DQ_RTBTIMER) - -/* - * Warning counts are set in both super user's dquot and others. For others, - * warnings are set/cleared by the administrators (or automatically by going - * below the soft limit).  Superusers warning values set the warning limits - * for the rest.  In case these values are zero, the DQ_{F,B}WARNLIMIT values - * defined below are used.  - * These values also apply only to the d_fieldmask field for Q_XSETQLIM. - */ -#define FS_DQ_BWARNS	(1<<9) -#define FS_DQ_IWARNS	(1<<10) -#define FS_DQ_RTBWARNS	(1<<11) -#define FS_DQ_WARNS_MASK	(FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS) - -/* - * Accounting values.  These can only be set for filesystem with - * non-transactional quotas that require quotacheck(8) in userspace. - */ -#define FS_DQ_BCOUNT		(1<<12) -#define FS_DQ_ICOUNT		(1<<13) -#define FS_DQ_RTBCOUNT		(1<<14) -#define FS_DQ_ACCT_MASK		(FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT) - -/* - * Various flags related to quotactl(2). - */ -#define FS_QUOTA_UDQ_ACCT	(1<<0)  /* user quota accounting */ -#define FS_QUOTA_UDQ_ENFD	(1<<1)  /* user quota limits enforcement */ -#define FS_QUOTA_GDQ_ACCT	(1<<2)  /* group quota accounting */ -#define FS_QUOTA_GDQ_ENFD	(1<<3)  /* group quota limits enforcement */ -#define FS_QUOTA_PDQ_ACCT	(1<<4)  /* project quota accounting */ -#define FS_QUOTA_PDQ_ENFD	(1<<5)  /* project quota limits enforcement */ - -#define FS_USER_QUOTA		(1<<0)	/* user quota type */ -#define FS_PROJ_QUOTA		(1<<1)	/* project quota type */ -#define FS_GROUP_QUOTA		(1<<2)	/* group quota type */ - -/* - * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system. - * Provides a centralized way to get meta information about the quota subsystem. - * eg. space taken up for user and group quotas, number of dquots currently - * incore. - */ -#define FS_QSTAT_VERSION	1	/* fs_quota_stat.qs_version */ - -/* - * Some basic information about 'quota files'. - */ -typedef struct fs_qfilestat { -	__u64		qfs_ino;	/* inode number */ -	__u64		qfs_nblks;	/* number of BBs 512-byte-blks */ -	__u32		qfs_nextents;	/* number of extents */ -} fs_qfilestat_t; - -typedef struct fs_quota_stat { -	__s8		qs_version;	/* version number for future changes */ -	__u16		qs_flags;	/* FS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */ -	__s8		qs_pad;		/* unused */ -	fs_qfilestat_t	qs_uquota;	/* user quota storage information */ -	fs_qfilestat_t	qs_gquota;	/* group quota storage information */ -	__u32		qs_incoredqs;	/* number of dquots incore */ -	__s32		qs_btimelimit;  /* limit for blks timer */	 -	__s32		qs_itimelimit;  /* limit for inodes timer */	 -	__s32		qs_rtbtimelimit;/* limit for rt blks timer */	 -	__u16		qs_bwarnlimit;	/* limit for num warnings */ -	__u16		qs_iwarnlimit;	/* limit for num warnings */ -} fs_quota_stat_t; - -#endif	/* _LINUX_DQBLK_XFS_H */ diff --git a/include/linux/edd.h b/include/linux/edd.h index 4cbd0fe9df0..83d4371ec99 100644 --- a/include/linux/edd.h +++ b/include/linux/edd.h @@ -30,165 +30,9 @@  #ifndef _LINUX_EDD_H  #define _LINUX_EDD_H -#include <linux/types.h> - -#define EDDNR 0x1e9		/* addr of number of edd_info structs at EDDBUF -				   in boot_params - treat this as 1 byte  */ -#define EDDBUF	0xd00		/* addr of edd_info structs in boot_params */ -#define EDDMAXNR 6		/* number of edd_info structs starting at EDDBUF  */ -#define EDDEXTSIZE 8		/* change these if you muck with the structures */ -#define EDDPARMSIZE 74 -#define CHECKEXTENSIONSPRESENT 0x41 -#define GETDEVICEPARAMETERS 0x48 -#define LEGACYGETDEVICEPARAMETERS 0x08 -#define EDDMAGIC1 0x55AA -#define EDDMAGIC2 0xAA55 - - -#define READ_SECTORS 0x02         /* int13 AH=0x02 is READ_SECTORS command */ -#define EDD_MBR_SIG_OFFSET 0x1B8  /* offset of signature in the MBR */ -#define EDD_MBR_SIG_BUF    0x290  /* addr in boot params */ -#define EDD_MBR_SIG_MAX 16        /* max number of signatures to store */ -#define EDD_MBR_SIG_NR_BUF 0x1ea  /* addr of number of MBR signtaures at EDD_MBR_SIG_BUF -				     in boot_params - treat this as 1 byte  */ +#include <uapi/linux/edd.h>  #ifndef __ASSEMBLY__ - -#define EDD_EXT_FIXED_DISK_ACCESS           (1 << 0) -#define EDD_EXT_DEVICE_LOCKING_AND_EJECTING (1 << 1) -#define EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT (1 << 2) -#define EDD_EXT_64BIT_EXTENSIONS            (1 << 3) - -#define EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT (1 << 0) -#define EDD_INFO_GEOMETRY_VALID                (1 << 1) -#define EDD_INFO_REMOVABLE                     (1 << 2) -#define EDD_INFO_WRITE_VERIFY                  (1 << 3) -#define EDD_INFO_MEDIA_CHANGE_NOTIFICATION     (1 << 4) -#define EDD_INFO_LOCKABLE                      (1 << 5) -#define EDD_INFO_NO_MEDIA_PRESENT              (1 << 6) -#define EDD_INFO_USE_INT13_FN50                (1 << 7) - -struct edd_device_params { -	__u16 length; -	__u16 info_flags; -	__u32 num_default_cylinders; -	__u32 num_default_heads; -	__u32 sectors_per_track; -	__u64 number_of_sectors; -	__u16 bytes_per_sector; -	__u32 dpte_ptr;		/* 0xFFFFFFFF for our purposes */ -	__u16 key;		/* = 0xBEDD */ -	__u8 device_path_info_length;	/* = 44 */ -	__u8 reserved2; -	__u16 reserved3; -	__u8 host_bus_type[4]; -	__u8 interface_type[8]; -	union { -		struct { -			__u16 base_address; -			__u16 reserved1; -			__u32 reserved2; -		} __attribute__ ((packed)) isa; -		struct { -			__u8 bus; -			__u8 slot; -			__u8 function; -			__u8 channel; -			__u32 reserved; -		} __attribute__ ((packed)) pci; -		/* pcix is same as pci */ -		struct { -			__u64 reserved; -		} __attribute__ ((packed)) ibnd; -		struct { -			__u64 reserved; -		} __attribute__ ((packed)) xprs; -		struct { -			__u64 reserved; -		} __attribute__ ((packed)) htpt; -		struct { -			__u64 reserved; -		} __attribute__ ((packed)) unknown; -	} interface_path; -	union { -		struct { -			__u8 device; -			__u8 reserved1; -			__u16 reserved2; -			__u32 reserved3; -			__u64 reserved4; -		} __attribute__ ((packed)) ata; -		struct { -			__u8 device; -			__u8 lun; -			__u8 reserved1; -			__u8 reserved2; -			__u32 reserved3; -			__u64 reserved4; -		} __attribute__ ((packed)) atapi; -		struct { -			__u16 id; -			__u64 lun; -			__u16 reserved1; -			__u32 reserved2; -		} __attribute__ ((packed)) scsi; -		struct { -			__u64 serial_number; -			__u64 reserved; -		} __attribute__ ((packed)) usb; -		struct { -			__u64 eui; -			__u64 reserved; -		} __attribute__ ((packed)) i1394; -		struct { -			__u64 wwid; -			__u64 lun; -		} __attribute__ ((packed)) fibre; -		struct { -			__u64 identity_tag; -			__u64 reserved; -		} __attribute__ ((packed)) i2o; -		struct { -			__u32 array_number; -			__u32 reserved1; -			__u64 reserved2; -		} __attribute__ ((packed)) raid; -		struct { -			__u8 device; -			__u8 reserved1; -			__u16 reserved2; -			__u32 reserved3; -			__u64 reserved4; -		} __attribute__ ((packed)) sata; -		struct { -			__u64 reserved1; -			__u64 reserved2; -		} __attribute__ ((packed)) unknown; -	} device_path; -	__u8 reserved4; -	__u8 checksum; -} __attribute__ ((packed)); - -struct edd_info { -	__u8 device; -	__u8 version; -	__u16 interface_support; -	__u16 legacy_max_cylinder; -	__u8 legacy_max_head; -	__u8 legacy_sectors_per_track; -	struct edd_device_params params; -} __attribute__ ((packed)); - -struct edd { -	unsigned int mbr_signature[EDD_MBR_SIG_MAX]; -	struct edd_info edd_info[EDDMAXNR]; -	unsigned char mbr_signature_nr; -	unsigned char edd_info_nr; -}; - -#ifdef __KERNEL__  extern struct edd edd; -#endif /* __KERNEL__ */  #endif				/*!__ASSEMBLY__ */ -  #endif				/* _LINUX_EDD_H */ diff --git a/include/linux/efs_fs_sb.h b/include/linux/efs_fs_sb.h deleted file mode 100644 index a01be90c58c..00000000000 --- a/include/linux/efs_fs_sb.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * efs_fs_sb.h - * - * Copyright (c) 1999 Al Smith - * - * Portions derived from IRIX header files (c) 1988 Silicon Graphics - */ - -#ifndef __EFS_FS_SB_H__ -#define __EFS_FS_SB_H__ - -#include <linux/types.h> -#include <linux/magic.h> - -/* EFS superblock magic numbers */ -#define EFS_MAGIC	0x072959 -#define EFS_NEWMAGIC	0x07295a - -#define IS_EFS_MAGIC(x)	((x == EFS_MAGIC) || (x == EFS_NEWMAGIC)) - -#define EFS_SUPER		1 -#define EFS_ROOTINODE		2 - -/* efs superblock on disk */ -struct efs_super { -	__be32		fs_size;        /* size of filesystem, in sectors */ -	__be32		fs_firstcg;     /* bb offset to first cg */ -	__be32		fs_cgfsize;     /* size of cylinder group in bb's */ -	__be16		fs_cgisize;     /* bb's of inodes per cylinder group */ -	__be16		fs_sectors;     /* sectors per track */ -	__be16		fs_heads;       /* heads per cylinder */ -	__be16		fs_ncg;         /* # of cylinder groups in filesystem */ -	__be16		fs_dirty;       /* fs needs to be fsck'd */ -	__be32		fs_time;        /* last super-block update */ -	__be32		fs_magic;       /* magic number */ -	char		fs_fname[6];    /* file system name */ -	char		fs_fpack[6];    /* file system pack name */ -	__be32		fs_bmsize;      /* size of bitmap in bytes */ -	__be32		fs_tfree;       /* total free data blocks */ -	__be32		fs_tinode;      /* total free inodes */ -	__be32		fs_bmblock;     /* bitmap location. */ -	__be32		fs_replsb;      /* Location of replicated superblock. */ -	__be32		fs_lastialloc;  /* last allocated inode */ -	char		fs_spare[20];   /* space for expansion - MUST BE ZERO */ -	__be32		fs_checksum;    /* checksum of volume portion of fs */ -}; - -/* efs superblock information in memory */ -struct efs_sb_info { -	__u32	fs_magic;	/* superblock magic number */ -	__u32	fs_start;	/* first block of filesystem */ -	__u32	first_block;	/* first data block in filesystem */ -	__u32	total_blocks;	/* total number of blocks in filesystem */ -	__u32	group_size;	/* # of blocks a group consists of */  -	__u32	data_free;	/* # of free data blocks */ -	__u32	inode_free;	/* # of free inodes */ -	__u16	inode_blocks;	/* # of blocks used for inodes in every grp */ -	__u16	total_groups;	/* # of groups */ -}; - -#endif /* __EFS_FS_SB_H__ */ - diff --git a/include/linux/elf-em.h b/include/linux/elf-em.h deleted file mode 100644 index 8e2b7bac437..00000000000 --- a/include/linux/elf-em.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef _LINUX_ELF_EM_H -#define _LINUX_ELF_EM_H - -/* These constants define the various ELF target machines */ -#define EM_NONE		0 -#define EM_M32		1 -#define EM_SPARC	2 -#define EM_386		3 -#define EM_68K		4 -#define EM_88K		5 -#define EM_486		6	/* Perhaps disused */ -#define EM_860		7 -#define EM_MIPS		8	/* MIPS R3000 (officially, big-endian only) */ -				/* Next two are historical and binaries and -				   modules of these types will be rejected by -				   Linux.  */ -#define EM_MIPS_RS3_LE	10	/* MIPS R3000 little-endian */ -#define EM_MIPS_RS4_BE	10	/* MIPS R4000 big-endian */ - -#define EM_PARISC	15	/* HPPA */ -#define EM_SPARC32PLUS	18	/* Sun's "v8plus" */ -#define EM_PPC		20	/* PowerPC */ -#define EM_PPC64	21	 /* PowerPC64 */ -#define EM_SPU		23	/* Cell BE SPU */ -#define EM_SH		42	/* SuperH */ -#define EM_SPARCV9	43	/* SPARC v9 64-bit */ -#define EM_IA_64	50	/* HP/Intel IA-64 */ -#define EM_X86_64	62	/* AMD x86-64 */ -#define EM_S390		22	/* IBM S/390 */ -#define EM_CRIS		76	/* Axis Communications 32-bit embedded processor */ -#define EM_V850		87	/* NEC v850 */ -#define EM_M32R		88	/* Renesas M32R */ -#define EM_H8_300	46	/* Renesas H8/300,300H,H8S */ -#define EM_MN10300	89	/* Panasonic/MEI MN10300, AM33 */ -#define EM_BLACKFIN     106     /* ADI Blackfin Processor */ -#define EM_TI_C6000	140	/* TI C6X DSPs */ -#define EM_FRV		0x5441	/* Fujitsu FR-V */ -#define EM_AVR32	0x18ad	/* Atmel AVR32 */ - -/* - * This is an interim value that we will use until the committee comes - * up with a final number. - */ -#define EM_ALPHA	0x9026 - -/* Bogus old v850 magic number, used by old tools. */ -#define EM_CYGNUS_V850	0x9080 -/* Bogus old m32r magic number, used by old tools. */ -#define EM_CYGNUS_M32R	0x9041 -/* This is the old interim value for S/390 architecture */ -#define EM_S390_OLD	0xA390 -/* Also Panasonic/MEI MN10300, AM33 */ -#define EM_CYGNUS_MN10300 0xbeef - - -#endif /* _LINUX_ELF_EM_H */ diff --git a/include/linux/elf-fdpic.h b/include/linux/elf-fdpic.h deleted file mode 100644 index 7cd2e80cebc..00000000000 --- a/include/linux/elf-fdpic.h +++ /dev/null @@ -1,70 +0,0 @@ -/* elf-fdpic.h: FDPIC ELF load map - * - * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. - * Written by David Howells (dhowells@redhat.com) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - */ - -#ifndef _LINUX_ELF_FDPIC_H -#define _LINUX_ELF_FDPIC_H - -#include <linux/elf.h> - -#define PT_GNU_STACK    (PT_LOOS + 0x474e551) - -/* segment mappings for ELF FDPIC libraries/executables/interpreters */ -struct elf32_fdpic_loadseg { -	Elf32_Addr	addr;		/* core address to which mapped */ -	Elf32_Addr	p_vaddr;	/* VMA recorded in file */ -	Elf32_Word	p_memsz;	/* allocation size recorded in file */ -}; - -struct elf32_fdpic_loadmap { -	Elf32_Half	version;	/* version of these structures, just in case... */ -	Elf32_Half	nsegs;		/* number of segments */ -	struct elf32_fdpic_loadseg segs[]; -}; - -#define ELF32_FDPIC_LOADMAP_VERSION	0x0000 - -/* - * binfmt binary parameters structure - */ -struct elf_fdpic_params { -	struct elfhdr			hdr;		/* ref copy of ELF header */ -	struct elf_phdr			*phdrs;		/* ref copy of PT_PHDR table */ -	struct elf32_fdpic_loadmap	*loadmap;	/* loadmap to be passed to userspace */ -	unsigned long			elfhdr_addr;	/* mapped ELF header user address */ -	unsigned long			ph_addr;	/* mapped PT_PHDR user address */ -	unsigned long			map_addr;	/* mapped loadmap user address */ -	unsigned long			entry_addr;	/* mapped entry user address */ -	unsigned long			stack_size;	/* stack size requested (PT_GNU_STACK) */ -	unsigned long			dynamic_addr;	/* mapped PT_DYNAMIC user address */ -	unsigned long			load_addr;	/* user address at which to map binary */ -	unsigned long			flags; -#define ELF_FDPIC_FLAG_ARRANGEMENT	0x0000000f	/* PT_LOAD arrangement flags */ -#define ELF_FDPIC_FLAG_INDEPENDENT	0x00000000	/* PT_LOADs can be put anywhere */ -#define ELF_FDPIC_FLAG_HONOURVADDR	0x00000001	/* PT_LOAD.vaddr must be honoured */ -#define ELF_FDPIC_FLAG_CONSTDISP	0x00000002	/* PT_LOADs require constant -							 * displacement */ -#define ELF_FDPIC_FLAG_CONTIGUOUS	0x00000003	/* PT_LOADs should be contiguous */ -#define ELF_FDPIC_FLAG_EXEC_STACK	0x00000010	/* T if stack to be executable */ -#define ELF_FDPIC_FLAG_NOEXEC_STACK	0x00000020	/* T if stack not to be executable */ -#define ELF_FDPIC_FLAG_EXECUTABLE	0x00000040	/* T if this object is the executable */ -#define ELF_FDPIC_FLAG_PRESENT		0x80000000	/* T if this object is present */ -}; - -#ifdef __KERNEL__ -#ifdef CONFIG_MMU -extern void elf_fdpic_arch_lay_out_mm(struct elf_fdpic_params *exec_params, -				      struct elf_fdpic_params *interp_params, -				      unsigned long *start_stack, -				      unsigned long *start_brk); -#endif -#endif /* __KERNEL__ */ - -#endif /* _LINUX_ELF_FDPIC_H */ diff --git a/include/linux/elf.h b/include/linux/elf.h index 59ef40650e1..8c9048e3346 100644 --- a/include/linux/elf.h +++ b/include/linux/elf.h @@ -1,420 +1,9 @@  #ifndef _LINUX_ELF_H  #define _LINUX_ELF_H -#include <linux/types.h> -#include <linux/elf-em.h> -#ifdef __KERNEL__  #include <asm/elf.h> -#endif - -/* 32-bit ELF base types. */ -typedef __u32	Elf32_Addr; -typedef __u16	Elf32_Half; -typedef __u32	Elf32_Off; -typedef __s32	Elf32_Sword; -typedef __u32	Elf32_Word; - -/* 64-bit ELF base types. */ -typedef __u64	Elf64_Addr; -typedef __u16	Elf64_Half; -typedef __s16	Elf64_SHalf; -typedef __u64	Elf64_Off; -typedef __s32	Elf64_Sword; -typedef __u32	Elf64_Word; -typedef __u64	Elf64_Xword; -typedef __s64	Elf64_Sxword; - -/* These constants are for the segment types stored in the image headers */ -#define PT_NULL    0 -#define PT_LOAD    1 -#define PT_DYNAMIC 2 -#define PT_INTERP  3 -#define PT_NOTE    4 -#define PT_SHLIB   5 -#define PT_PHDR    6 -#define PT_TLS     7               /* Thread local storage segment */ -#define PT_LOOS    0x60000000      /* OS-specific */ -#define PT_HIOS    0x6fffffff      /* OS-specific */ -#define PT_LOPROC  0x70000000 -#define PT_HIPROC  0x7fffffff -#define PT_GNU_EH_FRAME		0x6474e550 - -#define PT_GNU_STACK	(PT_LOOS + 0x474e551) - -/* - * Extended Numbering - * - * If the real number of program header table entries is larger than - * or equal to PN_XNUM(0xffff), it is set to sh_info field of the - * section header at index 0, and PN_XNUM is set to e_phnum - * field. Otherwise, the section header at index 0 is zero - * initialized, if it exists. - * - * Specifications are available in: - * - * - Sun microsystems: Linker and Libraries. - *   Part No: 817-1984-17, September 2008. - *   URL: http://docs.sun.com/app/docs/doc/817-1984 - * - * - System V ABI AMD64 Architecture Processor Supplement - *   Draft Version 0.99., - *   May 11, 2009. - *   URL: http://www.x86-64.org/ - */ -#define PN_XNUM 0xffff - -/* These constants define the different elf file types */ -#define ET_NONE   0 -#define ET_REL    1 -#define ET_EXEC   2 -#define ET_DYN    3 -#define ET_CORE   4 -#define ET_LOPROC 0xff00 -#define ET_HIPROC 0xffff - -/* This is the info that is needed to parse the dynamic section of the file */ -#define DT_NULL		0 -#define DT_NEEDED	1 -#define DT_PLTRELSZ	2 -#define DT_PLTGOT	3 -#define DT_HASH		4 -#define DT_STRTAB	5 -#define DT_SYMTAB	6 -#define DT_RELA		7 -#define DT_RELASZ	8 -#define DT_RELAENT	9 -#define DT_STRSZ	10 -#define DT_SYMENT	11 -#define DT_INIT		12 -#define DT_FINI		13 -#define DT_SONAME	14 -#define DT_RPATH 	15 -#define DT_SYMBOLIC	16 -#define DT_REL	        17 -#define DT_RELSZ	18 -#define DT_RELENT	19 -#define DT_PLTREL	20 -#define DT_DEBUG	21 -#define DT_TEXTREL	22 -#define DT_JMPREL	23 -#define DT_ENCODING	32 -#define OLD_DT_LOOS	0x60000000 -#define DT_LOOS		0x6000000d -#define DT_HIOS		0x6ffff000 -#define DT_VALRNGLO	0x6ffffd00 -#define DT_VALRNGHI	0x6ffffdff -#define DT_ADDRRNGLO	0x6ffffe00 -#define DT_ADDRRNGHI	0x6ffffeff -#define DT_VERSYM	0x6ffffff0 -#define DT_RELACOUNT	0x6ffffff9 -#define DT_RELCOUNT	0x6ffffffa -#define DT_FLAGS_1	0x6ffffffb -#define DT_VERDEF	0x6ffffffc -#define	DT_VERDEFNUM	0x6ffffffd -#define DT_VERNEED	0x6ffffffe -#define	DT_VERNEEDNUM	0x6fffffff -#define OLD_DT_HIOS     0x6fffffff -#define DT_LOPROC	0x70000000 -#define DT_HIPROC	0x7fffffff - -/* This info is needed when parsing the symbol table */ -#define STB_LOCAL  0 -#define STB_GLOBAL 1 -#define STB_WEAK   2 - -#define STT_NOTYPE  0 -#define STT_OBJECT  1 -#define STT_FUNC    2 -#define STT_SECTION 3 -#define STT_FILE    4 -#define STT_COMMON  5 -#define STT_TLS     6 - -#define ELF_ST_BIND(x)		((x) >> 4) -#define ELF_ST_TYPE(x)		(((unsigned int) x) & 0xf) -#define ELF32_ST_BIND(x)	ELF_ST_BIND(x) -#define ELF32_ST_TYPE(x)	ELF_ST_TYPE(x) -#define ELF64_ST_BIND(x)	ELF_ST_BIND(x) -#define ELF64_ST_TYPE(x)	ELF_ST_TYPE(x) - -typedef struct dynamic{ -  Elf32_Sword d_tag; -  union{ -    Elf32_Sword	d_val; -    Elf32_Addr	d_ptr; -  } d_un; -} Elf32_Dyn; - -typedef struct { -  Elf64_Sxword d_tag;		/* entry tag value */ -  union { -    Elf64_Xword d_val; -    Elf64_Addr d_ptr; -  } d_un; -} Elf64_Dyn; - -/* The following are used with relocations */ -#define ELF32_R_SYM(x) ((x) >> 8) -#define ELF32_R_TYPE(x) ((x) & 0xff) - -#define ELF64_R_SYM(i)			((i) >> 32) -#define ELF64_R_TYPE(i)			((i) & 0xffffffff) - -typedef struct elf32_rel { -  Elf32_Addr	r_offset; -  Elf32_Word	r_info; -} Elf32_Rel; - -typedef struct elf64_rel { -  Elf64_Addr r_offset;	/* Location at which to apply the action */ -  Elf64_Xword r_info;	/* index and type of relocation */ -} Elf64_Rel; - -typedef struct elf32_rela{ -  Elf32_Addr	r_offset; -  Elf32_Word	r_info; -  Elf32_Sword	r_addend; -} Elf32_Rela; - -typedef struct elf64_rela { -  Elf64_Addr r_offset;	/* Location at which to apply the action */ -  Elf64_Xword r_info;	/* index and type of relocation */ -  Elf64_Sxword r_addend;	/* Constant addend used to compute value */ -} Elf64_Rela; - -typedef struct elf32_sym{ -  Elf32_Word	st_name; -  Elf32_Addr	st_value; -  Elf32_Word	st_size; -  unsigned char	st_info; -  unsigned char	st_other; -  Elf32_Half	st_shndx; -} Elf32_Sym; - -typedef struct elf64_sym { -  Elf64_Word st_name;		/* Symbol name, index in string tbl */ -  unsigned char	st_info;	/* Type and binding attributes */ -  unsigned char	st_other;	/* No defined meaning, 0 */ -  Elf64_Half st_shndx;		/* Associated section index */ -  Elf64_Addr st_value;		/* Value of the symbol */ -  Elf64_Xword st_size;		/* Associated symbol size */ -} Elf64_Sym; - - -#define EI_NIDENT	16 - -typedef struct elf32_hdr{ -  unsigned char	e_ident[EI_NIDENT]; -  Elf32_Half	e_type; -  Elf32_Half	e_machine; -  Elf32_Word	e_version; -  Elf32_Addr	e_entry;  /* Entry point */ -  Elf32_Off	e_phoff; -  Elf32_Off	e_shoff; -  Elf32_Word	e_flags; -  Elf32_Half	e_ehsize; -  Elf32_Half	e_phentsize; -  Elf32_Half	e_phnum; -  Elf32_Half	e_shentsize; -  Elf32_Half	e_shnum; -  Elf32_Half	e_shstrndx; -} Elf32_Ehdr; - -typedef struct elf64_hdr { -  unsigned char	e_ident[EI_NIDENT];	/* ELF "magic number" */ -  Elf64_Half e_type; -  Elf64_Half e_machine; -  Elf64_Word e_version; -  Elf64_Addr e_entry;		/* Entry point virtual address */ -  Elf64_Off e_phoff;		/* Program header table file offset */ -  Elf64_Off e_shoff;		/* Section header table file offset */ -  Elf64_Word e_flags; -  Elf64_Half e_ehsize; -  Elf64_Half e_phentsize; -  Elf64_Half e_phnum; -  Elf64_Half e_shentsize; -  Elf64_Half e_shnum; -  Elf64_Half e_shstrndx; -} Elf64_Ehdr; - -/* These constants define the permissions on sections in the program -   header, p_flags. */ -#define PF_R		0x4 -#define PF_W		0x2 -#define PF_X		0x1 - -typedef struct elf32_phdr{ -  Elf32_Word	p_type; -  Elf32_Off	p_offset; -  Elf32_Addr	p_vaddr; -  Elf32_Addr	p_paddr; -  Elf32_Word	p_filesz; -  Elf32_Word	p_memsz; -  Elf32_Word	p_flags; -  Elf32_Word	p_align; -} Elf32_Phdr; - -typedef struct elf64_phdr { -  Elf64_Word p_type; -  Elf64_Word p_flags; -  Elf64_Off p_offset;		/* Segment file offset */ -  Elf64_Addr p_vaddr;		/* Segment virtual address */ -  Elf64_Addr p_paddr;		/* Segment physical address */ -  Elf64_Xword p_filesz;		/* Segment size in file */ -  Elf64_Xword p_memsz;		/* Segment size in memory */ -  Elf64_Xword p_align;		/* Segment alignment, file & memory */ -} Elf64_Phdr; - -/* sh_type */ -#define SHT_NULL	0 -#define SHT_PROGBITS	1 -#define SHT_SYMTAB	2 -#define SHT_STRTAB	3 -#define SHT_RELA	4 -#define SHT_HASH	5 -#define SHT_DYNAMIC	6 -#define SHT_NOTE	7 -#define SHT_NOBITS	8 -#define SHT_REL		9 -#define SHT_SHLIB	10 -#define SHT_DYNSYM	11 -#define SHT_NUM		12 -#define SHT_LOPROC	0x70000000 -#define SHT_HIPROC	0x7fffffff -#define SHT_LOUSER	0x80000000 -#define SHT_HIUSER	0xffffffff - -/* sh_flags */ -#define SHF_WRITE	0x1 -#define SHF_ALLOC	0x2 -#define SHF_EXECINSTR	0x4 -#define SHF_MASKPROC	0xf0000000 - -/* special section indexes */ -#define SHN_UNDEF	0 -#define SHN_LORESERVE	0xff00 -#define SHN_LOPROC	0xff00 -#define SHN_HIPROC	0xff1f -#define SHN_ABS		0xfff1 -#define SHN_COMMON	0xfff2 -#define SHN_HIRESERVE	0xffff -  -typedef struct elf32_shdr { -  Elf32_Word	sh_name; -  Elf32_Word	sh_type; -  Elf32_Word	sh_flags; -  Elf32_Addr	sh_addr; -  Elf32_Off	sh_offset; -  Elf32_Word	sh_size; -  Elf32_Word	sh_link; -  Elf32_Word	sh_info; -  Elf32_Word	sh_addralign; -  Elf32_Word	sh_entsize; -} Elf32_Shdr; - -typedef struct elf64_shdr { -  Elf64_Word sh_name;		/* Section name, index in string tbl */ -  Elf64_Word sh_type;		/* Type of section */ -  Elf64_Xword sh_flags;		/* Miscellaneous section attributes */ -  Elf64_Addr sh_addr;		/* Section virtual addr at execution */ -  Elf64_Off sh_offset;		/* Section file offset */ -  Elf64_Xword sh_size;		/* Size of section in bytes */ -  Elf64_Word sh_link;		/* Index of another section */ -  Elf64_Word sh_info;		/* Additional section information */ -  Elf64_Xword sh_addralign;	/* Section alignment */ -  Elf64_Xword sh_entsize;	/* Entry size if section holds table */ -} Elf64_Shdr; - -#define	EI_MAG0		0		/* e_ident[] indexes */ -#define	EI_MAG1		1 -#define	EI_MAG2		2 -#define	EI_MAG3		3 -#define	EI_CLASS	4 -#define	EI_DATA		5 -#define	EI_VERSION	6 -#define	EI_OSABI	7 -#define	EI_PAD		8 - -#define	ELFMAG0		0x7f		/* EI_MAG */ -#define	ELFMAG1		'E' -#define	ELFMAG2		'L' -#define	ELFMAG3		'F' -#define	ELFMAG		"\177ELF" -#define	SELFMAG		4 - -#define	ELFCLASSNONE	0		/* EI_CLASS */ -#define	ELFCLASS32	1 -#define	ELFCLASS64	2 -#define	ELFCLASSNUM	3 - -#define ELFDATANONE	0		/* e_ident[EI_DATA] */ -#define ELFDATA2LSB	1 -#define ELFDATA2MSB	2 - -#define EV_NONE		0		/* e_version, EI_VERSION */ -#define EV_CURRENT	1 -#define EV_NUM		2 - -#define ELFOSABI_NONE	0 -#define ELFOSABI_LINUX	3 - -#ifndef ELF_OSABI -#define ELF_OSABI ELFOSABI_NONE -#endif - -/* - * Notes used in ET_CORE. Architectures export some of the arch register sets - * using the corresponding note types via the PTRACE_GETREGSET and - * PTRACE_SETREGSET requests. - */ -#define NT_PRSTATUS	1 -#define NT_PRFPREG	2 -#define NT_PRPSINFO	3 -#define NT_TASKSTRUCT	4 -#define NT_AUXV		6 -/* - * Note to userspace developers: size of NT_SIGINFO note may increase - * in the future to accomodate more fields, don't assume it is fixed! - */ -#define NT_SIGINFO      0x53494749 -#define NT_FILE         0x46494c45 -#define NT_PRXFPREG     0x46e62b7f      /* copied from gdb5.1/include/elf/common.h */ -#define NT_PPC_VMX	0x100		/* PowerPC Altivec/VMX registers */ -#define NT_PPC_SPE	0x101		/* PowerPC SPE/EVR registers */ -#define NT_PPC_VSX	0x102		/* PowerPC VSX registers */ -#define NT_386_TLS	0x200		/* i386 TLS slots (struct user_desc) */ -#define NT_386_IOPERM	0x201		/* x86 io permission bitmap (1=deny) */ -#define NT_X86_XSTATE	0x202		/* x86 extended state using xsave */ -#define NT_S390_HIGH_GPRS	0x300	/* s390 upper register halves */ -#define NT_S390_TIMER	0x301		/* s390 timer register */ -#define NT_S390_TODCMP	0x302		/* s390 TOD clock comparator register */ -#define NT_S390_TODPREG	0x303		/* s390 TOD programmable register */ -#define NT_S390_CTRS	0x304		/* s390 control registers */ -#define NT_S390_PREFIX	0x305		/* s390 prefix register */ -#define NT_S390_LAST_BREAK	0x306	/* s390 breaking event address */ -#define NT_S390_SYSTEM_CALL	0x307	/* s390 system call restart data */ -#define NT_S390_TDB	0x308		/* s390 transaction diagnostic block */ -#define NT_ARM_VFP	0x400		/* ARM VFP/NEON registers */ -#define NT_ARM_TLS	0x401		/* ARM TLS register */ -#define NT_ARM_HW_BREAK	0x402		/* ARM hardware breakpoint registers */ -#define NT_ARM_HW_WATCH	0x403		/* ARM hardware watchpoint registers */ - - -/* Note header in a PT_NOTE section */ -typedef struct elf32_note { -  Elf32_Word	n_namesz;	/* Name size */ -  Elf32_Word	n_descsz;	/* Content size */ -  Elf32_Word	n_type;		/* Content type */ -} Elf32_Nhdr; - -/* Note header in a PT_NOTE section */ -typedef struct elf64_note { -  Elf64_Word n_namesz;	/* Name size */ -  Elf64_Word n_descsz;	/* Content size */ -  Elf64_Word n_type;	/* Content type */ -} Elf64_Nhdr; +#include <uapi/linux/elf.h> -#ifdef __KERNEL__  #ifndef elf_read_implies_exec    /* Executables for which elf_read_implies_exec() returns TRUE will       have the READ_IMPLIES_EXEC personality flag set automatically. @@ -455,5 +44,4 @@ static inline int elf_coredump_extra_notes_write(struct file *file,  extern int elf_coredump_extra_notes_size(void);  extern int elf_coredump_extra_notes_write(struct file *file, loff_t *foffset);  #endif -#endif /* __KERNEL__ */  #endif /* _LINUX_ELF_H */ diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h index 0698c79fbcb..cdd3d13efce 100644 --- a/include/linux/elfcore.h +++ b/include/linux/elfcore.h @@ -1,109 +1,11 @@  #ifndef _LINUX_ELFCORE_H  #define _LINUX_ELFCORE_H -#include <linux/types.h> -#include <linux/signal.h> -#include <linux/time.h> -#ifdef __KERNEL__  #include <linux/user.h>  #include <linux/bug.h> -#endif -#include <linux/ptrace.h> -#include <linux/elf.h> -#include <linux/fs.h> - -struct elf_siginfo -{ -	int	si_signo;			/* signal number */ -	int	si_code;			/* extra code */ -	int	si_errno;			/* errno */ -}; - -#ifdef __KERNEL__  #include <asm/elf.h> -#endif +#include <uapi/linux/elfcore.h> -#ifndef __KERNEL__ -typedef elf_greg_t greg_t; -typedef elf_gregset_t gregset_t; -typedef elf_fpregset_t fpregset_t; -typedef elf_fpxregset_t fpxregset_t; -#define NGREG ELF_NGREG -#endif - -/* - * Definitions to generate Intel SVR4-like core files. - * These mostly have the same names as the SVR4 types with "elf_" - * tacked on the front to prevent clashes with linux definitions, - * and the typedef forms have been avoided.  This is mostly like - * the SVR4 structure, but more Linuxy, with things that Linux does - * not support and which gdb doesn't really use excluded. - * Fields present but not used are marked with "XXX". - */ -struct elf_prstatus -{ -#if 0 -	long	pr_flags;	/* XXX Process flags */ -	short	pr_why;		/* XXX Reason for process halt */ -	short	pr_what;	/* XXX More detailed reason */ -#endif -	struct elf_siginfo pr_info;	/* Info associated with signal */ -	short	pr_cursig;		/* Current signal */ -	unsigned long pr_sigpend;	/* Set of pending signals */ -	unsigned long pr_sighold;	/* Set of held signals */ -#if 0 -	struct sigaltstack pr_altstack;	/* Alternate stack info */ -	struct sigaction pr_action;	/* Signal action for current sig */ -#endif -	pid_t	pr_pid; -	pid_t	pr_ppid; -	pid_t	pr_pgrp; -	pid_t	pr_sid; -	struct timeval pr_utime;	/* User time */ -	struct timeval pr_stime;	/* System time */ -	struct timeval pr_cutime;	/* Cumulative user time */ -	struct timeval pr_cstime;	/* Cumulative system time */ -#if 0 -	long	pr_instr;		/* Current instruction */ -#endif -	elf_gregset_t pr_reg;	/* GP registers */ -#ifdef CONFIG_BINFMT_ELF_FDPIC -	/* When using FDPIC, the loadmap addresses need to be communicated -	 * to GDB in order for GDB to do the necessary relocations.  The -	 * fields (below) used to communicate this information are placed -	 * immediately after ``pr_reg'', so that the loadmap addresses may -	 * be viewed as part of the register set if so desired. -	 */ -	unsigned long pr_exec_fdpic_loadmap; -	unsigned long pr_interp_fdpic_loadmap; -#endif -	int pr_fpvalid;		/* True if math co-processor being used.  */ -}; - -#define ELF_PRARGSZ	(80)	/* Number of chars for args */ - -struct elf_prpsinfo -{ -	char	pr_state;	/* numeric process state */ -	char	pr_sname;	/* char for pr_state */ -	char	pr_zomb;	/* zombie */ -	char	pr_nice;	/* nice val */ -	unsigned long pr_flag;	/* flags */ -	__kernel_uid_t	pr_uid; -	__kernel_gid_t	pr_gid; -	pid_t	pr_pid, pr_ppid, pr_pgrp, pr_sid; -	/* Lots missing */ -	char	pr_fname[16];	/* filename of executable */ -	char	pr_psargs[ELF_PRARGSZ];	/* initial part of arg list */ -}; - -#ifndef __KERNEL__ -typedef struct elf_prstatus prstatus_t; -typedef struct elf_prpsinfo prpsinfo_t; -#define PRARGSZ ELF_PRARGSZ  -#endif - -#ifdef __KERNEL__  static inline void elf_core_copy_regs(elf_gregset_t *elfregs, struct pt_regs *regs)  {  #ifdef ELF_CORE_COPY_REGS @@ -167,6 +69,4 @@ extern int  elf_core_write_extra_data(struct file *file, size_t *size, unsigned long limit);  extern size_t elf_core_extra_data_size(void); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_ELFCORE_H */ diff --git a/include/linux/errno.h b/include/linux/errno.h index e0de516374d..f6bf082d4d4 100644 --- a/include/linux/errno.h +++ b/include/linux/errno.h @@ -1,9 +1,8 @@  #ifndef _LINUX_ERRNO_H  #define _LINUX_ERRNO_H -#include <asm/errno.h> +#include <uapi/linux/errno.h> -#ifdef __KERNEL__  /*   * These should never be seen by user programs.  To return one of ERESTART* @@ -32,5 +31,3 @@  #define EIOCBRETRY	530	/* iocb queued, will trigger a retry */  #endif - -#endif diff --git a/include/linux/errqueue.h b/include/linux/errqueue.h index fd0628be45c..9ca23fcfb5d 100644 --- a/include/linux/errqueue.h +++ b/include/linux/errqueue.h @@ -1,33 +1,12 @@  #ifndef _LINUX_ERRQUEUE_H  #define _LINUX_ERRQUEUE_H 1 -#include <linux/types.h> - -struct sock_extended_err { -	__u32	ee_errno;	 -	__u8	ee_origin; -	__u8	ee_type; -	__u8	ee_code; -	__u8	ee_pad; -	__u32   ee_info; -	__u32   ee_data; -}; - -#define SO_EE_ORIGIN_NONE	0 -#define SO_EE_ORIGIN_LOCAL	1 -#define SO_EE_ORIGIN_ICMP	2 -#define SO_EE_ORIGIN_ICMP6	3 -#define SO_EE_ORIGIN_TXSTATUS	4 -#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS - -#define SO_EE_OFFENDER(ee)	((struct sockaddr*)((ee)+1)) - -#ifdef __KERNEL__  #include <net/ip.h>  #if IS_ENABLED(CONFIG_IPV6)  #include <linux/ipv6.h>  #endif +#include <uapi/linux/errqueue.h>  #define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb)) @@ -44,5 +23,3 @@ struct sock_exterr_skb {  };  #endif - -#endif diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index fcb4f8e60c1..c8e3e7e39c6 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -9,596 +9,12 @@   *                                scott.feldman@intel.com)   * Portions Copyright (C) Sun Microsystems 2008   */ -  #ifndef _LINUX_ETHTOOL_H  #define _LINUX_ETHTOOL_H -#ifdef __KERNEL__  #include <linux/compat.h> -#endif -#include <linux/types.h> -#include <linux/if_ether.h> - -/* This should work for both 32 and 64 bit userland. */ -struct ethtool_cmd { -	__u32	cmd; -	__u32	supported;	/* Features this interface supports */ -	__u32	advertising;	/* Features this interface advertises */ -	__u16	speed;	        /* The forced speed (lower bits) in -				 * Mbps. Please use -				 * ethtool_cmd_speed()/_set() to -				 * access it */ -	__u8	duplex;		/* Duplex, half or full */ -	__u8	port;		/* Which connector port */ -	__u8	phy_address;	/* MDIO PHY address (PRTAD for clause 45). -				 * May be read-only or read-write -				 * depending on the driver. -				 */ -	__u8	transceiver;	/* Which transceiver to use */ -	__u8	autoneg;	/* Enable or disable autonegotiation */ -	__u8	mdio_support;	/* MDIO protocols supported.  Read-only. -				 * Not set by all drivers. -				 */ -	__u32	maxtxpkt;	/* Tx pkts before generating tx int */ -	__u32	maxrxpkt;	/* Rx pkts before generating rx int */ -	__u16	speed_hi;       /* The forced speed (upper -				 * bits) in Mbps. Please use -				 * ethtool_cmd_speed()/_set() to -				 * access it */ -	__u8	eth_tp_mdix;	/* twisted pair MDI-X status */ -	__u8    eth_tp_mdix_ctrl; /* twisted pair MDI-X control, when set, -				   * link should be renegotiated if necessary -				   */ -	__u32	lp_advertising;	/* Features the link partner advertises */ -	__u32	reserved[2]; -}; - -static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep, -					 __u32 speed) -{ - -	ep->speed = (__u16)speed; -	ep->speed_hi = (__u16)(speed >> 16); -} - -static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) -{ -	return (ep->speed_hi << 16) | ep->speed; -} - -/* Device supports clause 22 register access to PHY or peripherals - * using the interface defined in <linux/mii.h>.  This should not be - * set if there are known to be no such peripherals present or if - * the driver only emulates clause 22 registers for compatibility. - */ -#define ETH_MDIO_SUPPORTS_C22	1 - -/* Device supports clause 45 register access to PHY or peripherals - * using the interface defined in <linux/mii.h> and <linux/mdio.h>. - * This should not be set if there are known to be no such peripherals - * present. - */ -#define ETH_MDIO_SUPPORTS_C45	2 - -#define ETHTOOL_FWVERS_LEN	32 -#define ETHTOOL_BUSINFO_LEN	32 -/* these strings are set to whatever the driver author decides... */ -struct ethtool_drvinfo { -	__u32	cmd; -	char	driver[32];	/* driver short name, "tulip", "eepro100" */ -	char	version[32];	/* driver version string */ -	char	fw_version[ETHTOOL_FWVERS_LEN];	/* firmware version string */ -	char	bus_info[ETHTOOL_BUSINFO_LEN];	/* Bus info for this IF. */ -				/* For PCI devices, use pci_name(pci_dev). */ -	char	reserved1[32]; -	char	reserved2[12]; -				/* -				 * Some struct members below are filled in -				 * using ops->get_sset_count().  Obtaining -				 * this info from ethtool_drvinfo is now -				 * deprecated; Use ETHTOOL_GSSET_INFO -				 * instead. -				 */ -	__u32	n_priv_flags;	/* number of flags valid in ETHTOOL_GPFLAGS */ -	__u32	n_stats;	/* number of u64's from ETHTOOL_GSTATS */ -	__u32	testinfo_len; -	__u32	eedump_len;	/* Size of data from ETHTOOL_GEEPROM (bytes) */ -	__u32	regdump_len;	/* Size of data from ETHTOOL_GREGS (bytes) */ -}; - -#define SOPASS_MAX	6 -/* wake-on-lan settings */ -struct ethtool_wolinfo { -	__u32	cmd; -	__u32	supported; -	__u32	wolopts; -	__u8	sopass[SOPASS_MAX]; /* SecureOn(tm) password */ -}; - -/* for passing single values */ -struct ethtool_value { -	__u32	cmd; -	__u32	data; -}; - -/* for passing big chunks of data */ -struct ethtool_regs { -	__u32	cmd; -	__u32	version; /* driver-specific, indicates different chips/revs */ -	__u32	len; /* bytes */ -	__u8	data[0]; -}; - -/* for passing EEPROM chunks */ -struct ethtool_eeprom { -	__u32	cmd; -	__u32	magic; -	__u32	offset; /* in bytes */ -	__u32	len; /* in bytes */ -	__u8	data[0]; -}; - -/** - * struct ethtool_eee - Energy Efficient Ethernet information - * @cmd: ETHTOOL_{G,S}EEE - * @supported: Mask of %SUPPORTED_* flags for the speed/duplex combinations - *	for which there is EEE support. - * @advertised: Mask of %ADVERTISED_* flags for the speed/duplex combinations - *	advertised as eee capable. - * @lp_advertised: Mask of %ADVERTISED_* flags for the speed/duplex - *	combinations advertised by the link partner as eee capable. - * @eee_active: Result of the eee auto negotiation. - * @eee_enabled: EEE configured mode (enabled/disabled). - * @tx_lpi_enabled: Whether the interface should assert its tx lpi, given - *	that eee was negotiated. - * @tx_lpi_timer: Time in microseconds the interface delays prior to asserting - *	its tx lpi (after reaching 'idle' state). Effective only when eee - *	was negotiated and tx_lpi_enabled was set. - */ -struct ethtool_eee { -	__u32	cmd; -	__u32	supported; -	__u32	advertised; -	__u32	lp_advertised; -	__u32	eee_active; -	__u32	eee_enabled; -	__u32	tx_lpi_enabled; -	__u32	tx_lpi_timer; -	__u32	reserved[2]; -}; - -/** - * struct ethtool_modinfo - plugin module eeprom information - * @cmd: %ETHTOOL_GMODULEINFO - * @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx - * @eeprom_len: Length of the eeprom - * - * This structure is used to return the information to - * properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM. - * The type code indicates the eeprom data format - */ -struct ethtool_modinfo { -	__u32   cmd; -	__u32   type; -	__u32   eeprom_len; -	__u32   reserved[8]; -}; - -/** - * struct ethtool_coalesce - coalescing parameters for IRQs and stats updates - * @cmd: ETHTOOL_{G,S}COALESCE - * @rx_coalesce_usecs: How many usecs to delay an RX interrupt after - *	a packet arrives. - * @rx_max_coalesced_frames: Maximum number of packets to receive - *	before an RX interrupt. - * @rx_coalesce_usecs_irq: Same as @rx_coalesce_usecs, except that - *	this value applies while an IRQ is being serviced by the host. - * @rx_max_coalesced_frames_irq: Same as @rx_max_coalesced_frames, - *	except that this value applies while an IRQ is being serviced - *	by the host. - * @tx_coalesce_usecs: How many usecs to delay a TX interrupt after - *	a packet is sent. - * @tx_max_coalesced_frames: Maximum number of packets to be sent - *	before a TX interrupt. - * @tx_coalesce_usecs_irq: Same as @tx_coalesce_usecs, except that - *	this value applies while an IRQ is being serviced by the host. - * @tx_max_coalesced_frames_irq: Same as @tx_max_coalesced_frames, - *	except that this value applies while an IRQ is being serviced - *	by the host. - * @stats_block_coalesce_usecs: How many usecs to delay in-memory - *	statistics block updates.  Some drivers do not have an - *	in-memory statistic block, and in such cases this value is - *	ignored.  This value must not be zero. - * @use_adaptive_rx_coalesce: Enable adaptive RX coalescing. - * @use_adaptive_tx_coalesce: Enable adaptive TX coalescing. - * @pkt_rate_low: Threshold for low packet rate (packets per second). - * @rx_coalesce_usecs_low: How many usecs to delay an RX interrupt after - *	a packet arrives, when the packet rate is below @pkt_rate_low. - * @rx_max_coalesced_frames_low: Maximum number of packets to be received - *	before an RX interrupt, when the packet rate is below @pkt_rate_low. - * @tx_coalesce_usecs_low: How many usecs to delay a TX interrupt after - *	a packet is sent, when the packet rate is below @pkt_rate_low. - * @tx_max_coalesced_frames_low: Maximum nuumber of packets to be sent before - *	a TX interrupt, when the packet rate is below @pkt_rate_low. - * @pkt_rate_high: Threshold for high packet rate (packets per second). - * @rx_coalesce_usecs_high: How many usecs to delay an RX interrupt after - *	a packet arrives, when the packet rate is above @pkt_rate_high. - * @rx_max_coalesced_frames_high: Maximum number of packets to be received - *	before an RX interrupt, when the packet rate is above @pkt_rate_high. - * @tx_coalesce_usecs_high: How many usecs to delay a TX interrupt after - *	a packet is sent, when the packet rate is above @pkt_rate_high. - * @tx_max_coalesced_frames_high: Maximum number of packets to be sent before - *	a TX interrupt, when the packet rate is above @pkt_rate_high. - * @rate_sample_interval: How often to do adaptive coalescing packet rate - *	sampling, measured in seconds.  Must not be zero. - * - * Each pair of (usecs, max_frames) fields specifies this exit - * condition for interrupt coalescing: - *	(usecs > 0 && time_since_first_completion >= usecs) || - *	(max_frames > 0 && completed_frames >= max_frames) - * It is illegal to set both usecs and max_frames to zero as this - * would cause interrupts to never be generated.  To disable - * coalescing, set usecs = 0 and max_frames = 1. - * - * Some implementations ignore the value of max_frames and use the - * condition: - *	time_since_first_completion >= usecs - * This is deprecated.  Drivers for hardware that does not support - * counting completions should validate that max_frames == !rx_usecs. - * - * Adaptive RX/TX coalescing is an algorithm implemented by some - * drivers to improve latency under low packet rates and improve - * throughput under high packet rates.  Some drivers only implement - * one of RX or TX adaptive coalescing.  Anything not implemented by - * the driver causes these values to be silently ignored. - * - * When the packet rate is below @pkt_rate_high but above - * @pkt_rate_low (both measured in packets per second) the - * normal {rx,tx}_* coalescing parameters are used. - */ -struct ethtool_coalesce { -	__u32	cmd; -	__u32	rx_coalesce_usecs; -	__u32	rx_max_coalesced_frames; -	__u32	rx_coalesce_usecs_irq; -	__u32	rx_max_coalesced_frames_irq; -	__u32	tx_coalesce_usecs; -	__u32	tx_max_coalesced_frames; -	__u32	tx_coalesce_usecs_irq; -	__u32	tx_max_coalesced_frames_irq; -	__u32	stats_block_coalesce_usecs; -	__u32	use_adaptive_rx_coalesce; -	__u32	use_adaptive_tx_coalesce; -	__u32	pkt_rate_low; -	__u32	rx_coalesce_usecs_low; -	__u32	rx_max_coalesced_frames_low; -	__u32	tx_coalesce_usecs_low; -	__u32	tx_max_coalesced_frames_low; -	__u32	pkt_rate_high; -	__u32	rx_coalesce_usecs_high; -	__u32	rx_max_coalesced_frames_high; -	__u32	tx_coalesce_usecs_high; -	__u32	tx_max_coalesced_frames_high; -	__u32	rate_sample_interval; -}; - -/* for configuring RX/TX ring parameters */ -struct ethtool_ringparam { -	__u32	cmd;	/* ETHTOOL_{G,S}RINGPARAM */ - -	/* Read only attributes.  These indicate the maximum number -	 * of pending RX/TX ring entries the driver will allow the -	 * user to set. -	 */ -	__u32	rx_max_pending; -	__u32	rx_mini_max_pending; -	__u32	rx_jumbo_max_pending; -	__u32	tx_max_pending; - -	/* Values changeable by the user.  The valid values are -	 * in the range 1 to the "*_max_pending" counterpart above. -	 */ -	__u32	rx_pending; -	__u32	rx_mini_pending; -	__u32	rx_jumbo_pending; -	__u32	tx_pending; -}; - -/** - * struct ethtool_channels - configuring number of network channel - * @cmd: ETHTOOL_{G,S}CHANNELS - * @max_rx: Read only. Maximum number of receive channel the driver support. - * @max_tx: Read only. Maximum number of transmit channel the driver support. - * @max_other: Read only. Maximum number of other channel the driver support. - * @max_combined: Read only. Maximum number of combined channel the driver - *	support. Set of queues RX, TX or other. - * @rx_count: Valid values are in the range 1 to the max_rx. - * @tx_count: Valid values are in the range 1 to the max_tx. - * @other_count: Valid values are in the range 1 to the max_other. - * @combined_count: Valid values are in the range 1 to the max_combined. - * - * This can be used to configure RX, TX and other channels. - */ - -struct ethtool_channels { -	__u32	cmd; -	__u32	max_rx; -	__u32	max_tx; -	__u32	max_other; -	__u32	max_combined; -	__u32	rx_count; -	__u32	tx_count; -	__u32	other_count; -	__u32	combined_count; -}; - -/* for configuring link flow control parameters */ -struct ethtool_pauseparam { -	__u32	cmd;	/* ETHTOOL_{G,S}PAUSEPARAM */ - -	/* If the link is being auto-negotiated (via ethtool_cmd.autoneg -	 * being true) the user may set 'autoneg' here non-zero to have the -	 * pause parameters be auto-negotiated too.  In such a case, the -	 * {rx,tx}_pause values below determine what capabilities are -	 * advertised. -	 * -	 * If 'autoneg' is zero or the link is not being auto-negotiated, -	 * then {rx,tx}_pause force the driver to use/not-use pause -	 * flow control. -	 */ -	__u32	autoneg; -	__u32	rx_pause; -	__u32	tx_pause; -}; - -#define ETH_GSTRING_LEN		32 -enum ethtool_stringset { -	ETH_SS_TEST		= 0, -	ETH_SS_STATS, -	ETH_SS_PRIV_FLAGS, -	ETH_SS_NTUPLE_FILTERS,	/* Do not use, GRXNTUPLE is now deprecated */ -	ETH_SS_FEATURES, -}; - -/* for passing string sets for data tagging */ -struct ethtool_gstrings { -	__u32	cmd;		/* ETHTOOL_GSTRINGS */ -	__u32	string_set;	/* string set id e.c. ETH_SS_TEST, etc*/ -	__u32	len;		/* number of strings in the string set */ -	__u8	data[0]; -}; - -struct ethtool_sset_info { -	__u32	cmd;		/* ETHTOOL_GSSET_INFO */ -	__u32	reserved; -	__u64	sset_mask;	/* input: each bit selects an sset to query */ -				/* output: each bit a returned sset */ -	__u32	data[0];	/* ETH_SS_xxx count, in order, based on bits -				   in sset_mask.  One bit implies one -				   __u32, two bits implies two -				   __u32's, etc. */ -}; - -/** - * enum ethtool_test_flags - flags definition of ethtool_test - * @ETH_TEST_FL_OFFLINE: if set perform online and offline tests, otherwise - *	only online tests. - * @ETH_TEST_FL_FAILED: Driver set this flag if test fails. - * @ETH_TEST_FL_EXTERNAL_LB: Application request to perform external loopback - *	test. - * @ETH_TEST_FL_EXTERNAL_LB_DONE: Driver performed the external loopback test - */ - -enum ethtool_test_flags { -	ETH_TEST_FL_OFFLINE	= (1 << 0), -	ETH_TEST_FL_FAILED	= (1 << 1), -	ETH_TEST_FL_EXTERNAL_LB	= (1 << 2), -	ETH_TEST_FL_EXTERNAL_LB_DONE	= (1 << 3), -}; - -/* for requesting NIC test and getting results*/ -struct ethtool_test { -	__u32	cmd;		/* ETHTOOL_TEST */ -	__u32	flags;		/* ETH_TEST_FL_xxx */ -	__u32	reserved; -	__u32	len;		/* result length, in number of u64 elements */ -	__u64	data[0]; -}; - -/* for dumping NIC-specific statistics */ -struct ethtool_stats { -	__u32	cmd;		/* ETHTOOL_GSTATS */ -	__u32	n_stats;	/* number of u64's being returned */ -	__u64	data[0]; -}; - -struct ethtool_perm_addr { -	__u32	cmd;		/* ETHTOOL_GPERMADDR */ -	__u32	size; -	__u8	data[0]; -}; - -/* boolean flags controlling per-interface behavior characteristics. - * When reading, the flag indicates whether or not a certain behavior - * is enabled/present.  When writing, the flag indicates whether - * or not the driver should turn on (set) or off (clear) a behavior. - * - * Some behaviors may read-only (unconditionally absent or present). - * If such is the case, return EINVAL in the set-flags operation if the - * flag differs from the read-only value. - */ -enum ethtool_flags { -	ETH_FLAG_TXVLAN		= (1 << 7),	/* TX VLAN offload enabled */ -	ETH_FLAG_RXVLAN		= (1 << 8),	/* RX VLAN offload enabled */ -	ETH_FLAG_LRO		= (1 << 15),	/* LRO is enabled */ -	ETH_FLAG_NTUPLE		= (1 << 27),	/* N-tuple filters enabled */ -	ETH_FLAG_RXHASH		= (1 << 28), -}; +#include <uapi/linux/ethtool.h> -/* The following structures are for supporting RX network flow - * classification and RX n-tuple configuration. Note, all multibyte - * fields, e.g., ip4src, ip4dst, psrc, pdst, spi, etc. are expected to - * be in network byte order. - */ - -/** - * struct ethtool_tcpip4_spec - flow specification for TCP/IPv4 etc. - * @ip4src: Source host - * @ip4dst: Destination host - * @psrc: Source port - * @pdst: Destination port - * @tos: Type-of-service - * - * This can be used to specify a TCP/IPv4, UDP/IPv4 or SCTP/IPv4 flow. - */ -struct ethtool_tcpip4_spec { -	__be32	ip4src; -	__be32	ip4dst; -	__be16	psrc; -	__be16	pdst; -	__u8    tos; -}; - -/** - * struct ethtool_ah_espip4_spec - flow specification for IPsec/IPv4 - * @ip4src: Source host - * @ip4dst: Destination host - * @spi: Security parameters index - * @tos: Type-of-service - * - * This can be used to specify an IPsec transport or tunnel over IPv4. - */ -struct ethtool_ah_espip4_spec { -	__be32	ip4src; -	__be32	ip4dst; -	__be32	spi; -	__u8    tos; -}; - -#define	ETH_RX_NFC_IP4	1 - -/** - * struct ethtool_usrip4_spec - general flow specification for IPv4 - * @ip4src: Source host - * @ip4dst: Destination host - * @l4_4_bytes: First 4 bytes of transport (layer 4) header - * @tos: Type-of-service - * @ip_ver: Value must be %ETH_RX_NFC_IP4; mask must be 0 - * @proto: Transport protocol number; mask must be 0 - */ -struct ethtool_usrip4_spec { -	__be32	ip4src; -	__be32	ip4dst; -	__be32	l4_4_bytes; -	__u8    tos; -	__u8    ip_ver; -	__u8    proto; -}; - -union ethtool_flow_union { -	struct ethtool_tcpip4_spec		tcp_ip4_spec; -	struct ethtool_tcpip4_spec		udp_ip4_spec; -	struct ethtool_tcpip4_spec		sctp_ip4_spec; -	struct ethtool_ah_espip4_spec		ah_ip4_spec; -	struct ethtool_ah_espip4_spec		esp_ip4_spec; -	struct ethtool_usrip4_spec		usr_ip4_spec; -	struct ethhdr				ether_spec; -	__u8					hdata[60]; -}; - -struct ethtool_flow_ext { -	__be16	vlan_etype; -	__be16	vlan_tci; -	__be32	data[2]; -}; - -/** - * struct ethtool_rx_flow_spec - classification rule for RX flows - * @flow_type: Type of match to perform, e.g. %TCP_V4_FLOW - * @h_u: Flow fields to match (dependent on @flow_type) - * @h_ext: Additional fields to match - * @m_u: Masks for flow field bits to be matched - * @m_ext: Masks for additional field bits to be matched - *	Note, all additional fields must be ignored unless @flow_type - *	includes the %FLOW_EXT flag. - * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC - *	if packets should be discarded - * @location: Location of rule in the table.  Locations must be - *	numbered such that a flow matching multiple rules will be - *	classified according to the first (lowest numbered) rule. - */ -struct ethtool_rx_flow_spec { -	__u32		flow_type; -	union ethtool_flow_union h_u; -	struct ethtool_flow_ext h_ext; -	union ethtool_flow_union m_u; -	struct ethtool_flow_ext m_ext; -	__u64		ring_cookie; -	__u32		location; -}; - -/** - * struct ethtool_rxnfc - command to get or set RX flow classification rules - * @cmd: Specific command number - %ETHTOOL_GRXFH, %ETHTOOL_SRXFH, - *	%ETHTOOL_GRXRINGS, %ETHTOOL_GRXCLSRLCNT, %ETHTOOL_GRXCLSRULE, - *	%ETHTOOL_GRXCLSRLALL, %ETHTOOL_SRXCLSRLDEL or %ETHTOOL_SRXCLSRLINS - * @flow_type: Type of flow to be affected, e.g. %TCP_V4_FLOW - * @data: Command-dependent value - * @fs: Flow classification rule - * @rule_cnt: Number of rules to be affected - * @rule_locs: Array of used rule locations - * - * For %ETHTOOL_GRXFH and %ETHTOOL_SRXFH, @data is a bitmask indicating - * the fields included in the flow hash, e.g. %RXH_IP_SRC.  The following - * structure fields must not be used. - * - * For %ETHTOOL_GRXRINGS, @data is set to the number of RX rings/queues - * on return. - * - * For %ETHTOOL_GRXCLSRLCNT, @rule_cnt is set to the number of defined - * rules on return.  If @data is non-zero on return then it is the - * size of the rule table, plus the flag %RX_CLS_LOC_SPECIAL if the - * driver supports any special location values.  If that flag is not - * set in @data then special location values should not be used. - * - * For %ETHTOOL_GRXCLSRULE, @fs.@location specifies the location of an - * existing rule on entry and @fs contains the rule on return. - * - * For %ETHTOOL_GRXCLSRLALL, @rule_cnt specifies the array size of the - * user buffer for @rule_locs on entry.  On return, @data is the size - * of the rule table, @rule_cnt is the number of defined rules, and - * @rule_locs contains the locations of the defined rules.  Drivers - * must use the second parameter to get_rxnfc() instead of @rule_locs. - * - * For %ETHTOOL_SRXCLSRLINS, @fs specifies the rule to add or update. - * @fs.@location either specifies the location to use or is a special - * location value with %RX_CLS_LOC_SPECIAL flag set.  On return, - * @fs.@location is the actual rule location. - * - * For %ETHTOOL_SRXCLSRLDEL, @fs.@location specifies the location of an - * existing rule on entry. - * - * A driver supporting the special location values for - * %ETHTOOL_SRXCLSRLINS may add the rule at any suitable unused - * location, and may remove a rule at a later location (lower - * priority) that matches exactly the same set of flows.  The special - * values are: %RX_CLS_LOC_ANY, selecting any location; - * %RX_CLS_LOC_FIRST, selecting the first suitable location (maximum - * priority); and %RX_CLS_LOC_LAST, selecting the last suitable - * location (minimum priority).  Additional special values may be - * defined in future and drivers must return -%EINVAL for any - * unrecognised value. - */ -struct ethtool_rxnfc { -	__u32				cmd; -	__u32				flow_type; -	__u64				data; -	struct ethtool_rx_flow_spec	fs; -	__u32				rule_cnt; -	__u32				rule_locs[0]; -}; - -#ifdef __KERNEL__  #ifdef CONFIG_COMPAT  struct compat_ethtool_rx_flow_spec { @@ -621,223 +37,6 @@ struct compat_ethtool_rxnfc {  };  #endif /* CONFIG_COMPAT */ -#endif /* __KERNEL__ */ - -/** - * struct ethtool_rxfh_indir - command to get or set RX flow hash indirection - * @cmd: Specific command number - %ETHTOOL_GRXFHINDIR or %ETHTOOL_SRXFHINDIR - * @size: On entry, the array size of the user buffer, which may be zero. - *	On return from %ETHTOOL_GRXFHINDIR, the array size of the hardware - *	indirection table. - * @ring_index: RX ring/queue index for each hash value - * - * For %ETHTOOL_GRXFHINDIR, a @size of zero means that only the size - * should be returned.  For %ETHTOOL_SRXFHINDIR, a @size of zero means - * the table should be reset to default values.  This last feature - * is not supported by the original implementations. - */ -struct ethtool_rxfh_indir { -	__u32	cmd; -	__u32	size; -	__u32	ring_index[0]; -}; - -/** - * struct ethtool_rx_ntuple_flow_spec - specification for RX flow filter - * @flow_type: Type of match to perform, e.g. %TCP_V4_FLOW - * @h_u: Flow field values to match (dependent on @flow_type) - * @m_u: Masks for flow field value bits to be ignored - * @vlan_tag: VLAN tag to match - * @vlan_tag_mask: Mask for VLAN tag bits to be ignored - * @data: Driver-dependent data to match - * @data_mask: Mask for driver-dependent data bits to be ignored - * @action: RX ring/queue index to deliver to (non-negative) or other action - *	(negative, e.g. %ETHTOOL_RXNTUPLE_ACTION_DROP) - * - * For flow types %TCP_V4_FLOW, %UDP_V4_FLOW and %SCTP_V4_FLOW, where - * a field value and mask are both zero this is treated as if all mask - * bits are set i.e. the field is ignored. - */ -struct ethtool_rx_ntuple_flow_spec { -	__u32		 flow_type; -	union { -		struct ethtool_tcpip4_spec		tcp_ip4_spec; -		struct ethtool_tcpip4_spec		udp_ip4_spec; -		struct ethtool_tcpip4_spec		sctp_ip4_spec; -		struct ethtool_ah_espip4_spec		ah_ip4_spec; -		struct ethtool_ah_espip4_spec		esp_ip4_spec; -		struct ethtool_usrip4_spec		usr_ip4_spec; -		struct ethhdr				ether_spec; -		__u8					hdata[72]; -	} h_u, m_u; - -	__u16	        vlan_tag; -	__u16	        vlan_tag_mask; -	__u64		data; -	__u64		data_mask; - -	__s32		action; -#define ETHTOOL_RXNTUPLE_ACTION_DROP	(-1)	/* drop packet */ -#define ETHTOOL_RXNTUPLE_ACTION_CLEAR	(-2)	/* clear filter */ -}; - -/** - * struct ethtool_rx_ntuple - command to set or clear RX flow filter - * @cmd: Command number - %ETHTOOL_SRXNTUPLE - * @fs: Flow filter specification - */ -struct ethtool_rx_ntuple { -	__u32					cmd; -	struct ethtool_rx_ntuple_flow_spec	fs; -}; - -#define ETHTOOL_FLASH_MAX_FILENAME	128 -enum ethtool_flash_op_type { -	ETHTOOL_FLASH_ALL_REGIONS	= 0, -}; - -/* for passing firmware flashing related parameters */ -struct ethtool_flash { -	__u32	cmd; -	__u32	region; -	char	data[ETHTOOL_FLASH_MAX_FILENAME]; -}; - -/** - * struct ethtool_dump - used for retrieving, setting device dump - * @cmd: Command number - %ETHTOOL_GET_DUMP_FLAG, %ETHTOOL_GET_DUMP_DATA, or - * 	%ETHTOOL_SET_DUMP - * @version: FW version of the dump, filled in by driver - * @flag: driver dependent flag for dump setting, filled in by driver during - *        get and filled in by ethtool for set operation. - *        flag must be initialized by macro ETH_FW_DUMP_DISABLE value when - *        firmware dump is disabled. - * @len: length of dump data, used as the length of the user buffer on entry to - * 	 %ETHTOOL_GET_DUMP_DATA and this is returned as dump length by driver - * 	 for %ETHTOOL_GET_DUMP_FLAG command - * @data: data collected for get dump data operation - */ - -#define ETH_FW_DUMP_DISABLE 0 - -struct ethtool_dump { -	__u32	cmd; -	__u32	version; -	__u32	flag; -	__u32	len; -	__u8	data[0]; -}; - -/* for returning and changing feature sets */ - -/** - * struct ethtool_get_features_block - block with state of 32 features - * @available: mask of changeable features - * @requested: mask of features requested to be enabled if possible - * @active: mask of currently enabled features - * @never_changed: mask of features not changeable for any device - */ -struct ethtool_get_features_block { -	__u32	available; -	__u32	requested; -	__u32	active; -	__u32	never_changed; -}; - -/** - * struct ethtool_gfeatures - command to get state of device's features - * @cmd: command number = %ETHTOOL_GFEATURES - * @size: in: number of elements in the features[] array; - *       out: number of elements in features[] needed to hold all features - * @features: state of features - */ -struct ethtool_gfeatures { -	__u32	cmd; -	__u32	size; -	struct ethtool_get_features_block features[0]; -}; - -/** - * struct ethtool_set_features_block - block with request for 32 features - * @valid: mask of features to be changed - * @requested: values of features to be changed - */ -struct ethtool_set_features_block { -	__u32	valid; -	__u32	requested; -}; - -/** - * struct ethtool_sfeatures - command to request change in device's features - * @cmd: command number = %ETHTOOL_SFEATURES - * @size: array size of the features[] array - * @features: feature change masks - */ -struct ethtool_sfeatures { -	__u32	cmd; -	__u32	size; -	struct ethtool_set_features_block features[0]; -}; - -/** - * struct ethtool_ts_info - holds a device's timestamping and PHC association - * @cmd: command number = %ETHTOOL_GET_TS_INFO - * @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags - * @phc_index: device index of the associated PHC, or -1 if there is none - * @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values - * @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values - * - * The bits in the 'tx_types' and 'rx_filters' fields correspond to - * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values, - * respectively.  For example, if the device supports HWTSTAMP_TX_ON, - * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set. - */ -struct ethtool_ts_info { -	__u32	cmd; -	__u32	so_timestamping; -	__s32	phc_index; -	__u32	tx_types; -	__u32	tx_reserved[3]; -	__u32	rx_filters; -	__u32	rx_reserved[3]; -}; - -/* - * %ETHTOOL_SFEATURES changes features present in features[].valid to the - * values of corresponding bits in features[].requested. Bits in .requested - * not set in .valid or not changeable are ignored. - * - * Returns %EINVAL when .valid contains undefined or never-changeable bits - * or size is not equal to required number of features words (32-bit blocks). - * Returns >= 0 if request was completed; bits set in the value mean: - *   %ETHTOOL_F_UNSUPPORTED - there were bits set in .valid that are not - *	changeable (not present in %ETHTOOL_GFEATURES' features[].available) - *	those bits were ignored. - *   %ETHTOOL_F_WISH - some or all changes requested were recorded but the - *      resulting state of bits masked by .valid is not equal to .requested. - *      Probably there are other device-specific constraints on some features - *      in the set. When %ETHTOOL_F_UNSUPPORTED is set, .valid is considered - *      here as though ignored bits were cleared. - *   %ETHTOOL_F_COMPAT - some or all changes requested were made by calling - *      compatibility functions. Requested offload state cannot be properly - *      managed by kernel. - * - * Meaning of bits in the masks are obtained by %ETHTOOL_GSSET_INFO (number of - * bits in the arrays - always multiple of 32) and %ETHTOOL_GSTRINGS commands - * for ETH_SS_FEATURES string set. First entry in the table corresponds to least - * significant bit in features[0] fields. Empty strings mark undefined features. - */ -enum ethtool_sfeatures_retval_bits { -	ETHTOOL_F_UNSUPPORTED__BIT, -	ETHTOOL_F_WISH__BIT, -	ETHTOOL_F_COMPAT__BIT, -}; - -#define ETHTOOL_F_UNSUPPORTED   (1 << ETHTOOL_F_UNSUPPORTED__BIT) -#define ETHTOOL_F_WISH          (1 << ETHTOOL_F_WISH__BIT) -#define ETHTOOL_F_COMPAT        (1 << ETHTOOL_F_COMPAT__BIT) - -#ifdef __KERNEL__  #include <linux/rculist.h> @@ -1049,277 +248,4 @@ struct ethtool_ops {  }; -#endif /* __KERNEL__ */ - -/* CMDs currently supported */ -#define ETHTOOL_GSET		0x00000001 /* Get settings. */ -#define ETHTOOL_SSET		0x00000002 /* Set settings. */ -#define ETHTOOL_GDRVINFO	0x00000003 /* Get driver info. */ -#define ETHTOOL_GREGS		0x00000004 /* Get NIC registers. */ -#define ETHTOOL_GWOL		0x00000005 /* Get wake-on-lan options. */ -#define ETHTOOL_SWOL		0x00000006 /* Set wake-on-lan options. */ -#define ETHTOOL_GMSGLVL		0x00000007 /* Get driver message level */ -#define ETHTOOL_SMSGLVL		0x00000008 /* Set driver msg level. */ -#define ETHTOOL_NWAY_RST	0x00000009 /* Restart autonegotiation. */ -/* Get link status for host, i.e. whether the interface *and* the - * physical port (if there is one) are up (ethtool_value). */ -#define ETHTOOL_GLINK		0x0000000a -#define ETHTOOL_GEEPROM		0x0000000b /* Get EEPROM data */ -#define ETHTOOL_SEEPROM		0x0000000c /* Set EEPROM data. */ -#define ETHTOOL_GCOALESCE	0x0000000e /* Get coalesce config */ -#define ETHTOOL_SCOALESCE	0x0000000f /* Set coalesce config. */ -#define ETHTOOL_GRINGPARAM	0x00000010 /* Get ring parameters */ -#define ETHTOOL_SRINGPARAM	0x00000011 /* Set ring parameters. */ -#define ETHTOOL_GPAUSEPARAM	0x00000012 /* Get pause parameters */ -#define ETHTOOL_SPAUSEPARAM	0x00000013 /* Set pause parameters. */ -#define ETHTOOL_GRXCSUM		0x00000014 /* Get RX hw csum enable (ethtool_value) */ -#define ETHTOOL_SRXCSUM		0x00000015 /* Set RX hw csum enable (ethtool_value) */ -#define ETHTOOL_GTXCSUM		0x00000016 /* Get TX hw csum enable (ethtool_value) */ -#define ETHTOOL_STXCSUM		0x00000017 /* Set TX hw csum enable (ethtool_value) */ -#define ETHTOOL_GSG		0x00000018 /* Get scatter-gather enable -					    * (ethtool_value) */ -#define ETHTOOL_SSG		0x00000019 /* Set scatter-gather enable -					    * (ethtool_value). */ -#define ETHTOOL_TEST		0x0000001a /* execute NIC self-test. */ -#define ETHTOOL_GSTRINGS	0x0000001b /* get specified string set */ -#define ETHTOOL_PHYS_ID		0x0000001c /* identify the NIC */ -#define ETHTOOL_GSTATS		0x0000001d /* get NIC-specific statistics */ -#define ETHTOOL_GTSO		0x0000001e /* Get TSO enable (ethtool_value) */ -#define ETHTOOL_STSO		0x0000001f /* Set TSO enable (ethtool_value) */ -#define ETHTOOL_GPERMADDR	0x00000020 /* Get permanent hardware address */ -#define ETHTOOL_GUFO		0x00000021 /* Get UFO enable (ethtool_value) */ -#define ETHTOOL_SUFO		0x00000022 /* Set UFO enable (ethtool_value) */ -#define ETHTOOL_GGSO		0x00000023 /* Get GSO enable (ethtool_value) */ -#define ETHTOOL_SGSO		0x00000024 /* Set GSO enable (ethtool_value) */ -#define ETHTOOL_GFLAGS		0x00000025 /* Get flags bitmap(ethtool_value) */ -#define ETHTOOL_SFLAGS		0x00000026 /* Set flags bitmap(ethtool_value) */ -#define ETHTOOL_GPFLAGS		0x00000027 /* Get driver-private flags bitmap */ -#define ETHTOOL_SPFLAGS		0x00000028 /* Set driver-private flags bitmap */ - -#define ETHTOOL_GRXFH		0x00000029 /* Get RX flow hash configuration */ -#define ETHTOOL_SRXFH		0x0000002a /* Set RX flow hash configuration */ -#define ETHTOOL_GGRO		0x0000002b /* Get GRO enable (ethtool_value) */ -#define ETHTOOL_SGRO		0x0000002c /* Set GRO enable (ethtool_value) */ -#define ETHTOOL_GRXRINGS	0x0000002d /* Get RX rings available for LB */ -#define ETHTOOL_GRXCLSRLCNT	0x0000002e /* Get RX class rule count */ -#define ETHTOOL_GRXCLSRULE	0x0000002f /* Get RX classification rule */ -#define ETHTOOL_GRXCLSRLALL	0x00000030 /* Get all RX classification rule */ -#define ETHTOOL_SRXCLSRLDEL	0x00000031 /* Delete RX classification rule */ -#define ETHTOOL_SRXCLSRLINS	0x00000032 /* Insert RX classification rule */ -#define ETHTOOL_FLASHDEV	0x00000033 /* Flash firmware to device */ -#define ETHTOOL_RESET		0x00000034 /* Reset hardware */ -#define ETHTOOL_SRXNTUPLE	0x00000035 /* Add an n-tuple filter to device */ -#define ETHTOOL_GRXNTUPLE	0x00000036 /* deprecated */ -#define ETHTOOL_GSSET_INFO	0x00000037 /* Get string set info */ -#define ETHTOOL_GRXFHINDIR	0x00000038 /* Get RX flow hash indir'n table */ -#define ETHTOOL_SRXFHINDIR	0x00000039 /* Set RX flow hash indir'n table */ - -#define ETHTOOL_GFEATURES	0x0000003a /* Get device offload settings */ -#define ETHTOOL_SFEATURES	0x0000003b /* Change device offload settings */ -#define ETHTOOL_GCHANNELS	0x0000003c /* Get no of channels */ -#define ETHTOOL_SCHANNELS	0x0000003d /* Set no of channels */ -#define ETHTOOL_SET_DUMP	0x0000003e /* Set dump settings */ -#define ETHTOOL_GET_DUMP_FLAG	0x0000003f /* Get dump settings */ -#define ETHTOOL_GET_DUMP_DATA	0x00000040 /* Get dump data */ -#define ETHTOOL_GET_TS_INFO	0x00000041 /* Get time stamping and PHC info */ -#define ETHTOOL_GMODULEINFO	0x00000042 /* Get plug-in module information */ -#define ETHTOOL_GMODULEEEPROM	0x00000043 /* Get plug-in module eeprom */ -#define ETHTOOL_GEEE		0x00000044 /* Get EEE settings */ -#define ETHTOOL_SEEE		0x00000045 /* Set EEE settings */ - -/* compatibility with older code */ -#define SPARC_ETH_GSET		ETHTOOL_GSET -#define SPARC_ETH_SSET		ETHTOOL_SSET - -/* Indicates what features are supported by the interface. */ -#define SUPPORTED_10baseT_Half		(1 << 0) -#define SUPPORTED_10baseT_Full		(1 << 1) -#define SUPPORTED_100baseT_Half		(1 << 2) -#define SUPPORTED_100baseT_Full		(1 << 3) -#define SUPPORTED_1000baseT_Half	(1 << 4) -#define SUPPORTED_1000baseT_Full	(1 << 5) -#define SUPPORTED_Autoneg		(1 << 6) -#define SUPPORTED_TP			(1 << 7) -#define SUPPORTED_AUI			(1 << 8) -#define SUPPORTED_MII			(1 << 9) -#define SUPPORTED_FIBRE			(1 << 10) -#define SUPPORTED_BNC			(1 << 11) -#define SUPPORTED_10000baseT_Full	(1 << 12) -#define SUPPORTED_Pause			(1 << 13) -#define SUPPORTED_Asym_Pause		(1 << 14) -#define SUPPORTED_2500baseX_Full	(1 << 15) -#define SUPPORTED_Backplane		(1 << 16) -#define SUPPORTED_1000baseKX_Full	(1 << 17) -#define SUPPORTED_10000baseKX4_Full	(1 << 18) -#define SUPPORTED_10000baseKR_Full	(1 << 19) -#define SUPPORTED_10000baseR_FEC	(1 << 20) -#define SUPPORTED_20000baseMLD2_Full	(1 << 21) -#define SUPPORTED_20000baseKR2_Full	(1 << 22) -#define SUPPORTED_40000baseKR4_Full	(1 << 23) -#define SUPPORTED_40000baseCR4_Full	(1 << 24) -#define SUPPORTED_40000baseSR4_Full	(1 << 25) -#define SUPPORTED_40000baseLR4_Full	(1 << 26) - -/* Indicates what features are advertised by the interface. */ -#define ADVERTISED_10baseT_Half		(1 << 0) -#define ADVERTISED_10baseT_Full		(1 << 1) -#define ADVERTISED_100baseT_Half	(1 << 2) -#define ADVERTISED_100baseT_Full	(1 << 3) -#define ADVERTISED_1000baseT_Half	(1 << 4) -#define ADVERTISED_1000baseT_Full	(1 << 5) -#define ADVERTISED_Autoneg		(1 << 6) -#define ADVERTISED_TP			(1 << 7) -#define ADVERTISED_AUI			(1 << 8) -#define ADVERTISED_MII			(1 << 9) -#define ADVERTISED_FIBRE		(1 << 10) -#define ADVERTISED_BNC			(1 << 11) -#define ADVERTISED_10000baseT_Full	(1 << 12) -#define ADVERTISED_Pause		(1 << 13) -#define ADVERTISED_Asym_Pause		(1 << 14) -#define ADVERTISED_2500baseX_Full	(1 << 15) -#define ADVERTISED_Backplane		(1 << 16) -#define ADVERTISED_1000baseKX_Full	(1 << 17) -#define ADVERTISED_10000baseKX4_Full	(1 << 18) -#define ADVERTISED_10000baseKR_Full	(1 << 19) -#define ADVERTISED_10000baseR_FEC	(1 << 20) -#define ADVERTISED_20000baseMLD2_Full	(1 << 21) -#define ADVERTISED_20000baseKR2_Full	(1 << 22) -#define ADVERTISED_40000baseKR4_Full	(1 << 23) -#define ADVERTISED_40000baseCR4_Full	(1 << 24) -#define ADVERTISED_40000baseSR4_Full	(1 << 25) -#define ADVERTISED_40000baseLR4_Full	(1 << 26) - -/* The following are all involved in forcing a particular link - * mode for the device for setting things.  When getting the - * devices settings, these indicate the current mode and whether - * it was forced up into this mode or autonegotiated. - */ - -/* The forced speed, 10Mb, 100Mb, gigabit, 2.5Gb, 10GbE. */ -#define SPEED_10		10 -#define SPEED_100		100 -#define SPEED_1000		1000 -#define SPEED_2500		2500 -#define SPEED_10000		10000 -#define SPEED_UNKNOWN		-1 - -/* Duplex, half or full. */ -#define DUPLEX_HALF		0x00 -#define DUPLEX_FULL		0x01 -#define DUPLEX_UNKNOWN		0xff - -/* Which connector port. */ -#define PORT_TP			0x00 -#define PORT_AUI		0x01 -#define PORT_MII		0x02 -#define PORT_FIBRE		0x03 -#define PORT_BNC		0x04 -#define PORT_DA			0x05 -#define PORT_NONE		0xef -#define PORT_OTHER		0xff - -/* Which transceiver to use. */ -#define XCVR_INTERNAL		0x00 -#define XCVR_EXTERNAL		0x01 -#define XCVR_DUMMY1		0x02 -#define XCVR_DUMMY2		0x03 -#define XCVR_DUMMY3		0x04 - -/* Enable or disable autonegotiation.  If this is set to enable, - * the forced link modes above are completely ignored. - */ -#define AUTONEG_DISABLE		0x00 -#define AUTONEG_ENABLE		0x01 - -/* MDI or MDI-X status/control - if MDI/MDI_X/AUTO is set then - * the driver is required to renegotiate link - */ -#define ETH_TP_MDI_INVALID	0x00 /* status: unknown; control: unsupported */ -#define ETH_TP_MDI		0x01 /* status: MDI;     control: force MDI */ -#define ETH_TP_MDI_X		0x02 /* status: MDI-X;   control: force MDI-X */ -#define ETH_TP_MDI_AUTO		0x03 /*                  control: auto-select */ - -/* Wake-On-Lan options. */ -#define WAKE_PHY		(1 << 0) -#define WAKE_UCAST		(1 << 1) -#define WAKE_MCAST		(1 << 2) -#define WAKE_BCAST		(1 << 3) -#define WAKE_ARP		(1 << 4) -#define WAKE_MAGIC		(1 << 5) -#define WAKE_MAGICSECURE	(1 << 6) /* only meaningful if WAKE_MAGIC */ - -/* L2-L4 network traffic flow types */ -#define	TCP_V4_FLOW	0x01	/* hash or spec (tcp_ip4_spec) */ -#define	UDP_V4_FLOW	0x02	/* hash or spec (udp_ip4_spec) */ -#define	SCTP_V4_FLOW	0x03	/* hash or spec (sctp_ip4_spec) */ -#define	AH_ESP_V4_FLOW	0x04	/* hash only */ -#define	TCP_V6_FLOW	0x05	/* hash only */ -#define	UDP_V6_FLOW	0x06	/* hash only */ -#define	SCTP_V6_FLOW	0x07	/* hash only */ -#define	AH_ESP_V6_FLOW	0x08	/* hash only */ -#define	AH_V4_FLOW	0x09	/* hash or spec (ah_ip4_spec) */ -#define	ESP_V4_FLOW	0x0a	/* hash or spec (esp_ip4_spec) */ -#define	AH_V6_FLOW	0x0b	/* hash only */ -#define	ESP_V6_FLOW	0x0c	/* hash only */ -#define	IP_USER_FLOW	0x0d	/* spec only (usr_ip4_spec) */ -#define	IPV4_FLOW	0x10	/* hash only */ -#define	IPV6_FLOW	0x11	/* hash only */ -#define	ETHER_FLOW	0x12	/* spec only (ether_spec) */ -/* Flag to enable additional fields in struct ethtool_rx_flow_spec */ -#define	FLOW_EXT	0x80000000 - -/* L3-L4 network traffic flow hash options */ -#define	RXH_L2DA	(1 << 1) -#define	RXH_VLAN	(1 << 2) -#define	RXH_L3_PROTO	(1 << 3) -#define	RXH_IP_SRC	(1 << 4) -#define	RXH_IP_DST	(1 << 5) -#define	RXH_L4_B_0_1	(1 << 6) /* src port in case of TCP/UDP/SCTP */ -#define	RXH_L4_B_2_3	(1 << 7) /* dst port in case of TCP/UDP/SCTP */ -#define	RXH_DISCARD	(1 << 31) - -#define	RX_CLS_FLOW_DISC	0xffffffffffffffffULL - -/* Special RX classification rule insert location values */ -#define RX_CLS_LOC_SPECIAL	0x80000000	/* flag */ -#define RX_CLS_LOC_ANY		0xffffffff -#define RX_CLS_LOC_FIRST	0xfffffffe -#define RX_CLS_LOC_LAST		0xfffffffd - -/* EEPROM Standards for plug in modules */ -#define ETH_MODULE_SFF_8079		0x1 -#define ETH_MODULE_SFF_8079_LEN		256 -#define ETH_MODULE_SFF_8472		0x2 -#define ETH_MODULE_SFF_8472_LEN		512 - -/* Reset flags */ -/* The reset() operation must clear the flags for the components which - * were actually reset.  On successful return, the flags indicate the - * components which were not reset, either because they do not exist - * in the hardware or because they cannot be reset independently.  The - * driver must never reset any components that were not requested. - */ -enum ethtool_reset_flags { -	/* These flags represent components dedicated to the interface -	 * the command is addressed to.  Shift any flag left by -	 * ETH_RESET_SHARED_SHIFT to reset a shared component of the -	 * same type. -	 */ -	ETH_RESET_MGMT		= 1 << 0,	/* Management processor */ -	ETH_RESET_IRQ		= 1 << 1,	/* Interrupt requester */ -	ETH_RESET_DMA		= 1 << 2,	/* DMA engine */ -	ETH_RESET_FILTER	= 1 << 3,	/* Filtering/flow direction */ -	ETH_RESET_OFFLOAD	= 1 << 4,	/* Protocol offload */ -	ETH_RESET_MAC		= 1 << 5,	/* Media access controller */ -	ETH_RESET_PHY		= 1 << 6,	/* Transceiver/PHY */ -	ETH_RESET_RAM		= 1 << 7,	/* RAM shared between -						 * multiple components */ - -	ETH_RESET_DEDICATED	= 0x0000ffff,	/* All components dedicated to -						 * this interface */ -	ETH_RESET_ALL		= 0xffffffff,	/* All components used by this -						 * interface, even if shared */ -}; -#define ETH_RESET_SHARED_SHIFT	16 -  #endif /* _LINUX_ETHTOOL_H */ diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h index 41085d0f395..6daf6d4971f 100644 --- a/include/linux/eventpoll.h +++ b/include/linux/eventpoll.h @@ -10,59 +10,11 @@   *  Davide Libenzi <davidel@xmailserver.org>   *   */ -  #ifndef _LINUX_EVENTPOLL_H  #define _LINUX_EVENTPOLL_H -/* For O_CLOEXEC */ -#include <linux/fcntl.h> -#include <linux/types.h> - -/* Flags for epoll_create1.  */ -#define EPOLL_CLOEXEC O_CLOEXEC - -/* Valid opcodes to issue to sys_epoll_ctl() */ -#define EPOLL_CTL_ADD 1 -#define EPOLL_CTL_DEL 2 -#define EPOLL_CTL_MOD 3 -#define EPOLL_CTL_DISABLE 4 - -/* - * Request the handling of system wakeup events so as to prevent system suspends - * from happening while those events are being processed. - * - * Assuming neither EPOLLET nor EPOLLONESHOT is set, system suspends will not be - * re-allowed until epoll_wait is called again after consuming the wakeup - * event(s). - * - * Requires CAP_BLOCK_SUSPEND - */ -#define EPOLLWAKEUP (1 << 29) - -/* Set the One Shot behaviour for the target file descriptor */ -#define EPOLLONESHOT (1 << 30) +#include <uapi/linux/eventpoll.h> -/* Set the Edge Triggered behaviour for the target file descriptor */ -#define EPOLLET (1 << 31) - -/*  - * On x86-64 make the 64bit structure have the same alignment as the - * 32bit structure. This makes 32bit emulation easier. - * - * UML/x86_64 needs the same packing as x86_64 - */ -#ifdef __x86_64__ -#define EPOLL_PACKED __attribute__((packed)) -#else -#define EPOLL_PACKED -#endif - -struct epoll_event { -	__u32 events; -	__u64 data; -} EPOLL_PACKED; - -#ifdef __KERNEL__  /* Forward declarations to avoid compiler errors */  struct file; @@ -116,7 +68,4 @@ static inline void eventpoll_release(struct file *file) {}  #endif -#endif /* #ifdef __KERNEL__ */ -  #endif /* #ifndef _LINUX_EVENTPOLL_H */ - diff --git a/include/linux/fadvise.h b/include/linux/fadvise.h deleted file mode 100644 index e8e747139b9..00000000000 --- a/include/linux/fadvise.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef FADVISE_H_INCLUDED -#define FADVISE_H_INCLUDED - -#define POSIX_FADV_NORMAL	0 /* No further special treatment.  */ -#define POSIX_FADV_RANDOM	1 /* Expect random page references.  */ -#define POSIX_FADV_SEQUENTIAL	2 /* Expect sequential page references.  */ -#define POSIX_FADV_WILLNEED	3 /* Will need these pages.  */ - -/* - * The advise values for POSIX_FADV_DONTNEED and POSIX_ADV_NOREUSE - * for s390-64 differ from the values for the rest of the world. - */ -#if defined(__s390x__) -#define POSIX_FADV_DONTNEED	6 /* Don't need these pages.  */ -#define POSIX_FADV_NOREUSE	7 /* Data will be accessed once.  */ -#else -#define POSIX_FADV_DONTNEED	4 /* Don't need these pages.  */ -#define POSIX_FADV_NOREUSE	5 /* Data will be accessed once.  */ -#endif - -#endif	/* FADVISE_H_INCLUDED */ diff --git a/include/linux/falloc.h b/include/linux/falloc.h index d39b824a780..31591686ac2 100644 --- a/include/linux/falloc.h +++ b/include/linux/falloc.h @@ -1,11 +1,8 @@  #ifndef _FALLOC_H_  #define _FALLOC_H_ -#define FALLOC_FL_KEEP_SIZE	0x01 /* default is extend size */ -#define FALLOC_FL_PUNCH_HOLE	0x02 /* de-allocates range */ -#define FALLOC_FL_NO_HIDE_STALE	0x04 /* reserved codepoint */ +#include <uapi/linux/falloc.h> -#ifdef __KERNEL__  /*   * Space reservation ioctls and argument structure @@ -24,6 +21,4 @@ struct space_resv {  #define FS_IOC_RESVSP		_IOW('X', 40, struct space_resv)  #define FS_IOC_RESVSP64		_IOW('X', 42, struct space_resv) -#endif /* __KERNEL__ */ -  #endif /* _FALLOC_H_ */ diff --git a/include/linux/fanotify.h b/include/linux/fanotify.h index 6c6133f76e1..cef93ddcc5a 100644 --- a/include/linux/fanotify.h +++ b/include/linux/fanotify.h @@ -1,120 +1,8 @@  #ifndef _LINUX_FANOTIFY_H  #define _LINUX_FANOTIFY_H -#include <linux/types.h> +#include <uapi/linux/fanotify.h> -/* the following events that user-space can register for */ -#define FAN_ACCESS		0x00000001	/* File was accessed */ -#define FAN_MODIFY		0x00000002	/* File was modified */ -#define FAN_CLOSE_WRITE		0x00000008	/* Writtable file closed */ -#define FAN_CLOSE_NOWRITE	0x00000010	/* Unwrittable file closed */ -#define FAN_OPEN		0x00000020	/* File was opened */ - -#define FAN_Q_OVERFLOW		0x00004000	/* Event queued overflowed */ - -#define FAN_OPEN_PERM		0x00010000	/* File open in perm check */ -#define FAN_ACCESS_PERM		0x00020000	/* File accessed in perm check */ - -#define FAN_ONDIR		0x40000000	/* event occurred against dir */ - -#define FAN_EVENT_ON_CHILD	0x08000000	/* interested in child events */ - -/* helper events */ -#define FAN_CLOSE		(FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */ - -/* flags used for fanotify_init() */ -#define FAN_CLOEXEC		0x00000001 -#define FAN_NONBLOCK		0x00000002 - -/* These are NOT bitwise flags.  Both bits are used togther.  */ -#define FAN_CLASS_NOTIF		0x00000000 -#define FAN_CLASS_CONTENT	0x00000004 -#define FAN_CLASS_PRE_CONTENT	0x00000008 -#define FAN_ALL_CLASS_BITS	(FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | \ -				 FAN_CLASS_PRE_CONTENT) - -#define FAN_UNLIMITED_QUEUE	0x00000010 -#define FAN_UNLIMITED_MARKS	0x00000020 - -#define FAN_ALL_INIT_FLAGS	(FAN_CLOEXEC | FAN_NONBLOCK | \ -				 FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE |\ -				 FAN_UNLIMITED_MARKS) - -/* flags used for fanotify_modify_mark() */ -#define FAN_MARK_ADD		0x00000001 -#define FAN_MARK_REMOVE		0x00000002 -#define FAN_MARK_DONT_FOLLOW	0x00000004 -#define FAN_MARK_ONLYDIR	0x00000008 -#define FAN_MARK_MOUNT		0x00000010 -#define FAN_MARK_IGNORED_MASK	0x00000020 -#define FAN_MARK_IGNORED_SURV_MODIFY	0x00000040 -#define FAN_MARK_FLUSH		0x00000080 -#ifdef __KERNEL__  /* not valid from userspace, only kernel internal */  #define FAN_MARK_ONDIR		0x00000100 -#endif - -#define FAN_ALL_MARK_FLAGS	(FAN_MARK_ADD |\ -				 FAN_MARK_REMOVE |\ -				 FAN_MARK_DONT_FOLLOW |\ -				 FAN_MARK_ONLYDIR |\ -				 FAN_MARK_MOUNT |\ -				 FAN_MARK_IGNORED_MASK |\ -				 FAN_MARK_IGNORED_SURV_MODIFY |\ -				 FAN_MARK_FLUSH) - -/* - * All of the events - we build the list by hand so that we can add flags in - * the future and not break backward compatibility.  Apps will get only the - * events that they originally wanted.  Be sure to add new events here! - */ -#define FAN_ALL_EVENTS (FAN_ACCESS |\ -			FAN_MODIFY |\ -			FAN_CLOSE |\ -			FAN_OPEN) - -/* - * All events which require a permission response from userspace - */ -#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM |\ -			     FAN_ACCESS_PERM) - -#define FAN_ALL_OUTGOING_EVENTS	(FAN_ALL_EVENTS |\ -				 FAN_ALL_PERM_EVENTS |\ -				 FAN_Q_OVERFLOW) - -#define FANOTIFY_METADATA_VERSION	3 - -struct fanotify_event_metadata { -	__u32 event_len; -	__u8 vers; -	__u8 reserved; -	__u16 metadata_len; -	__aligned_u64 mask; -	__s32 fd; -	__s32 pid; -}; - -struct fanotify_response { -	__s32 fd; -	__u32 response; -}; - -/* Legit userspace responses to a _PERM event */ -#define FAN_ALLOW	0x01 -#define FAN_DENY	0x02 -/* No fd set in event */ -#define FAN_NOFD	-1 - -/* Helper functions to deal with fanotify_event_metadata buffers */ -#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata)) - -#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, \ -				   (struct fanotify_event_metadata*)(((char *)(meta)) + \ -				   (meta)->event_len)) - -#define FAN_EVENT_OK(meta, len)	((long)(len) >= (long)FAN_EVENT_METADATA_LEN && \ -				(long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && \ -				(long)(meta)->event_len <= (long)(len)) -  #endif /* _LINUX_FANOTIFY_H */ diff --git a/include/linux/fb.h b/include/linux/fb.h index ac3f1c60584..c7a95714b1f 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -1,409 +1,10 @@  #ifndef _LINUX_FB_H  #define _LINUX_FB_H -#include <linux/types.h> -#include <linux/i2c.h> -#ifdef __KERNEL__  #include <linux/kgdb.h> -#endif /* __KERNEL__ */ +#include <uapi/linux/fb.h> -/* Definitions of frame buffers						*/ - -#define FB_MAX			32	/* sufficient for now */ - -/* ioctls -   0x46 is 'F'								*/ -#define FBIOGET_VSCREENINFO	0x4600 -#define FBIOPUT_VSCREENINFO	0x4601 -#define FBIOGET_FSCREENINFO	0x4602 -#define FBIOGETCMAP		0x4604 -#define FBIOPUTCMAP		0x4605 -#define FBIOPAN_DISPLAY		0x4606 -#ifdef __KERNEL__  #define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor_user) -#else -#define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor) -#endif -/* 0x4607-0x460B are defined below */ -/* #define FBIOGET_MONITORSPEC	0x460C */ -/* #define FBIOPUT_MONITORSPEC	0x460D */ -/* #define FBIOSWITCH_MONIBIT	0x460E */ -#define FBIOGET_CON2FBMAP	0x460F -#define FBIOPUT_CON2FBMAP	0x4610 -#define FBIOBLANK		0x4611		/* arg: 0 or vesa level + 1 */ -#define FBIOGET_VBLANK		_IOR('F', 0x12, struct fb_vblank) -#define FBIO_ALLOC              0x4613 -#define FBIO_FREE               0x4614 -#define FBIOGET_GLYPH           0x4615 -#define FBIOGET_HWCINFO         0x4616 -#define FBIOPUT_MODEINFO        0x4617 -#define FBIOGET_DISPINFO        0x4618 -#define FBIO_WAITFORVSYNC	_IOW('F', 0x20, __u32) - -#define FB_TYPE_PACKED_PIXELS		0	/* Packed Pixels	*/ -#define FB_TYPE_PLANES			1	/* Non interleaved planes */ -#define FB_TYPE_INTERLEAVED_PLANES	2	/* Interleaved planes	*/ -#define FB_TYPE_TEXT			3	/* Text/attributes	*/ -#define FB_TYPE_VGA_PLANES		4	/* EGA/VGA planes	*/ -#define FB_TYPE_FOURCC			5	/* Type identified by a V4L2 FOURCC */ - -#define FB_AUX_TEXT_MDA		0	/* Monochrome text */ -#define FB_AUX_TEXT_CGA		1	/* CGA/EGA/VGA Color text */ -#define FB_AUX_TEXT_S3_MMIO	2	/* S3 MMIO fasttext */ -#define FB_AUX_TEXT_MGA_STEP16	3	/* MGA Millenium I: text, attr, 14 reserved bytes */ -#define FB_AUX_TEXT_MGA_STEP8	4	/* other MGAs:      text, attr,  6 reserved bytes */ -#define FB_AUX_TEXT_SVGA_GROUP	8	/* 8-15: SVGA tileblit compatible modes */ -#define FB_AUX_TEXT_SVGA_MASK	7	/* lower three bits says step */ -#define FB_AUX_TEXT_SVGA_STEP2	8	/* SVGA text mode:  text, attr */ -#define FB_AUX_TEXT_SVGA_STEP4	9	/* SVGA text mode:  text, attr,  2 reserved bytes */ -#define FB_AUX_TEXT_SVGA_STEP8	10	/* SVGA text mode:  text, attr,  6 reserved bytes */ -#define FB_AUX_TEXT_SVGA_STEP16	11	/* SVGA text mode:  text, attr, 14 reserved bytes */ -#define FB_AUX_TEXT_SVGA_LAST	15	/* reserved up to 15 */ - -#define FB_AUX_VGA_PLANES_VGA4		0	/* 16 color planes (EGA/VGA) */ -#define FB_AUX_VGA_PLANES_CFB4		1	/* CFB4 in planes (VGA) */ -#define FB_AUX_VGA_PLANES_CFB8		2	/* CFB8 in planes (VGA) */ - -#define FB_VISUAL_MONO01		0	/* Monochr. 1=Black 0=White */ -#define FB_VISUAL_MONO10		1	/* Monochr. 1=White 0=Black */ -#define FB_VISUAL_TRUECOLOR		2	/* True color	*/ -#define FB_VISUAL_PSEUDOCOLOR		3	/* Pseudo color (like atari) */ -#define FB_VISUAL_DIRECTCOLOR		4	/* Direct color */ -#define FB_VISUAL_STATIC_PSEUDOCOLOR	5	/* Pseudo color readonly */ -#define FB_VISUAL_FOURCC		6	/* Visual identified by a V4L2 FOURCC */ - -#define FB_ACCEL_NONE		0	/* no hardware accelerator	*/ -#define FB_ACCEL_ATARIBLITT	1	/* Atari Blitter		*/ -#define FB_ACCEL_AMIGABLITT	2	/* Amiga Blitter                */ -#define FB_ACCEL_S3_TRIO64	3	/* Cybervision64 (S3 Trio64)    */ -#define FB_ACCEL_NCR_77C32BLT	4	/* RetinaZ3 (NCR 77C32BLT)      */ -#define FB_ACCEL_S3_VIRGE	5	/* Cybervision64/3D (S3 ViRGE)	*/ -#define FB_ACCEL_ATI_MACH64GX	6	/* ATI Mach 64GX family		*/ -#define FB_ACCEL_DEC_TGA	7	/* DEC 21030 TGA		*/ -#define FB_ACCEL_ATI_MACH64CT	8	/* ATI Mach 64CT family		*/ -#define FB_ACCEL_ATI_MACH64VT	9	/* ATI Mach 64CT family VT class */ -#define FB_ACCEL_ATI_MACH64GT	10	/* ATI Mach 64CT family GT class */ -#define FB_ACCEL_SUN_CREATOR	11	/* Sun Creator/Creator3D	*/ -#define FB_ACCEL_SUN_CGSIX	12	/* Sun cg6			*/ -#define FB_ACCEL_SUN_LEO	13	/* Sun leo/zx			*/ -#define FB_ACCEL_IMS_TWINTURBO	14	/* IMS Twin Turbo		*/ -#define FB_ACCEL_3DLABS_PERMEDIA2 15	/* 3Dlabs Permedia 2		*/ -#define FB_ACCEL_MATROX_MGA2064W 16	/* Matrox MGA2064W (Millenium)	*/ -#define FB_ACCEL_MATROX_MGA1064SG 17	/* Matrox MGA1064SG (Mystique)	*/ -#define FB_ACCEL_MATROX_MGA2164W 18	/* Matrox MGA2164W (Millenium II) */ -#define FB_ACCEL_MATROX_MGA2164W_AGP 19	/* Matrox MGA2164W (Millenium II) */ -#define FB_ACCEL_MATROX_MGAG100	20	/* Matrox G100 (Productiva G100) */ -#define FB_ACCEL_MATROX_MGAG200	21	/* Matrox G200 (Myst, Mill, ...) */ -#define FB_ACCEL_SUN_CG14	22	/* Sun cgfourteen		 */ -#define FB_ACCEL_SUN_BWTWO	23	/* Sun bwtwo			*/ -#define FB_ACCEL_SUN_CGTHREE	24	/* Sun cgthree			*/ -#define FB_ACCEL_SUN_TCX	25	/* Sun tcx			*/ -#define FB_ACCEL_MATROX_MGAG400	26	/* Matrox G400			*/ -#define FB_ACCEL_NV3		27	/* nVidia RIVA 128              */ -#define FB_ACCEL_NV4		28	/* nVidia RIVA TNT		*/ -#define FB_ACCEL_NV5		29	/* nVidia RIVA TNT2		*/ -#define FB_ACCEL_CT_6555x	30	/* C&T 6555x			*/ -#define FB_ACCEL_3DFX_BANSHEE	31	/* 3Dfx Banshee			*/ -#define FB_ACCEL_ATI_RAGE128	32	/* ATI Rage128 family		*/ -#define FB_ACCEL_IGS_CYBER2000	33	/* CyberPro 2000		*/ -#define FB_ACCEL_IGS_CYBER2010	34	/* CyberPro 2010		*/ -#define FB_ACCEL_IGS_CYBER5000	35	/* CyberPro 5000		*/ -#define FB_ACCEL_SIS_GLAMOUR    36	/* SiS 300/630/540              */ -#define FB_ACCEL_3DLABS_PERMEDIA3 37	/* 3Dlabs Permedia 3		*/ -#define FB_ACCEL_ATI_RADEON	38	/* ATI Radeon family		*/ -#define FB_ACCEL_I810           39      /* Intel 810/815                */ -#define FB_ACCEL_SIS_GLAMOUR_2  40	/* SiS 315, 650, 740		*/ -#define FB_ACCEL_SIS_XABRE      41	/* SiS 330 ("Xabre")		*/ -#define FB_ACCEL_I830           42      /* Intel 830M/845G/85x/865G     */ -#define FB_ACCEL_NV_10          43      /* nVidia Arch 10               */ -#define FB_ACCEL_NV_20          44      /* nVidia Arch 20               */ -#define FB_ACCEL_NV_30          45      /* nVidia Arch 30               */ -#define FB_ACCEL_NV_40          46      /* nVidia Arch 40               */ -#define FB_ACCEL_XGI_VOLARI_V	47	/* XGI Volari V3XT, V5, V8      */ -#define FB_ACCEL_XGI_VOLARI_Z	48	/* XGI Volari Z7                */ -#define FB_ACCEL_OMAP1610	49	/* TI OMAP16xx                  */ -#define FB_ACCEL_TRIDENT_TGUI	50	/* Trident TGUI			*/ -#define FB_ACCEL_TRIDENT_3DIMAGE 51	/* Trident 3DImage		*/ -#define FB_ACCEL_TRIDENT_BLADE3D 52	/* Trident Blade3D		*/ -#define FB_ACCEL_TRIDENT_BLADEXP 53	/* Trident BladeXP		*/ -#define FB_ACCEL_CIRRUS_ALPINE   53	/* Cirrus Logic 543x/544x/5480	*/ -#define FB_ACCEL_NEOMAGIC_NM2070 90	/* NeoMagic NM2070              */ -#define FB_ACCEL_NEOMAGIC_NM2090 91	/* NeoMagic NM2090              */ -#define FB_ACCEL_NEOMAGIC_NM2093 92	/* NeoMagic NM2093              */ -#define FB_ACCEL_NEOMAGIC_NM2097 93	/* NeoMagic NM2097              */ -#define FB_ACCEL_NEOMAGIC_NM2160 94	/* NeoMagic NM2160              */ -#define FB_ACCEL_NEOMAGIC_NM2200 95	/* NeoMagic NM2200              */ -#define FB_ACCEL_NEOMAGIC_NM2230 96	/* NeoMagic NM2230              */ -#define FB_ACCEL_NEOMAGIC_NM2360 97	/* NeoMagic NM2360              */ -#define FB_ACCEL_NEOMAGIC_NM2380 98	/* NeoMagic NM2380              */ -#define FB_ACCEL_PXA3XX		 99	/* PXA3xx			*/ - -#define FB_ACCEL_SAVAGE4        0x80	/* S3 Savage4                   */ -#define FB_ACCEL_SAVAGE3D       0x81	/* S3 Savage3D                  */ -#define FB_ACCEL_SAVAGE3D_MV    0x82	/* S3 Savage3D-MV               */ -#define FB_ACCEL_SAVAGE2000     0x83	/* S3 Savage2000                */ -#define FB_ACCEL_SAVAGE_MX_MV   0x84	/* S3 Savage/MX-MV              */ -#define FB_ACCEL_SAVAGE_MX      0x85	/* S3 Savage/MX                 */ -#define FB_ACCEL_SAVAGE_IX_MV   0x86	/* S3 Savage/IX-MV              */ -#define FB_ACCEL_SAVAGE_IX      0x87	/* S3 Savage/IX                 */ -#define FB_ACCEL_PROSAVAGE_PM   0x88	/* S3 ProSavage PM133           */ -#define FB_ACCEL_PROSAVAGE_KM   0x89	/* S3 ProSavage KM133           */ -#define FB_ACCEL_S3TWISTER_P    0x8a	/* S3 Twister                   */ -#define FB_ACCEL_S3TWISTER_K    0x8b	/* S3 TwisterK                  */ -#define FB_ACCEL_SUPERSAVAGE    0x8c    /* S3 Supersavage               */ -#define FB_ACCEL_PROSAVAGE_DDR  0x8d	/* S3 ProSavage DDR             */ -#define FB_ACCEL_PROSAVAGE_DDRK 0x8e	/* S3 ProSavage DDR-K           */ - -#define FB_ACCEL_PUV3_UNIGFX	0xa0	/* PKUnity-v3 Unigfx		*/ - -#define FB_CAP_FOURCC		1	/* Device supports FOURCC-based formats */ - -struct fb_fix_screeninfo { -	char id[16];			/* identification string eg "TT Builtin" */ -	unsigned long smem_start;	/* Start of frame buffer mem */ -					/* (physical address) */ -	__u32 smem_len;			/* Length of frame buffer mem */ -	__u32 type;			/* see FB_TYPE_*		*/ -	__u32 type_aux;			/* Interleave for interleaved Planes */ -	__u32 visual;			/* see FB_VISUAL_*		*/  -	__u16 xpanstep;			/* zero if no hardware panning  */ -	__u16 ypanstep;			/* zero if no hardware panning  */ -	__u16 ywrapstep;		/* zero if no hardware ywrap    */ -	__u32 line_length;		/* length of a line in bytes    */ -	unsigned long mmio_start;	/* Start of Memory Mapped I/O   */ -					/* (physical address) */ -	__u32 mmio_len;			/* Length of Memory Mapped I/O  */ -	__u32 accel;			/* Indicate to driver which	*/ -					/*  specific chip/card we have	*/ -	__u16 capabilities;		/* see FB_CAP_*			*/ -	__u16 reserved[2];		/* Reserved for future compatibility */ -}; - -/* Interpretation of offset for color fields: All offsets are from the right, - * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you - * can use the offset as right argument to <<). A pixel afterwards is a bit - * stream and is written to video memory as that unmodified. - * - * For pseudocolor: offset and length should be the same for all color - * components. Offset specifies the position of the least significant bit - * of the pallette index in a pixel value. Length indicates the number - * of available palette entries (i.e. # of entries = 1 << length). - */ -struct fb_bitfield { -	__u32 offset;			/* beginning of bitfield	*/ -	__u32 length;			/* length of bitfield		*/ -	__u32 msb_right;		/* != 0 : Most significant bit is */  -					/* right */  -}; - -#define FB_NONSTD_HAM		1	/* Hold-And-Modify (HAM)        */ -#define FB_NONSTD_REV_PIX_IN_B	2	/* order of pixels in each byte is reversed */ - -#define FB_ACTIVATE_NOW		0	/* set values immediately (or vbl)*/ -#define FB_ACTIVATE_NXTOPEN	1	/* activate on next open	*/ -#define FB_ACTIVATE_TEST	2	/* don't set, round up impossible */ -#define FB_ACTIVATE_MASK       15 -					/* values			*/ -#define FB_ACTIVATE_VBL	       16	/* activate values on next vbl  */ -#define FB_CHANGE_CMAP_VBL     32	/* change colormap on vbl	*/ -#define FB_ACTIVATE_ALL	       64	/* change all VCs on this fb	*/ -#define FB_ACTIVATE_FORCE     128	/* force apply even when no change*/ -#define FB_ACTIVATE_INV_MODE  256       /* invalidate videomode */ - -#define FB_ACCELF_TEXT		1	/* (OBSOLETE) see fb_info.flags and vc_mode */ - -#define FB_SYNC_HOR_HIGH_ACT	1	/* horizontal sync high active	*/ -#define FB_SYNC_VERT_HIGH_ACT	2	/* vertical sync high active	*/ -#define FB_SYNC_EXT		4	/* external sync		*/ -#define FB_SYNC_COMP_HIGH_ACT	8	/* composite sync high active   */ -#define FB_SYNC_BROADCAST	16	/* broadcast video timings      */ -					/* vtotal = 144d/288n/576i => PAL  */ -					/* vtotal = 121d/242n/484i => NTSC */ -#define FB_SYNC_ON_GREEN	32	/* sync on green */ - -#define FB_VMODE_NONINTERLACED  0	/* non interlaced */ -#define FB_VMODE_INTERLACED	1	/* interlaced	*/ -#define FB_VMODE_DOUBLE		2	/* double scan */ -#define FB_VMODE_ODD_FLD_FIRST	4	/* interlaced: top line first */ -#define FB_VMODE_MASK		255 - -#define FB_VMODE_YWRAP		256	/* ywrap instead of panning     */ -#define FB_VMODE_SMOOTH_XPAN	512	/* smooth xpan possible (internally used) */ -#define FB_VMODE_CONUPDATE	512	/* don't update x/yoffset	*/ - -/* - * Display rotation support - */ -#define FB_ROTATE_UR      0 -#define FB_ROTATE_CW      1 -#define FB_ROTATE_UD      2 -#define FB_ROTATE_CCW     3 - -#define PICOS2KHZ(a) (1000000000UL/(a)) -#define KHZ2PICOS(a) (1000000000UL/(a)) - -struct fb_var_screeninfo { -	__u32 xres;			/* visible resolution		*/ -	__u32 yres; -	__u32 xres_virtual;		/* virtual resolution		*/ -	__u32 yres_virtual; -	__u32 xoffset;			/* offset from virtual to visible */ -	__u32 yoffset;			/* resolution			*/ - -	__u32 bits_per_pixel;		/* guess what			*/ -	__u32 grayscale;		/* 0 = color, 1 = grayscale,	*/ -					/* >1 = FOURCC			*/ -	struct fb_bitfield red;		/* bitfield in fb mem if true color, */ -	struct fb_bitfield green;	/* else only length is significant */ -	struct fb_bitfield blue; -	struct fb_bitfield transp;	/* transparency			*/	 - -	__u32 nonstd;			/* != 0 Non standard pixel format */ - -	__u32 activate;			/* see FB_ACTIVATE_*		*/ - -	__u32 height;			/* height of picture in mm    */ -	__u32 width;			/* width of picture in mm     */ - -	__u32 accel_flags;		/* (OBSOLETE) see fb_info.flags */ - -	/* Timing: All values in pixclocks, except pixclock (of course) */ -	__u32 pixclock;			/* pixel clock in ps (pico seconds) */ -	__u32 left_margin;		/* time from sync to picture	*/ -	__u32 right_margin;		/* time from picture to sync	*/ -	__u32 upper_margin;		/* time from sync to picture	*/ -	__u32 lower_margin; -	__u32 hsync_len;		/* length of horizontal sync	*/ -	__u32 vsync_len;		/* length of vertical sync	*/ -	__u32 sync;			/* see FB_SYNC_*		*/ -	__u32 vmode;			/* see FB_VMODE_*		*/ -	__u32 rotate;			/* angle we rotate counter clockwise */ -	__u32 colorspace;		/* colorspace for FOURCC-based modes */ -	__u32 reserved[4];		/* Reserved for future compatibility */ -}; - -struct fb_cmap { -	__u32 start;			/* First entry	*/ -	__u32 len;			/* Number of entries */ -	__u16 *red;			/* Red values	*/ -	__u16 *green; -	__u16 *blue; -	__u16 *transp;			/* transparency, can be NULL */ -}; - -struct fb_con2fbmap { -	__u32 console; -	__u32 framebuffer; -}; - -/* VESA Blanking Levels */ -#define VESA_NO_BLANKING        0 -#define VESA_VSYNC_SUSPEND      1 -#define VESA_HSYNC_SUSPEND      2 -#define VESA_POWERDOWN          3 - - -enum { -	/* screen: unblanked, hsync: on,  vsync: on */ -	FB_BLANK_UNBLANK       = VESA_NO_BLANKING, - -	/* screen: blanked,   hsync: on,  vsync: on */ -	FB_BLANK_NORMAL        = VESA_NO_BLANKING + 1, - -	/* screen: blanked,   hsync: on,  vsync: off */ -	FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1, - -	/* screen: blanked,   hsync: off, vsync: on */ -	FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1, - -	/* screen: blanked,   hsync: off, vsync: off */ -	FB_BLANK_POWERDOWN     = VESA_POWERDOWN + 1 -}; - -#define FB_VBLANK_VBLANKING	0x001	/* currently in a vertical blank */ -#define FB_VBLANK_HBLANKING	0x002	/* currently in a horizontal blank */ -#define FB_VBLANK_HAVE_VBLANK	0x004	/* vertical blanks can be detected */ -#define FB_VBLANK_HAVE_HBLANK	0x008	/* horizontal blanks can be detected */ -#define FB_VBLANK_HAVE_COUNT	0x010	/* global retrace counter is available */ -#define FB_VBLANK_HAVE_VCOUNT	0x020	/* the vcount field is valid */ -#define FB_VBLANK_HAVE_HCOUNT	0x040	/* the hcount field is valid */ -#define FB_VBLANK_VSYNCING	0x080	/* currently in a vsync */ -#define FB_VBLANK_HAVE_VSYNC	0x100	/* verical syncs can be detected */ - -struct fb_vblank { -	__u32 flags;			/* FB_VBLANK flags */ -	__u32 count;			/* counter of retraces since boot */ -	__u32 vcount;			/* current scanline position */ -	__u32 hcount;			/* current scandot position */ -	__u32 reserved[4];		/* reserved for future compatibility */ -}; - -/* Internal HW accel */ -#define ROP_COPY 0 -#define ROP_XOR  1 - -struct fb_copyarea { -	__u32 dx; -	__u32 dy; -	__u32 width; -	__u32 height; -	__u32 sx; -	__u32 sy; -}; - -struct fb_fillrect { -	__u32 dx;	/* screen-relative */ -	__u32 dy; -	__u32 width; -	__u32 height; -	__u32 color; -	__u32 rop; -}; - -struct fb_image { -	__u32 dx;		/* Where to place image */ -	__u32 dy; -	__u32 width;		/* Size of image */ -	__u32 height; -	__u32 fg_color;		/* Only used when a mono bitmap */ -	__u32 bg_color; -	__u8  depth;		/* Depth of the image */ -	const char *data;	/* Pointer to image data */ -	struct fb_cmap cmap;	/* color map info */ -}; - -/* - * hardware cursor control - */ - -#define FB_CUR_SETIMAGE 0x01 -#define FB_CUR_SETPOS   0x02 -#define FB_CUR_SETHOT   0x04 -#define FB_CUR_SETCMAP  0x08 -#define FB_CUR_SETSHAPE 0x10 -#define FB_CUR_SETSIZE	0x20 -#define FB_CUR_SETALL   0xFF - -struct fbcurpos { -	__u16 x, y; -}; - -struct fb_cursor { -	__u16 set;		/* what to set */ -	__u16 enable;		/* cursor on/off */ -	__u16 rop;		/* bitop operation */ -	const char *mask;	/* cursor mask bits */ -	struct fbcurpos hot;	/* cursor hot spot */ -	struct fb_image	image;	/* Cursor image */ -}; - -#ifdef CONFIG_FB_BACKLIGHT -/* Settings for the generic backlight code */ -#define FB_BACKLIGHT_LEVELS	128 -#define FB_BACKLIGHT_MAX	0xFF -#endif - -#ifdef __KERNEL__  #include <linux/fs.h>  #include <linux/init.h> @@ -1181,6 +782,4 @@ extern int fb_find_mode(struct fb_var_screeninfo *var,  			const struct fb_videomode *default_mode,  			unsigned int default_bpp); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_FB_H */ diff --git a/include/linux/fcntl.h b/include/linux/fcntl.h index f550f894ba1..76ce329e656 100644 --- a/include/linux/fcntl.h +++ b/include/linux/fcntl.h @@ -1,54 +1,8 @@  #ifndef _LINUX_FCNTL_H  #define _LINUX_FCNTL_H -#include <asm/fcntl.h> +#include <uapi/linux/fcntl.h> -#define F_SETLEASE	(F_LINUX_SPECIFIC_BASE + 0) -#define F_GETLEASE	(F_LINUX_SPECIFIC_BASE + 1) - -/* - * Cancel a blocking posix lock; internal use only until we expose an - * asynchronous lock api to userspace: - */ -#define F_CANCELLK	(F_LINUX_SPECIFIC_BASE + 5) - -/* Create a file descriptor with FD_CLOEXEC set. */ -#define F_DUPFD_CLOEXEC	(F_LINUX_SPECIFIC_BASE + 6) - -/* - * Request nofications on a directory. - * See below for events that may be notified. - */ -#define F_NOTIFY	(F_LINUX_SPECIFIC_BASE+2) - -/* - * Set and get of pipe page size array - */ -#define F_SETPIPE_SZ	(F_LINUX_SPECIFIC_BASE + 7) -#define F_GETPIPE_SZ	(F_LINUX_SPECIFIC_BASE + 8) - -/* - * Types of directory notifications that may be requested. - */ -#define DN_ACCESS	0x00000001	/* File accessed */ -#define DN_MODIFY	0x00000002	/* File modified */ -#define DN_CREATE	0x00000004	/* File created */ -#define DN_DELETE	0x00000008	/* File removed */ -#define DN_RENAME	0x00000010	/* File renamed */ -#define DN_ATTRIB	0x00000020	/* File changed attibutes */ -#define DN_MULTISHOT	0x80000000	/* Don't remove notifier */ - -#define AT_FDCWD		-100    /* Special value used to indicate -                                           openat should use the current -                                           working directory. */ -#define AT_SYMLINK_NOFOLLOW	0x100   /* Do not follow symbolic links.  */ -#define AT_REMOVEDIR		0x200   /* Remove directory instead of -                                           unlinking file.  */ -#define AT_SYMLINK_FOLLOW	0x400   /* Follow symbolic links.  */ -#define AT_NO_AUTOMOUNT		0x800	/* Suppress terminal automount traversal */ -#define AT_EMPTY_PATH		0x1000	/* Allow empty relative pathname */ - -#ifdef __KERNEL__  #ifndef force_o_largefile  #define force_o_largefile() (BITS_PER_LONG != 32) @@ -74,6 +28,4 @@  #define IS_SETLK(cmd)	(IS_SETLK32(cmd)  || IS_SETLK64(cmd))  #define IS_SETLKW(cmd)	(IS_SETLKW32(cmd) || IS_SETLKW64(cmd)) -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/fd.h b/include/linux/fd.h index 72202b1b9a6..69275bccc3e 100644 --- a/include/linux/fd.h +++ b/include/linux/fd.h @@ -1,384 +1,8 @@  #ifndef _LINUX_FD_H  #define _LINUX_FD_H -#include <linux/ioctl.h> -#include <linux/compiler.h> +#include <uapi/linux/fd.h> -/* New file layout: Now the ioctl definitions immediately follow the - * definitions of the structures that they use */ - -/* - * Geometry - */ -struct floppy_struct { -	unsigned int	size,		/* nr of sectors total */ -			sect,		/* sectors per track */ -			head,		/* nr of heads */ -			track,		/* nr of tracks */ -			stretch;	/* bit 0 !=0 means double track steps */ -					/* bit 1 != 0 means swap sides */ -					/* bits 2..9 give the first sector */ -					/*  number (the LSB is flipped) */ -#define FD_STRETCH 1 -#define FD_SWAPSIDES 2 -#define FD_ZEROBASED 4 -#define FD_SECTBASEMASK 0x3FC -#define FD_MKSECTBASE(s) (((s) ^ 1) << 2) -#define FD_SECTBASE(floppy) ((((floppy)->stretch & FD_SECTBASEMASK) >> 2) ^ 1) - -	unsigned char	gap,		/* gap1 size */ - -			rate,		/* data rate. |= 0x40 for perpendicular */ -#define FD_2M 0x4 -#define FD_SIZECODEMASK 0x38 -#define FD_SIZECODE(floppy) (((((floppy)->rate&FD_SIZECODEMASK)>> 3)+ 2) %8) -#define FD_SECTSIZE(floppy) ( (floppy)->rate & FD_2M ? \ -			     512 : 128 << FD_SIZECODE(floppy) ) -#define FD_PERP 0x40 - -			spec1,		/* stepping rate, head unload time */ -			fmt_gap;	/* gap2 size */ -	const char	* name; /* used only for predefined formats */ -}; - - -/* commands needing write access have 0x40 set */ -/* commands needing super user access have 0x80 set */ - -#define FDCLRPRM _IO(2, 0x41) -/* clear user-defined parameters */ - -#define FDSETPRM _IOW(2, 0x42, struct floppy_struct)  -#define FDSETMEDIAPRM FDSETPRM -/* set user-defined parameters for current media */ - -#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct)  -#define FDGETPRM _IOR(2, 0x04, struct floppy_struct) -#define FDDEFMEDIAPRM FDDEFPRM -#define FDGETMEDIAPRM FDGETPRM -/* set/get disk parameters */ - - -#define	FDMSGON  _IO(2,0x45) -#define	FDMSGOFF _IO(2,0x46) -/* issue/don't issue kernel messages on media type change */ - - -/*  - * Formatting (obsolete) - */ -#define FD_FILL_BYTE 0xF6 /* format fill byte. */ - -struct format_descr { -	unsigned int device,head,track; -}; - -#define FDFMTBEG _IO(2,0x47) -/* begin formatting a disk */ -#define	FDFMTTRK _IOW(2,0x48, struct format_descr) -/* format the specified track */ -#define FDFMTEND _IO(2,0x49) -/* end formatting a disk */ - - -/* - * Error thresholds - */ -struct floppy_max_errors { -	unsigned int -	  abort,      /* number of errors to be reached before aborting */ -	  read_track, /* maximal number of errors permitted to read an -		       * entire track at once */ -	  reset,      /* maximal number of errors before a reset is tried */ -	  recal,      /* maximal number of errors before a recalibrate is -		       * tried */ - -	  /* -	   * Threshold for reporting FDC errors to the console. -	   * Setting this to zero may flood your screen when using -	   * ultra cheap floppies ;-) -	   */ -	  reporting; - -}; - -#define FDSETEMSGTRESH	_IO(2,0x4a) -/* set fdc error reporting threshold */ - -#define FDFLUSH  _IO(2,0x4b) -/* flush buffers for media; either for verifying media, or for - * handling a media change without closing the file descriptor */ - -#define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors) -#define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors) -/* set/get abortion and read_track threshold. See also floppy_drive_params - * structure */ - - -typedef char floppy_drive_name[16]; -#define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name) -/* get drive type: 5 1/4 or 3 1/2 */ - - -/* - * Drive parameters (user modifiable) - */ -struct floppy_drive_params { -	signed char cmos;		/* CMOS type */ -	 -	/* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms  -	 * etc) and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA). -	 */ -	unsigned long max_dtr;		/* Step rate, usec */ -	unsigned long hlt;     		/* Head load/settle time, msec */ -	unsigned long hut;     		/* Head unload time (remnant of  -					 * 8" drives) */ -	unsigned long srt;     		/* Step rate, usec */ - -	unsigned long spinup;		/* time needed for spinup (expressed -					 * in jiffies) */ -	unsigned long spindown;		/* timeout needed for spindown */ -	unsigned char spindown_offset;	/* decides in which position the disk -					 * will stop */ -	unsigned char select_delay;	/* delay to wait after select */ -	unsigned char rps;		/* rotations per second */ -	unsigned char tracks;		/* maximum number of tracks */ -	unsigned long timeout;		/* timeout for interrupt requests */ -	 -	unsigned char interleave_sect;	/* if there are more sectors, use  -					 * interleave */ -	 -	struct floppy_max_errors max_errors; -	 -	char flags;			/* various flags, including ftd_msg */ -/* - * Announce successful media type detection and media information loss after - * disk changes. - * Also used to enable/disable printing of overrun warnings. - */ - -#define FTD_MSG 0x10 -#define FD_BROKEN_DCL 0x20 -#define FD_DEBUG 0x02 -#define FD_SILENT_DCL_CLEAR 0x4 -#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware  -				considerations */ - -	char read_track;		/* use readtrack during probing? */ - -/* - * Auto-detection. Each drive type has eight formats which are - * used in succession to try to read the disk. If the FDC cannot lock onto - * the disk, the next format is tried. This uses the variable 'probing'. - */ -	short autodetect[8];		/* autodetected formats */ -	 -	int checkfreq; /* how often should the drive be checked for disk  -			* changes */ -	int native_format; /* native format of this drive */ -}; - -enum { -	FD_NEED_TWADDLE_BIT,	/* more magic */ -	FD_VERIFY_BIT,		/* inquire for write protection */ -	FD_DISK_NEWCHANGE_BIT,	/* change detected, and no action undertaken yet -				 * to clear media change status */ -	FD_UNUSED_BIT, -	FD_DISK_CHANGED_BIT,	/* disk has been changed since last i/o */ -	FD_DISK_WRITABLE_BIT	/* disk is writable */ -}; - -#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) -#define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params) -/* set/get drive parameters */ - - -/* - * Current drive state (not directly modifiable by user, readonly) - */ -struct floppy_drive_struct { -	unsigned long flags; -/* values for these flags */ -#define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT) -#define FD_VERIFY (1 << FD_VERIFY_BIT) -#define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT) -#define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT) -#define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT) - -	unsigned long spinup_date; -	unsigned long select_date; -	unsigned long first_read_date; -	short probed_format; -	short track; /* current track */ -	short maxblock; /* id of highest block read */ -	short maxtrack; /* id of highest half track read */ -	int generation; /* how many diskchanges? */ - -/* - * (User-provided) media information is _not_ discarded after a media change - * if the corresponding keep_data flag is non-zero. Positive values are - * decremented after each probe. - */ -	int keep_data; -	 -	/* Prevent "aliased" accesses. */ -	int fd_ref; -	int fd_device; -	unsigned long last_checked; /* when was the drive last checked for a disk  -			   * change? */ -	 -	char *dmabuf; -	int bufblocks; -}; - -#define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct) -#define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct) -/* get drive state: GET returns the cached state, POLL polls for new state */ - - -/* - * reset FDC - */ -enum reset_mode { -	FD_RESET_IF_NEEDED,	/* reset only if the reset flags is set */ -	FD_RESET_IF_RAWCMD,	/* obsolete */ -	FD_RESET_ALWAYS		/* reset always */ -}; -#define FDRESET _IO(2, 0x54) - - -/* - * FDC state - */ -struct floppy_fdc_state {	 -	int spec1;		/* spec1 value last used */ -	int spec2;		/* spec2 value last used */ -	int dtr; -	unsigned char version;	/* FDC version code */ -	unsigned char dor; -	unsigned long address;	/* io address */ -	unsigned int rawcmd:2; -	unsigned int reset:1; -	unsigned int need_configure:1; -	unsigned int perp_mode:2; -	unsigned int has_fifo:1; -	unsigned int driver_version;	/* version code for floppy driver */ -#define FD_DRIVER_VERSION 0x100 -/* user programs using the floppy API should use floppy_fdc_state to - * get the version number of the floppy driver that they are running - * on. If this version number is bigger than the one compiled into the - * user program (the FD_DRIVER_VERSION define), it should be prepared - * to bigger structures - */ - -	unsigned char track[4]; -	/* Position of the heads of the 4 units attached to this FDC, -	 * as stored on the FDC. In the future, the position as stored -	 * on the FDC might not agree with the actual physical -	 * position of these drive heads. By allowing such -	 * disagreement, it will be possible to reset the FDC without -	 * incurring the expensive cost of repositioning all heads. -	 * Right now, these positions are hard wired to 0. */ - -}; - -#define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state) - - -/* - * Asynchronous Write error tracking - */ -struct floppy_write_errors { -	/* Write error logging. -	 * -	 * These fields can be cleared with the FDWERRORCLR ioctl. -	 * Only writes that were attempted but failed due to a physical media -	 * error are logged.  write(2) calls that fail and return an error code -	 * to the user process are not counted. -	 */ - -	unsigned int write_errors;  /* number of physical write errors  -				     * encountered */ -	 -	/* position of first and last write errors */ -	unsigned long first_error_sector; -	int           first_error_generation; -	unsigned long last_error_sector; -	int           last_error_generation; -	 -	unsigned int badness; /* highest retry count for a read or write  -			       * operation */ -}; - -#define FDWERRORCLR  _IO(2, 0x56) -/* clear write error and badness information */ -#define FDWERRORGET  _IOR(2, 0x17, struct floppy_write_errors) -/* get write error and badness information */ - - -/* - * Raw commands - */ -/* new interface flag: now we can do them in batches */ -#define FDHAVEBATCHEDRAWCMD - -struct floppy_raw_cmd { -	unsigned int flags; -#define FD_RAW_READ 1 -#define FD_RAW_WRITE 2 -#define FD_RAW_NO_MOTOR 4 -#define FD_RAW_DISK_CHANGE 4 /* out: disk change flag was set */ -#define FD_RAW_INTR 8    /* wait for an interrupt */ -#define FD_RAW_SPIN 0x10 /* spin up the disk for this command */ -#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command  -				    * completion */ -#define FD_RAW_NEED_DISK 0x40  /* this command needs a disk to be present */ -#define FD_RAW_NEED_SEEK 0x80  /* this command uses an implied seek (soft) */ - -/* more "in" flags */ -#define FD_RAW_MORE 0x100  /* more records follow */ -#define FD_RAW_STOP_IF_FAILURE 0x200 /* stop if we encounter a failure */ -#define FD_RAW_STOP_IF_SUCCESS 0x400 /* stop if command successful */ -#define FD_RAW_SOFTFAILURE 0x800 /* consider the return value for failure -				  * detection too */ - -/* more "out" flags */ -#define FD_RAW_FAILURE 0x10000 /* command sent to fdc, fdc returned error */ -#define FD_RAW_HARDFAILURE 0x20000 /* fdc had to be reset, or timed out */ - -	void __user *data; -	char *kernel_data; /* location of data buffer in the kernel */ -	struct floppy_raw_cmd *next; /* used for chaining of raw cmd's  -				      * within the kernel */ -	long length; /* in: length of dma transfer. out: remaining bytes */ -	long phys_length; /* physical length, if different from dma length */ -	int buffer_length; /* length of allocated buffer */ - -	unsigned char rate; -	unsigned char cmd_count; -	unsigned char cmd[16]; -	unsigned char reply_count; -	unsigned char reply[16]; -	int track; -	int resultcode; - -	int reserved1; -	int reserved2; -}; - -#define FDRAWCMD _IO(2, 0x58) -/* send a raw command to the fdc. Structure size not included, because of - * batches */ - -#define FDTWADDLE _IO(2, 0x59) -/* flicker motor-on bit before reading a sector. Experimental */ - - -#define FDEJECT _IO(2, 0x5a) -/* eject the disk */ - - -#ifdef __KERNEL__  #ifdef CONFIG_COMPAT  #include <linux/compat.h> @@ -398,5 +22,3 @@ struct compat_floppy_struct {  #define FDGETPRM32 _IOR(2, 0x04, struct compat_floppy_struct)  #endif  #endif - -#endif diff --git a/include/linux/fdreg.h b/include/linux/fdreg.h deleted file mode 100644 index 61ce6416900..00000000000 --- a/include/linux/fdreg.h +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef _LINUX_FDREG_H -#define _LINUX_FDREG_H -/* - * This file contains some defines for the floppy disk controller. - * Various sources. Mostly "IBM Microcomputers: A Programmers - * Handbook", Sanches and Canton. - */ - -#ifdef FDPATCHES -#define FD_IOPORT fdc_state[fdc].address -#else -/* It would be a lot saner just to force fdc_state[fdc].address to always -   be set ! FIXME */ -#define FD_IOPORT 0x3f0 -#endif - -/* Fd controller regs. S&C, about page 340 */ -#define FD_STATUS	(4 + FD_IOPORT ) -#define FD_DATA		(5 + FD_IOPORT ) - -/* Digital Output Register */ -#define FD_DOR		(2 + FD_IOPORT ) - -/* Digital Input Register (read) */ -#define FD_DIR		(7 + FD_IOPORT ) - -/* Diskette Control Register (write)*/ -#define FD_DCR		(7 + FD_IOPORT ) - -/* Bits of main status register */ -#define STATUS_BUSYMASK	0x0F		/* drive busy mask */ -#define STATUS_BUSY	0x10		/* FDC busy */ -#define STATUS_DMA	0x20		/* 0- DMA mode */ -#define STATUS_DIR	0x40		/* 0- cpu->fdc */ -#define STATUS_READY	0x80		/* Data reg ready */ - -/* Bits of FD_ST0 */ -#define ST0_DS		0x03		/* drive select mask */ -#define ST0_HA		0x04		/* Head (Address) */ -#define ST0_NR		0x08		/* Not Ready */ -#define ST0_ECE		0x10		/* Equipment check error */ -#define ST0_SE		0x20		/* Seek end */ -#define ST0_INTR	0xC0		/* Interrupt code mask */ - -/* Bits of FD_ST1 */ -#define ST1_MAM		0x01		/* Missing Address Mark */ -#define ST1_WP		0x02		/* Write Protect */ -#define ST1_ND		0x04		/* No Data - unreadable */ -#define ST1_OR		0x10		/* OverRun */ -#define ST1_CRC		0x20		/* CRC error in data or addr */ -#define ST1_EOC		0x80		/* End Of Cylinder */ - -/* Bits of FD_ST2 */ -#define ST2_MAM		0x01		/* Missing Address Mark (again) */ -#define ST2_BC		0x02		/* Bad Cylinder */ -#define ST2_SNS		0x04		/* Scan Not Satisfied */ -#define ST2_SEH		0x08		/* Scan Equal Hit */ -#define ST2_WC		0x10		/* Wrong Cylinder */ -#define ST2_CRC		0x20		/* CRC error in data field */ -#define ST2_CM		0x40		/* Control Mark = deleted */ - -/* Bits of FD_ST3 */ -#define ST3_HA		0x04		/* Head (Address) */ -#define ST3_DS		0x08		/* drive is double-sided */ -#define ST3_TZ		0x10		/* Track Zero signal (1=track 0) */ -#define ST3_RY		0x20		/* drive is ready */ -#define ST3_WP		0x40		/* Write Protect */ -#define ST3_FT		0x80		/* Drive Fault */ - -/* Values for FD_COMMAND */ -#define FD_RECALIBRATE		0x07	/* move to track 0 */ -#define FD_SEEK			0x0F	/* seek track */ -#define FD_READ			0xE6	/* read with MT, MFM, SKip deleted */ -#define FD_WRITE		0xC5	/* write with MT, MFM */ -#define FD_SENSEI		0x08	/* Sense Interrupt Status */ -#define FD_SPECIFY		0x03	/* specify HUT etc */ -#define FD_FORMAT		0x4D	/* format one track */ -#define FD_VERSION		0x10	/* get version code */ -#define FD_CONFIGURE		0x13	/* configure FIFO operation */ -#define FD_PERPENDICULAR	0x12	/* perpendicular r/w mode */ -#define FD_GETSTATUS		0x04	/* read ST3 */ -#define FD_DUMPREGS		0x0E	/* dump the contents of the fdc regs */ -#define FD_READID		0xEA	/* prints the header of a sector */ -#define FD_UNLOCK		0x14	/* Fifo config unlock */ -#define FD_LOCK			0x94	/* Fifo config lock */ -#define FD_RSEEK_OUT		0x8f	/* seek out (i.e. to lower tracks) */ -#define FD_RSEEK_IN		0xcf	/* seek in (i.e. to higher tracks) */ - -/* the following commands are new in the 82078. They are not used in the - * floppy driver, except the first three. These commands may be useful for apps - * which use the FDRAWCMD interface. For doc, get the 82078 spec sheets at - * http://www.intel.com/design/archives/periphrl/docs/29046803.htm */ - -#define FD_PARTID		0x18	/* part id ("extended" version cmd) */ -#define FD_SAVE			0x2e	/* save fdc regs for later restore */ -#define FD_DRIVESPEC		0x8e	/* drive specification: Access to the -					 * 2 Mbps data transfer rate for tape -					 * drives */ - -#define FD_RESTORE		0x4e    /* later restore */ -#define FD_POWERDOWN		0x27	/* configure FDC's powersave features */ -#define FD_FORMAT_N_WRITE	0xef    /* format and write in one go. */ -#define FD_OPTION		0x33	/* ISO format (which is a clean way to -					 * pack more sectors on a track) */ - -/* DMA commands */ -#define DMA_READ	0x46 -#define DMA_WRITE	0x4A - -/* FDC version return types */ -#define FDC_NONE	0x00 -#define FDC_UNKNOWN	0x10	/* DO NOT USE THIS TYPE EXCEPT IF IDENTIFICATION -				   FAILS EARLY */ -#define FDC_8272A	0x20	/* Intel 8272a, NEC 765 */ -#define FDC_765ED	0x30	/* Non-Intel 1MB-compatible FDC, can't detect */ -#define FDC_82072	0x40	/* Intel 82072; 8272a + FIFO + DUMPREGS */ -#define FDC_82072A	0x45	/* 82072A (on Sparcs) */ -#define FDC_82077_ORIG	0x51	/* Original version of 82077AA, sans LOCK */ -#define FDC_82077	0x52	/* 82077AA-1 */ -#define FDC_82078_UNKN	0x5f	/* Unknown 82078 variant */ -#define FDC_82078	0x60	/* 44pin 82078 or 64pin 82078SL */ -#define FDC_82078_1	0x61	/* 82078-1 (2Mbps fdc) */ -#define FDC_S82078B	0x62	/* S82078B (first seen on Adaptec AVA-2825 VLB -				 * SCSI/EIDE/Floppy controller) */ -#define FDC_87306	0x63	/* National Semiconductor PC 87306 */ - -/* - * Beware: the fdc type list is roughly sorted by increasing features. - * Presence of features is tested by comparing the FDC version id with the - * "oldest" version that has the needed feature. - * If during FDC detection, an obscure test fails late in the sequence, don't - * assign FDC_UNKNOWN. Else the FDC will be treated as a dumb 8272a, or worse. - * This is especially true if the tests are unneeded. - */ - -#define FD_RESET_DELAY 20 -#endif diff --git a/include/linux/fib_rules.h b/include/linux/fib_rules.h deleted file mode 100644 index 51da65b68b8..00000000000 --- a/include/linux/fib_rules.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __LINUX_FIB_RULES_H -#define __LINUX_FIB_RULES_H - -#include <linux/types.h> -#include <linux/rtnetlink.h> - -/* rule is permanent, and cannot be deleted */ -#define FIB_RULE_PERMANENT	0x00000001 -#define FIB_RULE_INVERT		0x00000002 -#define FIB_RULE_UNRESOLVED	0x00000004 -#define FIB_RULE_IIF_DETACHED	0x00000008 -#define FIB_RULE_DEV_DETACHED	FIB_RULE_IIF_DETACHED -#define FIB_RULE_OIF_DETACHED	0x00000010 - -/* try to find source address in routing lookups */ -#define FIB_RULE_FIND_SADDR	0x00010000 - -struct fib_rule_hdr { -	__u8		family; -	__u8		dst_len; -	__u8		src_len; -	__u8		tos; - -	__u8		table; -	__u8		res1;	/* reserved */ -	__u8		res2;	/* reserved */ -	__u8		action; - -	__u32		flags; -}; - -enum { -	FRA_UNSPEC, -	FRA_DST,	/* destination address */ -	FRA_SRC,	/* source address */ -	FRA_IIFNAME,	/* interface name */ -#define FRA_IFNAME	FRA_IIFNAME -	FRA_GOTO,	/* target to jump to (FR_ACT_GOTO) */ -	FRA_UNUSED2, -	FRA_PRIORITY,	/* priority/preference */ -	FRA_UNUSED3, -	FRA_UNUSED4, -	FRA_UNUSED5, -	FRA_FWMARK,	/* mark */ -	FRA_FLOW,	/* flow/class id */ -	FRA_UNUSED6, -	FRA_UNUSED7, -	FRA_UNUSED8, -	FRA_TABLE,	/* Extended table id */ -	FRA_FWMASK,	/* mask for netfilter mark */ -	FRA_OIFNAME, -	__FRA_MAX -}; - -#define FRA_MAX (__FRA_MAX - 1) - -enum { -	FR_ACT_UNSPEC, -	FR_ACT_TO_TBL,		/* Pass to fixed table */ -	FR_ACT_GOTO,		/* Jump to another rule */ -	FR_ACT_NOP,		/* No operation */ -	FR_ACT_RES3, -	FR_ACT_RES4, -	FR_ACT_BLACKHOLE,	/* Drop without notification */ -	FR_ACT_UNREACHABLE,	/* Drop with ENETUNREACH */ -	FR_ACT_PROHIBIT,	/* Drop with EACCES */ -	__FR_ACT_MAX, -}; - -#define FR_ACT_MAX (__FR_ACT_MAX - 1) - -#endif diff --git a/include/linux/fiemap.h b/include/linux/fiemap.h deleted file mode 100644 index d830747f5c0..00000000000 --- a/include/linux/fiemap.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * FS_IOC_FIEMAP ioctl infrastructure. - * - * Some portions copyright (C) 2007 Cluster File Systems, Inc - * - * Authors: Mark Fasheh <mfasheh@suse.com> - *          Kalpak Shah <kalpak.shah@sun.com> - *          Andreas Dilger <adilger@sun.com> - */ - -#ifndef _LINUX_FIEMAP_H -#define _LINUX_FIEMAP_H - -#include <linux/types.h> - -struct fiemap_extent { -	__u64 fe_logical;  /* logical offset in bytes for the start of -			    * the extent from the beginning of the file */ -	__u64 fe_physical; /* physical offset in bytes for the start -			    * of the extent from the beginning of the disk */ -	__u64 fe_length;   /* length in bytes for this extent */ -	__u64 fe_reserved64[2]; -	__u32 fe_flags;    /* FIEMAP_EXTENT_* flags for this extent */ -	__u32 fe_reserved[3]; -}; - -struct fiemap { -	__u64 fm_start;		/* logical offset (inclusive) at -				 * which to start mapping (in) */ -	__u64 fm_length;	/* logical length of mapping which -				 * userspace wants (in) */ -	__u32 fm_flags;		/* FIEMAP_FLAG_* flags for request (in/out) */ -	__u32 fm_mapped_extents;/* number of extents that were mapped (out) */ -	__u32 fm_extent_count;  /* size of fm_extents array (in) */ -	__u32 fm_reserved; -	struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ -}; - -#define FIEMAP_MAX_OFFSET	(~0ULL) - -#define FIEMAP_FLAG_SYNC	0x00000001 /* sync file data before map */ -#define FIEMAP_FLAG_XATTR	0x00000002 /* map extended attribute tree */ - -#define FIEMAP_FLAGS_COMPAT	(FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR) - -#define FIEMAP_EXTENT_LAST		0x00000001 /* Last extent in file. */ -#define FIEMAP_EXTENT_UNKNOWN		0x00000002 /* Data location unknown. */ -#define FIEMAP_EXTENT_DELALLOC		0x00000004 /* Location still pending. -						    * Sets EXTENT_UNKNOWN. */ -#define FIEMAP_EXTENT_ENCODED		0x00000008 /* Data can not be read -						    * while fs is unmounted */ -#define FIEMAP_EXTENT_DATA_ENCRYPTED	0x00000080 /* Data is encrypted by fs. -						    * Sets EXTENT_NO_BYPASS. */ -#define FIEMAP_EXTENT_NOT_ALIGNED	0x00000100 /* Extent offsets may not be -						    * block aligned. */ -#define FIEMAP_EXTENT_DATA_INLINE	0x00000200 /* Data mixed with metadata. -						    * Sets EXTENT_NOT_ALIGNED.*/ -#define FIEMAP_EXTENT_DATA_TAIL		0x00000400 /* Multiple files in block. -						    * Sets EXTENT_NOT_ALIGNED.*/ -#define FIEMAP_EXTENT_UNWRITTEN		0x00000800 /* Space allocated, but -						    * no data (i.e. zero). */ -#define FIEMAP_EXTENT_MERGED		0x00001000 /* File does not natively -						    * support extents. Result -						    * merged for efficiency. */ -#define FIEMAP_EXTENT_SHARED		0x00002000 /* Space shared with other -						    * files. */ - -#endif /* _LINUX_FIEMAP_H */ diff --git a/include/linux/filter.h b/include/linux/filter.h index 2ded090e10f..24d251f3bab 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -1,141 +1,12 @@  /*   * Linux Socket Filter Data Structures   */ -  #ifndef __LINUX_FILTER_H__  #define __LINUX_FILTER_H__ -#include <linux/compiler.h> -#include <linux/types.h> - -#ifdef __KERNEL__  #include <linux/atomic.h>  #include <linux/compat.h> -#endif - -/* - * Current version of the filter code architecture. - */ -#define BPF_MAJOR_VERSION 1 -#define BPF_MINOR_VERSION 1 - -/* - *	Try and keep these values and structures similar to BSD, especially - *	the BPF code definitions which need to match so you can share filters - */ -  -struct sock_filter {	/* Filter block */ -	__u16	code;   /* Actual filter code */ -	__u8	jt;	/* Jump true */ -	__u8	jf;	/* Jump false */ -	__u32	k;      /* Generic multiuse field */ -}; - -struct sock_fprog {	/* Required for SO_ATTACH_FILTER. */ -	unsigned short		len;	/* Number of filter blocks */ -	struct sock_filter __user *filter; -}; - -/* - * Instruction classes - */ - -#define BPF_CLASS(code) ((code) & 0x07) -#define         BPF_LD          0x00 -#define         BPF_LDX         0x01 -#define         BPF_ST          0x02 -#define         BPF_STX         0x03 -#define         BPF_ALU         0x04 -#define         BPF_JMP         0x05 -#define         BPF_RET         0x06 -#define         BPF_MISC        0x07 - -/* ld/ldx fields */ -#define BPF_SIZE(code)  ((code) & 0x18) -#define         BPF_W           0x00 -#define         BPF_H           0x08 -#define         BPF_B           0x10 -#define BPF_MODE(code)  ((code) & 0xe0) -#define         BPF_IMM         0x00 -#define         BPF_ABS         0x20 -#define         BPF_IND         0x40 -#define         BPF_MEM         0x60 -#define         BPF_LEN         0x80 -#define         BPF_MSH         0xa0 - -/* alu/jmp fields */ -#define BPF_OP(code)    ((code) & 0xf0) -#define         BPF_ADD         0x00 -#define         BPF_SUB         0x10 -#define         BPF_MUL         0x20 -#define         BPF_DIV         0x30 -#define         BPF_OR          0x40 -#define         BPF_AND         0x50 -#define         BPF_LSH         0x60 -#define         BPF_RSH         0x70 -#define         BPF_NEG         0x80 -#define		BPF_MOD		0x90 -#define		BPF_XOR		0xa0 - -#define         BPF_JA          0x00 -#define         BPF_JEQ         0x10 -#define         BPF_JGT         0x20 -#define         BPF_JGE         0x30 -#define         BPF_JSET        0x40 -#define BPF_SRC(code)   ((code) & 0x08) -#define         BPF_K           0x00 -#define         BPF_X           0x08 - -/* ret - BPF_K and BPF_X also apply */ -#define BPF_RVAL(code)  ((code) & 0x18) -#define         BPF_A           0x10 - -/* misc */ -#define BPF_MISCOP(code) ((code) & 0xf8) -#define         BPF_TAX         0x00 -#define         BPF_TXA         0x80 - -#ifndef BPF_MAXINSNS -#define BPF_MAXINSNS 4096 -#endif - -/* - * Macros for filter block array initializers. - */ -#ifndef BPF_STMT -#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k } -#endif -#ifndef BPF_JUMP -#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k } -#endif - -/* - * Number of scratch memory words for: BPF_ST and BPF_STX - */ -#define BPF_MEMWORDS 16 - -/* RATIONALE. Negative offsets are invalid in BPF. -   We use them to reference ancillary data. -   Unlike introduction new instructions, it does not break -   existing compilers/optimizers. - */ -#define SKF_AD_OFF    (-0x1000) -#define SKF_AD_PROTOCOL 0 -#define SKF_AD_PKTTYPE 	4 -#define SKF_AD_IFINDEX 	8 -#define SKF_AD_NLATTR	12 -#define SKF_AD_NLATTR_NEST	16 -#define SKF_AD_MARK 	20 -#define SKF_AD_QUEUE	24 -#define SKF_AD_HATYPE	28 -#define SKF_AD_RXHASH	32 -#define SKF_AD_CPU	36 -#define SKF_AD_ALU_XOR_X	40 -#define SKF_AD_MAX	44 -#define SKF_NET_OFF   (-0x100000) -#define SKF_LL_OFF    (-0x200000) - -#ifdef __KERNEL__ +#include <uapi/linux/filter.h>  #ifdef CONFIG_COMPAT  /* @@ -254,6 +125,4 @@ enum {  	BPF_S_ANC_SECCOMP_LD_W,  }; -#endif /* __KERNEL__ */ -  #endif /* __LINUX_FILTER_H__ */ diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h deleted file mode 100644 index d5003695349..00000000000 --- a/include/linux/firewire-cdev.h +++ /dev/null @@ -1,1039 +0,0 @@ -/* - * Char device interface. - * - * Copyright (C) 2005-2007  Kristian Hoegsberg <krh@bitplanet.net> - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#ifndef _LINUX_FIREWIRE_CDEV_H -#define _LINUX_FIREWIRE_CDEV_H - -#include <linux/ioctl.h> -#include <linux/types.h> -#include <linux/firewire-constants.h> - -/* available since kernel version 2.6.22 */ -#define FW_CDEV_EVENT_BUS_RESET				0x00 -#define FW_CDEV_EVENT_RESPONSE				0x01 -#define FW_CDEV_EVENT_REQUEST				0x02 -#define FW_CDEV_EVENT_ISO_INTERRUPT			0x03 - -/* available since kernel version 2.6.30 */ -#define FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED		0x04 -#define FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED		0x05 - -/* available since kernel version 2.6.36 */ -#define FW_CDEV_EVENT_REQUEST2				0x06 -#define FW_CDEV_EVENT_PHY_PACKET_SENT			0x07 -#define FW_CDEV_EVENT_PHY_PACKET_RECEIVED		0x08 -#define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL	0x09 - -/** - * struct fw_cdev_event_common - Common part of all fw_cdev_event_ types - * @closure:	For arbitrary use by userspace - * @type:	Discriminates the fw_cdev_event_ types - * - * This struct may be used to access generic members of all fw_cdev_event_ - * types regardless of the specific type. - * - * Data passed in the @closure field for a request will be returned in the - * corresponding event.  It is big enough to hold a pointer on all platforms. - * The ioctl used to set @closure depends on the @type of event. - */ -struct fw_cdev_event_common { -	__u64 closure; -	__u32 type; -}; - -/** - * struct fw_cdev_event_bus_reset - Sent when a bus reset occurred - * @closure:	See &fw_cdev_event_common; set by %FW_CDEV_IOC_GET_INFO ioctl - * @type:	See &fw_cdev_event_common; always %FW_CDEV_EVENT_BUS_RESET - * @node_id:       New node ID of this node - * @local_node_id: Node ID of the local node, i.e. of the controller - * @bm_node_id:    Node ID of the bus manager - * @irm_node_id:   Node ID of the iso resource manager - * @root_node_id:  Node ID of the root node - * @generation:    New bus generation - * - * This event is sent when the bus the device belongs to goes through a bus - * reset.  It provides information about the new bus configuration, such as - * new node ID for this device, new root ID, and others. - * - * If @bm_node_id is 0xffff right after bus reset it can be reread by an - * %FW_CDEV_IOC_GET_INFO ioctl after bus manager selection was finished. - * Kernels with ABI version < 4 do not set @bm_node_id. - */ -struct fw_cdev_event_bus_reset { -	__u64 closure; -	__u32 type; -	__u32 node_id; -	__u32 local_node_id; -	__u32 bm_node_id; -	__u32 irm_node_id; -	__u32 root_node_id; -	__u32 generation; -}; - -/** - * struct fw_cdev_event_response - Sent when a response packet was received - * @closure:	See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_REQUEST - *		or %FW_CDEV_IOC_SEND_BROADCAST_REQUEST - *		or %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl - * @type:	See &fw_cdev_event_common; always %FW_CDEV_EVENT_RESPONSE - * @rcode:	Response code returned by the remote node - * @length:	Data length, i.e. the response's payload size in bytes - * @data:	Payload data, if any - * - * This event is sent when the stack receives a response to an outgoing request - * sent by %FW_CDEV_IOC_SEND_REQUEST ioctl.  The payload data for responses - * carrying data (read and lock responses) follows immediately and can be - * accessed through the @data field. - * - * The event is also generated after conclusions of transactions that do not - * involve response packets.  This includes unified write transactions, - * broadcast write transactions, and transmission of asynchronous stream - * packets.  @rcode indicates success or failure of such transmissions. - */ -struct fw_cdev_event_response { -	__u64 closure; -	__u32 type; -	__u32 rcode; -	__u32 length; -	__u32 data[0]; -}; - -/** - * struct fw_cdev_event_request - Old version of &fw_cdev_event_request2 - * @type:	See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST - * - * This event is sent instead of &fw_cdev_event_request2 if the kernel or - * the client implements ABI version <= 3.  &fw_cdev_event_request lacks - * essential information; use &fw_cdev_event_request2 instead. - */ -struct fw_cdev_event_request { -	__u64 closure; -	__u32 type; -	__u32 tcode; -	__u64 offset; -	__u32 handle; -	__u32 length; -	__u32 data[0]; -}; - -/** - * struct fw_cdev_event_request2 - Sent on incoming request to an address region - * @closure:	See &fw_cdev_event_common; set by %FW_CDEV_IOC_ALLOCATE ioctl - * @type:	See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST2 - * @tcode:	Transaction code of the incoming request - * @offset:	The offset into the 48-bit per-node address space - * @source_node_id: Sender node ID - * @destination_node_id: Destination node ID - * @card:	The index of the card from which the request came - * @generation:	Bus generation in which the request is valid - * @handle:	Reference to the kernel-side pending request - * @length:	Data length, i.e. the request's payload size in bytes - * @data:	Incoming data, if any - * - * This event is sent when the stack receives an incoming request to an address - * region registered using the %FW_CDEV_IOC_ALLOCATE ioctl.  The request is - * guaranteed to be completely contained in the specified region.  Userspace is - * responsible for sending the response by %FW_CDEV_IOC_SEND_RESPONSE ioctl, - * using the same @handle. - * - * The payload data for requests carrying data (write and lock requests) - * follows immediately and can be accessed through the @data field. - * - * Unlike &fw_cdev_event_request, @tcode of lock requests is one of the - * firewire-core specific %TCODE_LOCK_MASK_SWAP...%TCODE_LOCK_VENDOR_DEPENDENT, - * i.e. encodes the extended transaction code. - * - * @card may differ from &fw_cdev_get_info.card because requests are received - * from all cards of the Linux host.  @source_node_id, @destination_node_id, and - * @generation pertain to that card.  Destination node ID and bus generation may - * therefore differ from the corresponding fields of the last - * &fw_cdev_event_bus_reset. - * - * @destination_node_id may also differ from the current node ID because of a - * non-local bus ID part or in case of a broadcast write request.  Note, a - * client must call an %FW_CDEV_IOC_SEND_RESPONSE ioctl even in case of a - * broadcast write request; the kernel will then release the kernel-side pending - * request but will not actually send a response packet. - * - * In case of a write request to FCP_REQUEST or FCP_RESPONSE, the kernel already - * sent a write response immediately after the request was received; in this - * case the client must still call an %FW_CDEV_IOC_SEND_RESPONSE ioctl to - * release the kernel-side pending request, though another response won't be - * sent. - * - * If the client subsequently needs to initiate requests to the sender node of - * an &fw_cdev_event_request2, it needs to use a device file with matching - * card index, node ID, and generation for outbound requests. - */ -struct fw_cdev_event_request2 { -	__u64 closure; -	__u32 type; -	__u32 tcode; -	__u64 offset; -	__u32 source_node_id; -	__u32 destination_node_id; -	__u32 card; -	__u32 generation; -	__u32 handle; -	__u32 length; -	__u32 data[0]; -}; - -/** - * struct fw_cdev_event_iso_interrupt - Sent when an iso packet was completed - * @closure:	See &fw_cdev_event_common; - *		set by %FW_CDEV_CREATE_ISO_CONTEXT ioctl - * @type:	See &fw_cdev_event_common; always %FW_CDEV_EVENT_ISO_INTERRUPT - * @cycle:	Cycle counter of the last completed packet - * @header_length: Total length of following headers, in bytes - * @header:	Stripped headers, if any - * - * This event is sent when the controller has completed an &fw_cdev_iso_packet - * with the %FW_CDEV_ISO_INTERRUPT bit set, when explicitly requested with - * %FW_CDEV_IOC_FLUSH_ISO, or when there have been so many completed packets - * without the interrupt bit set that the kernel's internal buffer for @header - * is about to overflow.  (In the last case, kernels with ABI version < 5 drop - * header data up to the next interrupt packet.) - * - * Isochronous transmit events (context type %FW_CDEV_ISO_CONTEXT_TRANSMIT): - * - * In version 3 and some implementations of version 2 of the ABI, &header_length - * is a multiple of 4 and &header contains timestamps of all packets up until - * the interrupt packet.  The format of the timestamps is as described below for - * isochronous reception.  In version 1 of the ABI, &header_length was 0. - * - * Isochronous receive events (context type %FW_CDEV_ISO_CONTEXT_RECEIVE): - * - * The headers stripped of all packets up until and including the interrupt - * packet are returned in the @header field.  The amount of header data per - * packet is as specified at iso context creation by - * &fw_cdev_create_iso_context.header_size. - * - * Hence, _interrupt.header_length / _context.header_size is the number of - * packets received in this interrupt event.  The client can now iterate - * through the mmap()'ed DMA buffer according to this number of packets and - * to the buffer sizes as the client specified in &fw_cdev_queue_iso. - * - * Since version 2 of this ABI, the portion for each packet in _interrupt.header - * consists of the 1394 isochronous packet header, followed by a timestamp - * quadlet if &fw_cdev_create_iso_context.header_size > 4, followed by quadlets - * from the packet payload if &fw_cdev_create_iso_context.header_size > 8. - * - * Format of 1394 iso packet header:  16 bits data_length, 2 bits tag, 6 bits - * channel, 4 bits tcode, 4 bits sy, in big endian byte order. - * data_length is the actual received size of the packet without the four - * 1394 iso packet header bytes. - * - * Format of timestamp:  16 bits invalid, 3 bits cycleSeconds, 13 bits - * cycleCount, in big endian byte order. - * - * In version 1 of the ABI, no timestamp quadlet was inserted; instead, payload - * data followed directly after the 1394 is header if header_size > 4. - * Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2. - */ -struct fw_cdev_event_iso_interrupt { -	__u64 closure; -	__u32 type; -	__u32 cycle; -	__u32 header_length; -	__u32 header[0]; -}; - -/** - * struct fw_cdev_event_iso_interrupt_mc - An iso buffer chunk was completed - * @closure:	See &fw_cdev_event_common; - *		set by %FW_CDEV_CREATE_ISO_CONTEXT ioctl - * @type:	%FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL - * @completed:	Offset into the receive buffer; data before this offset is valid - * - * This event is sent in multichannel contexts (context type - * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL) for &fw_cdev_iso_packet buffer - * chunks that have been completely filled and that have the - * %FW_CDEV_ISO_INTERRUPT bit set, or when explicitly requested with - * %FW_CDEV_IOC_FLUSH_ISO. - * - * The buffer is continuously filled with the following data, per packet: - *  - the 1394 iso packet header as described at &fw_cdev_event_iso_interrupt, - *    but in little endian byte order, - *  - packet payload (as many bytes as specified in the data_length field of - *    the 1394 iso packet header) in big endian byte order, - *  - 0...3 padding bytes as needed to align the following trailer quadlet, - *  - trailer quadlet, containing the reception timestamp as described at - *    &fw_cdev_event_iso_interrupt, but in little endian byte order. - * - * Hence the per-packet size is data_length (rounded up to a multiple of 4) + 8. - * When processing the data, stop before a packet that would cross the - * @completed offset. - * - * A packet near the end of a buffer chunk will typically spill over into the - * next queued buffer chunk.  It is the responsibility of the client to check - * for this condition, assemble a broken-up packet from its parts, and not to - * re-queue any buffer chunks in which as yet unread packet parts reside. - */ -struct fw_cdev_event_iso_interrupt_mc { -	__u64 closure; -	__u32 type; -	__u32 completed; -}; - -/** - * struct fw_cdev_event_iso_resource - Iso resources were allocated or freed - * @closure:	See &fw_cdev_event_common; - *		set by %FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE) ioctl - * @type:	%FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or - *		%FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED - * @handle:	Reference by which an allocated resource can be deallocated - * @channel:	Isochronous channel which was (de)allocated, if any - * @bandwidth:	Bandwidth allocation units which were (de)allocated, if any - * - * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous - * resource was allocated at the IRM.  The client has to check @channel and - * @bandwidth for whether the allocation actually succeeded. - * - * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event is sent after an isochronous - * resource was deallocated at the IRM.  It is also sent when automatic - * reallocation after a bus reset failed. - * - * @channel is <0 if no channel was (de)allocated or if reallocation failed. - * @bandwidth is 0 if no bandwidth was (de)allocated or if reallocation failed. - */ -struct fw_cdev_event_iso_resource { -	__u64 closure; -	__u32 type; -	__u32 handle; -	__s32 channel; -	__s32 bandwidth; -}; - -/** - * struct fw_cdev_event_phy_packet - A PHY packet was transmitted or received - * @closure:	See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_PHY_PACKET - *		or %FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl - * @type:	%FW_CDEV_EVENT_PHY_PACKET_SENT or %..._RECEIVED - * @rcode:	%RCODE_..., indicates success or failure of transmission - * @length:	Data length in bytes - * @data:	Incoming data - * - * If @type is %FW_CDEV_EVENT_PHY_PACKET_SENT, @length is 0 and @data empty, - * except in case of a ping packet:  Then, @length is 4, and @data[0] is the - * ping time in 49.152MHz clocks if @rcode is %RCODE_COMPLETE. - * - * If @type is %FW_CDEV_EVENT_PHY_PACKET_RECEIVED, @length is 8 and @data - * consists of the two PHY packet quadlets, in host byte order. - */ -struct fw_cdev_event_phy_packet { -	__u64 closure; -	__u32 type; -	__u32 rcode; -	__u32 length; -	__u32 data[0]; -}; - -/** - * union fw_cdev_event - Convenience union of fw_cdev_event_ types - * @common:		Valid for all types - * @bus_reset:		Valid if @common.type == %FW_CDEV_EVENT_BUS_RESET - * @response:		Valid if @common.type == %FW_CDEV_EVENT_RESPONSE - * @request:		Valid if @common.type == %FW_CDEV_EVENT_REQUEST - * @request2:		Valid if @common.type == %FW_CDEV_EVENT_REQUEST2 - * @iso_interrupt:	Valid if @common.type == %FW_CDEV_EVENT_ISO_INTERRUPT - * @iso_interrupt_mc:	Valid if @common.type == - *				%FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL - * @iso_resource:	Valid if @common.type == - *				%FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or - *				%FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED - * @phy_packet:		Valid if @common.type == - *				%FW_CDEV_EVENT_PHY_PACKET_SENT or - *				%FW_CDEV_EVENT_PHY_PACKET_RECEIVED - * - * Convenience union for userspace use.  Events could be read(2) into an - * appropriately aligned char buffer and then cast to this union for further - * processing.  Note that for a request, response or iso_interrupt event, - * the data[] or header[] may make the size of the full event larger than - * sizeof(union fw_cdev_event).  Also note that if you attempt to read(2) - * an event into a buffer that is not large enough for it, the data that does - * not fit will be discarded so that the next read(2) will return a new event. - */ -union fw_cdev_event { -	struct fw_cdev_event_common		common; -	struct fw_cdev_event_bus_reset		bus_reset; -	struct fw_cdev_event_response		response; -	struct fw_cdev_event_request		request; -	struct fw_cdev_event_request2		request2;		/* added in 2.6.36 */ -	struct fw_cdev_event_iso_interrupt	iso_interrupt; -	struct fw_cdev_event_iso_interrupt_mc	iso_interrupt_mc;	/* added in 2.6.36 */ -	struct fw_cdev_event_iso_resource	iso_resource;		/* added in 2.6.30 */ -	struct fw_cdev_event_phy_packet		phy_packet;		/* added in 2.6.36 */ -}; - -/* available since kernel version 2.6.22 */ -#define FW_CDEV_IOC_GET_INFO           _IOWR('#', 0x00, struct fw_cdev_get_info) -#define FW_CDEV_IOC_SEND_REQUEST        _IOW('#', 0x01, struct fw_cdev_send_request) -#define FW_CDEV_IOC_ALLOCATE           _IOWR('#', 0x02, struct fw_cdev_allocate) -#define FW_CDEV_IOC_DEALLOCATE          _IOW('#', 0x03, struct fw_cdev_deallocate) -#define FW_CDEV_IOC_SEND_RESPONSE       _IOW('#', 0x04, struct fw_cdev_send_response) -#define FW_CDEV_IOC_INITIATE_BUS_RESET  _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset) -#define FW_CDEV_IOC_ADD_DESCRIPTOR     _IOWR('#', 0x06, struct fw_cdev_add_descriptor) -#define FW_CDEV_IOC_REMOVE_DESCRIPTOR   _IOW('#', 0x07, struct fw_cdev_remove_descriptor) -#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context) -#define FW_CDEV_IOC_QUEUE_ISO          _IOWR('#', 0x09, struct fw_cdev_queue_iso) -#define FW_CDEV_IOC_START_ISO           _IOW('#', 0x0a, struct fw_cdev_start_iso) -#define FW_CDEV_IOC_STOP_ISO            _IOW('#', 0x0b, struct fw_cdev_stop_iso) - -/* available since kernel version 2.6.24 */ -#define FW_CDEV_IOC_GET_CYCLE_TIMER     _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer) - -/* available since kernel version 2.6.30 */ -#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE       _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource) -#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE      _IOW('#', 0x0e, struct fw_cdev_deallocate) -#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE   _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource) -#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) -#define FW_CDEV_IOC_GET_SPEED                     _IO('#', 0x11) /* returns speed code */ -#define FW_CDEV_IOC_SEND_BROADCAST_REQUEST       _IOW('#', 0x12, struct fw_cdev_send_request) -#define FW_CDEV_IOC_SEND_STREAM_PACKET           _IOW('#', 0x13, struct fw_cdev_send_stream_packet) - -/* available since kernel version 2.6.34 */ -#define FW_CDEV_IOC_GET_CYCLE_TIMER2   _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2) - -/* available since kernel version 2.6.36 */ -#define FW_CDEV_IOC_SEND_PHY_PACKET    _IOWR('#', 0x15, struct fw_cdev_send_phy_packet) -#define FW_CDEV_IOC_RECEIVE_PHY_PACKETS _IOW('#', 0x16, struct fw_cdev_receive_phy_packets) -#define FW_CDEV_IOC_SET_ISO_CHANNELS    _IOW('#', 0x17, struct fw_cdev_set_iso_channels) - -/* available since kernel version 3.4 */ -#define FW_CDEV_IOC_FLUSH_ISO           _IOW('#', 0x18, struct fw_cdev_flush_iso) - -/* - * ABI version history - *  1  (2.6.22)  - initial version - *     (2.6.24)  - added %FW_CDEV_IOC_GET_CYCLE_TIMER - *  2  (2.6.30)  - changed &fw_cdev_event_iso_interrupt.header if - *                 &fw_cdev_create_iso_context.header_size is 8 or more - *               - added %FW_CDEV_IOC_*_ISO_RESOURCE*, - *                 %FW_CDEV_IOC_GET_SPEED, %FW_CDEV_IOC_SEND_BROADCAST_REQUEST, - *                 %FW_CDEV_IOC_SEND_STREAM_PACKET - *     (2.6.32)  - added time stamp to xmit &fw_cdev_event_iso_interrupt - *     (2.6.33)  - IR has always packet-per-buffer semantics now, not one of - *                 dual-buffer or packet-per-buffer depending on hardware - *               - shared use and auto-response for FCP registers - *  3  (2.6.34)  - made &fw_cdev_get_cycle_timer reliable - *               - added %FW_CDEV_IOC_GET_CYCLE_TIMER2 - *  4  (2.6.36)  - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_*, - *                 and &fw_cdev_allocate.region_end - *               - implemented &fw_cdev_event_bus_reset.bm_node_id - *               - added %FW_CDEV_IOC_SEND_PHY_PACKET, _RECEIVE_PHY_PACKETS - *               - added %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL, - *                 %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL, and - *                 %FW_CDEV_IOC_SET_ISO_CHANNELS - *  5  (3.4)     - send %FW_CDEV_EVENT_ISO_INTERRUPT events when needed to - *                 avoid dropping data - *               - added %FW_CDEV_IOC_FLUSH_ISO - */ - -/** - * struct fw_cdev_get_info - General purpose information ioctl - * @version:	The version field is just a running serial number.  Both an - *		input parameter (ABI version implemented by the client) and - *		output parameter (ABI version implemented by the kernel). - *		A client shall fill in the ABI @version for which the client - *		was implemented.  This is necessary for forward compatibility. - * @rom_length:	If @rom is non-zero, up to @rom_length bytes of Configuration - *		ROM will be copied into that user space address.  In either - *		case, @rom_length is updated with the actual length of the - *		Configuration ROM. - * @rom:	If non-zero, address of a buffer to be filled by a copy of the - *		device's Configuration ROM - * @bus_reset:	If non-zero, address of a buffer to be filled by a - *		&struct fw_cdev_event_bus_reset with the current state - *		of the bus.  This does not cause a bus reset to happen. - * @bus_reset_closure: Value of &closure in this and subsequent bus reset events - * @card:	The index of the card this device belongs to - * - * The %FW_CDEV_IOC_GET_INFO ioctl is usually the very first one which a client - * performs right after it opened a /dev/fw* file. - * - * As a side effect, reception of %FW_CDEV_EVENT_BUS_RESET events to be read(2) - * is started by this ioctl. - */ -struct fw_cdev_get_info { -	__u32 version; -	__u32 rom_length; -	__u64 rom; -	__u64 bus_reset; -	__u64 bus_reset_closure; -	__u32 card; -}; - -/** - * struct fw_cdev_send_request - Send an asynchronous request packet - * @tcode:	Transaction code of the request - * @length:	Length of outgoing payload, in bytes - * @offset:	48-bit offset at destination node - * @closure:	Passed back to userspace in the response event - * @data:	Userspace pointer to payload - * @generation:	The bus generation where packet is valid - * - * Send a request to the device.  This ioctl implements all outgoing requests. - * Both quadlet and block request specify the payload as a pointer to the data - * in the @data field.  Once the transaction completes, the kernel writes an - * &fw_cdev_event_response event back.  The @closure field is passed back to - * user space in the response event. - */ -struct fw_cdev_send_request { -	__u32 tcode; -	__u32 length; -	__u64 offset; -	__u64 closure; -	__u64 data; -	__u32 generation; -}; - -/** - * struct fw_cdev_send_response - Send an asynchronous response packet - * @rcode:	Response code as determined by the userspace handler - * @length:	Length of outgoing payload, in bytes - * @data:	Userspace pointer to payload - * @handle:	The handle from the &fw_cdev_event_request - * - * Send a response to an incoming request.  By setting up an address range using - * the %FW_CDEV_IOC_ALLOCATE ioctl, userspace can listen for incoming requests.  An - * incoming request will generate an %FW_CDEV_EVENT_REQUEST, and userspace must - * send a reply using this ioctl.  The event has a handle to the kernel-side - * pending transaction, which should be used with this ioctl. - */ -struct fw_cdev_send_response { -	__u32 rcode; -	__u32 length; -	__u64 data; -	__u32 handle; -}; - -/** - * struct fw_cdev_allocate - Allocate a CSR in an address range - * @offset:	Start offset of the address range - * @closure:	To be passed back to userspace in request events - * @length:	Length of the CSR, in bytes - * @handle:	Handle to the allocation, written by the kernel - * @region_end:	First address above the address range (added in ABI v4, 2.6.36) - * - * Allocate an address range in the 48-bit address space on the local node - * (the controller).  This allows userspace to listen for requests with an - * offset within that address range.  Every time when the kernel receives a - * request within the range, an &fw_cdev_event_request2 event will be emitted. - * (If the kernel or the client implements ABI version <= 3, an - * &fw_cdev_event_request will be generated instead.) - * - * The @closure field is passed back to userspace in these request events. - * The @handle field is an out parameter, returning a handle to the allocated - * range to be used for later deallocation of the range. - * - * The address range is allocated on all local nodes.  The address allocation - * is exclusive except for the FCP command and response registers.  If an - * exclusive address region is already in use, the ioctl fails with errno set - * to %EBUSY. - * - * If kernel and client implement ABI version >= 4, the kernel looks up a free - * spot of size @length inside [@offset..@region_end) and, if found, writes - * the start address of the new CSR back in @offset.  I.e. @offset is an - * in and out parameter.  If this automatic placement of a CSR in a bigger - * address range is not desired, the client simply needs to set @region_end - * = @offset + @length. - * - * If the kernel or the client implements ABI version <= 3, @region_end is - * ignored and effectively assumed to be @offset + @length. - * - * @region_end is only present in a kernel header >= 2.6.36.  If necessary, - * this can for example be tested by #ifdef FW_CDEV_EVENT_REQUEST2. - */ -struct fw_cdev_allocate { -	__u64 offset; -	__u64 closure; -	__u32 length; -	__u32 handle; -	__u64 region_end;	/* available since kernel version 2.6.36 */ -}; - -/** - * struct fw_cdev_deallocate - Free a CSR address range or isochronous resource - * @handle:	Handle to the address range or iso resource, as returned by the - *		kernel when the range or resource was allocated - */ -struct fw_cdev_deallocate { -	__u32 handle; -}; - -#define FW_CDEV_LONG_RESET	0 -#define FW_CDEV_SHORT_RESET	1 - -/** - * struct fw_cdev_initiate_bus_reset - Initiate a bus reset - * @type:	%FW_CDEV_SHORT_RESET or %FW_CDEV_LONG_RESET - * - * Initiate a bus reset for the bus this device is on.  The bus reset can be - * either the original (long) bus reset or the arbitrated (short) bus reset - * introduced in 1394a-2000. - * - * The ioctl returns immediately.  A subsequent &fw_cdev_event_bus_reset - * indicates when the reset actually happened.  Since ABI v4, this may be - * considerably later than the ioctl because the kernel ensures a grace period - * between subsequent bus resets as per IEEE 1394 bus management specification. - */ -struct fw_cdev_initiate_bus_reset { -	__u32 type; -}; - -/** - * struct fw_cdev_add_descriptor - Add contents to the local node's config ROM - * @immediate:	If non-zero, immediate key to insert before pointer - * @key:	Upper 8 bits of root directory pointer - * @data:	Userspace pointer to contents of descriptor block - * @length:	Length of descriptor block data, in quadlets - * @handle:	Handle to the descriptor, written by the kernel - * - * Add a descriptor block and optionally a preceding immediate key to the local - * node's Configuration ROM. - * - * The @key field specifies the upper 8 bits of the descriptor root directory - * pointer and the @data and @length fields specify the contents. The @key - * should be of the form 0xXX000000. The offset part of the root directory entry - * will be filled in by the kernel. - * - * If not 0, the @immediate field specifies an immediate key which will be - * inserted before the root directory pointer. - * - * @immediate, @key, and @data array elements are CPU-endian quadlets. - * - * If successful, the kernel adds the descriptor and writes back a @handle to - * the kernel-side object to be used for later removal of the descriptor block - * and immediate key.  The kernel will also generate a bus reset to signal the - * change of the Configuration ROM to other nodes. - * - * This ioctl affects the Configuration ROMs of all local nodes. - * The ioctl only succeeds on device files which represent a local node. - */ -struct fw_cdev_add_descriptor { -	__u32 immediate; -	__u32 key; -	__u64 data; -	__u32 length; -	__u32 handle; -}; - -/** - * struct fw_cdev_remove_descriptor - Remove contents from the Configuration ROM - * @handle:	Handle to the descriptor, as returned by the kernel when the - *		descriptor was added - * - * Remove a descriptor block and accompanying immediate key from the local - * nodes' Configuration ROMs.  The kernel will also generate a bus reset to - * signal the change of the Configuration ROM to other nodes. - */ -struct fw_cdev_remove_descriptor { -	__u32 handle; -}; - -#define FW_CDEV_ISO_CONTEXT_TRANSMIT			0 -#define FW_CDEV_ISO_CONTEXT_RECEIVE			1 -#define FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL	2 /* added in 2.6.36 */ - -/** - * struct fw_cdev_create_iso_context - Create a context for isochronous I/O - * @type:	%FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE or - *		%FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL - * @header_size: Header size to strip in single-channel reception - * @channel:	Channel to bind to in single-channel reception or transmission - * @speed:	Transmission speed - * @closure:	To be returned in &fw_cdev_event_iso_interrupt or - *		&fw_cdev_event_iso_interrupt_multichannel - * @handle:	Handle to context, written back by kernel - * - * Prior to sending or receiving isochronous I/O, a context must be created. - * The context records information about the transmit or receive configuration - * and typically maps to an underlying hardware resource.  A context is set up - * for either sending or receiving.  It is bound to a specific isochronous - * @channel. - * - * In case of multichannel reception, @header_size and @channel are ignored - * and the channels are selected by %FW_CDEV_IOC_SET_ISO_CHANNELS. - * - * For %FW_CDEV_ISO_CONTEXT_RECEIVE contexts, @header_size must be at least 4 - * and must be a multiple of 4.  It is ignored in other context types. - * - * @speed is ignored in receive context types. - * - * If a context was successfully created, the kernel writes back a handle to the - * context, which must be passed in for subsequent operations on that context. - * - * Limitations: - * No more than one iso context can be created per fd. - * The total number of contexts that all userspace and kernelspace drivers can - * create on a card at a time is a hardware limit, typically 4 or 8 contexts per - * direction, and of them at most one multichannel receive context. - */ -struct fw_cdev_create_iso_context { -	__u32 type; -	__u32 header_size; -	__u32 channel; -	__u32 speed; -	__u64 closure; -	__u32 handle; -}; - -/** - * struct fw_cdev_set_iso_channels - Select channels in multichannel reception - * @channels:	Bitmask of channels to listen to - * @handle:	Handle of the mutichannel receive context - * - * @channels is the bitwise or of 1ULL << n for each channel n to listen to. - * - * The ioctl fails with errno %EBUSY if there is already another receive context - * on a channel in @channels.  In that case, the bitmask of all unoccupied - * channels is returned in @channels. - */ -struct fw_cdev_set_iso_channels { -	__u64 channels; -	__u32 handle; -}; - -#define FW_CDEV_ISO_PAYLOAD_LENGTH(v)	(v) -#define FW_CDEV_ISO_INTERRUPT		(1 << 16) -#define FW_CDEV_ISO_SKIP		(1 << 17) -#define FW_CDEV_ISO_SYNC		(1 << 17) -#define FW_CDEV_ISO_TAG(v)		((v) << 18) -#define FW_CDEV_ISO_SY(v)		((v) << 20) -#define FW_CDEV_ISO_HEADER_LENGTH(v)	((v) << 24) - -/** - * struct fw_cdev_iso_packet - Isochronous packet - * @control:	Contains the header length (8 uppermost bits), - *		the sy field (4 bits), the tag field (2 bits), a sync flag - *		or a skip flag (1 bit), an interrupt flag (1 bit), and the - *		payload length (16 lowermost bits) - * @header:	Header and payload in case of a transmit context. - * - * &struct fw_cdev_iso_packet is used to describe isochronous packet queues. - * Use the FW_CDEV_ISO_ macros to fill in @control. - * The @header array is empty in case of receive contexts. - * - * Context type %FW_CDEV_ISO_CONTEXT_TRANSMIT: - * - * @control.HEADER_LENGTH must be a multiple of 4.  It specifies the numbers of - * bytes in @header that will be prepended to the packet's payload.  These bytes - * are copied into the kernel and will not be accessed after the ioctl has - * returned. - * - * The @control.SY and TAG fields are copied to the iso packet header.  These - * fields are specified by IEEE 1394a and IEC 61883-1. - * - * The @control.SKIP flag specifies that no packet is to be sent in a frame. - * When using this, all other fields except @control.INTERRUPT must be zero. - * - * When a packet with the @control.INTERRUPT flag set has been completed, an - * &fw_cdev_event_iso_interrupt event will be sent. - * - * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE: - * - * @control.HEADER_LENGTH must be a multiple of the context's header_size. - * If the HEADER_LENGTH is larger than the context's header_size, multiple - * packets are queued for this entry. - * - * The @control.SY and TAG fields are ignored. - * - * If the @control.SYNC flag is set, the context drops all packets until a - * packet with a sy field is received which matches &fw_cdev_start_iso.sync. - * - * @control.PAYLOAD_LENGTH defines how many payload bytes can be received for - * one packet (in addition to payload quadlets that have been defined as headers - * and are stripped and returned in the &fw_cdev_event_iso_interrupt structure). - * If more bytes are received, the additional bytes are dropped.  If less bytes - * are received, the remaining bytes in this part of the payload buffer will not - * be written to, not even by the next packet.  I.e., packets received in - * consecutive frames will not necessarily be consecutive in memory.  If an - * entry has queued multiple packets, the PAYLOAD_LENGTH is divided equally - * among them. - * - * When a packet with the @control.INTERRUPT flag set has been completed, an - * &fw_cdev_event_iso_interrupt event will be sent.  An entry that has queued - * multiple receive packets is completed when its last packet is completed. - * - * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL: - * - * Here, &fw_cdev_iso_packet would be more aptly named _iso_buffer_chunk since - * it specifies a chunk of the mmap()'ed buffer, while the number and alignment - * of packets to be placed into the buffer chunk is not known beforehand. - * - * @control.PAYLOAD_LENGTH is the size of the buffer chunk and specifies room - * for header, payload, padding, and trailer bytes of one or more packets. - * It must be a multiple of 4. - * - * @control.HEADER_LENGTH, TAG and SY are ignored.  SYNC is treated as described - * for single-channel reception. - * - * When a buffer chunk with the @control.INTERRUPT flag set has been filled - * entirely, an &fw_cdev_event_iso_interrupt_mc event will be sent. - */ -struct fw_cdev_iso_packet { -	__u32 control; -	__u32 header[0]; -}; - -/** - * struct fw_cdev_queue_iso - Queue isochronous packets for I/O - * @packets:	Userspace pointer to an array of &fw_cdev_iso_packet - * @data:	Pointer into mmap()'ed payload buffer - * @size:	Size of the @packets array, in bytes - * @handle:	Isochronous context handle - * - * Queue a number of isochronous packets for reception or transmission. - * This ioctl takes a pointer to an array of &fw_cdev_iso_packet structs, - * which describe how to transmit from or receive into a contiguous region - * of a mmap()'ed payload buffer.  As part of transmit packet descriptors, - * a series of headers can be supplied, which will be prepended to the - * payload during DMA. - * - * The kernel may or may not queue all packets, but will write back updated - * values of the @packets, @data and @size fields, so the ioctl can be - * resubmitted easily. - * - * In case of a multichannel receive context, @data must be quadlet-aligned - * relative to the buffer start. - */ -struct fw_cdev_queue_iso { -	__u64 packets; -	__u64 data; -	__u32 size; -	__u32 handle; -}; - -#define FW_CDEV_ISO_CONTEXT_MATCH_TAG0		 1 -#define FW_CDEV_ISO_CONTEXT_MATCH_TAG1		 2 -#define FW_CDEV_ISO_CONTEXT_MATCH_TAG2		 4 -#define FW_CDEV_ISO_CONTEXT_MATCH_TAG3		 8 -#define FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS	15 - -/** - * struct fw_cdev_start_iso - Start an isochronous transmission or reception - * @cycle:	Cycle in which to start I/O.  If @cycle is greater than or - *		equal to 0, the I/O will start on that cycle. - * @sync:	Determines the value to wait for for receive packets that have - *		the %FW_CDEV_ISO_SYNC bit set - * @tags:	Tag filter bit mask.  Only valid for isochronous reception. - *		Determines the tag values for which packets will be accepted. - *		Use FW_CDEV_ISO_CONTEXT_MATCH_ macros to set @tags. - * @handle:	Isochronous context handle within which to transmit or receive - */ -struct fw_cdev_start_iso { -	__s32 cycle; -	__u32 sync; -	__u32 tags; -	__u32 handle; -}; - -/** - * struct fw_cdev_stop_iso - Stop an isochronous transmission or reception - * @handle:	Handle of isochronous context to stop - */ -struct fw_cdev_stop_iso { -	__u32 handle; -}; - -/** - * struct fw_cdev_flush_iso - flush completed iso packets - * @handle:	handle of isochronous context to flush - * - * For %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE contexts, - * report any completed packets. - * - * For %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL contexts, report the current - * offset in the receive buffer, if it has changed; this is typically in the - * middle of some buffer chunk. - * - * Any %FW_CDEV_EVENT_ISO_INTERRUPT or %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL - * events generated by this ioctl are sent synchronously, i.e., are available - * for reading from the file descriptor when this ioctl returns. - */ -struct fw_cdev_flush_iso { -	__u32 handle; -}; - -/** - * struct fw_cdev_get_cycle_timer - read cycle timer register - * @local_time:   system time, in microseconds since the Epoch - * @cycle_timer:  Cycle Time register contents - * - * Same as %FW_CDEV_IOC_GET_CYCLE_TIMER2, but fixed to use %CLOCK_REALTIME - * and only with microseconds resolution. - * - * In version 1 and 2 of the ABI, this ioctl returned unreliable (non- - * monotonic) @cycle_timer values on certain controllers. - */ -struct fw_cdev_get_cycle_timer { -	__u64 local_time; -	__u32 cycle_timer; -}; - -/** - * struct fw_cdev_get_cycle_timer2 - read cycle timer register - * @tv_sec:       system time, seconds - * @tv_nsec:      system time, sub-seconds part in nanoseconds - * @clk_id:       input parameter, clock from which to get the system time - * @cycle_timer:  Cycle Time register contents - * - * The %FW_CDEV_IOC_GET_CYCLE_TIMER2 ioctl reads the isochronous cycle timer - * and also the system clock.  This allows to correlate reception time of - * isochronous packets with system time. - * - * @clk_id lets you choose a clock like with POSIX' clock_gettime function. - * Supported @clk_id values are POSIX' %CLOCK_REALTIME and %CLOCK_MONOTONIC - * and Linux' %CLOCK_MONOTONIC_RAW. - * - * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and - * 12 bits cycleOffset, in host byte order.  Cf. the Cycle Time register - * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394. - */ -struct fw_cdev_get_cycle_timer2 { -	__s64 tv_sec; -	__s32 tv_nsec; -	__s32 clk_id; -	__u32 cycle_timer; -}; - -/** - * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth - * @closure:	Passed back to userspace in corresponding iso resource events - * @channels:	Isochronous channels of which one is to be (de)allocated - * @bandwidth:	Isochronous bandwidth units to be (de)allocated - * @handle:	Handle to the allocation, written by the kernel (only valid in - *		case of %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctls) - * - * The %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctl initiates allocation of an - * isochronous channel and/or of isochronous bandwidth at the isochronous - * resource manager (IRM).  Only one of the channels specified in @channels is - * allocated.  An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED is sent after - * communication with the IRM, indicating success or failure in the event data. - * The kernel will automatically reallocate the resources after bus resets. - * Should a reallocation fail, an %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event - * will be sent.  The kernel will also automatically deallocate the resources - * when the file descriptor is closed. - * - * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE ioctl can be used to initiate - * deallocation of resources which were allocated as described above. - * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation. - * - * The %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE ioctl is a variant of allocation - * without automatic re- or deallocation. - * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event concludes this operation, - * indicating success or failure in its data. - * - * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like - * %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed - * instead of allocated. - * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation. - * - * To summarize, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE allocates iso resources - * for the lifetime of the fd or @handle. - * In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources - * for the duration of a bus generation. - * - * @channels is a host-endian bitfield with the least significant bit - * representing channel 0 and the most significant bit representing channel 63: - * 1ULL << c for each channel c that is a candidate for (de)allocation. - * - * @bandwidth is expressed in bandwidth allocation units, i.e. the time to send - * one quadlet of data (payload or header data) at speed S1600. - */ -struct fw_cdev_allocate_iso_resource { -	__u64 closure; -	__u64 channels; -	__u32 bandwidth; -	__u32 handle; -}; - -/** - * struct fw_cdev_send_stream_packet - send an asynchronous stream packet - * @length:	Length of outgoing payload, in bytes - * @tag:	Data format tag - * @channel:	Isochronous channel to transmit to - * @sy:		Synchronization code - * @closure:	Passed back to userspace in the response event - * @data:	Userspace pointer to payload - * @generation:	The bus generation where packet is valid - * @speed:	Speed to transmit at - * - * The %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet - * to every device which is listening to the specified channel.  The kernel - * writes an &fw_cdev_event_response event which indicates success or failure of - * the transmission. - */ -struct fw_cdev_send_stream_packet { -	__u32 length; -	__u32 tag; -	__u32 channel; -	__u32 sy; -	__u64 closure; -	__u64 data; -	__u32 generation; -	__u32 speed; -}; - -/** - * struct fw_cdev_send_phy_packet - send a PHY packet - * @closure:	Passed back to userspace in the PHY-packet-sent event - * @data:	First and second quadlet of the PHY packet - * @generation:	The bus generation where packet is valid - * - * The %FW_CDEV_IOC_SEND_PHY_PACKET ioctl sends a PHY packet to all nodes - * on the same card as this device.  After transmission, an - * %FW_CDEV_EVENT_PHY_PACKET_SENT event is generated. - * - * The payload @data[] shall be specified in host byte order.  Usually, - * @data[1] needs to be the bitwise inverse of @data[0].  VersaPHY packets - * are an exception to this rule. - * - * The ioctl is only permitted on device files which represent a local node. - */ -struct fw_cdev_send_phy_packet { -	__u64 closure; -	__u32 data[2]; -	__u32 generation; -}; - -/** - * struct fw_cdev_receive_phy_packets - start reception of PHY packets - * @closure: Passed back to userspace in phy packet events - * - * This ioctl activates issuing of %FW_CDEV_EVENT_PHY_PACKET_RECEIVED due to - * incoming PHY packets from any node on the same bus as the device. - * - * The ioctl is only permitted on device files which represent a local node. - */ -struct fw_cdev_receive_phy_packets { -	__u64 closure; -}; - -#define FW_CDEV_VERSION 3 /* Meaningless legacy macro; don't use it. */ - -#endif /* _LINUX_FIREWIRE_CDEV_H */ diff --git a/include/linux/firewire-constants.h b/include/linux/firewire-constants.h deleted file mode 100644 index 9b4bb5fbba4..00000000000 --- a/include/linux/firewire-constants.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * IEEE 1394 constants. - * - * Copyright (C) 2005-2007  Kristian Hoegsberg <krh@bitplanet.net> - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#ifndef _LINUX_FIREWIRE_CONSTANTS_H -#define _LINUX_FIREWIRE_CONSTANTS_H - -#define TCODE_WRITE_QUADLET_REQUEST	0x0 -#define TCODE_WRITE_BLOCK_REQUEST	0x1 -#define TCODE_WRITE_RESPONSE		0x2 -#define TCODE_READ_QUADLET_REQUEST	0x4 -#define TCODE_READ_BLOCK_REQUEST	0x5 -#define TCODE_READ_QUADLET_RESPONSE	0x6 -#define TCODE_READ_BLOCK_RESPONSE	0x7 -#define TCODE_CYCLE_START		0x8 -#define TCODE_LOCK_REQUEST		0x9 -#define TCODE_STREAM_DATA		0xa -#define TCODE_LOCK_RESPONSE		0xb - -#define EXTCODE_MASK_SWAP		0x1 -#define EXTCODE_COMPARE_SWAP		0x2 -#define EXTCODE_FETCH_ADD		0x3 -#define EXTCODE_LITTLE_ADD		0x4 -#define EXTCODE_BOUNDED_ADD		0x5 -#define EXTCODE_WRAP_ADD		0x6 -#define EXTCODE_VENDOR_DEPENDENT	0x7 - -/* Linux firewire-core (Juju) specific tcodes */ -#define TCODE_LOCK_MASK_SWAP		(0x10 | EXTCODE_MASK_SWAP) -#define TCODE_LOCK_COMPARE_SWAP		(0x10 | EXTCODE_COMPARE_SWAP) -#define TCODE_LOCK_FETCH_ADD		(0x10 | EXTCODE_FETCH_ADD) -#define TCODE_LOCK_LITTLE_ADD		(0x10 | EXTCODE_LITTLE_ADD) -#define TCODE_LOCK_BOUNDED_ADD		(0x10 | EXTCODE_BOUNDED_ADD) -#define TCODE_LOCK_WRAP_ADD		(0x10 | EXTCODE_WRAP_ADD) -#define TCODE_LOCK_VENDOR_DEPENDENT	(0x10 | EXTCODE_VENDOR_DEPENDENT) - -#define RCODE_COMPLETE			0x0 -#define RCODE_CONFLICT_ERROR		0x4 -#define RCODE_DATA_ERROR		0x5 -#define RCODE_TYPE_ERROR		0x6 -#define RCODE_ADDRESS_ERROR		0x7 - -/* Linux firewire-core (Juju) specific rcodes */ -#define RCODE_SEND_ERROR		0x10 -#define RCODE_CANCELLED			0x11 -#define RCODE_BUSY			0x12 -#define RCODE_GENERATION		0x13 -#define RCODE_NO_ACK			0x14 - -#define SCODE_100			0x0 -#define SCODE_200			0x1 -#define SCODE_400			0x2 -#define SCODE_800			0x3 -#define SCODE_1600			0x4 -#define SCODE_3200			0x5 -#define SCODE_BETA			0x3 - -#define ACK_COMPLETE			0x1 -#define ACK_PENDING			0x2 -#define ACK_BUSY_X			0x4 -#define ACK_BUSY_A			0x5 -#define ACK_BUSY_B			0x6 -#define ACK_DATA_ERROR			0xd -#define ACK_TYPE_ERROR			0xe - -#define RETRY_1				0x00 -#define RETRY_X				0x01 -#define RETRY_A				0x02 -#define RETRY_B				0x03 - -#endif /* _LINUX_FIREWIRE_CONSTANTS_H */ diff --git a/include/linux/flat.h b/include/linux/flat.h index ec56852e265..2c1eb15c4ba 100644 --- a/include/linux/flat.h +++ b/include/linux/flat.h @@ -6,58 +6,12 @@   * This file provides the definitions and structures needed to   * support uClinux flat-format executables.   */ -  #ifndef _LINUX_FLAT_H  #define _LINUX_FLAT_H -#ifdef __KERNEL__  #include <asm/flat.h> -#endif - -#define	FLAT_VERSION			0x00000004L - -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define	MAX_SHARED_LIBS			(4) -#else -#define	MAX_SHARED_LIBS			(1) -#endif - -/* - * To make everything easier to port and manage cross platform - * development,  all fields are in network byte order. - */ +#include <uapi/linux/flat.h> -struct flat_hdr { -	char magic[4]; -	unsigned long rev;          /* version (as above) */ -	unsigned long entry;        /* Offset of first executable instruction -	                               with text segment from beginning of file */ -	unsigned long data_start;   /* Offset of data segment from beginning of -	                               file */ -	unsigned long data_end;     /* Offset of end of data segment -	                               from beginning of file */ -	unsigned long bss_end;      /* Offset of end of bss segment from beginning -	                               of file */ - -	/* (It is assumed that data_end through bss_end forms the bss segment.) */ - -	unsigned long stack_size;   /* Size of stack, in bytes */ -	unsigned long reloc_start;  /* Offset of relocation records from -	                               beginning of file */ -	unsigned long reloc_count;  /* Number of relocation records */ -	unsigned long flags;        -	unsigned long build_date;   /* When the program/library was built */ -	unsigned long filler[5];    /* Reservered, set to zero */ -}; - -#define FLAT_FLAG_RAM    0x0001 /* load program entirely into RAM */ -#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */ -#define FLAT_FLAG_GZIP   0x0004 /* all but the header is compressed */ -#define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */ -#define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */ - - -#ifdef __KERNEL__ /* so systems without linux headers can compile the apps */  /*   * While it would be nice to keep this header clean,  users of older   * tools still need this support in the kernel.  So this section is @@ -95,6 +49,4 @@ typedef union {  	} reloc;  } flat_v2_reloc_t; -#endif /* __KERNEL__ */ -  #endif /* _LINUX_FLAT_H */ diff --git a/include/linux/fs.h b/include/linux/fs.h index 8cb86cfc971..001c7cff2d4 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1,337 +1,6 @@  #ifndef _LINUX_FS_H  #define _LINUX_FS_H -/* - * This file has definitions for some important file table - * structures etc. - */ - -#include <linux/limits.h> -#include <linux/ioctl.h> -#include <linux/types.h> - -/* - * It's silly to have NR_OPEN bigger than NR_FILE, but you can change - * the file limit at runtime and only root can increase the per-process - * nr_file rlimit, so it's safe to set up a ridiculously high absolute - * upper limit on files-per-process. - * - * Some programs (notably those using select()) may have to be  - * recompiled to take full advantage of the new limits..   - */ - -/* Fixed constants first: */ -#undef NR_OPEN -#define INR_OPEN_CUR 1024	/* Initial setting for nfile rlimits */ -#define INR_OPEN_MAX 4096	/* Hard limit for nfile rlimits */ - -#define BLOCK_SIZE_BITS 10 -#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS) - -#define SEEK_SET	0	/* seek relative to beginning of file */ -#define SEEK_CUR	1	/* seek relative to current file position */ -#define SEEK_END	2	/* seek relative to end of file */ -#define SEEK_DATA	3	/* seek to the next data */ -#define SEEK_HOLE	4	/* seek to the next hole */ -#define SEEK_MAX	SEEK_HOLE - -struct fstrim_range { -	__u64 start; -	__u64 len; -	__u64 minlen; -}; - -/* And dynamically-tunable limits and defaults: */ -struct files_stat_struct { -	unsigned long nr_files;		/* read only */ -	unsigned long nr_free_files;	/* read only */ -	unsigned long max_files;		/* tunable */ -}; - -struct inodes_stat_t { -	int nr_inodes; -	int nr_unused; -	int dummy[5];		/* padding for sysctl ABI compatibility */ -}; - - -#define NR_FILE  8192	/* this can well be larger on a larger system */ - -#define MAY_EXEC		0x00000001 -#define MAY_WRITE		0x00000002 -#define MAY_READ		0x00000004 -#define MAY_APPEND		0x00000008 -#define MAY_ACCESS		0x00000010 -#define MAY_OPEN		0x00000020 -#define MAY_CHDIR		0x00000040 -/* called from RCU mode, don't block */ -#define MAY_NOT_BLOCK		0x00000080 - -/* - * flags in file.f_mode.  Note that FMODE_READ and FMODE_WRITE must correspond - * to O_WRONLY and O_RDWR via the strange trick in __dentry_open() - */ - -/* file is open for reading */ -#define FMODE_READ		((__force fmode_t)0x1) -/* file is open for writing */ -#define FMODE_WRITE		((__force fmode_t)0x2) -/* file is seekable */ -#define FMODE_LSEEK		((__force fmode_t)0x4) -/* file can be accessed using pread */ -#define FMODE_PREAD		((__force fmode_t)0x8) -/* file can be accessed using pwrite */ -#define FMODE_PWRITE		((__force fmode_t)0x10) -/* File is opened for execution with sys_execve / sys_uselib */ -#define FMODE_EXEC		((__force fmode_t)0x20) -/* File is opened with O_NDELAY (only set for block devices) */ -#define FMODE_NDELAY		((__force fmode_t)0x40) -/* File is opened with O_EXCL (only set for block devices) */ -#define FMODE_EXCL		((__force fmode_t)0x80) -/* File is opened using open(.., 3, ..) and is writeable only for ioctls -   (specialy hack for floppy.c) */ -#define FMODE_WRITE_IOCTL	((__force fmode_t)0x100) -/* 32bit hashes as llseek() offset (for directories) */ -#define FMODE_32BITHASH         ((__force fmode_t)0x200) -/* 64bit hashes as llseek() offset (for directories) */ -#define FMODE_64BITHASH         ((__force fmode_t)0x400) - -/* - * Don't update ctime and mtime. - * - * Currently a special hack for the XFS open_by_handle ioctl, but we'll - * hopefully graduate it to a proper O_CMTIME flag supported by open(2) soon. - */ -#define FMODE_NOCMTIME		((__force fmode_t)0x800) - -/* Expect random access pattern */ -#define FMODE_RANDOM		((__force fmode_t)0x1000) - -/* File is huge (eg. /dev/kmem): treat loff_t as unsigned */ -#define FMODE_UNSIGNED_OFFSET	((__force fmode_t)0x2000) - -/* File is opened with O_PATH; almost nothing can be done with it */ -#define FMODE_PATH		((__force fmode_t)0x4000) - -/* File was opened by fanotify and shouldn't generate fanotify events */ -#define FMODE_NONOTIFY		((__force fmode_t)0x1000000) - -/* - * Flag for rw_copy_check_uvector and compat_rw_copy_check_uvector - * that indicates that they should check the contents of the iovec are - * valid, but not check the memory that the iovec elements - * points too. - */ -#define CHECK_IOVEC_ONLY -1 - -#define SEL_IN		1 -#define SEL_OUT		2 -#define SEL_EX		4 - -/* public flags for file_system_type */ -#define FS_REQUIRES_DEV 1  -#define FS_BINARY_MOUNTDATA 2 -#define FS_HAS_SUBTYPE 4 -#define FS_REVAL_DOT	16384	/* Check the paths ".", ".." for staleness */ -#define FS_RENAME_DOES_D_MOVE	32768	/* FS will handle d_move() -					 * during rename() internally. -					 */ - -/* - * These are the fs-independent mount-flags: up to 32 flags are supported - */ -#define MS_RDONLY	 1	/* Mount read-only */ -#define MS_NOSUID	 2	/* Ignore suid and sgid bits */ -#define MS_NODEV	 4	/* Disallow access to device special files */ -#define MS_NOEXEC	 8	/* Disallow program execution */ -#define MS_SYNCHRONOUS	16	/* Writes are synced at once */ -#define MS_REMOUNT	32	/* Alter flags of a mounted FS */ -#define MS_MANDLOCK	64	/* Allow mandatory locks on an FS */ -#define MS_DIRSYNC	128	/* Directory modifications are synchronous */ -#define MS_NOATIME	1024	/* Do not update access times. */ -#define MS_NODIRATIME	2048	/* Do not update directory access times */ -#define MS_BIND		4096 -#define MS_MOVE		8192 -#define MS_REC		16384 -#define MS_VERBOSE	32768	/* War is peace. Verbosity is silence. -				   MS_VERBOSE is deprecated. */ -#define MS_SILENT	32768 -#define MS_POSIXACL	(1<<16)	/* VFS does not apply the umask */ -#define MS_UNBINDABLE	(1<<17)	/* change to unbindable */ -#define MS_PRIVATE	(1<<18)	/* change to private */ -#define MS_SLAVE	(1<<19)	/* change to slave */ -#define MS_SHARED	(1<<20)	/* change to shared */ -#define MS_RELATIME	(1<<21)	/* Update atime relative to mtime/ctime. */ -#define MS_KERNMOUNT	(1<<22) /* this is a kern_mount call */ -#define MS_I_VERSION	(1<<23) /* Update inode I_version field */ -#define MS_STRICTATIME	(1<<24) /* Always perform atime updates */ -#define MS_NOSEC	(1<<28) -#define MS_BORN		(1<<29) -#define MS_ACTIVE	(1<<30) -#define MS_NOUSER	(1<<31) - -/* - * Superblock flags that can be altered by MS_REMOUNT - */ -#define MS_RMT_MASK	(MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION) - -/* - * Old magic mount flag and mask - */ -#define MS_MGC_VAL 0xC0ED0000 -#define MS_MGC_MSK 0xffff0000 - -/* Inode flags - they have nothing to superblock flags now */ - -#define S_SYNC		1	/* Writes are synced at once */ -#define S_NOATIME	2	/* Do not update access times */ -#define S_APPEND	4	/* Append-only file */ -#define S_IMMUTABLE	8	/* Immutable file */ -#define S_DEAD		16	/* removed, but still open directory */ -#define S_NOQUOTA	32	/* Inode is not counted to quota */ -#define S_DIRSYNC	64	/* Directory modifications are synchronous */ -#define S_NOCMTIME	128	/* Do not update file c/mtime */ -#define S_SWAPFILE	256	/* Do not truncate: swapon got its bmaps */ -#define S_PRIVATE	512	/* Inode is fs-internal */ -#define S_IMA		1024	/* Inode has an associated IMA struct */ -#define S_AUTOMOUNT	2048	/* Automount/referral quasi-directory */ -#define S_NOSEC		4096	/* no suid or xattr security attributes */ - -/* - * Note that nosuid etc flags are inode-specific: setting some file-system - * flags just means all the inodes inherit those flags by default. It might be - * possible to override it selectively if you really wanted to with some - * ioctl() that is not currently implemented. - * - * Exception: MS_RDONLY is always applied to the entire file system. - * - * Unfortunately, it is possible to change a filesystems flags with it mounted - * with files in use.  This means that all of the inodes will not have their - * i_flags updated.  Hence, i_flags no longer inherit the superblock mount - * flags, so these have to be checked separately. -- rmk@arm.uk.linux.org - */ -#define __IS_FLG(inode,flg) ((inode)->i_sb->s_flags & (flg)) - -#define IS_RDONLY(inode) ((inode)->i_sb->s_flags & MS_RDONLY) -#define IS_SYNC(inode)		(__IS_FLG(inode, MS_SYNCHRONOUS) || \ -					((inode)->i_flags & S_SYNC)) -#define IS_DIRSYNC(inode)	(__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) || \ -					((inode)->i_flags & (S_SYNC|S_DIRSYNC))) -#define IS_MANDLOCK(inode)	__IS_FLG(inode, MS_MANDLOCK) -#define IS_NOATIME(inode)   __IS_FLG(inode, MS_RDONLY|MS_NOATIME) -#define IS_I_VERSION(inode)   __IS_FLG(inode, MS_I_VERSION) - -#define IS_NOQUOTA(inode)	((inode)->i_flags & S_NOQUOTA) -#define IS_APPEND(inode)	((inode)->i_flags & S_APPEND) -#define IS_IMMUTABLE(inode)	((inode)->i_flags & S_IMMUTABLE) -#define IS_POSIXACL(inode)	__IS_FLG(inode, MS_POSIXACL) - -#define IS_DEADDIR(inode)	((inode)->i_flags & S_DEAD) -#define IS_NOCMTIME(inode)	((inode)->i_flags & S_NOCMTIME) -#define IS_SWAPFILE(inode)	((inode)->i_flags & S_SWAPFILE) -#define IS_PRIVATE(inode)	((inode)->i_flags & S_PRIVATE) -#define IS_IMA(inode)		((inode)->i_flags & S_IMA) -#define IS_AUTOMOUNT(inode)	((inode)->i_flags & S_AUTOMOUNT) -#define IS_NOSEC(inode)		((inode)->i_flags & S_NOSEC) - -/* the read-only stuff doesn't really belong here, but any other place is -   probably as bad and I don't want to create yet another include file. */ - -#define BLKROSET   _IO(0x12,93)	/* set device read-only (0 = read-write) */ -#define BLKROGET   _IO(0x12,94)	/* get read-only status (0 = read_write) */ -#define BLKRRPART  _IO(0x12,95)	/* re-read partition table */ -#define BLKGETSIZE _IO(0x12,96)	/* return device size /512 (long *arg) */ -#define BLKFLSBUF  _IO(0x12,97)	/* flush buffer cache */ -#define BLKRASET   _IO(0x12,98)	/* set read ahead for block device */ -#define BLKRAGET   _IO(0x12,99)	/* get current read ahead setting */ -#define BLKFRASET  _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */ -#define BLKFRAGET  _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */ -#define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */ -#define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */ -#define BLKSSZGET  _IO(0x12,104)/* get block device sector size */ -#if 0 -#define BLKPG      _IO(0x12,105)/* See blkpg.h */ - -/* Some people are morons.  Do not use sizeof! */ - -#define BLKELVGET  _IOR(0x12,106,size_t)/* elevator get */ -#define BLKELVSET  _IOW(0x12,107,size_t)/* elevator set */ -/* This was here just to show that the number is taken - -   probably all these _IO(0x12,*) ioctls should be moved to blkpg.h. */ -#endif -/* A jump here: 108-111 have been used for various private purposes. */ -#define BLKBSZGET  _IOR(0x12,112,size_t) -#define BLKBSZSET  _IOW(0x12,113,size_t) -#define BLKGETSIZE64 _IOR(0x12,114,size_t)	/* return device size in bytes (u64 *arg) */ -#define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup) -#define BLKTRACESTART _IO(0x12,116) -#define BLKTRACESTOP _IO(0x12,117) -#define BLKTRACETEARDOWN _IO(0x12,118) -#define BLKDISCARD _IO(0x12,119) -#define BLKIOMIN _IO(0x12,120) -#define BLKIOOPT _IO(0x12,121) -#define BLKALIGNOFF _IO(0x12,122) -#define BLKPBSZGET _IO(0x12,123) -#define BLKDISCARDZEROES _IO(0x12,124) -#define BLKSECDISCARD _IO(0x12,125) -#define BLKROTATIONAL _IO(0x12,126) -#define BLKZEROOUT _IO(0x12,127) - -#define BMAP_IOCTL 1		/* obsolete - kept for compatibility */ -#define FIBMAP	   _IO(0x00,1)	/* bmap access */ -#define FIGETBSZ   _IO(0x00,2)	/* get the block size used for bmap */ -#define FIFREEZE	_IOWR('X', 119, int)	/* Freeze */ -#define FITHAW		_IOWR('X', 120, int)	/* Thaw */ -#define FITRIM		_IOWR('X', 121, struct fstrim_range)	/* Trim */ - -#define	FS_IOC_GETFLAGS			_IOR('f', 1, long) -#define	FS_IOC_SETFLAGS			_IOW('f', 2, long) -#define	FS_IOC_GETVERSION		_IOR('v', 1, long) -#define	FS_IOC_SETVERSION		_IOW('v', 2, long) -#define FS_IOC_FIEMAP			_IOWR('f', 11, struct fiemap) -#define FS_IOC32_GETFLAGS		_IOR('f', 1, int) -#define FS_IOC32_SETFLAGS		_IOW('f', 2, int) -#define FS_IOC32_GETVERSION		_IOR('v', 1, int) -#define FS_IOC32_SETVERSION		_IOW('v', 2, int) - -/* - * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS) - */ -#define	FS_SECRM_FL			0x00000001 /* Secure deletion */ -#define	FS_UNRM_FL			0x00000002 /* Undelete */ -#define	FS_COMPR_FL			0x00000004 /* Compress file */ -#define FS_SYNC_FL			0x00000008 /* Synchronous updates */ -#define FS_IMMUTABLE_FL			0x00000010 /* Immutable file */ -#define FS_APPEND_FL			0x00000020 /* writes to file may only append */ -#define FS_NODUMP_FL			0x00000040 /* do not dump file */ -#define FS_NOATIME_FL			0x00000080 /* do not update atime */ -/* Reserved for compression usage... */ -#define FS_DIRTY_FL			0x00000100 -#define FS_COMPRBLK_FL			0x00000200 /* One or more compressed clusters */ -#define FS_NOCOMP_FL			0x00000400 /* Don't compress */ -#define FS_ECOMPR_FL			0x00000800 /* Compression error */ -/* End compression flags --- maybe not all used */ -#define FS_BTREE_FL			0x00001000 /* btree format dir */ -#define FS_INDEX_FL			0x00001000 /* hash-indexed directory */ -#define FS_IMAGIC_FL			0x00002000 /* AFS directory */ -#define FS_JOURNAL_DATA_FL		0x00004000 /* Reserved for ext3 */ -#define FS_NOTAIL_FL			0x00008000 /* file tail should not be merged */ -#define FS_DIRSYNC_FL			0x00010000 /* dirsync behaviour (directories only) */ -#define FS_TOPDIR_FL			0x00020000 /* Top of directory hierarchies*/ -#define FS_EXTENT_FL			0x00080000 /* Extents */ -#define FS_DIRECTIO_FL			0x00100000 /* Use direct i/o */ -#define FS_NOCOW_FL			0x00800000 /* Do not cow file */ -#define FS_RESERVED_FL			0x80000000 /* reserved for ext2 lib */ - -#define FS_FL_USER_VISIBLE		0x0003DFFF /* User visible flags */ -#define FS_FL_USER_MODIFIABLE		0x000380FF /* User modifiable flags */ - - -#define SYNC_FILE_RANGE_WAIT_BEFORE	1 -#define SYNC_FILE_RANGE_WRITE		2 -#define SYNC_FILE_RANGE_WAIT_AFTER	4 - -#ifdef __KERNEL__  #include <linux/linkage.h>  #include <linux/wait.h> @@ -360,6 +29,7 @@ struct inodes_stat_t {  #include <linux/blk_types.h>  #include <asm/byteorder.h> +#include <uapi/linux/fs.h>  struct export_operations;  struct hd_geometry; @@ -2876,5 +2546,4 @@ static inline void inode_has_no_xattr(struct inode *inode)  		inode->i_flags |= S_NOSEC;  } -#endif /* __KERNEL__ */  #endif /* _LINUX_FS_H */ diff --git a/include/linux/fsl_hypervisor.h b/include/linux/fsl_hypervisor.h index 1cebaeeeef5..2a707d7fb32 100644 --- a/include/linux/fsl_hypervisor.h +++ b/include/linux/fsl_hypervisor.h @@ -36,187 +36,11 @@   * also be included by applications that need to communicate with the driver   * via the ioctl interface.   */ -  #ifndef FSL_HYPERVISOR_H  #define FSL_HYPERVISOR_H -#include <linux/types.h> - -/** - * struct fsl_hv_ioctl_restart - restart a partition - * @ret: return error code from the hypervisor - * @partition: the ID of the partition to restart, or -1 for the - *             calling partition - * - * Used by FSL_HV_IOCTL_PARTITION_RESTART - */ -struct fsl_hv_ioctl_restart { -	__u32 ret; -	__u32 partition; -}; +#include <uapi/linux/fsl_hypervisor.h> -/** - * struct fsl_hv_ioctl_status - get a partition's status - * @ret: return error code from the hypervisor - * @partition: the ID of the partition to query, or -1 for the - *             calling partition - * @status: The returned status of the partition - * - * Used by FSL_HV_IOCTL_PARTITION_GET_STATUS - * - * Values of 'status': - *    0 = Stopped - *    1 = Running - *    2 = Starting - *    3 = Stopping - */ -struct fsl_hv_ioctl_status { -	__u32 ret; -	__u32 partition; -	__u32 status; -}; - -/** - * struct fsl_hv_ioctl_start - start a partition - * @ret: return error code from the hypervisor - * @partition: the ID of the partition to control - * @entry_point: The offset within the guest IMA to start execution - * @load: If non-zero, reload the partition's images before starting - * - * Used by FSL_HV_IOCTL_PARTITION_START - */ -struct fsl_hv_ioctl_start { -	__u32 ret; -	__u32 partition; -	__u32 entry_point; -	__u32 load; -}; - -/** - * struct fsl_hv_ioctl_stop - stop a partition - * @ret: return error code from the hypervisor - * @partition: the ID of the partition to stop, or -1 for the calling - *             partition - * - * Used by FSL_HV_IOCTL_PARTITION_STOP - */ -struct fsl_hv_ioctl_stop { -	__u32 ret; -	__u32 partition; -}; - -/** - * struct fsl_hv_ioctl_memcpy - copy memory between partitions - * @ret: return error code from the hypervisor - * @source: the partition ID of the source partition, or -1 for this - *          partition - * @target: the partition ID of the target partition, or -1 for this - *          partition - * @reserved: reserved, must be set to 0 - * @local_addr: user-space virtual address of a buffer in the local - *              partition - * @remote_addr: guest physical address of a buffer in the - *           remote partition - * @count: the number of bytes to copy.  Both the local and remote - *         buffers must be at least 'count' bytes long - * - * Used by FSL_HV_IOCTL_MEMCPY - * - * The 'local' partition is the partition that calls this ioctl.  The - * 'remote' partition is a different partition.  The data is copied from - * the 'source' paritition' to the 'target' partition. - * - * The buffer in the remote partition must be guest physically - * contiguous. - * - * This ioctl does not support copying memory between two remote - * partitions or within the same partition, so either 'source' or - * 'target' (but not both) must be -1.  In other words, either - * - *      source == local and target == remote - * or - *      source == remote and target == local - */ -struct fsl_hv_ioctl_memcpy { -	__u32 ret; -	__u32 source; -	__u32 target; -	__u32 reserved;	/* padding to ensure local_vaddr is aligned */ -	__u64 local_vaddr; -	__u64 remote_paddr; -	__u64 count; -}; - -/** - * struct fsl_hv_ioctl_doorbell - ring a doorbell - * @ret: return error code from the hypervisor - * @doorbell: the handle of the doorbell to ring doorbell - * - * Used by FSL_HV_IOCTL_DOORBELL - */ -struct fsl_hv_ioctl_doorbell { -	__u32 ret; -	__u32 doorbell; -}; - -/** - * struct fsl_hv_ioctl_prop - get/set a device tree property - * @ret: return error code from the hypervisor - * @handle: handle of partition whose tree to access - * @path: virtual address of path name of node to access - * @propname: virtual address of name of property to access - * @propval: virtual address of property data buffer - * @proplen: Size of property data buffer - * @reserved: reserved, must be set to 0 - * - * Used by FSL_HV_IOCTL_DOORBELL - */ -struct fsl_hv_ioctl_prop { -	__u32 ret; -	__u32 handle; -	__u64 path; -	__u64 propname; -	__u64 propval; -	__u32 proplen; -	__u32 reserved;	/* padding to ensure structure is aligned */ -}; - -/* The ioctl type, documented in ioctl-number.txt */ -#define FSL_HV_IOCTL_TYPE	0xAF - -/* Restart another partition */ -#define FSL_HV_IOCTL_PARTITION_RESTART \ -	_IOWR(FSL_HV_IOCTL_TYPE, 1, struct fsl_hv_ioctl_restart) - -/* Get a partition's status */ -#define FSL_HV_IOCTL_PARTITION_GET_STATUS \ -	_IOWR(FSL_HV_IOCTL_TYPE, 2, struct fsl_hv_ioctl_status) - -/* Boot another partition */ -#define FSL_HV_IOCTL_PARTITION_START \ -	_IOWR(FSL_HV_IOCTL_TYPE, 3, struct fsl_hv_ioctl_start) - -/* Stop this or another partition */ -#define FSL_HV_IOCTL_PARTITION_STOP \ -	_IOWR(FSL_HV_IOCTL_TYPE, 4, struct fsl_hv_ioctl_stop) - -/* Copy data from one partition to another */ -#define FSL_HV_IOCTL_MEMCPY \ -	_IOWR(FSL_HV_IOCTL_TYPE, 5, struct fsl_hv_ioctl_memcpy) - -/* Ring a doorbell */ -#define FSL_HV_IOCTL_DOORBELL \ -	_IOWR(FSL_HV_IOCTL_TYPE, 6, struct fsl_hv_ioctl_doorbell) - -/* Get a property from another guest's device tree */ -#define FSL_HV_IOCTL_GETPROP \ -	_IOWR(FSL_HV_IOCTL_TYPE, 7, struct fsl_hv_ioctl_prop) - -/* Set a property in another guest's device tree */ -#define FSL_HV_IOCTL_SETPROP \ -	_IOWR(FSL_HV_IOCTL_TYPE, 8, struct fsl_hv_ioctl_prop) - -#ifdef __KERNEL__  /**   * fsl_hv_event_register() - register a callback for failover events @@ -237,5 +61,3 @@ int fsl_hv_failover_register(struct notifier_block *nb);  int fsl_hv_failover_unregister(struct notifier_block *nb);  #endif - -#endif diff --git a/include/linux/fuse.h b/include/linux/fuse.h deleted file mode 100644 index d8c713e148e..00000000000 --- a/include/linux/fuse.h +++ /dev/null @@ -1,677 +0,0 @@ -/* -    FUSE: Filesystem in Userspace -    Copyright (C) 2001-2008  Miklos Szeredi <miklos@szeredi.hu> - -    This program can be distributed under the terms of the GNU GPL. -    See the file COPYING. -*/ - -/* - * This file defines the kernel interface of FUSE - * - * Protocol changelog: - * - * 7.9: - *  - new fuse_getattr_in input argument of GETATTR - *  - add lk_flags in fuse_lk_in - *  - add lock_owner field to fuse_setattr_in, fuse_read_in and fuse_write_in - *  - add blksize field to fuse_attr - *  - add file flags field to fuse_read_in and fuse_write_in - * - * 7.10 - *  - add nonseekable open flag - * - * 7.11 - *  - add IOCTL message - *  - add unsolicited notification support - *  - add POLL message and NOTIFY_POLL notification - * - * 7.12 - *  - add umask flag to input argument of open, mknod and mkdir - *  - add notification messages for invalidation of inodes and - *    directory entries - * - * 7.13 - *  - make max number of background requests and congestion threshold - *    tunables - * - * 7.14 - *  - add splice support to fuse device - * - * 7.15 - *  - add store notify - *  - add retrieve notify - * - * 7.16 - *  - add BATCH_FORGET request - *  - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct - *    fuse_ioctl_iovec' instead of ambiguous 'struct iovec' - *  - add FUSE_IOCTL_32BIT flag - * - * 7.17 - *  - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK - * - * 7.18 - *  - add FUSE_IOCTL_DIR flag - *  - add FUSE_NOTIFY_DELETE - * - * 7.19 - *  - add FUSE_FALLOCATE - * - * 7.20 - *  - add FUSE_AUTO_INVAL_DATA - */ - -#ifndef _LINUX_FUSE_H -#define _LINUX_FUSE_H - -#include <linux/types.h> - -/* - * Version negotiation: - * - * Both the kernel and userspace send the version they support in the - * INIT request and reply respectively. - * - * If the major versions match then both shall use the smallest - * of the two minor versions for communication. - * - * If the kernel supports a larger major version, then userspace shall - * reply with the major version it supports, ignore the rest of the - * INIT message and expect a new INIT message from the kernel with a - * matching major version. - * - * If the library supports a larger major version, then it shall fall - * back to the major protocol version sent by the kernel for - * communication and reply with that major version (and an arbitrary - * supported minor version). - */ - -/** Version number of this interface */ -#define FUSE_KERNEL_VERSION 7 - -/** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 20 - -/** The node ID of the root inode */ -#define FUSE_ROOT_ID 1 - -/* Make sure all structures are padded to 64bit boundary, so 32bit -   userspace works under 64bit kernels */ - -struct fuse_attr { -	__u64	ino; -	__u64	size; -	__u64	blocks; -	__u64	atime; -	__u64	mtime; -	__u64	ctime; -	__u32	atimensec; -	__u32	mtimensec; -	__u32	ctimensec; -	__u32	mode; -	__u32	nlink; -	__u32	uid; -	__u32	gid; -	__u32	rdev; -	__u32	blksize; -	__u32	padding; -}; - -struct fuse_kstatfs { -	__u64	blocks; -	__u64	bfree; -	__u64	bavail; -	__u64	files; -	__u64	ffree; -	__u32	bsize; -	__u32	namelen; -	__u32	frsize; -	__u32	padding; -	__u32	spare[6]; -}; - -struct fuse_file_lock { -	__u64	start; -	__u64	end; -	__u32	type; -	__u32	pid; /* tgid */ -}; - -/** - * Bitmasks for fuse_setattr_in.valid - */ -#define FATTR_MODE	(1 << 0) -#define FATTR_UID	(1 << 1) -#define FATTR_GID	(1 << 2) -#define FATTR_SIZE	(1 << 3) -#define FATTR_ATIME	(1 << 4) -#define FATTR_MTIME	(1 << 5) -#define FATTR_FH	(1 << 6) -#define FATTR_ATIME_NOW	(1 << 7) -#define FATTR_MTIME_NOW	(1 << 8) -#define FATTR_LOCKOWNER	(1 << 9) - -/** - * Flags returned by the OPEN request - * - * FOPEN_DIRECT_IO: bypass page cache for this open file - * FOPEN_KEEP_CACHE: don't invalidate the data cache on open - * FOPEN_NONSEEKABLE: the file is not seekable - */ -#define FOPEN_DIRECT_IO		(1 << 0) -#define FOPEN_KEEP_CACHE	(1 << 1) -#define FOPEN_NONSEEKABLE	(1 << 2) - -/** - * INIT request/reply flags - * - * FUSE_ASYNC_READ: asynchronous read requests - * FUSE_POSIX_LOCKS: remote locking for POSIX file locks - * FUSE_FILE_OPS: kernel sends file handle for fstat, etc... (not yet supported) - * FUSE_ATOMIC_O_TRUNC: handles the O_TRUNC open flag in the filesystem - * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." - * FUSE_BIG_WRITES: filesystem can handle write size larger than 4kB - * FUSE_DONT_MASK: don't apply umask to file mode on create operations - * FUSE_SPLICE_WRITE: kernel supports splice write on the device - * FUSE_SPLICE_MOVE: kernel supports splice move on the device - * FUSE_SPLICE_READ: kernel supports splice read on the device - * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks - * FUSE_HAS_IOCTL_DIR: kernel supports ioctl on directories - * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages - */ -#define FUSE_ASYNC_READ		(1 << 0) -#define FUSE_POSIX_LOCKS	(1 << 1) -#define FUSE_FILE_OPS		(1 << 2) -#define FUSE_ATOMIC_O_TRUNC	(1 << 3) -#define FUSE_EXPORT_SUPPORT	(1 << 4) -#define FUSE_BIG_WRITES		(1 << 5) -#define FUSE_DONT_MASK		(1 << 6) -#define FUSE_SPLICE_WRITE	(1 << 7) -#define FUSE_SPLICE_MOVE	(1 << 8) -#define FUSE_SPLICE_READ	(1 << 9) -#define FUSE_FLOCK_LOCKS	(1 << 10) -#define FUSE_HAS_IOCTL_DIR	(1 << 11) -#define FUSE_AUTO_INVAL_DATA	(1 << 12) - -/** - * CUSE INIT request/reply flags - * - * CUSE_UNRESTRICTED_IOCTL:  use unrestricted ioctl - */ -#define CUSE_UNRESTRICTED_IOCTL	(1 << 0) - -/** - * Release flags - */ -#define FUSE_RELEASE_FLUSH	(1 << 0) -#define FUSE_RELEASE_FLOCK_UNLOCK	(1 << 1) - -/** - * Getattr flags - */ -#define FUSE_GETATTR_FH		(1 << 0) - -/** - * Lock flags - */ -#define FUSE_LK_FLOCK		(1 << 0) - -/** - * WRITE flags - * - * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed - * FUSE_WRITE_LOCKOWNER: lock_owner field is valid - */ -#define FUSE_WRITE_CACHE	(1 << 0) -#define FUSE_WRITE_LOCKOWNER	(1 << 1) - -/** - * Read flags - */ -#define FUSE_READ_LOCKOWNER	(1 << 1) - -/** - * Ioctl flags - * - * FUSE_IOCTL_COMPAT: 32bit compat ioctl on 64bit machine - * FUSE_IOCTL_UNRESTRICTED: not restricted to well-formed ioctls, retry allowed - * FUSE_IOCTL_RETRY: retry with new iovecs - * FUSE_IOCTL_32BIT: 32bit ioctl - * FUSE_IOCTL_DIR: is a directory - * - * FUSE_IOCTL_MAX_IOV: maximum of in_iovecs + out_iovecs - */ -#define FUSE_IOCTL_COMPAT	(1 << 0) -#define FUSE_IOCTL_UNRESTRICTED	(1 << 1) -#define FUSE_IOCTL_RETRY	(1 << 2) -#define FUSE_IOCTL_32BIT	(1 << 3) -#define FUSE_IOCTL_DIR		(1 << 4) - -#define FUSE_IOCTL_MAX_IOV	256 - -/** - * Poll flags - * - * FUSE_POLL_SCHEDULE_NOTIFY: request poll notify - */ -#define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0) - -enum fuse_opcode { -	FUSE_LOOKUP	   = 1, -	FUSE_FORGET	   = 2,  /* no reply */ -	FUSE_GETATTR	   = 3, -	FUSE_SETATTR	   = 4, -	FUSE_READLINK	   = 5, -	FUSE_SYMLINK	   = 6, -	FUSE_MKNOD	   = 8, -	FUSE_MKDIR	   = 9, -	FUSE_UNLINK	   = 10, -	FUSE_RMDIR	   = 11, -	FUSE_RENAME	   = 12, -	FUSE_LINK	   = 13, -	FUSE_OPEN	   = 14, -	FUSE_READ	   = 15, -	FUSE_WRITE	   = 16, -	FUSE_STATFS	   = 17, -	FUSE_RELEASE       = 18, -	FUSE_FSYNC         = 20, -	FUSE_SETXATTR      = 21, -	FUSE_GETXATTR      = 22, -	FUSE_LISTXATTR     = 23, -	FUSE_REMOVEXATTR   = 24, -	FUSE_FLUSH         = 25, -	FUSE_INIT          = 26, -	FUSE_OPENDIR       = 27, -	FUSE_READDIR       = 28, -	FUSE_RELEASEDIR    = 29, -	FUSE_FSYNCDIR      = 30, -	FUSE_GETLK         = 31, -	FUSE_SETLK         = 32, -	FUSE_SETLKW        = 33, -	FUSE_ACCESS        = 34, -	FUSE_CREATE        = 35, -	FUSE_INTERRUPT     = 36, -	FUSE_BMAP          = 37, -	FUSE_DESTROY       = 38, -	FUSE_IOCTL         = 39, -	FUSE_POLL          = 40, -	FUSE_NOTIFY_REPLY  = 41, -	FUSE_BATCH_FORGET  = 42, -	FUSE_FALLOCATE     = 43, - -	/* CUSE specific operations */ -	CUSE_INIT          = 4096, -}; - -enum fuse_notify_code { -	FUSE_NOTIFY_POLL   = 1, -	FUSE_NOTIFY_INVAL_INODE = 2, -	FUSE_NOTIFY_INVAL_ENTRY = 3, -	FUSE_NOTIFY_STORE = 4, -	FUSE_NOTIFY_RETRIEVE = 5, -	FUSE_NOTIFY_DELETE = 6, -	FUSE_NOTIFY_CODE_MAX, -}; - -/* The read buffer is required to be at least 8k, but may be much larger */ -#define FUSE_MIN_READ_BUFFER 8192 - -#define FUSE_COMPAT_ENTRY_OUT_SIZE 120 - -struct fuse_entry_out { -	__u64	nodeid;		/* Inode ID */ -	__u64	generation;	/* Inode generation: nodeid:gen must -				   be unique for the fs's lifetime */ -	__u64	entry_valid;	/* Cache timeout for the name */ -	__u64	attr_valid;	/* Cache timeout for the attributes */ -	__u32	entry_valid_nsec; -	__u32	attr_valid_nsec; -	struct fuse_attr attr; -}; - -struct fuse_forget_in { -	__u64	nlookup; -}; - -struct fuse_forget_one { -	__u64	nodeid; -	__u64	nlookup; -}; - -struct fuse_batch_forget_in { -	__u32	count; -	__u32	dummy; -}; - -struct fuse_getattr_in { -	__u32	getattr_flags; -	__u32	dummy; -	__u64	fh; -}; - -#define FUSE_COMPAT_ATTR_OUT_SIZE 96 - -struct fuse_attr_out { -	__u64	attr_valid;	/* Cache timeout for the attributes */ -	__u32	attr_valid_nsec; -	__u32	dummy; -	struct fuse_attr attr; -}; - -#define FUSE_COMPAT_MKNOD_IN_SIZE 8 - -struct fuse_mknod_in { -	__u32	mode; -	__u32	rdev; -	__u32	umask; -	__u32	padding; -}; - -struct fuse_mkdir_in { -	__u32	mode; -	__u32	umask; -}; - -struct fuse_rename_in { -	__u64	newdir; -}; - -struct fuse_link_in { -	__u64	oldnodeid; -}; - -struct fuse_setattr_in { -	__u32	valid; -	__u32	padding; -	__u64	fh; -	__u64	size; -	__u64	lock_owner; -	__u64	atime; -	__u64	mtime; -	__u64	unused2; -	__u32	atimensec; -	__u32	mtimensec; -	__u32	unused3; -	__u32	mode; -	__u32	unused4; -	__u32	uid; -	__u32	gid; -	__u32	unused5; -}; - -struct fuse_open_in { -	__u32	flags; -	__u32	unused; -}; - -struct fuse_create_in { -	__u32	flags; -	__u32	mode; -	__u32	umask; -	__u32	padding; -}; - -struct fuse_open_out { -	__u64	fh; -	__u32	open_flags; -	__u32	padding; -}; - -struct fuse_release_in { -	__u64	fh; -	__u32	flags; -	__u32	release_flags; -	__u64	lock_owner; -}; - -struct fuse_flush_in { -	__u64	fh; -	__u32	unused; -	__u32	padding; -	__u64	lock_owner; -}; - -struct fuse_read_in { -	__u64	fh; -	__u64	offset; -	__u32	size; -	__u32	read_flags; -	__u64	lock_owner; -	__u32	flags; -	__u32	padding; -}; - -#define FUSE_COMPAT_WRITE_IN_SIZE 24 - -struct fuse_write_in { -	__u64	fh; -	__u64	offset; -	__u32	size; -	__u32	write_flags; -	__u64	lock_owner; -	__u32	flags; -	__u32	padding; -}; - -struct fuse_write_out { -	__u32	size; -	__u32	padding; -}; - -#define FUSE_COMPAT_STATFS_SIZE 48 - -struct fuse_statfs_out { -	struct fuse_kstatfs st; -}; - -struct fuse_fsync_in { -	__u64	fh; -	__u32	fsync_flags; -	__u32	padding; -}; - -struct fuse_setxattr_in { -	__u32	size; -	__u32	flags; -}; - -struct fuse_getxattr_in { -	__u32	size; -	__u32	padding; -}; - -struct fuse_getxattr_out { -	__u32	size; -	__u32	padding; -}; - -struct fuse_lk_in { -	__u64	fh; -	__u64	owner; -	struct fuse_file_lock lk; -	__u32	lk_flags; -	__u32	padding; -}; - -struct fuse_lk_out { -	struct fuse_file_lock lk; -}; - -struct fuse_access_in { -	__u32	mask; -	__u32	padding; -}; - -struct fuse_init_in { -	__u32	major; -	__u32	minor; -	__u32	max_readahead; -	__u32	flags; -}; - -struct fuse_init_out { -	__u32	major; -	__u32	minor; -	__u32	max_readahead; -	__u32	flags; -	__u16   max_background; -	__u16   congestion_threshold; -	__u32	max_write; -}; - -#define CUSE_INIT_INFO_MAX 4096 - -struct cuse_init_in { -	__u32	major; -	__u32	minor; -	__u32	unused; -	__u32	flags; -}; - -struct cuse_init_out { -	__u32	major; -	__u32	minor; -	__u32	unused; -	__u32	flags; -	__u32	max_read; -	__u32	max_write; -	__u32	dev_major;		/* chardev major */ -	__u32	dev_minor;		/* chardev minor */ -	__u32	spare[10]; -}; - -struct fuse_interrupt_in { -	__u64	unique; -}; - -struct fuse_bmap_in { -	__u64	block; -	__u32	blocksize; -	__u32	padding; -}; - -struct fuse_bmap_out { -	__u64	block; -}; - -struct fuse_ioctl_in { -	__u64	fh; -	__u32	flags; -	__u32	cmd; -	__u64	arg; -	__u32	in_size; -	__u32	out_size; -}; - -struct fuse_ioctl_iovec { -	__u64	base; -	__u64	len; -}; - -struct fuse_ioctl_out { -	__s32	result; -	__u32	flags; -	__u32	in_iovs; -	__u32	out_iovs; -}; - -struct fuse_poll_in { -	__u64	fh; -	__u64	kh; -	__u32	flags; -	__u32   padding; -}; - -struct fuse_poll_out { -	__u32	revents; -	__u32	padding; -}; - -struct fuse_notify_poll_wakeup_out { -	__u64	kh; -}; - -struct fuse_fallocate_in { -	__u64	fh; -	__u64	offset; -	__u64	length; -	__u32	mode; -	__u32	padding; -}; - -struct fuse_in_header { -	__u32	len; -	__u32	opcode; -	__u64	unique; -	__u64	nodeid; -	__u32	uid; -	__u32	gid; -	__u32	pid; -	__u32	padding; -}; - -struct fuse_out_header { -	__u32	len; -	__s32	error; -	__u64	unique; -}; - -struct fuse_dirent { -	__u64	ino; -	__u64	off; -	__u32	namelen; -	__u32	type; -	char name[]; -}; - -#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name) -#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1)) -#define FUSE_DIRENT_SIZE(d) \ -	FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) - -struct fuse_notify_inval_inode_out { -	__u64	ino; -	__s64	off; -	__s64	len; -}; - -struct fuse_notify_inval_entry_out { -	__u64	parent; -	__u32	namelen; -	__u32	padding; -}; - -struct fuse_notify_delete_out { -	__u64	parent; -	__u64	child; -	__u32	namelen; -	__u32	padding; -}; - -struct fuse_notify_store_out { -	__u64	nodeid; -	__u64	offset; -	__u32	size; -	__u32	padding; -}; - -struct fuse_notify_retrieve_out { -	__u64	notify_unique; -	__u64	nodeid; -	__u64	offset; -	__u32	size; -	__u32	padding; -}; - -/* Matches the size of fuse_write_in */ -struct fuse_notify_retrieve_in { -	__u64	dummy1; -	__u64	offset; -	__u32	size; -	__u32	dummy2; -	__u64	dummy3; -	__u64	dummy4; -}; - -#endif /* _LINUX_FUSE_H */ diff --git a/include/linux/futex.h b/include/linux/futex.h index 1e5a26d7923..b0d95cac826 100644 --- a/include/linux/futex.h +++ b/include/linux/futex.h @@ -1,129 +1,8 @@  #ifndef _LINUX_FUTEX_H  #define _LINUX_FUTEX_H -#include <linux/compiler.h> -#include <linux/types.h> +#include <uapi/linux/futex.h> -/* Second argument to futex syscall */ - - -#define FUTEX_WAIT		0 -#define FUTEX_WAKE		1 -#define FUTEX_FD		2 -#define FUTEX_REQUEUE		3 -#define FUTEX_CMP_REQUEUE	4 -#define FUTEX_WAKE_OP		5 -#define FUTEX_LOCK_PI		6 -#define FUTEX_UNLOCK_PI		7 -#define FUTEX_TRYLOCK_PI	8 -#define FUTEX_WAIT_BITSET	9 -#define FUTEX_WAKE_BITSET	10 -#define FUTEX_WAIT_REQUEUE_PI	11 -#define FUTEX_CMP_REQUEUE_PI	12 - -#define FUTEX_PRIVATE_FLAG	128 -#define FUTEX_CLOCK_REALTIME	256 -#define FUTEX_CMD_MASK		~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME) - -#define FUTEX_WAIT_PRIVATE	(FUTEX_WAIT | FUTEX_PRIVATE_FLAG) -#define FUTEX_WAKE_PRIVATE	(FUTEX_WAKE | FUTEX_PRIVATE_FLAG) -#define FUTEX_REQUEUE_PRIVATE	(FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG) -#define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG) -#define FUTEX_WAKE_OP_PRIVATE	(FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG) -#define FUTEX_LOCK_PI_PRIVATE	(FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG) -#define FUTEX_UNLOCK_PI_PRIVATE	(FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) -#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG) -#define FUTEX_WAIT_BITSET_PRIVATE	(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG) -#define FUTEX_WAKE_BITSET_PRIVATE	(FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG) -#define FUTEX_WAIT_REQUEUE_PI_PRIVATE	(FUTEX_WAIT_REQUEUE_PI | \ -					 FUTEX_PRIVATE_FLAG) -#define FUTEX_CMP_REQUEUE_PI_PRIVATE	(FUTEX_CMP_REQUEUE_PI | \ -					 FUTEX_PRIVATE_FLAG) - -/* - * Support for robust futexes: the kernel cleans up held futexes at - * thread exit time. - */ - -/* - * Per-lock list entry - embedded in user-space locks, somewhere close - * to the futex field. (Note: user-space uses a double-linked list to - * achieve O(1) list add and remove, but the kernel only needs to know - * about the forward link) - * - * NOTE: this structure is part of the syscall ABI, and must not be - * changed. - */ -struct robust_list { -	struct robust_list __user *next; -}; - -/* - * Per-thread list head: - * - * NOTE: this structure is part of the syscall ABI, and must only be - * changed if the change is first communicated with the glibc folks. - * (When an incompatible change is done, we'll increase the structure - *  size, which glibc will detect) - */ -struct robust_list_head { -	/* -	 * The head of the list. Points back to itself if empty: -	 */ -	struct robust_list list; - -	/* -	 * This relative offset is set by user-space, it gives the kernel -	 * the relative position of the futex field to examine. This way -	 * we keep userspace flexible, to freely shape its data-structure, -	 * without hardcoding any particular offset into the kernel: -	 */ -	long futex_offset; - -	/* -	 * The death of the thread may race with userspace setting -	 * up a lock's links. So to handle this race, userspace first -	 * sets this field to the address of the to-be-taken lock, -	 * then does the lock acquire, and then adds itself to the -	 * list, and then clears this field. Hence the kernel will -	 * always have full knowledge of all locks that the thread -	 * _might_ have taken. We check the owner TID in any case, -	 * so only truly owned locks will be handled. -	 */ -	struct robust_list __user *list_op_pending; -}; - -/* - * Are there any waiters for this robust futex: - */ -#define FUTEX_WAITERS		0x80000000 - -/* - * The kernel signals via this bit that a thread holding a futex - * has exited without unlocking the futex. The kernel also does - * a FUTEX_WAKE on such futexes, after setting the bit, to wake - * up any possible waiters: - */ -#define FUTEX_OWNER_DIED	0x40000000 - -/* - * The rest of the robust-futex field is for the TID: - */ -#define FUTEX_TID_MASK		0x3fffffff - -/* - * This limit protects against a deliberately circular list. - * (Not worth introducing an rlimit for it) - */ -#define ROBUST_LIST_LIMIT	2048 - -/* - * bitset with all bits set for the FUTEX_xxx_BITSET OPs to request a - * match of any bit. - */ -#define FUTEX_BITSET_MATCH_ANY	0xffffffff - -#ifdef __KERNEL__  struct inode;  struct mm_struct;  struct task_struct; @@ -185,31 +64,4 @@ static inline void exit_pi_state_list(struct task_struct *curr)  {  }  #endif -#endif /* __KERNEL__ */ - -#define FUTEX_OP_SET		0	/* *(int *)UADDR2 = OPARG; */ -#define FUTEX_OP_ADD		1	/* *(int *)UADDR2 += OPARG; */ -#define FUTEX_OP_OR		2	/* *(int *)UADDR2 |= OPARG; */ -#define FUTEX_OP_ANDN		3	/* *(int *)UADDR2 &= ~OPARG; */ -#define FUTEX_OP_XOR		4	/* *(int *)UADDR2 ^= OPARG; */ - -#define FUTEX_OP_OPARG_SHIFT	8	/* Use (1 << OPARG) instead of OPARG.  */ - -#define FUTEX_OP_CMP_EQ		0	/* if (oldval == CMPARG) wake */ -#define FUTEX_OP_CMP_NE		1	/* if (oldval != CMPARG) wake */ -#define FUTEX_OP_CMP_LT		2	/* if (oldval < CMPARG) wake */ -#define FUTEX_OP_CMP_LE		3	/* if (oldval <= CMPARG) wake */ -#define FUTEX_OP_CMP_GT		4	/* if (oldval > CMPARG) wake */ -#define FUTEX_OP_CMP_GE		5	/* if (oldval >= CMPARG) wake */ - -/* FUTEX_WAKE_OP will perform atomically -   int oldval = *(int *)UADDR2; -   *(int *)UADDR2 = oldval OP OPARG; -   if (oldval CMP CMPARG) -     wake UADDR2;  */ - -#define FUTEX_OP(op, oparg, cmp, cmparg) \ -  (((op & 0xf) << 28) | ((cmp & 0xf) << 24)		\ -   | ((oparg & 0xfff) << 12) | (cmparg & 0xfff)) -  #endif diff --git a/include/linux/gameport.h b/include/linux/gameport.h index b986be51340..bb7de09e8d5 100644 --- a/include/linux/gameport.h +++ b/include/linux/gameport.h @@ -1,6 +1,3 @@ -#ifndef _GAMEPORT_H -#define _GAMEPORT_H -  /*   *  Copyright (c) 1999-2002 Vojtech Pavlik   * @@ -8,8 +5,9 @@   * under the terms of the GNU General Public License version 2 as published by   * the Free Software Foundation.   */ +#ifndef _GAMEPORT_H +#define _GAMEPORT_H -#ifdef __KERNEL__  #include <asm/io.h>  #include <linux/types.h>  #include <linux/list.h> @@ -17,6 +15,7 @@  #include <linux/device.h>  #include <linux/timer.h>  #include <linux/slab.h> +#include <uapi/linux/gameport.h>  struct gameport { @@ -166,24 +165,6 @@ void gameport_unregister_driver(struct gameport_driver *drv);  	module_driver(__gameport_driver, gameport_register_driver, \  		       gameport_unregister_driver) -#endif /* __KERNEL__ */ - -#define GAMEPORT_MODE_DISABLED		0 -#define GAMEPORT_MODE_RAW		1 -#define GAMEPORT_MODE_COOKED		2 - -#define GAMEPORT_ID_VENDOR_ANALOG	0x0001 -#define GAMEPORT_ID_VENDOR_MADCATZ	0x0002 -#define GAMEPORT_ID_VENDOR_LOGITECH	0x0003 -#define GAMEPORT_ID_VENDOR_CREATIVE	0x0004 -#define GAMEPORT_ID_VENDOR_GENIUS	0x0005 -#define GAMEPORT_ID_VENDOR_INTERACT	0x0006 -#define GAMEPORT_ID_VENDOR_MICROSOFT	0x0007 -#define GAMEPORT_ID_VENDOR_THRUSTMASTER	0x0008 -#define GAMEPORT_ID_VENDOR_GRAVIS	0x0009 -#define GAMEPORT_ID_VENDOR_GUILLEMOT	0x000a - -#ifdef __KERNEL__  static inline void gameport_trigger(struct gameport *gameport)  { @@ -235,5 +216,4 @@ static inline void gameport_set_poll_interval(struct gameport *gameport, unsigne  void gameport_start_polling(struct gameport *gameport);  void gameport_stop_polling(struct gameport *gameport); -#endif /* __KERNEL__ */  #endif diff --git a/include/linux/gen_stats.h b/include/linux/gen_stats.h deleted file mode 100644 index 552c8a0a12d..00000000000 --- a/include/linux/gen_stats.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef __LINUX_GEN_STATS_H -#define __LINUX_GEN_STATS_H - -#include <linux/types.h> - -enum { -	TCA_STATS_UNSPEC, -	TCA_STATS_BASIC, -	TCA_STATS_RATE_EST, -	TCA_STATS_QUEUE, -	TCA_STATS_APP, -	__TCA_STATS_MAX, -}; -#define TCA_STATS_MAX (__TCA_STATS_MAX - 1) - -/** - * struct gnet_stats_basic - byte/packet throughput statistics - * @bytes: number of seen bytes - * @packets: number of seen packets - */ -struct gnet_stats_basic { -	__u64	bytes; -	__u32	packets; -}; -struct gnet_stats_basic_packed { -	__u64	bytes; -	__u32	packets; -} __attribute__ ((packed)); - -/** - * struct gnet_stats_rate_est - rate estimator - * @bps: current byte rate - * @pps: current packet rate - */ -struct gnet_stats_rate_est { -	__u32	bps; -	__u32	pps; -}; - -/** - * struct gnet_stats_queue - queuing statistics - * @qlen: queue length - * @backlog: backlog size of queue - * @drops: number of dropped packets - * @requeues: number of requeues - * @overlimits: number of enqueues over the limit - */ -struct gnet_stats_queue { -	__u32	qlen; -	__u32	backlog; -	__u32	drops; -	__u32	requeues; -	__u32	overlimits; -}; - -/** - * struct gnet_estimator - rate estimator configuration - * @interval: sampling period - * @ewma_log: the log of measurement window weight - */ -struct gnet_estimator { -	signed char	interval; -	unsigned char	ewma_log; -}; - - -#endif /* __LINUX_GEN_STATS_H */ diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h index 5ab61c1eb6b..55b685719d5 100644 --- a/include/linux/genetlink.h +++ b/include/linux/genetlink.h @@ -1,86 +1,8 @@  #ifndef __LINUX_GENERIC_NETLINK_H  #define __LINUX_GENERIC_NETLINK_H -#include <linux/types.h> -#include <linux/netlink.h> +#include <uapi/linux/genetlink.h> -#define GENL_NAMSIZ	16	/* length of family name */ - -#define GENL_MIN_ID	NLMSG_MIN_TYPE -#define GENL_MAX_ID	1023 - -struct genlmsghdr { -	__u8	cmd; -	__u8	version; -	__u16	reserved; -}; - -#define GENL_HDRLEN	NLMSG_ALIGN(sizeof(struct genlmsghdr)) - -#define GENL_ADMIN_PERM		0x01 -#define GENL_CMD_CAP_DO		0x02 -#define GENL_CMD_CAP_DUMP	0x04 -#define GENL_CMD_CAP_HASPOL	0x08 - -/* - * List of reserved static generic netlink identifiers: - */ -#define GENL_ID_GENERATE	0 -#define GENL_ID_CTRL		NLMSG_MIN_TYPE - -/************************************************************************** - * Controller - **************************************************************************/ - -enum { -	CTRL_CMD_UNSPEC, -	CTRL_CMD_NEWFAMILY, -	CTRL_CMD_DELFAMILY, -	CTRL_CMD_GETFAMILY, -	CTRL_CMD_NEWOPS, -	CTRL_CMD_DELOPS, -	CTRL_CMD_GETOPS, -	CTRL_CMD_NEWMCAST_GRP, -	CTRL_CMD_DELMCAST_GRP, -	CTRL_CMD_GETMCAST_GRP, /* unused */ -	__CTRL_CMD_MAX, -}; - -#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) - -enum { -	CTRL_ATTR_UNSPEC, -	CTRL_ATTR_FAMILY_ID, -	CTRL_ATTR_FAMILY_NAME, -	CTRL_ATTR_VERSION, -	CTRL_ATTR_HDRSIZE, -	CTRL_ATTR_MAXATTR, -	CTRL_ATTR_OPS, -	CTRL_ATTR_MCAST_GROUPS, -	__CTRL_ATTR_MAX, -}; - -#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) - -enum { -	CTRL_ATTR_OP_UNSPEC, -	CTRL_ATTR_OP_ID, -	CTRL_ATTR_OP_FLAGS, -	__CTRL_ATTR_OP_MAX, -}; - -#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1) - -enum { -	CTRL_ATTR_MCAST_GRP_UNSPEC, -	CTRL_ATTR_MCAST_GRP_NAME, -	CTRL_ATTR_MCAST_GRP_ID, -	__CTRL_ATTR_MCAST_GRP_MAX, -}; - -#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1) - -#ifdef __KERNEL__  /* All generic netlink requests are serialized by a global lock.  */  extern void genl_lock(void); @@ -113,6 +35,4 @@ extern int lockdep_genl_is_held(void);  #define MODULE_ALIAS_GENL_FAMILY(family)\   MODULE_ALIAS_NET_PF_PROTO_NAME(PF_NETLINK, NETLINK_GENERIC, "-family-" family) -#endif /* __KERNEL__ */ -  #endif	/* __LINUX_GENERIC_NETLINK_H */ diff --git a/include/linux/gfs2_ondisk.h b/include/linux/gfs2_ondisk.h deleted file mode 100644 index b2de1f9a88d..00000000000 --- a/include/linux/gfs2_ondisk.h +++ /dev/null @@ -1,464 +0,0 @@ -/* - * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc.  All rights reserved. - * - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU General Public License v.2. - */ - -#ifndef __GFS2_ONDISK_DOT_H__ -#define __GFS2_ONDISK_DOT_H__ - -#include <linux/types.h> - -#define GFS2_MAGIC		0x01161970 -#define GFS2_BASIC_BLOCK	512 -#define GFS2_BASIC_BLOCK_SHIFT	9 - -/* Lock numbers of the LM_TYPE_NONDISK type */ - -#define GFS2_MOUNT_LOCK		0 -#define GFS2_LIVE_LOCK		1 -#define GFS2_TRANS_LOCK		2 -#define GFS2_RENAME_LOCK	3 -#define GFS2_CONTROL_LOCK	4 -#define GFS2_MOUNTED_LOCK	5 - -/* Format numbers for various metadata types */ - -#define GFS2_FORMAT_NONE	0 -#define GFS2_FORMAT_SB		100 -#define GFS2_FORMAT_RG		200 -#define GFS2_FORMAT_RB		300 -#define GFS2_FORMAT_DI		400 -#define GFS2_FORMAT_IN		500 -#define GFS2_FORMAT_LF		600 -#define GFS2_FORMAT_JD		700 -#define GFS2_FORMAT_LH		800 -#define GFS2_FORMAT_LD		900 -#define GFS2_FORMAT_LB		1000 -#define GFS2_FORMAT_EA		1600 -#define GFS2_FORMAT_ED		1700 -#define GFS2_FORMAT_QC		1400 -/* These are format numbers for entities contained in files */ -#define GFS2_FORMAT_RI		1100 -#define GFS2_FORMAT_DE		1200 -#define GFS2_FORMAT_QU		1500 -/* These are part of the superblock */ -#define GFS2_FORMAT_FS		1801 -#define GFS2_FORMAT_MULTI	1900 - -/* - * An on-disk inode number - */ - -struct gfs2_inum { -	__be64 no_formal_ino; -	__be64 no_addr; -}; - -/* - * Generic metadata head structure - * Every inplace buffer logged in the journal must start with this. - */ - -#define GFS2_METATYPE_NONE	0 -#define GFS2_METATYPE_SB	1 -#define GFS2_METATYPE_RG	2 -#define GFS2_METATYPE_RB	3 -#define GFS2_METATYPE_DI	4 -#define GFS2_METATYPE_IN	5 -#define GFS2_METATYPE_LF	6 -#define GFS2_METATYPE_JD	7 -#define GFS2_METATYPE_LH	8 -#define GFS2_METATYPE_LD	9 -#define GFS2_METATYPE_LB	12 -#define GFS2_METATYPE_EA	10 -#define GFS2_METATYPE_ED	11 -#define GFS2_METATYPE_QC	14 - -struct gfs2_meta_header { -	__be32 mh_magic; -	__be32 mh_type; -	__be64 __pad0;		/* Was generation number in gfs1 */ -	__be32 mh_format; -	/* This union is to keep userspace happy */ -	union { -		__be32 mh_jid;		/* Was incarnation number in gfs1 */ -		__be32 __pad1; -	}; -}; - -/* - * super-block structure - * - * It's probably good if SIZEOF_SB <= GFS2_BASIC_BLOCK (512 bytes) - * - * Order is important, need to be able to read old superblocks to do on-disk - * version upgrades. - */ - -/* Address of superblock in GFS2 basic blocks */ -#define GFS2_SB_ADDR		128 - -/* The lock number for the superblock (must be zero) */ -#define GFS2_SB_LOCK		0 - -/* Requirement:  GFS2_LOCKNAME_LEN % 8 == 0 -   Includes: the fencing zero at the end */ -#define GFS2_LOCKNAME_LEN	64 - -struct gfs2_sb { -	struct gfs2_meta_header sb_header; - -	__be32 sb_fs_format; -	__be32 sb_multihost_format; -	__u32  __pad0;	/* Was superblock flags in gfs1 */ - -	__be32 sb_bsize; -	__be32 sb_bsize_shift; -	__u32 __pad1;	/* Was journal segment size in gfs1 */ - -	struct gfs2_inum sb_master_dir; /* Was jindex dinode in gfs1 */ -	struct gfs2_inum __pad2; /* Was rindex dinode in gfs1 */ -	struct gfs2_inum sb_root_dir; - -	char sb_lockproto[GFS2_LOCKNAME_LEN]; -	char sb_locktable[GFS2_LOCKNAME_LEN]; - -	struct gfs2_inum __pad3; /* Was quota inode in gfs1 */ -	struct gfs2_inum __pad4; /* Was licence inode in gfs1 */ -#define GFS2_HAS_UUID 1 -	__u8 sb_uuid[16]; /* The UUID, maybe 0 for backwards compat */ -}; - -/* - * resource index structure - */ - -struct gfs2_rindex { -	__be64 ri_addr;	/* grp block disk address */ -	__be32 ri_length;	/* length of rgrp header in fs blocks */ -	__u32 __pad; - -	__be64 ri_data0;	/* first data location */ -	__be32 ri_data;	/* num of data blocks in rgrp */ - -	__be32 ri_bitbytes;	/* number of bytes in data bitmaps */ - -	__u8 ri_reserved[64]; -}; - -/* - * resource group header structure - */ - -/* Number of blocks per byte in rgrp */ -#define GFS2_NBBY		4 -#define GFS2_BIT_SIZE		2 -#define GFS2_BIT_MASK		0x00000003 - -#define GFS2_BLKST_FREE		0 -#define GFS2_BLKST_USED		1 -#define GFS2_BLKST_UNLINKED	2 -#define GFS2_BLKST_DINODE	3 - -#define GFS2_RGF_JOURNAL	0x00000001 -#define GFS2_RGF_METAONLY	0x00000002 -#define GFS2_RGF_DATAONLY	0x00000004 -#define GFS2_RGF_NOALLOC	0x00000008 -#define GFS2_RGF_TRIMMED	0x00000010 - -struct gfs2_rgrp_lvb { -	__be32 rl_magic; -	__be32 rl_flags; -	__be32 rl_free; -	__be32 rl_dinodes; -	__be64 rl_igeneration; -	__be32 rl_unlinked; -	__be32 __pad; -}; - -struct gfs2_rgrp { -	struct gfs2_meta_header rg_header; - -	__be32 rg_flags; -	__be32 rg_free; -	__be32 rg_dinodes; -	__be32 __pad; -	__be64 rg_igeneration; - -	__u8 rg_reserved[80]; /* Several fields from gfs1 now reserved */ -}; - -/* - * quota structure - */ - -struct gfs2_quota { -	__be64 qu_limit; -	__be64 qu_warn; -	__be64 qu_value; -	__u8 qu_reserved[64]; -}; - -/* - * dinode structure - */ - -#define GFS2_MAX_META_HEIGHT	10 -#define GFS2_DIR_MAX_DEPTH	17 - -#define DT2IF(dt) (((dt) << 12) & S_IFMT) -#define IF2DT(sif) (((sif) & S_IFMT) >> 12) - -enum { -	gfs2fl_Jdata		= 0, -	gfs2fl_ExHash		= 1, -	gfs2fl_Unused		= 2, -	gfs2fl_EaIndirect	= 3, -	gfs2fl_Directio		= 4, -	gfs2fl_Immutable	= 5, -	gfs2fl_AppendOnly	= 6, -	gfs2fl_NoAtime		= 7, -	gfs2fl_Sync		= 8, -	gfs2fl_System		= 9, -	gfs2fl_TopLevel		= 10, -	gfs2fl_TruncInProg	= 29, -	gfs2fl_InheritDirectio	= 30, -	gfs2fl_InheritJdata	= 31, -}; - -/* Dinode flags */ -#define GFS2_DIF_JDATA			0x00000001 -#define GFS2_DIF_EXHASH			0x00000002 -#define GFS2_DIF_UNUSED			0x00000004  /* only in gfs1 */ -#define GFS2_DIF_EA_INDIRECT		0x00000008 -#define GFS2_DIF_DIRECTIO		0x00000010 -#define GFS2_DIF_IMMUTABLE		0x00000020 -#define GFS2_DIF_APPENDONLY		0x00000040 -#define GFS2_DIF_NOATIME		0x00000080 -#define GFS2_DIF_SYNC			0x00000100 -#define GFS2_DIF_SYSTEM			0x00000200 /* New in gfs2 */ -#define GFS2_DIF_TOPDIR			0x00000400 /* New in gfs2 */ -#define GFS2_DIF_TRUNC_IN_PROG		0x20000000 /* New in gfs2 */ -#define GFS2_DIF_INHERIT_DIRECTIO	0x40000000 /* only in gfs1 */ -#define GFS2_DIF_INHERIT_JDATA		0x80000000 - -struct gfs2_dinode { -	struct gfs2_meta_header di_header; - -	struct gfs2_inum di_num; - -	__be32 di_mode;	/* mode of file */ -	__be32 di_uid;	/* owner's user id */ -	__be32 di_gid;	/* owner's group id */ -	__be32 di_nlink;	/* number of links to this file */ -	__be64 di_size;	/* number of bytes in file */ -	__be64 di_blocks;	/* number of blocks in file */ -	__be64 di_atime;	/* time last accessed */ -	__be64 di_mtime;	/* time last modified */ -	__be64 di_ctime;	/* time last changed */ -	__be32 di_major;	/* device major number */ -	__be32 di_minor;	/* device minor number */ - -	/* This section varies from gfs1. Padding added to align with -         * remainder of dinode -	 */ -	__be64 di_goal_meta;	/* rgrp to alloc from next */ -	__be64 di_goal_data;	/* data block goal */ -	__be64 di_generation;	/* generation number for NFS */ - -	__be32 di_flags;	/* GFS2_DIF_... */ -	__be32 di_payload_format;  /* GFS2_FORMAT_... */ -	__u16 __pad1;	/* Was ditype in gfs1 */ -	__be16 di_height;	/* height of metadata */ -	__u32 __pad2;	/* Unused incarnation number from gfs1 */ - -	/* These only apply to directories  */ -	__u16 __pad3;	/* Padding */ -	__be16 di_depth;	/* Number of bits in the table */ -	__be32 di_entries;	/* The number of entries in the directory */ - -	struct gfs2_inum __pad4; /* Unused even in current gfs1 */ - -	__be64 di_eattr;	/* extended attribute block number */ -	__be32 di_atime_nsec;   /* nsec portion of atime */ -	__be32 di_mtime_nsec;   /* nsec portion of mtime */ -	__be32 di_ctime_nsec;   /* nsec portion of ctime */ - -	__u8 di_reserved[44]; -}; - -/* - * directory structure - many of these per directory file - */ - -#define GFS2_FNAMESIZE		255 -#define GFS2_DIRENT_SIZE(name_len) ((sizeof(struct gfs2_dirent) + (name_len) + 7) & ~7) - -struct gfs2_dirent { -	struct gfs2_inum de_inum; -	__be32 de_hash; -	__be16 de_rec_len; -	__be16 de_name_len; -	__be16 de_type; -	__u8 __pad[14]; -}; - -/* - * Header of leaf directory nodes - */ - -struct gfs2_leaf { -	struct gfs2_meta_header lf_header; - -	__be16 lf_depth;		/* Depth of leaf */ -	__be16 lf_entries;		/* Number of dirents in leaf */ -	__be32 lf_dirent_format;	/* Format of the dirents */ -	__be64 lf_next;			/* Next leaf, if overflow */ - -	__u8 lf_reserved[64]; -}; - -/* - * Extended attribute header format - * - * This works in a similar way to dirents. There is a fixed size header - * followed by a variable length section made up of the name and the - * associated data. In the case of a "stuffed" entry, the value is - * inline directly after the name, the ea_num_ptrs entry will be - * zero in that case. For non-"stuffed" entries, there will be - * a set of pointers (aligned to 8 byte boundary) to the block(s) - * containing the value. - * - * The blocks containing the values and the blocks containing the - * extended attribute headers themselves all start with the common - * metadata header. Each inode, if it has extended attributes, will - * have either a single block containing the extended attribute headers - * or a single indirect block pointing to blocks containing the - * extended attribure headers. - * - * The maximim size of the data part of an extended attribute is 64k - * so the number of blocks required depends upon block size. Since the - * block size also determines the number of pointers in an indirect - * block, its a fairly complicated calculation to work out the maximum - * number of blocks that an inode may have relating to extended attributes. - * - */ - -#define GFS2_EA_MAX_NAME_LEN	255 -#define GFS2_EA_MAX_DATA_LEN	65536 - -#define GFS2_EATYPE_UNUSED	0 -#define GFS2_EATYPE_USR		1 -#define GFS2_EATYPE_SYS		2 -#define GFS2_EATYPE_SECURITY	3 - -#define GFS2_EATYPE_LAST	3 -#define GFS2_EATYPE_VALID(x)	((x) <= GFS2_EATYPE_LAST) - -#define GFS2_EAFLAG_LAST	0x01	/* last ea in block */ - -struct gfs2_ea_header { -	__be32 ea_rec_len; -	__be32 ea_data_len; -	__u8 ea_name_len;	/* no NULL pointer after the string */ -	__u8 ea_type;		/* GFS2_EATYPE_... */ -	__u8 ea_flags;		/* GFS2_EAFLAG_... */ -	__u8 ea_num_ptrs; -	__u32 __pad; -}; - -/* - * Log header structure - */ - -#define GFS2_LOG_HEAD_UNMOUNT	0x00000001	/* log is clean */ - -struct gfs2_log_header { -	struct gfs2_meta_header lh_header; - -	__be64 lh_sequence;	/* Sequence number of this transaction */ -	__be32 lh_flags;	/* GFS2_LOG_HEAD_... */ -	__be32 lh_tail;		/* Block number of log tail */ -	__be32 lh_blkno; -	__be32 lh_hash; -}; - -/* - * Log type descriptor - */ - -#define GFS2_LOG_DESC_METADATA	300 -/* ld_data1 is the number of metadata blocks in the descriptor. -   ld_data2 is unused. */ - -#define GFS2_LOG_DESC_REVOKE	301 -/* ld_data1 is the number of revoke blocks in the descriptor. -   ld_data2 is unused. */ - -#define GFS2_LOG_DESC_JDATA	302 -/* ld_data1 is the number of data blocks in the descriptor. -   ld_data2 is unused. */ - -struct gfs2_log_descriptor { -	struct gfs2_meta_header ld_header; - -	__be32 ld_type;		/* GFS2_LOG_DESC_... */ -	__be32 ld_length;	/* Number of buffers in this chunk */ -	__be32 ld_data1;	/* descriptor-specific field */ -	__be32 ld_data2;	/* descriptor-specific field */ - -	__u8 ld_reserved[32]; -}; - -/* - * Inum Range - * Describe a range of formal inode numbers allocated to - * one machine to assign to inodes. - */ - -#define GFS2_INUM_QUANTUM	1048576 - -struct gfs2_inum_range { -	__be64 ir_start; -	__be64 ir_length; -}; - -/* - * Statfs change - * Describes an change to the pool of free and allocated - * blocks. - */ - -struct gfs2_statfs_change { -	__be64 sc_total; -	__be64 sc_free; -	__be64 sc_dinodes; -}; - -/* - * Quota change - * Describes an allocation change for a particular - * user or group. - */ - -#define GFS2_QCF_USER		0x00000001 - -struct gfs2_quota_change { -	__be64 qc_change; -	__be32 qc_flags;	/* GFS2_QCF_... */ -	__be32 qc_id; -}; - -struct gfs2_quota_lvb { -        __be32 qb_magic; -        __u32 __pad; -        __be64 qb_limit;      /* Hard limit of # blocks to alloc */ -        __be64 qb_warn;       /* Warn user when alloc is above this # */ -        __be64 qb_value;       /* Current # blocks allocated */ -}; - -#endif /* __GFS2_ONDISK_DOT_H__ */ diff --git a/include/linux/gigaset_dev.h b/include/linux/gigaset_dev.h deleted file mode 100644 index 258ba82937e..00000000000 --- a/include/linux/gigaset_dev.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * interface to user space for the gigaset driver - * - * Copyright (c) 2004 by Hansjoerg Lipp <hjlipp@web.de> - * - * ===================================================================== - *    This program is free software; you can redistribute it and/or - *    modify it under the terms of the GNU General Public License as - *    published by the Free Software Foundation; either version 2 of - *    the License, or (at your option) any later version. - * ===================================================================== - */ - -#ifndef GIGASET_INTERFACE_H -#define GIGASET_INTERFACE_H - -#include <linux/ioctl.h> - -/* The magic IOCTL value for this interface. */ -#define GIGASET_IOCTL 0x47 - -/* enable/disable device control via character device (lock out ISDN subsys) */ -#define GIGASET_REDIR    _IOWR(GIGASET_IOCTL, 0, int) - -/* enable adapter configuration mode (M10x only) */ -#define GIGASET_CONFIG   _IOWR(GIGASET_IOCTL, 1, int) - -/* set break characters (M105 only) */ -#define GIGASET_BRKCHARS _IOW(GIGASET_IOCTL, 2, unsigned char[6]) - -/* get version information selected by arg[0] */ -#define GIGASET_VERSION  _IOWR(GIGASET_IOCTL, 3, unsigned[4]) -/* values for GIGASET_VERSION arg[0] */ -#define GIGVER_DRIVER 0		/* get driver version */ -#define GIGVER_COMPAT 1		/* get interface compatibility version */ -#define GIGVER_FWBASE 2		/* get base station firmware version */ - -#endif diff --git a/include/linux/hdlc.h b/include/linux/hdlc.h index ee275c8b3df..1acb1445e05 100644 --- a/include/linux/hdlc.h +++ b/include/linux/hdlc.h @@ -7,24 +7,14 @@   * under the terms of version 2 of the GNU General Public License   * as published by the Free Software Foundation.   */ -  #ifndef __HDLC_H  #define __HDLC_H -#define HDLC_MAX_MTU 1500	/* Ethernet 1500 bytes */ -#if 0 -#define HDLC_MAX_MRU (HDLC_MAX_MTU + 10 + 14 + 4) /* for ETH+VLAN over FR */ -#else -#define HDLC_MAX_MRU 1600 /* as required for FR network */ -#endif - - -#ifdef __KERNEL__ -  #include <linux/skbuff.h>  #include <linux/netdevice.h>  #include <linux/hdlc/ioctl.h> +#include <uapi/linux/hdlc.h>  /* This structure is a private property of HDLC protocols.     Hardware drivers have no interest here */ @@ -127,5 +117,4 @@ static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb,  		return htons(ETH_P_HDLC);  } -#endif /* __KERNEL */  #endif /* __HDLC_H */ diff --git a/include/linux/hdlcdrv.h b/include/linux/hdlcdrv.h index c010b4a785b..be3be25bb89 100644 --- a/include/linux/hdlcdrv.h +++ b/include/linux/hdlcdrv.h @@ -3,110 +3,14 @@   * The Linux soundcard driver for 1200 baud and 9600 baud packet radio   * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA   */ -  #ifndef _HDLCDRV_H  #define _HDLCDRV_H -/* -------------------------------------------------------------------- */ -/* - * structs for the IOCTL commands - */ - -struct hdlcdrv_params { -	int iobase; -	int irq; -	int dma; -	int dma2; -	int seriobase; -	int pariobase; -	int midiiobase; -};	 - -struct hdlcdrv_channel_params { -	int tx_delay;  /* the transmitter keyup delay in 10ms units */ -	int tx_tail;   /* the transmitter keyoff delay in 10ms units */ -	int slottime;  /* the slottime in 10ms; usually 10 = 100ms */ -	int ppersist;  /* the p-persistence 0..255 */ -	int fulldup;   /* some driver do not support full duplex, setting */ -	               /* this just makes them send even if DCD is on */ -};	 - -struct hdlcdrv_old_channel_state { -  	int ptt; -  	int dcd; -  	int ptt_keyed; -}; - -struct hdlcdrv_channel_state { - 	int ptt; - 	int dcd; - 	int ptt_keyed; - 	unsigned long tx_packets; - 	unsigned long tx_errors; - 	unsigned long rx_packets; - 	unsigned long rx_errors; -}; - -struct hdlcdrv_ioctl { -	int cmd; -	union { -		struct hdlcdrv_params mp; -		struct hdlcdrv_channel_params cp; -		struct hdlcdrv_channel_state cs; -		struct hdlcdrv_old_channel_state ocs; -		unsigned int calibrate; -		unsigned char bits; -		char modename[128]; -		char drivername[32]; -	} data; -}; - -/* -------------------------------------------------------------------- */ - -/* - * ioctl values - */ -#define HDLCDRVCTL_GETMODEMPAR       0 -#define HDLCDRVCTL_SETMODEMPAR       1 -#define HDLCDRVCTL_MODEMPARMASK      2  /* not handled by hdlcdrv */ -#define HDLCDRVCTL_GETCHANNELPAR    10 -#define HDLCDRVCTL_SETCHANNELPAR    11 -#define HDLCDRVCTL_OLDGETSTAT       20 -#define HDLCDRVCTL_CALIBRATE        21 -#define HDLCDRVCTL_GETSTAT          22 - -/* - * these are mainly for debugging purposes - */ -#define HDLCDRVCTL_GETSAMPLES       30 -#define HDLCDRVCTL_GETBITS          31 - -/* - * not handled by hdlcdrv, but by its depending drivers - */ -#define HDLCDRVCTL_GETMODE          40 -#define HDLCDRVCTL_SETMODE          41 -#define HDLCDRVCTL_MODELIST         42 -#define HDLCDRVCTL_DRIVERNAME       43 - -/* - * mask of needed modem parameters, returned by HDLCDRVCTL_MODEMPARMASK - */ -#define HDLCDRV_PARMASK_IOBASE      (1<<0) -#define HDLCDRV_PARMASK_IRQ         (1<<1) -#define HDLCDRV_PARMASK_DMA         (1<<2) -#define HDLCDRV_PARMASK_DMA2        (1<<3) -#define HDLCDRV_PARMASK_SERIOBASE   (1<<4) -#define HDLCDRV_PARMASK_PARIOBASE   (1<<5) -#define HDLCDRV_PARMASK_MIDIIOBASE  (1<<6) - -/* -------------------------------------------------------------------- */ - -#ifdef __KERNEL__  #include <linux/netdevice.h>  #include <linux/if.h>  #include <linux/spinlock.h> +#include <uapi/linux/hdlcdrv.h>  #define HDLCDRV_MAGIC      0x5ac6e778  #define HDLCDRV_HDLCBUFFER  32 /* should be a power of 2 for speed reasons */ @@ -368,10 +272,4 @@ void hdlcdrv_unregister(struct net_device *dev); -#endif /* __KERNEL__ */ - -/* -------------------------------------------------------------------- */ -  #endif /* _HDLCDRV_H */ - -/* -------------------------------------------------------------------- */ diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h deleted file mode 100644 index 29ee2873f4a..00000000000 --- a/include/linux/hdreg.h +++ /dev/null @@ -1,658 +0,0 @@ -#ifndef _LINUX_HDREG_H -#define _LINUX_HDREG_H - -#include <linux/types.h> - -/* - * Command Header sizes for IOCTL commands - */ - -#define HDIO_DRIVE_CMD_HDR_SIZE		(4 * sizeof(__u8)) -#define HDIO_DRIVE_HOB_HDR_SIZE		(8 * sizeof(__u8)) -#define HDIO_DRIVE_TASK_HDR_SIZE	(8 * sizeof(__u8)) - -#define IDE_DRIVE_TASK_NO_DATA		0 -#ifndef __KERNEL__ -#define IDE_DRIVE_TASK_INVALID		-1 -#define IDE_DRIVE_TASK_SET_XFER		1 -#define IDE_DRIVE_TASK_IN		2 -#define IDE_DRIVE_TASK_OUT		3 -#endif -#define IDE_DRIVE_TASK_RAW_WRITE	4 - -/* - * Define standard taskfile in/out register - */ -#define IDE_TASKFILE_STD_IN_FLAGS	0xFE -#define IDE_HOB_STD_IN_FLAGS		0x3C -#ifndef __KERNEL__ -#define IDE_TASKFILE_STD_OUT_FLAGS	0xFE -#define IDE_HOB_STD_OUT_FLAGS		0x3C - -typedef unsigned char task_ioreg_t; -typedef unsigned long sata_ioreg_t; -#endif - -typedef union ide_reg_valid_s { -	unsigned all				: 16; -	struct { -		unsigned data			: 1; -		unsigned error_feature		: 1; -		unsigned sector			: 1; -		unsigned nsector		: 1; -		unsigned lcyl			: 1; -		unsigned hcyl			: 1; -		unsigned select			: 1; -		unsigned status_command		: 1; - -		unsigned data_hob		: 1; -		unsigned error_feature_hob	: 1; -		unsigned sector_hob		: 1; -		unsigned nsector_hob		: 1; -		unsigned lcyl_hob		: 1; -		unsigned hcyl_hob		: 1; -		unsigned select_hob		: 1; -		unsigned control_hob		: 1; -	} b; -} ide_reg_valid_t; - -typedef struct ide_task_request_s { -	__u8		io_ports[8]; -	__u8		hob_ports[8]; /* bytes 6 and 7 are unused */ -	ide_reg_valid_t	out_flags; -	ide_reg_valid_t	in_flags; -	int		data_phase; -	int		req_cmd; -	unsigned long	out_size; -	unsigned long	in_size; -} ide_task_request_t; - -typedef struct ide_ioctl_request_s { -	ide_task_request_t	*task_request; -	unsigned char		*out_buffer; -	unsigned char		*in_buffer; -} ide_ioctl_request_t; - -struct hd_drive_cmd_hdr { -	__u8 command; -	__u8 sector_number; -	__u8 feature; -	__u8 sector_count; -}; - -#ifndef __KERNEL__ -typedef struct hd_drive_task_hdr { -	__u8 data; -	__u8 feature; -	__u8 sector_count; -	__u8 sector_number; -	__u8 low_cylinder; -	__u8 high_cylinder; -	__u8 device_head; -	__u8 command; -} task_struct_t; - -typedef struct hd_drive_hob_hdr { -	__u8 data; -	__u8 feature; -	__u8 sector_count; -	__u8 sector_number; -	__u8 low_cylinder; -	__u8 high_cylinder; -	__u8 device_head; -	__u8 control; -} hob_struct_t; -#endif - -#define TASKFILE_NO_DATA		0x0000 - -#define TASKFILE_IN			0x0001 -#define TASKFILE_MULTI_IN		0x0002 - -#define TASKFILE_OUT			0x0004 -#define TASKFILE_MULTI_OUT		0x0008 -#define TASKFILE_IN_OUT			0x0010 - -#define TASKFILE_IN_DMA			0x0020 -#define TASKFILE_OUT_DMA		0x0040 -#define TASKFILE_IN_DMAQ		0x0080 -#define TASKFILE_OUT_DMAQ		0x0100 - -#ifndef __KERNEL__ -#define TASKFILE_P_IN			0x0200 -#define TASKFILE_P_OUT			0x0400 -#define TASKFILE_P_IN_DMA		0x0800 -#define TASKFILE_P_OUT_DMA		0x1000 -#define TASKFILE_P_IN_DMAQ		0x2000 -#define TASKFILE_P_OUT_DMAQ		0x4000 -#define TASKFILE_48			0x8000 -#define TASKFILE_INVALID		0x7fff -#endif - -#ifndef __KERNEL__ -/* ATA/ATAPI Commands pre T13 Spec */ -#define WIN_NOP				0x00 -/* - *	0x01->0x02 Reserved - */ -#define CFA_REQ_EXT_ERROR_CODE		0x03 /* CFA Request Extended Error Code */ -/* - *	0x04->0x07 Reserved - */ -#define WIN_SRST			0x08 /* ATAPI soft reset command */ -#define WIN_DEVICE_RESET		0x08 -/* - *	0x09->0x0F Reserved - */ -#define WIN_RECAL			0x10 -#define WIN_RESTORE			WIN_RECAL -/* - *	0x10->0x1F Reserved - */ -#define WIN_READ			0x20 /* 28-Bit */ -#define WIN_READ_ONCE			0x21 /* 28-Bit without retries */ -#define WIN_READ_LONG			0x22 /* 28-Bit */ -#define WIN_READ_LONG_ONCE		0x23 /* 28-Bit without retries */ -#define WIN_READ_EXT			0x24 /* 48-Bit */ -#define WIN_READDMA_EXT			0x25 /* 48-Bit */ -#define WIN_READDMA_QUEUED_EXT		0x26 /* 48-Bit */ -#define WIN_READ_NATIVE_MAX_EXT		0x27 /* 48-Bit */ -/* - *	0x28 - */ -#define WIN_MULTREAD_EXT		0x29 /* 48-Bit */ -/* - *	0x2A->0x2F Reserved - */ -#define WIN_WRITE			0x30 /* 28-Bit */ -#define WIN_WRITE_ONCE			0x31 /* 28-Bit without retries */ -#define WIN_WRITE_LONG			0x32 /* 28-Bit */ -#define WIN_WRITE_LONG_ONCE		0x33 /* 28-Bit without retries */ -#define WIN_WRITE_EXT			0x34 /* 48-Bit */ -#define WIN_WRITEDMA_EXT		0x35 /* 48-Bit */ -#define WIN_WRITEDMA_QUEUED_EXT		0x36 /* 48-Bit */ -#define WIN_SET_MAX_EXT			0x37 /* 48-Bit */ -#define CFA_WRITE_SECT_WO_ERASE		0x38 /* CFA Write Sectors without erase */ -#define WIN_MULTWRITE_EXT		0x39 /* 48-Bit */ -/* - *	0x3A->0x3B Reserved - */ -#define WIN_WRITE_VERIFY		0x3C /* 28-Bit */ -/* - *	0x3D->0x3F Reserved - */ -#define WIN_VERIFY			0x40 /* 28-Bit - Read Verify Sectors */ -#define WIN_VERIFY_ONCE			0x41 /* 28-Bit - without retries */ -#define WIN_VERIFY_EXT			0x42 /* 48-Bit */ -/* - *	0x43->0x4F Reserved - */ -#define WIN_FORMAT			0x50 -/* - *	0x51->0x5F Reserved - */ -#define WIN_INIT			0x60 -/* - *	0x61->0x5F Reserved - */ -#define WIN_SEEK			0x70 /* 0x70-0x7F Reserved */ - -#define CFA_TRANSLATE_SECTOR		0x87 /* CFA Translate Sector */ -#define WIN_DIAGNOSE			0x90 -#define WIN_SPECIFY			0x91 /* set drive geometry translation */ -#define WIN_DOWNLOAD_MICROCODE		0x92 -#define WIN_STANDBYNOW2			0x94 -#define WIN_STANDBY2			0x96 -#define WIN_SETIDLE2			0x97 -#define WIN_CHECKPOWERMODE2		0x98 -#define WIN_SLEEPNOW2			0x99 -/* - *	0x9A VENDOR - */ -#define WIN_PACKETCMD			0xA0 /* Send a packet command. */ -#define WIN_PIDENTIFY			0xA1 /* identify ATAPI device	*/ -#define WIN_QUEUED_SERVICE		0xA2 -#define WIN_SMART			0xB0 /* self-monitoring and reporting */ -#define CFA_ERASE_SECTORS		0xC0 -#define WIN_MULTREAD			0xC4 /* read sectors using multiple mode*/ -#define WIN_MULTWRITE			0xC5 /* write sectors using multiple mode */ -#define WIN_SETMULT			0xC6 /* enable/disable multiple mode */ -#define WIN_READDMA_QUEUED		0xC7 /* read sectors using Queued DMA transfers */ -#define WIN_READDMA			0xC8 /* read sectors using DMA transfers */ -#define WIN_READDMA_ONCE		0xC9 /* 28-Bit - without retries */ -#define WIN_WRITEDMA			0xCA /* write sectors using DMA transfers */ -#define WIN_WRITEDMA_ONCE		0xCB /* 28-Bit - without retries */ -#define WIN_WRITEDMA_QUEUED		0xCC /* write sectors using Queued DMA transfers */ -#define CFA_WRITE_MULTI_WO_ERASE	0xCD /* CFA Write multiple without erase */ -#define WIN_GETMEDIASTATUS		0xDA -#define WIN_ACKMEDIACHANGE		0xDB /* ATA-1, ATA-2 vendor */ -#define WIN_POSTBOOT			0xDC -#define WIN_PREBOOT 			0xDD -#define WIN_DOORLOCK			0xDE /* lock door on removable drives */ -#define WIN_DOORUNLOCK			0xDF /* unlock door on removable drives */ -#define WIN_STANDBYNOW1			0xE0 -#define WIN_IDLEIMMEDIATE		0xE1 /* force drive to become "ready" */ -#define WIN_STANDBY			0xE2 /* Set device in Standby Mode */ -#define WIN_SETIDLE1			0xE3 -#define WIN_READ_BUFFER			0xE4 /* force read only 1 sector */ -#define WIN_CHECKPOWERMODE1		0xE5 -#define WIN_SLEEPNOW1			0xE6 -#define WIN_FLUSH_CACHE			0xE7 -#define WIN_WRITE_BUFFER		0xE8 /* force write only 1 sector */ -#define WIN_WRITE_SAME			0xE9 /* read ata-2 to use */ -	/* SET_FEATURES 0x22 or 0xDD */ -#define WIN_FLUSH_CACHE_EXT		0xEA /* 48-Bit */ -#define WIN_IDENTIFY			0xEC /* ask drive to identify itself	*/ -#define WIN_MEDIAEJECT			0xED -#define WIN_IDENTIFY_DMA		0xEE /* same as WIN_IDENTIFY, but DMA */ -#define WIN_SETFEATURES			0xEF /* set special drive features */ -#define EXABYTE_ENABLE_NEST		0xF0 -#define WIN_SECURITY_SET_PASS		0xF1 -#define WIN_SECURITY_UNLOCK		0xF2 -#define WIN_SECURITY_ERASE_PREPARE	0xF3 -#define WIN_SECURITY_ERASE_UNIT		0xF4 -#define WIN_SECURITY_FREEZE_LOCK	0xF5 -#define WIN_SECURITY_DISABLE		0xF6 -#define WIN_READ_NATIVE_MAX		0xF8 /* return the native maximum address */ -#define WIN_SET_MAX			0xF9 -#define DISABLE_SEAGATE			0xFB - -/* WIN_SMART sub-commands */ - -#define SMART_READ_VALUES		0xD0 -#define SMART_READ_THRESHOLDS		0xD1 -#define SMART_AUTOSAVE			0xD2 -#define SMART_SAVE			0xD3 -#define SMART_IMMEDIATE_OFFLINE		0xD4 -#define SMART_READ_LOG_SECTOR		0xD5 -#define SMART_WRITE_LOG_SECTOR		0xD6 -#define SMART_WRITE_THRESHOLDS		0xD7 -#define SMART_ENABLE			0xD8 -#define SMART_DISABLE			0xD9 -#define SMART_STATUS			0xDA -#define SMART_AUTO_OFFLINE		0xDB - -/* Password used in TF4 & TF5 executing SMART commands */ - -#define SMART_LCYL_PASS			0x4F -#define SMART_HCYL_PASS			0xC2 - -/* WIN_SETFEATURES sub-commands */ -#define SETFEATURES_EN_8BIT	0x01	/* Enable 8-Bit Transfers */ -#define SETFEATURES_EN_WCACHE	0x02	/* Enable write cache */ -#define SETFEATURES_DIS_DEFECT	0x04	/* Disable Defect Management */ -#define SETFEATURES_EN_APM	0x05	/* Enable advanced power management */ -#define SETFEATURES_EN_SAME_R	0x22	/* for a region ATA-1 */ -#define SETFEATURES_DIS_MSN	0x31	/* Disable Media Status Notification */ -#define SETFEATURES_DIS_RETRY	0x33	/* Disable Retry */ -#define SETFEATURES_EN_AAM	0x42	/* Enable Automatic Acoustic Management */ -#define SETFEATURES_RW_LONG	0x44	/* Set Length of VS bytes */ -#define SETFEATURES_SET_CACHE	0x54	/* Set Cache segments to SC Reg. Val */ -#define SETFEATURES_DIS_RLA	0x55	/* Disable read look-ahead feature */ -#define SETFEATURES_EN_RI	0x5D	/* Enable release interrupt */ -#define SETFEATURES_EN_SI	0x5E	/* Enable SERVICE interrupt */ -#define SETFEATURES_DIS_RPOD	0x66	/* Disable reverting to power on defaults */ -#define SETFEATURES_DIS_ECC	0x77	/* Disable ECC byte count */ -#define SETFEATURES_DIS_8BIT	0x81	/* Disable 8-Bit Transfers */ -#define SETFEATURES_DIS_WCACHE	0x82	/* Disable write cache */ -#define SETFEATURES_EN_DEFECT	0x84	/* Enable Defect Management */ -#define SETFEATURES_DIS_APM	0x85	/* Disable advanced power management */ -#define SETFEATURES_EN_ECC	0x88	/* Enable ECC byte count */ -#define SETFEATURES_EN_MSN	0x95	/* Enable Media Status Notification */ -#define SETFEATURES_EN_RETRY	0x99	/* Enable Retry */ -#define SETFEATURES_EN_RLA	0xAA	/* Enable read look-ahead feature */ -#define SETFEATURES_PREFETCH	0xAB	/* Sets drive prefetch value */ -#define SETFEATURES_EN_REST	0xAC	/* ATA-1 */ -#define SETFEATURES_4B_RW_LONG	0xBB	/* Set Length of 4 bytes */ -#define SETFEATURES_DIS_AAM	0xC2	/* Disable Automatic Acoustic Management */ -#define SETFEATURES_EN_RPOD	0xCC	/* Enable reverting to power on defaults */ -#define SETFEATURES_DIS_RI	0xDD	/* Disable release interrupt ATAPI */ -#define SETFEATURES_EN_SAME_M	0xDD	/* for a entire device ATA-1 */ -#define SETFEATURES_DIS_SI	0xDE	/* Disable SERVICE interrupt ATAPI */ - -/* WIN_SECURITY sub-commands */ - -#define SECURITY_SET_PASSWORD		0xBA -#define SECURITY_UNLOCK			0xBB -#define SECURITY_ERASE_PREPARE		0xBC -#define SECURITY_ERASE_UNIT		0xBD -#define SECURITY_FREEZE_LOCK		0xBE -#define SECURITY_DISABLE_PASSWORD	0xBF -#endif /* __KERNEL__ */ - -struct hd_geometry { -      unsigned char heads; -      unsigned char sectors; -      unsigned short cylinders; -      unsigned long start; -}; - -/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */ -#define HDIO_GETGEO		0x0301	/* get device geometry */ -#define HDIO_GET_UNMASKINTR	0x0302	/* get current unmask setting */ -#define HDIO_GET_MULTCOUNT	0x0304	/* get current IDE blockmode setting */ -#define HDIO_GET_QDMA		0x0305	/* get use-qdma flag */ - -#define HDIO_SET_XFER		0x0306  /* set transfer rate via proc */ - -#define HDIO_OBSOLETE_IDENTITY	0x0307	/* OBSOLETE, DO NOT USE: returns 142 bytes */ -#define HDIO_GET_KEEPSETTINGS	0x0308	/* get keep-settings-on-reset flag */ -#define HDIO_GET_32BIT		0x0309	/* get current io_32bit setting */ -#define HDIO_GET_NOWERR		0x030a	/* get ignore-write-error flag */ -#define HDIO_GET_DMA		0x030b	/* get use-dma flag */ -#define HDIO_GET_NICE		0x030c	/* get nice flags */ -#define HDIO_GET_IDENTITY	0x030d	/* get IDE identification info */ -#define HDIO_GET_WCACHE		0x030e	/* get write cache mode on|off */ -#define HDIO_GET_ACOUSTIC	0x030f	/* get acoustic value */ -#define	HDIO_GET_ADDRESS	0x0310	/* */ - -#define HDIO_GET_BUSSTATE	0x031a	/* get the bus state of the hwif */ -#define HDIO_TRISTATE_HWIF	0x031b	/* execute a channel tristate */ -#define HDIO_DRIVE_RESET	0x031c	/* execute a device reset */ -#define HDIO_DRIVE_TASKFILE	0x031d	/* execute raw taskfile */ -#define HDIO_DRIVE_TASK		0x031e	/* execute task and special drive command */ -#define HDIO_DRIVE_CMD		0x031f	/* execute a special drive command */ -#define HDIO_DRIVE_CMD_AEB	HDIO_DRIVE_TASK - -/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */ -#define HDIO_SET_MULTCOUNT	0x0321	/* change IDE blockmode */ -#define HDIO_SET_UNMASKINTR	0x0322	/* permit other irqs during I/O */ -#define HDIO_SET_KEEPSETTINGS	0x0323	/* keep ioctl settings on reset */ -#define HDIO_SET_32BIT		0x0324	/* change io_32bit flags */ -#define HDIO_SET_NOWERR		0x0325	/* change ignore-write-error flag */ -#define HDIO_SET_DMA		0x0326	/* change use-dma flag */ -#define HDIO_SET_PIO_MODE	0x0327	/* reconfig interface to new speed */ -#ifndef __KERNEL__ -#define HDIO_SCAN_HWIF		0x0328	/* register and (re)scan interface */ -#define HDIO_UNREGISTER_HWIF	0x032a  /* unregister interface */ -#endif -#define HDIO_SET_NICE		0x0329	/* set nice flags */ -#define HDIO_SET_WCACHE		0x032b	/* change write cache enable-disable */ -#define HDIO_SET_ACOUSTIC	0x032c	/* change acoustic behavior */ -#define HDIO_SET_BUSSTATE	0x032d	/* set the bus state of the hwif */ -#define HDIO_SET_QDMA		0x032e	/* change use-qdma flag */ -#define HDIO_SET_ADDRESS	0x032f	/* change lba addressing modes */ - -/* bus states */ -enum { -	BUSSTATE_OFF = 0, -	BUSSTATE_ON, -	BUSSTATE_TRISTATE -}; - -/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x033n/0x033n */ -/* 0x330 is reserved - used to be HDIO_GETGEO_BIG */ -/* 0x331 is reserved - used to be HDIO_GETGEO_BIG_RAW */ -/* 0x338 is reserved - used to be HDIO_SET_IDE_SCSI */ -/* 0x339 is reserved - used to be HDIO_SET_SCSI_IDE */ - -#define __NEW_HD_DRIVE_ID - -#ifndef __KERNEL__ -/* - * Structure returned by HDIO_GET_IDENTITY, as per ANSI NCITS ATA6 rev.1b spec. - * - * If you change something here, please remember to update fix_driveid() in - * ide/probe.c. - */ -struct hd_driveid { -	unsigned short	config;		/* lots of obsolete bit flags */ -	unsigned short	cyls;		/* Obsolete, "physical" cyls */ -	unsigned short	reserved2;	/* reserved (word 2) */ -	unsigned short	heads;		/* Obsolete, "physical" heads */ -	unsigned short	track_bytes;	/* unformatted bytes per track */ -	unsigned short	sector_bytes;	/* unformatted bytes per sector */ -	unsigned short	sectors;	/* Obsolete, "physical" sectors per track */ -	unsigned short	vendor0;	/* vendor unique */ -	unsigned short	vendor1;	/* vendor unique */ -	unsigned short	vendor2;	/* Retired vendor unique */ -	unsigned char	serial_no[20];	/* 0 = not_specified */ -	unsigned short	buf_type;	/* Retired */ -	unsigned short	buf_size;	/* Retired, 512 byte increments -					 * 0 = not_specified -					 */ -	unsigned short	ecc_bytes;	/* for r/w long cmds; 0 = not_specified */ -	unsigned char	fw_rev[8];	/* 0 = not_specified */ -	unsigned char	model[40];	/* 0 = not_specified */ -	unsigned char	max_multsect;	/* 0=not_implemented */ -	unsigned char	vendor3;	/* vendor unique */ -	unsigned short	dword_io;	/* 0=not_implemented; 1=implemented */ -	unsigned char	vendor4;	/* vendor unique */ -	unsigned char	capability;	/* (upper byte of word 49) -					 *  3:	IORDYsup -					 *  2:	IORDYsw -					 *  1:	LBA -					 *  0:	DMA -					 */ -	unsigned short	reserved50;	/* reserved (word 50) */ -	unsigned char	vendor5;	/* Obsolete, vendor unique */ -	unsigned char	tPIO;		/* Obsolete, 0=slow, 1=medium, 2=fast */ -	unsigned char	vendor6;	/* Obsolete, vendor unique */ -	unsigned char	tDMA;		/* Obsolete, 0=slow, 1=medium, 2=fast */ -	unsigned short	field_valid;	/* (word 53) -					 *  2:	ultra_ok	word  88 -					 *  1:	eide_ok		words 64-70 -					 *  0:	cur_ok		words 54-58 -					 */ -	unsigned short	cur_cyls;	/* Obsolete, logical cylinders */ -	unsigned short	cur_heads;	/* Obsolete, l heads */ -	unsigned short	cur_sectors;	/* Obsolete, l sectors per track */ -	unsigned short	cur_capacity0;	/* Obsolete, l total sectors on drive */ -	unsigned short	cur_capacity1;	/* Obsolete, (2 words, misaligned int)     */ -	unsigned char	multsect;	/* current multiple sector count */ -	unsigned char	multsect_valid;	/* when (bit0==1) multsect is ok */ -	unsigned int	lba_capacity;	/* Obsolete, total number of sectors */ -	unsigned short	dma_1word;	/* Obsolete, single-word dma info */ -	unsigned short	dma_mword;	/* multiple-word dma info */ -	unsigned short  eide_pio_modes; /* bits 0:mode3 1:mode4 */ -	unsigned short  eide_dma_min;	/* min mword dma cycle time (ns) */ -	unsigned short  eide_dma_time;	/* recommended mword dma cycle time (ns) */ -	unsigned short  eide_pio;       /* min cycle time (ns), no IORDY  */ -	unsigned short  eide_pio_iordy; /* min cycle time (ns), with IORDY */ -	unsigned short	words69_70[2];	/* reserved words 69-70 -					 * future command overlap and queuing -					 */ -	unsigned short	words71_74[4];	/* reserved words 71-74 -					 * for IDENTIFY PACKET DEVICE command -					 */ -	unsigned short  queue_depth;	/* (word 75) -					 * 15:5	reserved -					 *  4:0	Maximum queue depth -1 -					 */ -	unsigned short  words76_79[4];	/* reserved words 76-79 */ -	unsigned short  major_rev_num;	/* (word 80) */ -	unsigned short  minor_rev_num;	/* (word 81) */ -	unsigned short  command_set_1;	/* (word 82) supported -					 * 15:	Obsolete -					 * 14:	NOP command -					 * 13:	READ_BUFFER -					 * 12:	WRITE_BUFFER -					 * 11:	Obsolete -					 * 10:	Host Protected Area -					 *  9:	DEVICE Reset -					 *  8:	SERVICE Interrupt -					 *  7:	Release Interrupt -					 *  6:	look-ahead -					 *  5:	write cache -					 *  4:	PACKET Command -					 *  3:	Power Management Feature Set -					 *  2:	Removable Feature Set -					 *  1:	Security Feature Set -					 *  0:	SMART Feature Set -					 */ -	unsigned short  command_set_2;	/* (word 83) -					 * 15:	Shall be ZERO -					 * 14:	Shall be ONE -					 * 13:	FLUSH CACHE EXT -					 * 12:	FLUSH CACHE -					 * 11:	Device Configuration Overlay -					 * 10:	48-bit Address Feature Set -					 *  9:	Automatic Acoustic Management -					 *  8:	SET MAX security -					 *  7:	reserved 1407DT PARTIES -					 *  6:	SetF sub-command Power-Up -					 *  5:	Power-Up in Standby Feature Set -					 *  4:	Removable Media Notification -					 *  3:	APM Feature Set -					 *  2:	CFA Feature Set -					 *  1:	READ/WRITE DMA QUEUED -					 *  0:	Download MicroCode -					 */ -	unsigned short  cfsse;		/* (word 84) -					 * cmd set-feature supported extensions -					 * 15:	Shall be ZERO -					 * 14:	Shall be ONE -					 * 13:6	reserved -					 *  5:	General Purpose Logging -					 *  4:	Streaming Feature Set -					 *  3:	Media Card Pass Through -					 *  2:	Media Serial Number Valid -					 *  1:	SMART selt-test supported -					 *  0:	SMART error logging -					 */ -	unsigned short  cfs_enable_1;	/* (word 85) -					 * command set-feature enabled -					 * 15:	Obsolete -					 * 14:	NOP command -					 * 13:	READ_BUFFER -					 * 12:	WRITE_BUFFER -					 * 11:	Obsolete -					 * 10:	Host Protected Area -					 *  9:	DEVICE Reset -					 *  8:	SERVICE Interrupt -					 *  7:	Release Interrupt -					 *  6:	look-ahead -					 *  5:	write cache -					 *  4:	PACKET Command -					 *  3:	Power Management Feature Set -					 *  2:	Removable Feature Set -					 *  1:	Security Feature Set -					 *  0:	SMART Feature Set -					 */ -	unsigned short  cfs_enable_2;	/* (word 86) -					 * command set-feature enabled -					 * 15:	Shall be ZERO -					 * 14:	Shall be ONE -					 * 13:	FLUSH CACHE EXT -					 * 12:	FLUSH CACHE -					 * 11:	Device Configuration Overlay -					 * 10:	48-bit Address Feature Set -					 *  9:	Automatic Acoustic Management -					 *  8:	SET MAX security -					 *  7:	reserved 1407DT PARTIES -					 *  6:	SetF sub-command Power-Up -					 *  5:	Power-Up in Standby Feature Set -					 *  4:	Removable Media Notification -					 *  3:	APM Feature Set -					 *  2:	CFA Feature Set -					 *  1:	READ/WRITE DMA QUEUED -					 *  0:	Download MicroCode -					 */ -	unsigned short  csf_default;	/* (word 87) -					 * command set-feature default -					 * 15:	Shall be ZERO -					 * 14:	Shall be ONE -					 * 13:6	reserved -					 *  5:	General Purpose Logging enabled -					 *  4:	Valid CONFIGURE STREAM executed -					 *  3:	Media Card Pass Through enabled -					 *  2:	Media Serial Number Valid -					 *  1:	SMART selt-test supported -					 *  0:	SMART error logging -					 */ -	unsigned short  dma_ultra;	/* (word 88) */ -	unsigned short	trseuc;		/* time required for security erase */ -	unsigned short	trsEuc;		/* time required for enhanced erase */ -	unsigned short	CurAPMvalues;	/* current APM values */ -	unsigned short	mprc;		/* master password revision code */ -	unsigned short	hw_config;	/* hardware config (word 93) -					 * 15:	Shall be ZERO -					 * 14:	Shall be ONE -					 * 13: -					 * 12: -					 * 11: -					 * 10: -					 *  9: -					 *  8: -					 *  7: -					 *  6: -					 *  5: -					 *  4: -					 *  3: -					 *  2: -					 *  1: -					 *  0:	Shall be ONE -					 */ -	unsigned short	acoustic;	/* (word 94) -					 * 15:8	Vendor's recommended value -					 *  7:0	current value -					 */ -	unsigned short	msrqs;		/* min stream request size */ -	unsigned short	sxfert;		/* stream transfer time */ -	unsigned short	sal;		/* stream access latency */ -	unsigned int	spg;		/* stream performance granularity */ -	unsigned long long lba_capacity_2;/* 48-bit total number of sectors */ -	unsigned short	words104_125[22];/* reserved words 104-125 */ -	unsigned short	last_lun;	/* (word 126) */ -	unsigned short	word127;	/* (word 127) Feature Set -					 * Removable Media Notification -					 * 15:2	reserved -					 *  1:0	00 = not supported -					 *	01 = supported -					 *	10 = reserved -					 *	11 = reserved -					 */ -	unsigned short	dlf;		/* (word 128) -					 * device lock function -					 * 15:9	reserved -					 *  8	security level 1:max 0:high -					 *  7:6	reserved -					 *  5	enhanced erase -					 *  4	expire -					 *  3	frozen -					 *  2	locked -					 *  1	en/disabled -					 *  0	capability -					 */ -	unsigned short  csfo;		/*  (word 129) -					 * current set features options -					 * 15:4	reserved -					 *  3:	auto reassign -					 *  2:	reverting -					 *  1:	read-look-ahead -					 *  0:	write cache -					 */ -	unsigned short	words130_155[26];/* reserved vendor words 130-155 */ -	unsigned short	word156;	/* reserved vendor word 156 */ -	unsigned short	words157_159[3];/* reserved vendor words 157-159 */ -	unsigned short	cfa_power;	/* (word 160) CFA Power Mode -					 * 15 word 160 supported -					 * 14 reserved -					 * 13 -					 * 12 -					 * 11:0 -					 */ -	unsigned short	words161_175[15];/* Reserved for CFA */ -	unsigned short	words176_205[30];/* Current Media Serial Number */ -	unsigned short	words206_254[49];/* reserved words 206-254 */ -	unsigned short	integrity_word;	/* (word 255) -					 * 15:8 Checksum -					 *  7:0 Signature -					 */ -}; -#endif /* __KERNEL__ */ - -/* - * IDE "nice" flags. These are used on a per drive basis to determine - * when to be nice and give more bandwidth to the other devices which - * share the same IDE bus. - */ -#define IDE_NICE_DSC_OVERLAP	(0)	/* per the DSC overlap protocol */ -#define IDE_NICE_ATAPI_OVERLAP	(1)	/* not supported yet */ -#define IDE_NICE_1		(3)	/* when probably won't affect us much */ -#ifndef __KERNEL__ -#define IDE_NICE_0		(2)	/* when sure that it won't affect us */ -#define IDE_NICE_2		(4)	/* when we know it's on our expense */ -#endif - -#endif	/* _LINUX_HDREG_H */ diff --git a/include/linux/hid.h b/include/linux/hid.h index 7e1f37db758..c076041a069 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -1,12 +1,8 @@ -#ifndef __HID_H -#define __HID_H -  /*   *  Copyright (c) 1999 Andreas Gal   *  Copyright (c) 2000-2001 Vojtech Pavlik   *  Copyright (c) 2006-2007 Jiri Kosina   */ -  /*   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -26,43 +22,9 @@   * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:   * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic   */ +#ifndef __HID_H +#define __HID_H -/* - * USB HID (Human Interface Device) interface class code - */ - -#define USB_INTERFACE_CLASS_HID		3 - -/* - * USB HID interface subclass and protocol codes - */ - -#define USB_INTERFACE_SUBCLASS_BOOT	1 -#define USB_INTERFACE_PROTOCOL_KEYBOARD	1 -#define USB_INTERFACE_PROTOCOL_MOUSE	2 - -/* - * HID class requests - */ - -#define HID_REQ_GET_REPORT		0x01 -#define HID_REQ_GET_IDLE		0x02 -#define HID_REQ_GET_PROTOCOL		0x03 -#define HID_REQ_SET_REPORT		0x09 -#define HID_REQ_SET_IDLE		0x0A -#define HID_REQ_SET_PROTOCOL		0x0B - -/* - * HID class descriptor types - */ - -#define HID_DT_HID			(USB_TYPE_CLASS | 0x01) -#define HID_DT_REPORT			(USB_TYPE_CLASS | 0x02) -#define HID_DT_PHYSICAL			(USB_TYPE_CLASS | 0x03) - -#define HID_MAX_DESCRIPTOR_SIZE		4096 - -#ifdef __KERNEL__  #include <linux/types.h>  #include <linux/slab.h> @@ -73,6 +35,7 @@  #include <linux/input.h>  #include <linux/semaphore.h>  #include <linux/power_supply.h> +#include <uapi/linux/hid.h>  /*   * We parse each description item into this structure. Short items data @@ -943,7 +906,4 @@ do {									\  #define hid_dbg(hid, fmt, arg...)			\  	dev_dbg(&(hid)->dev, fmt, ##arg) -#endif /* __KERNEL__ */ -  #endif - diff --git a/include/linux/hiddev.h b/include/linux/hiddev.h index a3f481a3063..a5dd8148660 100644 --- a/include/linux/hiddev.h +++ b/include/linux/hiddev.h @@ -1,12 +1,8 @@ -#ifndef _HIDDEV_H -#define _HIDDEV_H -  /*   *  Copyright (c) 1999-2000 Vojtech Pavlik   *   *  Sponsored by SuSE   */ -  /*   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -26,190 +22,11 @@   * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:   * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic   */ +#ifndef _HIDDEV_H +#define _HIDDEV_H -#include <linux/types.h> - -/* - * The event structure itself - */ - -struct hiddev_event { -	unsigned hid; -	signed int value; -}; - -struct hiddev_devinfo { -	__u32 bustype; -	__u32 busnum; -	__u32 devnum; -	__u32 ifnum; -	__s16 vendor; -	__s16 product; -	__s16 version; -	__u32 num_applications; -}; - -struct hiddev_collection_info { -	__u32 index; -	__u32 type; -	__u32 usage; -	__u32 level; -}; - -#define HID_STRING_SIZE 256 -struct hiddev_string_descriptor { -	__s32 index; -	char value[HID_STRING_SIZE]; -}; - -struct hiddev_report_info { -	__u32 report_type; -	__u32 report_id; -	__u32 num_fields; -}; - -/* To do a GUSAGE/SUSAGE, fill in at least usage_code,  report_type and  - * report_id.  Set report_id to REPORT_ID_UNKNOWN if the rest of the fields  - * are unknown.  Otherwise use a usage_ref struct filled in from a previous  - * successful GUSAGE call to save time.  To actually send a value to the - * device, perform a SUSAGE first, followed by a SREPORT.  An INITREPORT or a - * GREPORT isn't necessary for a GUSAGE to return valid data. - */ -#define HID_REPORT_ID_UNKNOWN 0xffffffff -#define HID_REPORT_ID_FIRST   0x00000100 -#define HID_REPORT_ID_NEXT    0x00000200 -#define HID_REPORT_ID_MASK    0x000000ff -#define HID_REPORT_ID_MAX     0x000000ff - -#define HID_REPORT_TYPE_INPUT	1 -#define HID_REPORT_TYPE_OUTPUT	2 -#define HID_REPORT_TYPE_FEATURE	3 -#define HID_REPORT_TYPE_MIN     1 -#define HID_REPORT_TYPE_MAX     3 - -struct hiddev_field_info { -	__u32 report_type; -	__u32 report_id; -	__u32 field_index; -	__u32 maxusage; -	__u32 flags; -	__u32 physical;		/* physical usage for this field */ -	__u32 logical;		/* logical usage for this field */ -	__u32 application;		/* application usage for this field */ -	__s32 logical_minimum; -	__s32 logical_maximum; -	__s32 physical_minimum; -	__s32 physical_maximum; -	__u32 unit_exponent; -	__u32 unit; -}; - -/* Fill in report_type, report_id and field_index to get the information on a - * field. - */ -#define HID_FIELD_CONSTANT		0x001 -#define HID_FIELD_VARIABLE		0x002 -#define HID_FIELD_RELATIVE		0x004 -#define HID_FIELD_WRAP			0x008	 -#define HID_FIELD_NONLINEAR		0x010 -#define HID_FIELD_NO_PREFERRED		0x020 -#define HID_FIELD_NULL_STATE		0x040 -#define HID_FIELD_VOLATILE		0x080 -#define HID_FIELD_BUFFERED_BYTE		0x100 - -struct hiddev_usage_ref { -	__u32 report_type; -	__u32 report_id; -	__u32 field_index; -	__u32 usage_index; -	__u32 usage_code; -	__s32 value; -}; - -/* hiddev_usage_ref_multi is used for sending multiple bytes to a control. - * It really manifests itself as setting the value of consecutive usages */ -#define HID_MAX_MULTI_USAGES 1024 -struct hiddev_usage_ref_multi { -	struct hiddev_usage_ref uref; -	__u32 num_values; -	__s32 values[HID_MAX_MULTI_USAGES]; -}; - -/* FIELD_INDEX_NONE is returned in read() data from the kernel when flags - * is set to (HIDDEV_FLAG_UREF | HIDDEV_FLAG_REPORT) and a new report has - * been sent by the device  - */ -#define HID_FIELD_INDEX_NONE 0xffffffff - -/* - * Protocol version. - */ - -#define HID_VERSION		0x010004 - -/* - * IOCTLs (0x00 - 0x7f) - */ - -#define HIDIOCGVERSION		_IOR('H', 0x01, int) -#define HIDIOCAPPLICATION	_IO('H', 0x02) -#define HIDIOCGDEVINFO		_IOR('H', 0x03, struct hiddev_devinfo) -#define HIDIOCGSTRING		_IOR('H', 0x04, struct hiddev_string_descriptor) -#define HIDIOCINITREPORT	_IO('H', 0x05) -#define HIDIOCGNAME(len)	_IOC(_IOC_READ, 'H', 0x06, len) -#define HIDIOCGREPORT		_IOW('H', 0x07, struct hiddev_report_info) -#define HIDIOCSREPORT		_IOW('H', 0x08, struct hiddev_report_info) -#define HIDIOCGREPORTINFO	_IOWR('H', 0x09, struct hiddev_report_info) -#define HIDIOCGFIELDINFO	_IOWR('H', 0x0A, struct hiddev_field_info) -#define HIDIOCGUSAGE		_IOWR('H', 0x0B, struct hiddev_usage_ref) -#define HIDIOCSUSAGE		_IOW('H', 0x0C, struct hiddev_usage_ref) -#define HIDIOCGUCODE		_IOWR('H', 0x0D, struct hiddev_usage_ref) -#define HIDIOCGFLAG		_IOR('H', 0x0E, int) -#define HIDIOCSFLAG		_IOW('H', 0x0F, int) -#define HIDIOCGCOLLECTIONINDEX	_IOW('H', 0x10, struct hiddev_usage_ref) -#define HIDIOCGCOLLECTIONINFO	_IOWR('H', 0x11, struct hiddev_collection_info) -#define HIDIOCGPHYS(len)	_IOC(_IOC_READ, 'H', 0x12, len) - -/* For writing/reading to multiple/consecutive usages */ -#define HIDIOCGUSAGES		_IOWR('H', 0x13, struct hiddev_usage_ref_multi) -#define HIDIOCSUSAGES		_IOW('H', 0x14, struct hiddev_usage_ref_multi) - -/*  - * Flags to be used in HIDIOCSFLAG - */ -#define HIDDEV_FLAG_UREF	0x1 -#define HIDDEV_FLAG_REPORT	0x2 -#define HIDDEV_FLAGS		0x3 - -/* To traverse the input report descriptor info for a HID device, perform the  - * following: - * - * rinfo.report_type = HID_REPORT_TYPE_INPUT; - * rinfo.report_id = HID_REPORT_ID_FIRST; - * ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo); - * - * while (ret >= 0) { - * 	for (i = 0; i < rinfo.num_fields; i++) { - * 		finfo.report_type = rinfo.report_type; - * 		finfo.report_id = rinfo.report_id; - * 		finfo.field_index = i; - * 		ioctl(fd, HIDIOCGFIELDINFO, &finfo); - * 		for (j = 0; j < finfo.maxusage; j++) { - * 			uref.report_type = rinfo.report_type; - * 			uref.report_id = rinfo.report_id; - * 			uref.field_index = i; - * 			uref.usage_index = j; - * 			ioctl(fd, HIDIOCGUCODE, &uref); - * 			ioctl(fd, HIDIOCGUSAGE, &uref); - * 		} - * 	} - * 	rinfo.report_id |= HID_REPORT_ID_NEXT; - * 	ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo); - * } - */ - +#include <uapi/linux/hiddev.h> -#ifdef __KERNEL__  /*   * In-kernel definitions. @@ -237,4 +54,3 @@ static inline void hiddev_report_event(struct hid_device *hid, struct hid_report  #endif  #endif -#endif diff --git a/include/linux/hidraw.h b/include/linux/hidraw.h index 45e9fcb8d87..2451662c728 100644 --- a/include/linux/hidraw.h +++ b/include/linux/hidraw.h @@ -1,10 +1,6 @@ -#ifndef _HIDRAW_H -#define _HIDRAW_H -  /*   *  Copyright (c) 2007 Jiri Kosina   */ -  /*   * This program is free software; you can redistribute it and/or modify it   * under the terms and conditions of the GNU General Public License, @@ -14,39 +10,11 @@   * this program; if not, write to the Free Software Foundation, Inc.,   * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.   */ +#ifndef _HIDRAW_H +#define _HIDRAW_H -#include <linux/hid.h> -#include <linux/types.h> - -struct hidraw_report_descriptor { -	__u32 size; -	__u8 value[HID_MAX_DESCRIPTOR_SIZE]; -}; - -struct hidraw_devinfo { -	__u32 bustype; -	__s16 vendor; -	__s16 product; -}; - -/* ioctl interface */ -#define HIDIOCGRDESCSIZE	_IOR('H', 0x01, int) -#define HIDIOCGRDESC		_IOR('H', 0x02, struct hidraw_report_descriptor) -#define HIDIOCGRAWINFO		_IOR('H', 0x03, struct hidraw_devinfo) -#define HIDIOCGRAWNAME(len)     _IOC(_IOC_READ, 'H', 0x04, len) -#define HIDIOCGRAWPHYS(len)     _IOC(_IOC_READ, 'H', 0x05, len) -/* The first byte of SFEATURE and GFEATURE is the report number */ -#define HIDIOCSFEATURE(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len) -#define HIDIOCGFEATURE(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len) - -#define HIDRAW_FIRST_MINOR 0 -#define HIDRAW_MAX_DEVICES 64 -/* number of reports to buffer */ -#define HIDRAW_BUFFER_SIZE 64 - +#include <uapi/linux/hidraw.h> -/* kernel-only API declarations */ -#ifdef __KERNEL__  struct hidraw {  	unsigned int minor; @@ -88,5 +56,3 @@ static inline void hidraw_disconnect(struct hid_device *hid) { }  #endif  #endif - -#endif diff --git a/include/linux/hpet.h b/include/linux/hpet.h index 219ca4f6bea..9427ab4e01c 100644 --- a/include/linux/hpet.h +++ b/include/linux/hpet.h @@ -1,9 +1,8 @@  #ifndef	__HPET__  #define	__HPET__ 1 -#include <linux/compiler.h> +#include <uapi/linux/hpet.h> -#ifdef __KERNEL__  /*   * Offsets into HPET Registers @@ -108,24 +107,4 @@ static inline void hpet_reserve_timer(struct hpet_data *hd, int timer)  int hpet_alloc(struct hpet_data *); -#endif /* __KERNEL__ */ - -struct hpet_info { -	unsigned long hi_ireqfreq;	/* Hz */ -	unsigned long hi_flags;	/* information */ -	unsigned short hi_hpet; -	unsigned short hi_timer; -}; - -#define HPET_INFO_PERIODIC	0x0010	/* periodic-capable comparator */ - -#define	HPET_IE_ON	_IO('h', 0x01)	/* interrupt on */ -#define	HPET_IE_OFF	_IO('h', 0x02)	/* interrupt off */ -#define	HPET_INFO	_IOR('h', 0x03, struct hpet_info) -#define	HPET_EPI	_IO('h', 0x04)	/* enable periodic */ -#define	HPET_DPI	_IO('h', 0x05)	/* disable periodic */ -#define	HPET_IRQFREQ	_IOW('h', 0x6, unsigned long)	/* IRQFREQ usec */ - -#define MAX_HPET_TBS	8		/* maximum hpet timer blocks */ -  #endif				/* !__HPET__ */ diff --git a/include/linux/hysdn_if.h b/include/linux/hysdn_if.h deleted file mode 100644 index 00236ae3b04..00000000000 --- a/include/linux/hysdn_if.h +++ /dev/null @@ -1,33 +0,0 @@ -/* $Id: hysdn_if.h,v 1.1.8.3 2001/09/23 22:25:05 kai Exp $ - * - * Linux driver for HYSDN cards - * ioctl definitions shared by hynetmgr and driver. - * - * Author    Werner Cornelius (werner@titro.de) for Hypercope GmbH - * Copyright 1999 by Werner Cornelius (werner@titro.de) - * - * This software may be used and distributed according to the terms - * of the GNU General Public License, incorporated herein by reference. - * - */ - -/****************/ -/* error values */ -/****************/ -#define ERR_NONE             0 /* no error occurred */ -#define ERR_ALREADY_BOOT  1000 /* we are already booting */ -#define EPOF_BAD_MAGIC    1001 /* bad magic in POF header */ -#define ERR_BOARD_DPRAM   1002 /* board DPRAM failed */ -#define EPOF_INTERNAL     1003 /* internal POF handler error */ -#define EPOF_BAD_IMG_SIZE 1004 /* POF boot image size invalid */ -#define ERR_BOOTIMG_FAIL  1005 /* 1. stage boot image did not start */ -#define ERR_BOOTSEQ_FAIL  1006 /* 2. stage boot seq handshake timeout */ -#define ERR_POF_TIMEOUT   1007 /* timeout waiting for card pof ready */ -#define ERR_NOT_BOOTED    1008 /* operation only allowed when booted */ -#define ERR_CONF_LONG     1009 /* conf line is too long */  -#define ERR_INV_CHAN      1010 /* invalid channel number */  -#define ERR_ASYNC_TIME    1011 /* timeout sending async data */  - - - - diff --git a/include/linux/i2c-dev.h b/include/linux/i2c-dev.h index 8a7406b2114..79727144c5c 100644 --- a/include/linux/i2c-dev.h +++ b/include/linux/i2c-dev.h @@ -19,57 +19,10 @@      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,      MA 02110-1301 USA.  */ -  #ifndef _LINUX_I2C_DEV_H  #define _LINUX_I2C_DEV_H -#include <linux/types.h> -#include <linux/compiler.h> - -/* /dev/i2c-X ioctl commands.  The ioctl's parameter is always an - * unsigned long, except for: - *	- I2C_FUNCS, takes pointer to an unsigned long - *	- I2C_RDWR, takes pointer to struct i2c_rdwr_ioctl_data - *	- I2C_SMBUS, takes pointer to struct i2c_smbus_ioctl_data - */ -#define I2C_RETRIES	0x0701	/* number of times a device address should -				   be polled when not acknowledging */ -#define I2C_TIMEOUT	0x0702	/* set timeout in units of 10 ms */ - -/* NOTE: Slave address is 7 or 10 bits, but 10-bit addresses - * are NOT supported! (due to code brokenness) - */ -#define I2C_SLAVE	0x0703	/* Use this slave address */ -#define I2C_SLAVE_FORCE	0x0706	/* Use this slave address, even if it -				   is already in use by a driver! */ -#define I2C_TENBIT	0x0704	/* 0 for 7 bit addrs, != 0 for 10 bit */ - -#define I2C_FUNCS	0x0705	/* Get the adapter functionality mask */ - -#define I2C_RDWR	0x0707	/* Combined R/W transfer (one STOP only) */ - -#define I2C_PEC		0x0708	/* != 0 to use PEC with SMBus */ -#define I2C_SMBUS	0x0720	/* SMBus transfer */ +#include <uapi/linux/i2c-dev.h> - -/* This is the structure as used in the I2C_SMBUS ioctl call */ -struct i2c_smbus_ioctl_data { -	__u8 read_write; -	__u8 command; -	__u32 size; -	union i2c_smbus_data __user *data; -}; - -/* This is the structure as used in the I2C_RDWR ioctl call */ -struct i2c_rdwr_ioctl_data { -	struct i2c_msg __user *msgs;	/* pointers to i2c_msgs */ -	__u32 nmsgs;			/* number of i2c_msgs */ -}; - -#define  I2C_RDRW_IOCTL_MAX_MSGS	42 - -#ifdef __KERNEL__  #define I2C_MAJOR	89		/* Device major number		*/ -#endif -  #endif /* _LINUX_I2C_DEV_H */ diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 94aed0c85bb..800de224336 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -23,18 +23,16 @@  /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and     Frodo Looijaard <frodol@dds.nl> */ -  #ifndef _LINUX_I2C_H  #define _LINUX_I2C_H -#include <linux/types.h> -#ifdef __KERNEL__  #include <linux/mod_devicetable.h>  #include <linux/device.h>	/* for struct device */  #include <linux/sched.h>	/* for completion */  #include <linux/mutex.h>  #include <linux/of.h>		/* for struct device_node */  #include <linux/swab.h>		/* for swab16 */ +#include <uapi/linux/i2c.h>  extern struct bus_type i2c_bus_type;  extern struct device_type i2c_adapter_type; @@ -503,125 +501,4 @@ static inline int i2c_adapter_id(struct i2c_adapter *adap)  			i2c_del_driver)  #endif /* I2C */ -#endif /* __KERNEL__ */ - -/** - * struct i2c_msg - an I2C transaction segment beginning with START - * @addr: Slave address, either seven or ten bits.  When this is a ten - *	bit address, I2C_M_TEN must be set in @flags and the adapter - *	must support I2C_FUNC_10BIT_ADDR. - * @flags: I2C_M_RD is handled by all adapters.  No other flags may be - *	provided unless the adapter exported the relevant I2C_FUNC_* - *	flags through i2c_check_functionality(). - * @len: Number of data bytes in @buf being read from or written to the - *	I2C slave address.  For read transactions where I2C_M_RECV_LEN - *	is set, the caller guarantees that this buffer can hold up to - *	32 bytes in addition to the initial length byte sent by the - *	slave (plus, if used, the SMBus PEC); and this value will be - *	incremented by the number of block data bytes received. - * @buf: The buffer into which data is read, or from which it's written. - * - * An i2c_msg is the low level representation of one segment of an I2C - * transaction.  It is visible to drivers in the @i2c_transfer() procedure, - * to userspace from i2c-dev, and to I2C adapter drivers through the - * @i2c_adapter.@master_xfer() method. - * - * Except when I2C "protocol mangling" is used, all I2C adapters implement - * the standard rules for I2C transactions.  Each transaction begins with a - * START.  That is followed by the slave address, and a bit encoding read - * versus write.  Then follow all the data bytes, possibly including a byte - * with SMBus PEC.  The transfer terminates with a NAK, or when all those - * bytes have been transferred and ACKed.  If this is the last message in a - * group, it is followed by a STOP.  Otherwise it is followed by the next - * @i2c_msg transaction segment, beginning with a (repeated) START. - * - * Alternatively, when the adapter supports I2C_FUNC_PROTOCOL_MANGLING then - * passing certain @flags may have changed those standard protocol behaviors. - * Those flags are only for use with broken/nonconforming slaves, and with - * adapters which are known to support the specific mangling options they - * need (one or more of IGNORE_NAK, NO_RD_ACK, NOSTART, and REV_DIR_ADDR). - */ -struct i2c_msg { -	__u16 addr;	/* slave address			*/ -	__u16 flags; -#define I2C_M_TEN		0x0010	/* this is a ten bit chip address */ -#define I2C_M_RD		0x0001	/* read data, from slave to master */ -#define I2C_M_STOP		0x8000	/* if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_NOSTART		0x4000	/* if I2C_FUNC_NOSTART */ -#define I2C_M_REV_DIR_ADDR	0x2000	/* if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_IGNORE_NAK	0x1000	/* if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_NO_RD_ACK		0x0800	/* if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_RECV_LEN		0x0400	/* length will be first received byte */ -	__u16 len;		/* msg length				*/ -	__u8 *buf;		/* pointer to msg data			*/ -}; - -/* To determine what functionality is present */ - -#define I2C_FUNC_I2C			0x00000001 -#define I2C_FUNC_10BIT_ADDR		0x00000002 -#define I2C_FUNC_PROTOCOL_MANGLING	0x00000004 /* I2C_M_IGNORE_NAK etc. */ -#define I2C_FUNC_SMBUS_PEC		0x00000008 -#define I2C_FUNC_NOSTART		0x00000010 /* I2C_M_NOSTART */ -#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL	0x00008000 /* SMBus 2.0 */ -#define I2C_FUNC_SMBUS_QUICK		0x00010000 -#define I2C_FUNC_SMBUS_READ_BYTE	0x00020000 -#define I2C_FUNC_SMBUS_WRITE_BYTE	0x00040000 -#define I2C_FUNC_SMBUS_READ_BYTE_DATA	0x00080000 -#define I2C_FUNC_SMBUS_WRITE_BYTE_DATA	0x00100000 -#define I2C_FUNC_SMBUS_READ_WORD_DATA	0x00200000 -#define I2C_FUNC_SMBUS_WRITE_WORD_DATA	0x00400000 -#define I2C_FUNC_SMBUS_PROC_CALL	0x00800000 -#define I2C_FUNC_SMBUS_READ_BLOCK_DATA	0x01000000 -#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000 -#define I2C_FUNC_SMBUS_READ_I2C_BLOCK	0x04000000 /* I2C-like block xfer  */ -#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK	0x08000000 /* w/ 1-byte reg. addr. */ - -#define I2C_FUNC_SMBUS_BYTE		(I2C_FUNC_SMBUS_READ_BYTE | \ -					 I2C_FUNC_SMBUS_WRITE_BYTE) -#define I2C_FUNC_SMBUS_BYTE_DATA	(I2C_FUNC_SMBUS_READ_BYTE_DATA | \ -					 I2C_FUNC_SMBUS_WRITE_BYTE_DATA) -#define I2C_FUNC_SMBUS_WORD_DATA	(I2C_FUNC_SMBUS_READ_WORD_DATA | \ -					 I2C_FUNC_SMBUS_WRITE_WORD_DATA) -#define I2C_FUNC_SMBUS_BLOCK_DATA	(I2C_FUNC_SMBUS_READ_BLOCK_DATA | \ -					 I2C_FUNC_SMBUS_WRITE_BLOCK_DATA) -#define I2C_FUNC_SMBUS_I2C_BLOCK	(I2C_FUNC_SMBUS_READ_I2C_BLOCK | \ -					 I2C_FUNC_SMBUS_WRITE_I2C_BLOCK) - -#define I2C_FUNC_SMBUS_EMUL		(I2C_FUNC_SMBUS_QUICK | \ -					 I2C_FUNC_SMBUS_BYTE | \ -					 I2C_FUNC_SMBUS_BYTE_DATA | \ -					 I2C_FUNC_SMBUS_WORD_DATA | \ -					 I2C_FUNC_SMBUS_PROC_CALL | \ -					 I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | \ -					 I2C_FUNC_SMBUS_I2C_BLOCK | \ -					 I2C_FUNC_SMBUS_PEC) - -/* - * Data for SMBus Messages - */ -#define I2C_SMBUS_BLOCK_MAX	32	/* As specified in SMBus standard */ -union i2c_smbus_data { -	__u8 byte; -	__u16 word; -	__u8 block[I2C_SMBUS_BLOCK_MAX + 2]; /* block[0] is used for length */ -			       /* and one more for user-space compatibility */ -}; - -/* i2c_smbus_xfer read or write markers */ -#define I2C_SMBUS_READ	1 -#define I2C_SMBUS_WRITE	0 - -/* SMBus transaction types (size parameter in the above functions) -   Note: these no longer correspond to the (arbitrary) PIIX4 internal codes! */ -#define I2C_SMBUS_QUICK		    0 -#define I2C_SMBUS_BYTE		    1 -#define I2C_SMBUS_BYTE_DATA	    2 -#define I2C_SMBUS_WORD_DATA	    3 -#define I2C_SMBUS_PROC_CALL	    4 -#define I2C_SMBUS_BLOCK_DATA	    5 -#define I2C_SMBUS_I2C_BLOCK_BROKEN  6 -#define I2C_SMBUS_BLOCK_PROC_CALL   7		/* SMBus 2.0 */ -#define I2C_SMBUS_I2C_BLOCK_DATA    8 -  #endif /* _LINUX_I2C_H */ diff --git a/include/linux/i2o-dev.h b/include/linux/i2o-dev.h deleted file mode 100644 index a8093bfec3a..00000000000 --- a/include/linux/i2o-dev.h +++ /dev/null @@ -1,421 +0,0 @@ -/* - * I2O user space accessible structures/APIs - * - * (c) Copyright 1999, 2000 Red Hat Software - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - * - ************************************************************************* - * - * This header file defines the I2O APIs that are available to both - * the kernel and user level applications.  Kernel specific structures - * are defined in i2o_osm. OSMs should include _only_ i2o_osm.h which - * automatically includes this file. - * - */ - -#ifndef _I2O_DEV_H -#define _I2O_DEV_H - -/* How many controllers are we allowing */ -#define MAX_I2O_CONTROLLERS	32 - -#include <linux/ioctl.h> -#include <linux/types.h> - -/* - * I2O Control IOCTLs and structures - */ -#define I2O_MAGIC_NUMBER	'i' -#define I2OGETIOPS		_IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS]) -#define I2OHRTGET		_IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct) -#define I2OLCTGET		_IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct) -#define I2OPARMSET		_IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget) -#define I2OPARMGET		_IOWR(I2O_MAGIC_NUMBER,4,struct i2o_cmd_psetget) -#define I2OSWDL 		_IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer) -#define I2OSWUL 		_IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer) -#define I2OSWDEL		_IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer) -#define I2OVALIDATE		_IOR(I2O_MAGIC_NUMBER,8,__u32) -#define I2OHTML 		_IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html) -#define I2OEVTREG		_IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id) -#define I2OEVTGET		_IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info) -#define I2OPASSTHRU		_IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru) -#define I2OPASSTHRU32		_IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru32) - -struct i2o_cmd_passthru32 { -	unsigned int iop;	/* IOP unit number */ -	__u32 msg;		/* message */ -}; - -struct i2o_cmd_passthru { -	unsigned int iop;	/* IOP unit number */ -	void __user *msg;	/* message */ -}; - -struct i2o_cmd_hrtlct { -	unsigned int iop;	/* IOP unit number */ -	void __user *resbuf;	/* Buffer for result */ -	unsigned int __user *reslen;	/* Buffer length in bytes */ -}; - -struct i2o_cmd_psetget { -	unsigned int iop;	/* IOP unit number */ -	unsigned int tid;	/* Target device TID */ -	void __user *opbuf;	/* Operation List buffer */ -	unsigned int oplen;	/* Operation List buffer length in bytes */ -	void __user *resbuf;	/* Result List buffer */ -	unsigned int __user *reslen;	/* Result List buffer length in bytes */ -}; - -struct i2o_sw_xfer { -	unsigned int iop;	/* IOP unit number */ -	unsigned char flags;	/* Flags field */ -	unsigned char sw_type;	/* Software type */ -	unsigned int sw_id;	/* Software ID */ -	void __user *buf;	/* Pointer to software buffer */ -	unsigned int __user *swlen;	/* Length of software data */ -	unsigned int __user *maxfrag;	/* Maximum fragment count */ -	unsigned int __user *curfrag;	/* Current fragment count */ -}; - -struct i2o_html { -	unsigned int iop;	/* IOP unit number */ -	unsigned int tid;	/* Target device ID */ -	unsigned int page;	/* HTML page */ -	void __user *resbuf;	/* Buffer for reply HTML page */ -	unsigned int __user *reslen;	/* Length in bytes of reply buffer */ -	void __user *qbuf;	/* Pointer to HTTP query string */ -	unsigned int qlen;	/* Length in bytes of query string buffer */ -}; - -#define I2O_EVT_Q_LEN 32 - -struct i2o_evt_id { -	unsigned int iop; -	unsigned int tid; -	unsigned int evt_mask; -}; - -/* Event data size = frame size - message header + evt indicator */ -#define I2O_EVT_DATA_SIZE 88 - -struct i2o_evt_info { -	struct i2o_evt_id id; -	unsigned char evt_data[I2O_EVT_DATA_SIZE]; -	unsigned int data_size; -}; - -struct i2o_evt_get { -	struct i2o_evt_info info; -	int pending; -	int lost; -}; - -typedef struct i2o_sg_io_hdr { -	unsigned int flags;	/* see I2O_DPT_SG_IO_FLAGS */ -} i2o_sg_io_hdr_t; - -/************************************************************************** - * HRT related constants and structures - **************************************************************************/ -#define I2O_BUS_LOCAL	0 -#define I2O_BUS_ISA	1 -#define I2O_BUS_EISA	2 -/* was  I2O_BUS_MCA	3 */ -#define I2O_BUS_PCI	4 -#define I2O_BUS_PCMCIA	5 -#define I2O_BUS_NUBUS	6 -#define I2O_BUS_CARDBUS 7 -#define I2O_BUS_UNKNOWN 0x80 - -typedef struct _i2o_pci_bus { -	__u8 PciFunctionNumber; -	__u8 PciDeviceNumber; -	__u8 PciBusNumber; -	__u8 reserved; -	__u16 PciVendorID; -	__u16 PciDeviceID; -} i2o_pci_bus; - -typedef struct _i2o_local_bus { -	__u16 LbBaseIOPort; -	__u16 reserved; -	__u32 LbBaseMemoryAddress; -} i2o_local_bus; - -typedef struct _i2o_isa_bus { -	__u16 IsaBaseIOPort; -	__u8 CSN; -	__u8 reserved; -	__u32 IsaBaseMemoryAddress; -} i2o_isa_bus; - -typedef struct _i2o_eisa_bus_info { -	__u16 EisaBaseIOPort; -	__u8 reserved; -	__u8 EisaSlotNumber; -	__u32 EisaBaseMemoryAddress; -} i2o_eisa_bus; - -typedef struct _i2o_mca_bus { -	__u16 McaBaseIOPort; -	__u8 reserved; -	__u8 McaSlotNumber; -	__u32 McaBaseMemoryAddress; -} i2o_mca_bus; - -typedef struct _i2o_other_bus { -	__u16 BaseIOPort; -	__u16 reserved; -	__u32 BaseMemoryAddress; -} i2o_other_bus; - -typedef struct _i2o_hrt_entry { -	__u32 adapter_id; -	__u32 parent_tid:12; -	__u32 state:4; -	__u32 bus_num:8; -	__u32 bus_type:8; -	union { -		i2o_pci_bus pci_bus; -		i2o_local_bus local_bus; -		i2o_isa_bus isa_bus; -		i2o_eisa_bus eisa_bus; -		i2o_mca_bus mca_bus; -		i2o_other_bus other_bus; -	} bus; -} i2o_hrt_entry; - -typedef struct _i2o_hrt { -	__u16 num_entries; -	__u8 entry_len; -	__u8 hrt_version; -	__u32 change_ind; -	i2o_hrt_entry hrt_entry[1]; -} i2o_hrt; - -typedef struct _i2o_lct_entry { -	__u32 entry_size:16; -	__u32 tid:12; -	__u32 reserved:4; -	__u32 change_ind; -	__u32 device_flags; -	__u32 class_id:12; -	__u32 version:4; -	__u32 vendor_id:16; -	__u32 sub_class; -	__u32 user_tid:12; -	__u32 parent_tid:12; -	__u32 bios_info:8; -	__u8 identity_tag[8]; -	__u32 event_capabilities; -} i2o_lct_entry; - -typedef struct _i2o_lct { -	__u32 table_size:16; -	__u32 boot_tid:12; -	__u32 lct_ver:4; -	__u32 iop_flags; -	__u32 change_ind; -	i2o_lct_entry lct_entry[1]; -} i2o_lct; - -typedef struct _i2o_status_block { -	__u16 org_id; -	__u16 reserved; -	__u16 iop_id:12; -	__u16 reserved1:4; -	__u16 host_unit_id; -	__u16 segment_number:12; -	__u16 i2o_version:4; -	__u8 iop_state; -	__u8 msg_type; -	__u16 inbound_frame_size; -	__u8 init_code; -	__u8 reserved2; -	__u32 max_inbound_frames; -	__u32 cur_inbound_frames; -	__u32 max_outbound_frames; -	char product_id[24]; -	__u32 expected_lct_size; -	__u32 iop_capabilities; -	__u32 desired_mem_size; -	__u32 current_mem_size; -	__u32 current_mem_base; -	__u32 desired_io_size; -	__u32 current_io_size; -	__u32 current_io_base; -	__u32 reserved3:24; -	__u32 cmd_status:8; -} i2o_status_block; - -/* Event indicator mask flags */ -#define I2O_EVT_IND_STATE_CHANGE		0x80000000 -#define I2O_EVT_IND_GENERAL_WARNING		0x40000000 -#define I2O_EVT_IND_CONFIGURATION_FLAG		0x20000000 -#define I2O_EVT_IND_LOCK_RELEASE		0x10000000 -#define I2O_EVT_IND_CAPABILITY_CHANGE		0x08000000 -#define I2O_EVT_IND_DEVICE_RESET		0x04000000 -#define I2O_EVT_IND_EVT_MASK_MODIFIED		0x02000000 -#define I2O_EVT_IND_FIELD_MODIFIED		0x01000000 -#define I2O_EVT_IND_VENDOR_EVT			0x00800000 -#define I2O_EVT_IND_DEVICE_STATE		0x00400000 - -/* Executive event indicitors */ -#define I2O_EVT_IND_EXEC_RESOURCE_LIMITS	0x00000001 -#define I2O_EVT_IND_EXEC_CONNECTION_FAIL	0x00000002 -#define I2O_EVT_IND_EXEC_ADAPTER_FAULT		0x00000004 -#define I2O_EVT_IND_EXEC_POWER_FAIL		0x00000008 -#define I2O_EVT_IND_EXEC_RESET_PENDING		0x00000010 -#define I2O_EVT_IND_EXEC_RESET_IMMINENT 	0x00000020 -#define I2O_EVT_IND_EXEC_HW_FAIL		0x00000040 -#define I2O_EVT_IND_EXEC_XCT_CHANGE		0x00000080 -#define I2O_EVT_IND_EXEC_NEW_LCT_ENTRY		0x00000100 -#define I2O_EVT_IND_EXEC_MODIFIED_LCT		0x00000200 -#define I2O_EVT_IND_EXEC_DDM_AVAILABILITY	0x00000400 - -/* Random Block Storage Event Indicators */ -#define I2O_EVT_IND_BSA_VOLUME_LOAD		0x00000001 -#define I2O_EVT_IND_BSA_VOLUME_UNLOAD		0x00000002 -#define I2O_EVT_IND_BSA_VOLUME_UNLOAD_REQ	0x00000004 -#define I2O_EVT_IND_BSA_CAPACITY_CHANGE 	0x00000008 -#define I2O_EVT_IND_BSA_SCSI_SMART		0x00000010 - -/* Event data for generic events */ -#define I2O_EVT_STATE_CHANGE_NORMAL		0x00 -#define I2O_EVT_STATE_CHANGE_SUSPENDED		0x01 -#define I2O_EVT_STATE_CHANGE_RESTART		0x02 -#define I2O_EVT_STATE_CHANGE_NA_RECOVER 	0x03 -#define I2O_EVT_STATE_CHANGE_NA_NO_RECOVER	0x04 -#define I2O_EVT_STATE_CHANGE_QUIESCE_REQUEST	0x05 -#define I2O_EVT_STATE_CHANGE_FAILED		0x10 -#define I2O_EVT_STATE_CHANGE_FAULTED		0x11 - -#define I2O_EVT_GEN_WARNING_NORMAL		0x00 -#define I2O_EVT_GEN_WARNING_ERROR_THRESHOLD	0x01 -#define I2O_EVT_GEN_WARNING_MEDIA_FAULT 	0x02 - -#define I2O_EVT_CAPABILITY_OTHER		0x01 -#define I2O_EVT_CAPABILITY_CHANGED		0x02 - -#define I2O_EVT_SENSOR_STATE_CHANGED		0x01 - -/* - *	I2O classes / subclasses - */ - -/*  Class ID and Code Assignments - *  (LCT.ClassID.Version field) - */ -#define I2O_CLASS_VERSION_10			0x00 -#define I2O_CLASS_VERSION_11			0x01 - -/*  Class code names - *  (from v1.5 Table 6-1 Class Code Assignments.) - */ - -#define I2O_CLASS_EXECUTIVE			0x000 -#define I2O_CLASS_DDM				0x001 -#define I2O_CLASS_RANDOM_BLOCK_STORAGE		0x010 -#define I2O_CLASS_SEQUENTIAL_STORAGE		0x011 -#define I2O_CLASS_LAN				0x020 -#define I2O_CLASS_WAN				0x030 -#define I2O_CLASS_FIBRE_CHANNEL_PORT		0x040 -#define I2O_CLASS_FIBRE_CHANNEL_PERIPHERAL	0x041 -#define I2O_CLASS_SCSI_PERIPHERAL		0x051 -#define I2O_CLASS_ATE_PORT			0x060 -#define I2O_CLASS_ATE_PERIPHERAL		0x061 -#define I2O_CLASS_FLOPPY_CONTROLLER		0x070 -#define I2O_CLASS_FLOPPY_DEVICE 		0x071 -#define I2O_CLASS_BUS_ADAPTER			0x080 -#define I2O_CLASS_PEER_TRANSPORT_AGENT		0x090 -#define I2O_CLASS_PEER_TRANSPORT		0x091 -#define	I2O_CLASS_END				0xfff - -/* - *  Rest of 0x092 - 0x09f reserved for peer-to-peer classes - */ - -#define I2O_CLASS_MATCH_ANYCLASS		0xffffffff - -/* - *  Subclasses - */ - -#define I2O_SUBCLASS_i960			0x001 -#define I2O_SUBCLASS_HDM			0x020 -#define I2O_SUBCLASS_ISM			0x021 - -/* Operation functions */ - -#define I2O_PARAMS_FIELD_GET			0x0001 -#define I2O_PARAMS_LIST_GET			0x0002 -#define I2O_PARAMS_MORE_GET			0x0003 -#define I2O_PARAMS_SIZE_GET			0x0004 -#define I2O_PARAMS_TABLE_GET			0x0005 -#define I2O_PARAMS_FIELD_SET			0x0006 -#define I2O_PARAMS_LIST_SET			0x0007 -#define I2O_PARAMS_ROW_ADD			0x0008 -#define I2O_PARAMS_ROW_DELETE			0x0009 -#define I2O_PARAMS_TABLE_CLEAR			0x000A - -/* - * I2O serial number conventions / formats - * (circa v1.5) - */ - -#define I2O_SNFORMAT_UNKNOWN			0 -#define I2O_SNFORMAT_BINARY			1 -#define I2O_SNFORMAT_ASCII			2 -#define I2O_SNFORMAT_UNICODE			3 -#define I2O_SNFORMAT_LAN48_MAC			4 -#define I2O_SNFORMAT_WAN			5 - -/* - * Plus new in v2.0 (Yellowstone pdf doc) - */ - -#define I2O_SNFORMAT_LAN64_MAC			6 -#define I2O_SNFORMAT_DDM			7 -#define I2O_SNFORMAT_IEEE_REG64 		8 -#define I2O_SNFORMAT_IEEE_REG128		9 -#define I2O_SNFORMAT_UNKNOWN2			0xff - -/* - *	I2O Get Status State values - */ - -#define ADAPTER_STATE_INITIALIZING		0x01 -#define ADAPTER_STATE_RESET			0x02 -#define ADAPTER_STATE_HOLD			0x04 -#define ADAPTER_STATE_READY			0x05 -#define ADAPTER_STATE_OPERATIONAL		0x08 -#define ADAPTER_STATE_FAILED			0x10 -#define ADAPTER_STATE_FAULTED			0x11 - -/* - *	Software module types - */ -#define I2O_SOFTWARE_MODULE_IRTOS		0x11 -#define I2O_SOFTWARE_MODULE_IOP_PRIVATE		0x22 -#define I2O_SOFTWARE_MODULE_IOP_CONFIG		0x23 - -/* - *	Vendors - */ -#define I2O_VENDOR_DPT				0x001b - -/* - * DPT / Adaptec specific values for i2o_sg_io_hdr flags. - */ -#define I2O_DPT_SG_FLAG_INTERPRET		0x00010000 -#define I2O_DPT_SG_FLAG_PHYSICAL		0x00020000 - -#define I2O_DPT_FLASH_FRAG_SIZE			0x10000 -#define I2O_DPT_FLASH_READ			0x0101 -#define I2O_DPT_FLASH_WRITE			0x0102 - -#endif				/* _I2O_DEV_H */ diff --git a/include/linux/i8k.h b/include/linux/i8k.h deleted file mode 100644 index 1c45ba50511..00000000000 --- a/include/linux/i8k.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * i8k.h -- Linux driver for accessing the SMM BIOS on Dell laptops - * - * Copyright (C) 2001  Massimo Dal Zotto <dz@debian.org> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2, or (at your option) any - * later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - */ - -#ifndef _LINUX_I8K_H -#define _LINUX_I8K_H - -#define I8K_PROC		"/proc/i8k" -#define I8K_PROC_FMT		"1.0" - -#define I8K_BIOS_VERSION	_IOR ('i', 0x80, int)	/* broken: meant 4 bytes */ -#define I8K_MACHINE_ID		_IOR ('i', 0x81, int)	/* broken: meant 16 bytes */ -#define I8K_POWER_STATUS	_IOR ('i', 0x82, size_t) -#define I8K_FN_STATUS		_IOR ('i', 0x83, size_t) -#define I8K_GET_TEMP		_IOR ('i', 0x84, size_t) -#define I8K_GET_SPEED		_IOWR('i', 0x85, size_t) -#define I8K_GET_FAN		_IOWR('i', 0x86, size_t) -#define I8K_SET_FAN		_IOWR('i', 0x87, size_t) - -#define I8K_FAN_LEFT		1 -#define I8K_FAN_RIGHT		0 -#define I8K_FAN_OFF		0 -#define I8K_FAN_LOW		1 -#define I8K_FAN_HIGH		2 -#define I8K_FAN_MAX		I8K_FAN_HIGH - -#define I8K_VOL_UP		1 -#define I8K_VOL_DOWN		2 -#define I8K_VOL_MUTE		4 - -#define I8K_AC			1 -#define I8K_BATTERY		0 - -#endif diff --git a/include/linux/icmp.h b/include/linux/icmp.h index 474f2a51cf0..efc18490627 100644 --- a/include/linux/icmp.h +++ b/include/linux/icmp.h @@ -17,89 +17,11 @@  #ifndef _LINUX_ICMP_H  #define	_LINUX_ICMP_H -#include <linux/types.h> - -#define ICMP_ECHOREPLY		0	/* Echo Reply			*/ -#define ICMP_DEST_UNREACH	3	/* Destination Unreachable	*/ -#define ICMP_SOURCE_QUENCH	4	/* Source Quench		*/ -#define ICMP_REDIRECT		5	/* Redirect (change route)	*/ -#define ICMP_ECHO		8	/* Echo Request			*/ -#define ICMP_TIME_EXCEEDED	11	/* Time Exceeded		*/ -#define ICMP_PARAMETERPROB	12	/* Parameter Problem		*/ -#define ICMP_TIMESTAMP		13	/* Timestamp Request		*/ -#define ICMP_TIMESTAMPREPLY	14	/* Timestamp Reply		*/ -#define ICMP_INFO_REQUEST	15	/* Information Request		*/ -#define ICMP_INFO_REPLY		16	/* Information Reply		*/ -#define ICMP_ADDRESS		17	/* Address Mask Request		*/ -#define ICMP_ADDRESSREPLY	18	/* Address Mask Reply		*/ -#define NR_ICMP_TYPES		18 - - -/* Codes for UNREACH. */ -#define ICMP_NET_UNREACH	0	/* Network Unreachable		*/ -#define ICMP_HOST_UNREACH	1	/* Host Unreachable		*/ -#define ICMP_PROT_UNREACH	2	/* Protocol Unreachable		*/ -#define ICMP_PORT_UNREACH	3	/* Port Unreachable		*/ -#define ICMP_FRAG_NEEDED	4	/* Fragmentation Needed/DF set	*/ -#define ICMP_SR_FAILED		5	/* Source Route failed		*/ -#define ICMP_NET_UNKNOWN	6 -#define ICMP_HOST_UNKNOWN	7 -#define ICMP_HOST_ISOLATED	8 -#define ICMP_NET_ANO		9 -#define ICMP_HOST_ANO		10 -#define ICMP_NET_UNR_TOS	11 -#define ICMP_HOST_UNR_TOS	12 -#define ICMP_PKT_FILTERED	13	/* Packet filtered */ -#define ICMP_PREC_VIOLATION	14	/* Precedence violation */ -#define ICMP_PREC_CUTOFF	15	/* Precedence cut off */ -#define NR_ICMP_UNREACH		15	/* instead of hardcoding immediate value */ - -/* Codes for REDIRECT. */ -#define ICMP_REDIR_NET		0	/* Redirect Net			*/ -#define ICMP_REDIR_HOST		1	/* Redirect Host		*/ -#define ICMP_REDIR_NETTOS	2	/* Redirect Net for TOS		*/ -#define ICMP_REDIR_HOSTTOS	3	/* Redirect Host for TOS	*/ - -/* Codes for TIME_EXCEEDED. */ -#define ICMP_EXC_TTL		0	/* TTL count exceeded		*/ -#define ICMP_EXC_FRAGTIME	1	/* Fragment Reass time exceeded	*/ - - -struct icmphdr { -  __u8		type; -  __u8		code; -  __sum16	checksum; -  union { -	struct { -		__be16	id; -		__be16	sequence; -	} echo; -	__be32	gateway; -	struct { -		__be16	__unused; -		__be16	mtu; -	} frag; -  } un; -}; - -#ifdef __KERNEL__  #include <linux/skbuff.h> +#include <uapi/linux/icmp.h>  static inline struct icmphdr *icmp_hdr(const struct sk_buff *skb)  {  	return (struct icmphdr *)skb_transport_header(skb);  } -#endif - -/* - *	constants for (set|get)sockopt - */ - -#define ICMP_FILTER			1 - -struct icmp_filter { -	__u32		data; -}; - -  #endif	/* _LINUX_ICMP_H */ diff --git a/include/linux/icmpv6.h b/include/linux/icmpv6.h index ba45e6bc076..b4f6c29cace 100644 --- a/include/linux/icmpv6.h +++ b/include/linux/icmpv6.h @@ -1,174 +1,13 @@  #ifndef _LINUX_ICMPV6_H  #define _LINUX_ICMPV6_H -#include <linux/types.h> -#include <asm/byteorder.h> - -struct icmp6hdr { - -	__u8		icmp6_type; -	__u8		icmp6_code; -	__sum16		icmp6_cksum; - - -	union { -		__be32			un_data32[1]; -		__be16			un_data16[2]; -		__u8			un_data8[4]; - -		struct icmpv6_echo { -			__be16		identifier; -			__be16		sequence; -		} u_echo; - -                struct icmpv6_nd_advt { -#if defined(__LITTLE_ENDIAN_BITFIELD) -                        __u32		reserved:5, -                        		override:1, -                        		solicited:1, -                        		router:1, -					reserved2:24; -#elif defined(__BIG_ENDIAN_BITFIELD) -                        __u32		router:1, -					solicited:1, -                        		override:1, -                        		reserved:29; -#else -#error	"Please fix <asm/byteorder.h>" -#endif						 -                } u_nd_advt; - -                struct icmpv6_nd_ra { -			__u8		hop_limit; -#if defined(__LITTLE_ENDIAN_BITFIELD) -			__u8		reserved:3, -					router_pref:2, -					home_agent:1, -					other:1, -					managed:1; - -#elif defined(__BIG_ENDIAN_BITFIELD) -			__u8		managed:1, -					other:1, -					home_agent:1, -					router_pref:2, -					reserved:3; -#else -#error	"Please fix <asm/byteorder.h>" -#endif -			__be16		rt_lifetime; -                } u_nd_ra; - -	} icmp6_dataun; - -#define icmp6_identifier	icmp6_dataun.u_echo.identifier -#define icmp6_sequence		icmp6_dataun.u_echo.sequence -#define icmp6_pointer		icmp6_dataun.un_data32[0] -#define icmp6_mtu		icmp6_dataun.un_data32[0] -#define icmp6_unused		icmp6_dataun.un_data32[0] -#define icmp6_maxdelay		icmp6_dataun.un_data16[0] -#define icmp6_router		icmp6_dataun.u_nd_advt.router -#define icmp6_solicited		icmp6_dataun.u_nd_advt.solicited -#define icmp6_override		icmp6_dataun.u_nd_advt.override -#define icmp6_ndiscreserved	icmp6_dataun.u_nd_advt.reserved -#define icmp6_hop_limit		icmp6_dataun.u_nd_ra.hop_limit -#define icmp6_addrconf_managed	icmp6_dataun.u_nd_ra.managed -#define icmp6_addrconf_other	icmp6_dataun.u_nd_ra.other -#define icmp6_rt_lifetime	icmp6_dataun.u_nd_ra.rt_lifetime -#define icmp6_router_pref	icmp6_dataun.u_nd_ra.router_pref -}; - -#ifdef __KERNEL__  #include <linux/skbuff.h> +#include <uapi/linux/icmpv6.h>  static inline struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb)  {  	return (struct icmp6hdr *)skb_transport_header(skb);  } -#endif - -#define ICMPV6_ROUTER_PREF_LOW		0x3 -#define ICMPV6_ROUTER_PREF_MEDIUM	0x0 -#define ICMPV6_ROUTER_PREF_HIGH		0x1 -#define ICMPV6_ROUTER_PREF_INVALID	0x2 - -#define ICMPV6_DEST_UNREACH		1 -#define ICMPV6_PKT_TOOBIG		2 -#define ICMPV6_TIME_EXCEED		3 -#define ICMPV6_PARAMPROB		4 - -#define ICMPV6_INFOMSG_MASK		0x80 - -#define ICMPV6_ECHO_REQUEST		128 -#define ICMPV6_ECHO_REPLY		129 -#define ICMPV6_MGM_QUERY		130 -#define ICMPV6_MGM_REPORT       	131 -#define ICMPV6_MGM_REDUCTION    	132 - -#define ICMPV6_NI_QUERY			139 -#define ICMPV6_NI_REPLY			140 - -#define ICMPV6_MLD2_REPORT		143 - -#define ICMPV6_DHAAD_REQUEST		144 -#define ICMPV6_DHAAD_REPLY		145 -#define ICMPV6_MOBILE_PREFIX_SOL	146 -#define ICMPV6_MOBILE_PREFIX_ADV	147 - -/* - *	Codes for Destination Unreachable - */ -#define ICMPV6_NOROUTE			0 -#define ICMPV6_ADM_PROHIBITED		1 -#define ICMPV6_NOT_NEIGHBOUR		2 -#define ICMPV6_ADDR_UNREACH		3 -#define ICMPV6_PORT_UNREACH		4 - -/* - *	Codes for Time Exceeded - */ -#define ICMPV6_EXC_HOPLIMIT		0 -#define ICMPV6_EXC_FRAGTIME		1 - -/* - *	Codes for Parameter Problem - */ -#define ICMPV6_HDR_FIELD		0 -#define ICMPV6_UNK_NEXTHDR		1 -#define ICMPV6_UNK_OPTION		2 - -/* - *	constants for (set|get)sockopt - */ - -#define ICMPV6_FILTER			1 - -/* - *	ICMPV6 filter - */ - -#define ICMPV6_FILTER_BLOCK		1 -#define ICMPV6_FILTER_PASS		2 -#define ICMPV6_FILTER_BLOCKOTHERS	3 -#define ICMPV6_FILTER_PASSONLY		4 - -struct icmp6_filter { -	__u32		data[8]; -}; - -/* - *	Definitions for MLDv2 - */ -#define MLD2_MODE_IS_INCLUDE	1 -#define MLD2_MODE_IS_EXCLUDE	2 -#define MLD2_CHANGE_TO_INCLUDE	3 -#define MLD2_CHANGE_TO_EXCLUDE	4 -#define MLD2_ALLOW_NEW_SOURCES	5 -#define MLD2_BLOCK_OLD_SOURCES	6 - -#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } } - -#ifdef __KERNEL__  #include <linux/netdevice.h> @@ -192,5 +31,3 @@ extern void				icmpv6_flow_init(struct sock *sk,  							 const struct in6_addr *daddr,  							 int oif);  #endif - -#endif diff --git a/include/linux/if.h b/include/linux/if.h deleted file mode 100644 index 1ec407b01e4..00000000000 --- a/include/linux/if.h +++ /dev/null @@ -1,235 +0,0 @@ -/* - * INET		An implementation of the TCP/IP protocol suite for the LINUX - *		operating system.  INET is implemented using the  BSD Socket - *		interface as the means of communication with the user level. - * - *		Global definitions for the INET interface module. - * - * Version:	@(#)if.h	1.0.2	04/18/93 - * - * Authors:	Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 - *		Ross Biro - *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> - * - *		This program is free software; you can redistribute it and/or - *		modify it under the terms of the GNU General Public License - *		as published by the Free Software Foundation; either version - *		2 of the License, or (at your option) any later version. - */ -#ifndef _LINUX_IF_H -#define _LINUX_IF_H - -#include <linux/types.h>		/* for "__kernel_caddr_t" et al	*/ -#include <linux/socket.h>		/* for "struct sockaddr" et al	*/ -#include <linux/compiler.h>		/* for "__user" et al           */ - -#define	IFNAMSIZ	16 -#define	IFALIASZ	256 -#include <linux/hdlc/ioctl.h> - -/* Standard interface flags (netdevice->flags). */ -#define	IFF_UP		0x1		/* interface is up		*/ -#define	IFF_BROADCAST	0x2		/* broadcast address valid	*/ -#define	IFF_DEBUG	0x4		/* turn on debugging		*/ -#define	IFF_LOOPBACK	0x8		/* is a loopback net		*/ -#define	IFF_POINTOPOINT	0x10		/* interface is has p-p link	*/ -#define	IFF_NOTRAILERS	0x20		/* avoid use of trailers	*/ -#define	IFF_RUNNING	0x40		/* interface RFC2863 OPER_UP	*/ -#define	IFF_NOARP	0x80		/* no ARP protocol		*/ -#define	IFF_PROMISC	0x100		/* receive all packets		*/ -#define	IFF_ALLMULTI	0x200		/* receive all multicast packets*/ - -#define IFF_MASTER	0x400		/* master of a load balancer 	*/ -#define IFF_SLAVE	0x800		/* slave of a load balancer	*/ - -#define IFF_MULTICAST	0x1000		/* Supports multicast		*/ - -#define IFF_PORTSEL	0x2000          /* can set media type		*/ -#define IFF_AUTOMEDIA	0x4000		/* auto media select active	*/ -#define IFF_DYNAMIC	0x8000		/* dialup device with changing addresses*/ - -#define IFF_LOWER_UP	0x10000		/* driver signals L1 up		*/ -#define IFF_DORMANT	0x20000		/* driver signals dormant	*/ - -#define IFF_ECHO	0x40000		/* echo sent packets		*/ - -#define IFF_VOLATILE	(IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ -		IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) - -/* Private (from user) interface flags (netdevice->priv_flags). */ -#define IFF_802_1Q_VLAN 0x1             /* 802.1Q VLAN device.          */ -#define IFF_EBRIDGE	0x2		/* Ethernet bridging device.	*/ -#define IFF_SLAVE_INACTIVE	0x4	/* bonding slave not the curr. active */ -#define IFF_MASTER_8023AD	0x8	/* bonding master, 802.3ad. 	*/ -#define IFF_MASTER_ALB	0x10		/* bonding master, balance-alb.	*/ -#define IFF_BONDING	0x20		/* bonding master or slave	*/ -#define IFF_SLAVE_NEEDARP 0x40		/* need ARPs for validation	*/ -#define IFF_ISATAP	0x80		/* ISATAP interface (RFC4214)	*/ -#define IFF_MASTER_ARPMON 0x100		/* bonding master, ARP mon in use */ -#define IFF_WAN_HDLC	0x200		/* WAN HDLC device		*/ -#define IFF_XMIT_DST_RELEASE 0x400	/* dev_hard_start_xmit() is allowed to -					 * release skb->dst -					 */ -#define IFF_DONT_BRIDGE 0x800		/* disallow bridging this ether dev */ -#define IFF_DISABLE_NETPOLL	0x1000	/* disable netpoll at run-time */ -#define IFF_MACVLAN_PORT	0x2000	/* device used as macvlan port */ -#define IFF_BRIDGE_PORT	0x4000		/* device used as bridge port */ -#define IFF_OVS_DATAPATH	0x8000	/* device used as Open vSwitch -					 * datapath port */ -#define IFF_TX_SKB_SHARING	0x10000	/* The interface supports sharing -					 * skbs on transmit */ -#define IFF_UNICAST_FLT	0x20000		/* Supports unicast filtering	*/ -#define IFF_TEAM_PORT	0x40000		/* device used as team port */ -#define IFF_SUPP_NOFCS	0x80000		/* device supports sending custom FCS */ -#define IFF_LIVE_ADDR_CHANGE 0x100000	/* device supports hardware address -					 * change when it's running */ - - -#define IF_GET_IFACE	0x0001		/* for querying only */ -#define IF_GET_PROTO	0x0002 - -/* For definitions see hdlc.h */ -#define IF_IFACE_V35	0x1000		/* V.35 serial interface	*/ -#define IF_IFACE_V24	0x1001		/* V.24 serial interface	*/ -#define IF_IFACE_X21	0x1002		/* X.21 serial interface	*/ -#define IF_IFACE_T1	0x1003		/* T1 telco serial interface	*/ -#define IF_IFACE_E1	0x1004		/* E1 telco serial interface	*/ -#define IF_IFACE_SYNC_SERIAL 0x1005	/* can't be set by software	*/ -#define IF_IFACE_X21D   0x1006          /* X.21 Dual Clocking (FarSite) */ - -/* For definitions see hdlc.h */ -#define IF_PROTO_HDLC	0x2000		/* raw HDLC protocol		*/ -#define IF_PROTO_PPP	0x2001		/* PPP protocol			*/ -#define IF_PROTO_CISCO	0x2002		/* Cisco HDLC protocol		*/ -#define IF_PROTO_FR	0x2003		/* Frame Relay protocol		*/ -#define IF_PROTO_FR_ADD_PVC 0x2004	/*    Create FR PVC		*/ -#define IF_PROTO_FR_DEL_PVC 0x2005	/*    Delete FR PVC		*/ -#define IF_PROTO_X25	0x2006		/* X.25				*/ -#define IF_PROTO_HDLC_ETH 0x2007	/* raw HDLC, Ethernet emulation	*/ -#define IF_PROTO_FR_ADD_ETH_PVC 0x2008	/*  Create FR Ethernet-bridged PVC */ -#define IF_PROTO_FR_DEL_ETH_PVC 0x2009	/*  Delete FR Ethernet-bridged PVC */ -#define IF_PROTO_FR_PVC	0x200A		/* for reading PVC status	*/ -#define IF_PROTO_FR_ETH_PVC 0x200B -#define IF_PROTO_RAW    0x200C          /* RAW Socket                   */ - -/* RFC 2863 operational status */ -enum { -	IF_OPER_UNKNOWN, -	IF_OPER_NOTPRESENT, -	IF_OPER_DOWN, -	IF_OPER_LOWERLAYERDOWN, -	IF_OPER_TESTING, -	IF_OPER_DORMANT, -	IF_OPER_UP, -}; - -/* link modes */ -enum { -	IF_LINK_MODE_DEFAULT, -	IF_LINK_MODE_DORMANT,	/* limit upward transition to dormant */ -}; - -/* - *	Device mapping structure. I'd just gone off and designed a  - *	beautiful scheme using only loadable modules with arguments - *	for driver options and along come the PCMCIA people 8) - * - *	Ah well. The get() side of this is good for WDSETUP, and it'll - *	be handy for debugging things. The set side is fine for now and - *	being very small might be worth keeping for clean configuration. - */ - -struct ifmap { -	unsigned long mem_start; -	unsigned long mem_end; -	unsigned short base_addr;  -	unsigned char irq; -	unsigned char dma; -	unsigned char port; -	/* 3 bytes spare */ -}; - -struct if_settings { -	unsigned int type;	/* Type of physical device or protocol */ -	unsigned int size;	/* Size of the data allocated by the caller */ -	union { -		/* {atm/eth/dsl}_settings anyone ? */ -		raw_hdlc_proto		__user *raw_hdlc; -		cisco_proto		__user *cisco; -		fr_proto		__user *fr; -		fr_proto_pvc		__user *fr_pvc; -		fr_proto_pvc_info	__user *fr_pvc_info; - -		/* interface settings */ -		sync_serial_settings	__user *sync; -		te1_settings		__user *te1; -	} ifs_ifsu; -}; - -/* - * Interface request structure used for socket - * ioctl's.  All interface ioctl's must have parameter - * definitions which begin with ifr_name.  The - * remainder may be interface specific. - */ - -struct ifreq { -#define IFHWADDRLEN	6 -	union -	{ -		char	ifrn_name[IFNAMSIZ];		/* if name, e.g. "en0" */ -	} ifr_ifrn; -	 -	union { -		struct	sockaddr ifru_addr; -		struct	sockaddr ifru_dstaddr; -		struct	sockaddr ifru_broadaddr; -		struct	sockaddr ifru_netmask; -		struct  sockaddr ifru_hwaddr; -		short	ifru_flags; -		int	ifru_ivalue; -		int	ifru_mtu; -		struct  ifmap ifru_map; -		char	ifru_slave[IFNAMSIZ];	/* Just fits the size */ -		char	ifru_newname[IFNAMSIZ]; -		void __user *	ifru_data; -		struct	if_settings ifru_settings; -	} ifr_ifru; -}; - -#define ifr_name	ifr_ifrn.ifrn_name	/* interface name 	*/ -#define ifr_hwaddr	ifr_ifru.ifru_hwaddr	/* MAC address 		*/ -#define	ifr_addr	ifr_ifru.ifru_addr	/* address		*/ -#define	ifr_dstaddr	ifr_ifru.ifru_dstaddr	/* other end of p-p lnk	*/ -#define	ifr_broadaddr	ifr_ifru.ifru_broadaddr	/* broadcast address	*/ -#define	ifr_netmask	ifr_ifru.ifru_netmask	/* interface net mask	*/ -#define	ifr_flags	ifr_ifru.ifru_flags	/* flags		*/ -#define	ifr_metric	ifr_ifru.ifru_ivalue	/* metric		*/ -#define	ifr_mtu		ifr_ifru.ifru_mtu	/* mtu			*/ -#define ifr_map		ifr_ifru.ifru_map	/* device map		*/ -#define ifr_slave	ifr_ifru.ifru_slave	/* slave device		*/ -#define	ifr_data	ifr_ifru.ifru_data	/* for use by interface	*/ -#define ifr_ifindex	ifr_ifru.ifru_ivalue	/* interface index	*/ -#define ifr_bandwidth	ifr_ifru.ifru_ivalue    /* link bandwidth	*/ -#define ifr_qlen	ifr_ifru.ifru_ivalue	/* Queue length 	*/ -#define ifr_newname	ifr_ifru.ifru_newname	/* New name		*/ -#define ifr_settings	ifr_ifru.ifru_settings	/* Device/proto settings*/ - -/* - * Structure used in SIOCGIFCONF request. - * Used to retrieve interface configuration - * for machine (useful for programs which - * must know all networks accessible). - */ - -struct ifconf  { -	int	ifc_len;			/* size of buffer	*/ -	union { -		char __user *ifcu_buf; -		struct ifreq __user *ifcu_req; -	} ifc_ifcu; -}; -#define	ifc_buf	ifc_ifcu.ifcu_buf		/* buffer address	*/ -#define	ifc_req	ifc_ifcu.ifcu_req		/* array of structures	*/ - -#endif /* _LINUX_IF_H */ diff --git a/include/linux/if_addr.h b/include/linux/if_addr.h deleted file mode 100644 index 23357ab81a7..00000000000 --- a/include/linux/if_addr.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef __LINUX_IF_ADDR_H -#define __LINUX_IF_ADDR_H - -#include <linux/types.h> -#include <linux/netlink.h> - -struct ifaddrmsg { -	__u8		ifa_family; -	__u8		ifa_prefixlen;	/* The prefix length		*/ -	__u8		ifa_flags;	/* Flags			*/ -	__u8		ifa_scope;	/* Address scope		*/ -	__u32		ifa_index;	/* Link index			*/ -}; - -/* - * Important comment: - * IFA_ADDRESS is prefix address, rather than local interface address. - * It makes no difference for normally configured broadcast interfaces, - * but for point-to-point IFA_ADDRESS is DESTINATION address, - * local address is supplied in IFA_LOCAL attribute. - */ -enum { -	IFA_UNSPEC, -	IFA_ADDRESS, -	IFA_LOCAL, -	IFA_LABEL, -	IFA_BROADCAST, -	IFA_ANYCAST, -	IFA_CACHEINFO, -	IFA_MULTICAST, -	__IFA_MAX, -}; - -#define IFA_MAX (__IFA_MAX - 1) - -/* ifa_flags */ -#define IFA_F_SECONDARY		0x01 -#define IFA_F_TEMPORARY		IFA_F_SECONDARY - -#define	IFA_F_NODAD		0x02 -#define IFA_F_OPTIMISTIC	0x04 -#define IFA_F_DADFAILED		0x08 -#define	IFA_F_HOMEADDRESS	0x10 -#define IFA_F_DEPRECATED	0x20 -#define IFA_F_TENTATIVE		0x40 -#define IFA_F_PERMANENT		0x80 - -struct ifa_cacheinfo { -	__u32	ifa_prefered; -	__u32	ifa_valid; -	__u32	cstamp; /* created timestamp, hundredths of seconds */ -	__u32	tstamp; /* updated timestamp, hundredths of seconds */ -}; - -/* backwards compatibility for userspace */ -#ifndef __KERNEL__ -#define IFA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg)))) -#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg)) -#endif - -#endif diff --git a/include/linux/if_addrlabel.h b/include/linux/if_addrlabel.h deleted file mode 100644 index 54580c29818..00000000000 --- a/include/linux/if_addrlabel.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * if_addrlabel.h - netlink interface for address labels - * - * Copyright (C)2007 USAGI/WIDE Project,  All Rights Reserved. - * - * Authors: - *	YOSHIFUJI Hideaki @ USAGI/WIDE <yoshfuji@linux-ipv6.org> - */ - -#ifndef __LINUX_IF_ADDRLABEL_H -#define __LINUX_IF_ADDRLABEL_H - -#include <linux/types.h> - -struct ifaddrlblmsg { -	__u8		ifal_family;		/* Address family */ -	__u8		__ifal_reserved;	/* Reserved */ -	__u8		ifal_prefixlen;		/* Prefix length */ -	__u8		ifal_flags;		/* Flags */ -	__u32		ifal_index;		/* Link index */ -	__u32		ifal_seq;		/* sequence number */ -}; - -enum { -	IFAL_ADDRESS = 1, -	IFAL_LABEL = 2, -	__IFAL_MAX -}; - -#define IFAL_MAX	(__IFAL_MAX - 1) - -#endif diff --git a/include/linux/if_alg.h b/include/linux/if_alg.h deleted file mode 100644 index 0f9acce5b1f..00000000000 --- a/include/linux/if_alg.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * if_alg: User-space algorithm interface - * - * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - */ - -#ifndef _LINUX_IF_ALG_H -#define _LINUX_IF_ALG_H - -#include <linux/types.h> - -struct sockaddr_alg { -	__u16	salg_family; -	__u8	salg_type[14]; -	__u32	salg_feat; -	__u32	salg_mask; -	__u8	salg_name[64]; -}; - -struct af_alg_iv { -	__u32	ivlen; -	__u8	iv[0]; -}; - -/* Socket options */ -#define ALG_SET_KEY			1 -#define ALG_SET_IV			2 -#define ALG_SET_OP			3 - -/* Operations */ -#define ALG_OP_DECRYPT			0 -#define ALG_OP_ENCRYPT			1 - -#endif	/* _LINUX_IF_ALG_H */ diff --git a/include/linux/if_arcnet.h b/include/linux/if_arcnet.h deleted file mode 100644 index 46e34bd0e78..00000000000 --- a/include/linux/if_arcnet.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * INET         An implementation of the TCP/IP protocol suite for the LINUX - *              operating system.  INET is implemented using the  BSD Socket - *              interface as the means of communication with the user level. - * - *              Global definitions for the ARCnet interface. - * - * Authors:     David Woodhouse and Avery Pennarun - * - *              This program is free software; you can redistribute it and/or - *              modify it under the terms of the GNU General Public License - *              as published by the Free Software Foundation; either version - *              2 of the License, or (at your option) any later version. - */ - -#ifndef _LINUX_IF_ARCNET_H -#define _LINUX_IF_ARCNET_H - -#include <linux/types.h> -#include <linux/if_ether.h> - - -/* - *    These are the defined ARCnet Protocol ID's. - */ - -/* CAP mode */ -/* No macro but uses 1-8 */ - -/* RFC1201 Protocol ID's */ -#define ARC_P_IP		212	/* 0xD4 */ -#define ARC_P_IPV6		196	/* 0xC4: RFC2497 */ -#define ARC_P_ARP		213	/* 0xD5 */ -#define ARC_P_RARP		214	/* 0xD6 */ -#define ARC_P_IPX		250	/* 0xFA */ -#define ARC_P_NOVELL_EC		236	/* 0xEC */ - -/* Old RFC1051 Protocol ID's */ -#define ARC_P_IP_RFC1051	240	/* 0xF0 */ -#define ARC_P_ARP_RFC1051	241	/* 0xF1 */ - -/* MS LanMan/WfWg "NDIS" encapsulation */ -#define ARC_P_ETHER		232	/* 0xE8 */ - -/* Unsupported/indirectly supported protocols */ -#define ARC_P_DATAPOINT_BOOT	0	/* very old Datapoint equipment */ -#define ARC_P_DATAPOINT_MOUNT	1 -#define ARC_P_POWERLAN_BEACON	8	/* Probably ATA-Netbios related */ -#define ARC_P_POWERLAN_BEACON2	243	/* 0xF3 */ -#define ARC_P_LANSOFT		251	/* 0xFB - what is this? */ -#define ARC_P_ATALK		0xDD - -/* Hardware address length */ -#define ARCNET_ALEN	1 - -/* - * The RFC1201-specific components of an arcnet packet header. - */ -struct arc_rfc1201 { -    __u8  proto;		/* protocol ID field - varies		*/ -    __u8  split_flag;	/* for use with split packets		*/ -    __be16   sequence;		/* sequence number			*/ -    __u8  payload[0];	/* space remaining in packet (504 bytes)*/ -}; -#define RFC1201_HDR_SIZE 4 - - -/* - * The RFC1051-specific components. - */ -struct arc_rfc1051 { -    __u8 proto;		/* ARC_P_RFC1051_ARP/RFC1051_IP	*/ -    __u8 payload[0];		/* 507 bytes			*/ -}; -#define RFC1051_HDR_SIZE 1 - - -/* - * The ethernet-encap-specific components.  We have a real ethernet header - * and some data. - */ -struct arc_eth_encap { -    __u8 proto;		/* Always ARC_P_ETHER			*/ -    struct ethhdr eth;		/* standard ethernet header (yuck!)	*/ -    __u8 payload[0];		/* 493 bytes				*/ -}; -#define ETH_ENCAP_HDR_SIZE 14 - - -struct arc_cap { -	__u8 proto; -	__u8 cookie[sizeof(int)];   /* Actually NOT sent over the network */ -	union { -		__u8 ack; -		__u8 raw[0];		/* 507 bytes */ -	} mes; -}; - -/* - * The data needed by the actual arcnet hardware. - * - * Now, in the real arcnet hardware, the third and fourth bytes are the - * 'offset' specification instead of the length, and the soft data is at - * the _end_ of the 512-byte buffer.  We hide this complexity inside the - * driver. - */ -struct arc_hardware { -    __u8  source,		/* source ARCnet - filled in automagically */ -             dest,		/* destination ARCnet - 0 for broadcast    */ -    	     offset[2];		/* offset bytes (some weird semantics)     */ -}; -#define ARC_HDR_SIZE 4 - -/* - * This is an ARCnet frame header, as seen by the kernel (and userspace, - * when you do a raw packet capture). - */ -struct archdr { -    /* hardware requirements */ -    struct arc_hardware hard; -      -    /* arcnet encapsulation-specific bits */ -    union { -	struct arc_rfc1201   rfc1201; -	struct arc_rfc1051   rfc1051; -	struct arc_eth_encap eth_encap; -	struct arc_cap       cap; -	__u8 raw[0];		/* 508 bytes				*/ -    } soft; -}; - -#endif				/* _LINUX_IF_ARCNET_H */ diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h index 9adcc29f084..89b4614a472 100644 --- a/include/linux/if_arp.h +++ b/include/linux/if_arp.h @@ -23,140 +23,8 @@  #ifndef _LINUX_IF_ARP_H  #define _LINUX_IF_ARP_H -#include <linux/netdevice.h> - -/* ARP protocol HARDWARE identifiers. */ -#define ARPHRD_NETROM	0		/* from KA9Q: NET/ROM pseudo	*/ -#define ARPHRD_ETHER 	1		/* Ethernet 10Mbps		*/ -#define	ARPHRD_EETHER	2		/* Experimental Ethernet	*/ -#define	ARPHRD_AX25	3		/* AX.25 Level 2		*/ -#define	ARPHRD_PRONET	4		/* PROnet token ring		*/ -#define	ARPHRD_CHAOS	5		/* Chaosnet			*/ -#define	ARPHRD_IEEE802	6		/* IEEE 802.2 Ethernet/TR/TB	*/ -#define	ARPHRD_ARCNET	7		/* ARCnet			*/ -#define	ARPHRD_APPLETLK	8		/* APPLEtalk			*/ -#define ARPHRD_DLCI	15		/* Frame Relay DLCI		*/ -#define ARPHRD_ATM	19		/* ATM 				*/ -#define ARPHRD_METRICOM	23		/* Metricom STRIP (new IANA id)	*/ -#define	ARPHRD_IEEE1394	24		/* IEEE 1394 IPv4 - RFC 2734	*/ -#define ARPHRD_EUI64	27		/* EUI-64                       */ -#define ARPHRD_INFINIBAND 32		/* InfiniBand			*/ - -/* Dummy types for non ARP hardware */ -#define ARPHRD_SLIP	256 -#define ARPHRD_CSLIP	257 -#define ARPHRD_SLIP6	258 -#define ARPHRD_CSLIP6	259 -#define ARPHRD_RSRVD	260		/* Notional KISS type 		*/ -#define ARPHRD_ADAPT	264 -#define ARPHRD_ROSE	270 -#define ARPHRD_X25	271		/* CCITT X.25			*/ -#define ARPHRD_HWX25	272		/* Boards with X.25 in firmware	*/ -#define ARPHRD_CAN	280		/* Controller Area Network      */ -#define ARPHRD_PPP	512 -#define ARPHRD_CISCO	513		/* Cisco HDLC	 		*/ -#define ARPHRD_HDLC	ARPHRD_CISCO -#define ARPHRD_LAPB	516		/* LAPB				*/ -#define ARPHRD_DDCMP    517		/* Digital's DDCMP protocol     */ -#define ARPHRD_RAWHDLC	518		/* Raw HDLC			*/ - -#define ARPHRD_TUNNEL	768		/* IPIP tunnel			*/ -#define ARPHRD_TUNNEL6	769		/* IP6IP6 tunnel       		*/ -#define ARPHRD_FRAD	770             /* Frame Relay Access Device    */ -#define ARPHRD_SKIP	771		/* SKIP vif			*/ -#define ARPHRD_LOOPBACK	772		/* Loopback device		*/ -#define ARPHRD_LOCALTLK 773		/* Localtalk device		*/ -#define ARPHRD_FDDI	774		/* Fiber Distributed Data Interface */ -#define ARPHRD_BIF      775             /* AP1000 BIF                   */ -#define ARPHRD_SIT	776		/* sit0 device - IPv6-in-IPv4	*/ -#define ARPHRD_IPDDP	777		/* IP over DDP tunneller	*/ -#define ARPHRD_IPGRE	778		/* GRE over IP			*/ -#define ARPHRD_PIMREG	779		/* PIMSM register interface	*/ -#define ARPHRD_HIPPI	780		/* High Performance Parallel Interface */ -#define ARPHRD_ASH	781		/* Nexus 64Mbps Ash		*/ -#define ARPHRD_ECONET	782		/* Acorn Econet			*/ -#define ARPHRD_IRDA 	783		/* Linux-IrDA			*/ -/* ARP works differently on different FC media .. so  */ -#define ARPHRD_FCPP	784		/* Point to point fibrechannel	*/ -#define ARPHRD_FCAL	785		/* Fibrechannel arbitrated loop */ -#define ARPHRD_FCPL	786		/* Fibrechannel public loop	*/ -#define ARPHRD_FCFABRIC	787		/* Fibrechannel fabric		*/ -	/* 787->799 reserved for fibrechannel media types */ -#define ARPHRD_IEEE802_TR 800		/* Magic type ident for TR	*/ -#define ARPHRD_IEEE80211 801		/* IEEE 802.11			*/ -#define ARPHRD_IEEE80211_PRISM 802	/* IEEE 802.11 + Prism2 header  */ -#define ARPHRD_IEEE80211_RADIOTAP 803	/* IEEE 802.11 + radiotap header */ -#define ARPHRD_IEEE802154	  804 -#define ARPHRD_IEEE802154_MONITOR 805	/* IEEE 802.15.4 network monitor */ - -#define ARPHRD_PHONET	820		/* PhoNet media type		*/ -#define ARPHRD_PHONET_PIPE 821		/* PhoNet pipe header		*/ -#define ARPHRD_CAIF	822		/* CAIF media type		*/ -#define ARPHRD_IP6GRE	823		/* GRE over IPv6		*/ - -#define ARPHRD_VOID	  0xFFFF	/* Void type, nothing is known */ -#define ARPHRD_NONE	  0xFFFE	/* zero header length */ - -/* ARP protocol opcodes. */ -#define	ARPOP_REQUEST	1		/* ARP request			*/ -#define	ARPOP_REPLY	2		/* ARP reply			*/ -#define	ARPOP_RREQUEST	3		/* RARP request			*/ -#define	ARPOP_RREPLY	4		/* RARP reply			*/ -#define	ARPOP_InREQUEST	8		/* InARP request		*/ -#define	ARPOP_InREPLY	9		/* InARP reply			*/ -#define	ARPOP_NAK	10		/* (ATM)ARP NAK			*/ - - -/* ARP ioctl request. */ -struct arpreq { -  struct sockaddr	arp_pa;		/* protocol address		*/ -  struct sockaddr	arp_ha;		/* hardware address		*/ -  int			arp_flags;	/* flags			*/ -  struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */ -  char			arp_dev[16]; -}; - -struct arpreq_old { -  struct sockaddr	arp_pa;		/* protocol address		*/ -  struct sockaddr	arp_ha;		/* hardware address		*/ -  int			arp_flags;	/* flags			*/ -  struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */ -}; - -/* ARP Flag values. */ -#define ATF_COM		0x02		/* completed entry (ha valid)	*/ -#define	ATF_PERM	0x04		/* permanent entry		*/ -#define	ATF_PUBL	0x08		/* publish entry		*/ -#define	ATF_USETRAILERS	0x10		/* has requested trailers	*/ -#define ATF_NETMASK     0x20            /* want to use a netmask (only -					   for proxy entries) */ -#define ATF_DONTPUB	0x40		/* don't answer this addresses	*/ - -/* - *	This structure defines an ethernet arp header. - */ - -struct arphdr { -	__be16		ar_hrd;		/* format of hardware address	*/ -	__be16		ar_pro;		/* format of protocol address	*/ -	unsigned char	ar_hln;		/* length of hardware address	*/ -	unsigned char	ar_pln;		/* length of protocol address	*/ -	__be16		ar_op;		/* ARP opcode (command)		*/ - -#if 0 -	 /* -	  *	 Ethernet looks like this : This bit is variable sized however... -	  */ -	unsigned char		ar_sha[ETH_ALEN];	/* sender hardware address	*/ -	unsigned char		ar_sip[4];		/* sender IP address		*/ -	unsigned char		ar_tha[ETH_ALEN];	/* target hardware address	*/ -	unsigned char		ar_tip[4];		/* target IP address		*/ -#endif - -}; - -#ifdef __KERNEL__  #include <linux/skbuff.h> +#include <uapi/linux/if_arp.h>  static inline struct arphdr *arp_hdr(const struct sk_buff *skb)  { @@ -168,6 +36,4 @@ static inline int arp_hdr_len(struct net_device *dev)  	/* ARP header, plus 2 device addresses, plus 2 IP addresses. */  	return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2;  } -#endif -  #endif	/* _LINUX_IF_ARP_H */ diff --git a/include/linux/if_bonding.h b/include/linux/if_bonding.h deleted file mode 100644 index a17edda8a78..00000000000 --- a/include/linux/if_bonding.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Bond several ethernet interfaces into a Cisco, running 'Etherchannel'. - * - * - * Portions are (c) Copyright 1995 Simon "Guru Aleph-Null" Janes - * NCM: Network and Communications Management, Inc. - * - * BUT, I'm the one who modified it for ethernet, so: - * (c) Copyright 1999, Thomas Davis, tadavis@lbl.gov - * - *	This software may be used and distributed according to the terms - *	of the GNU Public License, incorporated herein by reference. - * - * 2003/03/18 - Amir Noam <amir.noam at intel dot com> - *	- Added support for getting slave's speed and duplex via ethtool. - *	  Needed for 802.3ad and other future modes. - * - * 2003/03/18 - Tsippy Mendelson <tsippy.mendelson at intel dot com> and - *		Shmulik Hen <shmulik.hen at intel dot com> - *	- Enable support of modes that need to use the unique mac address of - *	  each slave. - * - * 2003/03/18 - Tsippy Mendelson <tsippy.mendelson at intel dot com> and - *		Amir Noam <amir.noam at intel dot com> - *	- Moved driver's private data types to bonding.h - * - * 2003/03/18 - Amir Noam <amir.noam at intel dot com>, - *		Tsippy Mendelson <tsippy.mendelson at intel dot com> and - *		Shmulik Hen <shmulik.hen at intel dot com> - *	- Added support for IEEE 802.3ad Dynamic link aggregation mode. - * - * 2003/05/01 - Amir Noam <amir.noam at intel dot com> - *	- Added ABI version control to restore compatibility between - *	  new/old ifenslave and new/old bonding. - * - * 2003/12/01 - Shmulik Hen <shmulik.hen at intel dot com> - *	- Code cleanup and style changes - * - * 2005/05/05 - Jason Gabler <jygabler at lbl dot gov> - *      - added definitions for various XOR hashing policies - */ - -#ifndef _LINUX_IF_BONDING_H -#define _LINUX_IF_BONDING_H - -#include <linux/if.h> -#include <linux/types.h> -#include <linux/if_ether.h> - -/* userland - kernel ABI version (2003/05/08) */ -#define BOND_ABI_VERSION 2 - -/* - * We can remove these ioctl definitions in 2.5.  People should use the - * SIOC*** versions of them instead - */ -#define BOND_ENSLAVE_OLD		(SIOCDEVPRIVATE) -#define BOND_RELEASE_OLD		(SIOCDEVPRIVATE + 1) -#define BOND_SETHWADDR_OLD		(SIOCDEVPRIVATE + 2) -#define BOND_SLAVE_INFO_QUERY_OLD	(SIOCDEVPRIVATE + 11) -#define BOND_INFO_QUERY_OLD		(SIOCDEVPRIVATE + 12) -#define BOND_CHANGE_ACTIVE_OLD		(SIOCDEVPRIVATE + 13) - -#define BOND_CHECK_MII_STATUS	(SIOCGMIIPHY) - -#define BOND_MODE_ROUNDROBIN	0 -#define BOND_MODE_ACTIVEBACKUP	1 -#define BOND_MODE_XOR		2 -#define BOND_MODE_BROADCAST	3 -#define BOND_MODE_8023AD        4 -#define BOND_MODE_TLB           5 -#define BOND_MODE_ALB		6 /* TLB + RLB (receive load balancing) */ - -/* each slave's link has 4 states */ -#define BOND_LINK_UP    0           /* link is up and running */ -#define BOND_LINK_FAIL  1           /* link has just gone down */ -#define BOND_LINK_DOWN  2           /* link has been down for too long time */ -#define BOND_LINK_BACK  3           /* link is going back */ - -/* each slave has several states */ -#define BOND_STATE_ACTIVE       0   /* link is active */ -#define BOND_STATE_BACKUP       1   /* link is backup */ - -#define BOND_DEFAULT_MAX_BONDS  1   /* Default maximum number of devices to support */ - -#define BOND_DEFAULT_TX_QUEUES 16   /* Default number of tx queues per device */ - -#define BOND_DEFAULT_RESEND_IGMP	1 /* Default number of IGMP membership reports */ - -/* hashing types */ -#define BOND_XMIT_POLICY_LAYER2		0 /* layer 2 (MAC only), default */ -#define BOND_XMIT_POLICY_LAYER34	1 /* layer 3+4 (IP ^ (TCP || UDP)) */ -#define BOND_XMIT_POLICY_LAYER23	2 /* layer 2+3 (IP ^ MAC) */ - -typedef struct ifbond { -	__s32 bond_mode; -	__s32 num_slaves; -	__s32 miimon; -} ifbond; - -typedef struct ifslave { -	__s32 slave_id; /* Used as an IN param to the BOND_SLAVE_INFO_QUERY ioctl */ -	char slave_name[IFNAMSIZ]; -	__s8 link; -	__s8 state; -	__u32  link_failure_count; -} ifslave; - -struct ad_info { -	__u16 aggregator_id; -	__u16 ports; -	__u16 actor_key; -	__u16 partner_key; -	__u8 partner_system[ETH_ALEN]; -}; - -#endif /* _LINUX_IF_BONDING_H */ - -/* - * Local variables: - *  version-control: t - *  kept-new-versions: 5 - *  c-indent-level: 8 - *  c-basic-offset: 8 - *  tab-width: 8 - * End: - */ - diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h index dd3f2013964..1085ffeef95 100644 --- a/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h @@ -9,97 +9,12 @@   *	as published by the Free Software Foundation; either version   *	2 of the License, or (at your option) any later version.   */ -  #ifndef _LINUX_IF_BRIDGE_H  #define _LINUX_IF_BRIDGE_H -#include <linux/types.h> - -#define SYSFS_BRIDGE_ATTR	"bridge" -#define SYSFS_BRIDGE_FDB	"brforward" -#define SYSFS_BRIDGE_PORT_SUBDIR "brif" -#define SYSFS_BRIDGE_PORT_ATTR	"brport" -#define SYSFS_BRIDGE_PORT_LINK	"bridge" - -#define BRCTL_VERSION 1 - -#define BRCTL_GET_VERSION 0 -#define BRCTL_GET_BRIDGES 1 -#define BRCTL_ADD_BRIDGE 2 -#define BRCTL_DEL_BRIDGE 3 -#define BRCTL_ADD_IF 4 -#define BRCTL_DEL_IF 5 -#define BRCTL_GET_BRIDGE_INFO 6 -#define BRCTL_GET_PORT_LIST 7 -#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8 -#define BRCTL_SET_BRIDGE_HELLO_TIME 9 -#define BRCTL_SET_BRIDGE_MAX_AGE 10 -#define BRCTL_SET_AGEING_TIME 11 -#define BRCTL_SET_GC_INTERVAL 12 -#define BRCTL_GET_PORT_INFO 13 -#define BRCTL_SET_BRIDGE_STP_STATE 14 -#define BRCTL_SET_BRIDGE_PRIORITY 15 -#define BRCTL_SET_PORT_PRIORITY 16 -#define BRCTL_SET_PATH_COST 17 -#define BRCTL_GET_FDB_ENTRIES 18 - -#define BR_STATE_DISABLED 0 -#define BR_STATE_LISTENING 1 -#define BR_STATE_LEARNING 2 -#define BR_STATE_FORWARDING 3 -#define BR_STATE_BLOCKING 4 - -struct __bridge_info { -	__u64 designated_root; -	__u64 bridge_id; -	__u32 root_path_cost; -	__u32 max_age; -	__u32 hello_time; -	__u32 forward_delay; -	__u32 bridge_max_age; -	__u32 bridge_hello_time; -	__u32 bridge_forward_delay; -	__u8 topology_change; -	__u8 topology_change_detected; -	__u8 root_port; -	__u8 stp_enabled; -	__u32 ageing_time; -	__u32 gc_interval; -	__u32 hello_timer_value; -	__u32 tcn_timer_value; -	__u32 topology_change_timer_value; -	__u32 gc_timer_value; -}; - -struct __port_info { -	__u64 designated_root; -	__u64 designated_bridge; -	__u16 port_id; -	__u16 designated_port; -	__u32 path_cost; -	__u32 designated_cost; -	__u8 state; -	__u8 top_change_ack; -	__u8 config_pending; -	__u8 unused0; -	__u32 message_age_timer_value; -	__u32 forward_delay_timer_value; -	__u32 hold_timer_value; -}; - -struct __fdb_entry { -	__u8 mac_addr[6]; -	__u8 port_no; -	__u8 is_local; -	__u32 ageing_timer_value; -	__u8 port_hi; -	__u8 pad0; -	__u16 unused; -}; - -#ifdef __KERNEL__  #include <linux/netdevice.h> +#include <uapi/linux/if_bridge.h>  extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *)); @@ -107,5 +22,3 @@ typedef int br_should_route_hook_t(struct sk_buff *skb);  extern br_should_route_hook_t __rcu *br_should_route_hook;  #endif - -#endif diff --git a/include/linux/if_cablemodem.h b/include/linux/if_cablemodem.h deleted file mode 100644 index 9ca1007edd9..00000000000 --- a/include/linux/if_cablemodem.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _LINUX_CABLEMODEM_H_ -#define _LINUX_CABLEMODEM_H_ -/* - *		Author: Franco Venturi <fventuri@mediaone.net> - *		Copyright 1998 Franco Venturi - * - *		This program is free software; you can redistribute it - *		and/or  modify it under  the terms of  the GNU General - *		Public  License as  published  by  the  Free  Software - *		Foundation;  either  version 2 of the License, or  (at - *		your option) any later version. - */ - -/* some useful defines for sb1000.c e cmconfig.c - fv */ -#define SIOCGCMSTATS		SIOCDEVPRIVATE+0	/* get cable modem stats */ -#define SIOCGCMFIRMWARE		SIOCDEVPRIVATE+1	/* get cm firmware version */ -#define SIOCGCMFREQUENCY	SIOCDEVPRIVATE+2	/* get cable modem frequency */ -#define SIOCSCMFREQUENCY	SIOCDEVPRIVATE+3	/* set cable modem frequency */ -#define SIOCGCMPIDS			SIOCDEVPRIVATE+4	/* get cable modem PIDs */ -#define SIOCSCMPIDS			SIOCDEVPRIVATE+5	/* set cable modem PIDs */ - -#endif diff --git a/include/linux/if_eql.h b/include/linux/if_eql.h index 18a5d02a864..d984694c384 100644 --- a/include/linux/if_eql.h +++ b/include/linux/if_eql.h @@ -15,28 +15,13 @@   *    McLean VA 22101   *    Phone: 1-703-847-0040 ext 103   */ -  #ifndef _LINUX_IF_EQL_H  #define _LINUX_IF_EQL_H -#define EQL_DEFAULT_SLAVE_PRIORITY 28800 -#define EQL_DEFAULT_MAX_SLAVES     4 -#define EQL_DEFAULT_MTU            576 -#define EQL_DEFAULT_RESCHED_IVAL   HZ - -#define EQL_ENSLAVE     (SIOCDEVPRIVATE) -#define EQL_EMANCIPATE  (SIOCDEVPRIVATE + 1) - -#define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2) -#define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3) - -#define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4) -#define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5) - -#ifdef __KERNEL__  #include <linux/timer.h>  #include <linux/spinlock.h> +#include <uapi/linux/if_eql.h>  typedef struct slave {  	struct list_head	list; @@ -61,23 +46,4 @@ typedef struct equalizer {  	struct timer_list	timer;  } equalizer_t;   -#endif /* __KERNEL__ */ - -typedef struct master_config { -	char	master_name[16]; -	int	max_slaves; -	int	min_slaves; -} master_config_t; - -typedef struct slave_config { -	char	slave_name[16]; -	long	priority; -} slave_config_t; - -typedef struct slaving_request { -	char	slave_name[16]; -	long	priority; -} slaving_request_t; - -  #endif /* _LINUX_EQL_H */ diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h index 167ce5b363d..12b4d55a02a 100644 --- a/include/linux/if_ether.h +++ b/include/linux/if_ether.h @@ -17,122 +17,11 @@   *		as published by the Free Software Foundation; either version   *		2 of the License, or (at your option) any later version.   */ -  #ifndef _LINUX_IF_ETHER_H  #define _LINUX_IF_ETHER_H -#include <linux/types.h> - -/* - *	IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble - *	and FCS/CRC (frame check sequence). - */ - -#define ETH_ALEN	6		/* Octets in one ethernet addr	 */ -#define ETH_HLEN	14		/* Total octets in header.	 */ -#define ETH_ZLEN	60		/* Min. octets in frame sans FCS */ -#define ETH_DATA_LEN	1500		/* Max. octets in payload	 */ -#define ETH_FRAME_LEN	1514		/* Max. octets in frame sans FCS */ -#define ETH_FCS_LEN	4		/* Octets in the FCS		 */ - -/* - *	These are the defined Ethernet Protocol ID's. - */ - -#define ETH_P_LOOP	0x0060		/* Ethernet Loopback packet	*/ -#define ETH_P_PUP	0x0200		/* Xerox PUP packet		*/ -#define ETH_P_PUPAT	0x0201		/* Xerox PUP Addr Trans packet	*/ -#define ETH_P_IP	0x0800		/* Internet Protocol packet	*/ -#define ETH_P_X25	0x0805		/* CCITT X.25			*/ -#define ETH_P_ARP	0x0806		/* Address Resolution packet	*/ -#define	ETH_P_BPQ	0x08FF		/* G8BPQ AX.25 Ethernet Packet	[ NOT AN OFFICIALLY REGISTERED ID ] */ -#define ETH_P_IEEEPUP	0x0a00		/* Xerox IEEE802.3 PUP packet */ -#define ETH_P_IEEEPUPAT	0x0a01		/* Xerox IEEE802.3 PUP Addr Trans packet */ -#define ETH_P_DEC       0x6000          /* DEC Assigned proto           */ -#define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */ -#define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */ -#define ETH_P_DNA_RT    0x6003          /* DEC DNA Routing              */ -#define ETH_P_LAT       0x6004          /* DEC LAT                      */ -#define ETH_P_DIAG      0x6005          /* DEC Diagnostics              */ -#define ETH_P_CUST      0x6006          /* DEC Customer use             */ -#define ETH_P_SCA       0x6007          /* DEC Systems Comms Arch       */ -#define ETH_P_TEB	0x6558		/* Trans Ether Bridging		*/ -#define ETH_P_RARP      0x8035		/* Reverse Addr Res packet	*/ -#define ETH_P_ATALK	0x809B		/* Appletalk DDP		*/ -#define ETH_P_AARP	0x80F3		/* Appletalk AARP		*/ -#define ETH_P_8021Q	0x8100          /* 802.1Q VLAN Extended Header  */ -#define ETH_P_IPX	0x8137		/* IPX over DIX			*/ -#define ETH_P_IPV6	0x86DD		/* IPv6 over bluebook		*/ -#define ETH_P_PAUSE	0x8808		/* IEEE Pause frames. See 802.3 31B */ -#define ETH_P_SLOW	0x8809		/* Slow Protocol. See 802.3ad 43B */ -#define ETH_P_WCCP	0x883E		/* Web-cache coordination protocol -					 * defined in draft-wilson-wrec-wccp-v2-00.txt */ -#define ETH_P_PPP_DISC	0x8863		/* PPPoE discovery messages     */ -#define ETH_P_PPP_SES	0x8864		/* PPPoE session messages	*/ -#define ETH_P_MPLS_UC	0x8847		/* MPLS Unicast traffic		*/ -#define ETH_P_MPLS_MC	0x8848		/* MPLS Multicast traffic	*/ -#define ETH_P_ATMMPOA	0x884c		/* MultiProtocol Over ATM	*/ -#define ETH_P_LINK_CTL	0x886c		/* HPNA, wlan link local tunnel */ -#define ETH_P_ATMFATE	0x8884		/* Frame-based ATM Transport -					 * over Ethernet -					 */ -#define ETH_P_PAE	0x888E		/* Port Access Entity (IEEE 802.1X) */ -#define ETH_P_AOE	0x88A2		/* ATA over Ethernet		*/ -#define ETH_P_8021AD	0x88A8          /* 802.1ad Service VLAN		*/ -#define ETH_P_802_EX1	0x88B5		/* 802.1 Local Experimental 1.  */ -#define ETH_P_TIPC	0x88CA		/* TIPC 			*/ -#define ETH_P_8021AH	0x88E7          /* 802.1ah Backbone Service Tag */ -#define ETH_P_1588	0x88F7		/* IEEE 1588 Timesync */ -#define ETH_P_FCOE	0x8906		/* Fibre Channel over Ethernet  */ -#define ETH_P_TDLS	0x890D          /* TDLS */ -#define ETH_P_FIP	0x8914		/* FCoE Initialization Protocol */ -#define ETH_P_QINQ1	0x9100		/* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ -#define ETH_P_QINQ2	0x9200		/* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ -#define ETH_P_QINQ3	0x9300		/* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ -#define ETH_P_EDSA	0xDADA		/* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ -#define ETH_P_AF_IUCV   0xFBFB		/* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ - -/* - *	Non DIX types. Won't clash for 1500 types. - */ - -#define ETH_P_802_3	0x0001		/* Dummy type for 802.3 frames  */ -#define ETH_P_AX25	0x0002		/* Dummy protocol id for AX.25  */ -#define ETH_P_ALL	0x0003		/* Every packet (be careful!!!) */ -#define ETH_P_802_2	0x0004		/* 802.2 frames 		*/ -#define ETH_P_SNAP	0x0005		/* Internal only		*/ -#define ETH_P_DDCMP     0x0006          /* DEC DDCMP: Internal only     */ -#define ETH_P_WAN_PPP   0x0007          /* Dummy type for WAN PPP frames*/ -#define ETH_P_PPP_MP    0x0008          /* Dummy type for PPP MP frames */ -#define ETH_P_LOCALTALK 0x0009		/* Localtalk pseudo type 	*/ -#define ETH_P_CAN	0x000C		/* CAN: Controller Area Network */ -#define ETH_P_CANFD	0x000D		/* CANFD: CAN flexible data rate*/ -#define ETH_P_PPPTALK	0x0010		/* Dummy type for Atalk over PPP*/ -#define ETH_P_TR_802_2	0x0011		/* 802.2 frames 		*/ -#define ETH_P_MOBITEX	0x0015		/* Mobitex (kaz@cafe.net)	*/ -#define ETH_P_CONTROL	0x0016		/* Card specific control frames */ -#define ETH_P_IRDA	0x0017		/* Linux-IrDA			*/ -#define ETH_P_ECONET	0x0018		/* Acorn Econet			*/ -#define ETH_P_HDLC	0x0019		/* HDLC frames			*/ -#define ETH_P_ARCNET	0x001A		/* 1A for ArcNet :-)            */ -#define ETH_P_DSA	0x001B		/* Distributed Switch Arch.	*/ -#define ETH_P_TRAILER	0x001C		/* Trailer switch tagging	*/ -#define ETH_P_PHONET	0x00F5		/* Nokia Phonet frames          */ -#define ETH_P_IEEE802154 0x00F6		/* IEEE802.15.4 frame		*/ -#define ETH_P_CAIF	0x00F7		/* ST-Ericsson CAIF protocol	*/ - -/* - *	This is an Ethernet frame header. - */ - -struct ethhdr { -	unsigned char	h_dest[ETH_ALEN];	/* destination eth addr	*/ -	unsigned char	h_source[ETH_ALEN];	/* source ether addr	*/ -	__be16		h_proto;		/* packet type ID field	*/ -} __attribute__((packed)); - -#ifdef __KERNEL__  #include <linux/skbuff.h> +#include <uapi/linux/if_ether.h>  static inline struct ethhdr *eth_hdr(const struct sk_buff *skb)  { @@ -144,6 +33,4 @@ int eth_header_parse(const struct sk_buff *skb, unsigned char *haddr);  int mac_pton(const char *s, u8 *mac);  extern ssize_t sysfs_format_mac(char *buf, const unsigned char *addr, int len); -#endif -  #endif	/* _LINUX_IF_ETHER_H */ diff --git a/include/linux/if_fc.h b/include/linux/if_fc.h deleted file mode 100644 index 6ed7f1bf35c..00000000000 --- a/include/linux/if_fc.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * INET		An implementation of the TCP/IP protocol suite for the LINUX - *		operating system.  INET is implemented using the  BSD Socket - *		interface as the means of communication with the user level. - * - *		Global definitions for Fibre Channel. - * - * Version:	@(#)if_fc.h	0.0	11/20/98 - * - * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> - *		Donald Becker, <becker@super.org> - *    Peter De Schrijver, <stud11@cc4.kuleuven.ac.be> - *	  Vineet Abraham, <vma@iol.unh.edu> - * - *		This program is free software; you can redistribute it and/or - *		modify it under the terms of the GNU General Public License - *		as published by the Free Software Foundation; either version - *		2 of the License, or (at your option) any later version. - */ -#ifndef _LINUX_IF_FC_H -#define _LINUX_IF_FC_H - -#include <linux/types.h> - -#define FC_ALEN	6		/* Octets in one ethernet addr	 */ -#define FC_HLEN   (sizeof(struct fch_hdr)+sizeof(struct fcllc)) -#define FC_ID_LEN 3		/* Octets in a Fibre Channel Address */ - -/* LLC and SNAP constants */ -#define EXTENDED_SAP 0xAA -#define UI_CMD       0x03 - -/* This is NOT the Fibre Channel frame header. The FC frame header is - *  constructed in the driver as the Tachyon needs certain fields in - *  certains positions. So, it can't be generalized here.*/ - -struct fch_hdr { -	__u8  daddr[FC_ALEN];		/* destination address */ -	__u8  saddr[FC_ALEN];		/* source address */ -}; - -/* This is a Fibre Channel LLC structure */ -struct fcllc { -	__u8  dsap;			/* destination SAP */ -	__u8  ssap;			/* source SAP */ -	__u8  llc;			/* LLC control field */ -	__u8  protid[3];		/* protocol id */ -	__be16 ethertype;		/* ether type field */ -}; - -#endif	/* _LINUX_IF_FC_H */ diff --git a/include/linux/if_fddi.h b/include/linux/if_fddi.h index e6dc11e7f9a..f5550b3eeea 100644 --- a/include/linux/if_fddi.h +++ b/include/linux/if_fddi.h @@ -24,84 +24,8 @@  #ifndef _LINUX_IF_FDDI_H  #define _LINUX_IF_FDDI_H -#include <linux/types.h> - -/* - *  Define max and min legal sizes.  The frame sizes do not include - *  4 byte FCS/CRC (frame check sequence). - */ -#define FDDI_K_ALEN			6		/* Octets in one FDDI address */ -#define FDDI_K_8022_HLEN	16		/* Total octets in 802.2 header */ -#define FDDI_K_SNAP_HLEN	21		/* Total octets in 802.2 SNAP header */ -#define FDDI_K_8022_ZLEN	16		/* Min octets in 802.2 frame sans FCS */ -#define FDDI_K_SNAP_ZLEN	21		/* Min octets in 802.2 SNAP frame sans FCS */ -#define FDDI_K_8022_DLEN	4475	/* Max octets in 802.2 payload */ -#define FDDI_K_SNAP_DLEN	4470	/* Max octets in 802.2 SNAP payload */ -#define FDDI_K_LLC_ZLEN		13		/* Min octets in LLC frame sans FCS */ -#define FDDI_K_LLC_LEN		4491	/* Max octets in LLC frame sans FCS */ - -/* Define FDDI Frame Control (FC) Byte values */ -#define FDDI_FC_K_VOID					0x00	 -#define FDDI_FC_K_NON_RESTRICTED_TOKEN	0x80	 -#define FDDI_FC_K_RESTRICTED_TOKEN		0xC0	 -#define FDDI_FC_K_SMT_MIN				0x41 -#define FDDI_FC_K_SMT_MAX		   		0x4F -#define FDDI_FC_K_MAC_MIN				0xC1 -#define FDDI_FC_K_MAC_MAX		  		0xCF	 -#define FDDI_FC_K_ASYNC_LLC_MIN			0x50 -#define FDDI_FC_K_ASYNC_LLC_DEF			0x54 -#define FDDI_FC_K_ASYNC_LLC_MAX			0x5F -#define FDDI_FC_K_SYNC_LLC_MIN			0xD0 -#define FDDI_FC_K_SYNC_LLC_MAX			0xD7 -#define FDDI_FC_K_IMPLEMENTOR_MIN		0x60 -#define FDDI_FC_K_IMPLEMENTOR_MAX  		0x6F -#define FDDI_FC_K_RESERVED_MIN			0x70 -#define FDDI_FC_K_RESERVED_MAX			0x7F - -/* Define LLC and SNAP constants */ -#define FDDI_EXTENDED_SAP	0xAA -#define FDDI_UI_CMD			0x03 - -/* Define 802.2 Type 1 header */ -struct fddi_8022_1_hdr { -	__u8	dsap;					/* destination service access point */ -	__u8	ssap;					/* source service access point */ -	__u8	ctrl;					/* control byte #1 */ -} __attribute__((packed)); - -/* Define 802.2 Type 2 header */ -struct fddi_8022_2_hdr { -	__u8	dsap;					/* destination service access point */ -	__u8	ssap;					/* source service access point */ -	__u8	ctrl_1;					/* control byte #1 */ -	__u8	ctrl_2;					/* control byte #2 */ -} __attribute__((packed)); - -/* Define 802.2 SNAP header */ -#define FDDI_K_OUI_LEN	3 -struct fddi_snap_hdr { -	__u8	dsap;					/* always 0xAA */ -	__u8	ssap;					/* always 0xAA */ -	__u8	ctrl;					/* always 0x03 */ -	__u8	oui[FDDI_K_OUI_LEN];	/* organizational universal id */ -	__be16	ethertype;				/* packet type ID field */ -} __attribute__((packed)); - -/* Define FDDI LLC frame header */ -struct fddihdr { -	__u8	fc;						/* frame control */ -	__u8	daddr[FDDI_K_ALEN];		/* destination address */ -	__u8	saddr[FDDI_K_ALEN];		/* source address */ -	union -		{ -		struct fddi_8022_1_hdr		llc_8022_1; -		struct fddi_8022_2_hdr		llc_8022_2; -		struct fddi_snap_hdr		llc_snap; -		} hdr; -} __attribute__((packed)); - -#ifdef __KERNEL__  #include <linux/netdevice.h> +#include <uapi/linux/if_fddi.h>  /* Define FDDI statistics structure */  struct fddi_statistics { @@ -194,6 +118,4 @@ struct fddi_statistics {  	__u32	port_ler_flag[2];  	__u32	port_hardware_present[2];  }; -#endif /* __KERNEL__ */ -  #endif	/* _LINUX_IF_FDDI_H */ diff --git a/include/linux/if_frad.h b/include/linux/if_frad.h index 191ee0869bc..4316aa173dd 100644 --- a/include/linux/if_frad.h +++ b/include/linux/if_frad.h @@ -20,105 +20,11 @@   *		as published by the Free Software Foundation; either version   *		2 of the License, or (at your option) any later version.   */ -  #ifndef _FRAD_H_  #define _FRAD_H_ -#include <linux/if.h> - -/* Structures and constants associated with the DLCI device driver */ - -struct dlci_add -{ -   char  devname[IFNAMSIZ]; -   short dlci; -}; - -#define DLCI_GET_CONF	(SIOCDEVPRIVATE + 2) -#define DLCI_SET_CONF	(SIOCDEVPRIVATE + 3) - -/*  - * These are related to the Sangoma SDLA and should remain in order.  - * Code within the SDLA module is based on the specifics of this  - * structure.  Change at your own peril. - */ -struct dlci_conf { -   short flags; -   short CIR_fwd; -   short Bc_fwd; -   short Be_fwd; -   short CIR_bwd; -   short Bc_bwd; -   short Be_bwd;  - -/* these are part of the status read */ -   short Tc_fwd; -   short Tc_bwd; -   short Tf_max; -   short Tb_max; - -/* add any new fields here above is a mirror of sdla_dlci_conf */ -}; - -#define DLCI_GET_SLAVE	(SIOCDEVPRIVATE + 4) - -/* configuration flags for DLCI */ -#define DLCI_IGNORE_CIR_OUT	0x0001 -#define DLCI_ACCOUNT_CIR_IN	0x0002 -#define DLCI_BUFFER_IF		0x0008 - -#define DLCI_VALID_FLAGS	0x000B +#include <uapi/linux/if_frad.h> -/* defines for the actual Frame Relay hardware */ -#define FRAD_GET_CONF	(SIOCDEVPRIVATE) -#define FRAD_SET_CONF	(SIOCDEVPRIVATE + 1) - -#define FRAD_LAST_IOCTL	FRAD_SET_CONF - -/* - * Based on the setup for the Sangoma SDLA.  If changes are  - * necessary to this structure, a routine will need to be  - * added to that module to copy fields. - */ -struct frad_conf  -{ -   short station; -   short flags; -   short kbaud; -   short clocking; -   short mtu; -   short T391; -   short T392; -   short N391; -   short N392; -   short N393; -   short CIR_fwd; -   short Bc_fwd; -   short Be_fwd; -   short CIR_bwd; -   short Bc_bwd; -   short Be_bwd; - -/* Add new fields here, above is a mirror of the sdla_conf */ - -}; - -#define FRAD_STATION_CPE	0x0000 -#define FRAD_STATION_NODE	0x0001 - -#define FRAD_TX_IGNORE_CIR	0x0001 -#define FRAD_RX_ACCOUNT_CIR	0x0002 -#define FRAD_DROP_ABORTED	0x0004 -#define FRAD_BUFFERIF		0x0008 -#define FRAD_STATS		0x0010 -#define FRAD_MCI		0x0100 -#define FRAD_AUTODLCI		0x8000 -#define FRAD_VALID_FLAGS	0x811F - -#define FRAD_CLOCK_INT		0x0001 -#define FRAD_CLOCK_EXT		0x0000 - -#ifdef __KERNEL__  #if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE) @@ -188,6 +94,4 @@ struct frad_local  extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *)); -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/if_hippi.h b/include/linux/if_hippi.h deleted file mode 100644 index cdc049f1829..00000000000 --- a/include/linux/if_hippi.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * INET		An implementation of the TCP/IP protocol suite for the LINUX - *		operating system.  INET is implemented using the  BSD Socket - *		interface as the means of communication with the user level. - * - *		Global definitions for the HIPPI interface. - * - * Version:	@(#)if_hippi.h	1.0.0	05/26/97 - * - * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> - *		Donald Becker, <becker@super.org> - *		Alan Cox, <alan@lxorguk.ukuu.org.uk> - *		Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk> - *		Jes Sorensen, <Jes.Sorensen@cern.ch> - * - *		This program is free software; you can redistribute it and/or - *		modify it under the terms of the GNU General Public License - *		as published by the Free Software Foundation; either version - *		2 of the License, or (at your option) any later version. - */ -  -#ifndef _LINUX_IF_HIPPI_H -#define _LINUX_IF_HIPPI_H - -#include <linux/types.h> -#include <asm/byteorder.h> - -/* - *	HIPPI magic constants. - */ - -#define HIPPI_ALEN	6		/* Bytes in one HIPPI hw-addr	   */ -#define HIPPI_HLEN	sizeof(struct hippi_hdr) -#define HIPPI_ZLEN	0		/* Min. bytes in frame without FCS */ -#define HIPPI_DATA_LEN	65280		/* Max. bytes in payload	   */ -#define HIPPI_FRAME_LEN	(HIPPI_DATA_LEN + HIPPI_HLEN) -					/* Max. bytes in frame without FCS */ - -/* - * Define LLC and SNAP constants. - */ -#define HIPPI_EXTENDED_SAP	0xAA -#define HIPPI_UI_CMD		0x03 - - -/* - *	Do we need to list some sort of ID's here? - */ - -/* - *	HIPPI statistics collection data.  - */ -  -struct hipnet_statistics { -	int	rx_packets;		/* total packets received	*/ -	int	tx_packets;		/* total packets transmitted	*/ -	int	rx_errors;		/* bad packets received		*/ -	int	tx_errors;		/* packet transmit problems	*/ -	int	rx_dropped;		/* no space in linux buffers	*/ -	int	tx_dropped;		/* no space available in linux	*/ - -	/* detailed rx_errors: */ -	int	rx_length_errors; -	int	rx_over_errors;		/* receiver ring buff overflow	*/ -	int	rx_crc_errors;		/* recved pkt with crc error	*/ -	int	rx_frame_errors;	/* recv'd frame alignment error */ -	int	rx_fifo_errors;		/* recv'r fifo overrun		*/ -	int	rx_missed_errors;	/* receiver missed packet	*/ - -	/* detailed tx_errors */ -	int	tx_aborted_errors; -	int	tx_carrier_errors; -	int	tx_fifo_errors; -	int	tx_heartbeat_errors; -	int	tx_window_errors; -}; - - -struct hippi_fp_hdr { -#if 0 -	__u8		ulp;				/* must contain 4 */ -#if defined (__BIG_ENDIAN_BITFIELD) -	__u8		d1_data_present:1;		/* must be 1 */ -	__u8		start_d2_burst_boundary:1;	/* must be zero */ -	__u8		reserved:6;			/* must be zero */ -#if 0 -	__u16		reserved1:5; -	__u16		d1_area_size:8;			/* must be 3 */ -	__u16		d2_offset:3;			/* must be zero */ -#endif -#elif defined(__LITTLE_ENDIAN_BITFIELD) -	__u8		reserved:6;			/* must be zero */ -	__u8	 	start_d2_burst_boundary:1;	/* must be zero */ -	__u8		d1_data_present:1;		/* must be 1 */ -#if 0 -	__u16		d2_offset:3;			/* must be zero */ -	__u16		d1_area_size:8;			/* must be 3 */ -	__u16		reserved1:5;			/* must be zero */ -#endif -#else -#error	"Please fix <asm/byteorder.h>" -#endif -#else -	__be32		fixed; -#endif -	__be32		d2_size; -} __attribute__((packed)); - -struct hippi_le_hdr { -#if defined (__BIG_ENDIAN_BITFIELD) -	__u8		fc:3; -	__u8		double_wide:1; -	__u8		message_type:4; -#elif defined(__LITTLE_ENDIAN_BITFIELD) -	__u8		message_type:4; -	__u8		double_wide:1; -	__u8		fc:3; -#endif -	__u8		dest_switch_addr[3]; -#if defined (__BIG_ENDIAN_BITFIELD) -	__u8		dest_addr_type:4, -			src_addr_type:4; -#elif defined(__LITTLE_ENDIAN_BITFIELD) -	__u8		src_addr_type:4, -			dest_addr_type:4; -#endif -	__u8		src_switch_addr[3]; -	__u16		reserved; -	__u8		daddr[HIPPI_ALEN]; -	__u16		locally_administered; -	__u8		saddr[HIPPI_ALEN]; -} __attribute__((packed)); - -#define HIPPI_OUI_LEN	3 -/* - * Looks like the dsap and ssap fields have been swapped by mistake in - * RFC 2067 "IP over HIPPI". - */ -struct hippi_snap_hdr { -	__u8	dsap;			/* always 0xAA */ -	__u8	ssap;			/* always 0xAA */ -	__u8	ctrl;			/* always 0x03 */ -	__u8	oui[HIPPI_OUI_LEN];	/* organizational universal id (zero)*/ -	__be16	ethertype;		/* packet type ID field */ -} __attribute__((packed)); - -struct hippi_hdr { -	struct hippi_fp_hdr	fp; -	struct hippi_le_hdr	le; -	struct hippi_snap_hdr	snap; -} __attribute__((packed)); - -#endif	/* _LINUX_IF_HIPPI_H */ diff --git a/include/linux/if_infiniband.h b/include/linux/if_infiniband.h deleted file mode 100644 index 7d958475d4a..00000000000 --- a/include/linux/if_infiniband.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * This software is available to you under a choice of one of two - * licenses.  You may choose to be licensed under the terms of the GNU - * General Public License (GPL) Version 2, available at - * <http://www.fsf.org/copyleft/gpl.html>, or the OpenIB.org BSD - * license, available in the LICENSE.TXT file accompanying this - * software.  These details are also available at - * <http://www.openfabrics.org/software_license.htm>. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Copyright (c) 2004 Topspin Communications.  All rights reserved. - * - * $Id$ - */ - -#ifndef _LINUX_IF_INFINIBAND_H -#define _LINUX_IF_INFINIBAND_H - -#define INFINIBAND_ALEN		20	/* Octets in IPoIB HW addr	*/ - -#endif /* _LINUX_IF_INFINIBAND_H */ diff --git a/include/linux/if_link.h b/include/linux/if_link.h index 3265f332998..c3f817c3eb4 100644 --- a/include/linux/if_link.h +++ b/include/linux/if_link.h @@ -1,341 +1,8 @@  #ifndef _LINUX_IF_LINK_H  #define _LINUX_IF_LINK_H -#include <linux/types.h> -#include <linux/netlink.h> +#include <uapi/linux/if_link.h> -/* This struct should be in sync with struct rtnl_link_stats64 */ -struct rtnl_link_stats { -	__u32	rx_packets;		/* total packets received	*/ -	__u32	tx_packets;		/* total packets transmitted	*/ -	__u32	rx_bytes;		/* total bytes received 	*/ -	__u32	tx_bytes;		/* total bytes transmitted	*/ -	__u32	rx_errors;		/* bad packets received		*/ -	__u32	tx_errors;		/* packet transmit problems	*/ -	__u32	rx_dropped;		/* no space in linux buffers	*/ -	__u32	tx_dropped;		/* no space available in linux	*/ -	__u32	multicast;		/* multicast packets received	*/ -	__u32	collisions; - -	/* detailed rx_errors: */ -	__u32	rx_length_errors; -	__u32	rx_over_errors;		/* receiver ring buff overflow	*/ -	__u32	rx_crc_errors;		/* recved pkt with crc error	*/ -	__u32	rx_frame_errors;	/* recv'd frame alignment error */ -	__u32	rx_fifo_errors;		/* recv'r fifo overrun		*/ -	__u32	rx_missed_errors;	/* receiver missed packet	*/ - -	/* detailed tx_errors */ -	__u32	tx_aborted_errors; -	__u32	tx_carrier_errors; -	__u32	tx_fifo_errors; -	__u32	tx_heartbeat_errors; -	__u32	tx_window_errors; - -	/* for cslip etc */ -	__u32	rx_compressed; -	__u32	tx_compressed; -}; - -/* The main device statistics structure */ -struct rtnl_link_stats64 { -	__u64	rx_packets;		/* total packets received	*/ -	__u64	tx_packets;		/* total packets transmitted	*/ -	__u64	rx_bytes;		/* total bytes received 	*/ -	__u64	tx_bytes;		/* total bytes transmitted	*/ -	__u64	rx_errors;		/* bad packets received		*/ -	__u64	tx_errors;		/* packet transmit problems	*/ -	__u64	rx_dropped;		/* no space in linux buffers	*/ -	__u64	tx_dropped;		/* no space available in linux	*/ -	__u64	multicast;		/* multicast packets received	*/ -	__u64	collisions; - -	/* detailed rx_errors: */ -	__u64	rx_length_errors; -	__u64	rx_over_errors;		/* receiver ring buff overflow	*/ -	__u64	rx_crc_errors;		/* recved pkt with crc error	*/ -	__u64	rx_frame_errors;	/* recv'd frame alignment error */ -	__u64	rx_fifo_errors;		/* recv'r fifo overrun		*/ -	__u64	rx_missed_errors;	/* receiver missed packet	*/ - -	/* detailed tx_errors */ -	__u64	tx_aborted_errors; -	__u64	tx_carrier_errors; -	__u64	tx_fifo_errors; -	__u64	tx_heartbeat_errors; -	__u64	tx_window_errors; - -	/* for cslip etc */ -	__u64	rx_compressed; -	__u64	tx_compressed; -}; - -/* The struct should be in sync with struct ifmap */ -struct rtnl_link_ifmap { -	__u64	mem_start; -	__u64	mem_end; -	__u64	base_addr; -	__u16	irq; -	__u8	dma; -	__u8	port; -}; - -/* - * IFLA_AF_SPEC - *   Contains nested attributes for address family specific attributes. - *   Each address family may create a attribute with the address family - *   number as type and create its own attribute structure in it. - * - *   Example: - *   [IFLA_AF_SPEC] = { - *       [AF_INET] = { - *           [IFLA_INET_CONF] = ..., - *       }, - *       [AF_INET6] = { - *           [IFLA_INET6_FLAGS] = ..., - *           [IFLA_INET6_CONF] = ..., - *       } - *   } - */ - -enum { -	IFLA_UNSPEC, -	IFLA_ADDRESS, -	IFLA_BROADCAST, -	IFLA_IFNAME, -	IFLA_MTU, -	IFLA_LINK, -	IFLA_QDISC, -	IFLA_STATS, -	IFLA_COST, -#define IFLA_COST IFLA_COST -	IFLA_PRIORITY, -#define IFLA_PRIORITY IFLA_PRIORITY -	IFLA_MASTER, -#define IFLA_MASTER IFLA_MASTER -	IFLA_WIRELESS,		/* Wireless Extension event - see wireless.h */ -#define IFLA_WIRELESS IFLA_WIRELESS -	IFLA_PROTINFO,		/* Protocol specific information for a link */ -#define IFLA_PROTINFO IFLA_PROTINFO -	IFLA_TXQLEN, -#define IFLA_TXQLEN IFLA_TXQLEN -	IFLA_MAP, -#define IFLA_MAP IFLA_MAP -	IFLA_WEIGHT, -#define IFLA_WEIGHT IFLA_WEIGHT -	IFLA_OPERSTATE, -	IFLA_LINKMODE, -	IFLA_LINKINFO, -#define IFLA_LINKINFO IFLA_LINKINFO -	IFLA_NET_NS_PID, -	IFLA_IFALIAS, -	IFLA_NUM_VF,		/* Number of VFs if device is SR-IOV PF */ -	IFLA_VFINFO_LIST, -	IFLA_STATS64, -	IFLA_VF_PORTS, -	IFLA_PORT_SELF, -	IFLA_AF_SPEC, -	IFLA_GROUP,		/* Group the device belongs to */ -	IFLA_NET_NS_FD, -	IFLA_EXT_MASK,		/* Extended info mask, VFs, etc */ -	IFLA_PROMISCUITY,	/* Promiscuity count: > 0 means acts PROMISC */ -#define IFLA_PROMISCUITY IFLA_PROMISCUITY -	IFLA_NUM_TX_QUEUES, -	IFLA_NUM_RX_QUEUES, -	__IFLA_MAX -}; - - -#define IFLA_MAX (__IFLA_MAX - 1) - -/* backwards compatibility for userspace */ -#ifndef __KERNEL__ -#define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) -#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg)) -#endif - -enum { -	IFLA_INET_UNSPEC, -	IFLA_INET_CONF, -	__IFLA_INET_MAX, -}; - -#define IFLA_INET_MAX (__IFLA_INET_MAX - 1) - -/* ifi_flags. - -   IFF_* flags. - -   The only change is: -   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are -   more not changeable by user. They describe link media -   characteristics and set by device driver. - -   Comments: -   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid -   - If neither of these three flags are set; -     the interface is NBMA. - -   - IFF_MULTICAST does not mean anything special: -   multicasts can be used on all not-NBMA links. -   IFF_MULTICAST means that this media uses special encapsulation -   for multicast frames. Apparently, all IFF_POINTOPOINT and -   IFF_BROADCAST devices are able to use multicasts too. - */ - -/* IFLA_LINK. -   For usual devices it is equal ifi_index. -   If it is a "virtual interface" (f.e. tunnel), ifi_link -   can point to real physical interface (f.e. for bandwidth calculations), -   or maybe 0, what means, that real media is unknown (usual -   for IPIP tunnels, when route to endpoint is allowed to change) - */ - -/* Subtype attributes for IFLA_PROTINFO */ -enum { -	IFLA_INET6_UNSPEC, -	IFLA_INET6_FLAGS,	/* link flags			*/ -	IFLA_INET6_CONF,	/* sysctl parameters		*/ -	IFLA_INET6_STATS,	/* statistics			*/ -	IFLA_INET6_MCAST,	/* MC things. What of them?	*/ -	IFLA_INET6_CACHEINFO,	/* time values and max reasm size */ -	IFLA_INET6_ICMP6STATS,	/* statistics (icmpv6)		*/ -	__IFLA_INET6_MAX -}; - -#define IFLA_INET6_MAX	(__IFLA_INET6_MAX - 1) - -struct ifla_cacheinfo { -	__u32	max_reasm_len; -	__u32	tstamp;		/* ipv6InterfaceTable updated timestamp */ -	__u32	reachable_time; -	__u32	retrans_time; -}; - -enum { -	IFLA_INFO_UNSPEC, -	IFLA_INFO_KIND, -	IFLA_INFO_DATA, -	IFLA_INFO_XSTATS, -	__IFLA_INFO_MAX, -}; - -#define IFLA_INFO_MAX	(__IFLA_INFO_MAX - 1) - -/* VLAN section */ - -enum { -	IFLA_VLAN_UNSPEC, -	IFLA_VLAN_ID, -	IFLA_VLAN_FLAGS, -	IFLA_VLAN_EGRESS_QOS, -	IFLA_VLAN_INGRESS_QOS, -	__IFLA_VLAN_MAX, -}; - -#define IFLA_VLAN_MAX	(__IFLA_VLAN_MAX - 1) - -struct ifla_vlan_flags { -	__u32	flags; -	__u32	mask; -}; - -enum { -	IFLA_VLAN_QOS_UNSPEC, -	IFLA_VLAN_QOS_MAPPING, -	__IFLA_VLAN_QOS_MAX -}; - -#define IFLA_VLAN_QOS_MAX	(__IFLA_VLAN_QOS_MAX - 1) - -struct ifla_vlan_qos_mapping { -	__u32 from; -	__u32 to; -}; - -/* MACVLAN section */ -enum { -	IFLA_MACVLAN_UNSPEC, -	IFLA_MACVLAN_MODE, -	IFLA_MACVLAN_FLAGS, -	__IFLA_MACVLAN_MAX, -}; - -#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1) - -enum macvlan_mode { -	MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */ -	MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */ -	MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */ -	MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */ -}; - -#define MACVLAN_FLAG_NOPROMISC	1 - -/* VXLAN section */ -enum { -	IFLA_VXLAN_UNSPEC, -	IFLA_VXLAN_ID, -	IFLA_VXLAN_GROUP, -	IFLA_VXLAN_LINK, -	IFLA_VXLAN_LOCAL, -	IFLA_VXLAN_TTL, -	IFLA_VXLAN_TOS, -	IFLA_VXLAN_LEARNING, -	IFLA_VXLAN_AGEING, -	IFLA_VXLAN_LIMIT, -	IFLA_VXLAN_PORT_RANGE, -	__IFLA_VXLAN_MAX -}; -#define IFLA_VXLAN_MAX	(__IFLA_VXLAN_MAX - 1) - -struct ifla_vxlan_port_range { -	__be16	low; -	__be16	high; -}; - -/* SR-IOV virtual function management section */ - -enum { -	IFLA_VF_INFO_UNSPEC, -	IFLA_VF_INFO, -	__IFLA_VF_INFO_MAX, -}; - -#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1) - -enum { -	IFLA_VF_UNSPEC, -	IFLA_VF_MAC,		/* Hardware queue specific attributes */ -	IFLA_VF_VLAN, -	IFLA_VF_TX_RATE,	/* TX Bandwidth Allocation */ -	IFLA_VF_SPOOFCHK,	/* Spoof Checking on/off switch */ -	__IFLA_VF_MAX, -}; - -#define IFLA_VF_MAX (__IFLA_VF_MAX - 1) - -struct ifla_vf_mac { -	__u32 vf; -	__u8 mac[32]; /* MAX_ADDR_LEN */ -}; - -struct ifla_vf_vlan { -	__u32 vf; -	__u32 vlan; /* 0 - 4095, 0 disables VLAN filter */ -	__u32 qos; -}; - -struct ifla_vf_tx_rate { -	__u32 vf; -	__u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */ -}; - -struct ifla_vf_spoofchk { -	__u32 vf; -	__u32 setting; -}; -#ifdef __KERNEL__  /* We don't want this structure exposed to user space */  struct ifla_vf_info { @@ -346,96 +13,4 @@ struct ifla_vf_info {  	__u32 tx_rate;  	__u32 spoofchk;  }; -#endif - -/* VF ports management section - * - *	Nested layout of set/get msg is: - * - *		[IFLA_NUM_VF] - *		[IFLA_VF_PORTS] - *			[IFLA_VF_PORT] - *				[IFLA_PORT_*], ... - *			[IFLA_VF_PORT] - *				[IFLA_PORT_*], ... - *			... - *		[IFLA_PORT_SELF] - *			[IFLA_PORT_*], ... - */ - -enum { -	IFLA_VF_PORT_UNSPEC, -	IFLA_VF_PORT,			/* nest */ -	__IFLA_VF_PORT_MAX, -}; - -#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1) - -enum { -	IFLA_PORT_UNSPEC, -	IFLA_PORT_VF,			/* __u32 */ -	IFLA_PORT_PROFILE,		/* string */ -	IFLA_PORT_VSI_TYPE,		/* 802.1Qbg (pre-)standard VDP */ -	IFLA_PORT_INSTANCE_UUID,	/* binary UUID */ -	IFLA_PORT_HOST_UUID,		/* binary UUID */ -	IFLA_PORT_REQUEST,		/* __u8 */ -	IFLA_PORT_RESPONSE,		/* __u16, output only */ -	__IFLA_PORT_MAX, -}; - -#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1) - -#define PORT_PROFILE_MAX	40 -#define PORT_UUID_MAX		16 -#define PORT_SELF_VF		-1 - -enum { -	PORT_REQUEST_PREASSOCIATE = 0, -	PORT_REQUEST_PREASSOCIATE_RR, -	PORT_REQUEST_ASSOCIATE, -	PORT_REQUEST_DISASSOCIATE, -}; - -enum { -	PORT_VDP_RESPONSE_SUCCESS = 0, -	PORT_VDP_RESPONSE_INVALID_FORMAT, -	PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES, -	PORT_VDP_RESPONSE_UNUSED_VTID, -	PORT_VDP_RESPONSE_VTID_VIOLATION, -	PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION, -	PORT_VDP_RESPONSE_OUT_OF_SYNC, -	/* 0x08-0xFF reserved for future VDP use */ -	PORT_PROFILE_RESPONSE_SUCCESS = 0x100, -	PORT_PROFILE_RESPONSE_INPROGRESS, -	PORT_PROFILE_RESPONSE_INVALID, -	PORT_PROFILE_RESPONSE_BADSTATE, -	PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES, -	PORT_PROFILE_RESPONSE_ERROR, -}; - -struct ifla_port_vsi { -	__u8 vsi_mgr_id; -	__u8 vsi_type_id[3]; -	__u8 vsi_type_version; -	__u8 pad[3]; -}; - - -/* IPoIB section */ - -enum { -	IFLA_IPOIB_UNSPEC, -	IFLA_IPOIB_PKEY, -	IFLA_IPOIB_MODE, -	IFLA_IPOIB_UMCAST, -	__IFLA_IPOIB_MAX -}; - -enum { -	IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */ -	IPOIB_MODE_CONNECTED = 1, /* using connected QPs */ -}; - -#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) -  #endif /* _LINUX_IF_LINK_H */ diff --git a/include/linux/if_ltalk.h b/include/linux/if_ltalk.h index 76525760ba4..81e434c5079 100644 --- a/include/linux/if_ltalk.h +++ b/include/linux/if_ltalk.h @@ -1,12 +1,7 @@  #ifndef __LINUX_LTALK_H  #define __LINUX_LTALK_H -#define LTALK_HLEN		1 -#define LTALK_MTU		600 -#define LTALK_ALEN		1 +#include <uapi/linux/if_ltalk.h> -#ifdef __KERNEL__  extern struct net_device *alloc_ltalkdev(int sizeof_priv);  #endif - -#endif diff --git a/include/linux/if_packet.h b/include/linux/if_packet.h deleted file mode 100644 index f3799295d23..00000000000 --- a/include/linux/if_packet.h +++ /dev/null @@ -1,272 +0,0 @@ -#ifndef __LINUX_IF_PACKET_H -#define __LINUX_IF_PACKET_H - -#include <linux/types.h> - -struct sockaddr_pkt { -	unsigned short spkt_family; -	unsigned char spkt_device[14]; -	__be16 spkt_protocol; -}; - -struct sockaddr_ll { -	unsigned short	sll_family; -	__be16		sll_protocol; -	int		sll_ifindex; -	unsigned short	sll_hatype; -	unsigned char	sll_pkttype; -	unsigned char	sll_halen; -	unsigned char	sll_addr[8]; -}; - -/* Packet types */ - -#define PACKET_HOST		0		/* To us		*/ -#define PACKET_BROADCAST	1		/* To all		*/ -#define PACKET_MULTICAST	2		/* To group		*/ -#define PACKET_OTHERHOST	3		/* To someone else 	*/ -#define PACKET_OUTGOING		4		/* Outgoing of any type */ -/* These ones are invisible by user level */ -#define PACKET_LOOPBACK		5		/* MC/BRD frame looped back */ -#define PACKET_FASTROUTE	6		/* Fastrouted frame	*/ - -/* Packet socket options */ - -#define PACKET_ADD_MEMBERSHIP		1 -#define PACKET_DROP_MEMBERSHIP		2 -#define PACKET_RECV_OUTPUT		3 -/* Value 4 is still used by obsolete turbo-packet. */ -#define PACKET_RX_RING			5 -#define PACKET_STATISTICS		6 -#define PACKET_COPY_THRESH		7 -#define PACKET_AUXDATA			8 -#define PACKET_ORIGDEV			9 -#define PACKET_VERSION			10 -#define PACKET_HDRLEN			11 -#define PACKET_RESERVE			12 -#define PACKET_TX_RING			13 -#define PACKET_LOSS			14 -#define PACKET_VNET_HDR			15 -#define PACKET_TX_TIMESTAMP		16 -#define PACKET_TIMESTAMP		17 -#define PACKET_FANOUT			18 - -#define PACKET_FANOUT_HASH		0 -#define PACKET_FANOUT_LB		1 -#define PACKET_FANOUT_CPU		2 -#define PACKET_FANOUT_FLAG_DEFRAG	0x8000 - -struct tpacket_stats { -	unsigned int	tp_packets; -	unsigned int	tp_drops; -}; - -struct tpacket_stats_v3 { -	unsigned int	tp_packets; -	unsigned int	tp_drops; -	unsigned int	tp_freeze_q_cnt; -}; - -union tpacket_stats_u { -	struct tpacket_stats stats1; -	struct tpacket_stats_v3 stats3; -}; - -struct tpacket_auxdata { -	__u32		tp_status; -	__u32		tp_len; -	__u32		tp_snaplen; -	__u16		tp_mac; -	__u16		tp_net; -	__u16		tp_vlan_tci; -	__u16		tp_padding; -}; - -/* Rx ring - header status */ -#define TP_STATUS_KERNEL	0x0 -#define TP_STATUS_USER		0x1 -#define TP_STATUS_COPY		0x2 -#define TP_STATUS_LOSING	0x4 -#define TP_STATUS_CSUMNOTREADY	0x8 -#define TP_STATUS_VLAN_VALID   0x10 /* auxdata has valid tp_vlan_tci */ -#define TP_STATUS_BLK_TMO	0x20 - -/* Tx ring - header status */ -#define TP_STATUS_AVAILABLE	0x0 -#define TP_STATUS_SEND_REQUEST	0x1 -#define TP_STATUS_SENDING	0x2 -#define TP_STATUS_WRONG_FORMAT	0x4 - -/* Rx ring - feature request bits */ -#define TP_FT_REQ_FILL_RXHASH	0x1 - -struct tpacket_hdr { -	unsigned long	tp_status; -	unsigned int	tp_len; -	unsigned int	tp_snaplen; -	unsigned short	tp_mac; -	unsigned short	tp_net; -	unsigned int	tp_sec; -	unsigned int	tp_usec; -}; - -#define TPACKET_ALIGNMENT	16 -#define TPACKET_ALIGN(x)	(((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1)) -#define TPACKET_HDRLEN		(TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll)) - -struct tpacket2_hdr { -	__u32		tp_status; -	__u32		tp_len; -	__u32		tp_snaplen; -	__u16		tp_mac; -	__u16		tp_net; -	__u32		tp_sec; -	__u32		tp_nsec; -	__u16		tp_vlan_tci; -	__u16		tp_padding; -}; - -struct tpacket_hdr_variant1 { -	__u32	tp_rxhash; -	__u32	tp_vlan_tci; -}; - -struct tpacket3_hdr { -	__u32		tp_next_offset; -	__u32		tp_sec; -	__u32		tp_nsec; -	__u32		tp_snaplen; -	__u32		tp_len; -	__u32		tp_status; -	__u16		tp_mac; -	__u16		tp_net; -	/* pkt_hdr variants */ -	union { -		struct tpacket_hdr_variant1 hv1; -	}; -}; - -struct tpacket_bd_ts { -	unsigned int ts_sec; -	union { -		unsigned int ts_usec; -		unsigned int ts_nsec; -	}; -}; - -struct tpacket_hdr_v1 { -	__u32	block_status; -	__u32	num_pkts; -	__u32	offset_to_first_pkt; - -	/* Number of valid bytes (including padding) -	 * blk_len <= tp_block_size -	 */ -	__u32	blk_len; - -	/* -	 * Quite a few uses of sequence number: -	 * 1. Make sure cache flush etc worked. -	 *    Well, one can argue - why not use the increasing ts below? -	 *    But look at 2. below first. -	 * 2. When you pass around blocks to other user space decoders, -	 *    you can see which blk[s] is[are] outstanding etc. -	 * 3. Validate kernel code. -	 */ -	__aligned_u64	seq_num; - -	/* -	 * ts_last_pkt: -	 * -	 * Case 1.	Block has 'N'(N >=1) packets and TMO'd(timed out) -	 *		ts_last_pkt == 'time-stamp of last packet' and NOT the -	 *		time when the timer fired and the block was closed. -	 *		By providing the ts of the last packet we can absolutely -	 *		guarantee that time-stamp wise, the first packet in the -	 *		next block will never precede the last packet of the -	 *		previous block. -	 * Case 2.	Block has zero packets and TMO'd -	 *		ts_last_pkt = time when the timer fired and the block -	 *		was closed. -	 * Case 3.	Block has 'N' packets and NO TMO. -	 *		ts_last_pkt = time-stamp of the last pkt in the block. -	 * -	 * ts_first_pkt: -	 *		Is always the time-stamp when the block was opened. -	 *		Case a)	ZERO packets -	 *			No packets to deal with but atleast you know the -	 *			time-interval of this block. -	 *		Case b) Non-zero packets -	 *			Use the ts of the first packet in the block. -	 * -	 */ -	struct tpacket_bd_ts	ts_first_pkt, ts_last_pkt; -}; - -union tpacket_bd_header_u { -	struct tpacket_hdr_v1 bh1; -}; - -struct tpacket_block_desc { -	__u32 version; -	__u32 offset_to_priv; -	union tpacket_bd_header_u hdr; -}; - -#define TPACKET2_HDRLEN		(TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll)) -#define TPACKET3_HDRLEN		(TPACKET_ALIGN(sizeof(struct tpacket3_hdr)) + sizeof(struct sockaddr_ll)) - -enum tpacket_versions { -	TPACKET_V1, -	TPACKET_V2, -	TPACKET_V3 -}; - -/* -   Frame structure: - -   - Start. Frame must be aligned to TPACKET_ALIGNMENT=16 -   - struct tpacket_hdr -   - pad to TPACKET_ALIGNMENT=16 -   - struct sockaddr_ll -   - Gap, chosen so that packet data (Start+tp_net) alignes to TPACKET_ALIGNMENT=16 -   - Start+tp_mac: [ Optional MAC header ] -   - Start+tp_net: Packet data, aligned to TPACKET_ALIGNMENT=16. -   - Pad to align to TPACKET_ALIGNMENT=16 - */ - -struct tpacket_req { -	unsigned int	tp_block_size;	/* Minimal size of contiguous block */ -	unsigned int	tp_block_nr;	/* Number of blocks */ -	unsigned int	tp_frame_size;	/* Size of frame */ -	unsigned int	tp_frame_nr;	/* Total number of frames */ -}; - -struct tpacket_req3 { -	unsigned int	tp_block_size;	/* Minimal size of contiguous block */ -	unsigned int	tp_block_nr;	/* Number of blocks */ -	unsigned int	tp_frame_size;	/* Size of frame */ -	unsigned int	tp_frame_nr;	/* Total number of frames */ -	unsigned int	tp_retire_blk_tov; /* timeout in msecs */ -	unsigned int	tp_sizeof_priv; /* offset to private data area */ -	unsigned int	tp_feature_req_word; -}; - -union tpacket_req_u { -	struct tpacket_req	req; -	struct tpacket_req3	req3; -}; - -struct packet_mreq { -	int		mr_ifindex; -	unsigned short	mr_type; -	unsigned short	mr_alen; -	unsigned char	mr_address[8]; -}; - -#define PACKET_MR_MULTICAST	0 -#define PACKET_MR_PROMISC	1 -#define PACKET_MR_ALLMULTI	2 -#define PACKET_MR_UNICAST	3 - -#endif diff --git a/include/linux/if_phonet.h b/include/linux/if_phonet.h index d70034bcec0..bbcdb0a767d 100644 --- a/include/linux/if_phonet.h +++ b/include/linux/if_phonet.h @@ -8,12 +8,7 @@  #ifndef LINUX_IF_PHONET_H  #define LINUX_IF_PHONET_H -#define PHONET_MIN_MTU		6	/* pn_length = 0 */ -#define PHONET_MAX_MTU		65541	/* pn_length = 0xffff */ -#define PHONET_DEV_MTU		PHONET_MAX_MTU +#include <uapi/linux/if_phonet.h> -#ifdef __KERNEL__  extern struct header_ops phonet_header_ops;  #endif - -#endif diff --git a/include/linux/if_plip.h b/include/linux/if_plip.h deleted file mode 100644 index 6298c7e88b2..00000000000 --- a/include/linux/if_plip.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - *	NET3	PLIP tuning facilities for the new Niibe PLIP. - * - *	This program is free software; you can redistribute it and/or - *	modify it under the terms of the GNU General Public License - *	as published by the Free Software Foundation; either version - *	2 of the License, or (at your option) any later version. - * - */ -  -#ifndef _LINUX_IF_PLIP_H -#define _LINUX_IF_PLIP_H - -#include <linux/sockios.h> - -#define	SIOCDEVPLIP	SIOCDEVPRIVATE - -struct plipconf { -	unsigned short pcmd; -	unsigned long  nibble; -	unsigned long  trigger; -}; - -#define PLIP_GET_TIMEOUT	0x1 -#define PLIP_SET_TIMEOUT	0x2 - -#endif diff --git a/include/linux/if_ppp.h b/include/linux/if_ppp.h deleted file mode 100644 index 9048fabb7a4..00000000000 --- a/include/linux/if_ppp.h +++ /dev/null @@ -1 +0,0 @@ -#include <linux/ppp-ioctl.h> diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h index b4775418d52..0fb71e532b2 100644 --- a/include/linux/if_pppol2tp.h +++ b/include/linux/if_pppol2tp.h @@ -11,98 +11,11 @@   *		2 of the License, or (at your option) any later version.   *   */ -  #ifndef __LINUX_IF_PPPOL2TP_H  #define __LINUX_IF_PPPOL2TP_H -#include <linux/types.h> - -#ifdef __KERNEL__  #include <linux/in.h>  #include <linux/in6.h> -#endif - -/* Structure used to connect() the socket to a particular tunnel UDP - * socket over IPv4. - */ -struct pppol2tp_addr { -	__kernel_pid_t	pid;		/* pid that owns the fd. -					 * 0 => current */ -	int	fd;			/* FD of UDP socket to use */ - -	struct sockaddr_in addr;	/* IP address and port to send to */ - -	__u16 s_tunnel, s_session;	/* For matching incoming packets */ -	__u16 d_tunnel, d_session;	/* For sending outgoing packets */ -}; - -/* Structure used to connect() the socket to a particular tunnel UDP - * socket over IPv6. - */ -struct pppol2tpin6_addr { -	__kernel_pid_t	pid;		/* pid that owns the fd. -					 * 0 => current */ -	int	fd;			/* FD of UDP socket to use */ - -	__u16 s_tunnel, s_session;	/* For matching incoming packets */ -	__u16 d_tunnel, d_session;	/* For sending outgoing packets */ - -	struct sockaddr_in6 addr;	/* IP address and port to send to */ -}; - -/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32 - * bits. So we need a different sockaddr structure. - */ -struct pppol2tpv3_addr { -	__kernel_pid_t	pid;		/* pid that owns the fd. -					 * 0 => current */ -	int	fd;			/* FD of UDP or IP socket to use */ - -	struct sockaddr_in addr;	/* IP address and port to send to */ - -	__u32 s_tunnel, s_session;	/* For matching incoming packets */ -	__u32 d_tunnel, d_session;	/* For sending outgoing packets */ -}; - -struct pppol2tpv3in6_addr { -	__kernel_pid_t	pid;		/* pid that owns the fd. -					 * 0 => current */ -	int	fd;			/* FD of UDP or IP socket to use */ - -	__u32 s_tunnel, s_session;	/* For matching incoming packets */ -	__u32 d_tunnel, d_session;	/* For sending outgoing packets */ - -	struct sockaddr_in6 addr;	/* IP address and port to send to */ -}; - -/* Socket options: - * DEBUG	- bitmask of debug message categories - * SENDSEQ	- 0 => don't send packets with sequence numbers - *		  1 => send packets with sequence numbers - * RECVSEQ	- 0 => receive packet sequence numbers are optional - *		  1 => drop receive packets without sequence numbers - * LNSMODE	- 0 => act as LAC. - *		  1 => act as LNS. - * REORDERTO	- reorder timeout (in millisecs). If 0, don't try to reorder. - */ -enum { -	PPPOL2TP_SO_DEBUG	= 1, -	PPPOL2TP_SO_RECVSEQ	= 2, -	PPPOL2TP_SO_SENDSEQ	= 3, -	PPPOL2TP_SO_LNSMODE	= 4, -	PPPOL2TP_SO_REORDERTO	= 5, -}; - -/* Debug message categories for the DEBUG socket option */ -enum { -	PPPOL2TP_MSG_DEBUG	= (1 << 0),	/* verbose debug (if -						 * compiled in) */ -	PPPOL2TP_MSG_CONTROL	= (1 << 1),	/* userspace - kernel -						 * interface */ -	PPPOL2TP_MSG_SEQ	= (1 << 2),	/* sequence numbers */ -	PPPOL2TP_MSG_DATA	= (1 << 3),	/* data packets */ -}; - - +#include <uapi/linux/if_pppol2tp.h>  #endif diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h index 09c474c480c..aff7ad8a4ea 100644 --- a/include/linux/if_pppox.h +++ b/include/linux/if_pppox.h @@ -12,153 +12,14 @@   *		2 of the License, or (at your option) any later version.   *   */ -  #ifndef __LINUX_IF_PPPOX_H  #define __LINUX_IF_PPPOX_H - -#include <linux/types.h> -#include <asm/byteorder.h> - -#include <linux/socket.h> -#include <linux/if_ether.h> -#ifdef  __KERNEL__  #include <linux/if.h>  #include <linux/netdevice.h>  #include <linux/ppp_channel.h> -#endif /* __KERNEL__ */ -#include <linux/if_pppol2tp.h> - -/* For user-space programs to pick up these definitions - * which they wouldn't get otherwise without defining __KERNEL__ - */ -#ifndef AF_PPPOX -#define AF_PPPOX	24 -#define PF_PPPOX	AF_PPPOX -#endif /* !(AF_PPPOX) */ - -/************************************************************************  - * PPPoE addressing definition  - */  -typedef __be16 sid_t; -struct pppoe_addr { -	sid_t         sid;                    /* Session identifier */ -	unsigned char remote[ETH_ALEN];       /* Remote address */ -	char          dev[IFNAMSIZ];          /* Local device to use */ -};  -  -/************************************************************************  - * PPTP addressing definition - */ -struct pptp_addr { -	__be16		call_id; -	struct in_addr	sin_addr; -}; - -/************************************************************************ - * Protocols supported by AF_PPPOX - */ -#define PX_PROTO_OE    0 /* Currently just PPPoE */ -#define PX_PROTO_OL2TP 1 /* Now L2TP also */ -#define PX_PROTO_PPTP  2 -#define PX_MAX_PROTO   3 - -struct sockaddr_pppox { -	__kernel_sa_family_t sa_family;       /* address family, AF_PPPOX */ -	unsigned int    sa_protocol;          /* protocol identifier */ -	union { -		struct pppoe_addr  pppoe; -		struct pptp_addr   pptp; -	} sa_addr; -} __packed; - -/* The use of the above union isn't viable because the size of this - * struct must stay fixed over time -- applications use sizeof(struct - * sockaddr_pppox) to fill it. We use a protocol specific sockaddr - * type instead. - */ -struct sockaddr_pppol2tp { -	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ -	unsigned int    sa_protocol;    /* protocol identifier */ -	struct pppol2tp_addr pppol2tp; -} __packed; - -struct sockaddr_pppol2tpin6 { -	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ -	unsigned int    sa_protocol;    /* protocol identifier */ -	struct pppol2tpin6_addr pppol2tp; -} __packed; - -/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32 - * bits. So we need a different sockaddr structure. - */ -struct sockaddr_pppol2tpv3 { -	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ -	unsigned int    sa_protocol;    /* protocol identifier */ -	struct pppol2tpv3_addr pppol2tp; -} __packed; - -struct sockaddr_pppol2tpv3in6 { -	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */ -	unsigned int    sa_protocol;    /* protocol identifier */ -	struct pppol2tpv3in6_addr pppol2tp; -} __packed; - -/********************************************************************* - * - * ioctl interface for defining forwarding of connections - * - ********************************************************************/ - -#define PPPOEIOCSFWD	_IOW(0xB1 ,0, size_t) -#define PPPOEIOCDFWD	_IO(0xB1 ,1) -/*#define PPPOEIOCGFWD	_IOWR(0xB1,2, size_t)*/ - -/* Codes to identify message types */ -#define PADI_CODE	0x09 -#define PADO_CODE	0x07 -#define PADR_CODE	0x19 -#define PADS_CODE	0x65 -#define PADT_CODE	0xa7 -struct pppoe_tag { -	__be16 tag_type; -	__be16 tag_len; -	char tag_data[0]; -} __attribute__ ((packed)); - -/* Tag identifiers */ -#define PTT_EOL		__cpu_to_be16(0x0000) -#define PTT_SRV_NAME	__cpu_to_be16(0x0101) -#define PTT_AC_NAME	__cpu_to_be16(0x0102) -#define PTT_HOST_UNIQ	__cpu_to_be16(0x0103) -#define PTT_AC_COOKIE	__cpu_to_be16(0x0104) -#define PTT_VENDOR 	__cpu_to_be16(0x0105) -#define PTT_RELAY_SID	__cpu_to_be16(0x0110) -#define PTT_SRV_ERR     __cpu_to_be16(0x0201) -#define PTT_SYS_ERR  	__cpu_to_be16(0x0202) -#define PTT_GEN_ERR  	__cpu_to_be16(0x0203) - -struct pppoe_hdr { -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u8 ver : 4; -	__u8 type : 4; -#elif defined(__BIG_ENDIAN_BITFIELD) -	__u8 type : 4; -	__u8 ver : 4; -#else -#error	"Please fix <asm/byteorder.h>" -#endif -	__u8 code; -	__be16 sid; -	__be16 length; -	struct pppoe_tag tag[0]; -} __packed; - -/* Length of entire PPPoE + PPP header */ -#define PPPOE_SES_HLEN	8 - -#ifdef __KERNEL__  #include <linux/skbuff.h> +#include <uapi/linux/if_pppox.h>  static inline struct pppoe_hdr *pppoe_hdr(const struct sk_buff *skb)  { @@ -232,6 +93,4 @@ enum {      PPPOX_DEAD		= 16  /* dead, useless, please clean me up!*/  }; -#endif /* __KERNEL__ */ -  #endif /* !(__LINUX_IF_PPPOX_H) */ diff --git a/include/linux/if_slip.h b/include/linux/if_slip.h deleted file mode 100644 index 1eb4e3a8397..00000000000 --- a/include/linux/if_slip.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - *	Swansea University Computer Society	NET3 - *	 - *	This file declares the constants of special use with the SLIP/CSLIP/ - *	KISS TNC driver. - */ -  -#ifndef __LINUX_SLIP_H -#define __LINUX_SLIP_H - -#define		SL_MODE_SLIP		0 -#define		SL_MODE_CSLIP		1 -#define 	SL_MODE_KISS		4 - -#define		SL_OPT_SIXBIT		2 -#define		SL_OPT_ADAPTIVE		8 - -/* - *	VSV = ioctl for keepalive & outfill in SLIP driver  - */ -  -#define SIOCSKEEPALIVE	(SIOCDEVPRIVATE)		/* Set keepalive timeout in sec */ -#define SIOCGKEEPALIVE	(SIOCDEVPRIVATE+1)		/* Get keepalive timeout */ -#define SIOCSOUTFILL	(SIOCDEVPRIVATE+2)		/* Set outfill timeout */ -#define	SIOCGOUTFILL	(SIOCDEVPRIVATE+3)		/* Get outfill timeout */ -#define SIOCSLEASE	(SIOCDEVPRIVATE+4)		/* Set "leased" line type */ -#define	SIOCGLEASE	(SIOCDEVPRIVATE+5)		/* Get line type */ - - -#endif diff --git a/include/linux/if_team.h b/include/linux/if_team.h index 6d88a7f5768..0245def2aa9 100644 --- a/include/linux/if_team.h +++ b/include/linux/if_team.h @@ -7,14 +7,13 @@   * the Free Software Foundation; either version 2 of the License, or   * (at your option) any later version.   */ -  #ifndef _LINUX_IF_TEAM_H_  #define _LINUX_IF_TEAM_H_ -#ifdef __KERNEL__  #include <linux/netpoll.h>  #include <net/sch_generic.h> +#include <uapi/linux/if_team.h>  struct team_pcpu_stats {  	u64			rx_packets; @@ -251,98 +250,4 @@ extern void team_mode_unregister(const struct team_mode *mode);  #define TEAM_DEFAULT_NUM_TX_QUEUES 16  #define TEAM_DEFAULT_NUM_RX_QUEUES 16 -#endif /* __KERNEL__ */ - -#define TEAM_STRING_MAX_LEN 32 - -/********************************** - * NETLINK_GENERIC netlink family. - **********************************/ - -enum { -	TEAM_CMD_NOOP, -	TEAM_CMD_OPTIONS_SET, -	TEAM_CMD_OPTIONS_GET, -	TEAM_CMD_PORT_LIST_GET, - -	__TEAM_CMD_MAX, -	TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1), -}; - -enum { -	TEAM_ATTR_UNSPEC, -	TEAM_ATTR_TEAM_IFINDEX,		/* u32 */ -	TEAM_ATTR_LIST_OPTION,		/* nest */ -	TEAM_ATTR_LIST_PORT,		/* nest */ - -	__TEAM_ATTR_MAX, -	TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1, -}; - -/* Nested layout of get/set msg: - * - *	[TEAM_ATTR_LIST_OPTION] - *		[TEAM_ATTR_ITEM_OPTION] - *			[TEAM_ATTR_OPTION_*], ... - *		[TEAM_ATTR_ITEM_OPTION] - *			[TEAM_ATTR_OPTION_*], ... - *		... - *	[TEAM_ATTR_LIST_PORT] - *		[TEAM_ATTR_ITEM_PORT] - *			[TEAM_ATTR_PORT_*], ... - *		[TEAM_ATTR_ITEM_PORT] - *			[TEAM_ATTR_PORT_*], ... - *		... - */ - -enum { -	TEAM_ATTR_ITEM_OPTION_UNSPEC, -	TEAM_ATTR_ITEM_OPTION,		/* nest */ - -	__TEAM_ATTR_ITEM_OPTION_MAX, -	TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1, -}; - -enum { -	TEAM_ATTR_OPTION_UNSPEC, -	TEAM_ATTR_OPTION_NAME,		/* string */ -	TEAM_ATTR_OPTION_CHANGED,	/* flag */ -	TEAM_ATTR_OPTION_TYPE,		/* u8 */ -	TEAM_ATTR_OPTION_DATA,		/* dynamic */ -	TEAM_ATTR_OPTION_REMOVED,	/* flag */ -	TEAM_ATTR_OPTION_PORT_IFINDEX,	/* u32 */ /* for per-port options */ -	TEAM_ATTR_OPTION_ARRAY_INDEX,	/* u32 */ /* for array options */ - -	__TEAM_ATTR_OPTION_MAX, -	TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1, -}; - -enum { -	TEAM_ATTR_ITEM_PORT_UNSPEC, -	TEAM_ATTR_ITEM_PORT,		/* nest */ - -	__TEAM_ATTR_ITEM_PORT_MAX, -	TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1, -}; - -enum { -	TEAM_ATTR_PORT_UNSPEC, -	TEAM_ATTR_PORT_IFINDEX,		/* u32 */ -	TEAM_ATTR_PORT_CHANGED,		/* flag */ -	TEAM_ATTR_PORT_LINKUP,		/* flag */ -	TEAM_ATTR_PORT_SPEED,		/* u32 */ -	TEAM_ATTR_PORT_DUPLEX,		/* u8 */ -	TEAM_ATTR_PORT_REMOVED,		/* flag */ - -	__TEAM_ATTR_PORT_MAX, -	TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1, -}; - -/* - * NETLINK_GENERIC related info - */ -#define TEAM_GENL_NAME "team" -#define TEAM_GENL_VERSION 0x1 -#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event" -  #endif /* _LINUX_IF_TEAM_H_ */ diff --git a/include/linux/if_tun.h b/include/linux/if_tun.h index 06b1829731f..ed6da2e6df9 100644 --- a/include/linux/if_tun.h +++ b/include/linux/if_tun.h @@ -12,86 +12,11 @@   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the   *  GNU General Public License for more details.   */ -  #ifndef __IF_TUN_H  #define __IF_TUN_H -#include <linux/types.h> -#include <linux/if_ether.h> -#include <linux/filter.h> - -/* Read queue size */ -#define TUN_READQ_SIZE	500 - -/* TUN device flags */ -#define TUN_TUN_DEV 	0x0001	 -#define TUN_TAP_DEV	0x0002 -#define TUN_TYPE_MASK   0x000f - -#define TUN_FASYNC	0x0010 -#define TUN_NOCHECKSUM	0x0020 -#define TUN_NO_PI	0x0040 -#define TUN_ONE_QUEUE	0x0080 -#define TUN_PERSIST 	0x0100	 -#define TUN_VNET_HDR 	0x0200 - -/* Ioctl defines */ -#define TUNSETNOCSUM  _IOW('T', 200, int)  -#define TUNSETDEBUG   _IOW('T', 201, int)  -#define TUNSETIFF     _IOW('T', 202, int)  -#define TUNSETPERSIST _IOW('T', 203, int)  -#define TUNSETOWNER   _IOW('T', 204, int) -#define TUNSETLINK    _IOW('T', 205, int) -#define TUNSETGROUP   _IOW('T', 206, int) -#define TUNGETFEATURES _IOR('T', 207, unsigned int) -#define TUNSETOFFLOAD  _IOW('T', 208, unsigned int) -#define TUNSETTXFILTER _IOW('T', 209, unsigned int) -#define TUNGETIFF      _IOR('T', 210, unsigned int) -#define TUNGETSNDBUF   _IOR('T', 211, int) -#define TUNSETSNDBUF   _IOW('T', 212, int) -#define TUNATTACHFILTER _IOW('T', 213, struct sock_fprog) -#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) -#define TUNGETVNETHDRSZ _IOR('T', 215, int) -#define TUNSETVNETHDRSZ _IOW('T', 216, int) - -/* TUNSETIFF ifr flags */ -#define IFF_TUN		0x0001 -#define IFF_TAP		0x0002 -#define IFF_NO_PI	0x1000 -#define IFF_ONE_QUEUE	0x2000 -#define IFF_VNET_HDR	0x4000 -#define IFF_TUN_EXCL	0x8000 - -/* Features for GSO (TUNSETOFFLOAD). */ -#define TUN_F_CSUM	0x01	/* You can hand me unchecksummed packets. */ -#define TUN_F_TSO4	0x02	/* I can handle TSO for IPv4 packets */ -#define TUN_F_TSO6	0x04	/* I can handle TSO for IPv6 packets */ -#define TUN_F_TSO_ECN	0x08	/* I can handle TSO with ECN bits. */ -#define TUN_F_UFO	0x10	/* I can handle UFO packets */ - -/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */ -#define TUN_PKT_STRIP	0x0001 -struct tun_pi { -	__u16  flags; -	__be16 proto; -}; - -/* - * Filter spec (used for SETXXFILTER ioctls) - * This stuff is applicable only to the TAP (Ethernet) devices. - * If the count is zero the filter is disabled and the driver accepts - * all packets (promisc mode). - * If the filter is enabled in order to accept broadcast packets - * broadcast addr must be explicitly included in the addr list. - */ -#define TUN_FLT_ALLMULTI 0x0001 /* Accept all multicast packets */ -struct tun_filter { -	__u16  flags; /* TUN_FLT_ flags see above */ -	__u16  count; /* Number of addresses */ -	__u8   addr[0][ETH_ALEN]; -}; +#include <uapi/linux/if_tun.h> -#ifdef __KERNEL__  #if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE)  struct socket *tun_get_socket(struct file *);  #else @@ -104,5 +29,4 @@ static inline struct socket *tun_get_socket(struct file *f)  	return ERR_PTR(-EINVAL);  }  #endif /* CONFIG_TUN */ -#endif /* __KERNEL__ */  #endif /* __IF_TUN_H */ diff --git a/include/linux/if_tunnel.h b/include/linux/if_tunnel.h index 8c5035ac314..1cc595a67cc 100644 --- a/include/linux/if_tunnel.h +++ b/include/linux/if_tunnel.h @@ -1,100 +1,8 @@  #ifndef _IF_TUNNEL_H_  #define _IF_TUNNEL_H_ -#include <linux/types.h> -#include <asm/byteorder.h> - -#ifdef __KERNEL__  #include <linux/ip.h>  #include <linux/in6.h> -#endif - -#define SIOCGETTUNNEL   (SIOCDEVPRIVATE + 0) -#define SIOCADDTUNNEL   (SIOCDEVPRIVATE + 1) -#define SIOCDELTUNNEL   (SIOCDEVPRIVATE + 2) -#define SIOCCHGTUNNEL   (SIOCDEVPRIVATE + 3) -#define SIOCGETPRL      (SIOCDEVPRIVATE + 4) -#define SIOCADDPRL      (SIOCDEVPRIVATE + 5) -#define SIOCDELPRL      (SIOCDEVPRIVATE + 6) -#define SIOCCHGPRL      (SIOCDEVPRIVATE + 7) -#define SIOCGET6RD      (SIOCDEVPRIVATE + 8) -#define SIOCADD6RD      (SIOCDEVPRIVATE + 9) -#define SIOCDEL6RD      (SIOCDEVPRIVATE + 10) -#define SIOCCHG6RD      (SIOCDEVPRIVATE + 11) - -#define GRE_CSUM	__cpu_to_be16(0x8000) -#define GRE_ROUTING	__cpu_to_be16(0x4000) -#define GRE_KEY		__cpu_to_be16(0x2000) -#define GRE_SEQ		__cpu_to_be16(0x1000) -#define GRE_STRICT	__cpu_to_be16(0x0800) -#define GRE_REC		__cpu_to_be16(0x0700) -#define GRE_FLAGS	__cpu_to_be16(0x00F8) -#define GRE_VERSION	__cpu_to_be16(0x0007) - -struct ip_tunnel_parm { -	char			name[IFNAMSIZ]; -	int			link; -	__be16			i_flags; -	__be16			o_flags; -	__be32			i_key; -	__be32			o_key; -	struct iphdr		iph; -}; - -/* SIT-mode i_flags */ -#define	SIT_ISATAP	0x0001 - -struct ip_tunnel_prl { -	__be32			addr; -	__u16			flags; -	__u16			__reserved; -	__u32			datalen; -	__u32			__reserved2; -	/* data follows */ -}; - -/* PRL flags */ -#define	PRL_DEFAULT		0x0001 - -struct ip_tunnel_6rd { -	struct in6_addr		prefix; -	__be32			relay_prefix; -	__u16			prefixlen; -	__u16			relay_prefixlen; -}; - -enum { -	IFLA_GRE_UNSPEC, -	IFLA_GRE_LINK, -	IFLA_GRE_IFLAGS, -	IFLA_GRE_OFLAGS, -	IFLA_GRE_IKEY, -	IFLA_GRE_OKEY, -	IFLA_GRE_LOCAL, -	IFLA_GRE_REMOTE, -	IFLA_GRE_TTL, -	IFLA_GRE_TOS, -	IFLA_GRE_PMTUDISC, -	IFLA_GRE_ENCAP_LIMIT, -	IFLA_GRE_FLOWINFO, -	IFLA_GRE_FLAGS, -	__IFLA_GRE_MAX, -}; - -#define IFLA_GRE_MAX	(__IFLA_GRE_MAX - 1) - -/* VTI-mode i_flags */ -#define VTI_ISVTI 0x0001 - -enum { -	IFLA_VTI_UNSPEC, -	IFLA_VTI_LINK, -	IFLA_VTI_IKEY, -	IFLA_VTI_OKEY, -	IFLA_VTI_LOCAL, -	IFLA_VTI_REMOTE, -	__IFLA_VTI_MAX, -}; +#include <uapi/linux/if_tunnel.h> -#define IFLA_VTI_MAX	(__IFLA_VTI_MAX - 1)  #endif /* _IF_TUNNEL_H_ */ diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index c0ff748d0aa..d06cc5c8f58 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h @@ -9,15 +9,14 @@   *		2 of the License, or (at your option) any later version.   *   */ -  #ifndef _LINUX_IF_VLAN_H_  #define _LINUX_IF_VLAN_H_ -#ifdef __KERNEL__  #include <linux/netdevice.h>  #include <linux/etherdevice.h>  #include <linux/rtnetlink.h>  #include <linux/bug.h> +#include <uapi/linux/if_vlan.h>  #define VLAN_HLEN	4		/* The additional bytes required by VLAN  					 * (in addition to the Ethernet header) @@ -361,52 +360,4 @@ static inline void vlan_set_encap_proto(struct sk_buff *skb,  		 */  		skb->protocol = htons(ETH_P_802_2);  } -#endif /* __KERNEL__ */ - -/* VLAN IOCTLs are found in sockios.h */ - -/* Passed in vlan_ioctl_args structure to determine behaviour. */ -enum vlan_ioctl_cmds { -	ADD_VLAN_CMD, -	DEL_VLAN_CMD, -	SET_VLAN_INGRESS_PRIORITY_CMD, -	SET_VLAN_EGRESS_PRIORITY_CMD, -	GET_VLAN_INGRESS_PRIORITY_CMD, -	GET_VLAN_EGRESS_PRIORITY_CMD, -	SET_VLAN_NAME_TYPE_CMD, -	SET_VLAN_FLAG_CMD, -	GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */ -	GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */ -}; - -enum vlan_flags { -	VLAN_FLAG_REORDER_HDR	= 0x1, -	VLAN_FLAG_GVRP		= 0x2, -	VLAN_FLAG_LOOSE_BINDING	= 0x4, -}; - -enum vlan_name_types { -	VLAN_NAME_TYPE_PLUS_VID, /* Name will look like:  vlan0005 */ -	VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like:  eth1.0005 */ -	VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like:  vlan5 */ -	VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like:  eth0.5 */ -	VLAN_NAME_TYPE_HIGHEST -}; - -struct vlan_ioctl_args { -	int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */ -	char device1[24]; - -        union { -		char device2[24]; -		int VID; -		unsigned int skb_priority; -		unsigned int name_type; -		unsigned int bind_type; -		unsigned int flag; /* Matches vlan_dev_priv flags */ -        } u; - -	short vlan_qos;    -}; -  #endif /* !(_LINUX_IF_VLAN_H_) */ diff --git a/include/linux/if_x25.h b/include/linux/if_x25.h deleted file mode 100644 index 897765f5feb..00000000000 --- a/include/linux/if_x25.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - *  Linux X.25 packet to device interface - * - *  This program is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  This program is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - *  GNU General Public License for more details. - */ - -#ifndef _IF_X25_H -#define _IF_X25_H - -#include <linux/types.h> - -/* Documentation/networking/x25-iface.txt */ -#define X25_IFACE_DATA		0x00 -#define X25_IFACE_CONNECT	0x01 -#define X25_IFACE_DISCONNECT	0x02 -#define X25_IFACE_PARAMS	0x03 - -#endif /* _IF_X25_H */ diff --git a/include/linux/igmp.h b/include/linux/igmp.h index 82de336b815..7f2bf151848 100644 --- a/include/linux/igmp.h +++ b/include/linux/igmp.h @@ -12,123 +12,13 @@   *	as published by the Free Software Foundation; either version   *	2 of the License, or (at your option) any later version.   */ -  #ifndef _LINUX_IGMP_H  #define _LINUX_IGMP_H -#include <linux/types.h> -#include <asm/byteorder.h> - -/* - *	IGMP protocol structures - */ - -/* - *	Header in on cable format - */ - -struct igmphdr { -	__u8 type; -	__u8 code;		/* For newer IGMP */ -	__sum16 csum; -	__be32 group; -}; - -/* V3 group record types [grec_type] */ -#define IGMPV3_MODE_IS_INCLUDE		1 -#define IGMPV3_MODE_IS_EXCLUDE		2 -#define IGMPV3_CHANGE_TO_INCLUDE	3 -#define IGMPV3_CHANGE_TO_EXCLUDE	4 -#define IGMPV3_ALLOW_NEW_SOURCES	5 -#define IGMPV3_BLOCK_OLD_SOURCES	6 - -struct igmpv3_grec { -	__u8	grec_type; -	__u8	grec_auxwords; -	__be16	grec_nsrcs; -	__be32	grec_mca; -	__be32	grec_src[0]; -}; - -struct igmpv3_report { -	__u8 type; -	__u8 resv1; -	__be16 csum; -	__be16 resv2; -	__be16 ngrec; -	struct igmpv3_grec grec[0]; -}; - -struct igmpv3_query { -	__u8 type; -	__u8 code; -	__be16 csum; -	__be32 group; -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u8 qrv:3, -	     suppress:1, -	     resv:4; -#elif defined(__BIG_ENDIAN_BITFIELD) -	__u8 resv:4, -	     suppress:1, -	     qrv:3; -#else -#error "Please fix <asm/byteorder.h>" -#endif -	__u8 qqic; -	__be16 nsrcs; -	__be32 srcs[0]; -}; - -#define IGMP_HOST_MEMBERSHIP_QUERY	0x11	/* From RFC1112 */ -#define IGMP_HOST_MEMBERSHIP_REPORT	0x12	/* Ditto */ -#define IGMP_DVMRP			0x13	/* DVMRP routing */ -#define IGMP_PIM			0x14	/* PIM routing */ -#define IGMP_TRACE			0x15 -#define IGMPV2_HOST_MEMBERSHIP_REPORT	0x16	/* V2 version of 0x12 */ -#define IGMP_HOST_LEAVE_MESSAGE 	0x17 -#define IGMPV3_HOST_MEMBERSHIP_REPORT	0x22	/* V3 version of 0x12 */ - -#define IGMP_MTRACE_RESP		0x1e -#define IGMP_MTRACE			0x1f - - -/* - *	Use the BSD names for these for compatibility - */ - -#define IGMP_DELAYING_MEMBER		0x01 -#define IGMP_IDLE_MEMBER		0x02 -#define IGMP_LAZY_MEMBER		0x03 -#define IGMP_SLEEPING_MEMBER		0x04 -#define IGMP_AWAKENING_MEMBER		0x05 - -#define IGMP_MINLEN			8 - -#define IGMP_MAX_HOST_REPORT_DELAY	10	/* max delay for response to */ -						/* query (in seconds)	*/ - -#define IGMP_TIMER_SCALE		10	/* denotes that the igmphdr->timer field */ -						/* specifies time in 10th of seconds	 */ - -#define IGMP_AGE_THRESHOLD		400	/* If this host don't hear any IGMP V1	*/ -						/* message in this period of time,	*/ -						/* revert to IGMP v2 router.		*/ - -#define IGMP_ALL_HOSTS		htonl(0xE0000001L) -#define IGMP_ALL_ROUTER 	htonl(0xE0000002L) -#define IGMPV3_ALL_MCR	 	htonl(0xE0000016L) -#define IGMP_LOCAL_GROUP	htonl(0xE0000000L) -#define IGMP_LOCAL_GROUP_MASK	htonl(0xFFFFFF00L) - -/* - * struct for keeping the multicast list in - */ - -#ifdef __KERNEL__  #include <linux/skbuff.h>  #include <linux/timer.h>  #include <linux/in.h> +#include <uapi/linux/igmp.h>  static inline struct igmphdr *igmp_hdr(const struct sk_buff *skb)  { @@ -241,4 +131,3 @@ extern void ip_mc_inc_group(struct in_device *in_dev, __be32 addr);  extern void ip_mc_rejoin_groups(struct in_device *in_dev);  #endif -#endif diff --git a/include/linux/in.h b/include/linux/in.h index e0337f11d92..31b49373476 100644 --- a/include/linux/in.h +++ b/include/linux/in.h @@ -18,240 +18,9 @@  #ifndef _LINUX_IN_H  #define _LINUX_IN_H -#include <linux/types.h> -#include <linux/socket.h> - -/* Standard well-defined IP protocols.  */ -enum { -  IPPROTO_IP = 0,		/* Dummy protocol for TCP		*/ -  IPPROTO_ICMP = 1,		/* Internet Control Message Protocol	*/ -  IPPROTO_IGMP = 2,		/* Internet Group Management Protocol	*/ -  IPPROTO_IPIP = 4,		/* IPIP tunnels (older KA9Q tunnels use 94) */ -  IPPROTO_TCP = 6,		/* Transmission Control Protocol	*/ -  IPPROTO_EGP = 8,		/* Exterior Gateway Protocol		*/ -  IPPROTO_PUP = 12,		/* PUP protocol				*/ -  IPPROTO_UDP = 17,		/* User Datagram Protocol		*/ -  IPPROTO_IDP = 22,		/* XNS IDP protocol			*/ -  IPPROTO_DCCP = 33,		/* Datagram Congestion Control Protocol */ -  IPPROTO_RSVP = 46,		/* RSVP protocol			*/ -  IPPROTO_GRE = 47,		/* Cisco GRE tunnels (rfc 1701,1702)	*/ - -  IPPROTO_IPV6	 = 41,		/* IPv6-in-IPv4 tunnelling		*/ - -  IPPROTO_ESP = 50,            /* Encapsulation Security Payload protocol */ -  IPPROTO_AH = 51,             /* Authentication Header protocol       */ -  IPPROTO_BEETPH = 94,	       /* IP option pseudo header for BEET */ -  IPPROTO_PIM    = 103,		/* Protocol Independent Multicast	*/ - -  IPPROTO_COMP   = 108,                /* Compression Header protocol */ -  IPPROTO_SCTP   = 132,		/* Stream Control Transport Protocol	*/ -  IPPROTO_UDPLITE = 136,	/* UDP-Lite (RFC 3828)			*/ - -  IPPROTO_RAW	 = 255,		/* Raw IP packets			*/ -  IPPROTO_MAX -}; - - -/* Internet address. */ -struct in_addr { -	__be32	s_addr; -}; - -#define IP_TOS		1 -#define IP_TTL		2 -#define IP_HDRINCL	3 -#define IP_OPTIONS	4 -#define IP_ROUTER_ALERT	5 -#define IP_RECVOPTS	6 -#define IP_RETOPTS	7 -#define IP_PKTINFO	8 -#define IP_PKTOPTIONS	9 -#define IP_MTU_DISCOVER	10 -#define IP_RECVERR	11 -#define IP_RECVTTL	12 -#define	IP_RECVTOS	13 -#define IP_MTU		14 -#define IP_FREEBIND	15 -#define IP_IPSEC_POLICY	16 -#define IP_XFRM_POLICY	17 -#define IP_PASSSEC	18 -#define IP_TRANSPARENT	19 - -/* BSD compatibility */ -#define IP_RECVRETOPTS	IP_RETOPTS - -/* TProxy original addresses */ -#define IP_ORIGDSTADDR       20 -#define IP_RECVORIGDSTADDR   IP_ORIGDSTADDR - -#define IP_MINTTL       21 -#define IP_NODEFRAG     22 - -/* IP_MTU_DISCOVER values */ -#define IP_PMTUDISC_DONT		0	/* Never send DF frames */ -#define IP_PMTUDISC_WANT		1	/* Use per route hints	*/ -#define IP_PMTUDISC_DO			2	/* Always DF		*/ -#define IP_PMTUDISC_PROBE		3       /* Ignore dst pmtu      */ - -#define IP_MULTICAST_IF			32 -#define IP_MULTICAST_TTL 		33 -#define IP_MULTICAST_LOOP 		34 -#define IP_ADD_MEMBERSHIP		35 -#define IP_DROP_MEMBERSHIP		36 -#define IP_UNBLOCK_SOURCE		37 -#define IP_BLOCK_SOURCE			38 -#define IP_ADD_SOURCE_MEMBERSHIP	39 -#define IP_DROP_SOURCE_MEMBERSHIP	40 -#define IP_MSFILTER			41 -#define MCAST_JOIN_GROUP		42 -#define MCAST_BLOCK_SOURCE		43 -#define MCAST_UNBLOCK_SOURCE		44 -#define MCAST_LEAVE_GROUP		45 -#define MCAST_JOIN_SOURCE_GROUP		46 -#define MCAST_LEAVE_SOURCE_GROUP	47 -#define MCAST_MSFILTER			48 -#define IP_MULTICAST_ALL		49 -#define IP_UNICAST_IF			50 - -#define MCAST_EXCLUDE	0 -#define MCAST_INCLUDE	1 - -/* These need to appear somewhere around here */ -#define IP_DEFAULT_MULTICAST_TTL        1 -#define IP_DEFAULT_MULTICAST_LOOP       1 - -/* Request struct for multicast socket ops */ - -struct ip_mreq  { -	struct in_addr imr_multiaddr;	/* IP multicast address of group */ -	struct in_addr imr_interface;	/* local IP address of interface */ -}; - -struct ip_mreqn { -	struct in_addr	imr_multiaddr;		/* IP multicast address of group */ -	struct in_addr	imr_address;		/* local IP address of interface */ -	int		imr_ifindex;		/* Interface index */ -}; - -struct ip_mreq_source { -	__be32		imr_multiaddr; -	__be32		imr_interface; -	__be32		imr_sourceaddr; -}; - -struct ip_msfilter { -	__be32		imsf_multiaddr; -	__be32		imsf_interface; -	__u32		imsf_fmode; -	__u32		imsf_numsrc; -	__be32		imsf_slist[1]; -}; - -#define IP_MSFILTER_SIZE(numsrc) \ -	(sizeof(struct ip_msfilter) - sizeof(__u32) \ -	+ (numsrc) * sizeof(__u32)) - -struct group_req { -	__u32				 gr_interface;	/* interface index */ -	struct __kernel_sockaddr_storage gr_group;	/* group address */ -}; - -struct group_source_req { -	__u32				 gsr_interface;	/* interface index */ -	struct __kernel_sockaddr_storage gsr_group;	/* group address */ -	struct __kernel_sockaddr_storage gsr_source;	/* source address */ -}; - -struct group_filter { -	__u32				 gf_interface;	/* interface index */ -	struct __kernel_sockaddr_storage gf_group;	/* multicast address */ -	__u32				 gf_fmode;	/* filter mode */ -	__u32				 gf_numsrc;	/* number of sources */ -	struct __kernel_sockaddr_storage gf_slist[1];	/* interface index */ -}; - -#define GROUP_FILTER_SIZE(numsrc) \ -	(sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \ -	+ (numsrc) * sizeof(struct __kernel_sockaddr_storage)) - -struct in_pktinfo { -	int		ipi_ifindex; -	struct in_addr	ipi_spec_dst; -	struct in_addr	ipi_addr; -}; - -/* Structure describing an Internet (IP) socket address. */ -#define __SOCK_SIZE__	16		/* sizeof(struct sockaddr)	*/ -struct sockaddr_in { -  __kernel_sa_family_t	sin_family;	/* Address family		*/ -  __be16		sin_port;	/* Port number			*/ -  struct in_addr	sin_addr;	/* Internet address		*/ - -  /* Pad to size of `struct sockaddr'. */ -  unsigned char		__pad[__SOCK_SIZE__ - sizeof(short int) - -			sizeof(unsigned short int) - sizeof(struct in_addr)]; -}; -#define sin_zero	__pad		/* for BSD UNIX comp. -FvK	*/ - - -/* - * Definitions of the bits in an Internet address integer. - * On subnets, host and network parts are found according - * to the subnet mask, not these masks. - */ -#define	IN_CLASSA(a)		((((long int) (a)) & 0x80000000) == 0) -#define	IN_CLASSA_NET		0xff000000 -#define	IN_CLASSA_NSHIFT	24 -#define	IN_CLASSA_HOST		(0xffffffff & ~IN_CLASSA_NET) -#define	IN_CLASSA_MAX		128 - -#define	IN_CLASSB(a)		((((long int) (a)) & 0xc0000000) == 0x80000000) -#define	IN_CLASSB_NET		0xffff0000 -#define	IN_CLASSB_NSHIFT	16 -#define	IN_CLASSB_HOST		(0xffffffff & ~IN_CLASSB_NET) -#define	IN_CLASSB_MAX		65536 - -#define	IN_CLASSC(a)		((((long int) (a)) & 0xe0000000) == 0xc0000000) -#define	IN_CLASSC_NET		0xffffff00 -#define	IN_CLASSC_NSHIFT	8 -#define	IN_CLASSC_HOST		(0xffffffff & ~IN_CLASSC_NET) - -#define	IN_CLASSD(a)		((((long int) (a)) & 0xf0000000) == 0xe0000000) -#define	IN_MULTICAST(a)		IN_CLASSD(a) -#define IN_MULTICAST_NET	0xF0000000 - -#define	IN_EXPERIMENTAL(a)	((((long int) (a)) & 0xf0000000) == 0xf0000000) -#define	IN_BADCLASS(a)		IN_EXPERIMENTAL((a)) - -/* Address to accept any incoming messages. */ -#define	INADDR_ANY		((unsigned long int) 0x00000000) - -/* Address to send to all hosts. */ -#define	INADDR_BROADCAST	((unsigned long int) 0xffffffff) - -/* Address indicating an error return. */ -#define	INADDR_NONE		((unsigned long int) 0xffffffff) - -/* Network number for local host loopback. */ -#define	IN_LOOPBACKNET		127 - -/* Address to loopback in software to local host.  */ -#define	INADDR_LOOPBACK		0x7f000001	/* 127.0.0.1   */ -#define	IN_LOOPBACK(a)		((((long int) (a)) & 0xff000000) == 0x7f000000) - -/* Defines for Multicast INADDR */ -#define INADDR_UNSPEC_GROUP   	0xe0000000U	/* 224.0.0.0   */ -#define INADDR_ALLHOSTS_GROUP 	0xe0000001U	/* 224.0.0.1   */ -#define INADDR_ALLRTRS_GROUP    0xe0000002U	/* 224.0.0.2 */ -#define INADDR_MAX_LOCAL_GROUP  0xe00000ffU	/* 224.0.0.255 */ - - -/* <asm/byteorder.h> contains the htonl type stuff.. */ -#include <asm/byteorder.h>  - -#ifdef __KERNEL__  #include <linux/errno.h> +#include <uapi/linux/in.h>  static inline int proto_ports_offset(int proto)  { @@ -332,6 +101,4 @@ static inline bool ipv4_is_test_198(__be32 addr)  {  	return (addr & htonl(0xfffe0000)) == htonl(0xc6120000);  } -#endif -  #endif	/* _LINUX_IN_H */ diff --git a/include/linux/in6.h b/include/linux/in6.h index cba469ba11a..9e2ae26fb59 100644 --- a/include/linux/in6.h +++ b/include/linux/in6.h @@ -17,32 +17,11 @@   *      as published by the Free Software Foundation; either version   *      2 of the License, or (at your option) any later version.   */ -  #ifndef _LINUX_IN6_H  #define _LINUX_IN6_H -#include <linux/types.h> - -/* - *	IPv6 address structure - */ - -struct in6_addr { -	union { -		__u8		u6_addr8[16]; -		__be16		u6_addr16[8]; -		__be32		u6_addr32[4]; -	} in6_u; -#define s6_addr			in6_u.u6_addr8 -#define s6_addr16		in6_u.u6_addr16 -#define s6_addr32		in6_u.u6_addr32 -}; +#include <uapi/linux/in6.h> -/* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553 - * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined - * in network byte order, not in host byte order as are the IPv4 equivalents - */ -#ifdef __KERNEL__  extern const struct in6_addr in6addr_any;  #define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }  extern const struct in6_addr in6addr_loopback; @@ -54,238 +33,3 @@ extern const struct in6_addr in6addr_linklocal_allrouters;  #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \  		{ { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2 } } }  #endif - -struct sockaddr_in6 { -	unsigned short int	sin6_family;    /* AF_INET6 */ -	__be16			sin6_port;      /* Transport layer port # */ -	__be32			sin6_flowinfo;  /* IPv6 flow information */ -	struct in6_addr		sin6_addr;      /* IPv6 address */ -	__u32			sin6_scope_id;  /* scope id (new in RFC2553) */ -}; - -struct ipv6_mreq { -	/* IPv6 multicast address of group */ -	struct in6_addr ipv6mr_multiaddr; - -	/* local IPv6 address of interface */ -	int		ipv6mr_ifindex; -}; - -#define ipv6mr_acaddr	ipv6mr_multiaddr - -struct in6_flowlabel_req { -	struct in6_addr	flr_dst; -	__be32	flr_label; -	__u8	flr_action; -	__u8	flr_share; -	__u16	flr_flags; -	__u16 	flr_expires; -	__u16	flr_linger; -	__u32	__flr_pad; -	/* Options in format of IPV6_PKTOPTIONS */ -}; - -#define IPV6_FL_A_GET	0 -#define IPV6_FL_A_PUT	1 -#define IPV6_FL_A_RENEW	2 - -#define IPV6_FL_F_CREATE	1 -#define IPV6_FL_F_EXCL		2 - -#define IPV6_FL_S_NONE		0 -#define IPV6_FL_S_EXCL		1 -#define IPV6_FL_S_PROCESS	2 -#define IPV6_FL_S_USER		3 -#define IPV6_FL_S_ANY		255 - - -/* - *	Bitmask constant declarations to help applications select out the  - *	flow label and priority fields. - * - *	Note that this are in host byte order while the flowinfo field of - *	sockaddr_in6 is in network byte order. - */ - -#define IPV6_FLOWINFO_FLOWLABEL		0x000fffff -#define IPV6_FLOWINFO_PRIORITY		0x0ff00000 - -/* These definitions are obsolete */ -#define IPV6_PRIORITY_UNCHARACTERIZED	0x0000 -#define IPV6_PRIORITY_FILLER		0x0100 -#define IPV6_PRIORITY_UNATTENDED	0x0200 -#define IPV6_PRIORITY_RESERVED1		0x0300 -#define IPV6_PRIORITY_BULK		0x0400 -#define IPV6_PRIORITY_RESERVED2		0x0500 -#define IPV6_PRIORITY_INTERACTIVE	0x0600 -#define IPV6_PRIORITY_CONTROL		0x0700 -#define IPV6_PRIORITY_8			0x0800 -#define IPV6_PRIORITY_9			0x0900 -#define IPV6_PRIORITY_10		0x0a00 -#define IPV6_PRIORITY_11		0x0b00 -#define IPV6_PRIORITY_12		0x0c00 -#define IPV6_PRIORITY_13		0x0d00 -#define IPV6_PRIORITY_14		0x0e00 -#define IPV6_PRIORITY_15		0x0f00 - -/* - *	IPV6 extension headers - */ -#define IPPROTO_HOPOPTS		0	/* IPv6 hop-by-hop options	*/ -#define IPPROTO_ROUTING		43	/* IPv6 routing header		*/ -#define IPPROTO_FRAGMENT	44	/* IPv6 fragmentation header	*/ -#define IPPROTO_ICMPV6		58	/* ICMPv6			*/ -#define IPPROTO_NONE		59	/* IPv6 no next header		*/ -#define IPPROTO_DSTOPTS		60	/* IPv6 destination options	*/ -#define IPPROTO_MH		135	/* IPv6 mobility header		*/ - -/* - *	IPv6 TLV options. - */ -#define IPV6_TLV_PAD1		0 -#define IPV6_TLV_PADN		1 -#define IPV6_TLV_ROUTERALERT	5 -#define IPV6_TLV_JUMBO		194 -#define IPV6_TLV_HAO		201	/* home address option */ - -/* - *	IPV6 socket options - */ - -#define IPV6_ADDRFORM		1 -#define IPV6_2292PKTINFO	2 -#define IPV6_2292HOPOPTS	3 -#define IPV6_2292DSTOPTS	4 -#define IPV6_2292RTHDR		5 -#define IPV6_2292PKTOPTIONS	6 -#define IPV6_CHECKSUM		7 -#define IPV6_2292HOPLIMIT	8 -#define IPV6_NEXTHOP		9 -#define IPV6_AUTHHDR		10	/* obsolete */ -#define IPV6_FLOWINFO		11 - -#define IPV6_UNICAST_HOPS	16 -#define IPV6_MULTICAST_IF	17 -#define IPV6_MULTICAST_HOPS	18 -#define IPV6_MULTICAST_LOOP	19 -#define IPV6_ADD_MEMBERSHIP	20 -#define IPV6_DROP_MEMBERSHIP	21 -#define IPV6_ROUTER_ALERT	22 -#define IPV6_MTU_DISCOVER	23 -#define IPV6_MTU		24 -#define IPV6_RECVERR		25 -#define IPV6_V6ONLY		26 -#define IPV6_JOIN_ANYCAST	27 -#define IPV6_LEAVE_ANYCAST	28 - -/* IPV6_MTU_DISCOVER values */ -#define IPV6_PMTUDISC_DONT		0 -#define IPV6_PMTUDISC_WANT		1 -#define IPV6_PMTUDISC_DO		2 -#define IPV6_PMTUDISC_PROBE		3 - -/* Flowlabel */ -#define IPV6_FLOWLABEL_MGR	32 -#define IPV6_FLOWINFO_SEND	33 - -#define IPV6_IPSEC_POLICY	34 -#define IPV6_XFRM_POLICY	35 - -/* - * Multicast: - * Following socket options are shared between IPv4 and IPv6. - * - * MCAST_JOIN_GROUP		42 - * MCAST_BLOCK_SOURCE		43 - * MCAST_UNBLOCK_SOURCE		44 - * MCAST_LEAVE_GROUP		45 - * MCAST_JOIN_SOURCE_GROUP	46 - * MCAST_LEAVE_SOURCE_GROUP	47 - * MCAST_MSFILTER		48 - */ - -/* - * Advanced API (RFC3542) (1) - * - * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c. - */ - -#define IPV6_RECVPKTINFO	49 -#define IPV6_PKTINFO		50 -#define IPV6_RECVHOPLIMIT	51 -#define IPV6_HOPLIMIT		52 -#define IPV6_RECVHOPOPTS	53 -#define IPV6_HOPOPTS		54 -#define IPV6_RTHDRDSTOPTS	55 -#define IPV6_RECVRTHDR		56 -#define IPV6_RTHDR		57 -#define IPV6_RECVDSTOPTS	58 -#define IPV6_DSTOPTS		59 -#define IPV6_RECVPATHMTU	60 -#define IPV6_PATHMTU		61 -#define IPV6_DONTFRAG		62 -#if 0	/* not yet */ -#define IPV6_USE_MIN_MTU	63 -#endif - -/* - * Netfilter (1) - * - * Following socket options are used in ip6_tables; - * see include/linux/netfilter_ipv6/ip6_tables.h. - * - * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO		64 - * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES	65 - */ - -/* - * Advanced API (RFC3542) (2) - */ -#define IPV6_RECVTCLASS		66 -#define IPV6_TCLASS		67 - -/* - * Netfilter (2) - * - * Following socket options are used in ip6_tables; - * see include/linux/netfilter_ipv6/ip6_tables.h. - * - * IP6T_SO_GET_REVISION_MATCH	68 - * IP6T_SO_GET_REVISION_TARGET	69 - */ - -/* RFC5014: Source address selection */ -#define IPV6_ADDR_PREFERENCES	72 - -#define IPV6_PREFER_SRC_TMP		0x0001 -#define IPV6_PREFER_SRC_PUBLIC		0x0002 -#define IPV6_PREFER_SRC_PUBTMP_DEFAULT	0x0100 -#define IPV6_PREFER_SRC_COA		0x0004 -#define IPV6_PREFER_SRC_HOME		0x0400 -#define IPV6_PREFER_SRC_CGA		0x0008 -#define IPV6_PREFER_SRC_NONCGA		0x0800 - -/* RFC5082: Generalized Ttl Security Mechanism */ -#define IPV6_MINHOPCOUNT		73 - -#define IPV6_ORIGDSTADDR        74 -#define IPV6_RECVORIGDSTADDR    IPV6_ORIGDSTADDR -#define IPV6_TRANSPARENT        75 -#define IPV6_UNICAST_IF         76 - -/* - * Multicast Routing: - * see include/linux/mroute6.h. - * - * MRT6_INIT			200 - * MRT6_DONE			201 - * MRT6_ADD_MIF			202 - * MRT6_DEL_MIF			203 - * MRT6_ADD_MFC			204 - * MRT6_DEL_MFC			205 - * MRT6_VERSION			206 - * MRT6_ASSERT			207 - * MRT6_PIM			208 - * (reserved)			209 - */ -#endif diff --git a/include/linux/in_route.h b/include/linux/in_route.h deleted file mode 100644 index b261b8c915f..00000000000 --- a/include/linux/in_route.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _LINUX_IN_ROUTE_H -#define _LINUX_IN_ROUTE_H - -/* IPv4 routing cache flags */ - -#define RTCF_DEAD	RTNH_F_DEAD -#define RTCF_ONLINK	RTNH_F_ONLINK - -/* Obsolete flag. About to be deleted */ -#define RTCF_NOPMTUDISC RTM_F_NOPMTUDISC - -#define RTCF_NOTIFY	0x00010000 -#define RTCF_DIRECTDST	0x00020000 /* unused */ -#define RTCF_REDIRECTED	0x00040000 -#define RTCF_TPROXY	0x00080000 /* unused */ - -#define RTCF_FAST	0x00200000 /* unused */ -#define RTCF_MASQ	0x00400000 /* unused */ -#define RTCF_SNAT	0x00800000 /* unused */ -#define RTCF_DOREDIRECT 0x01000000 -#define RTCF_DIRECTSRC	0x04000000 -#define RTCF_DNAT	0x08000000 -#define RTCF_BROADCAST	0x10000000 -#define RTCF_MULTICAST	0x20000000 -#define RTCF_REJECT	0x40000000 /* unused */ -#define RTCF_LOCAL	0x80000000 - -#define RTCF_NAT	(RTCF_DNAT|RTCF_SNAT) - -#define RT_TOS(tos)	((tos)&IPTOS_TOS_MASK) - -#endif /* _LINUX_IN_ROUTE_H */ diff --git a/include/linux/inet_diag.h b/include/linux/inet_diag.h index e788c186ed3..46da02410a0 100644 --- a/include/linux/inet_diag.h +++ b/include/linux/inet_diag.h @@ -1,138 +1,8 @@  #ifndef _INET_DIAG_H_  #define _INET_DIAG_H_ 1 -#include <linux/types.h> +#include <uapi/linux/inet_diag.h> -/* Just some random number */ -#define TCPDIAG_GETSOCK 18 -#define DCCPDIAG_GETSOCK 19 - -#define INET_DIAG_GETSOCK_MAX 24 - -/* Socket identity */ -struct inet_diag_sockid { -	__be16	idiag_sport; -	__be16	idiag_dport; -	__be32	idiag_src[4]; -	__be32	idiag_dst[4]; -	__u32	idiag_if; -	__u32	idiag_cookie[2]; -#define INET_DIAG_NOCOOKIE (~0U) -}; - -/* Request structure */ - -struct inet_diag_req { -	__u8	idiag_family;		/* Family of addresses. */ -	__u8	idiag_src_len; -	__u8	idiag_dst_len; -	__u8	idiag_ext;		/* Query extended information */ - -	struct inet_diag_sockid id; - -	__u32	idiag_states;		/* States to dump */ -	__u32	idiag_dbs;		/* Tables to dump (NI) */ -}; - -struct inet_diag_req_v2 { -	__u8	sdiag_family; -	__u8	sdiag_protocol; -	__u8	idiag_ext; -	__u8	pad; -	__u32	idiag_states; -	struct inet_diag_sockid id; -}; - -enum { -	INET_DIAG_REQ_NONE, -	INET_DIAG_REQ_BYTECODE, -}; - -#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE - -/* Bytecode is sequence of 4 byte commands followed by variable arguments. - * All the commands identified by "code" are conditional jumps forward: - * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be - * length of the command and its arguments. - */ -  -struct inet_diag_bc_op { -	unsigned char	code; -	unsigned char	yes; -	unsigned short	no; -}; - -enum { -	INET_DIAG_BC_NOP, -	INET_DIAG_BC_JMP, -	INET_DIAG_BC_S_GE, -	INET_DIAG_BC_S_LE, -	INET_DIAG_BC_D_GE, -	INET_DIAG_BC_D_LE, -	INET_DIAG_BC_AUTO, -	INET_DIAG_BC_S_COND, -	INET_DIAG_BC_D_COND, -}; - -struct inet_diag_hostcond { -	__u8	family; -	__u8	prefix_len; -	int	port; -	__be32	addr[0]; -}; - -/* Base info structure. It contains socket identity (addrs/ports/cookie) - * and, alas, the information shown by netstat. */ -struct inet_diag_msg { -	__u8	idiag_family; -	__u8	idiag_state; -	__u8	idiag_timer; -	__u8	idiag_retrans; - -	struct inet_diag_sockid id; - -	__u32	idiag_expires; -	__u32	idiag_rqueue; -	__u32	idiag_wqueue; -	__u32	idiag_uid; -	__u32	idiag_inode; -}; - -/* Extensions */ - -enum { -	INET_DIAG_NONE, -	INET_DIAG_MEMINFO, -	INET_DIAG_INFO, -	INET_DIAG_VEGASINFO, -	INET_DIAG_CONG, -	INET_DIAG_TOS, -	INET_DIAG_TCLASS, -	INET_DIAG_SKMEMINFO, -}; - -#define INET_DIAG_MAX INET_DIAG_SKMEMINFO - - -/* INET_DIAG_MEM */ - -struct inet_diag_meminfo { -	__u32	idiag_rmem; -	__u32	idiag_wmem; -	__u32	idiag_fmem; -	__u32	idiag_tmem; -}; - -/* INET_DIAG_VEGASINFO */ - -struct tcpvegas_info { -	__u32	tcpv_enabled; -	__u32	tcpv_rttcnt; -	__u32	tcpv_rtt; -	__u32	tcpv_minrtt; -}; - -#ifdef __KERNEL__  struct sock;  struct inet_hashinfo;  struct nlattr; @@ -173,6 +43,4 @@ int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk);  extern int  inet_diag_register(const struct inet_diag_handler *handler);  extern void inet_diag_unregister(const struct inet_diag_handler *handler); -#endif /* __KERNEL__ */ -  #endif /* _INET_DIAG_H_ */ diff --git a/include/linux/inotify.h b/include/linux/inotify.h index d33041e2a42..23aede0b584 100644 --- a/include/linux/inotify.h +++ b/include/linux/inotify.h @@ -3,75 +3,12 @@   *   * Copyright (C) 2005 John McCutchan   */ -  #ifndef _LINUX_INOTIFY_H  #define _LINUX_INOTIFY_H -/* For O_CLOEXEC and O_NONBLOCK */ -#include <linux/fcntl.h> -#include <linux/types.h> - -/* - * struct inotify_event - structure read from the inotify device for each event - * - * When you are watching a directory, you will receive the filename for events - * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd. - */ -struct inotify_event { -	__s32		wd;		/* watch descriptor */ -	__u32		mask;		/* watch mask */ -	__u32		cookie;		/* cookie to synchronize two events */ -	__u32		len;		/* length (including nulls) of name */ -	char		name[0];	/* stub for possible name */ -}; - -/* the following are legal, implemented events that user-space can watch for */ -#define IN_ACCESS		0x00000001	/* File was accessed */ -#define IN_MODIFY		0x00000002	/* File was modified */ -#define IN_ATTRIB		0x00000004	/* Metadata changed */ -#define IN_CLOSE_WRITE		0x00000008	/* Writtable file was closed */ -#define IN_CLOSE_NOWRITE	0x00000010	/* Unwrittable file closed */ -#define IN_OPEN			0x00000020	/* File was opened */ -#define IN_MOVED_FROM		0x00000040	/* File was moved from X */ -#define IN_MOVED_TO		0x00000080	/* File was moved to Y */ -#define IN_CREATE		0x00000100	/* Subfile was created */ -#define IN_DELETE		0x00000200	/* Subfile was deleted */ -#define IN_DELETE_SELF		0x00000400	/* Self was deleted */ -#define IN_MOVE_SELF		0x00000800	/* Self was moved */ - -/* the following are legal events.  they are sent as needed to any watch */ -#define IN_UNMOUNT		0x00002000	/* Backing fs was unmounted */ -#define IN_Q_OVERFLOW		0x00004000	/* Event queued overflowed */ -#define IN_IGNORED		0x00008000	/* File was ignored */ - -/* helper events */ -#define IN_CLOSE		(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */ -#define IN_MOVE			(IN_MOVED_FROM | IN_MOVED_TO) /* moves */ - -/* special flags */ -#define IN_ONLYDIR		0x01000000	/* only watch the path if it is a directory */ -#define IN_DONT_FOLLOW		0x02000000	/* don't follow a sym link */ -#define IN_EXCL_UNLINK		0x04000000	/* exclude events on unlinked objects */ -#define IN_MASK_ADD		0x20000000	/* add to the mask of an already existing watch */ -#define IN_ISDIR		0x40000000	/* event occurred against dir */ -#define IN_ONESHOT		0x80000000	/* only send event once */ - -/* - * All of the events - we build the list by hand so that we can add flags in - * the future and not break backward compatibility.  Apps will get only the - * events that they originally wanted.  Be sure to add new events here! - */ -#define IN_ALL_EVENTS	(IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ -			 IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \ -			 IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \ -			 IN_MOVE_SELF) - -/* Flags for sys_inotify_init1.  */ -#define IN_CLOEXEC O_CLOEXEC -#define IN_NONBLOCK O_NONBLOCK - -#ifdef __KERNEL__  #include <linux/sysctl.h> +#include <uapi/linux/inotify.h> +  extern struct ctl_table inotify_table[]; /* for sysctl */  #define ALL_INOTIFY_BITS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ @@ -82,6 +19,4 @@ extern struct ctl_table inotify_table[]; /* for sysctl */  			  IN_DONT_FOLLOW | IN_EXCL_UNLINK | IN_MASK_ADD | \  			  IN_ISDIR | IN_ONESHOT) -#endif -  #endif	/* _LINUX_INOTIFY_H */ diff --git a/include/linux/input.h b/include/linux/input.h index 15464ba6bf5..cab994ba6d9 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -1,6 +1,3 @@ -#ifndef _INPUT_H -#define _INPUT_H -  /*   * Copyright (c) 1999-2002 Vojtech Pavlik   * @@ -8,1156 +5,15 @@   * under the terms of the GNU General Public License version 2 as published by   * the Free Software Foundation.   */ +#ifndef _INPUT_H +#define _INPUT_H -#ifdef __KERNEL__  #include <linux/time.h>  #include <linux/list.h> -#else -#include <sys/time.h> -#include <sys/ioctl.h> -#include <sys/types.h> -#include <linux/types.h> -#endif - -/* - * The event structure itself - */ - -struct input_event { -	struct timeval time; -	__u16 type; -	__u16 code; -	__s32 value; -}; - -/* - * Protocol version. - */ - -#define EV_VERSION		0x010001 - -/* - * IOCTLs (0x00 - 0x7f) - */ - -struct input_id { -	__u16 bustype; -	__u16 vendor; -	__u16 product; -	__u16 version; -}; - -/** - * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls - * @value: latest reported value for the axis. - * @minimum: specifies minimum value for the axis. - * @maximum: specifies maximum value for the axis. - * @fuzz: specifies fuzz value that is used to filter noise from - *	the event stream. - * @flat: values that are within this value will be discarded by - *	joydev interface and reported as 0 instead. - * @resolution: specifies resolution for the values reported for - *	the axis. - * - * Note that input core does not clamp reported values to the - * [minimum, maximum] limits, such task is left to userspace. - * - * Resolution for main axes (ABS_X, ABS_Y, ABS_Z) is reported in - * units per millimeter (units/mm), resolution for rotational axes - * (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian. - */ -struct input_absinfo { -	__s32 value; -	__s32 minimum; -	__s32 maximum; -	__s32 fuzz; -	__s32 flat; -	__s32 resolution; -}; - -/** - * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls - * @scancode: scancode represented in machine-endian form. - * @len: length of the scancode that resides in @scancode buffer. - * @index: index in the keymap, may be used instead of scancode - * @flags: allows to specify how kernel should handle the request. For - *	example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel - *	should perform lookup in keymap by @index instead of @scancode - * @keycode: key code assigned to this scancode - * - * The structure is used to retrieve and modify keymap data. Users have - * option of performing lookup either by @scancode itself or by @index - * in keymap entry. EVIOCGKEYCODE will also return scancode or index - * (depending on which element was used to perform lookup). - */ -struct input_keymap_entry { -#define INPUT_KEYMAP_BY_INDEX	(1 << 0) -	__u8  flags; -	__u8  len; -	__u16 index; -	__u32 keycode; -	__u8  scancode[32]; -}; - -#define EVIOCGVERSION		_IOR('E', 0x01, int)			/* get driver version */ -#define EVIOCGID		_IOR('E', 0x02, struct input_id)	/* get device ID */ -#define EVIOCGREP		_IOR('E', 0x03, unsigned int[2])	/* get repeat settings */ -#define EVIOCSREP		_IOW('E', 0x03, unsigned int[2])	/* set repeat settings */ - -#define EVIOCGKEYCODE		_IOR('E', 0x04, unsigned int[2])        /* get keycode */ -#define EVIOCGKEYCODE_V2	_IOR('E', 0x04, struct input_keymap_entry) -#define EVIOCSKEYCODE		_IOW('E', 0x04, unsigned int[2])        /* set keycode */ -#define EVIOCSKEYCODE_V2	_IOW('E', 0x04, struct input_keymap_entry) - -#define EVIOCGNAME(len)		_IOC(_IOC_READ, 'E', 0x06, len)		/* get device name */ -#define EVIOCGPHYS(len)		_IOC(_IOC_READ, 'E', 0x07, len)		/* get physical location */ -#define EVIOCGUNIQ(len)		_IOC(_IOC_READ, 'E', 0x08, len)		/* get unique identifier */ -#define EVIOCGPROP(len)		_IOC(_IOC_READ, 'E', 0x09, len)		/* get device properties */ - -/** - * EVIOCGMTSLOTS(len) - get MT slot values - * @len: size of the data buffer in bytes - * - * The ioctl buffer argument should be binary equivalent to - * - * struct input_mt_request_layout { - *	__u32 code; - *	__s32 values[num_slots]; - * }; - * - * where num_slots is the (arbitrary) number of MT slots to extract. - * - * The ioctl size argument (len) is the size of the buffer, which - * should satisfy len = (num_slots + 1) * sizeof(__s32).  If len is - * too small to fit all available slots, the first num_slots are - * returned. - * - * Before the call, code is set to the wanted ABS_MT event type. On - * return, values[] is filled with the slot values for the specified - * ABS_MT code. - * - * If the request code is not an ABS_MT value, -EINVAL is returned. - */ -#define EVIOCGMTSLOTS(len)	_IOC(_IOC_READ, 'E', 0x0a, len) - -#define EVIOCGKEY(len)		_IOC(_IOC_READ, 'E', 0x18, len)		/* get global key state */ -#define EVIOCGLED(len)		_IOC(_IOC_READ, 'E', 0x19, len)		/* get all LEDs */ -#define EVIOCGSND(len)		_IOC(_IOC_READ, 'E', 0x1a, len)		/* get all sounds status */ -#define EVIOCGSW(len)		_IOC(_IOC_READ, 'E', 0x1b, len)		/* get all switch states */ - -#define EVIOCGBIT(ev,len)	_IOC(_IOC_READ, 'E', 0x20 + (ev), len)	/* get event bits */ -#define EVIOCGABS(abs)		_IOR('E', 0x40 + (abs), struct input_absinfo)	/* get abs value/limits */ -#define EVIOCSABS(abs)		_IOW('E', 0xc0 + (abs), struct input_absinfo)	/* set abs value/limits */ - -#define EVIOCSFF		_IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect))	/* send a force effect to a force feedback device */ -#define EVIOCRMFF		_IOW('E', 0x81, int)			/* Erase a force effect */ -#define EVIOCGEFFECTS		_IOR('E', 0x84, int)			/* Report number of effects playable at the same time */ - -#define EVIOCGRAB		_IOW('E', 0x90, int)			/* Grab/Release device */ - -#define EVIOCSCLOCKID		_IOW('E', 0xa0, int)			/* Set clockid to be used for timestamps */ - -/* - * Device properties and quirks - */ - -#define INPUT_PROP_POINTER		0x00	/* needs a pointer */ -#define INPUT_PROP_DIRECT		0x01	/* direct input devices */ -#define INPUT_PROP_BUTTONPAD		0x02	/* has button(s) under pad */ -#define INPUT_PROP_SEMI_MT		0x03	/* touch rectangle only */ - -#define INPUT_PROP_MAX			0x1f -#define INPUT_PROP_CNT			(INPUT_PROP_MAX + 1) - -/* - * Event types - */ - -#define EV_SYN			0x00 -#define EV_KEY			0x01 -#define EV_REL			0x02 -#define EV_ABS			0x03 -#define EV_MSC			0x04 -#define EV_SW			0x05 -#define EV_LED			0x11 -#define EV_SND			0x12 -#define EV_REP			0x14 -#define EV_FF			0x15 -#define EV_PWR			0x16 -#define EV_FF_STATUS		0x17 -#define EV_MAX			0x1f -#define EV_CNT			(EV_MAX+1) - -/* - * Synchronization events. - */ - -#define SYN_REPORT		0 -#define SYN_CONFIG		1 -#define SYN_MT_REPORT		2 -#define SYN_DROPPED		3 - -/* - * Keys and buttons - * - * Most of the keys/buttons are modeled after USB HUT 1.12 - * (see http://www.usb.org/developers/hidpage). - * Abbreviations in the comments: - * AC - Application Control - * AL - Application Launch Button - * SC - System Control - */ - -#define KEY_RESERVED		0 -#define KEY_ESC			1 -#define KEY_1			2 -#define KEY_2			3 -#define KEY_3			4 -#define KEY_4			5 -#define KEY_5			6 -#define KEY_6			7 -#define KEY_7			8 -#define KEY_8			9 -#define KEY_9			10 -#define KEY_0			11 -#define KEY_MINUS		12 -#define KEY_EQUAL		13 -#define KEY_BACKSPACE		14 -#define KEY_TAB			15 -#define KEY_Q			16 -#define KEY_W			17 -#define KEY_E			18 -#define KEY_R			19 -#define KEY_T			20 -#define KEY_Y			21 -#define KEY_U			22 -#define KEY_I			23 -#define KEY_O			24 -#define KEY_P			25 -#define KEY_LEFTBRACE		26 -#define KEY_RIGHTBRACE		27 -#define KEY_ENTER		28 -#define KEY_LEFTCTRL		29 -#define KEY_A			30 -#define KEY_S			31 -#define KEY_D			32 -#define KEY_F			33 -#define KEY_G			34 -#define KEY_H			35 -#define KEY_J			36 -#define KEY_K			37 -#define KEY_L			38 -#define KEY_SEMICOLON		39 -#define KEY_APOSTROPHE		40 -#define KEY_GRAVE		41 -#define KEY_LEFTSHIFT		42 -#define KEY_BACKSLASH		43 -#define KEY_Z			44 -#define KEY_X			45 -#define KEY_C			46 -#define KEY_V			47 -#define KEY_B			48 -#define KEY_N			49 -#define KEY_M			50 -#define KEY_COMMA		51 -#define KEY_DOT			52 -#define KEY_SLASH		53 -#define KEY_RIGHTSHIFT		54 -#define KEY_KPASTERISK		55 -#define KEY_LEFTALT		56 -#define KEY_SPACE		57 -#define KEY_CAPSLOCK		58 -#define KEY_F1			59 -#define KEY_F2			60 -#define KEY_F3			61 -#define KEY_F4			62 -#define KEY_F5			63 -#define KEY_F6			64 -#define KEY_F7			65 -#define KEY_F8			66 -#define KEY_F9			67 -#define KEY_F10			68 -#define KEY_NUMLOCK		69 -#define KEY_SCROLLLOCK		70 -#define KEY_KP7			71 -#define KEY_KP8			72 -#define KEY_KP9			73 -#define KEY_KPMINUS		74 -#define KEY_KP4			75 -#define KEY_KP5			76 -#define KEY_KP6			77 -#define KEY_KPPLUS		78 -#define KEY_KP1			79 -#define KEY_KP2			80 -#define KEY_KP3			81 -#define KEY_KP0			82 -#define KEY_KPDOT		83 - -#define KEY_ZENKAKUHANKAKU	85 -#define KEY_102ND		86 -#define KEY_F11			87 -#define KEY_F12			88 -#define KEY_RO			89 -#define KEY_KATAKANA		90 -#define KEY_HIRAGANA		91 -#define KEY_HENKAN		92 -#define KEY_KATAKANAHIRAGANA	93 -#define KEY_MUHENKAN		94 -#define KEY_KPJPCOMMA		95 -#define KEY_KPENTER		96 -#define KEY_RIGHTCTRL		97 -#define KEY_KPSLASH		98 -#define KEY_SYSRQ		99 -#define KEY_RIGHTALT		100 -#define KEY_LINEFEED		101 -#define KEY_HOME		102 -#define KEY_UP			103 -#define KEY_PAGEUP		104 -#define KEY_LEFT		105 -#define KEY_RIGHT		106 -#define KEY_END			107 -#define KEY_DOWN		108 -#define KEY_PAGEDOWN		109 -#define KEY_INSERT		110 -#define KEY_DELETE		111 -#define KEY_MACRO		112 -#define KEY_MUTE		113 -#define KEY_VOLUMEDOWN		114 -#define KEY_VOLUMEUP		115 -#define KEY_POWER		116	/* SC System Power Down */ -#define KEY_KPEQUAL		117 -#define KEY_KPPLUSMINUS		118 -#define KEY_PAUSE		119 -#define KEY_SCALE		120	/* AL Compiz Scale (Expose) */ - -#define KEY_KPCOMMA		121 -#define KEY_HANGEUL		122 -#define KEY_HANGUEL		KEY_HANGEUL -#define KEY_HANJA		123 -#define KEY_YEN			124 -#define KEY_LEFTMETA		125 -#define KEY_RIGHTMETA		126 -#define KEY_COMPOSE		127 - -#define KEY_STOP		128	/* AC Stop */ -#define KEY_AGAIN		129 -#define KEY_PROPS		130	/* AC Properties */ -#define KEY_UNDO		131	/* AC Undo */ -#define KEY_FRONT		132 -#define KEY_COPY		133	/* AC Copy */ -#define KEY_OPEN		134	/* AC Open */ -#define KEY_PASTE		135	/* AC Paste */ -#define KEY_FIND		136	/* AC Search */ -#define KEY_CUT			137	/* AC Cut */ -#define KEY_HELP		138	/* AL Integrated Help Center */ -#define KEY_MENU		139	/* Menu (show menu) */ -#define KEY_CALC		140	/* AL Calculator */ -#define KEY_SETUP		141 -#define KEY_SLEEP		142	/* SC System Sleep */ -#define KEY_WAKEUP		143	/* System Wake Up */ -#define KEY_FILE		144	/* AL Local Machine Browser */ -#define KEY_SENDFILE		145 -#define KEY_DELETEFILE		146 -#define KEY_XFER		147 -#define KEY_PROG1		148 -#define KEY_PROG2		149 -#define KEY_WWW			150	/* AL Internet Browser */ -#define KEY_MSDOS		151 -#define KEY_COFFEE		152	/* AL Terminal Lock/Screensaver */ -#define KEY_SCREENLOCK		KEY_COFFEE -#define KEY_DIRECTION		153 -#define KEY_CYCLEWINDOWS	154 -#define KEY_MAIL		155 -#define KEY_BOOKMARKS		156	/* AC Bookmarks */ -#define KEY_COMPUTER		157 -#define KEY_BACK		158	/* AC Back */ -#define KEY_FORWARD		159	/* AC Forward */ -#define KEY_CLOSECD		160 -#define KEY_EJECTCD		161 -#define KEY_EJECTCLOSECD	162 -#define KEY_NEXTSONG		163 -#define KEY_PLAYPAUSE		164 -#define KEY_PREVIOUSSONG	165 -#define KEY_STOPCD		166 -#define KEY_RECORD		167 -#define KEY_REWIND		168 -#define KEY_PHONE		169	/* Media Select Telephone */ -#define KEY_ISO			170 -#define KEY_CONFIG		171	/* AL Consumer Control Configuration */ -#define KEY_HOMEPAGE		172	/* AC Home */ -#define KEY_REFRESH		173	/* AC Refresh */ -#define KEY_EXIT		174	/* AC Exit */ -#define KEY_MOVE		175 -#define KEY_EDIT		176 -#define KEY_SCROLLUP		177 -#define KEY_SCROLLDOWN		178 -#define KEY_KPLEFTPAREN		179 -#define KEY_KPRIGHTPAREN	180 -#define KEY_NEW			181	/* AC New */ -#define KEY_REDO		182	/* AC Redo/Repeat */ - -#define KEY_F13			183 -#define KEY_F14			184 -#define KEY_F15			185 -#define KEY_F16			186 -#define KEY_F17			187 -#define KEY_F18			188 -#define KEY_F19			189 -#define KEY_F20			190 -#define KEY_F21			191 -#define KEY_F22			192 -#define KEY_F23			193 -#define KEY_F24			194 - -#define KEY_PLAYCD		200 -#define KEY_PAUSECD		201 -#define KEY_PROG3		202 -#define KEY_PROG4		203 -#define KEY_DASHBOARD		204	/* AL Dashboard */ -#define KEY_SUSPEND		205 -#define KEY_CLOSE		206	/* AC Close */ -#define KEY_PLAY		207 -#define KEY_FASTFORWARD		208 -#define KEY_BASSBOOST		209 -#define KEY_PRINT		210	/* AC Print */ -#define KEY_HP			211 -#define KEY_CAMERA		212 -#define KEY_SOUND		213 -#define KEY_QUESTION		214 -#define KEY_EMAIL		215 -#define KEY_CHAT		216 -#define KEY_SEARCH		217 -#define KEY_CONNECT		218 -#define KEY_FINANCE		219	/* AL Checkbook/Finance */ -#define KEY_SPORT		220 -#define KEY_SHOP		221 -#define KEY_ALTERASE		222 -#define KEY_CANCEL		223	/* AC Cancel */ -#define KEY_BRIGHTNESSDOWN	224 -#define KEY_BRIGHTNESSUP	225 -#define KEY_MEDIA		226 - -#define KEY_SWITCHVIDEOMODE	227	/* Cycle between available video -					   outputs (Monitor/LCD/TV-out/etc) */ -#define KEY_KBDILLUMTOGGLE	228 -#define KEY_KBDILLUMDOWN	229 -#define KEY_KBDILLUMUP		230 - -#define KEY_SEND		231	/* AC Send */ -#define KEY_REPLY		232	/* AC Reply */ -#define KEY_FORWARDMAIL		233	/* AC Forward Msg */ -#define KEY_SAVE		234	/* AC Save */ -#define KEY_DOCUMENTS		235 - -#define KEY_BATTERY		236 - -#define KEY_BLUETOOTH		237 -#define KEY_WLAN		238 -#define KEY_UWB			239 - -#define KEY_UNKNOWN		240 - -#define KEY_VIDEO_NEXT		241	/* drive next video source */ -#define KEY_VIDEO_PREV		242	/* drive previous video source */ -#define KEY_BRIGHTNESS_CYCLE	243	/* brightness up, after max is min */ -#define KEY_BRIGHTNESS_ZERO	244	/* brightness off, use ambient */ -#define KEY_DISPLAY_OFF		245	/* display device to off state */ - -#define KEY_WIMAX		246 -#define KEY_RFKILL		247	/* Key that controls all radios */ - -#define KEY_MICMUTE		248	/* Mute / unmute the microphone */ - -/* Code 255 is reserved for special needs of AT keyboard driver */ - -#define BTN_MISC		0x100 -#define BTN_0			0x100 -#define BTN_1			0x101 -#define BTN_2			0x102 -#define BTN_3			0x103 -#define BTN_4			0x104 -#define BTN_5			0x105 -#define BTN_6			0x106 -#define BTN_7			0x107 -#define BTN_8			0x108 -#define BTN_9			0x109 - -#define BTN_MOUSE		0x110 -#define BTN_LEFT		0x110 -#define BTN_RIGHT		0x111 -#define BTN_MIDDLE		0x112 -#define BTN_SIDE		0x113 -#define BTN_EXTRA		0x114 -#define BTN_FORWARD		0x115 -#define BTN_BACK		0x116 -#define BTN_TASK		0x117 - -#define BTN_JOYSTICK		0x120 -#define BTN_TRIGGER		0x120 -#define BTN_THUMB		0x121 -#define BTN_THUMB2		0x122 -#define BTN_TOP			0x123 -#define BTN_TOP2		0x124 -#define BTN_PINKIE		0x125 -#define BTN_BASE		0x126 -#define BTN_BASE2		0x127 -#define BTN_BASE3		0x128 -#define BTN_BASE4		0x129 -#define BTN_BASE5		0x12a -#define BTN_BASE6		0x12b -#define BTN_DEAD		0x12f - -#define BTN_GAMEPAD		0x130 -#define BTN_A			0x130 -#define BTN_B			0x131 -#define BTN_C			0x132 -#define BTN_X			0x133 -#define BTN_Y			0x134 -#define BTN_Z			0x135 -#define BTN_TL			0x136 -#define BTN_TR			0x137 -#define BTN_TL2			0x138 -#define BTN_TR2			0x139 -#define BTN_SELECT		0x13a -#define BTN_START		0x13b -#define BTN_MODE		0x13c -#define BTN_THUMBL		0x13d -#define BTN_THUMBR		0x13e - -#define BTN_DIGI		0x140 -#define BTN_TOOL_PEN		0x140 -#define BTN_TOOL_RUBBER		0x141 -#define BTN_TOOL_BRUSH		0x142 -#define BTN_TOOL_PENCIL		0x143 -#define BTN_TOOL_AIRBRUSH	0x144 -#define BTN_TOOL_FINGER		0x145 -#define BTN_TOOL_MOUSE		0x146 -#define BTN_TOOL_LENS		0x147 -#define BTN_TOOL_QUINTTAP	0x148	/* Five fingers on trackpad */ -#define BTN_TOUCH		0x14a -#define BTN_STYLUS		0x14b -#define BTN_STYLUS2		0x14c -#define BTN_TOOL_DOUBLETAP	0x14d -#define BTN_TOOL_TRIPLETAP	0x14e -#define BTN_TOOL_QUADTAP	0x14f	/* Four fingers on trackpad */ - -#define BTN_WHEEL		0x150 -#define BTN_GEAR_DOWN		0x150 -#define BTN_GEAR_UP		0x151 - -#define KEY_OK			0x160 -#define KEY_SELECT		0x161 -#define KEY_GOTO		0x162 -#define KEY_CLEAR		0x163 -#define KEY_POWER2		0x164 -#define KEY_OPTION		0x165 -#define KEY_INFO		0x166	/* AL OEM Features/Tips/Tutorial */ -#define KEY_TIME		0x167 -#define KEY_VENDOR		0x168 -#define KEY_ARCHIVE		0x169 -#define KEY_PROGRAM		0x16a	/* Media Select Program Guide */ -#define KEY_CHANNEL		0x16b -#define KEY_FAVORITES		0x16c -#define KEY_EPG			0x16d -#define KEY_PVR			0x16e	/* Media Select Home */ -#define KEY_MHP			0x16f -#define KEY_LANGUAGE		0x170 -#define KEY_TITLE		0x171 -#define KEY_SUBTITLE		0x172 -#define KEY_ANGLE		0x173 -#define KEY_ZOOM		0x174 -#define KEY_MODE		0x175 -#define KEY_KEYBOARD		0x176 -#define KEY_SCREEN		0x177 -#define KEY_PC			0x178	/* Media Select Computer */ -#define KEY_TV			0x179	/* Media Select TV */ -#define KEY_TV2			0x17a	/* Media Select Cable */ -#define KEY_VCR			0x17b	/* Media Select VCR */ -#define KEY_VCR2		0x17c	/* VCR Plus */ -#define KEY_SAT			0x17d	/* Media Select Satellite */ -#define KEY_SAT2		0x17e -#define KEY_CD			0x17f	/* Media Select CD */ -#define KEY_TAPE		0x180	/* Media Select Tape */ -#define KEY_RADIO		0x181 -#define KEY_TUNER		0x182	/* Media Select Tuner */ -#define KEY_PLAYER		0x183 -#define KEY_TEXT		0x184 -#define KEY_DVD			0x185	/* Media Select DVD */ -#define KEY_AUX			0x186 -#define KEY_MP3			0x187 -#define KEY_AUDIO		0x188	/* AL Audio Browser */ -#define KEY_VIDEO		0x189	/* AL Movie Browser */ -#define KEY_DIRECTORY		0x18a -#define KEY_LIST		0x18b -#define KEY_MEMO		0x18c	/* Media Select Messages */ -#define KEY_CALENDAR		0x18d -#define KEY_RED			0x18e -#define KEY_GREEN		0x18f -#define KEY_YELLOW		0x190 -#define KEY_BLUE		0x191 -#define KEY_CHANNELUP		0x192	/* Channel Increment */ -#define KEY_CHANNELDOWN		0x193	/* Channel Decrement */ -#define KEY_FIRST		0x194 -#define KEY_LAST		0x195	/* Recall Last */ -#define KEY_AB			0x196 -#define KEY_NEXT		0x197 -#define KEY_RESTART		0x198 -#define KEY_SLOW		0x199 -#define KEY_SHUFFLE		0x19a -#define KEY_BREAK		0x19b -#define KEY_PREVIOUS		0x19c -#define KEY_DIGITS		0x19d -#define KEY_TEEN		0x19e -#define KEY_TWEN		0x19f -#define KEY_VIDEOPHONE		0x1a0	/* Media Select Video Phone */ -#define KEY_GAMES		0x1a1	/* Media Select Games */ -#define KEY_ZOOMIN		0x1a2	/* AC Zoom In */ -#define KEY_ZOOMOUT		0x1a3	/* AC Zoom Out */ -#define KEY_ZOOMRESET		0x1a4	/* AC Zoom */ -#define KEY_WORDPROCESSOR	0x1a5	/* AL Word Processor */ -#define KEY_EDITOR		0x1a6	/* AL Text Editor */ -#define KEY_SPREADSHEET		0x1a7	/* AL Spreadsheet */ -#define KEY_GRAPHICSEDITOR	0x1a8	/* AL Graphics Editor */ -#define KEY_PRESENTATION	0x1a9	/* AL Presentation App */ -#define KEY_DATABASE		0x1aa	/* AL Database App */ -#define KEY_NEWS		0x1ab	/* AL Newsreader */ -#define KEY_VOICEMAIL		0x1ac	/* AL Voicemail */ -#define KEY_ADDRESSBOOK		0x1ad	/* AL Contacts/Address Book */ -#define KEY_MESSENGER		0x1ae	/* AL Instant Messaging */ -#define KEY_DISPLAYTOGGLE	0x1af	/* Turn display (LCD) on and off */ -#define KEY_SPELLCHECK		0x1b0   /* AL Spell Check */ -#define KEY_LOGOFF		0x1b1   /* AL Logoff */ - -#define KEY_DOLLAR		0x1b2 -#define KEY_EURO		0x1b3 - -#define KEY_FRAMEBACK		0x1b4	/* Consumer - transport controls */ -#define KEY_FRAMEFORWARD	0x1b5 -#define KEY_CONTEXT_MENU	0x1b6	/* GenDesc - system context menu */ -#define KEY_MEDIA_REPEAT	0x1b7	/* Consumer - transport control */ -#define KEY_10CHANNELSUP	0x1b8	/* 10 channels up (10+) */ -#define KEY_10CHANNELSDOWN	0x1b9	/* 10 channels down (10-) */ -#define KEY_IMAGES		0x1ba	/* AL Image Browser */ - -#define KEY_DEL_EOL		0x1c0 -#define KEY_DEL_EOS		0x1c1 -#define KEY_INS_LINE		0x1c2 -#define KEY_DEL_LINE		0x1c3 - -#define KEY_FN			0x1d0 -#define KEY_FN_ESC		0x1d1 -#define KEY_FN_F1		0x1d2 -#define KEY_FN_F2		0x1d3 -#define KEY_FN_F3		0x1d4 -#define KEY_FN_F4		0x1d5 -#define KEY_FN_F5		0x1d6 -#define KEY_FN_F6		0x1d7 -#define KEY_FN_F7		0x1d8 -#define KEY_FN_F8		0x1d9 -#define KEY_FN_F9		0x1da -#define KEY_FN_F10		0x1db -#define KEY_FN_F11		0x1dc -#define KEY_FN_F12		0x1dd -#define KEY_FN_1		0x1de -#define KEY_FN_2		0x1df -#define KEY_FN_D		0x1e0 -#define KEY_FN_E		0x1e1 -#define KEY_FN_F		0x1e2 -#define KEY_FN_S		0x1e3 -#define KEY_FN_B		0x1e4 - -#define KEY_BRL_DOT1		0x1f1 -#define KEY_BRL_DOT2		0x1f2 -#define KEY_BRL_DOT3		0x1f3 -#define KEY_BRL_DOT4		0x1f4 -#define KEY_BRL_DOT5		0x1f5 -#define KEY_BRL_DOT6		0x1f6 -#define KEY_BRL_DOT7		0x1f7 -#define KEY_BRL_DOT8		0x1f8 -#define KEY_BRL_DOT9		0x1f9 -#define KEY_BRL_DOT10		0x1fa - -#define KEY_NUMERIC_0		0x200	/* used by phones, remote controls, */ -#define KEY_NUMERIC_1		0x201	/* and other keypads */ -#define KEY_NUMERIC_2		0x202 -#define KEY_NUMERIC_3		0x203 -#define KEY_NUMERIC_4		0x204 -#define KEY_NUMERIC_5		0x205 -#define KEY_NUMERIC_6		0x206 -#define KEY_NUMERIC_7		0x207 -#define KEY_NUMERIC_8		0x208 -#define KEY_NUMERIC_9		0x209 -#define KEY_NUMERIC_STAR	0x20a -#define KEY_NUMERIC_POUND	0x20b - -#define KEY_CAMERA_FOCUS	0x210 -#define KEY_WPS_BUTTON		0x211	/* WiFi Protected Setup key */ - -#define KEY_TOUCHPAD_TOGGLE	0x212	/* Request switch touchpad on or off */ -#define KEY_TOUCHPAD_ON		0x213 -#define KEY_TOUCHPAD_OFF	0x214 - -#define KEY_CAMERA_ZOOMIN	0x215 -#define KEY_CAMERA_ZOOMOUT	0x216 -#define KEY_CAMERA_UP		0x217 -#define KEY_CAMERA_DOWN		0x218 -#define KEY_CAMERA_LEFT		0x219 -#define KEY_CAMERA_RIGHT	0x21a - -#define BTN_TRIGGER_HAPPY		0x2c0 -#define BTN_TRIGGER_HAPPY1		0x2c0 -#define BTN_TRIGGER_HAPPY2		0x2c1 -#define BTN_TRIGGER_HAPPY3		0x2c2 -#define BTN_TRIGGER_HAPPY4		0x2c3 -#define BTN_TRIGGER_HAPPY5		0x2c4 -#define BTN_TRIGGER_HAPPY6		0x2c5 -#define BTN_TRIGGER_HAPPY7		0x2c6 -#define BTN_TRIGGER_HAPPY8		0x2c7 -#define BTN_TRIGGER_HAPPY9		0x2c8 -#define BTN_TRIGGER_HAPPY10		0x2c9 -#define BTN_TRIGGER_HAPPY11		0x2ca -#define BTN_TRIGGER_HAPPY12		0x2cb -#define BTN_TRIGGER_HAPPY13		0x2cc -#define BTN_TRIGGER_HAPPY14		0x2cd -#define BTN_TRIGGER_HAPPY15		0x2ce -#define BTN_TRIGGER_HAPPY16		0x2cf -#define BTN_TRIGGER_HAPPY17		0x2d0 -#define BTN_TRIGGER_HAPPY18		0x2d1 -#define BTN_TRIGGER_HAPPY19		0x2d2 -#define BTN_TRIGGER_HAPPY20		0x2d3 -#define BTN_TRIGGER_HAPPY21		0x2d4 -#define BTN_TRIGGER_HAPPY22		0x2d5 -#define BTN_TRIGGER_HAPPY23		0x2d6 -#define BTN_TRIGGER_HAPPY24		0x2d7 -#define BTN_TRIGGER_HAPPY25		0x2d8 -#define BTN_TRIGGER_HAPPY26		0x2d9 -#define BTN_TRIGGER_HAPPY27		0x2da -#define BTN_TRIGGER_HAPPY28		0x2db -#define BTN_TRIGGER_HAPPY29		0x2dc -#define BTN_TRIGGER_HAPPY30		0x2dd -#define BTN_TRIGGER_HAPPY31		0x2de -#define BTN_TRIGGER_HAPPY32		0x2df -#define BTN_TRIGGER_HAPPY33		0x2e0 -#define BTN_TRIGGER_HAPPY34		0x2e1 -#define BTN_TRIGGER_HAPPY35		0x2e2 -#define BTN_TRIGGER_HAPPY36		0x2e3 -#define BTN_TRIGGER_HAPPY37		0x2e4 -#define BTN_TRIGGER_HAPPY38		0x2e5 -#define BTN_TRIGGER_HAPPY39		0x2e6 -#define BTN_TRIGGER_HAPPY40		0x2e7 - -/* We avoid low common keys in module aliases so they don't get huge. */ -#define KEY_MIN_INTERESTING	KEY_MUTE -#define KEY_MAX			0x2ff -#define KEY_CNT			(KEY_MAX+1) - -/* - * Relative axes - */ - -#define REL_X			0x00 -#define REL_Y			0x01 -#define REL_Z			0x02 -#define REL_RX			0x03 -#define REL_RY			0x04 -#define REL_RZ			0x05 -#define REL_HWHEEL		0x06 -#define REL_DIAL		0x07 -#define REL_WHEEL		0x08 -#define REL_MISC		0x09 -#define REL_MAX			0x0f -#define REL_CNT			(REL_MAX+1) - -/* - * Absolute axes - */ - -#define ABS_X			0x00 -#define ABS_Y			0x01 -#define ABS_Z			0x02 -#define ABS_RX			0x03 -#define ABS_RY			0x04 -#define ABS_RZ			0x05 -#define ABS_THROTTLE		0x06 -#define ABS_RUDDER		0x07 -#define ABS_WHEEL		0x08 -#define ABS_GAS			0x09 -#define ABS_BRAKE		0x0a -#define ABS_HAT0X		0x10 -#define ABS_HAT0Y		0x11 -#define ABS_HAT1X		0x12 -#define ABS_HAT1Y		0x13 -#define ABS_HAT2X		0x14 -#define ABS_HAT2Y		0x15 -#define ABS_HAT3X		0x16 -#define ABS_HAT3Y		0x17 -#define ABS_PRESSURE		0x18 -#define ABS_DISTANCE		0x19 -#define ABS_TILT_X		0x1a -#define ABS_TILT_Y		0x1b -#define ABS_TOOL_WIDTH		0x1c - -#define ABS_VOLUME		0x20 - -#define ABS_MISC		0x28 - -#define ABS_MT_SLOT		0x2f	/* MT slot being modified */ -#define ABS_MT_TOUCH_MAJOR	0x30	/* Major axis of touching ellipse */ -#define ABS_MT_TOUCH_MINOR	0x31	/* Minor axis (omit if circular) */ -#define ABS_MT_WIDTH_MAJOR	0x32	/* Major axis of approaching ellipse */ -#define ABS_MT_WIDTH_MINOR	0x33	/* Minor axis (omit if circular) */ -#define ABS_MT_ORIENTATION	0x34	/* Ellipse orientation */ -#define ABS_MT_POSITION_X	0x35	/* Center X touch position */ -#define ABS_MT_POSITION_Y	0x36	/* Center Y touch position */ -#define ABS_MT_TOOL_TYPE	0x37	/* Type of touching device */ -#define ABS_MT_BLOB_ID		0x38	/* Group a set of packets as a blob */ -#define ABS_MT_TRACKING_ID	0x39	/* Unique ID of initiated contact */ -#define ABS_MT_PRESSURE		0x3a	/* Pressure on contact area */ -#define ABS_MT_DISTANCE		0x3b	/* Contact hover distance */ -#define ABS_MT_TOOL_X		0x3c	/* Center X tool position */ -#define ABS_MT_TOOL_Y		0x3d	/* Center Y tool position */ - -#ifdef __KERNEL__ +#include <uapi/linux/input.h>  /* Implementation details, userspace should not care about these */  #define ABS_MT_FIRST		ABS_MT_TOUCH_MAJOR  #define ABS_MT_LAST		ABS_MT_TOOL_Y -#endif - -#define ABS_MAX			0x3f -#define ABS_CNT			(ABS_MAX+1) - -/* - * Switch events - */ - -#define SW_LID			0x00  /* set = lid shut */ -#define SW_TABLET_MODE		0x01  /* set = tablet mode */ -#define SW_HEADPHONE_INSERT	0x02  /* set = inserted */ -#define SW_RFKILL_ALL		0x03  /* rfkill master switch, type "any" -					 set = radio enabled */ -#define SW_RADIO		SW_RFKILL_ALL	/* deprecated */ -#define SW_MICROPHONE_INSERT	0x04  /* set = inserted */ -#define SW_DOCK			0x05  /* set = plugged into dock */ -#define SW_LINEOUT_INSERT	0x06  /* set = inserted */ -#define SW_JACK_PHYSICAL_INSERT 0x07  /* set = mechanical switch set */ -#define SW_VIDEOOUT_INSERT	0x08  /* set = inserted */ -#define SW_CAMERA_LENS_COVER	0x09  /* set = lens covered */ -#define SW_KEYPAD_SLIDE		0x0a  /* set = keypad slide out */ -#define SW_FRONT_PROXIMITY	0x0b  /* set = front proximity sensor active */ -#define SW_ROTATE_LOCK		0x0c  /* set = rotate locked/disabled */ -#define SW_LINEIN_INSERT	0x0d  /* set = inserted */ -#define SW_MAX			0x0f -#define SW_CNT			(SW_MAX+1) - -/* - * Misc events - */ - -#define MSC_SERIAL		0x00 -#define MSC_PULSELED		0x01 -#define MSC_GESTURE		0x02 -#define MSC_RAW			0x03 -#define MSC_SCAN		0x04 -#define MSC_MAX			0x07 -#define MSC_CNT			(MSC_MAX+1) - -/* - * LEDs - */ - -#define LED_NUML		0x00 -#define LED_CAPSL		0x01 -#define LED_SCROLLL		0x02 -#define LED_COMPOSE		0x03 -#define LED_KANA		0x04 -#define LED_SLEEP		0x05 -#define LED_SUSPEND		0x06 -#define LED_MUTE		0x07 -#define LED_MISC		0x08 -#define LED_MAIL		0x09 -#define LED_CHARGING		0x0a -#define LED_MAX			0x0f -#define LED_CNT			(LED_MAX+1) - -/* - * Autorepeat values - */ - -#define REP_DELAY		0x00 -#define REP_PERIOD		0x01 -#define REP_MAX			0x01 -#define REP_CNT			(REP_MAX+1) - -/* - * Sounds - */ - -#define SND_CLICK		0x00 -#define SND_BELL		0x01 -#define SND_TONE		0x02 -#define SND_MAX			0x07 -#define SND_CNT			(SND_MAX+1) - -/* - * IDs. - */ - -#define ID_BUS			0 -#define ID_VENDOR		1 -#define ID_PRODUCT		2 -#define ID_VERSION		3 - -#define BUS_PCI			0x01 -#define BUS_ISAPNP		0x02 -#define BUS_USB			0x03 -#define BUS_HIL			0x04 -#define BUS_BLUETOOTH		0x05 -#define BUS_VIRTUAL		0x06 - -#define BUS_ISA			0x10 -#define BUS_I8042		0x11 -#define BUS_XTKBD		0x12 -#define BUS_RS232		0x13 -#define BUS_GAMEPORT		0x14 -#define BUS_PARPORT		0x15 -#define BUS_AMIGA		0x16 -#define BUS_ADB			0x17 -#define BUS_I2C			0x18 -#define BUS_HOST		0x19 -#define BUS_GSC			0x1A -#define BUS_ATARI		0x1B -#define BUS_SPI			0x1C - -/* - * MT_TOOL types - */ -#define MT_TOOL_FINGER		0 -#define MT_TOOL_PEN		1 -#define MT_TOOL_MAX		1 - -/* - * Values describing the status of a force-feedback effect - */ -#define FF_STATUS_STOPPED	0x00 -#define FF_STATUS_PLAYING	0x01 -#define FF_STATUS_MAX		0x01 - -/* - * Structures used in ioctls to upload effects to a device - * They are pieces of a bigger structure (called ff_effect) - */ - -/* - * All duration values are expressed in ms. Values above 32767 ms (0x7fff) - * should not be used and have unspecified results. - */ - -/** - * struct ff_replay - defines scheduling of the force-feedback effect - * @length: duration of the effect - * @delay: delay before effect should start playing - */ -struct ff_replay { -	__u16 length; -	__u16 delay; -}; - -/** - * struct ff_trigger - defines what triggers the force-feedback effect - * @button: number of the button triggering the effect - * @interval: controls how soon the effect can be re-triggered - */ -struct ff_trigger { -	__u16 button; -	__u16 interval; -}; - -/** - * struct ff_envelope - generic force-feedback effect envelope - * @attack_length: duration of the attack (ms) - * @attack_level: level at the beginning of the attack - * @fade_length: duration of fade (ms) - * @fade_level: level at the end of fade - * - * The @attack_level and @fade_level are absolute values; when applying - * envelope force-feedback core will convert to positive/negative - * value based on polarity of the default level of the effect. - * Valid range for the attack and fade levels is 0x0000 - 0x7fff - */ -struct ff_envelope { -	__u16 attack_length; -	__u16 attack_level; -	__u16 fade_length; -	__u16 fade_level; -}; - -/** - * struct ff_constant_effect - defines parameters of a constant force-feedback effect - * @level: strength of the effect; may be negative - * @envelope: envelope data - */ -struct ff_constant_effect { -	__s16 level; -	struct ff_envelope envelope; -}; - -/** - * struct ff_ramp_effect - defines parameters of a ramp force-feedback effect - * @start_level: beginning strength of the effect; may be negative - * @end_level: final strength of the effect; may be negative - * @envelope: envelope data - */ -struct ff_ramp_effect { -	__s16 start_level; -	__s16 end_level; -	struct ff_envelope envelope; -}; - -/** - * struct ff_condition_effect - defines a spring or friction force-feedback effect - * @right_saturation: maximum level when joystick moved all way to the right - * @left_saturation: same for the left side - * @right_coeff: controls how fast the force grows when the joystick moves - *	to the right - * @left_coeff: same for the left side - * @deadband: size of the dead zone, where no force is produced - * @center: position of the dead zone - */ -struct ff_condition_effect { -	__u16 right_saturation; -	__u16 left_saturation; - -	__s16 right_coeff; -	__s16 left_coeff; - -	__u16 deadband; -	__s16 center; -}; - -/** - * struct ff_periodic_effect - defines parameters of a periodic force-feedback effect - * @waveform: kind of the effect (wave) - * @period: period of the wave (ms) - * @magnitude: peak value - * @offset: mean value of the wave (roughly) - * @phase: 'horizontal' shift - * @envelope: envelope data - * @custom_len: number of samples (FF_CUSTOM only) - * @custom_data: buffer of samples (FF_CUSTOM only) - * - * Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP, - * FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined - * for the time being as no driver supports it yet. - * - * Note: the data pointed by custom_data is copied by the driver. - * You can therefore dispose of the memory after the upload/update. - */ -struct ff_periodic_effect { -	__u16 waveform; -	__u16 period; -	__s16 magnitude; -	__s16 offset; -	__u16 phase; - -	struct ff_envelope envelope; - -	__u32 custom_len; -	__s16 __user *custom_data; -}; - -/** - * struct ff_rumble_effect - defines parameters of a periodic force-feedback effect - * @strong_magnitude: magnitude of the heavy motor - * @weak_magnitude: magnitude of the light one - * - * Some rumble pads have two motors of different weight. Strong_magnitude - * represents the magnitude of the vibration generated by the heavy one. - */ -struct ff_rumble_effect { -	__u16 strong_magnitude; -	__u16 weak_magnitude; -}; - -/** - * struct ff_effect - defines force feedback effect - * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING, - *	FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM) - * @id: an unique id assigned to an effect - * @direction: direction of the effect - * @trigger: trigger conditions (struct ff_trigger) - * @replay: scheduling of the effect (struct ff_replay) - * @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect, - *	ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further - *	defining effect parameters - * - * This structure is sent through ioctl from the application to the driver. - * To create a new effect application should set its @id to -1; the kernel - * will return assigned @id which can later be used to update or delete - * this effect. - * - * Direction of the effect is encoded as follows: - *	0 deg -> 0x0000 (down) - *	90 deg -> 0x4000 (left) - *	180 deg -> 0x8000 (up) - *	270 deg -> 0xC000 (right) - */ -struct ff_effect { -	__u16 type; -	__s16 id; -	__u16 direction; -	struct ff_trigger trigger; -	struct ff_replay replay; - -	union { -		struct ff_constant_effect constant; -		struct ff_ramp_effect ramp; -		struct ff_periodic_effect periodic; -		struct ff_condition_effect condition[2]; /* One for each axis */ -		struct ff_rumble_effect rumble; -	} u; -}; - -/* - * Force feedback effect types - */ - -#define FF_RUMBLE	0x50 -#define FF_PERIODIC	0x51 -#define FF_CONSTANT	0x52 -#define FF_SPRING	0x53 -#define FF_FRICTION	0x54 -#define FF_DAMPER	0x55 -#define FF_INERTIA	0x56 -#define FF_RAMP		0x57 - -#define FF_EFFECT_MIN	FF_RUMBLE -#define FF_EFFECT_MAX	FF_RAMP - -/* - * Force feedback periodic effect types - */ - -#define FF_SQUARE	0x58 -#define FF_TRIANGLE	0x59 -#define FF_SINE		0x5a -#define FF_SAW_UP	0x5b -#define FF_SAW_DOWN	0x5c -#define FF_CUSTOM	0x5d - -#define FF_WAVEFORM_MIN	FF_SQUARE -#define FF_WAVEFORM_MAX	FF_CUSTOM - -/* - * Set ff device properties - */ - -#define FF_GAIN		0x60 -#define FF_AUTOCENTER	0x61 - -#define FF_MAX		0x7f -#define FF_CNT		(FF_MAX+1) - -#ifdef __KERNEL__  /*   * In-kernel definitions. @@ -1668,4 +524,3 @@ int input_ff_create_memless(struct input_dev *dev, void *data,  		int (*play_effect)(struct input_dev *, void *, struct ff_effect *));  #endif -#endif diff --git a/include/linux/ioctl.h b/include/linux/ioctl.h deleted file mode 100644 index aa91eb3951e..00000000000 --- a/include/linux/ioctl.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _LINUX_IOCTL_H -#define _LINUX_IOCTL_H - -#include <asm/ioctl.h> - -#endif /* _LINUX_IOCTL_H */ - diff --git a/include/linux/ip.h b/include/linux/ip.h index bd0a2a8631c..58b82a22a52 100644 --- a/include/linux/ip.h +++ b/include/linux/ip.h @@ -16,96 +16,9 @@   */  #ifndef _LINUX_IP_H  #define _LINUX_IP_H -#include <linux/types.h> -#include <asm/byteorder.h> -#define IPTOS_TOS_MASK		0x1E -#define IPTOS_TOS(tos)		((tos)&IPTOS_TOS_MASK) -#define	IPTOS_LOWDELAY		0x10 -#define	IPTOS_THROUGHPUT	0x08 -#define	IPTOS_RELIABILITY	0x04 -#define	IPTOS_MINCOST		0x02 - -#define IPTOS_PREC_MASK		0xE0 -#define IPTOS_PREC(tos)		((tos)&IPTOS_PREC_MASK) -#define IPTOS_PREC_NETCONTROL           0xe0 -#define IPTOS_PREC_INTERNETCONTROL      0xc0 -#define IPTOS_PREC_CRITIC_ECP           0xa0 -#define IPTOS_PREC_FLASHOVERRIDE        0x80 -#define IPTOS_PREC_FLASH                0x60 -#define IPTOS_PREC_IMMEDIATE            0x40 -#define IPTOS_PREC_PRIORITY             0x20 -#define IPTOS_PREC_ROUTINE              0x00 - - -/* IP options */ -#define IPOPT_COPY		0x80 -#define IPOPT_CLASS_MASK	0x60 -#define IPOPT_NUMBER_MASK	0x1f - -#define	IPOPT_COPIED(o)		((o)&IPOPT_COPY) -#define	IPOPT_CLASS(o)		((o)&IPOPT_CLASS_MASK) -#define	IPOPT_NUMBER(o)		((o)&IPOPT_NUMBER_MASK) - -#define	IPOPT_CONTROL		0x00 -#define	IPOPT_RESERVED1		0x20 -#define	IPOPT_MEASUREMENT	0x40 -#define	IPOPT_RESERVED2		0x60 - -#define IPOPT_END	(0 |IPOPT_CONTROL) -#define IPOPT_NOOP	(1 |IPOPT_CONTROL) -#define IPOPT_SEC	(2 |IPOPT_CONTROL|IPOPT_COPY) -#define IPOPT_LSRR	(3 |IPOPT_CONTROL|IPOPT_COPY) -#define IPOPT_TIMESTAMP	(4 |IPOPT_MEASUREMENT) -#define IPOPT_CIPSO	(6 |IPOPT_CONTROL|IPOPT_COPY) -#define IPOPT_RR	(7 |IPOPT_CONTROL) -#define IPOPT_SID	(8 |IPOPT_CONTROL|IPOPT_COPY) -#define IPOPT_SSRR	(9 |IPOPT_CONTROL|IPOPT_COPY) -#define IPOPT_RA	(20|IPOPT_CONTROL|IPOPT_COPY) - -#define IPVERSION	4 -#define MAXTTL		255 -#define IPDEFTTL	64 - -#define IPOPT_OPTVAL 0 -#define IPOPT_OLEN   1 -#define IPOPT_OFFSET 2 -#define IPOPT_MINOFF 4 -#define MAX_IPOPTLEN 40 -#define IPOPT_NOP IPOPT_NOOP -#define IPOPT_EOL IPOPT_END -#define IPOPT_TS  IPOPT_TIMESTAMP - -#define	IPOPT_TS_TSONLY		0		/* timestamps only */ -#define	IPOPT_TS_TSANDADDR	1		/* timestamps and addresses */ -#define	IPOPT_TS_PRESPEC	3		/* specified modules only */ - -#define IPV4_BEET_PHMAXLEN 8 - -struct iphdr { -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u8	ihl:4, -		version:4; -#elif defined (__BIG_ENDIAN_BITFIELD) -	__u8	version:4, -  		ihl:4; -#else -#error	"Please fix <asm/byteorder.h>" -#endif -	__u8	tos; -	__be16	tot_len; -	__be16	id; -	__be16	frag_off; -	__u8	ttl; -	__u8	protocol; -	__sum16	check; -	__be32	saddr; -	__be32	daddr; -	/*The options start here. */ -}; - -#ifdef __KERNEL__  #include <linux/skbuff.h> +#include <uapi/linux/ip.h>  static inline struct iphdr *ip_hdr(const struct sk_buff *skb)  { @@ -116,34 +29,4 @@ static inline struct iphdr *ipip_hdr(const struct sk_buff *skb)  {  	return (struct iphdr *)skb_transport_header(skb);  } -#endif - -struct ip_auth_hdr { -	__u8  nexthdr; -	__u8  hdrlen;		/* This one is measured in 32 bit units! */ -	__be16 reserved; -	__be32 spi; -	__be32 seq_no;		/* Sequence number */ -	__u8  auth_data[0];	/* Variable len but >=4. Mind the 64 bit alignment! */ -}; - -struct ip_esp_hdr { -	__be32 spi; -	__be32 seq_no;		/* Sequence number */ -	__u8  enc_data[0];	/* Variable len but >=8. Mind the 64 bit alignment! */ -}; - -struct ip_comp_hdr { -	__u8 nexthdr; -	__u8 flags; -	__be16 cpi; -}; - -struct ip_beet_phdr { -	__u8 nexthdr; -	__u8 hdrlen; -	__u8 padlen; -	__u8 reserved; -}; -  #endif	/* _LINUX_IP_H */ diff --git a/include/linux/ip6_tunnel.h b/include/linux/ip6_tunnel.h deleted file mode 100644 index 48af63c9a48..00000000000 --- a/include/linux/ip6_tunnel.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _IP6_TUNNEL_H -#define _IP6_TUNNEL_H - -#include <linux/types.h> - -#define IPV6_TLV_TNL_ENCAP_LIMIT 4 -#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 - -/* don't add encapsulation limit if one isn't present in inner packet */ -#define IP6_TNL_F_IGN_ENCAP_LIMIT 0x1 -/* copy the traffic class field from the inner packet */ -#define IP6_TNL_F_USE_ORIG_TCLASS 0x2 -/* copy the flowlabel from the inner packet */ -#define IP6_TNL_F_USE_ORIG_FLOWLABEL 0x4 -/* being used for Mobile IPv6 */ -#define IP6_TNL_F_MIP6_DEV 0x8 -/* copy DSCP from the outer packet */ -#define IP6_TNL_F_RCV_DSCP_COPY 0x10 -/* copy fwmark from inner packet */ -#define IP6_TNL_F_USE_ORIG_FWMARK 0x20 - -struct ip6_tnl_parm { -	char name[IFNAMSIZ];	/* name of tunnel device */ -	int link;		/* ifindex of underlying L2 interface */ -	__u8 proto;		/* tunnel protocol */ -	__u8 encap_limit;	/* encapsulation limit for tunnel */ -	__u8 hop_limit;		/* hop limit for tunnel */ -	__be32 flowinfo;	/* traffic class and flowlabel for tunnel */ -	__u32 flags;		/* tunnel flags */ -	struct in6_addr laddr;	/* local tunnel end-point address */ -	struct in6_addr raddr;	/* remote tunnel end-point address */ -}; - -struct ip6_tnl_parm2 { -	char name[IFNAMSIZ];	/* name of tunnel device */ -	int link;		/* ifindex of underlying L2 interface */ -	__u8 proto;		/* tunnel protocol */ -	__u8 encap_limit;	/* encapsulation limit for tunnel */ -	__u8 hop_limit;		/* hop limit for tunnel */ -	__be32 flowinfo;	/* traffic class and flowlabel for tunnel */ -	__u32 flags;		/* tunnel flags */ -	struct in6_addr laddr;	/* local tunnel end-point address */ -	struct in6_addr raddr;	/* remote tunnel end-point address */ - -	__be16			i_flags; -	__be16			o_flags; -	__be32			i_key; -	__be32			o_key; -}; - -#endif diff --git a/include/linux/ip_vs.h b/include/linux/ip_vs.h deleted file mode 100644 index 8a2d438dc49..00000000000 --- a/include/linux/ip_vs.h +++ /dev/null @@ -1,434 +0,0 @@ -/* - *      IP Virtual Server - *      data structure and functionality definitions - */ - -#ifndef _IP_VS_H -#define _IP_VS_H - -#include <linux/types.h>	/* For __beXX types in userland */ - -#define IP_VS_VERSION_CODE	0x010201 -#define NVERSION(version)			\ -	(version >> 16) & 0xFF,			\ -	(version >> 8) & 0xFF,			\ -	version & 0xFF - -/* - *      Virtual Service Flags - */ -#define IP_VS_SVC_F_PERSISTENT	0x0001		/* persistent port */ -#define IP_VS_SVC_F_HASHED	0x0002		/* hashed entry */ -#define IP_VS_SVC_F_ONEPACKET	0x0004		/* one-packet scheduling */ - -/* - *      Destination Server Flags - */ -#define IP_VS_DEST_F_AVAILABLE	0x0001		/* server is available */ -#define IP_VS_DEST_F_OVERLOAD	0x0002		/* server is overloaded */ - -/* - *      IPVS sync daemon states - */ -#define IP_VS_STATE_NONE	0x0000		/* daemon is stopped */ -#define IP_VS_STATE_MASTER	0x0001		/* started as master */ -#define IP_VS_STATE_BACKUP	0x0002		/* started as backup */ - -/* - *      IPVS socket options - */ -#define IP_VS_BASE_CTL		(64+1024+64)		/* base */ - -#define IP_VS_SO_SET_NONE	IP_VS_BASE_CTL		/* just peek */ -#define IP_VS_SO_SET_INSERT	(IP_VS_BASE_CTL+1) -#define IP_VS_SO_SET_ADD	(IP_VS_BASE_CTL+2) -#define IP_VS_SO_SET_EDIT	(IP_VS_BASE_CTL+3) -#define IP_VS_SO_SET_DEL	(IP_VS_BASE_CTL+4) -#define IP_VS_SO_SET_FLUSH	(IP_VS_BASE_CTL+5) -#define IP_VS_SO_SET_LIST	(IP_VS_BASE_CTL+6) -#define IP_VS_SO_SET_ADDDEST	(IP_VS_BASE_CTL+7) -#define IP_VS_SO_SET_DELDEST	(IP_VS_BASE_CTL+8) -#define IP_VS_SO_SET_EDITDEST	(IP_VS_BASE_CTL+9) -#define IP_VS_SO_SET_TIMEOUT	(IP_VS_BASE_CTL+10) -#define IP_VS_SO_SET_STARTDAEMON (IP_VS_BASE_CTL+11) -#define IP_VS_SO_SET_STOPDAEMON (IP_VS_BASE_CTL+12) -#define IP_VS_SO_SET_RESTORE    (IP_VS_BASE_CTL+13) -#define IP_VS_SO_SET_SAVE       (IP_VS_BASE_CTL+14) -#define IP_VS_SO_SET_ZERO	(IP_VS_BASE_CTL+15) -#define IP_VS_SO_SET_MAX	IP_VS_SO_SET_ZERO - -#define IP_VS_SO_GET_VERSION	IP_VS_BASE_CTL -#define IP_VS_SO_GET_INFO	(IP_VS_BASE_CTL+1) -#define IP_VS_SO_GET_SERVICES	(IP_VS_BASE_CTL+2) -#define IP_VS_SO_GET_SERVICE	(IP_VS_BASE_CTL+3) -#define IP_VS_SO_GET_DESTS	(IP_VS_BASE_CTL+4) -#define IP_VS_SO_GET_DEST	(IP_VS_BASE_CTL+5)	/* not used now */ -#define IP_VS_SO_GET_TIMEOUT	(IP_VS_BASE_CTL+6) -#define IP_VS_SO_GET_DAEMON	(IP_VS_BASE_CTL+7) -#define IP_VS_SO_GET_MAX	IP_VS_SO_GET_DAEMON - - -/* - *      IPVS Connection Flags - *      Only flags 0..15 are sent to backup server - */ -#define IP_VS_CONN_F_FWD_MASK	0x0007		/* mask for the fwd methods */ -#define IP_VS_CONN_F_MASQ	0x0000		/* masquerading/NAT */ -#define IP_VS_CONN_F_LOCALNODE	0x0001		/* local node */ -#define IP_VS_CONN_F_TUNNEL	0x0002		/* tunneling */ -#define IP_VS_CONN_F_DROUTE	0x0003		/* direct routing */ -#define IP_VS_CONN_F_BYPASS	0x0004		/* cache bypass */ -#define IP_VS_CONN_F_SYNC	0x0020		/* entry created by sync */ -#define IP_VS_CONN_F_HASHED	0x0040		/* hashed entry */ -#define IP_VS_CONN_F_NOOUTPUT	0x0080		/* no output packets */ -#define IP_VS_CONN_F_INACTIVE	0x0100		/* not established */ -#define IP_VS_CONN_F_OUT_SEQ	0x0200		/* must do output seq adjust */ -#define IP_VS_CONN_F_IN_SEQ	0x0400		/* must do input seq adjust */ -#define IP_VS_CONN_F_SEQ_MASK	0x0600		/* in/out sequence mask */ -#define IP_VS_CONN_F_NO_CPORT	0x0800		/* no client port set yet */ -#define IP_VS_CONN_F_TEMPLATE	0x1000		/* template, not connection */ -#define IP_VS_CONN_F_ONE_PACKET	0x2000		/* forward only one packet */ - -/* Initial bits allowed in backup server */ -#define IP_VS_CONN_F_BACKUP_MASK (IP_VS_CONN_F_FWD_MASK | \ -				  IP_VS_CONN_F_NOOUTPUT | \ -				  IP_VS_CONN_F_INACTIVE | \ -				  IP_VS_CONN_F_SEQ_MASK | \ -				  IP_VS_CONN_F_NO_CPORT | \ -				  IP_VS_CONN_F_TEMPLATE \ -				 ) - -/* Bits allowed to update in backup server */ -#define IP_VS_CONN_F_BACKUP_UPD_MASK (IP_VS_CONN_F_INACTIVE | \ -				      IP_VS_CONN_F_SEQ_MASK) - -/* Flags that are not sent to backup server start from bit 16 */ -#define IP_VS_CONN_F_NFCT	(1 << 16)	/* use netfilter conntrack */ - -/* Connection flags from destination that can be changed by user space */ -#define IP_VS_CONN_F_DEST_MASK (IP_VS_CONN_F_FWD_MASK | \ -				IP_VS_CONN_F_ONE_PACKET | \ -				IP_VS_CONN_F_NFCT | \ -				0) - -#define IP_VS_SCHEDNAME_MAXLEN	16 -#define IP_VS_PENAME_MAXLEN	16 -#define IP_VS_IFNAME_MAXLEN	16 - -#define IP_VS_PEDATA_MAXLEN     255 - -/* - *	The struct ip_vs_service_user and struct ip_vs_dest_user are - *	used to set IPVS rules through setsockopt. - */ -struct ip_vs_service_user { -	/* virtual service addresses */ -	__u16		protocol; -	__be32			addr;		/* virtual ip address */ -	__be16			port; -	__u32		fwmark;		/* firwall mark of service */ - -	/* virtual service options */ -	char			sched_name[IP_VS_SCHEDNAME_MAXLEN]; -	unsigned int		flags;		/* virtual service flags */ -	unsigned int		timeout;	/* persistent timeout in sec */ -	__be32			netmask;	/* persistent netmask */ -}; - - -struct ip_vs_dest_user { -	/* destination server address */ -	__be32			addr; -	__be16			port; - -	/* real server options */ -	unsigned int		conn_flags;	/* connection flags */ -	int			weight;		/* destination weight */ - -	/* thresholds for active connections */ -	__u32		u_threshold;	/* upper threshold */ -	__u32		l_threshold;	/* lower threshold */ -}; - - -/* - *	IPVS statistics object (for user space) - */ -struct ip_vs_stats_user { -	__u32                   conns;          /* connections scheduled */ -	__u32                   inpkts;         /* incoming packets */ -	__u32                   outpkts;        /* outgoing packets */ -	__u64                   inbytes;        /* incoming bytes */ -	__u64                   outbytes;       /* outgoing bytes */ - -	__u32			cps;		/* current connection rate */ -	__u32			inpps;		/* current in packet rate */ -	__u32			outpps;		/* current out packet rate */ -	__u32			inbps;		/* current in byte rate */ -	__u32			outbps;		/* current out byte rate */ -}; - - -/* The argument to IP_VS_SO_GET_INFO */ -struct ip_vs_getinfo { -	/* version number */ -	unsigned int		version; - -	/* size of connection hash table */ -	unsigned int		size; - -	/* number of virtual services */ -	unsigned int		num_services; -}; - - -/* The argument to IP_VS_SO_GET_SERVICE */ -struct ip_vs_service_entry { -	/* which service: user fills in these */ -	__u16		protocol; -	__be32			addr;		/* virtual address */ -	__be16			port; -	__u32		fwmark;		/* firwall mark of service */ - -	/* service options */ -	char			sched_name[IP_VS_SCHEDNAME_MAXLEN]; -	unsigned int		flags;          /* virtual service flags */ -	unsigned int		timeout;	/* persistent timeout */ -	__be32			netmask;	/* persistent netmask */ - -	/* number of real servers */ -	unsigned int		num_dests; - -	/* statistics */ -	struct ip_vs_stats_user stats; -}; - - -struct ip_vs_dest_entry { -	__be32			addr;		/* destination address */ -	__be16			port; -	unsigned int		conn_flags;	/* connection flags */ -	int			weight;		/* destination weight */ - -	__u32		u_threshold;	/* upper threshold */ -	__u32		l_threshold;	/* lower threshold */ - -	__u32		activeconns;	/* active connections */ -	__u32		inactconns;	/* inactive connections */ -	__u32		persistconns;	/* persistent connections */ - -	/* statistics */ -	struct ip_vs_stats_user stats; -}; - - -/* The argument to IP_VS_SO_GET_DESTS */ -struct ip_vs_get_dests { -	/* which service: user fills in these */ -	__u16		protocol; -	__be32			addr;		/* virtual address */ -	__be16			port; -	__u32		fwmark;		/* firwall mark of service */ - -	/* number of real servers */ -	unsigned int		num_dests; - -	/* the real servers */ -	struct ip_vs_dest_entry	entrytable[0]; -}; - - -/* The argument to IP_VS_SO_GET_SERVICES */ -struct ip_vs_get_services { -	/* number of virtual services */ -	unsigned int		num_services; - -	/* service table */ -	struct ip_vs_service_entry entrytable[0]; -}; - - -/* The argument to IP_VS_SO_GET_TIMEOUT */ -struct ip_vs_timeout_user { -	int			tcp_timeout; -	int			tcp_fin_timeout; -	int			udp_timeout; -}; - - -/* The argument to IP_VS_SO_GET_DAEMON */ -struct ip_vs_daemon_user { -	/* sync daemon state (master/backup) */ -	int			state; - -	/* multicast interface name */ -	char			mcast_ifn[IP_VS_IFNAME_MAXLEN]; - -	/* SyncID we belong to */ -	int			syncid; -}; - -/* - * - * IPVS Generic Netlink interface definitions - * - */ - -/* Generic Netlink family info */ - -#define IPVS_GENL_NAME		"IPVS" -#define IPVS_GENL_VERSION	0x1 - -struct ip_vs_flags { -	__be32 flags; -	__be32 mask; -}; - -/* Generic Netlink command attributes */ -enum { -	IPVS_CMD_UNSPEC = 0, - -	IPVS_CMD_NEW_SERVICE,		/* add service */ -	IPVS_CMD_SET_SERVICE,		/* modify service */ -	IPVS_CMD_DEL_SERVICE,		/* delete service */ -	IPVS_CMD_GET_SERVICE,		/* get service info */ - -	IPVS_CMD_NEW_DEST,		/* add destination */ -	IPVS_CMD_SET_DEST,		/* modify destination */ -	IPVS_CMD_DEL_DEST,		/* delete destination */ -	IPVS_CMD_GET_DEST,		/* get destination info */ - -	IPVS_CMD_NEW_DAEMON,		/* start sync daemon */ -	IPVS_CMD_DEL_DAEMON,		/* stop sync daemon */ -	IPVS_CMD_GET_DAEMON,		/* get sync daemon status */ - -	IPVS_CMD_SET_CONFIG,		/* set config settings */ -	IPVS_CMD_GET_CONFIG,		/* get config settings */ - -	IPVS_CMD_SET_INFO,		/* only used in GET_INFO reply */ -	IPVS_CMD_GET_INFO,		/* get general IPVS info */ - -	IPVS_CMD_ZERO,			/* zero all counters and stats */ -	IPVS_CMD_FLUSH,			/* flush services and dests */ - -	__IPVS_CMD_MAX, -}; - -#define IPVS_CMD_MAX (__IPVS_CMD_MAX - 1) - -/* Attributes used in the first level of commands */ -enum { -	IPVS_CMD_ATTR_UNSPEC = 0, -	IPVS_CMD_ATTR_SERVICE,		/* nested service attribute */ -	IPVS_CMD_ATTR_DEST,		/* nested destination attribute */ -	IPVS_CMD_ATTR_DAEMON,		/* nested sync daemon attribute */ -	IPVS_CMD_ATTR_TIMEOUT_TCP,	/* TCP connection timeout */ -	IPVS_CMD_ATTR_TIMEOUT_TCP_FIN,	/* TCP FIN wait timeout */ -	IPVS_CMD_ATTR_TIMEOUT_UDP,	/* UDP timeout */ -	__IPVS_CMD_ATTR_MAX, -}; - -#define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) - -/* - * Attributes used to describe a service - * - * Used inside nested attribute IPVS_CMD_ATTR_SERVICE - */ -enum { -	IPVS_SVC_ATTR_UNSPEC = 0, -	IPVS_SVC_ATTR_AF,		/* address family */ -	IPVS_SVC_ATTR_PROTOCOL,		/* virtual service protocol */ -	IPVS_SVC_ATTR_ADDR,		/* virtual service address */ -	IPVS_SVC_ATTR_PORT,		/* virtual service port */ -	IPVS_SVC_ATTR_FWMARK,		/* firewall mark of service */ - -	IPVS_SVC_ATTR_SCHED_NAME,	/* name of scheduler */ -	IPVS_SVC_ATTR_FLAGS,		/* virtual service flags */ -	IPVS_SVC_ATTR_TIMEOUT,		/* persistent timeout */ -	IPVS_SVC_ATTR_NETMASK,		/* persistent netmask */ - -	IPVS_SVC_ATTR_STATS,		/* nested attribute for service stats */ - -	IPVS_SVC_ATTR_PE_NAME,		/* name of ct retriever */ - -	__IPVS_SVC_ATTR_MAX, -}; - -#define IPVS_SVC_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) - -/* - * Attributes used to describe a destination (real server) - * - * Used inside nested attribute IPVS_CMD_ATTR_DEST - */ -enum { -	IPVS_DEST_ATTR_UNSPEC = 0, -	IPVS_DEST_ATTR_ADDR,		/* real server address */ -	IPVS_DEST_ATTR_PORT,		/* real server port */ - -	IPVS_DEST_ATTR_FWD_METHOD,	/* forwarding method */ -	IPVS_DEST_ATTR_WEIGHT,		/* destination weight */ - -	IPVS_DEST_ATTR_U_THRESH,	/* upper threshold */ -	IPVS_DEST_ATTR_L_THRESH,	/* lower threshold */ - -	IPVS_DEST_ATTR_ACTIVE_CONNS,	/* active connections */ -	IPVS_DEST_ATTR_INACT_CONNS,	/* inactive connections */ -	IPVS_DEST_ATTR_PERSIST_CONNS,	/* persistent connections */ - -	IPVS_DEST_ATTR_STATS,		/* nested attribute for dest stats */ -	__IPVS_DEST_ATTR_MAX, -}; - -#define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1) - -/* - * Attributes describing a sync daemon - * - * Used inside nested attribute IPVS_CMD_ATTR_DAEMON - */ -enum { -	IPVS_DAEMON_ATTR_UNSPEC = 0, -	IPVS_DAEMON_ATTR_STATE,		/* sync daemon state (master/backup) */ -	IPVS_DAEMON_ATTR_MCAST_IFN,	/* multicast interface name */ -	IPVS_DAEMON_ATTR_SYNC_ID,	/* SyncID we belong to */ -	__IPVS_DAEMON_ATTR_MAX, -}; - -#define IPVS_DAEMON_ATTR_MAX (__IPVS_DAEMON_ATTR_MAX - 1) - -/* - * Attributes used to describe service or destination entry statistics - * - * Used inside nested attributes IPVS_SVC_ATTR_STATS and IPVS_DEST_ATTR_STATS - */ -enum { -	IPVS_STATS_ATTR_UNSPEC = 0, -	IPVS_STATS_ATTR_CONNS,		/* connections scheduled */ -	IPVS_STATS_ATTR_INPKTS,		/* incoming packets */ -	IPVS_STATS_ATTR_OUTPKTS,	/* outgoing packets */ -	IPVS_STATS_ATTR_INBYTES,	/* incoming bytes */ -	IPVS_STATS_ATTR_OUTBYTES,	/* outgoing bytes */ - -	IPVS_STATS_ATTR_CPS,		/* current connection rate */ -	IPVS_STATS_ATTR_INPPS,		/* current in packet rate */ -	IPVS_STATS_ATTR_OUTPPS,		/* current out packet rate */ -	IPVS_STATS_ATTR_INBPS,		/* current in byte rate */ -	IPVS_STATS_ATTR_OUTBPS,		/* current out byte rate */ -	__IPVS_STATS_ATTR_MAX, -}; - -#define IPVS_STATS_ATTR_MAX (__IPVS_STATS_ATTR_MAX - 1) - -/* Attributes used in response to IPVS_CMD_GET_INFO command */ -enum { -	IPVS_INFO_ATTR_UNSPEC = 0, -	IPVS_INFO_ATTR_VERSION,		/* IPVS version number */ -	IPVS_INFO_ATTR_CONN_TAB_SIZE,	/* size of connection hash table */ -	__IPVS_INFO_ATTR_MAX, -}; - -#define IPVS_INFO_ATTR_MAX (__IPVS_INFO_ATTR_MAX - 1) - -#endif	/* _IP_VS_H */ diff --git a/include/linux/ipc.h b/include/linux/ipc.h index ca833fdc313..8d861b2651f 100644 --- a/include/linux/ipc.h +++ b/include/linux/ipc.h @@ -1,85 +1,9 @@  #ifndef _LINUX_IPC_H  #define _LINUX_IPC_H -#include <linux/types.h> - -#define IPC_PRIVATE ((__kernel_key_t) 0)   - -/* Obsolete, used only for backwards compatibility and libc5 compiles */ -struct ipc_perm -{ -	__kernel_key_t	key; -	__kernel_uid_t	uid; -	__kernel_gid_t	gid; -	__kernel_uid_t	cuid; -	__kernel_gid_t	cgid; -	__kernel_mode_t	mode;  -	unsigned short	seq; -}; - -/* Include the definition of ipc64_perm */ -#include <asm/ipcbuf.h> - -/* resource get request flags */ -#define IPC_CREAT  00001000   /* create if key is nonexistent */ -#define IPC_EXCL   00002000   /* fail if key exists */ -#define IPC_NOWAIT 00004000   /* return error on wait */ - -/* these fields are used by the DIPC package so the kernel as standard -   should avoid using them if possible */ -    -#define IPC_DIPC 00010000  /* make it distributed */ -#define IPC_OWN  00020000  /* this machine is the DIPC owner */ - -/*  - * Control commands used with semctl, msgctl and shmctl  - * see also specific commands in sem.h, msg.h and shm.h - */ -#define IPC_RMID 0     /* remove resource */ -#define IPC_SET  1     /* set ipc_perm options */ -#define IPC_STAT 2     /* get ipc_perm options */ -#define IPC_INFO 3     /* see ipcs */ - -/* - * Version flags for semctl, msgctl, and shmctl commands - * These are passed as bitflags or-ed with the actual command - */ -#define IPC_OLD 0	/* Old version (no 32-bit UID support on many -			   architectures) */ -#define IPC_64  0x0100  /* New version (support 32-bit UIDs, bigger -			   message sizes, etc. */ - -/* - * These are used to wrap system calls. - * - * See architecture code for ugly details.. - */ -struct ipc_kludge { -	struct msgbuf __user *msgp; -	long msgtyp; -}; - -#define SEMOP		 1 -#define SEMGET		 2 -#define SEMCTL		 3 -#define SEMTIMEDOP	 4 -#define MSGSND		11 -#define MSGRCV		12 -#define MSGGET		13 -#define MSGCTL		14 -#define SHMAT		21 -#define SHMDT		22 -#define SHMGET		23 -#define SHMCTL		24 - -/* Used by the DIPC package, try and avoid reusing it */ -#define DIPC            25 - -#define IPCCALL(version,op)	((version)<<16 | (op)) - -#ifdef __KERNEL__  #include <linux/spinlock.h>  #include <linux/uidgid.h> +#include <uapi/linux/ipc.h>  #define IPCMNI 32768  /* <= MAX_INT limit for ipc arrays (including sysctl changes) */ @@ -99,6 +23,4 @@ struct kern_ipc_perm  	void		*security;  }; -#endif /* __KERNEL__ */ -  #endif /* _LINUX_IPC_H */ diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index 48dcba9b206..1487e7906bb 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h @@ -30,191 +30,11 @@   *  with this program; if not, write to the Free Software Foundation, Inc.,   *  675 Mass Ave, Cambridge, MA 02139, USA.   */ -  #ifndef __LINUX_IPMI_H  #define __LINUX_IPMI_H -#include <linux/ipmi_msgdefs.h> -#include <linux/compiler.h> - -/* - * This file describes an interface to an IPMI driver.  You have to - * have a fairly good understanding of IPMI to use this, so go read - * the specs first before actually trying to do anything. - * - * With that said, this driver provides a multi-user interface to the - * IPMI driver, and it allows multiple IPMI physical interfaces below - * the driver.  The physical interfaces bind as a lower layer on the - * driver.  They appear as interfaces to the application using this - * interface. - * - * Multi-user means that multiple applications may use the driver, - * send commands, receive responses, etc.  The driver keeps track of - * commands the user sends and tracks the responses.  The responses - * will go back to the application that send the command.  If the - * response doesn't come back in time, the driver will return a - * timeout error response to the application.  Asynchronous events - * from the BMC event queue will go to all users bound to the driver. - * The incoming event queue in the BMC will automatically be flushed - * if it becomes full and it is queried once a second to see if - * anything is in it.  Incoming commands to the driver will get - * delivered as commands. - * - * This driver provides two main interfaces: one for in-kernel - * applications and another for userland applications.  The - * capabilities are basically the same for both interface, although - * the interfaces are somewhat different.  The stuff in the - * #ifdef __KERNEL__ below is the in-kernel interface.  The userland - * interface is defined later in the file.  */ - - - -/* - * This is an overlay for all the address types, so it's easy to - * determine the actual address type.  This is kind of like addresses - * work for sockets. - */ -#define IPMI_MAX_ADDR_SIZE 32 -struct ipmi_addr { -	 /* Try to take these from the "Channel Medium Type" table -	    in section 6.5 of the IPMI 1.5 manual. */ -	int   addr_type; -	short channel; -	char  data[IPMI_MAX_ADDR_SIZE]; -}; - -/* - * When the address is not used, the type will be set to this value. - * The channel is the BMC's channel number for the channel (usually - * 0), or IPMC_BMC_CHANNEL if communicating directly with the BMC. - */ -#define IPMI_SYSTEM_INTERFACE_ADDR_TYPE	0x0c -struct ipmi_system_interface_addr { -	int           addr_type; -	short         channel; -	unsigned char lun; -}; - -/* An IPMB Address. */ -#define IPMI_IPMB_ADDR_TYPE		0x01 -/* Used for broadcast get device id as described in section 17.9 of the -   IPMI 1.5 manual. */ -#define IPMI_IPMB_BROADCAST_ADDR_TYPE	0x41 -struct ipmi_ipmb_addr { -	int           addr_type; -	short         channel; -	unsigned char slave_addr; -	unsigned char lun; -}; +#include <uapi/linux/ipmi.h> -/* - * A LAN Address.  This is an address to/from a LAN interface bridged - * by the BMC, not an address actually out on the LAN. - * - * A conscious decision was made here to deviate slightly from the IPMI - * spec.  We do not use rqSWID and rsSWID like it shows in the - * message.  Instead, we use remote_SWID and local_SWID.  This means - * that any message (a request or response) from another device will - * always have exactly the same address.  If you didn't do this, - * requests and responses from the same device would have different - * addresses, and that's not too cool. - * - * In this address, the remote_SWID is always the SWID the remote - * message came from, or the SWID we are sending the message to. - * local_SWID is always our SWID.  Note that having our SWID in the - * message is a little weird, but this is required. - */ -#define IPMI_LAN_ADDR_TYPE		0x04 -struct ipmi_lan_addr { -	int           addr_type; -	short         channel; -	unsigned char privilege; -	unsigned char session_handle; -	unsigned char remote_SWID; -	unsigned char local_SWID; -	unsigned char lun; -}; - - -/* - * Channel for talking directly with the BMC.  When using this - * channel, This is for the system interface address type only.  FIXME - * - is this right, or should we use -1? - */ -#define IPMI_BMC_CHANNEL  0xf -#define IPMI_NUM_CHANNELS 0x10 - -/* - * Used to signify an "all channel" bitmask.  This is more than the - * actual number of channels because this is used in userland and - * will cover us if the number of channels is extended. - */ -#define IPMI_CHAN_ALL     (~0) - - -/* - * A raw IPMI message without any addressing.  This covers both - * commands and responses.  The completion code is always the first - * byte of data in the response (as the spec shows the messages laid - * out). - */ -struct ipmi_msg { -	unsigned char  netfn; -	unsigned char  cmd; -	unsigned short data_len; -	unsigned char  __user *data; -}; - -struct kernel_ipmi_msg { -	unsigned char  netfn; -	unsigned char  cmd; -	unsigned short data_len; -	unsigned char  *data; -}; - -/* - * Various defines that are useful for IPMI applications. - */ -#define IPMI_INVALID_CMD_COMPLETION_CODE	0xC1 -#define IPMI_TIMEOUT_COMPLETION_CODE		0xC3 -#define IPMI_UNKNOWN_ERR_COMPLETION_CODE	0xff - - -/* - * Receive types for messages coming from the receive interface.  This - * is used for the receive in-kernel interface and in the receive - * IOCTL. - * - * The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but - * it allows you to get the message results when you send a response - * message. - */ -#define IPMI_RESPONSE_RECV_TYPE		1 /* A response to a command */ -#define IPMI_ASYNC_EVENT_RECV_TYPE	2 /* Something from the event queue */ -#define IPMI_CMD_RECV_TYPE		3 /* A command from somewhere else */ -#define IPMI_RESPONSE_RESPONSE_TYPE	4 /* The response for -					      a sent response, giving any -					      error status for sending the -					      response.  When you send a -					      response message, this will -					      be returned. */ -#define IPMI_OEM_RECV_TYPE		5 /* The response for OEM Channels */ - -/* Note that async events and received commands do not have a completion -   code as the first byte of the incoming data, unlike a response. */ - - -/* - * Modes for ipmi_set_maint_mode() and the userland IOCTL.  The AUTO - * setting is the default and means it will be set on certain - * commands.  Hard setting it on and off will override automatic - * operation. - */ -#define IPMI_MAINTENANCE_MODE_AUTO	0 -#define IPMI_MAINTENANCE_MODE_OFF	1 -#define IPMI_MAINTENANCE_MODE_ON	2 - -#ifdef __KERNEL__  /*   * The in-kernel interface. @@ -493,244 +313,4 @@ struct ipmi_smi_info {  /* This is to get the private info of ipmi_smi_t */  extern int ipmi_get_smi_info(int if_num, struct ipmi_smi_info *data); -#endif /* __KERNEL__ */ - - -/* - * The userland interface - */ - -/* - * The userland interface for the IPMI driver is a standard character - * device, with each instance of an interface registered as a minor - * number under the major character device. - * - * The read and write calls do not work, to get messages in and out - * requires ioctl calls because of the complexity of the data.  select - * and poll do work, so you can wait for input using the file - * descriptor, you just can use read to get it. - * - * In general, you send a command down to the interface and receive - * responses back.  You can use the msgid value to correlate commands - * and responses, the driver will take care of figuring out which - * incoming messages are for which command and find the proper msgid - * value to report.  You will only receive reponses for commands you - * send.  Asynchronous events, however, go to all open users, so you - * must be ready to handle these (or ignore them if you don't care). - * - * The address type depends upon the channel type.  When talking - * directly to the BMC (IPMC_BMC_CHANNEL), the address is ignored - * (IPMI_UNUSED_ADDR_TYPE).  When talking to an IPMB channel, you must - * supply a valid IPMB address with the addr_type set properly. - * - * When talking to normal channels, the driver takes care of the - * details of formatting and sending messages on that channel.  You do - * not, for instance, have to format a send command, you just send - * whatever command you want to the channel, the driver will create - * the send command, automatically issue receive command and get even - * commands, and pass those up to the proper user. - */ - - -/* The magic IOCTL value for this interface. */ -#define IPMI_IOC_MAGIC 'i' - - -/* Messages sent to the interface are this format. */ -struct ipmi_req { -	unsigned char __user *addr; /* Address to send the message to. */ -	unsigned int  addr_len; - -	long    msgid; /* The sequence number for the message.  This -			  exact value will be reported back in the -			  response to this request if it is a command. -			  If it is a response, this will be used as -			  the sequence value for the response.  */ - -	struct ipmi_msg msg; -}; -/* - * Send a message to the interfaces.  error values are: - *   - EFAULT - an address supplied was invalid. - *   - EINVAL - The address supplied was not valid, or the command - *              was not allowed. - *   - EMSGSIZE - The message to was too large. - *   - ENOMEM - Buffers could not be allocated for the command. - */ -#define IPMICTL_SEND_COMMAND		_IOR(IPMI_IOC_MAGIC, 13,	\ -					     struct ipmi_req) - -/* Messages sent to the interface with timing parameters are this -   format. */ -struct ipmi_req_settime { -	struct ipmi_req req; - -	/* See ipmi_request_settime() above for details on these -	   values. */ -	int          retries; -	unsigned int retry_time_ms; -}; -/* - * Send a message to the interfaces with timing parameters.  error values - * are: - *   - EFAULT - an address supplied was invalid. - *   - EINVAL - The address supplied was not valid, or the command - *              was not allowed. - *   - EMSGSIZE - The message to was too large. - *   - ENOMEM - Buffers could not be allocated for the command. - */ -#define IPMICTL_SEND_COMMAND_SETTIME	_IOR(IPMI_IOC_MAGIC, 21,	\ -					     struct ipmi_req_settime) - -/* Messages received from the interface are this format. */ -struct ipmi_recv { -	int     recv_type; /* Is this a command, response or an -			      asyncronous event. */ - -	unsigned char __user *addr;    /* Address the message was from is put -				   here.  The caller must supply the -				   memory. */ -	unsigned int  addr_len; /* The size of the address buffer. -				   The caller supplies the full buffer -				   length, this value is updated to -				   the actual message length when the -				   message is received. */ - -	long    msgid; /* The sequence number specified in the request -			  if this is a response.  If this is a command, -			  this will be the sequence number from the -			  command. */ - -	struct ipmi_msg msg; /* The data field must point to a buffer. -				The data_size field must be set to the -				size of the message buffer.  The -				caller supplies the full buffer -				length, this value is updated to the -				actual message length when the message -				is received. */ -}; - -/* - * Receive a message.  error values: - *  - EAGAIN - no messages in the queue. - *  - EFAULT - an address supplied was invalid. - *  - EINVAL - The address supplied was not valid. - *  - EMSGSIZE - The message to was too large to fit into the message buffer, - *               the message will be left in the buffer. */ -#define IPMICTL_RECEIVE_MSG		_IOWR(IPMI_IOC_MAGIC, 12,	\ -					      struct ipmi_recv) - -/* - * Like RECEIVE_MSG, but if the message won't fit in the buffer, it - * will truncate the contents instead of leaving the data in the - * buffer. - */ -#define IPMICTL_RECEIVE_MSG_TRUNC	_IOWR(IPMI_IOC_MAGIC, 11,	\ -					      struct ipmi_recv) - -/* Register to get commands from other entities on this interface. */ -struct ipmi_cmdspec { -	unsigned char netfn; -	unsigned char cmd; -}; - -/* - * Register to receive a specific command.  error values: - *   - EFAULT - an address supplied was invalid. - *   - EBUSY - The netfn/cmd supplied was already in use. - *   - ENOMEM - could not allocate memory for the entry. - */ -#define IPMICTL_REGISTER_FOR_CMD	_IOR(IPMI_IOC_MAGIC, 14,	\ -					     struct ipmi_cmdspec) -/* - * Unregister a regsitered command.  error values: - *  - EFAULT - an address supplied was invalid. - *  - ENOENT - The netfn/cmd was not found registered for this user. - */ -#define IPMICTL_UNREGISTER_FOR_CMD	_IOR(IPMI_IOC_MAGIC, 15,	\ -					     struct ipmi_cmdspec) - -/* - * Register to get commands from other entities on specific channels. - * This way, you can only listen on specific channels, or have messages - * from some channels go to one place and other channels to someplace - * else.  The chans field is a bitmask, (1 << channel) for each channel. - * It may be IPMI_CHAN_ALL for all channels. - */ -struct ipmi_cmdspec_chans { -	unsigned int netfn; -	unsigned int cmd; -	unsigned int chans; -}; - -/* - * Register to receive a specific command on specific channels.  error values: - *   - EFAULT - an address supplied was invalid. - *   - EBUSY - One of the netfn/cmd/chans supplied was already in use. - *   - ENOMEM - could not allocate memory for the entry. - */ -#define IPMICTL_REGISTER_FOR_CMD_CHANS	_IOR(IPMI_IOC_MAGIC, 28,	\ -					     struct ipmi_cmdspec_chans) -/* - * Unregister some netfn/cmd/chans.  error values: - *  - EFAULT - an address supplied was invalid. - *  - ENOENT - None of the netfn/cmd/chans were found registered for this user. - */ -#define IPMICTL_UNREGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 29,	\ -					     struct ipmi_cmdspec_chans) - -/* - * Set whether this interface receives events.  Note that the first - * user registered for events will get all pending events for the - * interface.  error values: - *  - EFAULT - an address supplied was invalid. - */ -#define IPMICTL_SET_GETS_EVENTS_CMD	_IOR(IPMI_IOC_MAGIC, 16, int) - -/* - * Set and get the slave address and LUN that we will use for our - * source messages.  Note that this affects the interface, not just - * this user, so it will affect all users of this interface.  This is - * so some initialization code can come in and do the OEM-specific - * things it takes to determine your address (if not the BMC) and set - * it for everyone else.  You should probably leave the LUN alone. - */ -struct ipmi_channel_lun_address_set { -	unsigned short channel; -	unsigned char  value; -}; -#define IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD \ -	_IOR(IPMI_IOC_MAGIC, 24, struct ipmi_channel_lun_address_set) -#define IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD \ -	_IOR(IPMI_IOC_MAGIC, 25, struct ipmi_channel_lun_address_set) -#define IPMICTL_SET_MY_CHANNEL_LUN_CMD \ -	_IOR(IPMI_IOC_MAGIC, 26, struct ipmi_channel_lun_address_set) -#define IPMICTL_GET_MY_CHANNEL_LUN_CMD \ -	_IOR(IPMI_IOC_MAGIC, 27, struct ipmi_channel_lun_address_set) -/* Legacy interfaces, these only set IPMB 0. */ -#define IPMICTL_SET_MY_ADDRESS_CMD	_IOR(IPMI_IOC_MAGIC, 17, unsigned int) -#define IPMICTL_GET_MY_ADDRESS_CMD	_IOR(IPMI_IOC_MAGIC, 18, unsigned int) -#define IPMICTL_SET_MY_LUN_CMD		_IOR(IPMI_IOC_MAGIC, 19, unsigned int) -#define IPMICTL_GET_MY_LUN_CMD		_IOR(IPMI_IOC_MAGIC, 20, unsigned int) - -/* - * Get/set the default timing values for an interface.  You shouldn't - * generally mess with these. - */ -struct ipmi_timing_parms { -	int          retries; -	unsigned int retry_time_ms; -}; -#define IPMICTL_SET_TIMING_PARMS_CMD	_IOR(IPMI_IOC_MAGIC, 22, \ -					     struct ipmi_timing_parms) -#define IPMICTL_GET_TIMING_PARMS_CMD	_IOR(IPMI_IOC_MAGIC, 23, \ -					     struct ipmi_timing_parms) - -/* - * Set the maintenance mode.  See ipmi_set_maintenance_mode() above - * for a description of what this does. - */ -#define IPMICTL_GET_MAINTENANCE_MODE_CMD	_IOR(IPMI_IOC_MAGIC, 30, int) -#define IPMICTL_SET_MAINTENANCE_MODE_CMD	_IOW(IPMI_IOC_MAGIC, 31, int) -  #endif /* __LINUX_IPMI_H */ diff --git a/include/linux/ipmi_msgdefs.h b/include/linux/ipmi_msgdefs.h deleted file mode 100644 index df97e6e31e8..00000000000 --- a/include/linux/ipmi_msgdefs.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * ipmi_smi.h - * - * MontaVista IPMI system management interface - * - * Author: MontaVista Software, Inc. - *         Corey Minyard <minyard@mvista.com> - *         source@mvista.com - * - * Copyright 2002 MontaVista Software Inc. - * - *  This program is free software; you can redistribute it and/or modify it - *  under the terms of the GNU General Public License as published by the - *  Free Software Foundation; either version 2 of the License, or (at your - *  option) any later version. - * - * - *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *  You should have received a copy of the GNU General Public License along - *  with this program; if not, write to the Free Software Foundation, Inc., - *  675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __LINUX_IPMI_MSGDEFS_H -#define __LINUX_IPMI_MSGDEFS_H - -/* Various definitions for IPMI messages used by almost everything in -   the IPMI stack. */ - -/* NetFNs and commands used inside the IPMI stack. */ - -#define IPMI_NETFN_SENSOR_EVENT_REQUEST		0x04 -#define IPMI_NETFN_SENSOR_EVENT_RESPONSE	0x05 -#define IPMI_GET_EVENT_RECEIVER_CMD	0x01 - -#define IPMI_NETFN_APP_REQUEST			0x06 -#define IPMI_NETFN_APP_RESPONSE			0x07 -#define IPMI_GET_DEVICE_ID_CMD		0x01 -#define IPMI_COLD_RESET_CMD		0x02 -#define IPMI_WARM_RESET_CMD		0x03 -#define IPMI_CLEAR_MSG_FLAGS_CMD	0x30 -#define IPMI_GET_DEVICE_GUID_CMD	0x08 -#define IPMI_GET_MSG_FLAGS_CMD		0x31 -#define IPMI_SEND_MSG_CMD		0x34 -#define IPMI_GET_MSG_CMD		0x33 -#define IPMI_SET_BMC_GLOBAL_ENABLES_CMD	0x2e -#define IPMI_GET_BMC_GLOBAL_ENABLES_CMD	0x2f -#define IPMI_READ_EVENT_MSG_BUFFER_CMD	0x35 -#define IPMI_GET_CHANNEL_INFO_CMD	0x42 - -/* Bit for BMC global enables. */ -#define IPMI_BMC_RCV_MSG_INTR     0x01 -#define IPMI_BMC_EVT_MSG_INTR     0x02 -#define IPMI_BMC_EVT_MSG_BUFF     0x04 -#define IPMI_BMC_SYS_LOG          0x08 - -#define IPMI_NETFN_STORAGE_REQUEST		0x0a -#define IPMI_NETFN_STORAGE_RESPONSE		0x0b -#define IPMI_ADD_SEL_ENTRY_CMD		0x44 - -#define IPMI_NETFN_FIRMWARE_REQUEST		0x08 -#define IPMI_NETFN_FIRMWARE_RESPONSE		0x09 - -/* The default slave address */ -#define IPMI_BMC_SLAVE_ADDR	0x20 - -/* The BT interface on high-end HP systems supports up to 255 bytes in - * one transfer.  Its "virtual" BMC supports some commands that are longer - * than 128 bytes.  Use the full 256, plus NetFn/LUN, Cmd, cCode, plus - * some overhead; it's not worth the effort to dynamically size this based - * on the results of the "Get BT Capabilities" command. */ -#define IPMI_MAX_MSG_LENGTH	272	/* multiple of 16 */ - -#define IPMI_CC_NO_ERROR		0x00 -#define IPMI_NODE_BUSY_ERR		0xc0 -#define IPMI_INVALID_COMMAND_ERR	0xc1 -#define IPMI_TIMEOUT_ERR		0xc3 -#define IPMI_ERR_MSG_TRUNCATED		0xc6 -#define IPMI_REQ_LEN_INVALID_ERR	0xc7 -#define IPMI_REQ_LEN_EXCEEDED_ERR	0xc8 -#define IPMI_NOT_IN_MY_STATE_ERR	0xd5	/* IPMI 2.0 */ -#define IPMI_LOST_ARBITRATION_ERR	0x81 -#define IPMI_BUS_ERR			0x82 -#define IPMI_NAK_ON_WRITE_ERR		0x83 -#define IPMI_ERR_UNSPECIFIED		0xff - -#define IPMI_CHANNEL_PROTOCOL_IPMB	1 -#define IPMI_CHANNEL_PROTOCOL_ICMB	2 -#define IPMI_CHANNEL_PROTOCOL_SMBUS	4 -#define IPMI_CHANNEL_PROTOCOL_KCS	5 -#define IPMI_CHANNEL_PROTOCOL_SMIC	6 -#define IPMI_CHANNEL_PROTOCOL_BT10	7 -#define IPMI_CHANNEL_PROTOCOL_BT15	8 -#define IPMI_CHANNEL_PROTOCOL_TMODE	9 - -#define IPMI_CHANNEL_MEDIUM_IPMB	1 -#define IPMI_CHANNEL_MEDIUM_ICMB10	2 -#define IPMI_CHANNEL_MEDIUM_ICMB09	3 -#define IPMI_CHANNEL_MEDIUM_8023LAN	4 -#define IPMI_CHANNEL_MEDIUM_ASYNC	5 -#define IPMI_CHANNEL_MEDIUM_OTHER_LAN	6 -#define IPMI_CHANNEL_MEDIUM_PCI_SMBUS	7 -#define IPMI_CHANNEL_MEDIUM_SMBUS1	8 -#define IPMI_CHANNEL_MEDIUM_SMBUS2	9 -#define IPMI_CHANNEL_MEDIUM_USB1	10 -#define IPMI_CHANNEL_MEDIUM_USB2	11 -#define IPMI_CHANNEL_MEDIUM_SYSINTF	12 -#define IPMI_CHANNEL_MEDIUM_OEM_MIN	0x60 -#define IPMI_CHANNEL_MEDIUM_OEM_MAX	0x7f - -#endif /* __LINUX_IPMI_MSGDEFS_H */ diff --git a/include/linux/ipsec.h b/include/linux/ipsec.h deleted file mode 100644 index d17a6302a0e..00000000000 --- a/include/linux/ipsec.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef _LINUX_IPSEC_H -#define _LINUX_IPSEC_H - -/* The definitions, required to talk to KAME racoon IKE. */ - -#include <linux/pfkeyv2.h> - -#define IPSEC_PORT_ANY		0 -#define IPSEC_ULPROTO_ANY	255 -#define IPSEC_PROTO_ANY		255 - -enum { -	IPSEC_MODE_ANY		= 0,	/* We do not support this for SA */ -	IPSEC_MODE_TRANSPORT	= 1, -	IPSEC_MODE_TUNNEL	= 2, -	IPSEC_MODE_BEET         = 3 -}; - -enum { -	IPSEC_DIR_ANY		= 0, -	IPSEC_DIR_INBOUND	= 1, -	IPSEC_DIR_OUTBOUND	= 2, -	IPSEC_DIR_FWD		= 3,	/* It is our own */ -	IPSEC_DIR_MAX		= 4, -	IPSEC_DIR_INVALID	= 5 -}; - -enum { -	IPSEC_POLICY_DISCARD	= 0, -	IPSEC_POLICY_NONE	= 1, -	IPSEC_POLICY_IPSEC	= 2, -	IPSEC_POLICY_ENTRUST	= 3, -	IPSEC_POLICY_BYPASS	= 4 -}; - -enum { -	IPSEC_LEVEL_DEFAULT	= 0, -	IPSEC_LEVEL_USE		= 1, -	IPSEC_LEVEL_REQUIRE	= 2, -	IPSEC_LEVEL_UNIQUE	= 3 -}; - -#define IPSEC_MANUAL_REQID_MAX	0x3fff - -#define IPSEC_REPLAYWSIZE  32 - -#endif	/* _LINUX_IPSEC_H */ diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 0b94e91ed68..bcba48a9786 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -1,134 +1,9 @@  #ifndef _IPV6_H  #define _IPV6_H -#include <linux/types.h> -#include <linux/in6.h> -#include <asm/byteorder.h> +#include <uapi/linux/ipv6.h> -/* The latest drafts declared increase in minimal mtu up to 1280. */ - -#define IPV6_MIN_MTU	1280 - -/* - *	Advanced API - *	source interface/address selection, source routing, etc... - *	*under construction* - */ - - -struct in6_pktinfo { -	struct in6_addr	ipi6_addr; -	int		ipi6_ifindex; -}; - -struct ip6_mtuinfo { -	struct sockaddr_in6	ip6m_addr; -	__u32			ip6m_mtu; -}; - -struct in6_ifreq { -	struct in6_addr	ifr6_addr; -	__u32		ifr6_prefixlen; -	int		ifr6_ifindex;  -}; - -#define IPV6_SRCRT_STRICT	0x01	/* Deprecated; will be removed */ -#define IPV6_SRCRT_TYPE_0	0	/* Deprecated; will be removed */ -#define IPV6_SRCRT_TYPE_2	2	/* IPv6 type 2 Routing Header	*/ - -/* - *	routing header - */ -struct ipv6_rt_hdr { -	__u8		nexthdr; -	__u8		hdrlen; -	__u8		type; -	__u8		segments_left; - -	/* -	 *	type specific data -	 *	variable length field -	 */ -}; - - -struct ipv6_opt_hdr { -	__u8 		nexthdr; -	__u8 		hdrlen; -	/*  -	 * TLV encoded option data follows. -	 */ -} __attribute__((packed));	/* required for some archs */ - -#define ipv6_destopt_hdr ipv6_opt_hdr -#define ipv6_hopopt_hdr  ipv6_opt_hdr - -#ifdef __KERNEL__  #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3) -#endif - -/* - *	routing header type 0 (used in cmsghdr struct) - */ - -struct rt0_hdr { -	struct ipv6_rt_hdr	rt_hdr; -	__u32			reserved; -	struct in6_addr		addr[0]; - -#define rt0_type		rt_hdr.type -}; - -/* - *	routing header type 2 - */ - -struct rt2_hdr { -	struct ipv6_rt_hdr	rt_hdr; -	__u32			reserved; -	struct in6_addr		addr; - -#define rt2_type		rt_hdr.type -}; - -/* - *	home address option in destination options header - */ - -struct ipv6_destopt_hao { -	__u8			type; -	__u8			length; -	struct in6_addr		addr; -} __attribute__((packed)); - -/* - *	IPv6 fixed header - * - *	BEWARE, it is incorrect. The first 4 bits of flow_lbl - *	are glued to priority now, forming "class". - */ - -struct ipv6hdr { -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u8			priority:4, -				version:4; -#elif defined(__BIG_ENDIAN_BITFIELD) -	__u8			version:4, -				priority:4; -#else -#error	"Please fix <asm/byteorder.h>" -#endif -	__u8			flow_lbl[3]; - -	__be16			payload_len; -	__u8			nexthdr; -	__u8			hop_limit; - -	struct	in6_addr	saddr; -	struct	in6_addr	daddr; -}; - -#ifdef __KERNEL__  /*   * This structure contains configuration options per IPv6 link.   */ @@ -180,43 +55,6 @@ struct ipv6_params {  	__s32 autoconf;  };  extern struct ipv6_params ipv6_defaults; -#endif - -/* index values for the variables in ipv6_devconf */ -enum { -	DEVCONF_FORWARDING = 0, -	DEVCONF_HOPLIMIT, -	DEVCONF_MTU6, -	DEVCONF_ACCEPT_RA, -	DEVCONF_ACCEPT_REDIRECTS, -	DEVCONF_AUTOCONF, -	DEVCONF_DAD_TRANSMITS, -	DEVCONF_RTR_SOLICITS, -	DEVCONF_RTR_SOLICIT_INTERVAL, -	DEVCONF_RTR_SOLICIT_DELAY, -	DEVCONF_USE_TEMPADDR, -	DEVCONF_TEMP_VALID_LFT, -	DEVCONF_TEMP_PREFERED_LFT, -	DEVCONF_REGEN_MAX_RETRY, -	DEVCONF_MAX_DESYNC_FACTOR, -	DEVCONF_MAX_ADDRESSES, -	DEVCONF_FORCE_MLD_VERSION, -	DEVCONF_ACCEPT_RA_DEFRTR, -	DEVCONF_ACCEPT_RA_PINFO, -	DEVCONF_ACCEPT_RA_RTR_PREF, -	DEVCONF_RTR_PROBE_INTERVAL, -	DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, -	DEVCONF_PROXY_NDP, -	DEVCONF_OPTIMISTIC_DAD, -	DEVCONF_ACCEPT_SOURCE_ROUTE, -	DEVCONF_MC_FORWARDING, -	DEVCONF_DISABLE_IPV6, -	DEVCONF_ACCEPT_DAD, -	DEVCONF_FORCE_TLLAO, -	DEVCONF_MAX -}; - -#ifdef __KERNEL__  #include <linux/icmpv6.h>  #include <linux/tcp.h>  #include <linux/udp.h> @@ -541,6 +379,4 @@ static inline struct raw6_sock *raw6_sk(const struct sock *sk)  	 (ipv6_addr_equal(&inet6_twsk(__sk)->tw_v6_rcv_saddr, (__daddr))) && \  	 (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) -#endif /* __KERNEL__ */ -  #endif /* _IPV6_H */ diff --git a/include/linux/ipv6_route.h b/include/linux/ipv6_route.h index 1e7d8af2def..25b5f1f5e78 100644 --- a/include/linux/ipv6_route.h +++ b/include/linux/ipv6_route.h @@ -9,54 +9,11 @@   *      as published by the Free Software Foundation; either version   *      2 of the License, or (at your option) any later version.   */ -  #ifndef _LINUX_IPV6_ROUTE_H  #define _LINUX_IPV6_ROUTE_H -#include <linux/types.h> - -#define RTF_DEFAULT	0x00010000	/* default - learned via ND	*/ -#define RTF_ALLONLINK	0x00020000	/* (deprecated and will be removed) -					   fallback, no routers on link */ -#define RTF_ADDRCONF	0x00040000	/* addrconf route - RA		*/ -#define RTF_PREFIX_RT	0x00080000	/* A prefix only route - RA	*/ -#define RTF_ANYCAST	0x00100000	/* Anycast			*/ - -#define RTF_NONEXTHOP	0x00200000	/* route with no nexthop	*/ -#define RTF_EXPIRES	0x00400000 - -#define RTF_ROUTEINFO	0x00800000	/* route information - RA	*/ - -#define RTF_CACHE	0x01000000	/* cache entry			*/ -#define RTF_FLOW	0x02000000	/* flow significant route	*/ -#define RTF_POLICY	0x04000000	/* policy route			*/ - -#define RTF_PREF(pref)	((pref) << 27) -#define RTF_PREF_MASK	0x18000000 +#include <uapi/linux/ipv6_route.h> -#define RTF_LOCAL	0x80000000 - -#ifdef __KERNEL__  #define IPV6_EXTRACT_PREF(flag)	(((flag) & RTF_PREF_MASK) >> 27)  #define IPV6_DECODE_PREF(pref)	((pref) ^ 2)	/* 1:low,2:med,3:high */  #endif - -struct in6_rtmsg { -	struct in6_addr		rtmsg_dst; -	struct in6_addr		rtmsg_src; -	struct in6_addr		rtmsg_gateway; -	__u32			rtmsg_type; -	__u16			rtmsg_dst_len; -	__u16			rtmsg_src_len; -	__u32			rtmsg_metric; -	unsigned long		rtmsg_info; -        __u32			rtmsg_flags; -	int			rtmsg_ifindex; -}; - -#define RTMSG_NEWDEVICE		0x11 -#define RTMSG_DELDEVICE		0x12 -#define RTMSG_NEWROUTE		0x21 -#define RTMSG_DELROUTE		0x22 - -#endif diff --git a/include/linux/ipx.h b/include/linux/ipx.h deleted file mode 100644 index 3d48014cdd7..00000000000 --- a/include/linux/ipx.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef _IPX_H_ -#define _IPX_H_ -#include <linux/types.h> -#include <linux/sockios.h> -#include <linux/socket.h> -#define IPX_NODE_LEN	6 -#define IPX_MTU		576 - -struct sockaddr_ipx { -	__kernel_sa_family_t sipx_family; -	__be16		sipx_port; -	__be32		sipx_network; -	unsigned char 	sipx_node[IPX_NODE_LEN]; -	__u8		sipx_type; -	unsigned char	sipx_zero;	/* 16 byte fill */ -}; - -/* - * So we can fit the extra info for SIOCSIFADDR into the address nicely - */ -#define sipx_special	sipx_port -#define sipx_action	sipx_zero -#define IPX_DLTITF	0 -#define IPX_CRTITF	1 - -struct ipx_route_definition { -	__be32        ipx_network; -	__be32        ipx_router_network; -	unsigned char ipx_router_node[IPX_NODE_LEN]; -}; - -struct ipx_interface_definition { -	__be32        ipx_network; -	unsigned char ipx_device[16]; -	unsigned char ipx_dlink_type; -#define IPX_FRAME_NONE		0 -#define IPX_FRAME_SNAP		1 -#define IPX_FRAME_8022		2 -#define IPX_FRAME_ETHERII	3 -#define IPX_FRAME_8023		4 -#define IPX_FRAME_TR_8022       5 /* obsolete */ -	unsigned char ipx_special; -#define IPX_SPECIAL_NONE	0 -#define IPX_PRIMARY		1 -#define IPX_INTERNAL		2 -	unsigned char ipx_node[IPX_NODE_LEN]; -}; -	 -struct ipx_config_data { -	unsigned char	ipxcfg_auto_select_primary; -	unsigned char	ipxcfg_auto_create_interfaces; -}; - -/* - * OLD Route Definition for backward compatibility. - */ - -struct ipx_route_def { -	__be32		ipx_network; -	__be32		ipx_router_network; -#define IPX_ROUTE_NO_ROUTER	0 -	unsigned char	ipx_router_node[IPX_NODE_LEN]; -	unsigned char	ipx_device[16]; -	unsigned short	ipx_flags; -#define IPX_RT_SNAP		8 -#define IPX_RT_8022		4 -#define IPX_RT_BLUEBOOK		2 -#define IPX_RT_ROUTED		1 -}; - -#define SIOCAIPXITFCRT		(SIOCPROTOPRIVATE) -#define SIOCAIPXPRISLT		(SIOCPROTOPRIVATE + 1) -#define SIOCIPXCFGDATA		(SIOCPROTOPRIVATE + 2) -#define SIOCIPXNCPCONN		(SIOCPROTOPRIVATE + 3) -#endif /* _IPX_H_ */ diff --git a/include/linux/irda.h b/include/linux/irda.h deleted file mode 100644 index a014c325231..00000000000 --- a/include/linux/irda.h +++ /dev/null @@ -1,251 +0,0 @@ -/********************************************************************* - *                 - * Filename:      irda.h - * Version:        - * Description:    - * Status:        Experimental. - * Author:        Dag Brattli <dagb@cs.uit.no> - * Created at:    Mon Mar  8 14:06:12 1999 - * Modified at:   Sat Dec 25 16:06:42 1999 - * Modified by:   Dag Brattli <dagb@cs.uit.no> - *  - *     Copyright (c) 1999 Dag Brattli, All Rights Reserved. - *       - *     This program is free software; you can redistribute it and/or  - *     modify it under the terms of the GNU General Public License as  - *     published by the Free Software Foundation; either version 2 of  - *     the License, or (at your option) any later version. - *   - *     Neither Dag Brattli nor University of Tromsø admit liability nor - *     provide warranty for any of this software. This material is  - *     provided "AS-IS" and at no charge. - * - ********************************************************************/ - -#ifndef KERNEL_IRDA_H -#define KERNEL_IRDA_H - -#include <linux/types.h> -#include <linux/socket.h> - -/* Note that this file is shared with user space. */ - -/* Hint bit positions for first hint byte */ -#define HINT_PNP         0x01 -#define HINT_PDA         0x02 -#define HINT_COMPUTER    0x04 -#define HINT_PRINTER     0x08 -#define HINT_MODEM       0x10 -#define HINT_FAX         0x20 -#define HINT_LAN         0x40 -#define HINT_EXTENSION   0x80 - -/* Hint bit positions for second hint byte (first extension byte) */ -#define HINT_TELEPHONY   0x01 -#define HINT_FILE_SERVER 0x02 -#define HINT_COMM        0x04 -#define HINT_MESSAGE     0x08 -#define HINT_HTTP        0x10 -#define HINT_OBEX        0x20 - -/* IrLMP character code values */ -#define CS_ASCII         0x00 -#define	CS_ISO_8859_1    0x01 -#define	CS_ISO_8859_2    0x02 -#define	CS_ISO_8859_3    0x03 -#define	CS_ISO_8859_4    0x04 -#define	CS_ISO_8859_5    0x05 -#define	CS_ISO_8859_6    0x06 -#define	CS_ISO_8859_7    0x07 -#define	CS_ISO_8859_8    0x08 -#define	CS_ISO_8859_9    0x09 -#define CS_UNICODE       0xff - -/* These are the currently known dongles */ -typedef enum { -	IRDA_TEKRAM_DONGLE       = 0, -	IRDA_ESI_DONGLE          = 1, -	IRDA_ACTISYS_DONGLE      = 2, -	IRDA_ACTISYS_PLUS_DONGLE = 3, -	IRDA_GIRBIL_DONGLE       = 4, -	IRDA_LITELINK_DONGLE     = 5, -	IRDA_AIRPORT_DONGLE      = 6, -	IRDA_OLD_BELKIN_DONGLE   = 7, -	IRDA_EP7211_IR           = 8, -	IRDA_MCP2120_DONGLE      = 9, -	IRDA_ACT200L_DONGLE      = 10, -	IRDA_MA600_DONGLE        = 11, -	IRDA_TOIM3232_DONGLE     = 12, -	IRDA_EP7211_DONGLE       = 13, -} IRDA_DONGLE; - -/* Protocol types to be used for SOCK_DGRAM */ -enum { -	IRDAPROTO_UNITDATA = 0, -	IRDAPROTO_ULTRA    = 1, -	IRDAPROTO_MAX -}; - -#define SOL_IRLMP      266 /* Same as SOL_IRDA for now */ -#define SOL_IRTTP      266 /* Same as SOL_IRDA for now */ - -#define IRLMP_ENUMDEVICES        1	/* Return discovery log */ -#define IRLMP_IAS_SET            2	/* Set an attribute in local IAS */ -#define IRLMP_IAS_QUERY          3	/* Query remote IAS for attribute */ -#define IRLMP_HINTS_SET          4	/* Set hint bits advertised */ -#define IRLMP_QOS_SET            5 -#define IRLMP_QOS_GET            6 -#define IRLMP_MAX_SDU_SIZE       7 -#define IRLMP_IAS_GET            8	/* Get an attribute from local IAS */ -#define IRLMP_IAS_DEL		 9	/* Remove attribute from local IAS */ -#define IRLMP_HINT_MASK_SET	10	/* Set discovery filter */ -#define IRLMP_WAITDEVICE	11	/* Wait for a new discovery */ - -#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE /* Compatibility */ - -#define IAS_MAX_STRING         256	/* See IrLMP 1.1, 4.3.3.2 */ -#define IAS_MAX_OCTET_STRING  1024	/* See IrLMP 1.1, 4.3.3.2 */ -#define IAS_MAX_CLASSNAME       60	/* See IrLMP 1.1, 4.3.1 */ -#define IAS_MAX_ATTRIBNAME      60	/* See IrLMP 1.1, 4.3.3.1 */ -#define IAS_MAX_ATTRIBNUMBER   256	/* See IrLMP 1.1, 4.3.3.1 */ -/* For user space backward compatibility - may be fixed in kernel 2.5.X - * Note : need 60+1 ('\0'), make it 64 for alignement - Jean II */ -#define IAS_EXPORT_CLASSNAME       64 -#define IAS_EXPORT_ATTRIBNAME     256 - -/* Attribute type needed for struct irda_ias_set */ -#define IAS_MISSING 0 -#define IAS_INTEGER 1 -#define IAS_OCT_SEQ 2 -#define IAS_STRING  3 - -#define LSAP_ANY              0xff - -struct sockaddr_irda { -	__kernel_sa_family_t sir_family; /* AF_IRDA */ -	__u8        sir_lsap_sel; /* LSAP selector */ -	__u32       sir_addr;     /* Device address */ -	char        sir_name[25]; /* Usually <service>:IrDA:TinyTP */ -}; - -struct irda_device_info { -	__u32       saddr;    /* Address of local interface */ -	__u32       daddr;    /* Address of remote device */ -	char        info[22]; /* Description */ -	__u8        charset;  /* Charset used for description */ -	__u8        hints[2]; /* Hint bits */ -}; - -struct irda_device_list { -       __u32 len; -       struct irda_device_info dev[1]; -}; - -struct irda_ias_set { -	char irda_class_name[IAS_EXPORT_CLASSNAME]; -	char irda_attrib_name[IAS_EXPORT_ATTRIBNAME]; -	unsigned int irda_attrib_type; -	union { -		unsigned int irda_attrib_int; -		struct { -			unsigned short len; -			__u8 octet_seq[IAS_MAX_OCTET_STRING]; -		} irda_attrib_octet_seq; -		struct { -			__u8 len; -			__u8 charset; -			__u8 string[IAS_MAX_STRING]; -		} irda_attrib_string; -	} attribute; -	__u32       daddr;    /* Address of device (for some queries only) */ -}; - -/* Some private IOCTL's (max 16) */ -#define SIOCSDONGLE    (SIOCDEVPRIVATE + 0) -#define SIOCGDONGLE    (SIOCDEVPRIVATE + 1) -#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2) -#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3) -#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4) -#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5) -#define SIOCSMODE      (SIOCDEVPRIVATE + 6) -#define SIOCGMODE      (SIOCDEVPRIVATE + 7) -#define SIOCSDTRRTS    (SIOCDEVPRIVATE + 8) -#define SIOCGQOS       (SIOCDEVPRIVATE + 9) - -/* No reason to include <linux/if.h> just because of this one ;-) */ -#define IRNAMSIZ 16  - -/* IrDA quality of service information (must not exceed 16 bytes) */ -struct if_irda_qos { -	unsigned long  baudrate; -	unsigned short data_size; -	unsigned short window_size; -	unsigned short min_turn_time; -	unsigned short max_turn_time; -	unsigned char  add_bofs; -	unsigned char  link_disc; -}; - -/* For setting RTS and DTR lines of a dongle */ -struct if_irda_line { -	__u8 dtr; -	__u8 rts; -}; - -/* IrDA interface configuration (data part must not exceed 16 bytes) */ -struct if_irda_req { -	union { -		char ifrn_name[IRNAMSIZ];  /* if name, e.g. "irda0" */ -	} ifr_ifrn; -	 -	/* Data part */ -	union { -		struct if_irda_line ifru_line; -		struct if_irda_qos  ifru_qos; -		unsigned short      ifru_flags; -		unsigned int        ifru_receiving; -		unsigned int        ifru_mode; -		unsigned int        ifru_dongle; -	} ifr_ifru; -}; - -#define ifr_baudrate  ifr_ifru.ifru_qos.baudrate -#define ifr_receiving ifr_ifru.ifru_receiving  -#define ifr_dongle    ifr_ifru.ifru_dongle -#define ifr_mode      ifr_ifru.ifru_mode -#define ifr_dtr       ifr_ifru.ifru_line.dtr -#define ifr_rts       ifr_ifru.ifru_line.rts - - -/* IrDA netlink definitions */ -#define IRDA_NL_NAME "irda" -#define IRDA_NL_VERSION 1 - -enum irda_nl_commands { -	IRDA_NL_CMD_UNSPEC, -	IRDA_NL_CMD_SET_MODE, -	IRDA_NL_CMD_GET_MODE, - -	__IRDA_NL_CMD_AFTER_LAST -}; -#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1) - -enum nl80211_attrs { -	IRDA_NL_ATTR_UNSPEC, -	IRDA_NL_ATTR_IFNAME, -	IRDA_NL_ATTR_MODE, - -	__IRDA_NL_ATTR_AFTER_LAST -}; -#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1) - -/* IrDA modes */ -#define IRDA_MODE_PRIMARY   0x1 -#define IRDA_MODE_SECONDARY 0x2 -#define IRDA_MODE_MONITOR   0x4 - -#endif /* KERNEL_IRDA_H */ - - - - diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h index 3bc4dcab6e8..0a2dc46cdaf 100644 --- a/include/linux/irqnr.h +++ b/include/linux/irqnr.h @@ -1,10 +1,8 @@  #ifndef _LINUX_IRQNR_H  #define _LINUX_IRQNR_H -/* - * Generic irq_desc iterators: - */ -#ifdef __KERNEL__ +#include <uapi/linux/irqnr.h> +  #ifndef CONFIG_GENERIC_HARDIRQS  #include <asm/irq.h> @@ -57,6 +55,4 @@ unsigned int irq_get_next_irq(unsigned int offset);  #define for_each_irq_nr(irq)                   \         for (irq = 0; irq < nr_irqs; irq++) -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/isdn.h b/include/linux/isdn.h index 215c41602af..1e9a0f2a862 100644 --- a/include/linux/isdn.h +++ b/include/linux/isdn.h @@ -10,136 +10,9 @@   * of the GNU General Public License, incorporated herein by reference.   *   */ -  #ifndef __ISDN_H__  #define __ISDN_H__ -#include <linux/ioctl.h> -#include <linux/tty.h> - -#define ISDN_MAX_DRIVERS    32 -#define ISDN_MAX_CHANNELS   64 - -/* New ioctl-codes */ -#define IIOCNETAIF  _IO('I',1) -#define IIOCNETDIF  _IO('I',2) -#define IIOCNETSCF  _IO('I',3) -#define IIOCNETGCF  _IO('I',4) -#define IIOCNETANM  _IO('I',5) -#define IIOCNETDNM  _IO('I',6) -#define IIOCNETGNM  _IO('I',7) -#define IIOCGETSET  _IO('I',8) /* no longer supported */ -#define IIOCSETSET  _IO('I',9) /* no longer supported */ -#define IIOCSETVER  _IO('I',10) -#define IIOCNETHUP  _IO('I',11) -#define IIOCSETGST  _IO('I',12) -#define IIOCSETBRJ  _IO('I',13) -#define IIOCSIGPRF  _IO('I',14) -#define IIOCGETPRF  _IO('I',15) -#define IIOCSETPRF  _IO('I',16) -#define IIOCGETMAP  _IO('I',17) -#define IIOCSETMAP  _IO('I',18) -#define IIOCNETASL  _IO('I',19) -#define IIOCNETDIL  _IO('I',20) -#define IIOCGETCPS  _IO('I',21) -#define IIOCGETDVR  _IO('I',22) -#define IIOCNETLCR  _IO('I',23) /* dwabc ioctl for LCR from isdnlog */ -#define IIOCNETDWRSET  _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */ - -#define IIOCNETALN  _IO('I',32) -#define IIOCNETDLN  _IO('I',33) - -#define IIOCNETGPN  _IO('I',34) - -#define IIOCDBGVAR  _IO('I',127) - -#define IIOCDRVCTL  _IO('I',128) - -/* cisco hdlck device private ioctls */ -#define SIOCGKEEPPERIOD	(SIOCDEVPRIVATE + 0) -#define SIOCSKEEPPERIOD	(SIOCDEVPRIVATE + 1) -#define SIOCGDEBSERINT	(SIOCDEVPRIVATE + 2) -#define SIOCSDEBSERINT	(SIOCDEVPRIVATE + 3) - -/* Packet encapsulations for net-interfaces */ -#define ISDN_NET_ENCAP_ETHER      0 -#define ISDN_NET_ENCAP_RAWIP      1 -#define ISDN_NET_ENCAP_IPTYP      2 -#define ISDN_NET_ENCAP_CISCOHDLC  3 /* Without SLARP and keepalive */ -#define ISDN_NET_ENCAP_SYNCPPP    4 -#define ISDN_NET_ENCAP_UIHDLC     5 -#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive    */ -#define ISDN_NET_ENCAP_X25IFACE   7 /* Documentation/networking/x25-iface.txt */ -#define ISDN_NET_ENCAP_MAX_ENCAP  ISDN_NET_ENCAP_X25IFACE - -/* Facility which currently uses an ISDN-channel */ -#define ISDN_USAGE_NONE       0 -#define ISDN_USAGE_RAW        1 -#define ISDN_USAGE_MODEM      2 -#define ISDN_USAGE_NET        3 -#define ISDN_USAGE_VOICE      4 -#define ISDN_USAGE_FAX        5 -#define ISDN_USAGE_MASK       7 /* Mask to get plain usage */ -#define ISDN_USAGE_DISABLED  32 /* This bit is set, if channel is disabled */ -#define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */ -#define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing  */ - -#define ISDN_MODEM_NUMREG    24        /* Number of Modem-Registers        */ -#define ISDN_LMSNLEN         255 /* Length of tty's Listen-MSN string */ -#define ISDN_CMSGLEN	     50	 /* Length of CONNECT-Message to add for Modem */ - -#define ISDN_MSNLEN          32 -#define NET_DV 0x06  /* Data version for isdn_net_ioctl_cfg   */ -#define TTY_DV 0x06  /* Data version for iprofd etc.          */ - -#define INF_DV 0x01  /* Data version for /dev/isdninfo        */ - -typedef struct { -  char drvid[25]; -  unsigned long arg; -} isdn_ioctl_struct; - -typedef struct { -  char name[10]; -  char phone[ISDN_MSNLEN]; -  int  outgoing; -} isdn_net_ioctl_phone; - -typedef struct { -  char name[10];     /* Name of interface                     */ -  char master[10];   /* Name of Master for Bundling           */ -  char slave[10];    /* Name of Slave for Bundling            */ -  char eaz[256];     /* EAZ/MSN                               */ -  char drvid[25];    /* DriverId for Bindings                 */ -  int  onhtime;      /* Hangup-Timeout                        */ -  int  charge;       /* Charge-Units                          */ -  int  l2_proto;     /* Layer-2 protocol                      */ -  int  l3_proto;     /* Layer-3 protocol                      */ -  int  p_encap;      /* Encapsulation                         */ -  int  exclusive;    /* Channel, if bound exclusive           */ -  int  dialmax;      /* Dial Retry-Counter                    */ -  int  slavedelay;   /* Delay until slave starts up           */ -  int  cbdelay;      /* Delay before Callback                 */ -  int  chargehup;    /* Flag: Charge-Hangup                   */ -  int  ihup;         /* Flag: Hangup-Timeout on incoming line */ -  int  secure;       /* Flag: Secure                          */ -  int  callback;     /* Flag: Callback                        */ -  int  cbhup;        /* Flag: Reject Call before Callback     */ -  int  pppbind;      /* ippp device for bindings              */ -  int  chargeint;    /* Use fixed charge interval length      */ -  int  triggercps;   /* BogoCPS needed for triggering slave   */ -  int  dialtimeout;  /* Dial-Timeout                          */ -  int  dialwait;     /* Time to wait after failed dial        */ -  int  dialmode;     /* Flag: off / on / auto                 */ -} isdn_net_ioctl_cfg; - -#define ISDN_NET_DIALMODE_MASK  0xC0    /* bits for status                */ -#define ISDN_NET_DM_OFF	        0x00    /* this interface is stopped      */ -#define ISDN_NET_DM_MANUAL	0x40    /* this interface is on (manual)  */ -#define ISDN_NET_DM_AUTO	0x80    /* this interface is autodial     */ -#define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK) - -#ifdef __KERNEL__  #include <linux/errno.h>  #include <linux/fs.h> @@ -163,6 +36,7 @@ typedef struct {  #include <linux/skbuff.h>  #include <linux/tcp.h>  #include <linux/mutex.h> +#include <uapi/linux/isdn.h>  #define ISDN_TTY_MAJOR    43  #define ISDN_TTYAUX_MAJOR 44 @@ -595,6 +469,4 @@ typedef struct isdn_devt {  extern isdn_dev *dev; -#endif /* __KERNEL__ */ -  #endif /* __ISDN_H__ */ diff --git a/include/linux/isdn_divertif.h b/include/linux/isdn_divertif.h index a5a50f52380..19ab361f9f0 100644 --- a/include/linux/isdn_divertif.h +++ b/include/linux/isdn_divertif.h @@ -9,26 +9,12 @@   * of the GNU General Public License, incorporated herein by reference.   *   */ -  #ifndef _LINUX_ISDN_DIVERTIF_H  #define _LINUX_ISDN_DIVERTIF_H -/***********************************************************/ -/* magic value is also used to control version information */ -/***********************************************************/ -#define DIVERT_IF_MAGIC 0x25873401 -#define DIVERT_CMD_REG  0x00  /* register command */ -#define DIVERT_CMD_REL  0x01  /* release command */ -#define DIVERT_NO_ERR   0x00  /* return value no error */ -#define DIVERT_CMD_ERR  0x01  /* invalid cmd */ -#define DIVERT_VER_ERR  0x02  /* magic/version invalid */ -#define DIVERT_REG_ERR  0x03  /* module already registered */ -#define DIVERT_REL_ERR  0x04  /* module not registered */ -#define DIVERT_REG_NAME isdn_register_divert - -#ifdef __KERNEL__  #include <linux/isdnif.h>  #include <linux/types.h> +#include <uapi/linux/isdn_divertif.h>  /***************************************************************/  /* structure exchanging data between isdn hl and divert module */ @@ -46,6 +32,4 @@ typedef struct  /* function register */  /*********************/  extern int DIVERT_REG_NAME(isdn_divert_if *); -#endif -  #endif /* _LINUX_ISDN_DIVERTIF_H */ diff --git a/include/linux/isdn_ppp.h b/include/linux/isdn_ppp.h index 8687a7dc063..d5f62bc5f4b 100644 --- a/include/linux/isdn_ppp.h +++ b/include/linux/isdn_ppp.h @@ -9,68 +9,16 @@   * of the GNU General Public License, incorporated herein by reference.   *   */ -  #ifndef _LINUX_ISDN_PPP_H  #define _LINUX_ISDN_PPP_H -#define CALLTYPE_INCOMING 0x1 -#define CALLTYPE_OUTGOING 0x2 -#define CALLTYPE_CALLBACK 0x4 - -#define IPPP_VERSION    "2.2.0" - -struct pppcallinfo -{ -  int calltype; -  unsigned char local_num[64]; -  unsigned char remote_num[64]; -  int charge_units; -}; - -#define PPPIOCGCALLINFO _IOWR('t',128,struct pppcallinfo) -#define PPPIOCBUNDLE   _IOW('t',129,int) -#define PPPIOCGMPFLAGS _IOR('t',130,int) -#define PPPIOCSMPFLAGS _IOW('t',131,int) -#define PPPIOCSMPMTU   _IOW('t',132,int) -#define PPPIOCSMPMRU   _IOW('t',133,int) -#define PPPIOCGCOMPRESSORS _IOR('t',134,unsigned long [8]) -#define PPPIOCSCOMPRESSOR _IOW('t',135,int) -#define PPPIOCGIFNAME      _IOR('t',136, char [IFNAMSIZ] ) - - -#define SC_MP_PROT       0x00000200 -#define SC_REJ_MP_PROT   0x00000400 -#define SC_OUT_SHORT_SEQ 0x00000800 -#define SC_IN_SHORT_SEQ  0x00004000 - -#define SC_DECOMP_ON		0x01 -#define SC_COMP_ON		0x02 -#define SC_DECOMP_DISCARD	0x04 -#define SC_COMP_DISCARD		0x08 -#define SC_LINK_DECOMP_ON	0x10 -#define SC_LINK_COMP_ON		0x20 -#define SC_LINK_DECOMP_DISCARD	0x40 -#define SC_LINK_COMP_DISCARD	0x80 - -#define ISDN_PPP_COMP_MAX_OPTIONS 16 - -#define IPPP_COMP_FLAG_XMIT 0x1 -#define IPPP_COMP_FLAG_LINK 0x2 - -struct isdn_ppp_comp_data { -  int num; -  unsigned char options[ISDN_PPP_COMP_MAX_OPTIONS]; -  int optlen; -  int flags; -}; - -#ifdef __KERNEL__  #ifdef CONFIG_IPPP_FILTER  #include <linux/filter.h>  #endif +#include <uapi/linux/isdn_ppp.h>  #define DECOMP_ERR_NOMEM	(-10) @@ -244,5 +192,4 @@ struct ippp_struct {    unsigned long compflags;  }; -#endif /* __KERNEL__ */  #endif /* _LINUX_ISDN_PPP_H */ diff --git a/include/linux/isdnif.h b/include/linux/isdnif.h index b8c23f88dd5..0fc6ff27622 100644 --- a/include/linux/isdnif.h +++ b/include/linux/isdnif.h @@ -10,51 +10,12 @@   * of the GNU General Public License, incorporated herein by reference.   *   */ -  #ifndef __ISDNIF_H__  #define __ISDNIF_H__ -/* - * Values for general protocol-selection - */ -#define ISDN_PTYPE_UNKNOWN   0   /* Protocol undefined   */ -#define ISDN_PTYPE_1TR6      1   /* german 1TR6-protocol */ -#define ISDN_PTYPE_EURO      2   /* EDSS1-protocol       */ -#define ISDN_PTYPE_LEASED    3   /* for leased lines     */ -#define ISDN_PTYPE_NI1       4   /* US NI-1 protocol     */ -#define ISDN_PTYPE_MAX       7   /* Max. 8 Protocols     */ - -/* - * Values for Layer-2-protocol-selection - */ -#define ISDN_PROTO_L2_X75I   0   /* X75/LAPB with I-Frames            */ -#define ISDN_PROTO_L2_X75UI  1   /* X75/LAPB with UI-Frames           */ -#define ISDN_PROTO_L2_X75BUI 2   /* X75/LAPB with UI-Frames           */ -#define ISDN_PROTO_L2_HDLC   3   /* HDLC                              */ -#define ISDN_PROTO_L2_TRANS  4   /* Transparent (Voice)               */ -#define ISDN_PROTO_L2_X25DTE 5   /* X25/LAPB DTE mode                 */ -#define ISDN_PROTO_L2_X25DCE 6   /* X25/LAPB DCE mode                 */ -#define ISDN_PROTO_L2_V11096 7   /* V.110 bitrate adaption 9600 Baud  */ -#define ISDN_PROTO_L2_V11019 8   /* V.110 bitrate adaption 19200 Baud */ -#define ISDN_PROTO_L2_V11038 9   /* V.110 bitrate adaption 38400 Baud */ -#define ISDN_PROTO_L2_MODEM  10  /* Analog Modem on Board */ -#define ISDN_PROTO_L2_FAX    11  /* Fax Group 2/3         */ -#define ISDN_PROTO_L2_HDLC_56K 12   /* HDLC 56k                          */ -#define ISDN_PROTO_L2_MAX    15  /* Max. 16 Protocols                 */ - -/* - * Values for Layer-3-protocol-selection - */ -#define ISDN_PROTO_L3_TRANS	0	/* Transparent */ -#define ISDN_PROTO_L3_TRANSDSP	1	/* Transparent with DSP */ -#define ISDN_PROTO_L3_FCLASS2	2	/* Fax Group 2/3 CLASS 2 */ -#define ISDN_PROTO_L3_FCLASS1	3	/* Fax Group 2/3 CLASS 1 */ -#define ISDN_PROTO_L3_MAX	7	/* Max. 8 Protocols */ - -#ifdef __KERNEL__ -  #include <linux/skbuff.h> +#include <uapi/linux/isdnif.h>  /***************************************************************************/  /* Extensions made by Werner Cornelius (werner@ikt.de)                     */ @@ -541,6 +502,4 @@ typedef struct {  extern int register_isdn(isdn_if*);  #include <asm/uaccess.h> -#endif /* __KERNEL__ */ -  #endif /* __ISDNIF_H__ */ diff --git a/include/linux/iso_fs.h b/include/linux/iso_fs.h deleted file mode 100644 index 4688ac4284e..00000000000 --- a/include/linux/iso_fs.h +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef _ISOFS_FS_H -#define _ISOFS_FS_H - -#include <linux/types.h> -#include <linux/magic.h> - -/* - * The isofs filesystem constants/structures - */ - -/* This part borrowed from the bsd386 isofs */ -#define ISODCL(from, to) (to - from + 1) - -struct iso_volume_descriptor { -	char type[ISODCL(1,1)]; /* 711 */ -	char id[ISODCL(2,6)]; -	char version[ISODCL(7,7)]; -	char data[ISODCL(8,2048)]; -}; - -/* volume descriptor types */ -#define ISO_VD_PRIMARY 1 -#define ISO_VD_SUPPLEMENTARY 2 -#define ISO_VD_END 255 - -#define ISO_STANDARD_ID "CD001" - -struct iso_primary_descriptor { -	char type			[ISODCL (  1,   1)]; /* 711 */ -	char id				[ISODCL (  2,   6)]; -	char version			[ISODCL (  7,   7)]; /* 711 */ -	char unused1			[ISODCL (  8,   8)]; -	char system_id			[ISODCL (  9,  40)]; /* achars */ -	char volume_id			[ISODCL ( 41,  72)]; /* dchars */ -	char unused2			[ISODCL ( 73,  80)]; -	char volume_space_size		[ISODCL ( 81,  88)]; /* 733 */ -	char unused3			[ISODCL ( 89, 120)]; -	char volume_set_size		[ISODCL (121, 124)]; /* 723 */ -	char volume_sequence_number	[ISODCL (125, 128)]; /* 723 */ -	char logical_block_size		[ISODCL (129, 132)]; /* 723 */ -	char path_table_size		[ISODCL (133, 140)]; /* 733 */ -	char type_l_path_table		[ISODCL (141, 144)]; /* 731 */ -	char opt_type_l_path_table	[ISODCL (145, 148)]; /* 731 */ -	char type_m_path_table		[ISODCL (149, 152)]; /* 732 */ -	char opt_type_m_path_table	[ISODCL (153, 156)]; /* 732 */ -	char root_directory_record	[ISODCL (157, 190)]; /* 9.1 */ -	char volume_set_id		[ISODCL (191, 318)]; /* dchars */ -	char publisher_id		[ISODCL (319, 446)]; /* achars */ -	char preparer_id		[ISODCL (447, 574)]; /* achars */ -	char application_id		[ISODCL (575, 702)]; /* achars */ -	char copyright_file_id		[ISODCL (703, 739)]; /* 7.5 dchars */ -	char abstract_file_id		[ISODCL (740, 776)]; /* 7.5 dchars */ -	char bibliographic_file_id	[ISODCL (777, 813)]; /* 7.5 dchars */ -	char creation_date		[ISODCL (814, 830)]; /* 8.4.26.1 */ -	char modification_date		[ISODCL (831, 847)]; /* 8.4.26.1 */ -	char expiration_date		[ISODCL (848, 864)]; /* 8.4.26.1 */ -	char effective_date		[ISODCL (865, 881)]; /* 8.4.26.1 */ -	char file_structure_version	[ISODCL (882, 882)]; /* 711 */ -	char unused4			[ISODCL (883, 883)]; -	char application_data		[ISODCL (884, 1395)]; -	char unused5			[ISODCL (1396, 2048)]; -}; - -/* Almost the same as the primary descriptor but two fields are specified */ -struct iso_supplementary_descriptor { -	char type			[ISODCL (  1,   1)]; /* 711 */ -	char id				[ISODCL (  2,   6)]; -	char version			[ISODCL (  7,   7)]; /* 711 */ -	char flags			[ISODCL (  8,   8)]; /* 853 */ -	char system_id			[ISODCL (  9,  40)]; /* achars */ -	char volume_id			[ISODCL ( 41,  72)]; /* dchars */ -	char unused2			[ISODCL ( 73,  80)]; -	char volume_space_size		[ISODCL ( 81,  88)]; /* 733 */ -	char escape			[ISODCL ( 89, 120)]; /* 856 */ -	char volume_set_size		[ISODCL (121, 124)]; /* 723 */ -	char volume_sequence_number	[ISODCL (125, 128)]; /* 723 */ -	char logical_block_size		[ISODCL (129, 132)]; /* 723 */ -	char path_table_size		[ISODCL (133, 140)]; /* 733 */ -	char type_l_path_table		[ISODCL (141, 144)]; /* 731 */ -	char opt_type_l_path_table	[ISODCL (145, 148)]; /* 731 */ -	char type_m_path_table		[ISODCL (149, 152)]; /* 732 */ -	char opt_type_m_path_table	[ISODCL (153, 156)]; /* 732 */ -	char root_directory_record	[ISODCL (157, 190)]; /* 9.1 */ -	char volume_set_id		[ISODCL (191, 318)]; /* dchars */ -	char publisher_id		[ISODCL (319, 446)]; /* achars */ -	char preparer_id		[ISODCL (447, 574)]; /* achars */ -	char application_id		[ISODCL (575, 702)]; /* achars */ -	char copyright_file_id		[ISODCL (703, 739)]; /* 7.5 dchars */ -	char abstract_file_id		[ISODCL (740, 776)]; /* 7.5 dchars */ -	char bibliographic_file_id	[ISODCL (777, 813)]; /* 7.5 dchars */ -	char creation_date		[ISODCL (814, 830)]; /* 8.4.26.1 */ -	char modification_date		[ISODCL (831, 847)]; /* 8.4.26.1 */ -	char expiration_date		[ISODCL (848, 864)]; /* 8.4.26.1 */ -	char effective_date		[ISODCL (865, 881)]; /* 8.4.26.1 */ -	char file_structure_version	[ISODCL (882, 882)]; /* 711 */ -	char unused4			[ISODCL (883, 883)]; -	char application_data		[ISODCL (884, 1395)]; -	char unused5			[ISODCL (1396, 2048)]; -}; - - -#define HS_STANDARD_ID "CDROM" - -struct  hs_volume_descriptor { -	char foo			[ISODCL (  1,   8)]; /* 733 */ -	char type			[ISODCL (  9,   9)]; /* 711 */ -	char id				[ISODCL ( 10,  14)]; -	char version			[ISODCL ( 15,  15)]; /* 711 */ -	char data[ISODCL(16,2048)]; -}; - - -struct hs_primary_descriptor { -	char foo			[ISODCL (  1,   8)]; /* 733 */ -	char type			[ISODCL (  9,   9)]; /* 711 */ -	char id				[ISODCL ( 10,  14)]; -	char version			[ISODCL ( 15,  15)]; /* 711 */ -	char unused1			[ISODCL ( 16,  16)]; /* 711 */ -	char system_id			[ISODCL ( 17,  48)]; /* achars */ -	char volume_id			[ISODCL ( 49,  80)]; /* dchars */ -	char unused2			[ISODCL ( 81,  88)]; /* 733 */ -	char volume_space_size		[ISODCL ( 89,  96)]; /* 733 */ -	char unused3			[ISODCL ( 97, 128)]; /* 733 */ -	char volume_set_size		[ISODCL (129, 132)]; /* 723 */ -	char volume_sequence_number	[ISODCL (133, 136)]; /* 723 */ -	char logical_block_size		[ISODCL (137, 140)]; /* 723 */ -	char path_table_size		[ISODCL (141, 148)]; /* 733 */ -	char type_l_path_table		[ISODCL (149, 152)]; /* 731 */ -	char unused4			[ISODCL (153, 180)]; /* 733 */ -	char root_directory_record	[ISODCL (181, 214)]; /* 9.1 */ -}; - -/* We use this to help us look up the parent inode numbers. */ - -struct iso_path_table{ -	unsigned char  name_len[2];	/* 721 */ -	char extent[4];		/* 731 */ -	char  parent[2];	/* 721 */ -	char name[0]; -} __attribute__((packed)); - -/* high sierra is identical to iso, except that the date is only 6 bytes, and -   there is an extra reserved byte after the flags */ - -struct iso_directory_record { -	char length			[ISODCL (1, 1)]; /* 711 */ -	char ext_attr_length		[ISODCL (2, 2)]; /* 711 */ -	char extent			[ISODCL (3, 10)]; /* 733 */ -	char size			[ISODCL (11, 18)]; /* 733 */ -	char date			[ISODCL (19, 25)]; /* 7 by 711 */ -	char flags			[ISODCL (26, 26)]; -	char file_unit_size		[ISODCL (27, 27)]; /* 711 */ -	char interleave			[ISODCL (28, 28)]; /* 711 */ -	char volume_sequence_number	[ISODCL (29, 32)]; /* 723 */ -	unsigned char name_len		[ISODCL (33, 33)]; /* 711 */ -	char name			[0]; -} __attribute__((packed)); - -#define ISOFS_BLOCK_BITS 11 -#define ISOFS_BLOCK_SIZE 2048 - -#define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize) -#define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits) - -#endif /* _ISOFS_FS_H */ diff --git a/include/linux/ivtv.h b/include/linux/ivtv.h deleted file mode 100644 index 42bf725751a..00000000000 --- a/include/linux/ivtv.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -    Public ivtv API header -    Copyright (C) 2003-2004  Kevin Thayer <nufan_wfk at yahoo.com> -    Copyright (C) 2004-2007  Hans Verkuil <hverkuil@xs4all.nl> - -    This program is free software; you can redistribute it and/or modify -    it under the terms of the GNU General Public License as published by -    the Free Software Foundation; either version 2 of the License, or -    (at your option) any later version. - -    This program is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program; if not, write to the Free Software -    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ - -#ifndef __LINUX_IVTV_H__ -#define __LINUX_IVTV_H__ - -#include <linux/compiler.h> -#include <linux/types.h> -#include <linux/videodev2.h> - -/* ivtv knows several distinct output modes: MPEG streaming, -   YUV streaming, YUV updates through user DMA and the passthrough -   mode. - -   In order to clearly tell the driver that we are in user DMA -   YUV mode you need to call IVTV_IOC_DMA_FRAME with y_source == NULL -   first (althrough if you don't then the first time -   DMA_FRAME is called the mode switch is done automatically). - -   When you close the file handle the user DMA mode is exited again. - -   While in one mode, you cannot use another mode (EBUSY is returned). - -   All this means that if you want to change the YUV interlacing -   for the user DMA YUV mode you first need to do call IVTV_IOC_DMA_FRAME -   with y_source == NULL before you can set the correct format using -   VIDIOC_S_FMT. - -   Eventually all this should be replaced with a proper V4L2 API, -   but for now we have to do it this way. */ - -struct ivtv_dma_frame { -	enum v4l2_buf_type type; /* V4L2_BUF_TYPE_VIDEO_OUTPUT */ -	__u32 pixelformat;	 /* 0 == same as destination */ -	void __user *y_source;   /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT, -				    then just switch to user DMA YUV output mode */ -	void __user *uv_source;  /* Unused for RGB pixelformats */ -	struct v4l2_rect src; -	struct v4l2_rect dst; -	__u32 src_width; -	__u32 src_height; -}; - -#define IVTV_IOC_DMA_FRAME		_IOW ('V', BASE_VIDIOC_PRIVATE+0, struct ivtv_dma_frame) - -/* Select the passthrough mode (if the argument is non-zero). In the passthrough -   mode the output of the encoder is passed immediately into the decoder. */ -#define IVTV_IOC_PASSTHROUGH_MODE	_IOW ('V', BASE_VIDIOC_PRIVATE+1, int) - -/* Deprecated defines: applications should use the defines from videodev2.h */ -#define IVTV_SLICED_TYPE_TELETEXT_B     V4L2_MPEG_VBI_IVTV_TELETEXT_B -#define IVTV_SLICED_TYPE_CAPTION_525    V4L2_MPEG_VBI_IVTV_CAPTION_525 -#define IVTV_SLICED_TYPE_WSS_625        V4L2_MPEG_VBI_IVTV_WSS_625 -#define IVTV_SLICED_TYPE_VPS            V4L2_MPEG_VBI_IVTV_VPS - -#endif /* _LINUX_IVTV_H */ diff --git a/include/linux/ivtvfb.h b/include/linux/ivtvfb.h deleted file mode 100644 index e8b92f67f10..00000000000 --- a/include/linux/ivtvfb.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -    On Screen Display cx23415 Framebuffer driver - -    Copyright (C) 2006, 2007  Ian Armstrong <ian@iarmst.demon.co.uk> - -    This program is free software; you can redistribute it and/or modify -    it under the terms of the GNU General Public License as published by -    the Free Software Foundation; either version 2 of the License, or -    (at your option) any later version. - -    This program is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program; if not, write to the Free Software -    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ - -#ifndef __LINUX_IVTVFB_H__ -#define __LINUX_IVTVFB_H__ - -#include <linux/compiler.h> -#include <linux/types.h> - -/* Framebuffer external API */ - -struct ivtvfb_dma_frame { -	void __user *source; -	unsigned long dest_offset; -	int count; -}; - -#define IVTVFB_IOC_DMA_FRAME 	_IOW('V', BASE_VIDIOC_PRIVATE+0, struct ivtvfb_dma_frame) - -#endif diff --git a/include/linux/ixjuser.h b/include/linux/ixjuser.h deleted file mode 100644 index 94ab5e942e5..00000000000 --- a/include/linux/ixjuser.h +++ /dev/null @@ -1,720 +0,0 @@ -#ifndef __LINUX_IXJUSER_H -#define __LINUX_IXJUSER_H - -/****************************************************************************** - * - *    ixjuser.h - * - * Device Driver for Quicknet Technologies, Inc.'s Telephony cards - * including the Internet PhoneJACK, Internet PhoneJACK Lite, - * Internet PhoneJACK PCI, Internet LineJACK, Internet PhoneCARD and - * SmartCABLE - * - *    (c) Copyright 1999-2001  Quicknet Technologies, Inc. - * - *    This program is free software; you can redistribute it and/or - *    modify it under the terms of the GNU General Public License - *    as published by the Free Software Foundation; either version - *    2 of the License, or (at your option) any later version. - * - * Author:          Ed Okerson, <eokerson@quicknet.net> - *     - * Contributors:    Greg Herlein, <gherlein@quicknet.net> - *                  David W. Erhart, <derhart@quicknet.net> - *                  John Sellers, <jsellers@quicknet.net> - *                  Mike Preston, <mpreston@quicknet.net> - * - * More information about the hardware related to this driver can be found - * at our website:    http://www.quicknet.net - * - * Fixes: - * - * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT - * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET - * TECHNOLOGIES, INC.HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION  - * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - *****************************************************************************/ - -#include <linux/telephony.h> - - -/****************************************************************************** -* -* IOCTL's used for the Quicknet Telephony Cards -* -* If you use the IXJCTL_TESTRAM command, the card must be power cycled to -* reset the SRAM values before further use. -* -******************************************************************************/ - -#define IXJCTL_DSP_RESET 		_IO  ('q', 0xC0) - -#define IXJCTL_RING                     PHONE_RING -#define IXJCTL_HOOKSTATE                PHONE_HOOKSTATE -#define IXJCTL_MAXRINGS			PHONE_MAXRINGS -#define IXJCTL_RING_CADENCE		PHONE_RING_CADENCE -#define IXJCTL_RING_START		PHONE_RING_START -#define IXJCTL_RING_STOP		PHONE_RING_STOP - -#define IXJCTL_CARDTYPE			_IOR ('q', 0xC1, int) -#define IXJCTL_SERIAL			_IOR ('q', 0xC2, int) -#define IXJCTL_DSP_TYPE                 _IOR ('q', 0xC3, int) -#define IXJCTL_DSP_VERSION              _IOR ('q', 0xC4, int) -#define IXJCTL_VERSION              	_IOR ('q', 0xDA, char *) -#define IXJCTL_DSP_IDLE			_IO  ('q', 0xC5) -#define IXJCTL_TESTRAM			_IO  ('q', 0xC6) - -/****************************************************************************** -* -* This group of IOCTLs deal with the record settings of the DSP -* -* The IXJCTL_REC_DEPTH command sets the internal buffer depth of the DSP. -* Setting a lower depth reduces latency, but increases the demand of the -* application to service the driver without frame loss.  The DSP has 480 -* bytes of physical buffer memory for the record channel so the true -* maximum limit is determined by how many frames will fit in the buffer. -* -* 1 uncompressed (480 byte) 16-bit linear frame. -* 2 uncompressed (240 byte) 8-bit A-law/mu-law frames. -* 15 TrueSpeech 8.5 frames. -* 20 TrueSpeech 6.3,5.3,4.8 or 4.1 frames. -* -* The default in the driver is currently set to 2 frames. -* -* The IXJCTL_REC_VOLUME and IXJCTL_PLAY_VOLUME commands both use a Q8 -* number as a parameter, 0x100 scales the signal by 1.0, 0x200 scales the -* signal by 2.0, 0x80 scales the signal by 0.5.  No protection is given -* against over-scaling, if the multiplication factor times the input -* signal exceeds 16 bits, overflow distortion will occur.  The default -* setting is 0x100 (1.0). -* -* The IXJCTL_REC_LEVEL returns the average signal level (not r.m.s.) on -* the most recently recorded frame as a 16 bit value. -******************************************************************************/ - -#define IXJCTL_REC_CODEC                PHONE_REC_CODEC -#define IXJCTL_REC_START                PHONE_REC_START -#define IXJCTL_REC_STOP                 PHONE_REC_STOP -#define IXJCTL_REC_DEPTH		PHONE_REC_DEPTH -#define IXJCTL_FRAME			PHONE_FRAME -#define IXJCTL_REC_VOLUME		PHONE_REC_VOLUME -#define IXJCTL_REC_LEVEL		PHONE_REC_LEVEL - -typedef enum { -	f300_640 = 4, f300_500, f1100, f350, f400, f480, f440, f620, f20_50, -	f133_200, f300, f300_420, f330, f300_425, f330_440, f340, f350_400, -	f350_440, f350_450, f360, f380_420, f392, f400_425, f400_440, f400_450, -	f420, f425, f425_450, f425_475, f435, f440_450, f440_480, f445, f450, -	f452, f475, f480_620, f494, f500, f520, f523, f525, f540_660, f587, -	f590, f600, f660, f700, f740, f750, f750_1450, f770, f800, f816, f850, -	f857_1645, f900, f900_1300, f935_1215, f941_1477, f942, f950, f950_1400, -	f975, f1000, f1020, f1050, f1100_1750, f1140, f1200, f1209, f1330, f1336, -	lf1366, f1380, f1400, f1477, f1600, f1633_1638, f1800, f1860 -} IXJ_FILTER_FREQ; - -typedef struct { -	unsigned int filter; -	IXJ_FILTER_FREQ freq; -	char enable; -} IXJ_FILTER; - -typedef struct { -	char enable; -	char en_filter; -	unsigned int filter; -	unsigned int on1; -	unsigned int off1; -	unsigned int on2; -	unsigned int off2; -	unsigned int on3; -	unsigned int off3; -} IXJ_FILTER_CADENCE; - -#define IXJCTL_SET_FILTER		_IOW ('q', 0xC7, IXJ_FILTER *) -#define IXJCTL_SET_FILTER_RAW		_IOW ('q', 0xDD, IXJ_FILTER_RAW *) -#define IXJCTL_GET_FILTER_HIST		_IOW ('q', 0xC8, int) -#define IXJCTL_FILTER_CADENCE		_IOW ('q', 0xD6, IXJ_FILTER_CADENCE *) -#define IXJCTL_PLAY_CID			_IO  ('q', 0xD7) -/****************************************************************************** -* -* This IOCTL allows you to reassign values in the tone index table.  The -* tone table has 32 entries (0 - 31), but the driver only allows entries -* 13 - 27 to be modified, entry 0 is reserved for silence and 1 - 12 are -* the standard DTMF digits and 28 - 31 are the DTMF tones for A, B, C & D. -* The positions used internally for Call Progress Tones are as follows: -*    Dial Tone   - 25 -*    Ring Back   - 26 -*    Busy Signal - 27 -* -* The freq values are calculated as: -* freq = cos(2 * PI * frequency / 8000) -* -* The most commonly needed values are already calculated and listed in the -* enum IXJ_TONE_FREQ.  Each tone index can have two frequencies with -* different gains, if you are only using a single frequency set the unused -* one to 0. -* -* The gain values range from 0 to 15 indicating +6dB to -24dB in 2dB -* increments. -* -******************************************************************************/ - -typedef enum { -	hz20 = 0x7ffa, -	hz50 = 0x7fe5, -	hz133 = 0x7f4c, -	hz200 = 0x7e6b, -	hz261 = 0x7d50,		/* .63 C1  */ -	hz277 = 0x7cfa,		/* .18 CS1 */ -	hz293 = 0x7c9f,		/* .66 D1  */ -	hz300 = 0x7c75, -	hz311 = 0x7c32,		/* .13 DS1 */ -	hz329 = 0x7bbf,		/* .63 E1  */ -	hz330 = 0x7bb8, -	hz340 = 0x7b75, -	hz349 = 0x7b37,		/* .23 F1  */ -	hz350 = 0x7b30, -	hz360 = 0x7ae9, -	hz369 = 0x7aa8,		/* .99 FS1 */ -	hz380 = 0x7a56, -	hz392 = 0x79fa,		/* .00 G1  */ -	hz400 = 0x79bb, -	hz415 = 0x7941,		/* .30 GS1 */ -	hz420 = 0x7918, -	hz425 = 0x78ee, -	hz435 = 0x7899, -	hz440 = 0x786d,		/* .00 A1  */ -	hz445 = 0x7842, -	hz450 = 0x7815, -	hz452 = 0x7803, -	hz466 = 0x7784,		/* .16 AS1 */ -	hz475 = 0x7731, -	hz480 = 0x7701, -	hz493 = 0x7685,		/* .88 B1  */ -	hz494 = 0x767b, -	hz500 = 0x7640, -	hz520 = 0x7578, -	hz523 = 0x7559,		/* .25 C2  */ -	hz525 = 0x7544, -	hz540 = 0x74a7, -	hz554 = 0x7411,		/* .37 CS2 */ -	hz587 = 0x72a1,		/* .33 D2  */ -	hz590 = 0x727f, -	hz600 = 0x720b, -	hz620 = 0x711e, -	hz622 = 0x7106,		/* .25 DS2 */ -	hz659 = 0x6f3b,		/* .26 E2  */ -	hz660 = 0x6f2e, -	hz698 = 0x6d3d,		/* .46 F2  */ -	hz700 = 0x6d22, -	hz739 = 0x6b09,		/* .99 FS2 */ -	hz740 = 0x6afa, -	hz750 = 0x6a6c, -	hz770 = 0x694b, -	hz783 = 0x688b,		/* .99 G2  */ -	hz800 = 0x678d, -	hz816 = 0x6698, -	hz830 = 0x65bf,		/* .61 GS2 */ -	hz850 = 0x6484, -	hz857 = 0x6414, -	hz880 = 0x629f,		/* .00 A2  */ -	hz900 = 0x6154, -	hz932 = 0x5f35,		/* .33 AS2 */ -	hz935 = 0x5f01, -	hz941 = 0x5e9a, -	hz942 = 0x5e88, -	hz950 = 0x5dfd, -	hz975 = 0x5c44, -	hz1000 = 0x5a81, -	hz1020 = 0x5912, -	hz1050 = 0x56e2, -	hz1100 = 0x5320, -	hz1140 = 0x5007, -	hz1200 = 0x4b3b, -	hz1209 = 0x4a80, -	hz1215 = 0x4a02, -	hz1250 = 0x471c, -	hz1300 = 0x42e0, -	hz1330 = 0x4049, -	hz1336 = 0x3fc4, -	hz1366 = 0x3d22, -	hz1380 = 0x3be4, -	hz1400 = 0x3a1b, -	hz1450 = 0x3596, -	hz1477 = 0x331c, -	hz1500 = 0x30fb, -	hz1600 = 0x278d, -	hz1633 = 0x2462, -	hz1638 = 0x23e7, -	hz1645 = 0x233a, -	hz1750 = 0x18f8, -	hz1800 = 0x1405, -	hz1860 = 0xe0b, -	hz2100 = 0xf5f6, -	hz2130 = 0xf2f5, -	hz2450 = 0xd3b3, -	hz2750 = 0xb8e4 -} IXJ_FREQ; - -typedef enum { -	C1 = hz261, -	CS1 = hz277, -	D1 = hz293, -	DS1 = hz311, -	E1 = hz329, -	F1 = hz349, -	FS1 = hz369, -	G1 = hz392, -	GS1 = hz415, -	A1 = hz440, -	AS1 = hz466, -	B1 = hz493, -	C2 = hz523, -	CS2 = hz554, -	D2 = hz587, -	DS2 = hz622, -	E2 = hz659, -	F2 = hz698, -	FS2 = hz739, -	G2 = hz783, -	GS2 = hz830, -	A2 = hz880, -	AS2 = hz932, -} IXJ_NOTE; - -typedef struct { -	int tone_index; -	int freq0; -	int gain0; -	int freq1; -	int gain1; -} IXJ_TONE; - -#define IXJCTL_INIT_TONE		_IOW ('q', 0xC9, IXJ_TONE *) - -/****************************************************************************** -* -* The IXJCTL_TONE_CADENCE ioctl defines tone sequences used for various -* Call Progress Tones (CPT).  This is accomplished by setting up an array of -* IXJ_CADENCE_ELEMENT structures that sequentially define the states of -* the tone sequence.  The tone_on_time and tone_off time are in -* 250 microsecond intervals.  A pointer to this array is passed to the -* driver as the ce element of an IXJ_CADENCE structure.  The elements_used -* must be set to the number of IXJ_CADENCE_ELEMENTS in the array.  The -* termination variable defines what to do at the end of a cadence, the -* options are to play the cadence once and stop, to repeat the last -* element of the cadence indefinitely, or to repeat the entire cadence -* indefinitely.  The ce variable is a pointer to the array of IXJ_TONE -* structures.  If the freq0 variable is non-zero, the tone table contents -* for the tone_index are updated to the frequencies and gains defined.  It -* should be noted that DTMF tones cannot be reassigned, so if DTMF tone -* table indexes are used in a cadence the frequency and gain variables will -* be ignored. -* -* If the array elements contain frequency parameters the driver will -* initialize the needed tone table elements and begin playing the tone, -* there is no preset limit on the number of elements in the cadence.  If -* there is more than one frequency used in the cadence, sequential elements -* of different frequencies MUST use different tone table indexes.  Only one -* cadence can be played at a time.  It is possible to build complex -* cadences with multiple frequencies using 2 tone table indexes by -* alternating between them. -* -******************************************************************************/ - -typedef struct { -	int index; -	int tone_on_time; -	int tone_off_time; -	int freq0; -	int gain0; -	int freq1; -	int gain1; -} IXJ_CADENCE_ELEMENT; - -typedef enum { -	PLAY_ONCE, -	REPEAT_LAST_ELEMENT, -	REPEAT_ALL -} IXJ_CADENCE_TERM; - -typedef struct { -	int elements_used; -	IXJ_CADENCE_TERM termination; -	IXJ_CADENCE_ELEMENT __user *ce; -} IXJ_CADENCE; - -#define IXJCTL_TONE_CADENCE		_IOW ('q', 0xCA, IXJ_CADENCE *) -/****************************************************************************** -* -* This group of IOCTLs deal with the playback settings of the DSP -* -******************************************************************************/ - -#define IXJCTL_PLAY_CODEC               PHONE_PLAY_CODEC -#define IXJCTL_PLAY_START               PHONE_PLAY_START -#define IXJCTL_PLAY_STOP                PHONE_PLAY_STOP -#define IXJCTL_PLAY_DEPTH		PHONE_PLAY_DEPTH -#define IXJCTL_PLAY_VOLUME		PHONE_PLAY_VOLUME -#define IXJCTL_PLAY_LEVEL		PHONE_PLAY_LEVEL - -/****************************************************************************** -* -* This group of IOCTLs deal with the Acoustic Echo Cancellation settings -* of the DSP -* -* Issuing the IXJCTL_AEC_START command with a value of AEC_OFF has the -* same effect as IXJCTL_AEC_STOP.  This is to simplify slider bar -* controls.  IXJCTL_AEC_GET_LEVEL returns the current setting of the AEC. -******************************************************************************/ -#define IXJCTL_AEC_START		_IOW ('q', 0xCB, int) -#define IXJCTL_AEC_STOP			_IO  ('q', 0xCC) -#define IXJCTL_AEC_GET_LEVEL		_IO  ('q', 0xCD) - -#define AEC_OFF   0 -#define AEC_LOW   1 -#define AEC_MED   2 -#define AEC_HIGH  3 -#define AEC_AUTO  4 -#define AEC_AGC   5 -/****************************************************************************** -* -* Call Progress Tones, DTMF, etc. -* IXJCTL_DTMF_OOB determines if DTMF signaling is sent as Out-Of-Band -* only.  If you pass a 1, DTMF is suppressed from the audio stream. -* Tone on and off times are in 250 microsecond intervals so -* ioctl(ixj1, IXJCTL_SET_TONE_ON_TIME, 360); -* will set the tone on time of board ixj1 to 360 * 250us = 90ms -* the default values of tone on and off times is 840 or 210ms -******************************************************************************/ - -#define IXJCTL_DTMF_READY		PHONE_DTMF_READY -#define IXJCTL_GET_DTMF                 PHONE_GET_DTMF -#define IXJCTL_GET_DTMF_ASCII           PHONE_GET_DTMF_ASCII -#define IXJCTL_DTMF_OOB			PHONE_DTMF_OOB -#define IXJCTL_EXCEPTION		PHONE_EXCEPTION -#define IXJCTL_PLAY_TONE		PHONE_PLAY_TONE -#define IXJCTL_SET_TONE_ON_TIME		PHONE_SET_TONE_ON_TIME -#define IXJCTL_SET_TONE_OFF_TIME	PHONE_SET_TONE_OFF_TIME -#define IXJCTL_GET_TONE_ON_TIME		PHONE_GET_TONE_ON_TIME -#define IXJCTL_GET_TONE_OFF_TIME	PHONE_GET_TONE_OFF_TIME -#define IXJCTL_GET_TONE_STATE		PHONE_GET_TONE_STATE -#define IXJCTL_BUSY			PHONE_BUSY -#define IXJCTL_RINGBACK			PHONE_RINGBACK -#define IXJCTL_DIALTONE			PHONE_DIALTONE -#define IXJCTL_CPT_STOP			PHONE_CPT_STOP - -/****************************************************************************** -* LineJACK specific IOCTLs -* -* The lsb 4 bits of the LED argument represent the state of each of the 4 -* LED's on the LineJACK -******************************************************************************/ - -#define IXJCTL_SET_LED			_IOW ('q', 0xCE, int) -#define IXJCTL_MIXER			_IOW ('q', 0xCF, int) - -/****************************************************************************** -*  -* The master volume controls use attenuation with 32 levels from 0 to -62dB -* with steps of 2dB each, the defines should be OR'ed together then sent -* as the parameter to the mixer command to change the mixer settings. -*  -******************************************************************************/ -#define MIXER_MASTER_L		0x0000 -#define MIXER_MASTER_R		0x0100 -#define ATT00DB			0x00 -#define ATT02DB			0x01 -#define ATT04DB			0x02 -#define ATT06DB			0x03 -#define ATT08DB			0x04 -#define ATT10DB			0x05 -#define ATT12DB			0x06 -#define ATT14DB			0x07 -#define ATT16DB			0x08 -#define ATT18DB			0x09 -#define ATT20DB			0x0A -#define ATT22DB			0x0B -#define ATT24DB			0x0C -#define ATT26DB			0x0D -#define ATT28DB			0x0E -#define ATT30DB			0x0F -#define ATT32DB			0x10 -#define ATT34DB			0x11 -#define ATT36DB			0x12 -#define ATT38DB			0x13 -#define ATT40DB			0x14 -#define ATT42DB			0x15 -#define ATT44DB			0x16 -#define ATT46DB			0x17 -#define ATT48DB			0x18 -#define ATT50DB			0x19 -#define ATT52DB			0x1A -#define ATT54DB			0x1B -#define ATT56DB			0x1C -#define ATT58DB			0x1D -#define ATT60DB			0x1E -#define ATT62DB			0x1F -#define MASTER_MUTE		0x80 - -/****************************************************************************** -*  -* The input volume controls use gain with 32 levels from +12dB to -50dB -* with steps of 2dB each, the defines should be OR'ed together then sent -* as the parameter to the mixer command to change the mixer settings. -*  -******************************************************************************/ -#define MIXER_PORT_CD_L		0x0600 -#define MIXER_PORT_CD_R		0x0700 -#define MIXER_PORT_LINE_IN_L	0x0800 -#define MIXER_PORT_LINE_IN_R	0x0900 -#define MIXER_PORT_POTS_REC	0x0C00 -#define MIXER_PORT_MIC		0x0E00 - -#define GAIN12DB		0x00 -#define GAIN10DB		0x01 -#define GAIN08DB		0x02 -#define GAIN06DB		0x03 -#define GAIN04DB		0x04 -#define GAIN02DB		0x05 -#define GAIN00DB		0x06 -#define GAIN_02DB		0x07 -#define GAIN_04DB		0x08 -#define GAIN_06DB		0x09 -#define GAIN_08DB		0x0A -#define GAIN_10DB		0x0B -#define GAIN_12DB		0x0C -#define GAIN_14DB		0x0D -#define GAIN_16DB		0x0E -#define GAIN_18DB		0x0F -#define GAIN_20DB		0x10 -#define GAIN_22DB		0x11 -#define GAIN_24DB		0x12 -#define GAIN_26DB		0x13 -#define GAIN_28DB		0x14 -#define GAIN_30DB		0x15 -#define GAIN_32DB		0x16 -#define GAIN_34DB		0x17 -#define GAIN_36DB		0x18 -#define GAIN_38DB		0x19 -#define GAIN_40DB		0x1A -#define GAIN_42DB		0x1B -#define GAIN_44DB		0x1C -#define GAIN_46DB		0x1D -#define GAIN_48DB		0x1E -#define GAIN_50DB		0x1F -#define INPUT_MUTE		0x80 - -/****************************************************************************** -*  -* The POTS volume control use attenuation with 8 levels from 0dB to -28dB -* with steps of 4dB each, the defines should be OR'ed together then sent -* as the parameter to the mixer command to change the mixer settings. -*  -******************************************************************************/ -#define MIXER_PORT_POTS_PLAY	0x0F00 - -#define POTS_ATT_00DB		0x00 -#define POTS_ATT_04DB		0x01 -#define POTS_ATT_08DB		0x02 -#define POTS_ATT_12DB		0x03 -#define POTS_ATT_16DB		0x04 -#define POTS_ATT_20DB		0x05 -#define POTS_ATT_24DB		0x06 -#define POTS_ATT_28DB		0x07 -#define POTS_MUTE		0x80 - -/****************************************************************************** -*  -* The DAA controls the interface to the PSTN port.  The driver loads the -* US coefficients by default, so if you live in a different country you -* need to load the set for your countries phone system. -*  -******************************************************************************/ -#define IXJCTL_DAA_COEFF_SET		_IOW ('q', 0xD0, int) - -#define DAA_US 		1	/*PITA 8kHz */ -#define DAA_UK 		2	/*ISAR34 8kHz */ -#define DAA_FRANCE 	3	/* */ -#define DAA_GERMANY	4 -#define DAA_AUSTRALIA	5 -#define DAA_JAPAN	6 - -/****************************************************************************** -*  -* Use IXJCTL_PORT to set or query the port the card is set to.  If the -* argument is set to PORT_QUERY, the return value of the ioctl will -* indicate which port is currently in use, otherwise it will change the -* port. -*  -******************************************************************************/ -#define IXJCTL_PORT			_IOW ('q', 0xD1, int) - -#define PORT_QUERY	0 -#define PORT_POTS	1 -#define PORT_PSTN	2 -#define PORT_SPEAKER	3 -#define PORT_HANDSET	4 - -#define IXJCTL_PSTN_SET_STATE		PHONE_PSTN_SET_STATE -#define IXJCTL_PSTN_GET_STATE		PHONE_PSTN_GET_STATE - -#define PSTN_ON_HOOK	0 -#define PSTN_RINGING	1 -#define PSTN_OFF_HOOK	2 -#define PSTN_PULSE_DIAL	3 - -/****************************************************************************** -*  -* The DAA Analog GAIN sets 2 parameters at one time, the receive gain (AGRR),  -* and the transmit gain (AGX).  OR together the components and pass them -* as the parameter to IXJCTL_DAA_AGAIN.  The default setting is both at 0dB. -*  -******************************************************************************/ -#define IXJCTL_DAA_AGAIN		_IOW ('q', 0xD2, int) - -#define AGRR00DB	0x00	/* Analog gain in receive direction 0dB */ -#define AGRR3_5DB	0x10	/* Analog gain in receive direction 3.5dB */ -#define AGRR06DB	0x30	/* Analog gain in receive direction 6dB */ - -#define AGX00DB		0x00	/* Analog gain in transmit direction 0dB */ -#define AGX_6DB		0x04	/* Analog gain in transmit direction -6dB */ -#define AGX3_5DB	0x08	/* Analog gain in transmit direction 3.5dB */ -#define AGX_2_5B	0x0C	/* Analog gain in transmit direction -2.5dB */ - -#define IXJCTL_PSTN_LINETEST		_IO  ('q', 0xD3) - -#define IXJCTL_CID			_IOR ('q', 0xD4, PHONE_CID *) -#define IXJCTL_VMWI			_IOR ('q', 0xD8, int) -#define IXJCTL_CIDCW			_IOW ('q', 0xD9, PHONE_CID *) -/****************************************************************************** -*  -* The wink duration is tunable with this ioctl.  The default wink duration   -* is 320ms.  You do not need to use this ioctl if you do not require a -* different wink duration. -*  -******************************************************************************/ -#define IXJCTL_WINK_DURATION		PHONE_WINK_DURATION - -/****************************************************************************** -*  -* This ioctl will connect the POTS port to the PSTN port on the LineJACK -* In order for this to work properly the port selection should be set to -* the PSTN port with IXJCTL_PORT prior to calling this ioctl.  This will -* enable conference calls between PSTN callers and network callers. -* Passing a 1 to this ioctl enables the POTS<->PSTN connection while -* passing a 0 turns it back off. -*  -******************************************************************************/ -#define IXJCTL_POTS_PSTN		_IOW ('q', 0xD5, int) - -/****************************************************************************** -* -* IOCTLs added by request. -* -* IXJCTL_HZ sets the value your Linux kernel uses for HZ as defined in -*           /usr/include/asm/param.h, this determines the fundamental -*           frequency of the clock ticks on your Linux system.  The kernel -*           must be rebuilt if you change this value, also all modules you -*           use (except this one) must be recompiled.  The default value -*           is 100, and you only need to use this IOCTL if you use some -*           other value. -* -* -* IXJCTL_RATE sets the number of times per second that the driver polls -*             the DSP.  This value cannot be larger than HZ.  By -*             increasing both of these values, you may be able to reduce -*             latency because the max hang time that can exist between the -*             driver and the DSP will be reduced. -* -******************************************************************************/ - -#define IXJCTL_HZ                       _IOW ('q', 0xE0, int) -#define IXJCTL_RATE                     _IOW ('q', 0xE1, int) -#define IXJCTL_FRAMES_READ		_IOR ('q', 0xE2, unsigned long) -#define IXJCTL_FRAMES_WRITTEN		_IOR ('q', 0xE3, unsigned long) -#define IXJCTL_READ_WAIT		_IOR ('q', 0xE4, unsigned long) -#define IXJCTL_WRITE_WAIT		_IOR ('q', 0xE5, unsigned long) -#define IXJCTL_DRYBUFFER_READ		_IOR ('q', 0xE6, unsigned long) -#define IXJCTL_DRYBUFFER_CLEAR		_IO  ('q', 0xE7) -#define IXJCTL_DTMF_PRESCALE		_IOW ('q', 0xE8, int) - -/****************************************************************************** -* -* This ioctl allows the user application to control what events the driver -* will send signals for, and what signals it will send for which event. -* By default, if signaling is enabled, all events will send SIGIO when -* they occur.  To disable signals for an event set the signal to 0. -* -******************************************************************************/ -typedef enum { -	SIG_DTMF_READY, -	SIG_HOOKSTATE, -	SIG_FLASH, -	SIG_PSTN_RING, -	SIG_CALLER_ID, -	SIG_PSTN_WINK, -	SIG_F0, SIG_F1, SIG_F2, SIG_F3, -	SIG_FC0, SIG_FC1, SIG_FC2, SIG_FC3, -	SIG_READ_READY = 33, -	SIG_WRITE_READY = 34 -} IXJ_SIGEVENT; - -typedef struct { -	unsigned int event; -	int signal; -} IXJ_SIGDEF; - -#define IXJCTL_SIGCTL			_IOW ('q', 0xE9, IXJ_SIGDEF *) - -/****************************************************************************** -* -* These ioctls allow the user application to change the gain in the  -* Smart Cable of the Internet Phone Card.  Sending -1 as a value will cause -* return value to be the current setting.  Valid values to set are 0x00 - 0x1F -* -* 11111 = +12 dB -* 10111 =   0 dB -* 00000 = -34.5 dB -* -* IXJCTL_SC_RXG sets the Receive gain -* IXJCTL_SC_TXG sets the Transmit gain -* -******************************************************************************/ -#define IXJCTL_SC_RXG			_IOW ('q', 0xEA, int) -#define IXJCTL_SC_TXG			_IOW ('q', 0xEB, int) - -/****************************************************************************** -* -* The intercom IOCTL's short the output from one card to the input of the -* other and vice versa (actually done in the DSP read function).  It is only -* necessary to execute the IOCTL on one card, but it is necessary to have -* both devices open to be able to detect hook switch changes.  The record -* codec and rate of each card must match the playback codec and rate of -* the other card for this to work properly. -* -******************************************************************************/ - -#define IXJCTL_INTERCOM_START 		_IOW ('q', 0xFD, int) -#define IXJCTL_INTERCOM_STOP  		_IOW ('q', 0xFE, int) - -/****************************************************************************** - * - * new structure for accessing raw filter information - * - ******************************************************************************/ - -typedef struct { -	unsigned int filter; -	char enable; -	unsigned int coeff[19]; -} IXJ_FILTER_RAW; - -#endif diff --git a/include/linux/jffs2.h b/include/linux/jffs2.h deleted file mode 100644 index a18b719f49d..00000000000 --- a/include/linux/jffs2.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * JFFS2 -- Journalling Flash File System, Version 2. - * - * Copyright © 2001-2007 Red Hat, Inc. - * Copyright © 2004-2010 David Woodhouse <dwmw2@infradead.org> - * - * Created by David Woodhouse <dwmw2@infradead.org> - * - * For licensing information, see the file 'LICENCE' in the - * jffs2 directory. - */ - -#ifndef __LINUX_JFFS2_H__ -#define __LINUX_JFFS2_H__ - -#include <linux/types.h> -#include <linux/magic.h> - -/* You must include something which defines the C99 uintXX_t types.  -   We don't do it from here because this file is used in too many -   different environments. */ - -/* Values we may expect to find in the 'magic' field */ -#define JFFS2_OLD_MAGIC_BITMASK 0x1984 -#define JFFS2_MAGIC_BITMASK 0x1985 -#define KSAMTIB_CIGAM_2SFFJ 0x8519 /* For detecting wrong-endian fs */ -#define JFFS2_EMPTY_BITMASK 0xffff -#define JFFS2_DIRTY_BITMASK 0x0000 - -/* Summary node MAGIC marker */ -#define JFFS2_SUM_MAGIC	0x02851885 - -/* We only allow a single char for length, and 0xFF is empty flash so -   we don't want it confused with a real length. Hence max 254. -*/ -#define JFFS2_MAX_NAME_LEN 254 - -/* How small can we sensibly write nodes? */ -#define JFFS2_MIN_DATA_LEN 128 - -#define JFFS2_COMPR_NONE	0x00 -#define JFFS2_COMPR_ZERO	0x01 -#define JFFS2_COMPR_RTIME	0x02 -#define JFFS2_COMPR_RUBINMIPS	0x03 -#define JFFS2_COMPR_COPY	0x04 -#define JFFS2_COMPR_DYNRUBIN	0x05 -#define JFFS2_COMPR_ZLIB	0x06 -#define JFFS2_COMPR_LZO		0x07 -/* Compatibility flags. */ -#define JFFS2_COMPAT_MASK 0xc000      /* What do to if an unknown nodetype is found */ -#define JFFS2_NODE_ACCURATE 0x2000 -/* INCOMPAT: Fail to mount the filesystem */ -#define JFFS2_FEATURE_INCOMPAT 0xc000 -/* ROCOMPAT: Mount read-only */ -#define JFFS2_FEATURE_ROCOMPAT 0x8000 -/* RWCOMPAT_COPY: Mount read/write, and copy the node when it's GC'd */ -#define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000 -/* RWCOMPAT_DELETE: Mount read/write, and delete the node when it's GC'd */ -#define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000 - -#define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1) -#define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2) -#define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3) -#define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4) - -#define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6) - -#define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8) -#define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9) - -/* XATTR Related */ -#define JFFS2_XPREFIX_USER		1	/* for "user." */ -#define JFFS2_XPREFIX_SECURITY		2	/* for "security." */ -#define JFFS2_XPREFIX_ACL_ACCESS	3	/* for "system.posix_acl_access" */ -#define JFFS2_XPREFIX_ACL_DEFAULT	4	/* for "system.posix_acl_default" */ -#define JFFS2_XPREFIX_TRUSTED		5	/* for "trusted.*" */ - -#define JFFS2_ACL_VERSION		0x0001 - -// Maybe later... -//#define JFFS2_NODETYPE_CHECKPOINT (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3) -//#define JFFS2_NODETYPE_OPTIONS (JFFS2_FEATURE_RWCOMPAT_COPY | JFFS2_NODE_ACCURATE | 4) - - -#define JFFS2_INO_FLAG_PREREAD	  1	/* Do read_inode() for this one at -					   mount time, don't wait for it to -					   happen later */ -#define JFFS2_INO_FLAG_USERCOMPR  2	/* User has requested a specific -					   compression type */ - - -/* These can go once we've made sure we've caught all uses without -   byteswapping */ - -typedef struct { -	__u32 v32; -} __attribute__((packed)) jint32_t; - -typedef struct { -	__u32 m; -} __attribute__((packed)) jmode_t; - -typedef struct { -	__u16 v16; -} __attribute__((packed)) jint16_t; - -struct jffs2_unknown_node -{ -	/* All start like this */ -	jint16_t magic; -	jint16_t nodetype; -	jint32_t totlen; /* So we can skip over nodes we don't grok */ -	jint32_t hdr_crc; -}; - -struct jffs2_raw_dirent -{ -	jint16_t magic; -	jint16_t nodetype;	/* == JFFS2_NODETYPE_DIRENT */ -	jint32_t totlen; -	jint32_t hdr_crc; -	jint32_t pino; -	jint32_t version; -	jint32_t ino; /* == zero for unlink */ -	jint32_t mctime; -	__u8 nsize; -	__u8 type; -	__u8 unused[2]; -	jint32_t node_crc; -	jint32_t name_crc; -	__u8 name[0]; -}; - -/* The JFFS2 raw inode structure: Used for storage on physical media.  */ -/* The uid, gid, atime, mtime and ctime members could be longer, but -   are left like this for space efficiency. If and when people decide -   they really need them extended, it's simple enough to add support for -   a new type of raw node. -*/ -struct jffs2_raw_inode -{ -	jint16_t magic;      /* A constant magic number.  */ -	jint16_t nodetype;   /* == JFFS2_NODETYPE_INODE */ -	jint32_t totlen;     /* Total length of this node (inc data, etc.) */ -	jint32_t hdr_crc; -	jint32_t ino;        /* Inode number.  */ -	jint32_t version;    /* Version number.  */ -	jmode_t mode;       /* The file's type or mode.  */ -	jint16_t uid;        /* The file's owner.  */ -	jint16_t gid;        /* The file's group.  */ -	jint32_t isize;      /* Total resultant size of this inode (used for truncations)  */ -	jint32_t atime;      /* Last access time.  */ -	jint32_t mtime;      /* Last modification time.  */ -	jint32_t ctime;      /* Change time.  */ -	jint32_t offset;     /* Where to begin to write.  */ -	jint32_t csize;      /* (Compressed) data size */ -	jint32_t dsize;	     /* Size of the node's data. (after decompression) */ -	__u8 compr;       /* Compression algorithm used */ -	__u8 usercompr;   /* Compression algorithm requested by the user */ -	jint16_t flags;	     /* See JFFS2_INO_FLAG_* */ -	jint32_t data_crc;   /* CRC for the (compressed) data.  */ -	jint32_t node_crc;   /* CRC for the raw inode (excluding data)  */ -	__u8 data[0]; -}; - -struct jffs2_raw_xattr { -	jint16_t magic; -	jint16_t nodetype;	/* = JFFS2_NODETYPE_XATTR */ -	jint32_t totlen; -	jint32_t hdr_crc; -	jint32_t xid;		/* XATTR identifier number */ -	jint32_t version; -	__u8 xprefix; -	__u8 name_len; -	jint16_t value_len; -	jint32_t data_crc; -	jint32_t node_crc; -	__u8 data[0]; -} __attribute__((packed)); - -struct jffs2_raw_xref -{ -	jint16_t magic; -	jint16_t nodetype;	/* = JFFS2_NODETYPE_XREF */ -	jint32_t totlen; -	jint32_t hdr_crc; -	jint32_t ino;		/* inode number */ -	jint32_t xid;		/* XATTR identifier number */ -	jint32_t xseqno;	/* xref sequential number */ -	jint32_t node_crc; -} __attribute__((packed)); - -struct jffs2_raw_summary -{ -	jint16_t magic; -	jint16_t nodetype; 	/* = JFFS2_NODETYPE_SUMMARY */ -	jint32_t totlen; -	jint32_t hdr_crc; -	jint32_t sum_num;	/* number of sum entries*/ -	jint32_t cln_mkr;	/* clean marker size, 0 = no cleanmarker */ -	jint32_t padded;	/* sum of the size of padding nodes */ -	jint32_t sum_crc;	/* summary information crc */ -	jint32_t node_crc; 	/* node crc */ -	jint32_t sum[0]; 	/* inode summary info */ -}; - -union jffs2_node_union -{ -	struct jffs2_raw_inode i; -	struct jffs2_raw_dirent d; -	struct jffs2_raw_xattr x; -	struct jffs2_raw_xref r; -	struct jffs2_raw_summary s; -	struct jffs2_unknown_node u; -}; - -/* Data payload for device nodes. */ -union jffs2_device_node { -	jint16_t old_id; -	jint32_t new_id; -}; - -#endif /* __LINUX_JFFS2_H__ */ diff --git a/include/linux/joystick.h b/include/linux/joystick.h index 47199b13e0e..cbf2aa9e93b 100644 --- a/include/linux/joystick.h +++ b/include/linux/joystick.h @@ -1,12 +1,8 @@ -#ifndef _LINUX_JOYSTICK_H -#define _LINUX_JOYSTICK_H -  /*   *  Copyright (C) 1996-2000 Vojtech Pavlik   *   *  Sponsored by SuSE   */ -  /*   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -26,113 +22,11 @@   * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:   * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic   */ +#ifndef _LINUX_JOYSTICK_H +#define _LINUX_JOYSTICK_H -#include <linux/types.h> -#include <linux/input.h> - -/* - * Version - */ - -#define JS_VERSION		0x020100 - -/* - * Types and constants for reading from /dev/js - */ - -#define JS_EVENT_BUTTON		0x01	/* button pressed/released */ -#define JS_EVENT_AXIS		0x02	/* joystick moved */ -#define JS_EVENT_INIT		0x80	/* initial state of device */ - -struct js_event { -	__u32 time;	/* event timestamp in milliseconds */ -	__s16 value;	/* value */ -	__u8 type;	/* event type */ -	__u8 number;	/* axis/button number */ -}; - -/* - * IOCTL commands for joystick driver - */ - -#define JSIOCGVERSION		_IOR('j', 0x01, __u32)				/* get driver version */ - -#define JSIOCGAXES		_IOR('j', 0x11, __u8)				/* get number of axes */ -#define JSIOCGBUTTONS		_IOR('j', 0x12, __u8)				/* get number of buttons */ -#define JSIOCGNAME(len)		_IOC(_IOC_READ, 'j', 0x13, len)			/* get identifier string */ - -#define JSIOCSCORR		_IOW('j', 0x21, struct js_corr)			/* set correction values */ -#define JSIOCGCORR		_IOR('j', 0x22, struct js_corr)			/* get correction values */ - -#define JSIOCSAXMAP		_IOW('j', 0x31, __u8[ABS_CNT])			/* set axis mapping */ -#define JSIOCGAXMAP		_IOR('j', 0x32, __u8[ABS_CNT])			/* get axis mapping */ -#define JSIOCSBTNMAP		_IOW('j', 0x33, __u16[KEY_MAX - BTN_MISC + 1])	/* set button mapping */ -#define JSIOCGBTNMAP		_IOR('j', 0x34, __u16[KEY_MAX - BTN_MISC + 1])	/* get button mapping */ - -/* - * Types and constants for get/set correction - */ - -#define JS_CORR_NONE		0x00	/* returns raw values */ -#define JS_CORR_BROKEN		0x01	/* broken line */ - -struct js_corr { -	__s32 coef[8]; -	__s16 prec; -	__u16 type; -}; - -/* - * v0.x compatibility definitions - */ - -#define JS_RETURN		sizeof(struct JS_DATA_TYPE) -#define JS_TRUE			1 -#define JS_FALSE		0 -#define JS_X_0			0x01 -#define JS_Y_0			0x02 -#define JS_X_1			0x04 -#define JS_Y_1			0x08 -#define JS_MAX			2 - -#define JS_DEF_TIMEOUT		0x1300 -#define JS_DEF_CORR		0 -#define JS_DEF_TIMELIMIT	10L - -#define JS_SET_CAL		1 -#define JS_GET_CAL		2 -#define JS_SET_TIMEOUT		3 -#define JS_GET_TIMEOUT		4 -#define JS_SET_TIMELIMIT	5 -#define JS_GET_TIMELIMIT	6 -#define JS_GET_ALL		7 -#define JS_SET_ALL		8 - -struct JS_DATA_TYPE { -	__s32 buttons; -	__s32 x; -	__s32 y; -}; - -struct JS_DATA_SAVE_TYPE_32 { -	__s32 JS_TIMEOUT; -	__s32 BUSY; -	__s32 JS_EXPIRETIME; -	__s32 JS_TIMELIMIT; -	struct JS_DATA_TYPE JS_SAVE; -	struct JS_DATA_TYPE JS_CORR; -}; - -struct JS_DATA_SAVE_TYPE_64 { -	__s32 JS_TIMEOUT; -	__s32 BUSY; -	__s64 JS_EXPIRETIME; -	__s64 JS_TIMELIMIT; -	struct JS_DATA_TYPE JS_SAVE; -	struct JS_DATA_TYPE JS_CORR; -}; +#include <uapi/linux/joystick.h> -#ifdef __KERNEL__  #if BITS_PER_LONG == 64  #define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_64  #elif BITS_PER_LONG == 32 @@ -140,6 +34,4 @@ struct JS_DATA_SAVE_TYPE_64 {  #else  #error Unexpected BITS_PER_LONG  #endif -#endif -  #endif /* _LINUX_JOYSTICK_H */ diff --git a/include/linux/kd.h b/include/linux/kd.h index c36d8476db5..25bd17fad23 100644 --- a/include/linux/kd.h +++ b/include/linux/kd.h @@ -1,186 +1,7 @@  #ifndef _LINUX_KD_H  #define _LINUX_KD_H -#include <linux/types.h> -#include <linux/compiler.h> -/* 0x4B is 'K', to avoid collision with termios and vt */ +#include <uapi/linux/kd.h> -#define GIO_FONT	0x4B60	/* gets font in expanded form */ -#define PIO_FONT	0x4B61	/* use font in expanded form */ - -#define GIO_FONTX	0x4B6B	/* get font using struct consolefontdesc */ -#define PIO_FONTX	0x4B6C	/* set font using struct consolefontdesc */ -struct consolefontdesc { -	unsigned short charcount;	/* characters in font (256 or 512) */ -	unsigned short charheight;	/* scan lines per character (1-32) */ -	char __user *chardata;		/* font data in expanded form */ -}; - -#define PIO_FONTRESET   0x4B6D	/* reset to default font */ - -#define GIO_CMAP	0x4B70	/* gets colour palette on VGA+ */ -#define PIO_CMAP	0x4B71	/* sets colour palette on VGA+ */ - -#define KIOCSOUND	0x4B2F	/* start sound generation (0 for off) */ -#define KDMKTONE	0x4B30	/* generate tone */ - -#define KDGETLED	0x4B31	/* return current led state */ -#define KDSETLED	0x4B32	/* set led state [lights, not flags] */ -#define 	LED_SCR		0x01	/* scroll lock led */ -#define 	LED_NUM		0x02	/* num lock led */ -#define 	LED_CAP		0x04	/* caps lock led */ - -#define KDGKBTYPE	0x4B33	/* get keyboard type */ -#define 	KB_84		0x01 -#define 	KB_101		0x02 	/* this is what we always answer */ -#define 	KB_OTHER	0x03 - -#define KDADDIO		0x4B34	/* add i/o port as valid */ -#define KDDELIO		0x4B35	/* del i/o port as valid */ -#define KDENABIO	0x4B36	/* enable i/o to video board */ -#define KDDISABIO	0x4B37	/* disable i/o to video board */ - -#define KDSETMODE	0x4B3A	/* set text/graphics mode */ -#define		KD_TEXT		0x00 -#define		KD_GRAPHICS	0x01 -#define		KD_TEXT0	0x02	/* obsolete */ -#define		KD_TEXT1	0x03	/* obsolete */ -#define KDGETMODE	0x4B3B	/* get current mode */ - -#define KDMAPDISP	0x4B3C	/* map display into address space */ -#define KDUNMAPDISP	0x4B3D	/* unmap display from address space */ - -typedef char scrnmap_t; -#define		E_TABSZ		256 -#define GIO_SCRNMAP	0x4B40	/* get screen mapping from kernel */ -#define PIO_SCRNMAP	0x4B41	/* put screen mapping table in kernel */ -#define GIO_UNISCRNMAP  0x4B69	/* get full Unicode screen mapping */ -#define PIO_UNISCRNMAP  0x4B6A  /* set full Unicode screen mapping */ - -#define GIO_UNIMAP	0x4B66	/* get unicode-to-font mapping from kernel */ -struct unipair { -	unsigned short unicode; -	unsigned short fontpos; -}; -struct unimapdesc { -	unsigned short entry_ct; -	struct unipair __user *entries; -}; -#define PIO_UNIMAP	0x4B67	/* put unicode-to-font mapping in kernel */ -#define PIO_UNIMAPCLR	0x4B68	/* clear table, possibly advise hash algorithm */ -struct unimapinit { -	unsigned short advised_hashsize;  /* 0 if no opinion */ -	unsigned short advised_hashstep;  /* 0 if no opinion */ -	unsigned short advised_hashlevel; /* 0 if no opinion */ -}; - -#define UNI_DIRECT_BASE 0xF000	/* start of Direct Font Region */ -#define UNI_DIRECT_MASK 0x01FF	/* Direct Font Region bitmask */ - -#define		K_RAW		0x00 -#define		K_XLATE		0x01 -#define		K_MEDIUMRAW	0x02 -#define		K_UNICODE	0x03 -#define		K_OFF		0x04 -#define KDGKBMODE	0x4B44	/* gets current keyboard mode */ -#define KDSKBMODE	0x4B45	/* sets current keyboard mode */ - -#define		K_METABIT	0x03 -#define		K_ESCPREFIX	0x04 -#define KDGKBMETA	0x4B62	/* gets meta key handling mode */ -#define KDSKBMETA	0x4B63	/* sets meta key handling mode */ - -#define		K_SCROLLLOCK	0x01 -#define		K_NUMLOCK	0x02 -#define		K_CAPSLOCK	0x04 -#define	KDGKBLED	0x4B64	/* get led flags (not lights) */ -#define	KDSKBLED	0x4B65	/* set led flags (not lights) */ - -struct kbentry { -	unsigned char kb_table; -	unsigned char kb_index; -	unsigned short kb_value; -}; -#define		K_NORMTAB	0x00 -#define		K_SHIFTTAB	0x01 -#define		K_ALTTAB	0x02 -#define		K_ALTSHIFTTAB	0x03 - -#define KDGKBENT	0x4B46	/* gets one entry in translation table */ -#define KDSKBENT	0x4B47	/* sets one entry in translation table */ - -struct kbsentry { -	unsigned char kb_func; -	unsigned char kb_string[512]; -}; -#define KDGKBSENT	0x4B48	/* gets one function key string entry */ -#define KDSKBSENT	0x4B49	/* sets one function key string entry */ - -struct kbdiacr { -        unsigned char diacr, base, result; -}; -struct kbdiacrs { -        unsigned int kb_cnt;    /* number of entries in following array */ -	struct kbdiacr kbdiacr[256];    /* MAX_DIACR from keyboard.h */ -}; -#define KDGKBDIACR      0x4B4A  /* read kernel accent table */ -#define KDSKBDIACR      0x4B4B  /* write kernel accent table */ - -struct kbdiacruc { -	unsigned int diacr, base, result; -}; -struct kbdiacrsuc { -        unsigned int kb_cnt;    /* number of entries in following array */ -	struct kbdiacruc kbdiacruc[256];    /* MAX_DIACR from keyboard.h */ -}; -#define KDGKBDIACRUC    0x4BFA  /* read kernel accent table - UCS */ -#define KDSKBDIACRUC    0x4BFB  /* write kernel accent table - UCS */ - -struct kbkeycode { -	unsigned int scancode, keycode; -}; -#define KDGETKEYCODE	0x4B4C	/* read kernel keycode table entry */ -#define KDSETKEYCODE	0x4B4D	/* write kernel keycode table entry */ - -#define KDSIGACCEPT	0x4B4E	/* accept kbd generated signals */ - -struct kbd_repeat { -	int delay;	/* in msec; <= 0: don't change */ -	int period;	/* in msec; <= 0: don't change */ -			/* earlier this field was misnamed "rate" */ -}; - -#define KDKBDREP        0x4B52  /* set keyboard delay/repeat rate; -				 * actually used values are returned */ - -#define KDFONTOP	0x4B72	/* font operations */ - -struct console_font_op { -	unsigned int op;	/* operation code KD_FONT_OP_* */ -	unsigned int flags;	/* KD_FONT_FLAG_* */ -	unsigned int width, height;	/* font size */ -	unsigned int charcount; -	unsigned char __user *data;	/* font data with height fixed to 32 */ -}; - -struct console_font { -	unsigned int width, height;	/* font size */ -	unsigned int charcount; -	unsigned char *data;	/* font data with height fixed to 32 */ -}; - -#define KD_FONT_OP_SET		0	/* Set font */ -#define KD_FONT_OP_GET		1	/* Get font */ -#define KD_FONT_OP_SET_DEFAULT	2	/* Set font to default, data points to name / NULL */ -#define KD_FONT_OP_COPY		3	/* Copy from another console */ - -#define KD_FONT_FLAG_DONT_RECALC 	1	/* Don't recalculate hw charcell size [compat] */ -#ifdef __KERNEL__  #define KD_FONT_FLAG_OLD		0x80000000	/* Invoked via old interface [compat] */ -#endif - -/* note: 0x4B00-0x4B4E all have had a value at some time; -   don't reuse for the time being */ -/* note: 0x4B60-0x4B6D, 0x4B70-0x4B72 used above */ -  #endif /* _LINUX_KD_H */ diff --git a/include/linux/kdev_t.h b/include/linux/kdev_t.h index 2dacab8becc..c838abe3ee0 100644 --- a/include/linux/kdev_t.h +++ b/include/linux/kdev_t.h @@ -1,6 +1,8 @@  #ifndef _LINUX_KDEV_T_H  #define _LINUX_KDEV_T_H -#ifdef __KERNEL__ + +#include <uapi/linux/kdev_t.h> +  #define MINORBITS	20  #define MINORMASK	((1U << MINORBITS) - 1) @@ -87,14 +89,4 @@ static inline unsigned sysv_minor(u32 dev)  	return dev & 0x3ffff;  } -#else /* __KERNEL__ */ - -/* -Some programs want their definitions of MAJOR and MINOR and MKDEV -from the kernel sources. These must be the externally visible ones. -*/ -#define MAJOR(dev)	((dev)>>8) -#define MINOR(dev)	((dev) & 0xff) -#define MKDEV(ma,mi)	((ma)<<8 | (mi)) -#endif /* __KERNEL__ */  #endif diff --git a/include/linux/kernel-page-flags.h b/include/linux/kernel-page-flags.h index a1bdf696635..546eb6a7693 100644 --- a/include/linux/kernel-page-flags.h +++ b/include/linux/kernel-page-flags.h @@ -1,38 +1,8 @@  #ifndef LINUX_KERNEL_PAGE_FLAGS_H  #define LINUX_KERNEL_PAGE_FLAGS_H -/* - * Stable page flag bits exported to user space - */ - -#define KPF_LOCKED		0 -#define KPF_ERROR		1 -#define KPF_REFERENCED		2 -#define KPF_UPTODATE		3 -#define KPF_DIRTY		4 -#define KPF_LRU			5 -#define KPF_ACTIVE		6 -#define KPF_SLAB		7 -#define KPF_WRITEBACK		8 -#define KPF_RECLAIM		9 -#define KPF_BUDDY		10 - -/* 11-20: new additions in 2.6.31 */ -#define KPF_MMAP		11 -#define KPF_ANON		12 -#define KPF_SWAPCACHE		13 -#define KPF_SWAPBACKED		14 -#define KPF_COMPOUND_HEAD	15 -#define KPF_COMPOUND_TAIL	16 -#define KPF_HUGE		17 -#define KPF_UNEVICTABLE		18 -#define KPF_HWPOISON		19 -#define KPF_NOPAGE		20 +#include <uapi/linux/kernel-page-flags.h> -#define KPF_KSM			21 -#define KPF_THP			22 - -#ifdef __KERNEL__  /* kernel hacking assistances   * WARNING: subject to change, never rely on them! @@ -46,6 +16,4 @@  #define KPF_ARCH		38  #define KPF_UNCACHED		39 -#endif /* __KERNEL__ */ -  #endif /* LINUX_KERNEL_PAGE_FLAGS_H */ diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 2451f1f7a1d..a123b13b70f 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -1,15 +1,6 @@  #ifndef _LINUX_KERNEL_H  #define _LINUX_KERNEL_H -#include <linux/sysinfo.h> - -/* - * 'kernel.h' contains some often-used function prototypes etc - */ -#define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) -#define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask)) - -#ifdef __KERNEL__  #include <stdarg.h>  #include <linux/linkage.h> @@ -22,6 +13,7 @@  #include <linux/printk.h>  #include <linux/dynamic_debug.h>  #include <asm/byteorder.h> +#include <uapi/linux/kernel.h>  #define USHRT_MAX	((u16)(~0U))  #define SHRT_MAX	((s16)(USHRT_MAX>>1)) @@ -716,6 +708,4 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }  extern int do_sysinfo(struct sysinfo *info); -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/kernelcapi.h b/include/linux/kernelcapi.h index 9c2683929fd..9be37da9368 100644 --- a/include/linux/kernelcapi.h +++ b/include/linux/kernelcapi.h @@ -6,49 +6,15 @@   * (c) Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)   *    */ -  #ifndef __KERNELCAPI_H__  #define __KERNELCAPI_H__ -#define CAPI_MAXAPPL	240	/* maximum number of applications  */ -#define CAPI_MAXCONTR	32	/* maximum number of controller    */ -#define CAPI_MAXDATAWINDOW	8 - - -typedef struct kcapi_flagdef { -	int contr; -	int flag; -} kcapi_flagdef; - -typedef struct kcapi_carddef { -	char		driver[32]; -	unsigned int	port; -	unsigned	irq; -	unsigned int	membase; -	int		cardnr; -} kcapi_carddef; - -/* new ioctls >= 10 */ -#define KCAPI_CMD_TRACE		10 -#define KCAPI_CMD_ADDCARD	11	/* OBSOLETE */ - -/*  - * flag > 2 => trace also data - * flag & 1 => show trace - */ -#define KCAPI_TRACE_OFF			0 -#define KCAPI_TRACE_SHORT_NO_DATA	1 -#define KCAPI_TRACE_FULL_NO_DATA	2 -#define KCAPI_TRACE_SHORT		3 -#define KCAPI_TRACE_FULL		4 - - -#ifdef __KERNEL__  #include <linux/list.h>  #include <linux/skbuff.h>  #include <linux/workqueue.h>  #include <linux/notifier.h> +#include <uapi/linux/kernelcapi.h>  struct capi20_appl {  	u16 applid; @@ -150,6 +116,4 @@ typedef enum {  	CapiCallGivenToOtherApplication                 = 0x3304,  } CAPI_REASON; -#endif				/* __KERNEL__ */ -  #endif				/* __KERNELCAPI_H__ */ diff --git a/include/linux/kexec.h b/include/linux/kexec.h index 37c5f726114..d0b8458a703 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -1,57 +1,8 @@  #ifndef LINUX_KEXEC_H  #define LINUX_KEXEC_H -/* kexec system call -  It loads the new kernel to boot into. - * kexec does not sync, or unmount filesystems so if you need - * that to happen you need to do that yourself. - */ - -#include <linux/types.h> - -/* kexec flags for different usage scenarios */ -#define KEXEC_ON_CRASH		0x00000001 -#define KEXEC_PRESERVE_CONTEXT	0x00000002 -#define KEXEC_ARCH_MASK		0xffff0000 - -/* These values match the ELF architecture values. - * Unless there is a good reason that should continue to be the case. - */ -#define KEXEC_ARCH_DEFAULT ( 0 << 16) -#define KEXEC_ARCH_386     ( 3 << 16) -#define KEXEC_ARCH_X86_64  (62 << 16) -#define KEXEC_ARCH_PPC     (20 << 16) -#define KEXEC_ARCH_PPC64   (21 << 16) -#define KEXEC_ARCH_IA_64   (50 << 16) -#define KEXEC_ARCH_ARM     (40 << 16) -#define KEXEC_ARCH_S390    (22 << 16) -#define KEXEC_ARCH_SH      (42 << 16) -#define KEXEC_ARCH_MIPS_LE (10 << 16) -#define KEXEC_ARCH_MIPS    ( 8 << 16) - -/* The artificial cap on the number of segments passed to kexec_load. */ -#define KEXEC_SEGMENT_MAX 16 - -#ifndef __KERNEL__ -/* - * This structure is used to hold the arguments that are used when - * loading  kernel binaries. - */ -struct kexec_segment { -	const void *buf; -	size_t bufsz; -	const void *mem; -	size_t memsz; -}; - -/* Load a new kernel image as described by the kexec_segment array - * consisting of passed number of segments at the entry-point address. - * The flags allow different useage types. - */ -extern int kexec_load(void *, size_t, struct kexec_segment *, -		unsigned long int); -#endif /* __KERNEL__ */ +#include <uapi/linux/kexec.h> -#ifdef __KERNEL__  #ifdef CONFIG_KEXEC  #include <linux/list.h>  #include <linux/linkage.h> @@ -258,5 +209,4 @@ struct task_struct;  static inline void crash_kexec(struct pt_regs *regs) { }  static inline int kexec_should_crash(struct task_struct *p) { return 0; }  #endif /* CONFIG_KEXEC */ -#endif /* __KERNEL__ */  #endif /* LINUX_KEXEC_H */ diff --git a/include/linux/keyboard.h b/include/linux/keyboard.h index 86e5214ae73..131ed514652 100644 --- a/include/linux/keyboard.h +++ b/include/linux/keyboard.h @@ -1,28 +1,8 @@  #ifndef __LINUX_KEYBOARD_H  #define __LINUX_KEYBOARD_H -#include <linux/wait.h> +#include <uapi/linux/keyboard.h> -#define KG_SHIFT	0 -#define KG_CTRL		2 -#define KG_ALT		3 -#define KG_ALTGR	1 -#define KG_SHIFTL	4 -#define KG_KANASHIFT	4 -#define KG_SHIFTR	5 -#define KG_CTRLL	6 -#define KG_CTRLR	7 -#define KG_CAPSSHIFT	8 - -#define NR_SHIFT	9 - -#define NR_KEYS		256 -#define MAX_NR_KEYMAPS	256 -/* This means 128Kb if all keymaps are allocated. Only the superuser -	may increase the number of keymaps beyond MAX_NR_OF_USER_KEYMAPS. */ -#define MAX_NR_OF_USER_KEYMAPS 256 	/* should be at least 7 */ - -#ifdef __KERNEL__  struct notifier_block;  extern unsigned short *key_maps[MAX_NR_KEYMAPS];  extern unsigned short plain_map[NR_KEYS]; @@ -38,422 +18,3 @@ struct keyboard_notifier_param {  extern int register_keyboard_notifier(struct notifier_block *nb);  extern int unregister_keyboard_notifier(struct notifier_block *nb);  #endif - -#define MAX_NR_FUNC	256	/* max nr of strings assigned to keys */ - -#define KT_LATIN	0	/* we depend on this being zero */ -#define KT_LETTER	11	/* symbol that can be acted upon by CapsLock */ -#define KT_FN		1 -#define KT_SPEC		2 -#define KT_PAD		3 -#define KT_DEAD		4 -#define KT_CONS		5 -#define KT_CUR		6 -#define KT_SHIFT	7 -#define KT_META		8 -#define KT_ASCII	9 -#define KT_LOCK		10 -#define KT_SLOCK	12 -#define KT_DEAD2	13 -#define KT_BRL		14 - -#define K(t,v)		(((t)<<8)|(v)) -#define KTYP(x)		((x) >> 8) -#define KVAL(x)		((x) & 0xff) - -#define K_F1		K(KT_FN,0) -#define K_F2		K(KT_FN,1) -#define K_F3		K(KT_FN,2) -#define K_F4		K(KT_FN,3) -#define K_F5		K(KT_FN,4) -#define K_F6		K(KT_FN,5) -#define K_F7		K(KT_FN,6) -#define K_F8		K(KT_FN,7) -#define K_F9		K(KT_FN,8) -#define K_F10		K(KT_FN,9) -#define K_F11		K(KT_FN,10) -#define K_F12		K(KT_FN,11) -#define K_F13		K(KT_FN,12) -#define K_F14		K(KT_FN,13) -#define K_F15		K(KT_FN,14) -#define K_F16		K(KT_FN,15) -#define K_F17		K(KT_FN,16) -#define K_F18		K(KT_FN,17) -#define K_F19		K(KT_FN,18) -#define K_F20		K(KT_FN,19) -#define K_FIND		K(KT_FN,20) -#define K_INSERT	K(KT_FN,21) -#define K_REMOVE	K(KT_FN,22) -#define K_SELECT	K(KT_FN,23) -#define K_PGUP		K(KT_FN,24) /* PGUP is a synonym for PRIOR */ -#define K_PGDN		K(KT_FN,25) /* PGDN is a synonym for NEXT */ -#define K_MACRO	 	K(KT_FN,26) -#define K_HELP		K(KT_FN,27) -#define K_DO		K(KT_FN,28) -#define K_PAUSE	 	K(KT_FN,29) -#define K_F21		K(KT_FN,30) -#define K_F22		K(KT_FN,31) -#define K_F23		K(KT_FN,32) -#define K_F24		K(KT_FN,33) -#define K_F25		K(KT_FN,34) -#define K_F26		K(KT_FN,35) -#define K_F27		K(KT_FN,36) -#define K_F28		K(KT_FN,37) -#define K_F29		K(KT_FN,38) -#define K_F30		K(KT_FN,39) -#define K_F31		K(KT_FN,40) -#define K_F32		K(KT_FN,41) -#define K_F33		K(KT_FN,42) -#define K_F34		K(KT_FN,43) -#define K_F35		K(KT_FN,44) -#define K_F36		K(KT_FN,45) -#define K_F37		K(KT_FN,46) -#define K_F38		K(KT_FN,47) -#define K_F39		K(KT_FN,48) -#define K_F40		K(KT_FN,49) -#define K_F41		K(KT_FN,50) -#define K_F42		K(KT_FN,51) -#define K_F43		K(KT_FN,52) -#define K_F44		K(KT_FN,53) -#define K_F45		K(KT_FN,54) -#define K_F46		K(KT_FN,55) -#define K_F47		K(KT_FN,56) -#define K_F48		K(KT_FN,57) -#define K_F49		K(KT_FN,58) -#define K_F50		K(KT_FN,59) -#define K_F51		K(KT_FN,60) -#define K_F52		K(KT_FN,61) -#define K_F53		K(KT_FN,62) -#define K_F54		K(KT_FN,63) -#define K_F55		K(KT_FN,64) -#define K_F56		K(KT_FN,65) -#define K_F57		K(KT_FN,66) -#define K_F58		K(KT_FN,67) -#define K_F59		K(KT_FN,68) -#define K_F60		K(KT_FN,69) -#define K_F61		K(KT_FN,70) -#define K_F62		K(KT_FN,71) -#define K_F63		K(KT_FN,72) -#define K_F64		K(KT_FN,73) -#define K_F65		K(KT_FN,74) -#define K_F66		K(KT_FN,75) -#define K_F67		K(KT_FN,76) -#define K_F68		K(KT_FN,77) -#define K_F69		K(KT_FN,78) -#define K_F70		K(KT_FN,79) -#define K_F71		K(KT_FN,80) -#define K_F72		K(KT_FN,81) -#define K_F73		K(KT_FN,82) -#define K_F74		K(KT_FN,83) -#define K_F75		K(KT_FN,84) -#define K_F76		K(KT_FN,85) -#define K_F77		K(KT_FN,86) -#define K_F78		K(KT_FN,87) -#define K_F79		K(KT_FN,88) -#define K_F80		K(KT_FN,89) -#define K_F81		K(KT_FN,90) -#define K_F82		K(KT_FN,91) -#define K_F83		K(KT_FN,92) -#define K_F84		K(KT_FN,93) -#define K_F85		K(KT_FN,94) -#define K_F86		K(KT_FN,95) -#define K_F87		K(KT_FN,96) -#define K_F88		K(KT_FN,97) -#define K_F89		K(KT_FN,98) -#define K_F90		K(KT_FN,99) -#define K_F91		K(KT_FN,100) -#define K_F92		K(KT_FN,101) -#define K_F93		K(KT_FN,102) -#define K_F94		K(KT_FN,103) -#define K_F95		K(KT_FN,104) -#define K_F96		K(KT_FN,105) -#define K_F97		K(KT_FN,106) -#define K_F98		K(KT_FN,107) -#define K_F99		K(KT_FN,108) -#define K_F100		K(KT_FN,109) -#define K_F101		K(KT_FN,110) -#define K_F102		K(KT_FN,111) -#define K_F103		K(KT_FN,112) -#define K_F104		K(KT_FN,113) -#define K_F105		K(KT_FN,114) -#define K_F106		K(KT_FN,115) -#define K_F107		K(KT_FN,116) -#define K_F108		K(KT_FN,117) -#define K_F109		K(KT_FN,118) -#define K_F110		K(KT_FN,119) -#define K_F111		K(KT_FN,120) -#define K_F112		K(KT_FN,121) -#define K_F113		K(KT_FN,122) -#define K_F114		K(KT_FN,123) -#define K_F115		K(KT_FN,124) -#define K_F116		K(KT_FN,125) -#define K_F117		K(KT_FN,126) -#define K_F118		K(KT_FN,127) -#define K_F119		K(KT_FN,128) -#define K_F120		K(KT_FN,129) -#define K_F121		K(KT_FN,130) -#define K_F122		K(KT_FN,131) -#define K_F123		K(KT_FN,132) -#define K_F124		K(KT_FN,133) -#define K_F125		K(KT_FN,134) -#define K_F126		K(KT_FN,135) -#define K_F127		K(KT_FN,136) -#define K_F128		K(KT_FN,137) -#define K_F129		K(KT_FN,138) -#define K_F130		K(KT_FN,139) -#define K_F131		K(KT_FN,140) -#define K_F132		K(KT_FN,141) -#define K_F133		K(KT_FN,142) -#define K_F134		K(KT_FN,143) -#define K_F135		K(KT_FN,144) -#define K_F136		K(KT_FN,145) -#define K_F137		K(KT_FN,146) -#define K_F138		K(KT_FN,147) -#define K_F139		K(KT_FN,148) -#define K_F140		K(KT_FN,149) -#define K_F141		K(KT_FN,150) -#define K_F142		K(KT_FN,151) -#define K_F143		K(KT_FN,152) -#define K_F144		K(KT_FN,153) -#define K_F145		K(KT_FN,154) -#define K_F146		K(KT_FN,155) -#define K_F147		K(KT_FN,156) -#define K_F148		K(KT_FN,157) -#define K_F149		K(KT_FN,158) -#define K_F150		K(KT_FN,159) -#define K_F151		K(KT_FN,160) -#define K_F152		K(KT_FN,161) -#define K_F153		K(KT_FN,162) -#define K_F154		K(KT_FN,163) -#define K_F155		K(KT_FN,164) -#define K_F156		K(KT_FN,165) -#define K_F157		K(KT_FN,166) -#define K_F158		K(KT_FN,167) -#define K_F159		K(KT_FN,168) -#define K_F160		K(KT_FN,169) -#define K_F161		K(KT_FN,170) -#define K_F162		K(KT_FN,171) -#define K_F163		K(KT_FN,172) -#define K_F164		K(KT_FN,173) -#define K_F165		K(KT_FN,174) -#define K_F166		K(KT_FN,175) -#define K_F167		K(KT_FN,176) -#define K_F168		K(KT_FN,177) -#define K_F169		K(KT_FN,178) -#define K_F170		K(KT_FN,179) -#define K_F171		K(KT_FN,180) -#define K_F172		K(KT_FN,181) -#define K_F173		K(KT_FN,182) -#define K_F174		K(KT_FN,183) -#define K_F175		K(KT_FN,184) -#define K_F176		K(KT_FN,185) -#define K_F177		K(KT_FN,186) -#define K_F178		K(KT_FN,187) -#define K_F179		K(KT_FN,188) -#define K_F180		K(KT_FN,189) -#define K_F181		K(KT_FN,190) -#define K_F182		K(KT_FN,191) -#define K_F183		K(KT_FN,192) -#define K_F184		K(KT_FN,193) -#define K_F185		K(KT_FN,194) -#define K_F186		K(KT_FN,195) -#define K_F187		K(KT_FN,196) -#define K_F188		K(KT_FN,197) -#define K_F189		K(KT_FN,198) -#define K_F190		K(KT_FN,199) -#define K_F191		K(KT_FN,200) -#define K_F192		K(KT_FN,201) -#define K_F193		K(KT_FN,202) -#define K_F194		K(KT_FN,203) -#define K_F195		K(KT_FN,204) -#define K_F196		K(KT_FN,205) -#define K_F197		K(KT_FN,206) -#define K_F198		K(KT_FN,207) -#define K_F199		K(KT_FN,208) -#define K_F200		K(KT_FN,209) -#define K_F201		K(KT_FN,210) -#define K_F202		K(KT_FN,211) -#define K_F203		K(KT_FN,212) -#define K_F204		K(KT_FN,213) -#define K_F205		K(KT_FN,214) -#define K_F206		K(KT_FN,215) -#define K_F207		K(KT_FN,216) -#define K_F208		K(KT_FN,217) -#define K_F209		K(KT_FN,218) -#define K_F210		K(KT_FN,219) -#define K_F211		K(KT_FN,220) -#define K_F212		K(KT_FN,221) -#define K_F213		K(KT_FN,222) -#define K_F214		K(KT_FN,223) -#define K_F215		K(KT_FN,224) -#define K_F216		K(KT_FN,225) -#define K_F217		K(KT_FN,226) -#define K_F218		K(KT_FN,227) -#define K_F219		K(KT_FN,228) -#define K_F220		K(KT_FN,229) -#define K_F221		K(KT_FN,230) -#define K_F222		K(KT_FN,231) -#define K_F223		K(KT_FN,232) -#define K_F224		K(KT_FN,233) -#define K_F225		K(KT_FN,234) -#define K_F226		K(KT_FN,235) -#define K_F227		K(KT_FN,236) -#define K_F228		K(KT_FN,237) -#define K_F229		K(KT_FN,238) -#define K_F230		K(KT_FN,239) -#define K_F231		K(KT_FN,240) -#define K_F232		K(KT_FN,241) -#define K_F233		K(KT_FN,242) -#define K_F234		K(KT_FN,243) -#define K_F235		K(KT_FN,244) -#define K_F236		K(KT_FN,245) -#define K_F237		K(KT_FN,246) -#define K_F238		K(KT_FN,247) -#define K_F239		K(KT_FN,248) -#define K_F240		K(KT_FN,249) -#define K_F241		K(KT_FN,250) -#define K_F242		K(KT_FN,251) -#define K_F243		K(KT_FN,252) -#define K_F244		K(KT_FN,253) -#define K_F245		K(KT_FN,254) -#define K_UNDO		K(KT_FN,255) - - -#define K_HOLE		K(KT_SPEC,0) -#define K_ENTER		K(KT_SPEC,1) -#define K_SH_REGS	K(KT_SPEC,2) -#define K_SH_MEM	K(KT_SPEC,3) -#define K_SH_STAT	K(KT_SPEC,4) -#define K_BREAK		K(KT_SPEC,5) -#define K_CONS		K(KT_SPEC,6) -#define K_CAPS		K(KT_SPEC,7) -#define K_NUM		K(KT_SPEC,8) -#define K_HOLD		K(KT_SPEC,9) -#define K_SCROLLFORW	K(KT_SPEC,10) -#define K_SCROLLBACK	K(KT_SPEC,11) -#define K_BOOT		K(KT_SPEC,12) -#define K_CAPSON	K(KT_SPEC,13) -#define K_COMPOSE	K(KT_SPEC,14) -#define K_SAK		K(KT_SPEC,15) -#define K_DECRCONSOLE	K(KT_SPEC,16) -#define K_INCRCONSOLE	K(KT_SPEC,17) -#define K_SPAWNCONSOLE	K(KT_SPEC,18) -#define K_BARENUMLOCK	K(KT_SPEC,19) - -#define K_ALLOCATED	K(KT_SPEC,126) /* dynamically allocated keymap */ -#define K_NOSUCHMAP	K(KT_SPEC,127) /* returned by KDGKBENT */ - -#define K_P0		K(KT_PAD,0) -#define K_P1		K(KT_PAD,1) -#define K_P2		K(KT_PAD,2) -#define K_P3		K(KT_PAD,3) -#define K_P4		K(KT_PAD,4) -#define K_P5		K(KT_PAD,5) -#define K_P6		K(KT_PAD,6) -#define K_P7		K(KT_PAD,7) -#define K_P8		K(KT_PAD,8) -#define K_P9		K(KT_PAD,9) -#define K_PPLUS		K(KT_PAD,10)	/* key-pad plus */ -#define K_PMINUS	K(KT_PAD,11)	/* key-pad minus */ -#define K_PSTAR		K(KT_PAD,12)	/* key-pad asterisk (star) */ -#define K_PSLASH	K(KT_PAD,13)	/* key-pad slash */ -#define K_PENTER	K(KT_PAD,14)	/* key-pad enter */ -#define K_PCOMMA	K(KT_PAD,15)	/* key-pad comma: kludge... */ -#define K_PDOT		K(KT_PAD,16)	/* key-pad dot (period): kludge... */ -#define K_PPLUSMINUS	K(KT_PAD,17)	/* key-pad plus/minus */ -#define K_PPARENL	K(KT_PAD,18)	/* key-pad left parenthesis */ -#define K_PPARENR	K(KT_PAD,19)	/* key-pad right parenthesis */ - -#define NR_PAD		20 - -#define K_DGRAVE	K(KT_DEAD,0) -#define K_DACUTE	K(KT_DEAD,1) -#define K_DCIRCM	K(KT_DEAD,2) -#define K_DTILDE	K(KT_DEAD,3) -#define K_DDIERE	K(KT_DEAD,4) -#define K_DCEDIL	K(KT_DEAD,5) - -#define NR_DEAD		6 - -#define K_DOWN		K(KT_CUR,0) -#define K_LEFT		K(KT_CUR,1) -#define K_RIGHT		K(KT_CUR,2) -#define K_UP		K(KT_CUR,3) - -#define K_SHIFT		K(KT_SHIFT,KG_SHIFT) -#define K_CTRL		K(KT_SHIFT,KG_CTRL) -#define K_ALT		K(KT_SHIFT,KG_ALT) -#define K_ALTGR		K(KT_SHIFT,KG_ALTGR) -#define K_SHIFTL	K(KT_SHIFT,KG_SHIFTL) -#define K_SHIFTR	K(KT_SHIFT,KG_SHIFTR) -#define K_CTRLL	 	K(KT_SHIFT,KG_CTRLL) -#define K_CTRLR	 	K(KT_SHIFT,KG_CTRLR) -#define K_CAPSSHIFT	K(KT_SHIFT,KG_CAPSSHIFT) - -#define K_ASC0		K(KT_ASCII,0) -#define K_ASC1		K(KT_ASCII,1) -#define K_ASC2		K(KT_ASCII,2) -#define K_ASC3		K(KT_ASCII,3) -#define K_ASC4		K(KT_ASCII,4) -#define K_ASC5		K(KT_ASCII,5) -#define K_ASC6		K(KT_ASCII,6) -#define K_ASC7		K(KT_ASCII,7) -#define K_ASC8		K(KT_ASCII,8) -#define K_ASC9		K(KT_ASCII,9) -#define K_HEX0		K(KT_ASCII,10) -#define K_HEX1		K(KT_ASCII,11) -#define K_HEX2		K(KT_ASCII,12) -#define K_HEX3		K(KT_ASCII,13) -#define K_HEX4		K(KT_ASCII,14) -#define K_HEX5		K(KT_ASCII,15) -#define K_HEX6		K(KT_ASCII,16) -#define K_HEX7		K(KT_ASCII,17) -#define K_HEX8		K(KT_ASCII,18) -#define K_HEX9		K(KT_ASCII,19) -#define K_HEXa		K(KT_ASCII,20) -#define K_HEXb		K(KT_ASCII,21) -#define K_HEXc		K(KT_ASCII,22) -#define K_HEXd		K(KT_ASCII,23) -#define K_HEXe		K(KT_ASCII,24) -#define K_HEXf		K(KT_ASCII,25) - -#define NR_ASCII	26 - -#define K_SHIFTLOCK	K(KT_LOCK,KG_SHIFT) -#define K_CTRLLOCK	K(KT_LOCK,KG_CTRL) -#define K_ALTLOCK	K(KT_LOCK,KG_ALT) -#define K_ALTGRLOCK	K(KT_LOCK,KG_ALTGR) -#define K_SHIFTLLOCK	K(KT_LOCK,KG_SHIFTL) -#define K_SHIFTRLOCK	K(KT_LOCK,KG_SHIFTR) -#define K_CTRLLLOCK	K(KT_LOCK,KG_CTRLL) -#define K_CTRLRLOCK	K(KT_LOCK,KG_CTRLR) -#define K_CAPSSHIFTLOCK	K(KT_LOCK,KG_CAPSSHIFT) - -#define K_SHIFT_SLOCK	K(KT_SLOCK,KG_SHIFT) -#define K_CTRL_SLOCK	K(KT_SLOCK,KG_CTRL) -#define K_ALT_SLOCK	K(KT_SLOCK,KG_ALT) -#define K_ALTGR_SLOCK	K(KT_SLOCK,KG_ALTGR) -#define K_SHIFTL_SLOCK	K(KT_SLOCK,KG_SHIFTL) -#define K_SHIFTR_SLOCK	K(KT_SLOCK,KG_SHIFTR) -#define K_CTRLL_SLOCK	K(KT_SLOCK,KG_CTRLL) -#define K_CTRLR_SLOCK	K(KT_SLOCK,KG_CTRLR) -#define K_CAPSSHIFT_SLOCK	K(KT_SLOCK,KG_CAPSSHIFT) - -#define NR_LOCK		9 - -#define K_BRL_BLANK     K(KT_BRL, 0) -#define K_BRL_DOT1      K(KT_BRL, 1) -#define K_BRL_DOT2      K(KT_BRL, 2) -#define K_BRL_DOT3      K(KT_BRL, 3) -#define K_BRL_DOT4      K(KT_BRL, 4) -#define K_BRL_DOT5      K(KT_BRL, 5) -#define K_BRL_DOT6      K(KT_BRL, 6) -#define K_BRL_DOT7      K(KT_BRL, 7) -#define K_BRL_DOT8      K(KT_BRL, 8) -#define K_BRL_DOT9      K(KT_BRL, 9) -#define K_BRL_DOT10     K(KT_BRL, 10) - -#define NR_BRL		11 - -#define MAX_DIACR	256 -#endif diff --git a/include/linux/keyctl.h b/include/linux/keyctl.h deleted file mode 100644 index c9b7f4faf97..00000000000 --- a/include/linux/keyctl.h +++ /dev/null @@ -1,60 +0,0 @@ -/* keyctl.h: keyctl command IDs - * - * Copyright (C) 2004, 2008 Red Hat, Inc. All Rights Reserved. - * Written by David Howells (dhowells@redhat.com) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - */ - -#ifndef _LINUX_KEYCTL_H -#define _LINUX_KEYCTL_H - -/* special process keyring shortcut IDs */ -#define KEY_SPEC_THREAD_KEYRING		-1	/* - key ID for thread-specific keyring */ -#define KEY_SPEC_PROCESS_KEYRING	-2	/* - key ID for process-specific keyring */ -#define KEY_SPEC_SESSION_KEYRING	-3	/* - key ID for session-specific keyring */ -#define KEY_SPEC_USER_KEYRING		-4	/* - key ID for UID-specific keyring */ -#define KEY_SPEC_USER_SESSION_KEYRING	-5	/* - key ID for UID-session keyring */ -#define KEY_SPEC_GROUP_KEYRING		-6	/* - key ID for GID-specific keyring */ -#define KEY_SPEC_REQKEY_AUTH_KEY	-7	/* - key ID for assumed request_key auth key */ -#define KEY_SPEC_REQUESTOR_KEYRING	-8	/* - key ID for request_key() dest keyring */ - -/* request-key default keyrings */ -#define KEY_REQKEY_DEFL_NO_CHANGE		-1 -#define KEY_REQKEY_DEFL_DEFAULT			0 -#define KEY_REQKEY_DEFL_THREAD_KEYRING		1 -#define KEY_REQKEY_DEFL_PROCESS_KEYRING		2 -#define KEY_REQKEY_DEFL_SESSION_KEYRING		3 -#define KEY_REQKEY_DEFL_USER_KEYRING		4 -#define KEY_REQKEY_DEFL_USER_SESSION_KEYRING	5 -#define KEY_REQKEY_DEFL_GROUP_KEYRING		6 -#define KEY_REQKEY_DEFL_REQUESTOR_KEYRING	7 - -/* keyctl commands */ -#define KEYCTL_GET_KEYRING_ID		0	/* ask for a keyring's ID */ -#define KEYCTL_JOIN_SESSION_KEYRING	1	/* join or start named session keyring */ -#define KEYCTL_UPDATE			2	/* update a key */ -#define KEYCTL_REVOKE			3	/* revoke a key */ -#define KEYCTL_CHOWN			4	/* set ownership of a key */ -#define KEYCTL_SETPERM			5	/* set perms on a key */ -#define KEYCTL_DESCRIBE			6	/* describe a key */ -#define KEYCTL_CLEAR			7	/* clear contents of a keyring */ -#define KEYCTL_LINK			8	/* link a key into a keyring */ -#define KEYCTL_UNLINK			9	/* unlink a key from a keyring */ -#define KEYCTL_SEARCH			10	/* search for a key in a keyring */ -#define KEYCTL_READ			11	/* read a key or keyring's contents */ -#define KEYCTL_INSTANTIATE		12	/* instantiate a partially constructed key */ -#define KEYCTL_NEGATE			13	/* negate a partially constructed key */ -#define KEYCTL_SET_REQKEY_KEYRING	14	/* set default request-key keyring */ -#define KEYCTL_SET_TIMEOUT		15	/* set key timeout */ -#define KEYCTL_ASSUME_AUTHORITY		16	/* assume request_key() authorisation */ -#define KEYCTL_GET_SECURITY		17	/* get key security label */ -#define KEYCTL_SESSION_TO_PARENT	18	/* apply session keyring to parent process */ -#define KEYCTL_REJECT			19	/* reject a partially constructed key */ -#define KEYCTL_INSTANTIATE_IOV		20	/* instantiate a partially constructed key */ -#define KEYCTL_INVALIDATE		21	/* invalidate a key */ - -#endif /*  _LINUX_KEYCTL_H */ diff --git a/include/linux/kvm.h b/include/linux/kvm.h deleted file mode 100644 index 0a6d6ba44c8..00000000000 --- a/include/linux/kvm.h +++ /dev/null @@ -1,975 +0,0 @@ -#ifndef __LINUX_KVM_H -#define __LINUX_KVM_H - -/* - * Userspace interface for /dev/kvm - kernel based virtual machine - * - * Note: you must update KVM_API_VERSION if you change this interface. - */ - -#include <linux/types.h> -#include <linux/compiler.h> -#include <linux/ioctl.h> -#include <asm/kvm.h> - -#define KVM_API_VERSION 12 - -/* *** Deprecated interfaces *** */ - -#define KVM_TRC_SHIFT           16 - -#define KVM_TRC_ENTRYEXIT       (1 << KVM_TRC_SHIFT) -#define KVM_TRC_HANDLER         (1 << (KVM_TRC_SHIFT + 1)) - -#define KVM_TRC_VMENTRY         (KVM_TRC_ENTRYEXIT + 0x01) -#define KVM_TRC_VMEXIT          (KVM_TRC_ENTRYEXIT + 0x02) -#define KVM_TRC_PAGE_FAULT      (KVM_TRC_HANDLER + 0x01) - -#define KVM_TRC_HEAD_SIZE       12 -#define KVM_TRC_CYCLE_SIZE      8 -#define KVM_TRC_EXTRA_MAX       7 - -#define KVM_TRC_INJ_VIRQ         (KVM_TRC_HANDLER + 0x02) -#define KVM_TRC_REDELIVER_EVT    (KVM_TRC_HANDLER + 0x03) -#define KVM_TRC_PEND_INTR        (KVM_TRC_HANDLER + 0x04) -#define KVM_TRC_IO_READ          (KVM_TRC_HANDLER + 0x05) -#define KVM_TRC_IO_WRITE         (KVM_TRC_HANDLER + 0x06) -#define KVM_TRC_CR_READ          (KVM_TRC_HANDLER + 0x07) -#define KVM_TRC_CR_WRITE         (KVM_TRC_HANDLER + 0x08) -#define KVM_TRC_DR_READ          (KVM_TRC_HANDLER + 0x09) -#define KVM_TRC_DR_WRITE         (KVM_TRC_HANDLER + 0x0A) -#define KVM_TRC_MSR_READ         (KVM_TRC_HANDLER + 0x0B) -#define KVM_TRC_MSR_WRITE        (KVM_TRC_HANDLER + 0x0C) -#define KVM_TRC_CPUID            (KVM_TRC_HANDLER + 0x0D) -#define KVM_TRC_INTR             (KVM_TRC_HANDLER + 0x0E) -#define KVM_TRC_NMI              (KVM_TRC_HANDLER + 0x0F) -#define KVM_TRC_VMMCALL          (KVM_TRC_HANDLER + 0x10) -#define KVM_TRC_HLT              (KVM_TRC_HANDLER + 0x11) -#define KVM_TRC_CLTS             (KVM_TRC_HANDLER + 0x12) -#define KVM_TRC_LMSW             (KVM_TRC_HANDLER + 0x13) -#define KVM_TRC_APIC_ACCESS      (KVM_TRC_HANDLER + 0x14) -#define KVM_TRC_TDP_FAULT        (KVM_TRC_HANDLER + 0x15) -#define KVM_TRC_GTLB_WRITE       (KVM_TRC_HANDLER + 0x16) -#define KVM_TRC_STLB_WRITE       (KVM_TRC_HANDLER + 0x17) -#define KVM_TRC_STLB_INVAL       (KVM_TRC_HANDLER + 0x18) -#define KVM_TRC_PPC_INSTR        (KVM_TRC_HANDLER + 0x19) - -struct kvm_user_trace_setup { -	__u32 buf_size; -	__u32 buf_nr; -}; - -#define __KVM_DEPRECATED_MAIN_W_0x06 \ -	_IOW(KVMIO, 0x06, struct kvm_user_trace_setup) -#define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07) -#define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08) - -#define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq) - -struct kvm_breakpoint { -	__u32 enabled; -	__u32 padding; -	__u64 address; -}; - -struct kvm_debug_guest { -	__u32 enabled; -	__u32 pad; -	struct kvm_breakpoint breakpoints[4]; -	__u32 singlestep; -}; - -#define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest) - -/* *** End of deprecated interfaces *** */ - - -/* for KVM_CREATE_MEMORY_REGION */ -struct kvm_memory_region { -	__u32 slot; -	__u32 flags; -	__u64 guest_phys_addr; -	__u64 memory_size; /* bytes */ -}; - -/* for KVM_SET_USER_MEMORY_REGION */ -struct kvm_userspace_memory_region { -	__u32 slot; -	__u32 flags; -	__u64 guest_phys_addr; -	__u64 memory_size; /* bytes */ -	__u64 userspace_addr; /* start of the userspace allocated memory */ -}; - -/* - * The bit 0 ~ bit 15 of kvm_memory_region::flags are visible for userspace, - * other bits are reserved for kvm internal use which are defined in - * include/linux/kvm_host.h. - */ -#define KVM_MEM_LOG_DIRTY_PAGES	(1UL << 0) -#define KVM_MEM_READONLY	(1UL << 1) - -/* for KVM_IRQ_LINE */ -struct kvm_irq_level { -	/* -	 * ACPI gsi notion of irq. -	 * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47.. -	 * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23.. -	 */ -	union { -		__u32 irq; -		__s32 status; -	}; -	__u32 level; -}; - - -struct kvm_irqchip { -	__u32 chip_id; -	__u32 pad; -        union { -		char dummy[512];  /* reserving space */ -#ifdef __KVM_HAVE_PIT -		struct kvm_pic_state pic; -#endif -#ifdef __KVM_HAVE_IOAPIC -		struct kvm_ioapic_state ioapic; -#endif -	} chip; -}; - -/* for KVM_CREATE_PIT2 */ -struct kvm_pit_config { -	__u32 flags; -	__u32 pad[15]; -}; - -#define KVM_PIT_SPEAKER_DUMMY     1 - -#define KVM_EXIT_UNKNOWN          0 -#define KVM_EXIT_EXCEPTION        1 -#define KVM_EXIT_IO               2 -#define KVM_EXIT_HYPERCALL        3 -#define KVM_EXIT_DEBUG            4 -#define KVM_EXIT_HLT              5 -#define KVM_EXIT_MMIO             6 -#define KVM_EXIT_IRQ_WINDOW_OPEN  7 -#define KVM_EXIT_SHUTDOWN         8 -#define KVM_EXIT_FAIL_ENTRY       9 -#define KVM_EXIT_INTR             10 -#define KVM_EXIT_SET_TPR          11 -#define KVM_EXIT_TPR_ACCESS       12 -#define KVM_EXIT_S390_SIEIC       13 -#define KVM_EXIT_S390_RESET       14 -#define KVM_EXIT_DCR              15 -#define KVM_EXIT_NMI              16 -#define KVM_EXIT_INTERNAL_ERROR   17 -#define KVM_EXIT_OSI              18 -#define KVM_EXIT_PAPR_HCALL	  19 -#define KVM_EXIT_S390_UCONTROL	  20 - -/* For KVM_EXIT_INTERNAL_ERROR */ -#define KVM_INTERNAL_ERROR_EMULATION 1 -#define KVM_INTERNAL_ERROR_SIMUL_EX 2 - -/* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ -struct kvm_run { -	/* in */ -	__u8 request_interrupt_window; -	__u8 padding1[7]; - -	/* out */ -	__u32 exit_reason; -	__u8 ready_for_interrupt_injection; -	__u8 if_flag; -	__u8 padding2[2]; - -	/* in (pre_kvm_run), out (post_kvm_run) */ -	__u64 cr8; -	__u64 apic_base; - -#ifdef __KVM_S390 -	/* the processor status word for s390 */ -	__u64 psw_mask; /* psw upper half */ -	__u64 psw_addr; /* psw lower half */ -#endif -	union { -		/* KVM_EXIT_UNKNOWN */ -		struct { -			__u64 hardware_exit_reason; -		} hw; -		/* KVM_EXIT_FAIL_ENTRY */ -		struct { -			__u64 hardware_entry_failure_reason; -		} fail_entry; -		/* KVM_EXIT_EXCEPTION */ -		struct { -			__u32 exception; -			__u32 error_code; -		} ex; -		/* KVM_EXIT_IO */ -		struct { -#define KVM_EXIT_IO_IN  0 -#define KVM_EXIT_IO_OUT 1 -			__u8 direction; -			__u8 size; /* bytes */ -			__u16 port; -			__u32 count; -			__u64 data_offset; /* relative to kvm_run start */ -		} io; -		struct { -			struct kvm_debug_exit_arch arch; -		} debug; -		/* KVM_EXIT_MMIO */ -		struct { -			__u64 phys_addr; -			__u8  data[8]; -			__u32 len; -			__u8  is_write; -		} mmio; -		/* KVM_EXIT_HYPERCALL */ -		struct { -			__u64 nr; -			__u64 args[6]; -			__u64 ret; -			__u32 longmode; -			__u32 pad; -		} hypercall; -		/* KVM_EXIT_TPR_ACCESS */ -		struct { -			__u64 rip; -			__u32 is_write; -			__u32 pad; -		} tpr_access; -		/* KVM_EXIT_S390_SIEIC */ -		struct { -			__u8 icptcode; -			__u16 ipa; -			__u32 ipb; -		} s390_sieic; -		/* KVM_EXIT_S390_RESET */ -#define KVM_S390_RESET_POR       1 -#define KVM_S390_RESET_CLEAR     2 -#define KVM_S390_RESET_SUBSYSTEM 4 -#define KVM_S390_RESET_CPU_INIT  8 -#define KVM_S390_RESET_IPL       16 -		__u64 s390_reset_flags; -		/* KVM_EXIT_S390_UCONTROL */ -		struct { -			__u64 trans_exc_code; -			__u32 pgm_code; -		} s390_ucontrol; -		/* KVM_EXIT_DCR */ -		struct { -			__u32 dcrn; -			__u32 data; -			__u8  is_write; -		} dcr; -		struct { -			__u32 suberror; -			/* Available with KVM_CAP_INTERNAL_ERROR_DATA: */ -			__u32 ndata; -			__u64 data[16]; -		} internal; -		/* KVM_EXIT_OSI */ -		struct { -			__u64 gprs[32]; -		} osi; -		struct { -			__u64 nr; -			__u64 ret; -			__u64 args[9]; -		} papr_hcall; -		/* Fix the size of the union. */ -		char padding[256]; -	}; - -	/* -	 * shared registers between kvm and userspace. -	 * kvm_valid_regs specifies the register classes set by the host -	 * kvm_dirty_regs specified the register classes dirtied by userspace -	 * struct kvm_sync_regs is architecture specific, as well as the -	 * bits for kvm_valid_regs and kvm_dirty_regs -	 */ -	__u64 kvm_valid_regs; -	__u64 kvm_dirty_regs; -	union { -		struct kvm_sync_regs regs; -		char padding[1024]; -	} s; -}; - -/* for KVM_REGISTER_COALESCED_MMIO / KVM_UNREGISTER_COALESCED_MMIO */ - -struct kvm_coalesced_mmio_zone { -	__u64 addr; -	__u32 size; -	__u32 pad; -}; - -struct kvm_coalesced_mmio { -	__u64 phys_addr; -	__u32 len; -	__u32 pad; -	__u8  data[8]; -}; - -struct kvm_coalesced_mmio_ring { -	__u32 first, last; -	struct kvm_coalesced_mmio coalesced_mmio[0]; -}; - -#define KVM_COALESCED_MMIO_MAX \ -	((PAGE_SIZE - sizeof(struct kvm_coalesced_mmio_ring)) / \ -	 sizeof(struct kvm_coalesced_mmio)) - -/* for KVM_TRANSLATE */ -struct kvm_translation { -	/* in */ -	__u64 linear_address; - -	/* out */ -	__u64 physical_address; -	__u8  valid; -	__u8  writeable; -	__u8  usermode; -	__u8  pad[5]; -}; - -/* for KVM_INTERRUPT */ -struct kvm_interrupt { -	/* in */ -	__u32 irq; -}; - -/* for KVM_GET_DIRTY_LOG */ -struct kvm_dirty_log { -	__u32 slot; -	__u32 padding1; -	union { -		void __user *dirty_bitmap; /* one bit per page */ -		__u64 padding2; -	}; -}; - -/* for KVM_SET_SIGNAL_MASK */ -struct kvm_signal_mask { -	__u32 len; -	__u8  sigset[0]; -}; - -/* for KVM_TPR_ACCESS_REPORTING */ -struct kvm_tpr_access_ctl { -	__u32 enabled; -	__u32 flags; -	__u32 reserved[8]; -}; - -/* for KVM_SET_VAPIC_ADDR */ -struct kvm_vapic_addr { -	__u64 vapic_addr; -}; - -/* for KVM_SET_MPSTATE */ - -#define KVM_MP_STATE_RUNNABLE          0 -#define KVM_MP_STATE_UNINITIALIZED     1 -#define KVM_MP_STATE_INIT_RECEIVED     2 -#define KVM_MP_STATE_HALTED            3 -#define KVM_MP_STATE_SIPI_RECEIVED     4 - -struct kvm_mp_state { -	__u32 mp_state; -}; - -struct kvm_s390_psw { -	__u64 mask; -	__u64 addr; -}; - -/* valid values for type in kvm_s390_interrupt */ -#define KVM_S390_SIGP_STOP		0xfffe0000u -#define KVM_S390_PROGRAM_INT		0xfffe0001u -#define KVM_S390_SIGP_SET_PREFIX	0xfffe0002u -#define KVM_S390_RESTART		0xfffe0003u -#define KVM_S390_INT_VIRTIO		0xffff2603u -#define KVM_S390_INT_SERVICE		0xffff2401u -#define KVM_S390_INT_EMERGENCY		0xffff1201u -#define KVM_S390_INT_EXTERNAL_CALL	0xffff1202u - -struct kvm_s390_interrupt { -	__u32 type; -	__u32 parm; -	__u64 parm64; -}; - -/* for KVM_SET_GUEST_DEBUG */ - -#define KVM_GUESTDBG_ENABLE		0x00000001 -#define KVM_GUESTDBG_SINGLESTEP		0x00000002 - -struct kvm_guest_debug { -	__u32 control; -	__u32 pad; -	struct kvm_guest_debug_arch arch; -}; - -enum { -	kvm_ioeventfd_flag_nr_datamatch, -	kvm_ioeventfd_flag_nr_pio, -	kvm_ioeventfd_flag_nr_deassign, -	kvm_ioeventfd_flag_nr_max, -}; - -#define KVM_IOEVENTFD_FLAG_DATAMATCH (1 << kvm_ioeventfd_flag_nr_datamatch) -#define KVM_IOEVENTFD_FLAG_PIO       (1 << kvm_ioeventfd_flag_nr_pio) -#define KVM_IOEVENTFD_FLAG_DEASSIGN  (1 << kvm_ioeventfd_flag_nr_deassign) - -#define KVM_IOEVENTFD_VALID_FLAG_MASK  ((1 << kvm_ioeventfd_flag_nr_max) - 1) - -struct kvm_ioeventfd { -	__u64 datamatch; -	__u64 addr;        /* legal pio/mmio address */ -	__u32 len;         /* 1, 2, 4, or 8 bytes    */ -	__s32 fd; -	__u32 flags; -	__u8  pad[36]; -}; - -/* for KVM_ENABLE_CAP */ -struct kvm_enable_cap { -	/* in */ -	__u32 cap; -	__u32 flags; -	__u64 args[4]; -	__u8  pad[64]; -}; - -/* for KVM_PPC_GET_PVINFO */ -struct kvm_ppc_pvinfo { -	/* out */ -	__u32 flags; -	__u32 hcall[4]; -	__u8  pad[108]; -}; - -/* for KVM_PPC_GET_SMMU_INFO */ -#define KVM_PPC_PAGE_SIZES_MAX_SZ	8 - -struct kvm_ppc_one_page_size { -	__u32 page_shift;	/* Page shift (or 0) */ -	__u32 pte_enc;		/* Encoding in the HPTE (>>12) */ -}; - -struct kvm_ppc_one_seg_page_size { -	__u32 page_shift;	/* Base page shift of segment (or 0) */ -	__u32 slb_enc;		/* SLB encoding for BookS */ -	struct kvm_ppc_one_page_size enc[KVM_PPC_PAGE_SIZES_MAX_SZ]; -}; - -#define KVM_PPC_PAGE_SIZES_REAL		0x00000001 -#define KVM_PPC_1T_SEGMENTS		0x00000002 - -struct kvm_ppc_smmu_info { -	__u64 flags; -	__u32 slb_size; -	__u32 pad; -	struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; -}; - -#define KVMIO 0xAE - -/* machine type bits, to be used as argument to KVM_CREATE_VM */ -#define KVM_VM_S390_UCONTROL	1 - -#define KVM_S390_SIE_PAGE_OFFSET 1 - -/* - * ioctls for /dev/kvm fds: - */ -#define KVM_GET_API_VERSION       _IO(KVMIO,   0x00) -#define KVM_CREATE_VM             _IO(KVMIO,   0x01) /* returns a VM fd */ -#define KVM_GET_MSR_INDEX_LIST    _IOWR(KVMIO, 0x02, struct kvm_msr_list) - -#define KVM_S390_ENABLE_SIE       _IO(KVMIO,   0x06) -/* - * Check if a kvm extension is available.  Argument is extension number, - * return is 1 (yes) or 0 (no, sorry). - */ -#define KVM_CHECK_EXTENSION       _IO(KVMIO,   0x03) -/* - * Get size for mmap(vcpu_fd) - */ -#define KVM_GET_VCPU_MMAP_SIZE    _IO(KVMIO,   0x04) /* in bytes */ -#define KVM_GET_SUPPORTED_CPUID   _IOWR(KVMIO, 0x05, struct kvm_cpuid2) -#define KVM_TRACE_ENABLE          __KVM_DEPRECATED_MAIN_W_0x06 -#define KVM_TRACE_PAUSE           __KVM_DEPRECATED_MAIN_0x07 -#define KVM_TRACE_DISABLE         __KVM_DEPRECATED_MAIN_0x08 - -/* - * Extension capability list. - */ -#define KVM_CAP_IRQCHIP	  0 -#define KVM_CAP_HLT	  1 -#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2 -#define KVM_CAP_USER_MEMORY 3 -#define KVM_CAP_SET_TSS_ADDR 4 -#define KVM_CAP_VAPIC 6 -#define KVM_CAP_EXT_CPUID 7 -#define KVM_CAP_CLOCKSOURCE 8 -#define KVM_CAP_NR_VCPUS 9       /* returns recommended max vcpus per vm */ -#define KVM_CAP_NR_MEMSLOTS 10   /* returns max memory slots per vm */ -#define KVM_CAP_PIT 11 -#define KVM_CAP_NOP_IO_DELAY 12 -#define KVM_CAP_PV_MMU 13 -#define KVM_CAP_MP_STATE 14 -#define KVM_CAP_COALESCED_MMIO 15 -#define KVM_CAP_SYNC_MMU 16  /* Changes to host mmap are reflected in guest */ -#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT -#define KVM_CAP_DEVICE_ASSIGNMENT 17 -#endif -#define KVM_CAP_IOMMU 18 -#ifdef __KVM_HAVE_MSI -#define KVM_CAP_DEVICE_MSI 20 -#endif -/* Bug in KVM_SET_USER_MEMORY_REGION fixed: */ -#define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21 -#ifdef __KVM_HAVE_USER_NMI -#define KVM_CAP_USER_NMI 22 -#endif -#ifdef __KVM_HAVE_GUEST_DEBUG -#define KVM_CAP_SET_GUEST_DEBUG 23 -#endif -#ifdef __KVM_HAVE_PIT -#define KVM_CAP_REINJECT_CONTROL 24 -#endif -#ifdef __KVM_HAVE_IOAPIC -#define KVM_CAP_IRQ_ROUTING 25 -#endif -#define KVM_CAP_IRQ_INJECT_STATUS 26 -#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT -#define KVM_CAP_DEVICE_DEASSIGNMENT 27 -#endif -#ifdef __KVM_HAVE_MSIX -#define KVM_CAP_DEVICE_MSIX 28 -#endif -#define KVM_CAP_ASSIGN_DEV_IRQ 29 -/* Another bug in KVM_SET_USER_MEMORY_REGION fixed: */ -#define KVM_CAP_JOIN_MEMORY_REGIONS_WORKS 30 -#ifdef __KVM_HAVE_MCE -#define KVM_CAP_MCE 31 -#endif -#define KVM_CAP_IRQFD 32 -#ifdef __KVM_HAVE_PIT -#define KVM_CAP_PIT2 33 -#endif -#define KVM_CAP_SET_BOOT_CPU_ID 34 -#ifdef __KVM_HAVE_PIT_STATE2 -#define KVM_CAP_PIT_STATE2 35 -#endif -#define KVM_CAP_IOEVENTFD 36 -#define KVM_CAP_SET_IDENTITY_MAP_ADDR 37 -#ifdef __KVM_HAVE_XEN_HVM -#define KVM_CAP_XEN_HVM 38 -#endif -#define KVM_CAP_ADJUST_CLOCK 39 -#define KVM_CAP_INTERNAL_ERROR_DATA 40 -#ifdef __KVM_HAVE_VCPU_EVENTS -#define KVM_CAP_VCPU_EVENTS 41 -#endif -#define KVM_CAP_S390_PSW 42 -#define KVM_CAP_PPC_SEGSTATE 43 -#define KVM_CAP_HYPERV 44 -#define KVM_CAP_HYPERV_VAPIC 45 -#define KVM_CAP_HYPERV_SPIN 46 -#define KVM_CAP_PCI_SEGMENT 47 -#define KVM_CAP_PPC_PAIRED_SINGLES 48 -#define KVM_CAP_INTR_SHADOW 49 -#ifdef __KVM_HAVE_DEBUGREGS -#define KVM_CAP_DEBUGREGS 50 -#endif -#define KVM_CAP_X86_ROBUST_SINGLESTEP 51 -#define KVM_CAP_PPC_OSI 52 -#define KVM_CAP_PPC_UNSET_IRQ 53 -#define KVM_CAP_ENABLE_CAP 54 -#ifdef __KVM_HAVE_XSAVE -#define KVM_CAP_XSAVE 55 -#endif -#ifdef __KVM_HAVE_XCRS -#define KVM_CAP_XCRS 56 -#endif -#define KVM_CAP_PPC_GET_PVINFO 57 -#define KVM_CAP_PPC_IRQ_LEVEL 58 -#define KVM_CAP_ASYNC_PF 59 -#define KVM_CAP_TSC_CONTROL 60 -#define KVM_CAP_GET_TSC_KHZ 61 -#define KVM_CAP_PPC_BOOKE_SREGS 62 -#define KVM_CAP_SPAPR_TCE 63 -#define KVM_CAP_PPC_SMT 64 -#define KVM_CAP_PPC_RMA	65 -#define KVM_CAP_MAX_VCPUS 66       /* returns max vcpus per vm */ -#define KVM_CAP_PPC_HIOR 67 -#define KVM_CAP_PPC_PAPR 68 -#define KVM_CAP_SW_TLB 69 -#define KVM_CAP_ONE_REG 70 -#define KVM_CAP_S390_GMAP 71 -#define KVM_CAP_TSC_DEADLINE_TIMER 72 -#define KVM_CAP_S390_UCONTROL 73 -#define KVM_CAP_SYNC_REGS 74 -#define KVM_CAP_PCI_2_3 75 -#define KVM_CAP_KVMCLOCK_CTRL 76 -#define KVM_CAP_SIGNAL_MSI 77 -#define KVM_CAP_PPC_GET_SMMU_INFO 78 -#define KVM_CAP_S390_COW 79 -#define KVM_CAP_PPC_ALLOC_HTAB 80 -#ifdef __KVM_HAVE_READONLY_MEM -#define KVM_CAP_READONLY_MEM 81 -#endif -#define KVM_CAP_IRQFD_RESAMPLE 82 - -#ifdef KVM_CAP_IRQ_ROUTING - -struct kvm_irq_routing_irqchip { -	__u32 irqchip; -	__u32 pin; -}; - -struct kvm_irq_routing_msi { -	__u32 address_lo; -	__u32 address_hi; -	__u32 data; -	__u32 pad; -}; - -/* gsi routing entry types */ -#define KVM_IRQ_ROUTING_IRQCHIP 1 -#define KVM_IRQ_ROUTING_MSI 2 - -struct kvm_irq_routing_entry { -	__u32 gsi; -	__u32 type; -	__u32 flags; -	__u32 pad; -	union { -		struct kvm_irq_routing_irqchip irqchip; -		struct kvm_irq_routing_msi msi; -		__u32 pad[8]; -	} u; -}; - -struct kvm_irq_routing { -	__u32 nr; -	__u32 flags; -	struct kvm_irq_routing_entry entries[0]; -}; - -#endif - -#ifdef KVM_CAP_MCE -/* x86 MCE */ -struct kvm_x86_mce { -	__u64 status; -	__u64 addr; -	__u64 misc; -	__u64 mcg_status; -	__u8 bank; -	__u8 pad1[7]; -	__u64 pad2[3]; -}; -#endif - -#ifdef KVM_CAP_XEN_HVM -struct kvm_xen_hvm_config { -	__u32 flags; -	__u32 msr; -	__u64 blob_addr_32; -	__u64 blob_addr_64; -	__u8 blob_size_32; -	__u8 blob_size_64; -	__u8 pad2[30]; -}; -#endif - -#define KVM_IRQFD_FLAG_DEASSIGN (1 << 0) -/* - * Available with KVM_CAP_IRQFD_RESAMPLE - * - * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies - * the irqfd to operate in resampling mode for level triggered interrupt - * emlation.  See Documentation/virtual/kvm/api.txt. - */ -#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1) - -struct kvm_irqfd { -	__u32 fd; -	__u32 gsi; -	__u32 flags; -	__u32 resamplefd; -	__u8  pad[16]; -}; - -struct kvm_clock_data { -	__u64 clock; -	__u32 flags; -	__u32 pad[9]; -}; - -#define KVM_MMU_FSL_BOOKE_NOHV		0 -#define KVM_MMU_FSL_BOOKE_HV		1 - -struct kvm_config_tlb { -	__u64 params; -	__u64 array; -	__u32 mmu_type; -	__u32 array_len; -}; - -struct kvm_dirty_tlb { -	__u64 bitmap; -	__u32 num_dirty; -}; - -/* Available with KVM_CAP_ONE_REG */ - -#define KVM_REG_ARCH_MASK	0xff00000000000000ULL -#define KVM_REG_GENERIC		0x0000000000000000ULL - -/* - * Architecture specific registers are to be defined in arch headers and - * ORed with the arch identifier. - */ -#define KVM_REG_PPC		0x1000000000000000ULL -#define KVM_REG_X86		0x2000000000000000ULL -#define KVM_REG_IA64		0x3000000000000000ULL -#define KVM_REG_ARM		0x4000000000000000ULL -#define KVM_REG_S390		0x5000000000000000ULL - -#define KVM_REG_SIZE_SHIFT	52 -#define KVM_REG_SIZE_MASK	0x00f0000000000000ULL -#define KVM_REG_SIZE_U8		0x0000000000000000ULL -#define KVM_REG_SIZE_U16	0x0010000000000000ULL -#define KVM_REG_SIZE_U32	0x0020000000000000ULL -#define KVM_REG_SIZE_U64	0x0030000000000000ULL -#define KVM_REG_SIZE_U128	0x0040000000000000ULL -#define KVM_REG_SIZE_U256	0x0050000000000000ULL -#define KVM_REG_SIZE_U512	0x0060000000000000ULL -#define KVM_REG_SIZE_U1024	0x0070000000000000ULL - -struct kvm_one_reg { -	__u64 id; -	__u64 addr; -}; - -struct kvm_msi { -	__u32 address_lo; -	__u32 address_hi; -	__u32 data; -	__u32 flags; -	__u8  pad[16]; -}; - -/* - * ioctls for VM fds - */ -#define KVM_SET_MEMORY_REGION     _IOW(KVMIO,  0x40, struct kvm_memory_region) -/* - * KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns - * a vcpu fd. - */ -#define KVM_CREATE_VCPU           _IO(KVMIO,   0x41) -#define KVM_GET_DIRTY_LOG         _IOW(KVMIO,  0x42, struct kvm_dirty_log) -/* KVM_SET_MEMORY_ALIAS is obsolete: */ -#define KVM_SET_MEMORY_ALIAS      _IOW(KVMIO,  0x43, struct kvm_memory_alias) -#define KVM_SET_NR_MMU_PAGES      _IO(KVMIO,   0x44) -#define KVM_GET_NR_MMU_PAGES      _IO(KVMIO,   0x45) -#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, \ -					struct kvm_userspace_memory_region) -#define KVM_SET_TSS_ADDR          _IO(KVMIO,   0x47) -#define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO,  0x48, __u64) - -/* enable ucontrol for s390 */ -struct kvm_s390_ucas_mapping { -	__u64 user_addr; -	__u64 vcpu_addr; -	__u64 length; -}; -#define KVM_S390_UCAS_MAP        _IOW(KVMIO, 0x50, struct kvm_s390_ucas_mapping) -#define KVM_S390_UCAS_UNMAP      _IOW(KVMIO, 0x51, struct kvm_s390_ucas_mapping) -#define KVM_S390_VCPU_FAULT	 _IOW(KVMIO, 0x52, unsigned long) - -/* Device model IOC */ -#define KVM_CREATE_IRQCHIP        _IO(KVMIO,   0x60) -#define KVM_IRQ_LINE              _IOW(KVMIO,  0x61, struct kvm_irq_level) -#define KVM_GET_IRQCHIP           _IOWR(KVMIO, 0x62, struct kvm_irqchip) -#define KVM_SET_IRQCHIP           _IOR(KVMIO,  0x63, struct kvm_irqchip) -#define KVM_CREATE_PIT            _IO(KVMIO,   0x64) -#define KVM_GET_PIT               _IOWR(KVMIO, 0x65, struct kvm_pit_state) -#define KVM_SET_PIT               _IOR(KVMIO,  0x66, struct kvm_pit_state) -#define KVM_IRQ_LINE_STATUS       _IOWR(KVMIO, 0x67, struct kvm_irq_level) -#define KVM_REGISTER_COALESCED_MMIO \ -			_IOW(KVMIO,  0x67, struct kvm_coalesced_mmio_zone) -#define KVM_UNREGISTER_COALESCED_MMIO \ -			_IOW(KVMIO,  0x68, struct kvm_coalesced_mmio_zone) -#define KVM_ASSIGN_PCI_DEVICE     _IOR(KVMIO,  0x69, \ -				       struct kvm_assigned_pci_dev) -#define KVM_SET_GSI_ROUTING       _IOW(KVMIO,  0x6a, struct kvm_irq_routing) -/* deprecated, replaced by KVM_ASSIGN_DEV_IRQ */ -#define KVM_ASSIGN_IRQ            __KVM_DEPRECATED_VM_R_0x70 -#define KVM_ASSIGN_DEV_IRQ        _IOW(KVMIO,  0x70, struct kvm_assigned_irq) -#define KVM_REINJECT_CONTROL      _IO(KVMIO,   0x71) -#define KVM_DEASSIGN_PCI_DEVICE   _IOW(KVMIO,  0x72, \ -				       struct kvm_assigned_pci_dev) -#define KVM_ASSIGN_SET_MSIX_NR    _IOW(KVMIO,  0x73, \ -				       struct kvm_assigned_msix_nr) -#define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO,  0x74, \ -				       struct kvm_assigned_msix_entry) -#define KVM_DEASSIGN_DEV_IRQ      _IOW(KVMIO,  0x75, struct kvm_assigned_irq) -#define KVM_IRQFD                 _IOW(KVMIO,  0x76, struct kvm_irqfd) -#define KVM_CREATE_PIT2		  _IOW(KVMIO,  0x77, struct kvm_pit_config) -#define KVM_SET_BOOT_CPU_ID       _IO(KVMIO,   0x78) -#define KVM_IOEVENTFD             _IOW(KVMIO,  0x79, struct kvm_ioeventfd) -#define KVM_XEN_HVM_CONFIG        _IOW(KVMIO,  0x7a, struct kvm_xen_hvm_config) -#define KVM_SET_CLOCK             _IOW(KVMIO,  0x7b, struct kvm_clock_data) -#define KVM_GET_CLOCK             _IOR(KVMIO,  0x7c, struct kvm_clock_data) -/* Available with KVM_CAP_PIT_STATE2 */ -#define KVM_GET_PIT2              _IOR(KVMIO,  0x9f, struct kvm_pit_state2) -#define KVM_SET_PIT2              _IOW(KVMIO,  0xa0, struct kvm_pit_state2) -/* Available with KVM_CAP_PPC_GET_PVINFO */ -#define KVM_PPC_GET_PVINFO	  _IOW(KVMIO,  0xa1, struct kvm_ppc_pvinfo) -/* Available with KVM_CAP_TSC_CONTROL */ -#define KVM_SET_TSC_KHZ           _IO(KVMIO,  0xa2) -#define KVM_GET_TSC_KHZ           _IO(KVMIO,  0xa3) -/* Available with KVM_CAP_PCI_2_3 */ -#define KVM_ASSIGN_SET_INTX_MASK  _IOW(KVMIO,  0xa4, \ -				       struct kvm_assigned_pci_dev) -/* Available with KVM_CAP_SIGNAL_MSI */ -#define KVM_SIGNAL_MSI            _IOW(KVMIO,  0xa5, struct kvm_msi) -/* Available with KVM_CAP_PPC_GET_SMMU_INFO */ -#define KVM_PPC_GET_SMMU_INFO	  _IOR(KVMIO,  0xa6, struct kvm_ppc_smmu_info) -/* Available with KVM_CAP_PPC_ALLOC_HTAB */ -#define KVM_PPC_ALLOCATE_HTAB	  _IOWR(KVMIO, 0xa7, __u32) - -/* - * ioctls for vcpu fds - */ -#define KVM_RUN                   _IO(KVMIO,   0x80) -#define KVM_GET_REGS              _IOR(KVMIO,  0x81, struct kvm_regs) -#define KVM_SET_REGS              _IOW(KVMIO,  0x82, struct kvm_regs) -#define KVM_GET_SREGS             _IOR(KVMIO,  0x83, struct kvm_sregs) -#define KVM_SET_SREGS             _IOW(KVMIO,  0x84, struct kvm_sregs) -#define KVM_TRANSLATE             _IOWR(KVMIO, 0x85, struct kvm_translation) -#define KVM_INTERRUPT             _IOW(KVMIO,  0x86, struct kvm_interrupt) -/* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */ -#define KVM_DEBUG_GUEST           __KVM_DEPRECATED_VCPU_W_0x87 -#define KVM_GET_MSRS              _IOWR(KVMIO, 0x88, struct kvm_msrs) -#define KVM_SET_MSRS              _IOW(KVMIO,  0x89, struct kvm_msrs) -#define KVM_SET_CPUID             _IOW(KVMIO,  0x8a, struct kvm_cpuid) -#define KVM_SET_SIGNAL_MASK       _IOW(KVMIO,  0x8b, struct kvm_signal_mask) -#define KVM_GET_FPU               _IOR(KVMIO,  0x8c, struct kvm_fpu) -#define KVM_SET_FPU               _IOW(KVMIO,  0x8d, struct kvm_fpu) -#define KVM_GET_LAPIC             _IOR(KVMIO,  0x8e, struct kvm_lapic_state) -#define KVM_SET_LAPIC             _IOW(KVMIO,  0x8f, struct kvm_lapic_state) -#define KVM_SET_CPUID2            _IOW(KVMIO,  0x90, struct kvm_cpuid2) -#define KVM_GET_CPUID2            _IOWR(KVMIO, 0x91, struct kvm_cpuid2) -/* Available with KVM_CAP_VAPIC */ -#define KVM_TPR_ACCESS_REPORTING  _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl) -/* Available with KVM_CAP_VAPIC */ -#define KVM_SET_VAPIC_ADDR        _IOW(KVMIO,  0x93, struct kvm_vapic_addr) -/* valid for virtual machine (for floating interrupt)_and_ vcpu */ -#define KVM_S390_INTERRUPT        _IOW(KVMIO,  0x94, struct kvm_s390_interrupt) -/* store status for s390 */ -#define KVM_S390_STORE_STATUS_NOADDR    (-1ul) -#define KVM_S390_STORE_STATUS_PREFIXED  (-2ul) -#define KVM_S390_STORE_STATUS	  _IOW(KVMIO,  0x95, unsigned long) -/* initial ipl psw for s390 */ -#define KVM_S390_SET_INITIAL_PSW  _IOW(KVMIO,  0x96, struct kvm_s390_psw) -/* initial reset for s390 */ -#define KVM_S390_INITIAL_RESET    _IO(KVMIO,   0x97) -#define KVM_GET_MP_STATE          _IOR(KVMIO,  0x98, struct kvm_mp_state) -#define KVM_SET_MP_STATE          _IOW(KVMIO,  0x99, struct kvm_mp_state) -/* Available with KVM_CAP_NMI */ -#define KVM_NMI                   _IO(KVMIO,   0x9a) -/* Available with KVM_CAP_SET_GUEST_DEBUG */ -#define KVM_SET_GUEST_DEBUG       _IOW(KVMIO,  0x9b, struct kvm_guest_debug) -/* MCE for x86 */ -#define KVM_X86_SETUP_MCE         _IOW(KVMIO,  0x9c, __u64) -#define KVM_X86_GET_MCE_CAP_SUPPORTED _IOR(KVMIO,  0x9d, __u64) -#define KVM_X86_SET_MCE           _IOW(KVMIO,  0x9e, struct kvm_x86_mce) -/* IA64 stack access */ -#define KVM_IA64_VCPU_GET_STACK   _IOR(KVMIO,  0x9a, void *) -#define KVM_IA64_VCPU_SET_STACK   _IOW(KVMIO,  0x9b, void *) -/* Available with KVM_CAP_VCPU_EVENTS */ -#define KVM_GET_VCPU_EVENTS       _IOR(KVMIO,  0x9f, struct kvm_vcpu_events) -#define KVM_SET_VCPU_EVENTS       _IOW(KVMIO,  0xa0, struct kvm_vcpu_events) -/* Available with KVM_CAP_DEBUGREGS */ -#define KVM_GET_DEBUGREGS         _IOR(KVMIO,  0xa1, struct kvm_debugregs) -#define KVM_SET_DEBUGREGS         _IOW(KVMIO,  0xa2, struct kvm_debugregs) -#define KVM_ENABLE_CAP            _IOW(KVMIO,  0xa3, struct kvm_enable_cap) -/* Available with KVM_CAP_XSAVE */ -#define KVM_GET_XSAVE		  _IOR(KVMIO,  0xa4, struct kvm_xsave) -#define KVM_SET_XSAVE		  _IOW(KVMIO,  0xa5, struct kvm_xsave) -/* Available with KVM_CAP_XCRS */ -#define KVM_GET_XCRS		  _IOR(KVMIO,  0xa6, struct kvm_xcrs) -#define KVM_SET_XCRS		  _IOW(KVMIO,  0xa7, struct kvm_xcrs) -#define KVM_CREATE_SPAPR_TCE	  _IOW(KVMIO,  0xa8, struct kvm_create_spapr_tce) -/* Available with KVM_CAP_RMA */ -#define KVM_ALLOCATE_RMA	  _IOR(KVMIO,  0xa9, struct kvm_allocate_rma) -/* Available with KVM_CAP_SW_TLB */ -#define KVM_DIRTY_TLB		  _IOW(KVMIO,  0xaa, struct kvm_dirty_tlb) -/* Available with KVM_CAP_ONE_REG */ -#define KVM_GET_ONE_REG		  _IOW(KVMIO,  0xab, struct kvm_one_reg) -#define KVM_SET_ONE_REG		  _IOW(KVMIO,  0xac, struct kvm_one_reg) -/* VM is being stopped by host */ -#define KVM_KVMCLOCK_CTRL	  _IO(KVMIO,   0xad) - -#define KVM_DEV_ASSIGN_ENABLE_IOMMU	(1 << 0) -#define KVM_DEV_ASSIGN_PCI_2_3		(1 << 1) -#define KVM_DEV_ASSIGN_MASK_INTX	(1 << 2) - -struct kvm_assigned_pci_dev { -	__u32 assigned_dev_id; -	__u32 busnr; -	__u32 devfn; -	__u32 flags; -	__u32 segnr; -	union { -		__u32 reserved[11]; -	}; -}; - -#define KVM_DEV_IRQ_HOST_INTX    (1 << 0) -#define KVM_DEV_IRQ_HOST_MSI     (1 << 1) -#define KVM_DEV_IRQ_HOST_MSIX    (1 << 2) - -#define KVM_DEV_IRQ_GUEST_INTX   (1 << 8) -#define KVM_DEV_IRQ_GUEST_MSI    (1 << 9) -#define KVM_DEV_IRQ_GUEST_MSIX   (1 << 10) - -#define KVM_DEV_IRQ_HOST_MASK	 0x00ff -#define KVM_DEV_IRQ_GUEST_MASK   0xff00 - -struct kvm_assigned_irq { -	__u32 assigned_dev_id; -	__u32 host_irq; /* ignored (legacy field) */ -	__u32 guest_irq; -	__u32 flags; -	union { -		__u32 reserved[12]; -	}; -}; - -struct kvm_assigned_msix_nr { -	__u32 assigned_dev_id; -	__u16 entry_nr; -	__u16 padding; -}; - -#define KVM_MAX_MSIX_PER_DEV		256 -struct kvm_assigned_msix_entry { -	__u32 assigned_dev_id; -	__u32 gsi; -	__u16 entry; /* The index of entry in the MSI-X table */ -	__u16 padding[3]; -}; - -#endif /* __LINUX_KVM_H */ diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h index ff476ddaf31..00a97bb905d 100644 --- a/include/linux/kvm_para.h +++ b/include/linux/kvm_para.h @@ -1,31 +1,8 @@  #ifndef __LINUX_KVM_PARA_H  #define __LINUX_KVM_PARA_H -/* - * This header file provides a method for making a hypercall to the host - * Architectures should define: - * - kvm_hypercall0, kvm_hypercall1... - * - kvm_arch_para_features - * - kvm_para_available - */ +#include <uapi/linux/kvm_para.h> -/* Return values for hypercalls */ -#define KVM_ENOSYS		1000 -#define KVM_EFAULT		EFAULT -#define KVM_E2BIG		E2BIG -#define KVM_EPERM		EPERM - -#define KVM_HC_VAPIC_POLL_IRQ		1 -#define KVM_HC_MMU_OP			2 -#define KVM_HC_FEATURES			3 -#define KVM_HC_PPC_MAP_MAGIC_PAGE	4 - -/* - * hypercalls use architecture specific - */ -#include <asm/kvm_para.h> - -#ifdef __KERNEL__  static inline int kvm_para_has_feature(unsigned int feature)  { @@ -33,5 +10,4 @@ static inline int kvm_para_has_feature(unsigned int feature)  		return 1;  	return 0;  } -#endif /* __KERNEL__ */  #endif /* __LINUX_KVM_PARA_H */ diff --git a/include/linux/l2tp.h b/include/linux/l2tp.h index 7eab668f60f..bffdb962f1a 100644 --- a/include/linux/l2tp.h +++ b/include/linux/l2tp.h @@ -3,181 +3,11 @@   *   * Author: James Chapman <jchapman@katalix.com>   */ -  #ifndef _LINUX_L2TP_H_  #define _LINUX_L2TP_H_ -#include <linux/types.h> -#include <linux/socket.h> -#ifdef __KERNEL__  #include <linux/in.h>  #include <linux/in6.h> -#else -#include <netinet/in.h> -#endif - -#define IPPROTO_L2TP		115 - -/** - * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets - * @l2tp_family:  address family number AF_L2TPIP. - * @l2tp_addr:    protocol specific address information - * @l2tp_conn_id: connection id of tunnel - */ -#define __SOCK_SIZE__	16		/* sizeof(struct sockaddr)	*/ -struct sockaddr_l2tpip { -	/* The first fields must match struct sockaddr_in */ -	__kernel_sa_family_t l2tp_family; /* AF_INET */ -	__be16		l2tp_unused;	/* INET port number (unused) */ -	struct in_addr	l2tp_addr;	/* Internet address */ - -	__u32		l2tp_conn_id;	/* Connection ID of tunnel */ - -	/* Pad to size of `struct sockaddr'. */ -	unsigned char	__pad[sizeof(struct sockaddr) - -			      sizeof(__kernel_sa_family_t) - -			      sizeof(__be16) - sizeof(struct in_addr) - -			      sizeof(__u32)]; -}; - -/** - * struct sockaddr_l2tpip6 - the sockaddr structure for L2TP-over-IPv6 sockets - * @l2tp_family:  address family number AF_L2TPIP. - * @l2tp_addr:    protocol specific address information - * @l2tp_conn_id: connection id of tunnel - */ -struct sockaddr_l2tpip6 { -	/* The first fields must match struct sockaddr_in6 */ -	__kernel_sa_family_t l2tp_family; /* AF_INET6 */ -	__be16		l2tp_unused;	/* INET port number (unused) */ -	__be32		l2tp_flowinfo;	/* IPv6 flow information */ -	struct in6_addr	l2tp_addr;	/* IPv6 address */ -	__u32		l2tp_scope_id;	/* scope id (new in RFC2553) */ -	__u32		l2tp_conn_id;	/* Connection ID of tunnel */ -}; - -/***************************************************************************** - *  NETLINK_GENERIC netlink family. - *****************************************************************************/ - -/* - * Commands. - * Valid TLVs of each command are:- - * TUNNEL_CREATE	- CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid - * TUNNEL_DELETE	- CONN_ID - * TUNNEL_MODIFY	- CONN_ID, udpcsum - * TUNNEL_GETSTATS	- CONN_ID, (stats) - * TUNNEL_GET		- CONN_ID, (...) - * SESSION_CREATE	- SESSION_ID, PW_TYPE, offset, data_seq, cookie, peer_cookie, offset, l2spec - * SESSION_DELETE	- SESSION_ID - * SESSION_MODIFY	- SESSION_ID, data_seq - * SESSION_GET		- SESSION_ID, (...) - * SESSION_GETSTATS	- SESSION_ID, (stats) - * - */ -enum { -	L2TP_CMD_NOOP, -	L2TP_CMD_TUNNEL_CREATE, -	L2TP_CMD_TUNNEL_DELETE, -	L2TP_CMD_TUNNEL_MODIFY, -	L2TP_CMD_TUNNEL_GET, -	L2TP_CMD_SESSION_CREATE, -	L2TP_CMD_SESSION_DELETE, -	L2TP_CMD_SESSION_MODIFY, -	L2TP_CMD_SESSION_GET, -	__L2TP_CMD_MAX, -}; - -#define L2TP_CMD_MAX			(__L2TP_CMD_MAX - 1) - -/* - * ATTR types defined for L2TP - */ -enum { -	L2TP_ATTR_NONE,			/* no data */ -	L2TP_ATTR_PW_TYPE,		/* u16, enum l2tp_pwtype */ -	L2TP_ATTR_ENCAP_TYPE,		/* u16, enum l2tp_encap_type */ -	L2TP_ATTR_OFFSET,		/* u16 */ -	L2TP_ATTR_DATA_SEQ,		/* u16 */ -	L2TP_ATTR_L2SPEC_TYPE,		/* u8, enum l2tp_l2spec_type */ -	L2TP_ATTR_L2SPEC_LEN,		/* u8, enum l2tp_l2spec_type */ -	L2TP_ATTR_PROTO_VERSION,	/* u8 */ -	L2TP_ATTR_IFNAME,		/* string */ -	L2TP_ATTR_CONN_ID,		/* u32 */ -	L2TP_ATTR_PEER_CONN_ID,		/* u32 */ -	L2TP_ATTR_SESSION_ID,		/* u32 */ -	L2TP_ATTR_PEER_SESSION_ID,	/* u32 */ -	L2TP_ATTR_UDP_CSUM,		/* u8 */ -	L2TP_ATTR_VLAN_ID,		/* u16 */ -	L2TP_ATTR_COOKIE,		/* 0, 4 or 8 bytes */ -	L2TP_ATTR_PEER_COOKIE,		/* 0, 4 or 8 bytes */ -	L2TP_ATTR_DEBUG,		/* u32 */ -	L2TP_ATTR_RECV_SEQ,		/* u8 */ -	L2TP_ATTR_SEND_SEQ,		/* u8 */ -	L2TP_ATTR_LNS_MODE,		/* u8 */ -	L2TP_ATTR_USING_IPSEC,		/* u8 */ -	L2TP_ATTR_RECV_TIMEOUT,		/* msec */ -	L2TP_ATTR_FD,			/* int */ -	L2TP_ATTR_IP_SADDR,		/* u32 */ -	L2TP_ATTR_IP_DADDR,		/* u32 */ -	L2TP_ATTR_UDP_SPORT,		/* u16 */ -	L2TP_ATTR_UDP_DPORT,		/* u16 */ -	L2TP_ATTR_MTU,			/* u16 */ -	L2TP_ATTR_MRU,			/* u16 */ -	L2TP_ATTR_STATS,		/* nested */ -	L2TP_ATTR_IP6_SADDR,		/* struct in6_addr */ -	L2TP_ATTR_IP6_DADDR,		/* struct in6_addr */ -	__L2TP_ATTR_MAX, -}; - -#define L2TP_ATTR_MAX			(__L2TP_ATTR_MAX - 1) - -/* Nested in L2TP_ATTR_STATS */ -enum { -	L2TP_ATTR_STATS_NONE,		/* no data */ -	L2TP_ATTR_TX_PACKETS,		/* u64 */ -	L2TP_ATTR_TX_BYTES,		/* u64 */ -	L2TP_ATTR_TX_ERRORS,		/* u64 */ -	L2TP_ATTR_RX_PACKETS,		/* u64 */ -	L2TP_ATTR_RX_BYTES,		/* u64 */ -	L2TP_ATTR_RX_SEQ_DISCARDS,	/* u64 */ -	L2TP_ATTR_RX_OOS_PACKETS,	/* u64 */ -	L2TP_ATTR_RX_ERRORS,		/* u64 */ -	__L2TP_ATTR_STATS_MAX, -}; - -#define L2TP_ATTR_STATS_MAX		(__L2TP_ATTR_STATS_MAX - 1) - -enum l2tp_pwtype { -	L2TP_PWTYPE_NONE = 0x0000, -	L2TP_PWTYPE_ETH_VLAN = 0x0004, -	L2TP_PWTYPE_ETH = 0x0005, -	L2TP_PWTYPE_PPP = 0x0007, -	L2TP_PWTYPE_PPP_AC = 0x0008, -	L2TP_PWTYPE_IP = 0x000b, -	__L2TP_PWTYPE_MAX -}; - -enum l2tp_l2spec_type { -	L2TP_L2SPECTYPE_NONE, -	L2TP_L2SPECTYPE_DEFAULT, -}; - -enum l2tp_encap_type { -	L2TP_ENCAPTYPE_UDP, -	L2TP_ENCAPTYPE_IP, -}; - -enum l2tp_seqmode { -	L2TP_SEQ_NONE = 0, -	L2TP_SEQ_IP = 1, -	L2TP_SEQ_ALL = 2, -}; - -/* - * NETLINK_GENERIC related info - */ -#define L2TP_GENL_NAME		"l2tp" -#define L2TP_GENL_VERSION	0x1 +#include <uapi/linux/l2tp.h>  #endif diff --git a/include/linux/limits.h b/include/linux/limits.h deleted file mode 100644 index 2d0f94162fb..00000000000 --- a/include/linux/limits.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _LINUX_LIMITS_H -#define _LINUX_LIMITS_H - -#define NR_OPEN	        1024 - -#define NGROUPS_MAX    65536	/* supplemental group IDs are available */ -#define ARG_MAX       131072	/* # bytes of args + environ for exec() */ -#define LINK_MAX         127	/* # links a file may have */ -#define MAX_CANON        255	/* size of the canonical input queue */ -#define MAX_INPUT        255	/* size of the type-ahead buffer */ -#define NAME_MAX         255	/* # chars in a file name */ -#define PATH_MAX        4096	/* # chars in a path name including nul */ -#define PIPE_BUF        4096	/* # bytes in atomic write to a pipe */ -#define XATTR_NAME_MAX   255	/* # chars in an extended attribute name */ -#define XATTR_SIZE_MAX 65536	/* size of an extended attribute value (64k) */ -#define XATTR_LIST_MAX 65536	/* size of extended attribute namelist (64k) */ - -#define RTSIG_MAX	  32 - -#endif diff --git a/include/linux/llc.h b/include/linux/llc.h index a2418ae13ee..b965314d017 100644 --- a/include/linux/llc.h +++ b/include/linux/llc.h @@ -1,5 +1,3 @@ -#ifndef __LINUX_LLC_H -#define __LINUX_LLC_H  /*   * IEEE 802.2 User Interface SAPs for Linux, data structures and indicators.   * @@ -12,80 +10,14 @@   *   * See the GNU General Public License for more details.   */ +#ifndef __LINUX_LLC_H +#define __LINUX_LLC_H -#include <linux/socket.h> - -#define __LLC_SOCK_SIZE__ 16	/* sizeof(sockaddr_llc), word align. */ -struct sockaddr_llc { -	__kernel_sa_family_t sllc_family; /* AF_LLC */ -	__kernel_sa_family_t sllc_arphrd; /* ARPHRD_ETHER */ -	unsigned char   sllc_test; -	unsigned char   sllc_xid; -	unsigned char	sllc_ua;	/* UA data, only for SOCK_STREAM. */ -	unsigned char   sllc_sap; -	unsigned char   sllc_mac[IFHWADDRLEN]; -	unsigned char   __pad[__LLC_SOCK_SIZE__ - -			      sizeof(__kernel_sa_family_t) * 2 - -			      sizeof(unsigned char) * 4 - IFHWADDRLEN]; -}; - -/* sockopt definitions. */ -enum llc_sockopts { -	LLC_OPT_UNKNOWN = 0, -	LLC_OPT_RETRY,		/* max retrans attempts. */ -	LLC_OPT_SIZE,		/* max PDU size (octets). */ -	LLC_OPT_ACK_TMR_EXP,	/* ack expire time (secs). */ -	LLC_OPT_P_TMR_EXP,	/* pf cycle expire time (secs). */ -	LLC_OPT_REJ_TMR_EXP,	/* rej sent expire time (secs). */ -	LLC_OPT_BUSY_TMR_EXP,	/* busy state expire time (secs). */ -	LLC_OPT_TX_WIN,		/* tx window size. */ -	LLC_OPT_RX_WIN,		/* rx window size. */ -	LLC_OPT_PKTINFO,	/* ancillary packet information. */ -	LLC_OPT_MAX -}; - -#define LLC_OPT_MAX_RETRY	 100 -#define LLC_OPT_MAX_SIZE	4196 -#define LLC_OPT_MAX_WIN		 127 -#define LLC_OPT_MAX_ACK_TMR_EXP	  60 -#define LLC_OPT_MAX_P_TMR_EXP	  60 -#define LLC_OPT_MAX_REJ_TMR_EXP	  60 -#define LLC_OPT_MAX_BUSY_TMR_EXP  60 - -/* LLC SAP types. */ -#define LLC_SAP_NULL	0x00		/* NULL SAP. 			*/ -#define LLC_SAP_LLC	0x02		/* LLC Sublayer Management. 	*/ -#define LLC_SAP_SNA	0x04		/* SNA Path Control. 		*/ -#define LLC_SAP_PNM	0x0E		/* Proway Network Management.	*/	 -#define LLC_SAP_IP	0x06		/* TCP/IP. 			*/ -#define LLC_SAP_BSPAN	0x42		/* Bridge Spanning Tree Proto	*/ -#define LLC_SAP_MMS	0x4E		/* Manufacturing Message Srv.	*/ -#define LLC_SAP_8208	0x7E		/* ISO 8208			*/ -#define LLC_SAP_3COM	0x80		/* 3COM. 			*/ -#define LLC_SAP_PRO	0x8E		/* Proway Active Station List	*/ -#define LLC_SAP_SNAP	0xAA		/* SNAP. 			*/ -#define LLC_SAP_BANYAN	0xBC		/* Banyan. 			*/ -#define LLC_SAP_IPX	0xE0		/* IPX/SPX. 			*/ -#define LLC_SAP_NETBEUI	0xF0		/* NetBEUI. 			*/ -#define LLC_SAP_LANMGR	0xF4		/* LanManager. 			*/ -#define LLC_SAP_IMPL	0xF8		/* IMPL				*/ -#define LLC_SAP_DISC	0xFC		/* Discovery			*/ -#define LLC_SAP_OSI	0xFE		/* OSI Network Layers. 		*/ -#define LLC_SAP_LAR	0xDC		/* LAN Address Resolution 	*/ -#define LLC_SAP_RM	0xD4		/* Resource Management 		*/ -#define LLC_SAP_GLOBAL	0xFF		/* Global SAP. 			*/ - -struct llc_pktinfo { -	int lpi_ifindex; -	unsigned char lpi_sap; -	unsigned char lpi_mac[IFHWADDRLEN]; -}; +#include <uapi/linux/llc.h> -#ifdef __KERNEL__  #define LLC_SAP_DYN_START	0xC0  #define LLC_SAP_DYN_STOP	0xDE  #define LLC_SAP_DYN_TRIES	4  #define llc_ui_skb_cb(__skb) ((struct sockaddr_llc *)&((__skb)->cb[0])) -#endif /* __KERNEL__ */  #endif /* __LINUX_LLC_H */ diff --git a/include/linux/loop.h b/include/linux/loop.h index 9635116dd83..6492181bcb1 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h @@ -1,6 +1,3 @@ -#ifndef _LINUX_LOOP_H -#define _LINUX_LOOP_H -  /*   * include/linux/loop.h   * @@ -9,15 +6,14 @@   * Copyright 1993 by Theodore Ts'o.  Redistribution of this file is   * permitted under the GNU General Public License.   */ +#ifndef _LINUX_LOOP_H +#define _LINUX_LOOP_H -#define LO_NAME_SIZE	64 -#define LO_KEY_SIZE	32 - -#ifdef __KERNEL__  #include <linux/bio.h>  #include <linux/blkdev.h>  #include <linux/spinlock.h>  #include <linux/mutex.h> +#include <uapi/linux/loop.h>  /* Possible states of device */  enum { @@ -66,69 +62,6 @@ struct loop_device {  	struct gendisk		*lo_disk;  }; -#endif /* __KERNEL__ */ - -/* - * Loop flags - */ -enum { -	LO_FLAGS_READ_ONLY	= 1, -	LO_FLAGS_AUTOCLEAR	= 4, -	LO_FLAGS_PARTSCAN	= 8, -}; - -#include <asm/posix_types.h>	/* for __kernel_old_dev_t */ -#include <linux/types.h>	/* for __u64 */ - -/* Backwards compatibility version */ -struct loop_info { -	int		   lo_number;		/* ioctl r/o */ -	__kernel_old_dev_t lo_device; 		/* ioctl r/o */ -	unsigned long	   lo_inode; 		/* ioctl r/o */ -	__kernel_old_dev_t lo_rdevice; 		/* ioctl r/o */ -	int		   lo_offset; -	int		   lo_encrypt_type; -	int		   lo_encrypt_key_size; 	/* ioctl w/o */ -	int		   lo_flags;			/* ioctl r/o */ -	char		   lo_name[LO_NAME_SIZE]; -	unsigned char	   lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ -	unsigned long	   lo_init[2]; -	char		   reserved[4]; -}; - -struct loop_info64 { -	__u64		   lo_device;			/* ioctl r/o */ -	__u64		   lo_inode;			/* ioctl r/o */ -	__u64		   lo_rdevice;			/* ioctl r/o */ -	__u64		   lo_offset; -	__u64		   lo_sizelimit;/* bytes, 0 == max available */ -	__u32		   lo_number;			/* ioctl r/o */ -	__u32		   lo_encrypt_type; -	__u32		   lo_encrypt_key_size;		/* ioctl w/o */ -	__u32		   lo_flags;			/* ioctl r/o */ -	__u8		   lo_file_name[LO_NAME_SIZE]; -	__u8		   lo_crypt_name[LO_NAME_SIZE]; -	__u8		   lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ -	__u64		   lo_init[2]; -}; - -/* - * Loop filter types - */ - -#define LO_CRYPT_NONE		0 -#define LO_CRYPT_XOR		1 -#define LO_CRYPT_DES		2 -#define LO_CRYPT_FISH2		3    /* Twofish encryption */ -#define LO_CRYPT_BLOW		4 -#define LO_CRYPT_CAST128	5 -#define LO_CRYPT_IDEA		6 -#define LO_CRYPT_DUMMY		9 -#define LO_CRYPT_SKIPJACK	10 -#define LO_CRYPT_CRYPTOAPI	18 -#define MAX_LO_CRYPT		20 - -#ifdef __KERNEL__  /* Support for loadable transfer modules */  struct loop_func_table {  	int number;	/* filter type */  @@ -147,21 +80,3 @@ int loop_register_transfer(struct loop_func_table *funcs);  int loop_unregister_transfer(int number);   #endif -/* - * IOCTL commands --- we will commandeer 0x4C ('L') - */ - -#define LOOP_SET_FD		0x4C00 -#define LOOP_CLR_FD		0x4C01 -#define LOOP_SET_STATUS		0x4C02 -#define LOOP_GET_STATUS		0x4C03 -#define LOOP_SET_STATUS64	0x4C04 -#define LOOP_GET_STATUS64	0x4C05 -#define LOOP_CHANGE_FD		0x4C06 -#define LOOP_SET_CAPACITY	0x4C07 - -/* /dev/loop-control interface */ -#define LOOP_CTL_ADD		0x4C80 -#define LOOP_CTL_REMOVE		0x4C81 -#define LOOP_CTL_GET_FREE	0x4C82 -#endif diff --git a/include/linux/lp.h b/include/linux/lp.h index 0df024bfd6f..0dd276af9e4 100644 --- a/include/linux/lp.h +++ b/include/linux/lp.h @@ -1,105 +1,16 @@ -#ifndef _LINUX_LP_H -#define _LINUX_LP_H -  /*   * usr/include/linux/lp.h c.1991-1992 James Wiegand   * many modifications copyright (C) 1992 Michael K. Johnson   * Interrupt support added 1993 Nigel Gamble   * Removed 8255 status defines from inside __KERNEL__ Marcelo Tosatti    */ +#ifndef _LINUX_LP_H +#define _LINUX_LP_H -/* - * Per POSIX guidelines, this module reserves the LP and lp prefixes - * These are the lp_table[minor].flags flags... - */ -#define LP_EXIST 0x0001 -#define LP_SELEC 0x0002 -#define LP_BUSY	 0x0004 -#define LP_BUSY_BIT_POS 2 -#define LP_OFFL	 0x0008 -#define LP_NOPA  0x0010 -#define LP_ERR   0x0020 -#define LP_ABORT 0x0040 -#define LP_CAREFUL 0x0080 /* obsoleted -arca */ -#define LP_ABORTOPEN 0x0100 - -#define LP_TRUST_IRQ_  0x0200 /* obsolete */ -#define LP_NO_REVERSE  0x0400 /* No reverse mode available. */ -#define LP_DATA_AVAIL  0x0800 /* Data is available. */ - -/*  - * bit defines for 8255 status port - * base + 1 - * accessed with LP_S(minor), which gets the byte... - */ -#define LP_PBUSY	0x80  /* inverted input, active high */ -#define LP_PACK		0x40  /* unchanged input, active low */ -#define LP_POUTPA	0x20  /* unchanged input, active high */ -#define LP_PSELECD	0x10  /* unchanged input, active high */ -#define LP_PERRORP	0x08  /* unchanged input, active low */ - -/* timeout for each character.  This is relative to bus cycles -- it - * is the count in a busy loop.  THIS IS THE VALUE TO CHANGE if you - * have extremely slow printing, or if the machine seems to slow down - * a lot when you print.  If you have slow printing, increase this - * number and recompile, and if your system gets bogged down, decrease - * this number.  This can be changed with the tunelp(8) command as well. - */ - -#define LP_INIT_CHAR 1000 - -/* The parallel port specs apparently say that there needs to be - * a .5usec wait before and after the strobe. - */ - -#define LP_INIT_WAIT 1 - -/* This is the amount of time that the driver waits for the printer to - * catch up when the printer's buffer appears to be filled.  If you - * want to tune this and have a fast printer (i.e. HPIIIP), decrease - * this number, and if you have a slow printer, increase this number. - * This is in hundredths of a second, the default 2 being .05 second. - * Or use the tunelp(8) command, which is especially nice if you want - * change back and forth between character and graphics printing, which - * are wildly different... - */ - -#define LP_INIT_TIME 2 - -/* IOCTL numbers */ -#define LPCHAR   0x0601  /* corresponds to LP_INIT_CHAR */ -#define LPTIME   0x0602  /* corresponds to LP_INIT_TIME */ -#define LPABORT  0x0604  /* call with TRUE arg to abort on error, -			    FALSE to retry.  Default is retry.  */ -#define LPSETIRQ 0x0605  /* call with new IRQ number, -			    or 0 for polling (no IRQ) */ -#define LPGETIRQ 0x0606  /* get the current IRQ number */ -#define LPWAIT   0x0608  /* corresponds to LP_INIT_WAIT */ -/* NOTE: LPCAREFUL is obsoleted and it' s always the default right now -arca */ -#define LPCAREFUL   0x0609  /* call with TRUE arg to require out-of-paper, off- -			    line, and error indicators good on all writes, -			    FALSE to ignore them.  Default is ignore. */ -#define LPABORTOPEN 0x060a  /* call with TRUE arg to abort open() on error, -			    FALSE to ignore error.  Default is ignore.  */ -#define LPGETSTATUS 0x060b  /* return LP_S(minor) */ -#define LPRESET     0x060c  /* reset printer */ -#ifdef LP_STATS -#define LPGETSTATS  0x060d  /* get statistics (struct lp_stats) */ -#endif -#define LPGETFLAGS  0x060e  /* get status flags */ -#define LPSETTIMEOUT 0x060f /* set parport timeout */ - -/* timeout for printk'ing a timeout, in jiffies (100ths of a second). -   This is also used for re-checking error conditions if LP_ABORT is -   not set.  This is the default behavior. */ - -#define LP_TIMEOUT_INTERRUPT	(60 * HZ) -#define LP_TIMEOUT_POLLED	(10 * HZ) - -#ifdef __KERNEL__  #include <linux/wait.h>  #include <linux/mutex.h> +#include <uapi/linux/lp.h>  /* Magic numbers for defining port-device mappings */  #define LP_PARPORT_UNSPEC -4 @@ -187,5 +98,3 @@ struct lp_struct {  #define LP_DELAY 	50  #endif - -#endif diff --git a/include/linux/magic.h b/include/linux/magic.h deleted file mode 100644 index e15192cb9cf..00000000000 --- a/include/linux/magic.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __LINUX_MAGIC_H__ -#define __LINUX_MAGIC_H__ - -#define ADFS_SUPER_MAGIC	0xadf5 -#define AFFS_SUPER_MAGIC	0xadff -#define AFS_SUPER_MAGIC                0x5346414F -#define AUTOFS_SUPER_MAGIC	0x0187 -#define CODA_SUPER_MAGIC	0x73757245 -#define CRAMFS_MAGIC		0x28cd3d45	/* some random number */ -#define CRAMFS_MAGIC_WEND	0x453dcd28	/* magic number with the wrong endianess */ -#define DEBUGFS_MAGIC          0x64626720 -#define SECURITYFS_MAGIC	0x73636673 -#define SELINUX_MAGIC		0xf97cff8c -#define RAMFS_MAGIC		0x858458f6	/* some random number */ -#define TMPFS_MAGIC		0x01021994 -#define HUGETLBFS_MAGIC 	0x958458f6	/* some random number */ -#define SQUASHFS_MAGIC		0x73717368 -#define ECRYPTFS_SUPER_MAGIC	0xf15f -#define EFS_SUPER_MAGIC		0x414A53 -#define EXT2_SUPER_MAGIC	0xEF53 -#define EXT3_SUPER_MAGIC	0xEF53 -#define XENFS_SUPER_MAGIC	0xabba1974 -#define EXT4_SUPER_MAGIC	0xEF53 -#define BTRFS_SUPER_MAGIC	0x9123683E -#define NILFS_SUPER_MAGIC	0x3434 -#define HPFS_SUPER_MAGIC	0xf995e849 -#define ISOFS_SUPER_MAGIC	0x9660 -#define JFFS2_SUPER_MAGIC	0x72b6 -#define PSTOREFS_MAGIC		0x6165676C - -#define MINIX_SUPER_MAGIC	0x137F		/* minix v1 fs, 14 char names */ -#define MINIX_SUPER_MAGIC2	0x138F		/* minix v1 fs, 30 char names */ -#define MINIX2_SUPER_MAGIC	0x2468		/* minix v2 fs, 14 char names */ -#define MINIX2_SUPER_MAGIC2	0x2478		/* minix v2 fs, 30 char names */ -#define MINIX3_SUPER_MAGIC	0x4d5a		/* minix v3 fs, 60 char names */ - -#define MSDOS_SUPER_MAGIC	0x4d44		/* MD */ -#define NCP_SUPER_MAGIC		0x564c		/* Guess, what 0x564c is :-) */ -#define NFS_SUPER_MAGIC		0x6969 -#define OPENPROM_SUPER_MAGIC	0x9fa1 -#define QNX4_SUPER_MAGIC	0x002f		/* qnx4 fs detection */ -#define QNX6_SUPER_MAGIC	0x68191122	/* qnx6 fs detection */ - -#define REISERFS_SUPER_MAGIC	0x52654973	/* used by gcc */ -					/* used by file system utilities that -	                                   look at the superblock, etc.  */ -#define REISERFS_SUPER_MAGIC_STRING	"ReIsErFs" -#define REISER2FS_SUPER_MAGIC_STRING	"ReIsEr2Fs" -#define REISER2FS_JR_SUPER_MAGIC_STRING	"ReIsEr3Fs" - -#define SMB_SUPER_MAGIC		0x517B -#define CGROUP_SUPER_MAGIC	0x27e0eb - - -#define STACK_END_MAGIC		0x57AC6E9D - -#define V9FS_MAGIC		0x01021997 - -#define BDEVFS_MAGIC            0x62646576 -#define BINFMTFS_MAGIC          0x42494e4d -#define DEVPTS_SUPER_MAGIC	0x1cd1 -#define FUTEXFS_SUPER_MAGIC	0xBAD1DEA -#define PIPEFS_MAGIC            0x50495045 -#define PROC_SUPER_MAGIC	0x9fa0 -#define SOCKFS_MAGIC		0x534F434B -#define SYSFS_MAGIC		0x62656572 -#define USBDEVICE_SUPER_MAGIC	0x9fa2 -#define MTD_INODE_FS_MAGIC      0x11307854 -#define ANON_INODE_FS_MAGIC	0x09041934 - - -#endif /* __LINUX_MAGIC_H__ */ diff --git a/include/linux/major.h b/include/linux/major.h deleted file mode 100644 index 6a8ca98c9a9..00000000000 --- a/include/linux/major.h +++ /dev/null @@ -1,177 +0,0 @@ -#ifndef _LINUX_MAJOR_H -#define _LINUX_MAJOR_H - -/* - * This file has definitions for major device numbers. - * For the device number assignments, see Documentation/devices.txt. - */ - -#define UNNAMED_MAJOR		0 -#define MEM_MAJOR		1 -#define RAMDISK_MAJOR		1 -#define FLOPPY_MAJOR		2 -#define PTY_MASTER_MAJOR	2 -#define IDE0_MAJOR		3 -#define HD_MAJOR		IDE0_MAJOR -#define PTY_SLAVE_MAJOR		3 -#define TTY_MAJOR		4 -#define TTYAUX_MAJOR		5 -#define LP_MAJOR		6 -#define VCS_MAJOR		7 -#define LOOP_MAJOR		7 -#define SCSI_DISK0_MAJOR	8 -#define SCSI_TAPE_MAJOR		9 -#define MD_MAJOR		9 -#define MISC_MAJOR		10 -#define SCSI_CDROM_MAJOR	11 -#define MUX_MAJOR		11	/* PA-RISC only */ -#define XT_DISK_MAJOR		13 -#define INPUT_MAJOR		13 -#define SOUND_MAJOR		14 -#define CDU31A_CDROM_MAJOR	15 -#define JOYSTICK_MAJOR		15 -#define GOLDSTAR_CDROM_MAJOR	16 -#define OPTICS_CDROM_MAJOR	17 -#define SANYO_CDROM_MAJOR	18 -#define CYCLADES_MAJOR		19 -#define CYCLADESAUX_MAJOR	20 -#define MITSUMI_X_CDROM_MAJOR	20 -#define MFM_ACORN_MAJOR		21	/* ARM Linux /dev/mfm */ -#define SCSI_GENERIC_MAJOR	21 -#define IDE1_MAJOR		22 -#define DIGICU_MAJOR		22 -#define DIGI_MAJOR		23 -#define MITSUMI_CDROM_MAJOR	23 -#define CDU535_CDROM_MAJOR	24 -#define STL_SERIALMAJOR		24 -#define MATSUSHITA_CDROM_MAJOR	25 -#define STL_CALLOUTMAJOR	25 -#define MATSUSHITA_CDROM2_MAJOR	26 -#define QIC117_TAPE_MAJOR	27 -#define MATSUSHITA_CDROM3_MAJOR	27 -#define MATSUSHITA_CDROM4_MAJOR	28 -#define STL_SIOMEMMAJOR		28 -#define ACSI_MAJOR		28 -#define AZTECH_CDROM_MAJOR	29 -#define FB_MAJOR		29   /* /dev/fb* framebuffers */ -#define CM206_CDROM_MAJOR	32 -#define IDE2_MAJOR		33 -#define IDE3_MAJOR		34 -#define Z8530_MAJOR		34 -#define XPRAM_MAJOR		35   /* Expanded storage on S/390: "slow ram"*/ -#define NETLINK_MAJOR		36 -#define PS2ESDI_MAJOR		36 -#define IDETAPE_MAJOR		37 -#define Z2RAM_MAJOR		37 -#define APBLOCK_MAJOR		38   /* AP1000 Block device */ -#define DDV_MAJOR		39   /* AP1000 DDV block device */ -#define NBD_MAJOR		43   /* Network block device	*/ -#define RISCOM8_NORMAL_MAJOR	48 -#define DAC960_MAJOR		48   /* 48..55 */ -#define RISCOM8_CALLOUT_MAJOR	49 -#define MKISS_MAJOR		55 -#define DSP56K_MAJOR		55   /* DSP56001 processor device */ - -#define IDE4_MAJOR		56 -#define IDE5_MAJOR		57 - -#define SCSI_DISK1_MAJOR	65 -#define SCSI_DISK2_MAJOR	66 -#define SCSI_DISK3_MAJOR	67 -#define SCSI_DISK4_MAJOR	68 -#define SCSI_DISK5_MAJOR	69 -#define SCSI_DISK6_MAJOR	70 -#define SCSI_DISK7_MAJOR	71 - -#define COMPAQ_SMART2_MAJOR	72 -#define COMPAQ_SMART2_MAJOR1	73 -#define COMPAQ_SMART2_MAJOR2	74 -#define COMPAQ_SMART2_MAJOR3	75 -#define COMPAQ_SMART2_MAJOR4	76 -#define COMPAQ_SMART2_MAJOR5	77 -#define COMPAQ_SMART2_MAJOR6	78 -#define COMPAQ_SMART2_MAJOR7	79 - -#define SPECIALIX_NORMAL_MAJOR	75 -#define SPECIALIX_CALLOUT_MAJOR	76 - -#define AURORA_MAJOR		79 - -#define I2O_MAJOR		80	/* 80->87 */ - -#define SHMIQ_MAJOR		85   /* Linux/mips, SGI /dev/shmiq */ -#define SCSI_CHANGER_MAJOR      86 - -#define IDE6_MAJOR		88 -#define IDE7_MAJOR		89 -#define IDE8_MAJOR		90 -#define IDE9_MAJOR		91 - -#define DASD_MAJOR		94 - -#define MDISK_MAJOR		95 - -#define UBD_MAJOR		98 - -#define PP_MAJOR		99 -#define JSFD_MAJOR		99 - -#define PHONE_MAJOR		100 - -#define COMPAQ_CISS_MAJOR	104 -#define COMPAQ_CISS_MAJOR1	105 -#define COMPAQ_CISS_MAJOR2      106 -#define COMPAQ_CISS_MAJOR3      107 -#define COMPAQ_CISS_MAJOR4      108 -#define COMPAQ_CISS_MAJOR5      109 -#define COMPAQ_CISS_MAJOR6      110 -#define COMPAQ_CISS_MAJOR7      111 - -#define VIODASD_MAJOR		112 -#define VIOCD_MAJOR		113 - -#define ATARAID_MAJOR		114 - -#define SCSI_DISK8_MAJOR	128 -#define SCSI_DISK9_MAJOR	129 -#define SCSI_DISK10_MAJOR	130 -#define SCSI_DISK11_MAJOR	131 -#define SCSI_DISK12_MAJOR	132 -#define SCSI_DISK13_MAJOR	133 -#define SCSI_DISK14_MAJOR	134 -#define SCSI_DISK15_MAJOR	135 - -#define UNIX98_PTY_MASTER_MAJOR	128 -#define UNIX98_PTY_MAJOR_COUNT	8 -#define UNIX98_PTY_SLAVE_MAJOR	(UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT) - -#define DRBD_MAJOR		147 -#define RTF_MAJOR		150 -#define RAW_MAJOR		162 - -#define USB_ACM_MAJOR		166 -#define USB_ACM_AUX_MAJOR	167 -#define USB_CHAR_MAJOR		180 - -#define MMC_BLOCK_MAJOR		179 - -#define VXVM_MAJOR		199	/* VERITAS volume i/o driver    */ -#define VXSPEC_MAJOR		200	/* VERITAS volume config driver */ -#define VXDMP_MAJOR		201	/* VERITAS volume multipath driver */ - -#define XENVBD_MAJOR		202	/* Xen virtual block device */ - -#define MSR_MAJOR		202 -#define CPUID_MAJOR		203 - -#define OSST_MAJOR		206	/* OnStream-SCx0 SCSI tape */ - -#define IBM_TTY3270_MAJOR	227 -#define IBM_FS3270_MAJOR	228 - -#define VIOTAPE_MAJOR		230 - -#define BLOCK_EXT_MAJOR		259 -#define SCSI_OSD_MAJOR		260	/* open-osd's OSD scsi device */ - -#endif diff --git a/include/linux/map_to_7segment.h b/include/linux/map_to_7segment.h deleted file mode 100644 index 12d62a54d47..00000000000 --- a/include/linux/map_to_7segment.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet@gmail.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef MAP_TO_7SEGMENT_H -#define MAP_TO_7SEGMENT_H - -/* This file provides translation primitives and tables for the conversion - * of (ASCII) characters to a 7-segments notation. - * - * The 7 segment's wikipedia notation below is used as standard. - * See: http://en.wikipedia.org/wiki/Seven_segment_display - * - * Notation:	+-a-+ - *		f   b - *		+-g-+ - *		e   c - *		+-d-+ - * - * Usage: - * - *   Register a map variable, and fill it with a character set: - *	static SEG7_DEFAULT_MAP(map_seg7); - * - * - *   Then use for conversion: - *	seg7 = map_to_seg7(&map_seg7, some_char); - *	... - * - * In device drivers it is recommended, if required, to make the char map - * accessible via the sysfs interface using the following scheme: - * - * static ssize_t show_map(struct device *dev, char *buf) { - *	memcpy(buf, &map_seg7, sizeof(map_seg7)); - *	return sizeof(map_seg7); - * } - * static ssize_t store_map(struct device *dev, const char *buf, size_t cnt) { - *	if(cnt != sizeof(map_seg7)) - *		return -EINVAL; - *	memcpy(&map_seg7, buf, cnt); - *	return cnt; - * } - * static DEVICE_ATTR(map_seg7, PERMS_RW, show_map, store_map); - * - * History: - * 2005-05-31	RFC linux-kernel@vger.kernel.org - */ -#include <linux/errno.h> - - -#define BIT_SEG7_A		0 -#define BIT_SEG7_B		1 -#define BIT_SEG7_C		2 -#define BIT_SEG7_D		3 -#define BIT_SEG7_E		4 -#define BIT_SEG7_F		5 -#define BIT_SEG7_G		6 -#define BIT_SEG7_RESERVED	7 - -struct seg7_conversion_map { -	unsigned char	table[128]; -}; - -static __inline__ int map_to_seg7(struct seg7_conversion_map *map, int c) -{ -	return c >= 0 && c < sizeof(map->table) ? map->table[c] : -EINVAL; -} - -#define SEG7_CONVERSION_MAP(_name, _map)	\ -	struct seg7_conversion_map _name = { .table = { _map } } - -/* - * It is recommended to use a facility that allows user space to redefine - * custom character sets for LCD devices. Please use a sysfs interface - * as described above. - */ -#define MAP_TO_SEG7_SYSFS_FILE	"map_seg7" - -/******************************************************************************* - * ASCII conversion table - ******************************************************************************/ - -#define _SEG7(l,a,b,c,d,e,f,g)	\ -      (	a<<BIT_SEG7_A |	b<<BIT_SEG7_B |	c<<BIT_SEG7_C |	d<<BIT_SEG7_D |	\ -	e<<BIT_SEG7_E |	f<<BIT_SEG7_F |	g<<BIT_SEG7_G ) - -#define _MAP_0_32_ASCII_SEG7_NON_PRINTABLE	\ -	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - -#define _MAP_33_47_ASCII_SEG7_SYMBOL		\ - _SEG7('!',0,0,0,0,1,1,0), _SEG7('"',0,1,0,0,0,1,0), _SEG7('#',0,1,1,0,1,1,0),\ - _SEG7('$',1,0,1,1,0,1,1), _SEG7('%',0,0,1,0,0,1,0), _SEG7('&',1,0,1,1,1,1,1),\ - _SEG7('\'',0,0,0,0,0,1,0),_SEG7('(',1,0,0,1,1,1,0), _SEG7(')',1,1,1,1,0,0,0),\ - _SEG7('*',0,1,1,0,1,1,1), _SEG7('+',0,1,1,0,0,0,1), _SEG7(',',0,0,0,0,1,0,0),\ - _SEG7('-',0,0,0,0,0,0,1), _SEG7('.',0,0,0,0,1,0,0), _SEG7('/',0,1,0,0,1,0,1), - -#define _MAP_48_57_ASCII_SEG7_NUMERIC		\ - _SEG7('0',1,1,1,1,1,1,0), _SEG7('1',0,1,1,0,0,0,0), _SEG7('2',1,1,0,1,1,0,1),\ - _SEG7('3',1,1,1,1,0,0,1), _SEG7('4',0,1,1,0,0,1,1), _SEG7('5',1,0,1,1,0,1,1),\ - _SEG7('6',1,0,1,1,1,1,1), _SEG7('7',1,1,1,0,0,0,0), _SEG7('8',1,1,1,1,1,1,1),\ - _SEG7('9',1,1,1,1,0,1,1), - -#define _MAP_58_64_ASCII_SEG7_SYMBOL		\ - _SEG7(':',0,0,0,1,0,0,1), _SEG7(';',0,0,0,1,0,0,1), _SEG7('<',1,0,0,0,0,1,1),\ - _SEG7('=',0,0,0,1,0,0,1), _SEG7('>',1,1,0,0,0,0,1), _SEG7('?',1,1,1,0,0,1,0),\ - _SEG7('@',1,1,0,1,1,1,1), - -#define _MAP_65_90_ASCII_SEG7_ALPHA_UPPR	\ - _SEG7('A',1,1,1,0,1,1,1), _SEG7('B',1,1,1,1,1,1,1), _SEG7('C',1,0,0,1,1,1,0),\ - _SEG7('D',1,1,1,1,1,1,0), _SEG7('E',1,0,0,1,1,1,1), _SEG7('F',1,0,0,0,1,1,1),\ - _SEG7('G',1,1,1,1,0,1,1), _SEG7('H',0,1,1,0,1,1,1), _SEG7('I',0,1,1,0,0,0,0),\ - _SEG7('J',0,1,1,1,0,0,0), _SEG7('K',0,1,1,0,1,1,1), _SEG7('L',0,0,0,1,1,1,0),\ - _SEG7('M',1,1,1,0,1,1,0), _SEG7('N',1,1,1,0,1,1,0), _SEG7('O',1,1,1,1,1,1,0),\ - _SEG7('P',1,1,0,0,1,1,1), _SEG7('Q',1,1,1,1,1,1,0), _SEG7('R',1,1,1,0,1,1,1),\ - _SEG7('S',1,0,1,1,0,1,1), _SEG7('T',0,0,0,1,1,1,1), _SEG7('U',0,1,1,1,1,1,0),\ - _SEG7('V',0,1,1,1,1,1,0), _SEG7('W',0,1,1,1,1,1,1), _SEG7('X',0,1,1,0,1,1,1),\ - _SEG7('Y',0,1,1,0,0,1,1), _SEG7('Z',1,1,0,1,1,0,1), - -#define _MAP_91_96_ASCII_SEG7_SYMBOL		\ - _SEG7('[',1,0,0,1,1,1,0), _SEG7('\\',0,0,1,0,0,1,1),_SEG7(']',1,1,1,1,0,0,0),\ - _SEG7('^',1,1,0,0,0,1,0), _SEG7('_',0,0,0,1,0,0,0), _SEG7('`',0,1,0,0,0,0,0), - -#define _MAP_97_122_ASCII_SEG7_ALPHA_LOWER	\ - _SEG7('A',1,1,1,0,1,1,1), _SEG7('b',0,0,1,1,1,1,1), _SEG7('c',0,0,0,1,1,0,1),\ - _SEG7('d',0,1,1,1,1,0,1), _SEG7('E',1,0,0,1,1,1,1), _SEG7('F',1,0,0,0,1,1,1),\ - _SEG7('G',1,1,1,1,0,1,1), _SEG7('h',0,0,1,0,1,1,1), _SEG7('i',0,0,1,0,0,0,0),\ - _SEG7('j',0,0,1,1,0,0,0), _SEG7('k',0,0,1,0,1,1,1), _SEG7('L',0,0,0,1,1,1,0),\ - _SEG7('M',1,1,1,0,1,1,0), _SEG7('n',0,0,1,0,1,0,1), _SEG7('o',0,0,1,1,1,0,1),\ - _SEG7('P',1,1,0,0,1,1,1), _SEG7('q',1,1,1,0,0,1,1), _SEG7('r',0,0,0,0,1,0,1),\ - _SEG7('S',1,0,1,1,0,1,1), _SEG7('T',0,0,0,1,1,1,1), _SEG7('u',0,0,1,1,1,0,0),\ - _SEG7('v',0,0,1,1,1,0,0), _SEG7('W',0,1,1,1,1,1,1), _SEG7('X',0,1,1,0,1,1,1),\ - _SEG7('y',0,1,1,1,0,1,1), _SEG7('Z',1,1,0,1,1,0,1), - -#define _MAP_123_126_ASCII_SEG7_SYMBOL		\ - _SEG7('{',1,0,0,1,1,1,0), _SEG7('|',0,0,0,0,1,1,0), _SEG7('}',1,1,1,1,0,0,0),\ - _SEG7('~',1,0,0,0,0,0,0), - -/* Maps */ - -/* This set tries to map as close as possible to the visible characteristics - * of the ASCII symbol, lowercase and uppercase letters may differ in - * presentation on the display. - */ -#define MAP_ASCII7SEG_ALPHANUM			\ -	_MAP_0_32_ASCII_SEG7_NON_PRINTABLE	\ -	_MAP_33_47_ASCII_SEG7_SYMBOL		\ -	_MAP_48_57_ASCII_SEG7_NUMERIC		\ -	_MAP_58_64_ASCII_SEG7_SYMBOL		\ -	_MAP_65_90_ASCII_SEG7_ALPHA_UPPR	\ -	_MAP_91_96_ASCII_SEG7_SYMBOL		\ -	_MAP_97_122_ASCII_SEG7_ALPHA_LOWER	\ -	_MAP_123_126_ASCII_SEG7_SYMBOL - -/* This set tries to map as close as possible to the symbolic characteristics - * of the ASCII character for maximum discrimination. - * For now this means all alpha chars are in lower case representations. - * (This for example facilitates the use of hex numbers with uppercase input.) - */ -#define MAP_ASCII7SEG_ALPHANUM_LC			\ -	_MAP_0_32_ASCII_SEG7_NON_PRINTABLE	\ -	_MAP_33_47_ASCII_SEG7_SYMBOL		\ -	_MAP_48_57_ASCII_SEG7_NUMERIC		\ -	_MAP_58_64_ASCII_SEG7_SYMBOL		\ -	_MAP_97_122_ASCII_SEG7_ALPHA_LOWER	\ -	_MAP_91_96_ASCII_SEG7_SYMBOL		\ -	_MAP_97_122_ASCII_SEG7_ALPHA_LOWER	\ -	_MAP_123_126_ASCII_SEG7_SYMBOL - -#define SEG7_DEFAULT_MAP(_name)		\ -	SEG7_CONVERSION_MAP(_name,MAP_ASCII7SEG_ALPHANUM) - -#endif	/* MAP_TO_7SEGMENT_H */ - diff --git a/include/linux/matroxfb.h b/include/linux/matroxfb.h deleted file mode 100644 index 8c22a893864..00000000000 --- a/include/linux/matroxfb.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef __LINUX_MATROXFB_H__ -#define __LINUX_MATROXFB_H__ - -#include <asm/ioctl.h> -#include <linux/types.h> -#include <linux/videodev2.h> -#include <linux/fb.h> - -struct matroxioc_output_mode { -	__u32	output;		/* which output */ -#define MATROXFB_OUTPUT_PRIMARY		0x0000 -#define MATROXFB_OUTPUT_SECONDARY	0x0001 -#define MATROXFB_OUTPUT_DFP		0x0002 -	__u32	mode;		/* which mode */ -#define MATROXFB_OUTPUT_MODE_PAL	0x0001 -#define MATROXFB_OUTPUT_MODE_NTSC	0x0002 -#define MATROXFB_OUTPUT_MODE_MONITOR	0x0080 -}; -#define MATROXFB_SET_OUTPUT_MODE	_IOW('n',0xFA,size_t) -#define MATROXFB_GET_OUTPUT_MODE	_IOWR('n',0xFA,size_t) - -/* bitfield */ -#define MATROXFB_OUTPUT_CONN_PRIMARY	(1 << MATROXFB_OUTPUT_PRIMARY) -#define MATROXFB_OUTPUT_CONN_SECONDARY	(1 << MATROXFB_OUTPUT_SECONDARY) -#define MATROXFB_OUTPUT_CONN_DFP	(1 << MATROXFB_OUTPUT_DFP) -/* connect these outputs to this framebuffer */ -#define MATROXFB_SET_OUTPUT_CONNECTION	_IOW('n',0xF8,size_t) -/* which outputs are connected to this framebuffer */ -#define MATROXFB_GET_OUTPUT_CONNECTION	_IOR('n',0xF8,size_t) -/* which outputs are available for this framebuffer */ -#define MATROXFB_GET_AVAILABLE_OUTPUTS	_IOR('n',0xF9,size_t) -/* which outputs exist on this framebuffer */ -#define MATROXFB_GET_ALL_OUTPUTS	_IOR('n',0xFB,size_t) - -enum matroxfb_ctrl_id { -  MATROXFB_CID_TESTOUT	 = V4L2_CID_PRIVATE_BASE, -  MATROXFB_CID_DEFLICKER, -  MATROXFB_CID_LAST -}; - -#endif - diff --git a/include/linux/mdio.h b/include/linux/mdio.h index 6c406845f7e..3d15c838116 100644 --- a/include/linux/mdio.h +++ b/include/linux/mdio.h @@ -6,295 +6,11 @@   * under the terms of the GNU General Public License version 2 as published   * by the Free Software Foundation, incorporated herein by reference.   */ -  #ifndef __LINUX_MDIO_H__  #define __LINUX_MDIO_H__ -#include <linux/types.h> -#include <linux/mii.h> - -/* MDIO Manageable Devices (MMDs). */ -#define MDIO_MMD_PMAPMD		1	/* Physical Medium Attachment/ -					 * Physical Medium Dependent */ -#define MDIO_MMD_WIS		2	/* WAN Interface Sublayer */ -#define MDIO_MMD_PCS		3	/* Physical Coding Sublayer */ -#define MDIO_MMD_PHYXS		4	/* PHY Extender Sublayer */ -#define MDIO_MMD_DTEXS		5	/* DTE Extender Sublayer */ -#define MDIO_MMD_TC		6	/* Transmission Convergence */ -#define MDIO_MMD_AN		7	/* Auto-Negotiation */ -#define MDIO_MMD_C22EXT		29	/* Clause 22 extension */ -#define MDIO_MMD_VEND1		30	/* Vendor specific 1 */ -#define MDIO_MMD_VEND2		31	/* Vendor specific 2 */ - -/* Generic MDIO registers. */ -#define MDIO_CTRL1		MII_BMCR -#define MDIO_STAT1		MII_BMSR -#define MDIO_DEVID1		MII_PHYSID1 -#define MDIO_DEVID2		MII_PHYSID2 -#define MDIO_SPEED		4	/* Speed ability */ -#define MDIO_DEVS1		5	/* Devices in package */ -#define MDIO_DEVS2		6 -#define MDIO_CTRL2		7	/* 10G control 2 */ -#define MDIO_STAT2		8	/* 10G status 2 */ -#define MDIO_PMA_TXDIS		9	/* 10G PMA/PMD transmit disable */ -#define MDIO_PMA_RXDET		10	/* 10G PMA/PMD receive signal detect */ -#define MDIO_PMA_EXTABLE	11	/* 10G PMA/PMD extended ability */ -#define MDIO_PKGID1		14	/* Package identifier */ -#define MDIO_PKGID2		15 -#define MDIO_AN_ADVERTISE	16	/* AN advertising (base page) */ -#define MDIO_AN_LPA		19	/* AN LP abilities (base page) */ -#define MDIO_PCS_EEE_ABLE	20	/* EEE Capability register */ -#define MDIO_PCS_EEE_WK_ERR	22	/* EEE wake error counter */ -#define MDIO_PHYXS_LNSTAT	24	/* PHY XGXS lane state */ -#define MDIO_AN_EEE_ADV		60	/* EEE advertisement */ -#define MDIO_AN_EEE_LPABLE	61	/* EEE link partner ability */ - -/* Media-dependent registers. */ -#define MDIO_PMA_10GBT_SWAPPOL	130	/* 10GBASE-T pair swap & polarity */ -#define MDIO_PMA_10GBT_TXPWR	131	/* 10GBASE-T TX power control */ -#define MDIO_PMA_10GBT_SNR	133	/* 10GBASE-T SNR margin, lane A. -					 * Lanes B-D are numbered 134-136. */ -#define MDIO_PMA_10GBR_FECABLE	170	/* 10GBASE-R FEC ability */ -#define MDIO_PCS_10GBX_STAT1	24	/* 10GBASE-X PCS status 1 */ -#define MDIO_PCS_10GBRT_STAT1	32	/* 10GBASE-R/-T PCS status 1 */ -#define MDIO_PCS_10GBRT_STAT2	33	/* 10GBASE-R/-T PCS status 2 */ -#define MDIO_AN_10GBT_CTRL	32	/* 10GBASE-T auto-negotiation control */ -#define MDIO_AN_10GBT_STAT	33	/* 10GBASE-T auto-negotiation status */ - -/* LASI (Link Alarm Status Interrupt) registers, defined by XENPAK MSA. */ -#define MDIO_PMA_LASI_RXCTRL	0x9000	/* RX_ALARM control */ -#define MDIO_PMA_LASI_TXCTRL	0x9001	/* TX_ALARM control */ -#define MDIO_PMA_LASI_CTRL	0x9002	/* LASI control */ -#define MDIO_PMA_LASI_RXSTAT	0x9003	/* RX_ALARM status */ -#define MDIO_PMA_LASI_TXSTAT	0x9004	/* TX_ALARM status */ -#define MDIO_PMA_LASI_STAT	0x9005	/* LASI status */ - -/* Control register 1. */ -/* Enable extended speed selection */ -#define MDIO_CTRL1_SPEEDSELEXT		(BMCR_SPEED1000 | BMCR_SPEED100) -/* All speed selection bits */ -#define MDIO_CTRL1_SPEEDSEL		(MDIO_CTRL1_SPEEDSELEXT | 0x003c) -#define MDIO_CTRL1_FULLDPLX		BMCR_FULLDPLX -#define MDIO_CTRL1_LPOWER		BMCR_PDOWN -#define MDIO_CTRL1_RESET		BMCR_RESET -#define MDIO_PMA_CTRL1_LOOPBACK		0x0001 -#define MDIO_PMA_CTRL1_SPEED1000	BMCR_SPEED1000 -#define MDIO_PMA_CTRL1_SPEED100		BMCR_SPEED100 -#define MDIO_PCS_CTRL1_LOOPBACK		BMCR_LOOPBACK -#define MDIO_PHYXS_CTRL1_LOOPBACK	BMCR_LOOPBACK -#define MDIO_AN_CTRL1_RESTART		BMCR_ANRESTART -#define MDIO_AN_CTRL1_ENABLE		BMCR_ANENABLE -#define MDIO_AN_CTRL1_XNP		0x2000	/* Enable extended next page */ -#define MDIO_PCS_CTRL1_CLKSTOP_EN	0x400	/* Stop the clock during LPI */ - -/* 10 Gb/s */ -#define MDIO_CTRL1_SPEED10G		(MDIO_CTRL1_SPEEDSELEXT | 0x00) -/* 10PASS-TS/2BASE-TL */ -#define MDIO_CTRL1_SPEED10P2B		(MDIO_CTRL1_SPEEDSELEXT | 0x04) - -/* Status register 1. */ -#define MDIO_STAT1_LPOWERABLE		0x0002	/* Low-power ability */ -#define MDIO_STAT1_LSTATUS		BMSR_LSTATUS -#define MDIO_STAT1_FAULT		0x0080	/* Fault */ -#define MDIO_AN_STAT1_LPABLE		0x0001	/* Link partner AN ability */ -#define MDIO_AN_STAT1_ABLE		BMSR_ANEGCAPABLE -#define MDIO_AN_STAT1_RFAULT		BMSR_RFAULT -#define MDIO_AN_STAT1_COMPLETE		BMSR_ANEGCOMPLETE -#define MDIO_AN_STAT1_PAGE		0x0040	/* Page received */ -#define MDIO_AN_STAT1_XNP		0x0080	/* Extended next page status */ - -/* Speed register. */ -#define MDIO_SPEED_10G			0x0001	/* 10G capable */ -#define MDIO_PMA_SPEED_2B		0x0002	/* 2BASE-TL capable */ -#define MDIO_PMA_SPEED_10P		0x0004	/* 10PASS-TS capable */ -#define MDIO_PMA_SPEED_1000		0x0010	/* 1000M capable */ -#define MDIO_PMA_SPEED_100		0x0020	/* 100M capable */ -#define MDIO_PMA_SPEED_10		0x0040	/* 10M capable */ -#define MDIO_PCS_SPEED_10P2B		0x0002	/* 10PASS-TS/2BASE-TL capable */ - -/* Device present registers. */ -#define MDIO_DEVS_PRESENT(devad)	(1 << (devad)) -#define MDIO_DEVS_PMAPMD		MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD) -#define MDIO_DEVS_WIS			MDIO_DEVS_PRESENT(MDIO_MMD_WIS) -#define MDIO_DEVS_PCS			MDIO_DEVS_PRESENT(MDIO_MMD_PCS) -#define MDIO_DEVS_PHYXS			MDIO_DEVS_PRESENT(MDIO_MMD_PHYXS) -#define MDIO_DEVS_DTEXS			MDIO_DEVS_PRESENT(MDIO_MMD_DTEXS) -#define MDIO_DEVS_TC			MDIO_DEVS_PRESENT(MDIO_MMD_TC) -#define MDIO_DEVS_AN			MDIO_DEVS_PRESENT(MDIO_MMD_AN) -#define MDIO_DEVS_C22EXT		MDIO_DEVS_PRESENT(MDIO_MMD_C22EXT) - -/* Control register 2. */ -#define MDIO_PMA_CTRL2_TYPE		0x000f	/* PMA/PMD type selection */ -#define MDIO_PMA_CTRL2_10GBCX4		0x0000	/* 10GBASE-CX4 type */ -#define MDIO_PMA_CTRL2_10GBEW		0x0001	/* 10GBASE-EW type */ -#define MDIO_PMA_CTRL2_10GBLW		0x0002	/* 10GBASE-LW type */ -#define MDIO_PMA_CTRL2_10GBSW		0x0003	/* 10GBASE-SW type */ -#define MDIO_PMA_CTRL2_10GBLX4		0x0004	/* 10GBASE-LX4 type */ -#define MDIO_PMA_CTRL2_10GBER		0x0005	/* 10GBASE-ER type */ -#define MDIO_PMA_CTRL2_10GBLR		0x0006	/* 10GBASE-LR type */ -#define MDIO_PMA_CTRL2_10GBSR		0x0007	/* 10GBASE-SR type */ -#define MDIO_PMA_CTRL2_10GBLRM		0x0008	/* 10GBASE-LRM type */ -#define MDIO_PMA_CTRL2_10GBT		0x0009	/* 10GBASE-T type */ -#define MDIO_PMA_CTRL2_10GBKX4		0x000a	/* 10GBASE-KX4 type */ -#define MDIO_PMA_CTRL2_10GBKR		0x000b	/* 10GBASE-KR type */ -#define MDIO_PMA_CTRL2_1000BT		0x000c	/* 1000BASE-T type */ -#define MDIO_PMA_CTRL2_1000BKX		0x000d	/* 1000BASE-KX type */ -#define MDIO_PMA_CTRL2_100BTX		0x000e	/* 100BASE-TX type */ -#define MDIO_PMA_CTRL2_10BT		0x000f	/* 10BASE-T type */ -#define MDIO_PCS_CTRL2_TYPE		0x0003	/* PCS type selection */ -#define MDIO_PCS_CTRL2_10GBR		0x0000	/* 10GBASE-R type */ -#define MDIO_PCS_CTRL2_10GBX		0x0001	/* 10GBASE-X type */ -#define MDIO_PCS_CTRL2_10GBW		0x0002	/* 10GBASE-W type */ -#define MDIO_PCS_CTRL2_10GBT		0x0003	/* 10GBASE-T type */ - -/* Status register 2. */ -#define MDIO_STAT2_RXFAULT		0x0400	/* Receive fault */ -#define MDIO_STAT2_TXFAULT		0x0800	/* Transmit fault */ -#define MDIO_STAT2_DEVPRST		0xc000	/* Device present */ -#define MDIO_STAT2_DEVPRST_VAL		0x8000	/* Device present value */ -#define MDIO_PMA_STAT2_LBABLE		0x0001	/* PMA loopback ability */ -#define MDIO_PMA_STAT2_10GBEW		0x0002	/* 10GBASE-EW ability */ -#define MDIO_PMA_STAT2_10GBLW		0x0004	/* 10GBASE-LW ability */ -#define MDIO_PMA_STAT2_10GBSW		0x0008	/* 10GBASE-SW ability */ -#define MDIO_PMA_STAT2_10GBLX4		0x0010	/* 10GBASE-LX4 ability */ -#define MDIO_PMA_STAT2_10GBER		0x0020	/* 10GBASE-ER ability */ -#define MDIO_PMA_STAT2_10GBLR		0x0040	/* 10GBASE-LR ability */ -#define MDIO_PMA_STAT2_10GBSR		0x0080	/* 10GBASE-SR ability */ -#define MDIO_PMD_STAT2_TXDISAB		0x0100	/* PMD TX disable ability */ -#define MDIO_PMA_STAT2_EXTABLE		0x0200	/* Extended abilities */ -#define MDIO_PMA_STAT2_RXFLTABLE	0x1000	/* Receive fault ability */ -#define MDIO_PMA_STAT2_TXFLTABLE	0x2000	/* Transmit fault ability */ -#define MDIO_PCS_STAT2_10GBR		0x0001	/* 10GBASE-R capable */ -#define MDIO_PCS_STAT2_10GBX		0x0002	/* 10GBASE-X capable */ -#define MDIO_PCS_STAT2_10GBW		0x0004	/* 10GBASE-W capable */ -#define MDIO_PCS_STAT2_RXFLTABLE	0x1000	/* Receive fault ability */ -#define MDIO_PCS_STAT2_TXFLTABLE	0x2000	/* Transmit fault ability */ - -/* Transmit disable register. */ -#define MDIO_PMD_TXDIS_GLOBAL		0x0001	/* Global PMD TX disable */ -#define MDIO_PMD_TXDIS_0		0x0002	/* PMD TX disable 0 */ -#define MDIO_PMD_TXDIS_1		0x0004	/* PMD TX disable 1 */ -#define MDIO_PMD_TXDIS_2		0x0008	/* PMD TX disable 2 */ -#define MDIO_PMD_TXDIS_3		0x0010	/* PMD TX disable 3 */ - -/* Receive signal detect register. */ -#define MDIO_PMD_RXDET_GLOBAL		0x0001	/* Global PMD RX signal detect */ -#define MDIO_PMD_RXDET_0		0x0002	/* PMD RX signal detect 0 */ -#define MDIO_PMD_RXDET_1		0x0004	/* PMD RX signal detect 1 */ -#define MDIO_PMD_RXDET_2		0x0008	/* PMD RX signal detect 2 */ -#define MDIO_PMD_RXDET_3		0x0010	/* PMD RX signal detect 3 */ - -/* Extended abilities register. */ -#define MDIO_PMA_EXTABLE_10GCX4		0x0001	/* 10GBASE-CX4 ability */ -#define MDIO_PMA_EXTABLE_10GBLRM	0x0002	/* 10GBASE-LRM ability */ -#define MDIO_PMA_EXTABLE_10GBT		0x0004	/* 10GBASE-T ability */ -#define MDIO_PMA_EXTABLE_10GBKX4	0x0008	/* 10GBASE-KX4 ability */ -#define MDIO_PMA_EXTABLE_10GBKR		0x0010	/* 10GBASE-KR ability */ -#define MDIO_PMA_EXTABLE_1000BT		0x0020	/* 1000BASE-T ability */ -#define MDIO_PMA_EXTABLE_1000BKX	0x0040	/* 1000BASE-KX ability */ -#define MDIO_PMA_EXTABLE_100BTX		0x0080	/* 100BASE-TX ability */ -#define MDIO_PMA_EXTABLE_10BT		0x0100	/* 10BASE-T ability */ - -/* PHY XGXS lane state register. */ -#define MDIO_PHYXS_LNSTAT_SYNC0		0x0001 -#define MDIO_PHYXS_LNSTAT_SYNC1		0x0002 -#define MDIO_PHYXS_LNSTAT_SYNC2		0x0004 -#define MDIO_PHYXS_LNSTAT_SYNC3		0x0008 -#define MDIO_PHYXS_LNSTAT_ALIGN		0x1000 - -/* PMA 10GBASE-T pair swap & polarity */ -#define MDIO_PMA_10GBT_SWAPPOL_ABNX	0x0001	/* Pair A/B uncrossed */ -#define MDIO_PMA_10GBT_SWAPPOL_CDNX	0x0002	/* Pair C/D uncrossed */ -#define MDIO_PMA_10GBT_SWAPPOL_AREV	0x0100	/* Pair A polarity reversed */ -#define MDIO_PMA_10GBT_SWAPPOL_BREV	0x0200	/* Pair B polarity reversed */ -#define MDIO_PMA_10GBT_SWAPPOL_CREV	0x0400	/* Pair C polarity reversed */ -#define MDIO_PMA_10GBT_SWAPPOL_DREV	0x0800	/* Pair D polarity reversed */ - -/* PMA 10GBASE-T TX power register. */ -#define MDIO_PMA_10GBT_TXPWR_SHORT	0x0001	/* Short-reach mode */ - -/* PMA 10GBASE-T SNR registers. */ -/* Value is SNR margin in dB, clamped to range [-127, 127], plus 0x8000. */ -#define MDIO_PMA_10GBT_SNR_BIAS		0x8000 -#define MDIO_PMA_10GBT_SNR_MAX		127 - -/* PMA 10GBASE-R FEC ability register. */ -#define MDIO_PMA_10GBR_FECABLE_ABLE	0x0001	/* FEC ability */ -#define MDIO_PMA_10GBR_FECABLE_ERRABLE	0x0002	/* FEC error indic. ability */ - -/* PCS 10GBASE-R/-T status register 1. */ -#define MDIO_PCS_10GBRT_STAT1_BLKLK	0x0001	/* Block lock attained */ - -/* PCS 10GBASE-R/-T status register 2. */ -#define MDIO_PCS_10GBRT_STAT2_ERR	0x00ff -#define MDIO_PCS_10GBRT_STAT2_BER	0x3f00 - -/* AN 10GBASE-T control register. */ -#define MDIO_AN_10GBT_CTRL_ADV10G	0x1000	/* Advertise 10GBASE-T */ - -/* AN 10GBASE-T status register. */ -#define MDIO_AN_10GBT_STAT_LPTRR	0x0200	/* LP training reset req. */ -#define MDIO_AN_10GBT_STAT_LPLTABLE	0x0400	/* LP loop timing ability */ -#define MDIO_AN_10GBT_STAT_LP10G	0x0800	/* LP is 10GBT capable */ -#define MDIO_AN_10GBT_STAT_REMOK	0x1000	/* Remote OK */ -#define MDIO_AN_10GBT_STAT_LOCOK	0x2000	/* Local OK */ -#define MDIO_AN_10GBT_STAT_MS		0x4000	/* Master/slave config */ -#define MDIO_AN_10GBT_STAT_MSFLT	0x8000	/* Master/slave config fault */ - -/* EEE Supported/Advertisement/LP Advertisement registers. - * - * EEE capability Register (3.20), Advertisement (7.60) and - * Link partner ability (7.61) registers have and can use the same identical - * bit masks. - */ -#define MDIO_AN_EEE_ADV_100TX	0x0002	/* Advertise 100TX EEE cap */ -#define MDIO_AN_EEE_ADV_1000T	0x0004	/* Advertise 1000T EEE cap */ -/* Note: the two defines above can be potentially used by the user-land - * and cannot remove them now. - * So, we define the new generic MDIO_EEE_100TX and MDIO_EEE_1000T macros - * using the previous ones (that can be considered obsolete). - */ -#define MDIO_EEE_100TX		MDIO_AN_EEE_ADV_100TX	/* 100TX EEE cap */ -#define MDIO_EEE_1000T		MDIO_AN_EEE_ADV_1000T	/* 1000T EEE cap */ -#define MDIO_EEE_10GT		0x0008	/* 10GT EEE cap */ -#define MDIO_EEE_1000KX		0x0010	/* 1000KX EEE cap */ -#define MDIO_EEE_10GKX4		0x0020	/* 10G KX4 EEE cap */ -#define MDIO_EEE_10GKR		0x0040	/* 10G KR EEE cap */ - -/* LASI RX_ALARM control/status registers. */ -#define MDIO_PMA_LASI_RX_PHYXSLFLT	0x0001	/* PHY XS RX local fault */ -#define MDIO_PMA_LASI_RX_PCSLFLT	0x0008	/* PCS RX local fault */ -#define MDIO_PMA_LASI_RX_PMALFLT	0x0010	/* PMA/PMD RX local fault */ -#define MDIO_PMA_LASI_RX_OPTICPOWERFLT	0x0020	/* RX optical power fault */ -#define MDIO_PMA_LASI_RX_WISLFLT	0x0200	/* WIS local fault */ - -/* LASI TX_ALARM control/status registers. */ -#define MDIO_PMA_LASI_TX_PHYXSLFLT	0x0001	/* PHY XS TX local fault */ -#define MDIO_PMA_LASI_TX_PCSLFLT	0x0008	/* PCS TX local fault */ -#define MDIO_PMA_LASI_TX_PMALFLT	0x0010	/* PMA/PMD TX local fault */ -#define MDIO_PMA_LASI_TX_LASERPOWERFLT	0x0080	/* Laser output power fault */ -#define MDIO_PMA_LASI_TX_LASERTEMPFLT	0x0100	/* Laser temperature fault */ -#define MDIO_PMA_LASI_TX_LASERBICURRFLT	0x0200	/* Laser bias current fault */ - -/* LASI control/status registers. */ -#define MDIO_PMA_LASI_LSALARM		0x0001	/* LS_ALARM enable/status */ -#define MDIO_PMA_LASI_TXALARM		0x0002	/* TX_ALARM enable/status */ -#define MDIO_PMA_LASI_RXALARM		0x0004	/* RX_ALARM enable/status */ - -/* Mapping between MDIO PRTAD/DEVAD and mii_ioctl_data::phy_id */ - -#define MDIO_PHY_ID_C45			0x8000 -#define MDIO_PHY_ID_PRTAD		0x03e0 -#define MDIO_PHY_ID_DEVAD		0x001f -#define MDIO_PHY_ID_C45_MASK						\ -	(MDIO_PHY_ID_C45 | MDIO_PHY_ID_PRTAD | MDIO_PHY_ID_DEVAD) - -static inline __u16 mdio_phy_id_c45(int prtad, int devad) -{ -	return MDIO_PHY_ID_C45 | (prtad << 5) | devad; -} +#include <uapi/linux/mdio.h> -#ifdef __KERNEL__  static inline bool mdio_phy_id_is_c45(int phy_id)  { @@ -460,5 +176,4 @@ static inline u16 ethtool_adv_to_mmd_eee_adv_t(u32 adv)  	return reg;  } -#endif /* __KERNEL__ */  #endif /* __LINUX_MDIO_H__ */ diff --git a/include/linux/media.h b/include/linux/media.h deleted file mode 100644 index 0ef883327de..00000000000 --- a/include/linux/media.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Multimedia device API - * - * Copyright (C) 2010 Nokia Corporation - * - * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com> - *	     Sakari Ailus <sakari.ailus@iki.fi> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ - -#ifndef __LINUX_MEDIA_H -#define __LINUX_MEDIA_H - -#include <linux/ioctl.h> -#include <linux/types.h> -#include <linux/version.h> - -#define MEDIA_API_VERSION	KERNEL_VERSION(0, 1, 0) - -struct media_device_info { -	char driver[16]; -	char model[32]; -	char serial[40]; -	char bus_info[32]; -	__u32 media_version; -	__u32 hw_revision; -	__u32 driver_version; -	__u32 reserved[31]; -}; - -#define MEDIA_ENT_ID_FLAG_NEXT		(1 << 31) - -#define MEDIA_ENT_TYPE_SHIFT		16 -#define MEDIA_ENT_TYPE_MASK		0x00ff0000 -#define MEDIA_ENT_SUBTYPE_MASK		0x0000ffff - -#define MEDIA_ENT_T_DEVNODE		(1 << MEDIA_ENT_TYPE_SHIFT) -#define MEDIA_ENT_T_DEVNODE_V4L		(MEDIA_ENT_T_DEVNODE + 1) -#define MEDIA_ENT_T_DEVNODE_FB		(MEDIA_ENT_T_DEVNODE + 2) -#define MEDIA_ENT_T_DEVNODE_ALSA	(MEDIA_ENT_T_DEVNODE + 3) -#define MEDIA_ENT_T_DEVNODE_DVB		(MEDIA_ENT_T_DEVNODE + 4) - -#define MEDIA_ENT_T_V4L2_SUBDEV		(2 << MEDIA_ENT_TYPE_SHIFT) -#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR	(MEDIA_ENT_T_V4L2_SUBDEV + 1) -#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH	(MEDIA_ENT_T_V4L2_SUBDEV + 2) -#define MEDIA_ENT_T_V4L2_SUBDEV_LENS	(MEDIA_ENT_T_V4L2_SUBDEV + 3) - -#define MEDIA_ENT_FL_DEFAULT		(1 << 0) - -struct media_entity_desc { -	__u32 id; -	char name[32]; -	__u32 type; -	__u32 revision; -	__u32 flags; -	__u32 group_id; -	__u16 pads; -	__u16 links; - -	__u32 reserved[4]; - -	union { -		/* Node specifications */ -		struct { -			__u32 major; -			__u32 minor; -		} v4l; -		struct { -			__u32 major; -			__u32 minor; -		} fb; -		struct { -			__u32 card; -			__u32 device; -			__u32 subdevice; -		} alsa; -		int dvb; - -		/* Sub-device specifications */ -		/* Nothing needed yet */ -		__u8 raw[184]; -	}; -}; - -#define MEDIA_PAD_FL_SINK		(1 << 0) -#define MEDIA_PAD_FL_SOURCE		(1 << 1) - -struct media_pad_desc { -	__u32 entity;		/* entity ID */ -	__u16 index;		/* pad index */ -	__u32 flags;		/* pad flags */ -	__u32 reserved[2]; -}; - -#define MEDIA_LNK_FL_ENABLED		(1 << 0) -#define MEDIA_LNK_FL_IMMUTABLE		(1 << 1) -#define MEDIA_LNK_FL_DYNAMIC		(1 << 2) - -struct media_link_desc { -	struct media_pad_desc source; -	struct media_pad_desc sink; -	__u32 flags; -	__u32 reserved[2]; -}; - -struct media_links_enum { -	__u32 entity; -	/* Should have enough room for pads elements */ -	struct media_pad_desc __user *pads; -	/* Should have enough room for links elements */ -	struct media_link_desc __user *links; -	__u32 reserved[4]; -}; - -#define MEDIA_IOC_DEVICE_INFO		_IOWR('|', 0x00, struct media_device_info) -#define MEDIA_IOC_ENUM_ENTITIES		_IOWR('|', 0x01, struct media_entity_desc) -#define MEDIA_IOC_ENUM_LINKS		_IOWR('|', 0x02, struct media_links_enum) -#define MEDIA_IOC_SETUP_LINK		_IOWR('|', 0x03, struct media_link_desc) - -#endif /* __LINUX_MEDIA_H */ diff --git a/include/linux/mei.h b/include/linux/mei.h deleted file mode 100644 index bc0d8b69c49..00000000000 --- a/include/linux/mei.h +++ /dev/null @@ -1,110 +0,0 @@ -/****************************************************************************** - * Intel Management Engine Interface (Intel MEI) Linux driver - * Intel MEI Interface Header - * - * This file is provided under a dual BSD/GPLv2 license.  When using or - * redistributing this file, you may do so under either license. - * - * GPL LICENSE SUMMARY - * - * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, - * USA - * - * The full GNU General Public License is included in this distribution - * in the file called LICENSE.GPL. - * - * Contact Information: - *	Intel Corporation. - *	linux-mei@linux.intel.com - *	http://www.intel.com - * - * BSD LICENSE - * - * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - *  * Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - *  * Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in - *    the documentation and/or other materials provided with the - *    distribution. - *  * Neither the name Intel Corporation nor the names of its - *    contributors may be used to endorse or promote products derived - *    from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -#ifndef _LINUX_MEI_H -#define _LINUX_MEI_H - -#include <linux/uuid.h> - -/* - * This IOCTL is used to associate the current file descriptor with a - * FW Client (given by UUID). This opens a communication channel - * between a host client and a FW client. From this point every read and write - * will communicate with the associated FW client. - * Only in close() (file_operation release()) the communication between - * the clients is disconnected - * - * The IOCTL argument is a struct with a union that contains - * the input parameter and the output parameter for this IOCTL. - * - * The input parameter is UUID of the FW Client. - * The output parameter is the properties of the FW client - * (FW protocol version and max message size). - * - */ -#define IOCTL_MEI_CONNECT_CLIENT \ -	_IOWR('H' , 0x01, struct mei_connect_client_data) - -/* - * Intel MEI client information struct - */ -struct mei_client { -	__u32 max_msg_length; -	__u8 protocol_version; -	__u8 reserved[3]; -}; - -/* - * IOCTL Connect Client Data structure - */ -struct mei_connect_client_data { -	union { -		uuid_le in_client_uuid; -		struct mei_client out_client_properties; -	}; -}; - -#endif /* _LINUX_MEI_H  */ diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h index cec56932560..e5ccb9ddd90 100644 --- a/include/linux/mempolicy.h +++ b/include/linux/mempolicy.h @@ -1,66 +1,10 @@ -#ifndef _LINUX_MEMPOLICY_H -#define _LINUX_MEMPOLICY_H 1 - -#include <linux/errno.h> -  /*   * NUMA memory policies for Linux.   * Copyright 2003,2004 Andi Kleen SuSE Labs   */ +#ifndef _LINUX_MEMPOLICY_H +#define _LINUX_MEMPOLICY_H 1 -/* - * Both the MPOL_* mempolicy mode and the MPOL_F_* optional mode flags are - * passed by the user to either set_mempolicy() or mbind() in an 'int' actual. - * The MPOL_MODE_FLAGS macro determines the legal set of optional mode flags. - */ - -/* Policies */ -enum { -	MPOL_DEFAULT, -	MPOL_PREFERRED, -	MPOL_BIND, -	MPOL_INTERLEAVE, -	MPOL_MAX,	/* always last member of enum */ -}; - -enum mpol_rebind_step { -	MPOL_REBIND_ONCE,	/* do rebind work at once(not by two step) */ -	MPOL_REBIND_STEP1,	/* first step(set all the newly nodes) */ -	MPOL_REBIND_STEP2,	/* second step(clean all the disallowed nodes)*/ -	MPOL_REBIND_NSTEP, -}; - -/* Flags for set_mempolicy */ -#define MPOL_F_STATIC_NODES	(1 << 15) -#define MPOL_F_RELATIVE_NODES	(1 << 14) - -/* - * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to - * either set_mempolicy() or mbind(). - */ -#define MPOL_MODE_FLAGS	(MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES) - -/* Flags for get_mempolicy */ -#define MPOL_F_NODE	(1<<0)	/* return next IL mode instead of node mask */ -#define MPOL_F_ADDR	(1<<1)	/* look up vma using address */ -#define MPOL_F_MEMS_ALLOWED (1<<2) /* return allowed memories */ - -/* Flags for mbind */ -#define MPOL_MF_STRICT	(1<<0)	/* Verify existing pages in the mapping */ -#define MPOL_MF_MOVE	(1<<1)	/* Move pages owned by this process to conform to mapping */ -#define MPOL_MF_MOVE_ALL (1<<2)	/* Move every page to conform to mapping */ -#define MPOL_MF_INTERNAL (1<<3)	/* Internal flags start here */ - -/* - * Internal flags that share the struct mempolicy flags word with - * "mode flags".  These flags are allocated from bit 0 up, as they - * are never OR'ed into the mode in mempolicy API arguments. - */ -#define MPOL_F_SHARED  (1 << 0)	/* identify shared policies */ -#define MPOL_F_LOCAL   (1 << 1)	/* preferred local allocation */ -#define MPOL_F_REBINDING (1 << 2)	/* identify policies in rebinding */ - -#ifdef __KERNEL__  #include <linux/mmzone.h>  #include <linux/slab.h> @@ -68,6 +12,7 @@ enum mpol_rebind_step {  #include <linux/spinlock.h>  #include <linux/nodemask.h>  #include <linux/pagemap.h> +#include <uapi/linux/mempolicy.h>  struct mm_struct; @@ -379,6 +324,4 @@ static inline int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol,  }  #endif /* CONFIG_NUMA */ -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/meye.h b/include/linux/meye.h deleted file mode 100644 index 0dd49954f74..00000000000 --- a/include/linux/meye.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Motion Eye video4linux driver for Sony Vaio PictureBook - * - * Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net> - * - * Copyright (C) 2001-2002 Alcôve <www.alcove.com> - * - * Copyright (C) 2000 Andrew Tridgell <tridge@valinux.com> - * - * Earlier work by Werner Almesberger, Paul `Rusty' Russell and Paul Mackerras. - * - * Some parts borrowed from various video4linux drivers, especially - * bttv-driver.c and zoran.c, see original files for credits. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef _MEYE_H_ -#define _MEYE_H_ - -/****************************************************************************/ -/* Private API for handling mjpeg capture / playback.                       */ -/****************************************************************************/ - -struct meye_params { -	unsigned char subsample; -	unsigned char quality; -	unsigned char sharpness; -	unsigned char agc; -	unsigned char picture; -	unsigned char framerate; -}; - -/* query the extended parameters */ -#define MEYEIOC_G_PARAMS	_IOR ('v', BASE_VIDIOC_PRIVATE+0, struct meye_params) -/* set the extended parameters */ -#define MEYEIOC_S_PARAMS	_IOW ('v', BASE_VIDIOC_PRIVATE+1, struct meye_params) -/* queue a buffer for mjpeg capture */ -#define MEYEIOC_QBUF_CAPT	_IOW ('v', BASE_VIDIOC_PRIVATE+2, int) -/* sync a previously queued mjpeg buffer */ -#define MEYEIOC_SYNC		_IOWR('v', BASE_VIDIOC_PRIVATE+3, int) -/* get a still uncompressed snapshot */ -#define MEYEIOC_STILLCAPT	_IO  ('v', BASE_VIDIOC_PRIVATE+4) -/* get a jpeg compressed snapshot */ -#define MEYEIOC_STILLJCAPT	_IOR ('v', BASE_VIDIOC_PRIVATE+5, int) - -/* V4L2 private controls */ -#define V4L2_CID_AGC		V4L2_CID_PRIVATE_BASE -#define V4L2_CID_MEYE_SHARPNESS	(V4L2_CID_PRIVATE_BASE + 1) -#define V4L2_CID_PICTURE	(V4L2_CID_PRIVATE_BASE + 2) -#define V4L2_CID_JPEGQUAL	(V4L2_CID_PRIVATE_BASE + 3) -#define V4L2_CID_FRAMERATE	(V4L2_CID_PRIVATE_BASE + 4) - -#endif diff --git a/include/linux/mii.h b/include/linux/mii.h index 8ef3a7a1159..47492c9631b 100644 --- a/include/linux/mii.h +++ b/include/linux/mii.h @@ -4,163 +4,12 @@   *   * Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com)   */ -  #ifndef __LINUX_MII_H__  #define __LINUX_MII_H__ -#include <linux/types.h> -#include <linux/ethtool.h> - -/* Generic MII registers. */ -#define MII_BMCR		0x00	/* Basic mode control register */ -#define MII_BMSR		0x01	/* Basic mode status register  */ -#define MII_PHYSID1		0x02	/* PHYS ID 1                   */ -#define MII_PHYSID2		0x03	/* PHYS ID 2                   */ -#define MII_ADVERTISE		0x04	/* Advertisement control reg   */ -#define MII_LPA			0x05	/* Link partner ability reg    */ -#define MII_EXPANSION		0x06	/* Expansion register          */ -#define MII_CTRL1000		0x09	/* 1000BASE-T control          */ -#define MII_STAT1000		0x0a	/* 1000BASE-T status           */ -#define	MII_MMD_CTRL		0x0d	/* MMD Access Control Register */ -#define	MII_MMD_DATA		0x0e	/* MMD Access Data Register */ -#define MII_ESTATUS		0x0f	/* Extended Status             */ -#define MII_DCOUNTER		0x12	/* Disconnect counter          */ -#define MII_FCSCOUNTER		0x13	/* False carrier counter       */ -#define MII_NWAYTEST		0x14	/* N-way auto-neg test reg     */ -#define MII_RERRCOUNTER		0x15	/* Receive error counter       */ -#define MII_SREVISION		0x16	/* Silicon revision            */ -#define MII_RESV1		0x17	/* Reserved...                 */ -#define MII_LBRERROR		0x18	/* Lpback, rx, bypass error    */ -#define MII_PHYADDR		0x19	/* PHY address                 */ -#define MII_RESV2		0x1a	/* Reserved...                 */ -#define MII_TPISTATUS		0x1b	/* TPI status for 10mbps       */ -#define MII_NCONFIG		0x1c	/* Network interface config    */ - -/* Basic mode control register. */ -#define BMCR_RESV		0x003f	/* Unused...                   */ -#define BMCR_SPEED1000		0x0040	/* MSB of Speed (1000)         */ -#define BMCR_CTST		0x0080	/* Collision test              */ -#define BMCR_FULLDPLX		0x0100	/* Full duplex                 */ -#define BMCR_ANRESTART		0x0200	/* Auto negotiation restart    */ -#define BMCR_ISOLATE		0x0400	/* Isolate data paths from MII */ -#define BMCR_PDOWN		0x0800	/* Enable low power state      */ -#define BMCR_ANENABLE		0x1000	/* Enable auto negotiation     */ -#define BMCR_SPEED100		0x2000	/* Select 100Mbps              */ -#define BMCR_LOOPBACK		0x4000	/* TXD loopback bits           */ -#define BMCR_RESET		0x8000	/* Reset to default state      */ - -/* Basic mode status register. */ -#define BMSR_ERCAP		0x0001	/* Ext-reg capability          */ -#define BMSR_JCD		0x0002	/* Jabber detected             */ -#define BMSR_LSTATUS		0x0004	/* Link status                 */ -#define BMSR_ANEGCAPABLE	0x0008	/* Able to do auto-negotiation */ -#define BMSR_RFAULT		0x0010	/* Remote fault detected       */ -#define BMSR_ANEGCOMPLETE	0x0020	/* Auto-negotiation complete   */ -#define BMSR_RESV		0x00c0	/* Unused...                   */ -#define BMSR_ESTATEN		0x0100	/* Extended Status in R15      */ -#define BMSR_100HALF2		0x0200	/* Can do 100BASE-T2 HDX       */ -#define BMSR_100FULL2		0x0400	/* Can do 100BASE-T2 FDX       */ -#define BMSR_10HALF		0x0800	/* Can do 10mbps, half-duplex  */ -#define BMSR_10FULL		0x1000	/* Can do 10mbps, full-duplex  */ -#define BMSR_100HALF		0x2000	/* Can do 100mbps, half-duplex */ -#define BMSR_100FULL		0x4000	/* Can do 100mbps, full-duplex */ -#define BMSR_100BASE4		0x8000	/* Can do 100mbps, 4k packets  */ - -/* Advertisement control register. */ -#define ADVERTISE_SLCT		0x001f	/* Selector bits               */ -#define ADVERTISE_CSMA		0x0001	/* Only selector supported     */ -#define ADVERTISE_10HALF	0x0020	/* Try for 10mbps half-duplex  */ -#define ADVERTISE_1000XFULL	0x0020	/* Try for 1000BASE-X full-duplex */ -#define ADVERTISE_10FULL	0x0040	/* Try for 10mbps full-duplex  */ -#define ADVERTISE_1000XHALF	0x0040	/* Try for 1000BASE-X half-duplex */ -#define ADVERTISE_100HALF	0x0080	/* Try for 100mbps half-duplex */ -#define ADVERTISE_1000XPAUSE	0x0080	/* Try for 1000BASE-X pause    */ -#define ADVERTISE_100FULL	0x0100	/* Try for 100mbps full-duplex */ -#define ADVERTISE_1000XPSE_ASYM	0x0100	/* Try for 1000BASE-X asym pause */ -#define ADVERTISE_100BASE4	0x0200	/* Try for 100mbps 4k packets  */ -#define ADVERTISE_PAUSE_CAP	0x0400	/* Try for pause               */ -#define ADVERTISE_PAUSE_ASYM	0x0800	/* Try for asymetric pause     */ -#define ADVERTISE_RESV		0x1000	/* Unused...                   */ -#define ADVERTISE_RFAULT	0x2000	/* Say we can detect faults    */ -#define ADVERTISE_LPACK		0x4000	/* Ack link partners response  */ -#define ADVERTISE_NPAGE		0x8000	/* Next page bit               */ - -#define ADVERTISE_FULL		(ADVERTISE_100FULL | ADVERTISE_10FULL | \ -				  ADVERTISE_CSMA) -#define ADVERTISE_ALL		(ADVERTISE_10HALF | ADVERTISE_10FULL | \ -				  ADVERTISE_100HALF | ADVERTISE_100FULL) - -/* Link partner ability register. */ -#define LPA_SLCT		0x001f	/* Same as advertise selector  */ -#define LPA_10HALF		0x0020	/* Can do 10mbps half-duplex   */ -#define LPA_1000XFULL		0x0020	/* Can do 1000BASE-X full-duplex */ -#define LPA_10FULL		0x0040	/* Can do 10mbps full-duplex   */ -#define LPA_1000XHALF		0x0040	/* Can do 1000BASE-X half-duplex */ -#define LPA_100HALF		0x0080	/* Can do 100mbps half-duplex  */ -#define LPA_1000XPAUSE		0x0080	/* Can do 1000BASE-X pause     */ -#define LPA_100FULL		0x0100	/* Can do 100mbps full-duplex  */ -#define LPA_1000XPAUSE_ASYM	0x0100	/* Can do 1000BASE-X pause asym*/ -#define LPA_100BASE4		0x0200	/* Can do 100mbps 4k packets   */ -#define LPA_PAUSE_CAP		0x0400	/* Can pause                   */ -#define LPA_PAUSE_ASYM		0x0800	/* Can pause asymetrically     */ -#define LPA_RESV		0x1000	/* Unused...                   */ -#define LPA_RFAULT		0x2000	/* Link partner faulted        */ -#define LPA_LPACK		0x4000	/* Link partner acked us       */ -#define LPA_NPAGE		0x8000	/* Next page bit               */ - -#define LPA_DUPLEX		(LPA_10FULL | LPA_100FULL) -#define LPA_100			(LPA_100FULL | LPA_100HALF | LPA_100BASE4) - -/* Expansion register for auto-negotiation. */ -#define EXPANSION_NWAY		0x0001	/* Can do N-way auto-nego      */ -#define EXPANSION_LCWP		0x0002	/* Got new RX page code word   */ -#define EXPANSION_ENABLENPAGE	0x0004	/* This enables npage words    */ -#define EXPANSION_NPCAPABLE	0x0008	/* Link partner supports npage */ -#define EXPANSION_MFAULTS	0x0010	/* Multiple faults detected    */ -#define EXPANSION_RESV		0xffe0	/* Unused...                   */ - -#define ESTATUS_1000_TFULL	0x2000	/* Can do 1000BT Full          */ -#define ESTATUS_1000_THALF	0x1000	/* Can do 1000BT Half          */ - -/* N-way test register. */ -#define NWAYTEST_RESV1		0x00ff	/* Unused...                   */ -#define NWAYTEST_LOOPBACK	0x0100	/* Enable loopback for N-way   */ -#define NWAYTEST_RESV2		0xfe00	/* Unused...                   */ - -/* 1000BASE-T Control register */ -#define ADVERTISE_1000FULL	0x0200  /* Advertise 1000BASE-T full duplex */ -#define ADVERTISE_1000HALF	0x0100  /* Advertise 1000BASE-T half duplex */ -#define CTL1000_AS_MASTER	0x0800 -#define CTL1000_ENABLE_MASTER	0x1000 - -/* 1000BASE-T Status register */ -#define LPA_1000LOCALRXOK	0x2000	/* Link partner local receiver status */ -#define LPA_1000REMRXOK		0x1000	/* Link partner remote receiver status */ -#define LPA_1000FULL		0x0800	/* Link partner 1000BASE-T full duplex */ -#define LPA_1000HALF		0x0400	/* Link partner 1000BASE-T half duplex */ - -/* Flow control flags */ -#define FLOW_CTRL_TX		0x01 -#define FLOW_CTRL_RX		0x02 - -/* MMD Access Control register fields */ -#define MII_MMD_CTRL_DEVAD_MASK	0x1f	/* Mask MMD DEVAD*/ -#define MII_MMD_CTRL_ADDR	0x0000	/* Address */ -#define MII_MMD_CTRL_NOINCR	0x4000	/* no post increment */ -#define MII_MMD_CTRL_INCR_RDWT	0x8000	/* post increment on reads & writes */ -#define MII_MMD_CTRL_INCR_ON_WT	0xC000	/* post increment on writes only */ - -/* This structure is used in all SIOCxMIIxxx ioctl calls */ -struct mii_ioctl_data { -	__u16		phy_id; -	__u16		reg_num; -	__u16		val_in; -	__u16		val_out; -}; - -#ifdef __KERNEL__  #include <linux/if.h> +#include <uapi/linux/mii.h>  struct ethtool_cmd; @@ -487,5 +336,4 @@ static inline u8 mii_resolve_flowctrl_fdx(u16 lcladv, u16 rmtadv)  	return cap;  } -#endif /* __KERNEL__ */  #endif /* __LINUX_MII_H__ */ diff --git a/include/linux/minix_fs.h b/include/linux/minix_fs.h deleted file mode 100644 index 13fe09e0576..00000000000 --- a/include/linux/minix_fs.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef _LINUX_MINIX_FS_H -#define _LINUX_MINIX_FS_H - -#include <linux/types.h> -#include <linux/magic.h> - -/* - * The minix filesystem constants/structures - */ - -/* - * Thanks to Kees J Bot for sending me the definitions of the new - * minix filesystem (aka V2) with bigger inodes and 32-bit block - * pointers. - */ - -#define MINIX_ROOT_INO 1 - -/* Not the same as the bogus LINK_MAX in <linux/limits.h>. Oh well. */ -#define MINIX_LINK_MAX	250 -#define MINIX2_LINK_MAX	65530 - -#define MINIX_I_MAP_SLOTS	8 -#define MINIX_Z_MAP_SLOTS	64 -#define MINIX_VALID_FS		0x0001		/* Clean fs. */ -#define MINIX_ERROR_FS		0x0002		/* fs has errors. */ - -#define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode))) - -/* - * This is the original minix inode layout on disk. - * Note the 8-bit gid and atime and ctime. - */ -struct minix_inode { -	__u16 i_mode; -	__u16 i_uid; -	__u32 i_size; -	__u32 i_time; -	__u8  i_gid; -	__u8  i_nlinks; -	__u16 i_zone[9]; -}; - -/* - * The new minix inode has all the time entries, as well as - * long block numbers and a third indirect block (7+1+1+1 - * instead of 7+1+1). Also, some previously 8-bit values are - * now 16-bit. The inode is now 64 bytes instead of 32. - */ -struct minix2_inode { -	__u16 i_mode; -	__u16 i_nlinks; -	__u16 i_uid; -	__u16 i_gid; -	__u32 i_size; -	__u32 i_atime; -	__u32 i_mtime; -	__u32 i_ctime; -	__u32 i_zone[10]; -}; - -/* - * minix super-block data on disk - */ -struct minix_super_block { -	__u16 s_ninodes; -	__u16 s_nzones; -	__u16 s_imap_blocks; -	__u16 s_zmap_blocks; -	__u16 s_firstdatazone; -	__u16 s_log_zone_size; -	__u32 s_max_size; -	__u16 s_magic; -	__u16 s_state; -	__u32 s_zones; -}; - -/* - * V3 minix super-block data on disk - */ -struct minix3_super_block { -	__u32 s_ninodes; -	__u16 s_pad0; -	__u16 s_imap_blocks; -	__u16 s_zmap_blocks; -	__u16 s_firstdatazone; -	__u16 s_log_zone_size; -	__u16 s_pad1; -	__u32 s_max_size; -	__u32 s_zones; -	__u16 s_magic; -	__u16 s_pad2; -	__u16 s_blocksize; -	__u8  s_disk_version; -}; - -struct minix_dir_entry { -	__u16 inode; -	char name[0]; -}; - -struct minix3_dir_entry { -	__u32 inode; -	char name[0]; -}; -#endif diff --git a/include/linux/mman.h b/include/linux/mman.h index 77cec2f45cb..d09dde1e57f 100644 --- a/include/linux/mman.h +++ b/include/linux/mman.h @@ -1,20 +1,11 @@  #ifndef _LINUX_MMAN_H  #define _LINUX_MMAN_H -#include <asm/mman.h> - -#define MREMAP_MAYMOVE	1 -#define MREMAP_FIXED	2 - -#define OVERCOMMIT_GUESS		0 -#define OVERCOMMIT_ALWAYS		1 -#define OVERCOMMIT_NEVER		2 - -#ifdef __KERNEL__  #include <linux/mm.h>  #include <linux/percpu_counter.h>  #include <linux/atomic.h> +#include <uapi/linux/mman.h>  extern int sysctl_overcommit_memory;  extern int sysctl_overcommit_ratio; @@ -88,5 +79,4 @@ calc_vm_flag_bits(unsigned long flags)  	       _calc_vm_trans(flags, MAP_DENYWRITE,  VM_DENYWRITE ) |  	       _calc_vm_trans(flags, MAP_LOCKED,     VM_LOCKED    );  } -#endif /* __KERNEL__ */  #endif /* _LINUX_MMAN_H */ diff --git a/include/linux/mmtimer.h b/include/linux/mmtimer.h deleted file mode 100644 index 884cabf1608..00000000000 --- a/include/linux/mmtimer.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Intel Multimedia Timer device interface - * - * This file is subject to the terms and conditions of the GNU General Public - * License.  See the file "COPYING" in the main directory of this archive - * for more details. - * - * Copyright (c) 2001-2004 Silicon Graphics, Inc.  All rights reserved. - * - * This file should define an interface compatible with the IA-PC Multimedia - * Timers Draft Specification (rev. 0.97) from Intel.  Note that some - * hardware may not be able to safely export its registers to userspace, - * so the ioctl interface should support all necessary functionality. - * - * 11/01/01 - jbarnes - initial revision - * 9/10/04 - Christoph Lameter - remove interrupt support - * 9/17/04 - jbarnes - remove test program, move some #defines to the driver - */ - -#ifndef _LINUX_MMTIMER_H -#define _LINUX_MMTIMER_H - -/* - * Breakdown of the ioctl's available.  An 'optional' next to the command - * indicates that supporting this command is optional, while 'required' - * commands must be implemented if conformance is desired. - * - * MMTIMER_GETOFFSET - optional - *   Should return the offset (relative to the start of the page where the - *   registers are mapped) for the counter in question. - * - * MMTIMER_GETRES - required - *   The resolution of the clock in femto (10^-15) seconds - * - * MMTIMER_GETFREQ - required - *   Frequency of the clock in Hz - * - * MMTIMER_GETBITS - required - *   Number of bits in the clock's counter - * - * MMTIMER_MMAPAVAIL - required - *   Returns nonzero if the registers can be mmap'd into userspace, 0 otherwise - * - * MMTIMER_GETCOUNTER - required - *   Gets the current value in the counter - */ -#define MMTIMER_IOCTL_BASE 'm' - -#define MMTIMER_GETOFFSET _IO(MMTIMER_IOCTL_BASE, 0) -#define MMTIMER_GETRES _IOR(MMTIMER_IOCTL_BASE, 1, unsigned long) -#define MMTIMER_GETFREQ _IOR(MMTIMER_IOCTL_BASE, 2, unsigned long) -#define MMTIMER_GETBITS _IO(MMTIMER_IOCTL_BASE, 4) -#define MMTIMER_MMAPAVAIL _IO(MMTIMER_IOCTL_BASE, 6) -#define MMTIMER_GETCOUNTER _IOR(MMTIMER_IOCTL_BASE, 9, unsigned long) - -#endif /* _LINUX_MMTIMER_H */ diff --git a/include/linux/mqueue.h b/include/linux/mqueue.h deleted file mode 100644 index 8b5a79615fb..00000000000 --- a/include/linux/mqueue.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2003 Krzysztof Benedyczak & Michal Wronski - -   This program is free software; you can redistribute it and/or -   modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   It is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with this software; if not, write to the Free -   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -   02111-1307 USA.  */ - -#ifndef _LINUX_MQUEUE_H -#define _LINUX_MQUEUE_H - -#define MQ_PRIO_MAX 	32768 -/* per-uid limit of kernel memory used by mqueue, in bytes */ -#define MQ_BYTES_MAX	819200 - -struct mq_attr { -	long	mq_flags;	/* message queue flags			*/ -	long	mq_maxmsg;	/* maximum number of messages		*/ -	long	mq_msgsize;	/* maximum message size			*/ -	long	mq_curmsgs;	/* number of messages currently queued	*/ -	long	__reserved[4];	/* ignored for input, zeroed for output */ -}; - -/* - * SIGEV_THREAD implementation: - * SIGEV_THREAD must be implemented in user space. If SIGEV_THREAD is passed - * to mq_notify, then - * - sigev_signo must be the file descriptor of an AF_NETLINK socket. It's not - *   necessary that the socket is bound. - * - sigev_value.sival_ptr must point to a cookie that is NOTIFY_COOKIE_LEN - *   bytes long. - * If the notification is triggered, then the cookie is sent to the netlink - * socket. The last byte of the cookie is replaced with the NOTIFY_?? codes: - * NOTIFY_WOKENUP if the notification got triggered, NOTIFY_REMOVED if it was - * removed, either due to a close() on the message queue fd or due to a - * mq_notify() that removed the notification. - */ -#define NOTIFY_NONE	0 -#define NOTIFY_WOKENUP	1 -#define NOTIFY_REMOVED	2 - -#define NOTIFY_COOKIE_LEN	32 - -#endif diff --git a/include/linux/mroute.h b/include/linux/mroute.h index 46caaf44339..ea00d9162ee 100644 --- a/include/linux/mroute.h +++ b/include/linux/mroute.h @@ -1,138 +1,10 @@  #ifndef __LINUX_MROUTE_H  #define __LINUX_MROUTE_H -#include <linux/sockios.h> -#include <linux/types.h> -#ifdef __KERNEL__  #include <linux/in.h> -#endif - -/* - *	Based on the MROUTING 3.5 defines primarily to keep - *	source compatibility with BSD. - * - *	See the mrouted code for the original history. - * - *      Protocol Independent Multicast (PIM) data structures included - *      Carlos Picoto (cap@di.fc.ul.pt) - * - */ - -#define MRT_BASE	200 -#define MRT_INIT	(MRT_BASE)	/* Activate the kernel mroute code 	*/ -#define MRT_DONE	(MRT_BASE+1)	/* Shutdown the kernel mroute		*/ -#define MRT_ADD_VIF	(MRT_BASE+2)	/* Add a virtual interface		*/ -#define MRT_DEL_VIF	(MRT_BASE+3)	/* Delete a virtual interface		*/ -#define MRT_ADD_MFC	(MRT_BASE+4)	/* Add a multicast forwarding entry	*/ -#define MRT_DEL_MFC	(MRT_BASE+5)	/* Delete a multicast forwarding entry	*/ -#define MRT_VERSION	(MRT_BASE+6)	/* Get the kernel multicast version	*/ -#define MRT_ASSERT	(MRT_BASE+7)	/* Activate PIM assert mode		*/ -#define MRT_PIM		(MRT_BASE+8)	/* enable PIM code			*/ -#define MRT_TABLE	(MRT_BASE+9)	/* Specify mroute table ID		*/ - -#define SIOCGETVIFCNT	SIOCPROTOPRIVATE	/* IP protocol privates */ -#define SIOCGETSGCNT	(SIOCPROTOPRIVATE+1) -#define SIOCGETRPF	(SIOCPROTOPRIVATE+2) - -#define MAXVIFS		32	 -typedef unsigned long vifbitmap_t;	/* User mode code depends on this lot */ -typedef unsigned short vifi_t; -#define ALL_VIFS	((vifi_t)(-1)) - -/* - *	Same idea as select - */ -  -#define VIFM_SET(n,m)	((m)|=(1<<(n))) -#define VIFM_CLR(n,m)	((m)&=~(1<<(n))) -#define VIFM_ISSET(n,m)	((m)&(1<<(n))) -#define VIFM_CLRALL(m)	((m)=0) -#define VIFM_COPY(mfrom,mto)	((mto)=(mfrom)) -#define VIFM_SAME(m1,m2)	((m1)==(m2)) - -/* - *	Passed by mrouted for an MRT_ADD_VIF - again we use the - *	mrouted 3.6 structures for compatibility - */ -  -struct vifctl { -	vifi_t	vifc_vifi;		/* Index of VIF */ -	unsigned char vifc_flags;	/* VIFF_ flags */ -	unsigned char vifc_threshold;	/* ttl limit */ -	unsigned int vifc_rate_limit;	/* Rate limiter values (NI) */ -	union { -		struct in_addr vifc_lcl_addr;     /* Local interface address */ -		int            vifc_lcl_ifindex;  /* Local interface index   */ -	}; -	struct in_addr vifc_rmt_addr;	/* IPIP tunnel addr */ -}; - -#define VIFF_TUNNEL		0x1	/* IPIP tunnel */ -#define VIFF_SRCRT		0x2	/* NI */ -#define VIFF_REGISTER		0x4	/* register vif	*/ -#define VIFF_USE_IFINDEX	0x8	/* use vifc_lcl_ifindex instead of -					   vifc_lcl_addr to find an interface */ - -/* - *	Cache manipulation structures for mrouted and PIMd - */ -  -struct mfcctl { -	struct in_addr mfcc_origin;		/* Origin of mcast	*/ -	struct in_addr mfcc_mcastgrp;		/* Group in question	*/ -	vifi_t	mfcc_parent;			/* Where it arrived	*/ -	unsigned char mfcc_ttls[MAXVIFS];	/* Where it is going	*/ -	unsigned int mfcc_pkt_cnt;		/* pkt count for src-grp */ -	unsigned int mfcc_byte_cnt; -	unsigned int mfcc_wrong_if; -	int	     mfcc_expire; -}; - -/*  - *	Group count retrieval for mrouted - */ -  -struct sioc_sg_req { -	struct in_addr src; -	struct in_addr grp; -	unsigned long pktcnt; -	unsigned long bytecnt; -	unsigned long wrong_if; -}; - -/* - *	To get vif packet counts - */ - -struct sioc_vif_req { -	vifi_t	vifi;		/* Which iface */ -	unsigned long icount;	/* In packets */ -	unsigned long ocount;	/* Out packets */ -	unsigned long ibytes;	/* In bytes */ -	unsigned long obytes;	/* Out bytes */ -}; - -/* - *	This is the format the mroute daemon expects to see IGMP control - *	data. Magically happens to be like an IP packet as per the original - */ -  -struct igmpmsg { -	__u32 unused1,unused2; -	unsigned char im_msgtype;		/* What is this */ -	unsigned char im_mbz;			/* Must be zero */ -	unsigned char im_vif;			/* Interface (this ought to be a vifi_t!) */ -	unsigned char unused3; -	struct in_addr im_src,im_dst; -}; - -/* - *	That's all usermode folks - */ - -#ifdef __KERNEL__  #include <linux/pim.h>  #include <net/sock.h> +#include <uapi/linux/mroute.h>  #ifdef CONFIG_IP_MROUTE  static inline int ip_mroute_opt(int opt) @@ -228,24 +100,8 @@ struct mfc_cache {  #define MFC_HASH(a,b)	((((__force u32)(__be32)a)^(((__force u32)(__be32)b)>>2))&(MFC_LINES-1))  #endif		 -#endif - - -#define MFC_ASSERT_THRESH (3*HZ)		/* Maximal freq. of asserts */ - -/* - *	Pseudo messages used by mrouted - */ - -#define IGMPMSG_NOCACHE		1		/* Kern cache fill request to mrouted */ -#define IGMPMSG_WRONGVIF	2		/* For PIM assert processing (unused) */ -#define IGMPMSG_WHOLEPKT	3		/* For PIM Register processing */ - -#ifdef __KERNEL__  struct rtmsg;  extern int ipmr_get_route(struct net *net, struct sk_buff *skb,  			  __be32 saddr, __be32 daddr,  			  struct rtmsg *rtm, int nowait);  #endif - -#endif diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h index 6d8c7251eb8..a223561ba12 100644 --- a/include/linux/mroute6.h +++ b/include/linux/mroute6.h @@ -1,123 +1,11 @@  #ifndef __LINUX_MROUTE6_H  #define __LINUX_MROUTE6_H -#include <linux/types.h> -#include <linux/sockios.h> - -/* - *	Based on the MROUTING 3.5 defines primarily to keep - *	source compatibility with BSD. - * - *	See the pim6sd code for the original history. - * - *      Protocol Independent Multicast (PIM) data structures included - *      Carlos Picoto (cap@di.fc.ul.pt) - * - */ - -#define MRT6_BASE	200 -#define MRT6_INIT	(MRT6_BASE)	/* Activate the kernel mroute code 	*/ -#define MRT6_DONE	(MRT6_BASE+1)	/* Shutdown the kernel mroute		*/ -#define MRT6_ADD_MIF	(MRT6_BASE+2)	/* Add a virtual interface		*/ -#define MRT6_DEL_MIF	(MRT6_BASE+3)	/* Delete a virtual interface		*/ -#define MRT6_ADD_MFC	(MRT6_BASE+4)	/* Add a multicast forwarding entry	*/ -#define MRT6_DEL_MFC	(MRT6_BASE+5)	/* Delete a multicast forwarding entry	*/ -#define MRT6_VERSION	(MRT6_BASE+6)	/* Get the kernel multicast version	*/ -#define MRT6_ASSERT	(MRT6_BASE+7)	/* Activate PIM assert mode		*/ -#define MRT6_PIM	(MRT6_BASE+8)	/* enable PIM code			*/ -#define MRT6_TABLE	(MRT6_BASE+9)	/* Specify mroute table ID		*/ - -#define SIOCGETMIFCNT_IN6	SIOCPROTOPRIVATE	/* IP protocol privates */ -#define SIOCGETSGCNT_IN6	(SIOCPROTOPRIVATE+1) -#define SIOCGETRPF	(SIOCPROTOPRIVATE+2) - -#define MAXMIFS		32 -typedef unsigned long mifbitmap_t;	/* User mode code depends on this lot */ -typedef unsigned short mifi_t; -#define ALL_MIFS	((mifi_t)(-1)) - -#ifndef IF_SETSIZE -#define IF_SETSIZE	256 -#endif - -typedef	__u32		if_mask; -#define NIFBITS (sizeof(if_mask) * 8)        /* bits per mask */ - -#if !defined(__KERNEL__) -#if !defined(DIV_ROUND_UP) -#define	DIV_ROUND_UP(x,y)	(((x) + ((y) - 1)) / (y)) -#endif -#endif - -typedef struct if_set { -	if_mask ifs_bits[DIV_ROUND_UP(IF_SETSIZE, NIFBITS)]; -} if_set; - -#define IF_SET(n, p)    ((p)->ifs_bits[(n)/NIFBITS] |= (1 << ((n) % NIFBITS))) -#define IF_CLR(n, p)    ((p)->ifs_bits[(n)/NIFBITS] &= ~(1 << ((n) % NIFBITS))) -#define IF_ISSET(n, p)  ((p)->ifs_bits[(n)/NIFBITS] & (1 << ((n) % NIFBITS))) -#define IF_COPY(f, t)   bcopy(f, t, sizeof(*(f))) -#define IF_ZERO(p)      bzero(p, sizeof(*(p))) - -/* - *	Passed by mrouted for an MRT_ADD_MIF - again we use the - *	mrouted 3.6 structures for compatibility - */ - -struct mif6ctl { -	mifi_t	mif6c_mifi;		/* Index of MIF */ -	unsigned char mif6c_flags;	/* MIFF_ flags */ -	unsigned char vifc_threshold;	/* ttl limit */ -	__u16	 mif6c_pifi;		/* the index of the physical IF */ -	unsigned int vifc_rate_limit;	/* Rate limiter values (NI) */ -}; - -#define MIFF_REGISTER	0x1	/* register vif	*/ - -/* - *	Cache manipulation structures for mrouted and PIMd - */ - -struct mf6cctl { -	struct sockaddr_in6 mf6cc_origin;		/* Origin of mcast	*/ -	struct sockaddr_in6 mf6cc_mcastgrp;		/* Group in question	*/ -	mifi_t	mf6cc_parent;			/* Where it arrived	*/ -	struct if_set mf6cc_ifset;		/* Where it is going */ -}; - -/* - *	Group count retrieval for pim6sd - */ - -struct sioc_sg_req6 { -	struct sockaddr_in6 src; -	struct sockaddr_in6 grp; -	unsigned long pktcnt; -	unsigned long bytecnt; -	unsigned long wrong_if; -}; - -/* - *	To get vif packet counts - */ - -struct sioc_mif_req6 { -	mifi_t	mifi;		/* Which iface */ -	unsigned long icount;	/* In packets */ -	unsigned long ocount;	/* Out packets */ -	unsigned long ibytes;	/* In bytes */ -	unsigned long obytes;	/* Out bytes */ -}; - -/* - *	That's all usermode folks - */ - -#ifdef __KERNEL__  #include <linux/pim.h>  #include <linux/skbuff.h>	/* for struct sk_buff_head */  #include <net/net_namespace.h> +#include <uapi/linux/mroute6.h>  #ifdef CONFIG_IPV6_MROUTE  static inline int ip6_mroute_opt(int opt) @@ -225,9 +113,6 @@ struct mfc6_cache {  #define MFC_ASSERT_THRESH (3*HZ)		/* Maximal freq. of asserts */ -#endif - -#ifdef __KERNEL__  struct rtmsg;  extern int ip6mr_get_route(struct net *net, struct sk_buff *skb,  			   struct rtmsg *rtm, int nowait); @@ -246,24 +131,3 @@ static inline int ip6mr_sk_done(struct sock *sk)  }  #endif  #endif - -/* - * Structure used to communicate from kernel to multicast router. - * We'll overlay the structure onto an MLD header (not an IPv6 heder like igmpmsg{} - * used for IPv4 implementation). This is because this structure will be passed via an - * IPv6 raw socket, on which an application will only receiver the payload i.e the data after - * the IPv6 header and all the extension headers. (See section 3 of RFC 3542) - */ - -struct mrt6msg { -#define MRT6MSG_NOCACHE		1 -#define MRT6MSG_WRONGMIF	2 -#define MRT6MSG_WHOLEPKT	3		/* used for use level encap */ -	__u8		im6_mbz;		/* must be zero		   */ -	__u8		im6_msgtype;		/* what type of message    */ -	__u16		im6_mif;		/* mif rec'd on		   */ -	__u32		im6_pad;		/* padding for 64 bit arch */ -	struct in6_addr	im6_src, im6_dst; -}; - -#endif diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index 11cc2ac67e7..e1b163f912f 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h @@ -1,174 +1,11 @@  #ifndef _LINUX_MSDOS_FS_H  #define _LINUX_MSDOS_FS_H -#include <linux/types.h> -#include <linux/magic.h> -#include <asm/byteorder.h> +#include <uapi/linux/msdos_fs.h> -/* - * The MS-DOS filesystem constants/structures - */ - -#define SECTOR_SIZE	512		/* sector size (bytes) */ -#define SECTOR_BITS	9		/* log2(SECTOR_SIZE) */ -#define MSDOS_DPB	(MSDOS_DPS)	/* dir entries per block */ -#define MSDOS_DPB_BITS	4		/* log2(MSDOS_DPB) */ -#define MSDOS_DPS	(SECTOR_SIZE / sizeof(struct msdos_dir_entry)) -#define MSDOS_DPS_BITS	4		/* log2(MSDOS_DPS) */ -#define MSDOS_LONGNAME	256		/* maximum name length */ -#define CF_LE_W(v)	le16_to_cpu(v) -#define CF_LE_L(v)	le32_to_cpu(v) -#define CT_LE_W(v)	cpu_to_le16(v) -#define CT_LE_L(v)	cpu_to_le32(v) - -#define MSDOS_ROOT_INO	 1	/* The root inode number */ -#define MSDOS_FSINFO_INO 2	/* Used for managing the FSINFO block */ - -#define MSDOS_DIR_BITS	5	/* log2(sizeof(struct msdos_dir_entry)) */ - -/* directory limit */ -#define FAT_MAX_DIR_ENTRIES	(65536) -#define FAT_MAX_DIR_SIZE	(FAT_MAX_DIR_ENTRIES << MSDOS_DIR_BITS) - -#define ATTR_NONE	0	/* no attribute bits */ -#define ATTR_RO		1	/* read-only */ -#define ATTR_HIDDEN	2	/* hidden */ -#define ATTR_SYS	4	/* system */ -#define ATTR_VOLUME	8	/* volume label */ -#define ATTR_DIR	16	/* directory */ -#define ATTR_ARCH	32	/* archived */ - -/* attribute bits that are copied "as is" */ -#define ATTR_UNUSED	(ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN) -/* bits that are used by the Windows 95/Windows NT extended FAT */ -#define ATTR_EXT	(ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME) - -#define CASE_LOWER_BASE	8	/* base is lower case */ -#define CASE_LOWER_EXT	16	/* extension is lower case */ - -#define DELETED_FLAG	0xe5	/* marks file as deleted when in name[0] */ -#define IS_FREE(n)	(!*(n) || *(n) == DELETED_FLAG) - -#define FAT_LFN_LEN	255	/* maximum long name length */ -#define MSDOS_NAME	11	/* maximum name length */ -#define MSDOS_SLOTS	21	/* max # of slots for short and long names */ -#define MSDOS_DOT	".          "	/* ".", padded to MSDOS_NAME chars */ -#define MSDOS_DOTDOT	"..         "	/* "..", padded to MSDOS_NAME chars */ - -#define FAT_FIRST_ENT(s, x)	((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \ -	MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x)) - -/* start of data cluster's entry (number of reserved clusters) */ -#define FAT_START_ENT	2 - -/* maximum number of clusters */ -#define MAX_FAT12	0xFF4 -#define MAX_FAT16	0xFFF4 -#define MAX_FAT32	0x0FFFFFF6 -#define MAX_FAT(s)	(MSDOS_SB(s)->fat_bits == 32 ? MAX_FAT32 : \ -	MSDOS_SB(s)->fat_bits == 16 ? MAX_FAT16 : MAX_FAT12) - -/* bad cluster mark */ -#define BAD_FAT12	0xFF7 -#define BAD_FAT16	0xFFF7 -#define BAD_FAT32	0x0FFFFFF7 - -/* standard EOF */ -#define EOF_FAT12	0xFFF -#define EOF_FAT16	0xFFFF -#define EOF_FAT32	0x0FFFFFFF - -#define FAT_ENT_FREE	(0) -#define FAT_ENT_BAD	(BAD_FAT32) -#define FAT_ENT_EOF	(EOF_FAT32) - -#define FAT_FSINFO_SIG1	0x41615252 -#define FAT_FSINFO_SIG2	0x61417272 -#define IS_FSINFO(x)	(le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \ -			 && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2) - -struct __fat_dirent { -	long		d_ino; -	__kernel_off_t	d_off; -	unsigned short	d_reclen; -	char		d_name[256]; /* We must not include limits.h! */ -}; - -/* - * ioctl commands - */ -#define VFAT_IOCTL_READDIR_BOTH		_IOR('r', 1, struct __fat_dirent[2]) -#define VFAT_IOCTL_READDIR_SHORT	_IOR('r', 2, struct __fat_dirent[2]) -/* <linux/videotext.h> has used 0x72 ('r') in collision, so skip a few */ -#define FAT_IOCTL_GET_ATTRIBUTES	_IOR('r', 0x10, __u32) -#define FAT_IOCTL_SET_ATTRIBUTES	_IOW('r', 0x11, __u32) - -struct fat_boot_sector { -	__u8	ignored[3];	/* Boot strap short or near jump */ -	__u8	system_id[8];	/* Name - can be used to special case -				   partition manager volumes */ -	__u8	sector_size[2];	/* bytes per logical sector */ -	__u8	sec_per_clus;	/* sectors/cluster */ -	__le16	reserved;	/* reserved sectors */ -	__u8	fats;		/* number of FATs */ -	__u8	dir_entries[2];	/* root directory entries */ -	__u8	sectors[2];	/* number of sectors */ -	__u8	media;		/* media code */ -	__le16	fat_length;	/* sectors/FAT */ -	__le16	secs_track;	/* sectors per track */ -	__le16	heads;		/* number of heads */ -	__le32	hidden;		/* hidden sectors (unused) */ -	__le32	total_sect;	/* number of sectors (if sectors == 0) */ - -	/* The following fields are only used by FAT32 */ -	__le32	fat32_length;	/* sectors/FAT */ -	__le16	flags;		/* bit 8: fat mirroring, low 4: active fat */ -	__u8	version[2];	/* major, minor filesystem version */ -	__le32	root_cluster;	/* first cluster in root directory */ -	__le16	info_sector;	/* filesystem info sector */ -	__le16	backup_boot;	/* backup boot sector */ -	__le16	reserved2[6];	/* Unused */ -}; - -struct fat_boot_fsinfo { -	__le32   signature1;	/* 0x41615252L */ -	__le32   reserved1[120];	/* Nothing as far as I can tell */ -	__le32   signature2;	/* 0x61417272L */ -	__le32   free_clusters;	/* Free cluster count.  -1 if unknown */ -	__le32   next_cluster;	/* Most recently allocated cluster */ -	__le32   reserved2[4]; -}; - -struct msdos_dir_entry { -	__u8	name[MSDOS_NAME];/* name and extension */ -	__u8	attr;		/* attribute bits */ -	__u8    lcase;		/* Case for base and extension */ -	__u8	ctime_cs;	/* Creation time, centiseconds (0-199) */ -	__le16	ctime;		/* Creation time */ -	__le16	cdate;		/* Creation date */ -	__le16	adate;		/* Last access date */ -	__le16	starthi;	/* High 16 bits of cluster in FAT32 */ -	__le16	time,date,start;/* time, date and first cluster */ -	__le32	size;		/* file size (in bytes) */ -}; - -/* Up to 13 characters of the name */ -struct msdos_dir_slot { -	__u8    id;		/* sequence number for slot */ -	__u8    name0_4[10];	/* first 5 characters in name */ -	__u8    attr;		/* attribute byte */ -	__u8    reserved;	/* always 0 */ -	__u8    alias_checksum;	/* checksum for 8.3 alias */ -	__u8    name5_10[12];	/* 6 more characters in name */ -	__le16   start;		/* starting cluster number, 0 in long slots */ -	__u8    name11_12[4];	/* last 2 characters in name */ -}; - -#ifdef __KERNEL__  /* media of boot sector */  static inline int fat_valid_media(u8 media)  {  	return 0xf8 <= media || media == 0xf0;  } -#endif /* !__KERNEL__ */  #endif /* !_LINUX_MSDOS_FS_H */ diff --git a/include/linux/msg.h b/include/linux/msg.h index 56abf1558fd..7a4b9e97d29 100644 --- a/include/linux/msg.h +++ b/include/linux/msg.h @@ -1,78 +1,8 @@  #ifndef _LINUX_MSG_H  #define _LINUX_MSG_H -#include <linux/ipc.h> - -/* ipcs ctl commands */ -#define MSG_STAT 11 -#define MSG_INFO 12 - -/* msgrcv options */ -#define MSG_NOERROR     010000  /* no error if message is too big */ -#define MSG_EXCEPT      020000  /* recv any msg except of specified type.*/ - -/* Obsolete, used only for backwards compatibility and libc5 compiles */ -struct msqid_ds { -	struct ipc_perm msg_perm; -	struct msg *msg_first;		/* first message on queue,unused  */ -	struct msg *msg_last;		/* last message in queue,unused */ -	__kernel_time_t msg_stime;	/* last msgsnd time */ -	__kernel_time_t msg_rtime;	/* last msgrcv time */ -	__kernel_time_t msg_ctime;	/* last change time */ -	unsigned long  msg_lcbytes;	/* Reuse junk fields for 32 bit */ -	unsigned long  msg_lqbytes;	/* ditto */ -	unsigned short msg_cbytes;	/* current number of bytes on queue */ -	unsigned short msg_qnum;	/* number of messages in queue */ -	unsigned short msg_qbytes;	/* max number of bytes on queue */ -	__kernel_ipc_pid_t msg_lspid;	/* pid of last msgsnd */ -	__kernel_ipc_pid_t msg_lrpid;	/* last receive pid */ -}; - -/* Include the definition of msqid64_ds */ -#include <asm/msgbuf.h> - -/* message buffer for msgsnd and msgrcv calls */ -struct msgbuf { -	long mtype;         /* type of message */ -	char mtext[1];      /* message text */ -}; - -/* buffer for msgctl calls IPC_INFO, MSG_INFO */ -struct msginfo { -	int msgpool; -	int msgmap;  -	int msgmax;  -	int msgmnb;  -	int msgmni;  -	int msgssz;  -	int msgtql;  -	unsigned short  msgseg;  -}; - -/* - * Scaling factor to compute msgmni: - * the memory dedicated to msg queues (msgmni * msgmnb) should occupy - * at most 1/MSG_MEM_SCALE of the lowmem (see the formula in ipc/msg.c): - * up to 8MB       : msgmni = 16 (MSGMNI) - * 4 GB            : msgmni = 8K - * more than 16 GB : msgmni = 32K (IPCMNI) - */ -#define MSG_MEM_SCALE 32 - -#define MSGMNI    16   /* <= IPCMNI */     /* max # of msg queue identifiers */ -#define MSGMAX  8192   /* <= INT_MAX */   /* max size of message (bytes) */ -#define MSGMNB 16384   /* <= INT_MAX */   /* default max size of a message queue */ - -/* unused */ -#define MSGPOOL (MSGMNI * MSGMNB / 1024) /* size in kbytes of message pool */ -#define MSGTQL  MSGMNB            /* number of system message headers */ -#define MSGMAP  MSGMNB            /* number of entries in message map */ -#define MSGSSZ  16                /* message segment size */ -#define __MSGSEG ((MSGPOOL * 1024) / MSGSSZ) /* max no. of segments */ -#define MSGSEG (__MSGSEG <= 0xffff ? __MSGSEG : 0xffff) - -#ifdef __KERNEL__  #include <linux/list.h> +#include <uapi/linux/msg.h>  /* one msg_msg structure for each message */  struct msg_msg { @@ -107,6 +37,4 @@ extern long do_msgsnd(int msqid, long mtype, void __user *mtext,  extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext,  			size_t msgsz, long msgtyp, int msgflg); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_MSG_H */ diff --git a/include/linux/mtio.h b/include/linux/mtio.h deleted file mode 100644 index 18543e2db06..00000000000 --- a/include/linux/mtio.h +++ /dev/null @@ -1,208 +0,0 @@ -/*  - * linux/mtio.h header file for Linux. Written by H. Bergman - * - * Modified for special ioctls provided by zftape in September 1997 - * by C.-J. Heine. - */ - -#ifndef _LINUX_MTIO_H -#define _LINUX_MTIO_H - -#include <linux/types.h> -#include <linux/ioctl.h> - -/* - * Structures and definitions for mag tape io control commands - */ - -/* structure for MTIOCTOP - mag tape op command */ -struct	mtop { -	short	mt_op;		/* operations defined below */ -	int	mt_count;	/* how many of them */ -}; - -/* Magnetic Tape operations [Not all operations supported by all drivers]: */ -#define MTRESET 0	/* +reset drive in case of problems */ -#define MTFSF	1	/* forward space over FileMark, -			 * position at first record of next file  -			 */ -#define MTBSF	2	/* backward space FileMark (position before FM) */ -#define MTFSR	3	/* forward space record */ -#define MTBSR	4	/* backward space record */ -#define MTWEOF	5	/* write an end-of-file record (mark) */ -#define MTREW	6	/* rewind */ -#define MTOFFL	7	/* rewind and put the drive offline (eject?) */ -#define MTNOP	8	/* no op, set status only (read with MTIOCGET) */ -#define MTRETEN 9	/* retension tape */ -#define MTBSFM	10	/* +backward space FileMark, position at FM */ -#define MTFSFM  11	/* +forward space FileMark, position at FM */ -#define MTEOM	12	/* goto end of recorded media (for appending files). -			 * MTEOM positions after the last FM, ready for -			 * appending another file. -			 */ -#define MTERASE 13	/* erase tape -- be careful! */ - -#define MTRAS1  14	/* run self test 1 (nondestructive) */ -#define MTRAS2	15	/* run self test 2 (destructive) */ -#define MTRAS3  16	/* reserved for self test 3 */ - -#define MTSETBLK 20	/* set block length (SCSI) */ -#define MTSETDENSITY 21	/* set tape density (SCSI) */ -#define MTSEEK	22	/* seek to block (Tandberg, etc.) */ -#define MTTELL	23	/* tell block (Tandberg, etc.) */ -#define MTSETDRVBUFFER 24 /* set the drive buffering according to SCSI-2 */ -			/* ordinary buffered operation with code 1 */ -#define MTFSS	25	/* space forward over setmarks */ -#define MTBSS	26	/* space backward over setmarks */ -#define MTWSM	27	/* write setmarks */ - -#define MTLOCK  28	/* lock the drive door */ -#define MTUNLOCK 29	/* unlock the drive door */ -#define MTLOAD  30	/* execute the SCSI load command */ -#define MTUNLOAD 31	/* execute the SCSI unload command */ -#define MTCOMPRESSION 32/* control compression with SCSI mode page 15 */ -#define MTSETPART 33	/* Change the active tape partition */ -#define MTMKPART  34	/* Format the tape with one or two partitions */ -#define MTWEOFI	35	/* write an end-of-file record (mark) in immediate mode */ - -/* structure for MTIOCGET - mag tape get status command */ - -struct	mtget { -	long	mt_type;	/* type of magtape device */ -	long	mt_resid;	/* residual count: (not sure) -				 *	number of bytes ignored, or -				 *	number of files not skipped, or -				 *	number of records not skipped. -				 */ -	/* the following registers are device dependent */ -	long	mt_dsreg;	/* status register */ -	long	mt_gstat;	/* generic (device independent) status */ -	long	mt_erreg;	/* error register */ -	/* The next two fields are not always used */ -	__kernel_daddr_t mt_fileno;	/* number of current file on tape */ -	__kernel_daddr_t mt_blkno;	/* current block number */ -}; - - - -/* - * Constants for mt_type. Not all of these are supported, - * and these are not all of the ones that are supported. - */ -#define MT_ISUNKNOWN		0x01 -#define MT_ISQIC02		0x02	/* Generic QIC-02 tape streamer */ -#define MT_ISWT5150		0x03	/* Wangtek 5150EQ, QIC-150, QIC-02 */ -#define MT_ISARCHIVE_5945L2	0x04	/* Archive 5945L-2, QIC-24, QIC-02? */ -#define MT_ISCMSJ500		0x05	/* CMS Jumbo 500 (QIC-02?) */ -#define MT_ISTDC3610		0x06	/* Tandberg 6310, QIC-24 */ -#define MT_ISARCHIVE_VP60I	0x07	/* Archive VP60i, QIC-02 */ -#define MT_ISARCHIVE_2150L	0x08	/* Archive Viper 2150L */ -#define MT_ISARCHIVE_2060L	0x09	/* Archive Viper 2060L */ -#define MT_ISARCHIVESC499	0x0A	/* Archive SC-499 QIC-36 controller */ -#define MT_ISQIC02_ALL_FEATURES	0x0F	/* Generic QIC-02 with all features */ -#define MT_ISWT5099EEN24	0x11	/* Wangtek 5099-een24, 60MB, QIC-24 */ -#define MT_ISTEAC_MT2ST		0x12	/* Teac MT-2ST 155mb drive, Teac DC-1 card (Wangtek type) */ -#define MT_ISEVEREX_FT40A	0x32	/* Everex FT40A (QIC-40) */ -#define MT_ISDDS1		0x51	/* DDS device without partitions */ -#define MT_ISDDS2		0x52	/* DDS device with partitions */ -#define MT_ISONSTREAM_SC        0x61   /* OnStream SCSI tape drives (SC-x0) -					  and SCSI emulated (DI, DP, USB) */ -#define MT_ISSCSI1		0x71	/* Generic ANSI SCSI-1 tape unit */ -#define MT_ISSCSI2		0x72	/* Generic ANSI SCSI-2 tape unit */ - -/* QIC-40/80/3010/3020 ftape supported drives. - * 20bit vendor ID + 0x800000 (see ftape-vendors.h) - */ -#define MT_ISFTAPE_UNKNOWN	0x800000 /* obsolete */ -#define MT_ISFTAPE_FLAG	0x800000 - - -/* structure for MTIOCPOS - mag tape get position command */ - -struct	mtpos { -	long 	mt_blkno;	/* current block number */ -}; - - -/* mag tape io control commands */ -#define	MTIOCTOP	_IOW('m', 1, struct mtop)	/* do a mag tape op */ -#define	MTIOCGET	_IOR('m', 2, struct mtget)	/* get tape status */ -#define	MTIOCPOS	_IOR('m', 3, struct mtpos)	/* get tape position */ - - -/* Generic Mag Tape (device independent) status macros for examining - * mt_gstat -- HP-UX compatible. - * There is room for more generic status bits here, but I don't - * know which of them are reserved. At least three or so should - * be added to make this really useful. - */ -#define GMT_EOF(x)              ((x) & 0x80000000) -#define GMT_BOT(x)              ((x) & 0x40000000) -#define GMT_EOT(x)              ((x) & 0x20000000) -#define GMT_SM(x)               ((x) & 0x10000000)  /* DDS setmark */ -#define GMT_EOD(x)              ((x) & 0x08000000)  /* DDS EOD */ -#define GMT_WR_PROT(x)          ((x) & 0x04000000) -/* #define GMT_ ? 		((x) & 0x02000000) */ -#define GMT_ONLINE(x)           ((x) & 0x01000000) -#define GMT_D_6250(x)           ((x) & 0x00800000) -#define GMT_D_1600(x)           ((x) & 0x00400000) -#define GMT_D_800(x)            ((x) & 0x00200000) -/* #define GMT_ ? 		((x) & 0x00100000) */ -/* #define GMT_ ? 		((x) & 0x00080000) */ -#define GMT_DR_OPEN(x)          ((x) & 0x00040000)  /* door open (no tape) */ -/* #define GMT_ ? 		((x) & 0x00020000) */ -#define GMT_IM_REP_EN(x)        ((x) & 0x00010000)  /* immediate report mode */ -#define GMT_CLN(x)              ((x) & 0x00008000)  /* cleaning requested */ -/* 15 generic status bits unused */ - - -/* SCSI-tape specific definitions */ -/* Bitfield shifts in the status  */ -#define MT_ST_BLKSIZE_SHIFT	0 -#define MT_ST_BLKSIZE_MASK	0xffffff -#define MT_ST_DENSITY_SHIFT	24 -#define MT_ST_DENSITY_MASK	0xff000000 - -#define MT_ST_SOFTERR_SHIFT	0 -#define MT_ST_SOFTERR_MASK	0xffff - -/* Bitfields for the MTSETDRVBUFFER ioctl */ -#define MT_ST_OPTIONS		0xf0000000 -#define MT_ST_BOOLEANS		0x10000000 -#define MT_ST_SETBOOLEANS	0x30000000 -#define MT_ST_CLEARBOOLEANS	0x40000000 -#define MT_ST_WRITE_THRESHOLD	0x20000000 -#define MT_ST_DEF_BLKSIZE	0x50000000 -#define MT_ST_DEF_OPTIONS	0x60000000 -#define MT_ST_TIMEOUTS		0x70000000 -#define MT_ST_SET_TIMEOUT	(MT_ST_TIMEOUTS | 0x000000) -#define MT_ST_SET_LONG_TIMEOUT	(MT_ST_TIMEOUTS | 0x100000) -#define MT_ST_SET_CLN		0x80000000 - -#define MT_ST_BUFFER_WRITES	0x1 -#define MT_ST_ASYNC_WRITES	0x2 -#define MT_ST_READ_AHEAD	0x4 -#define MT_ST_DEBUGGING		0x8 -#define MT_ST_TWO_FM		0x10 -#define MT_ST_FAST_MTEOM	0x20 -#define MT_ST_AUTO_LOCK		0x40 -#define MT_ST_DEF_WRITES	0x80 -#define MT_ST_CAN_BSR		0x100 -#define MT_ST_NO_BLKLIMS	0x200 -#define MT_ST_CAN_PARTITIONS    0x400 -#define MT_ST_SCSI2LOGICAL      0x800 -#define MT_ST_SYSV              0x1000 -#define MT_ST_NOWAIT            0x2000 -#define MT_ST_SILI		0x4000 -#define MT_ST_NOWAIT_EOF	0x8000 - -/* The mode parameters to be controlled. Parameter chosen with bits 20-28 */ -#define MT_ST_CLEAR_DEFAULT	0xfffff -#define MT_ST_DEF_DENSITY	(MT_ST_DEF_OPTIONS | 0x100000) -#define MT_ST_DEF_COMPRESSION	(MT_ST_DEF_OPTIONS | 0x200000) -#define MT_ST_DEF_DRVBUFFER	(MT_ST_DEF_OPTIONS | 0x300000) - -/* The offset for the arguments for the special HP changer load command. */ -#define MT_ST_HPLOADER_OFFSET 10000 - -#endif /* _LINUX_MTIO_H */ diff --git a/include/linux/n_r3964.h b/include/linux/n_r3964.h index 54b8e0d8d91..5d0b2a1dee6 100644 --- a/include/linux/n_r3964.h +++ b/include/linux/n_r3964.h @@ -43,15 +43,12 @@   *   *   */ -  #ifndef __LINUX_N_R3964_H__  #define __LINUX_N_R3964_H__ -/* line disciplines for r3964 protocol */ - -#ifdef __KERNEL__  #include <linux/param.h> +#include <uapi/linux/n_r3964.h>  /*   * Common ascii handshake characters: @@ -73,32 +70,6 @@  #define R3964_TO_RX_PANIC ((4000)*HZ/1000)  #define R3964_MAX_RETRIES 5 -#endif - -/* - * Ioctl-commands - */ - -#define R3964_ENABLE_SIGNALS      0x5301 -#define R3964_SETPRIORITY         0x5302 -#define R3964_USE_BCC             0x5303 -#define R3964_READ_TELEGRAM       0x5304 - -/* Options for R3964_SETPRIORITY */ -#define R3964_MASTER   0 -#define R3964_SLAVE    1 - -/* Options for R3964_ENABLE_SIGNALS */ -#define R3964_SIG_ACK   0x0001 -#define R3964_SIG_DATA  0x0002 -#define R3964_SIG_ALL   0x000f -#define R3964_SIG_NONE  0x0000 -#define R3964_USE_SIGIO 0x1000 - -/* - * r3964 operation states: - */ -#ifdef __KERNEL__  enum { R3964_IDLE,   	   R3964_TX_REQUEST, R3964_TRANSMITTING,  @@ -127,29 +98,6 @@ struct r3964_client_info {  }; -#endif - -/* types for msg_id: */ -enum {R3964_MSG_ACK=1, R3964_MSG_DATA }; - -#define R3964_MAX_MSG_COUNT 32 - -/* error codes for client messages */ -#define R3964_OK 0        /* no error. */ -#define R3964_TX_FAIL -1  /* transmission error, block NOT sent */ -#define R3964_OVERFLOW -2 /* msg queue overflow */ - -/* the client gets this struct when calling read(fd,...): */ -struct r3964_client_message { -	  int     msg_id; -	  int     arg; -	  int     error_code; -}; - -#define R3964_MTU      256 - - -#ifdef __KERNEL__  struct r3964_block_header; @@ -226,6 +174,4 @@ struct r3964_info {  	int nRetry;  }; -#endif	 -  #endif diff --git a/include/linux/nbd.h b/include/linux/nbd.h index 5c86e2b33e2..4871170a04a 100644 --- a/include/linux/nbd.h +++ b/include/linux/nbd.h @@ -11,45 +11,13 @@   * 2004/02/19 Paul Clements   *            Removed PARANOIA, plus various cleanup and comments   */ -  #ifndef LINUX_NBD_H  #define LINUX_NBD_H -#include <linux/types.h> - -#define NBD_SET_SOCK	_IO( 0xab, 0 ) -#define NBD_SET_BLKSIZE	_IO( 0xab, 1 ) -#define NBD_SET_SIZE	_IO( 0xab, 2 ) -#define NBD_DO_IT	_IO( 0xab, 3 ) -#define NBD_CLEAR_SOCK	_IO( 0xab, 4 ) -#define NBD_CLEAR_QUE	_IO( 0xab, 5 ) -#define NBD_PRINT_DEBUG	_IO( 0xab, 6 ) -#define NBD_SET_SIZE_BLOCKS	_IO( 0xab, 7 ) -#define NBD_DISCONNECT  _IO( 0xab, 8 ) -#define NBD_SET_TIMEOUT _IO( 0xab, 9 ) -#define NBD_SET_FLAGS   _IO( 0xab, 10) - -enum { -	NBD_CMD_READ = 0, -	NBD_CMD_WRITE = 1, -	NBD_CMD_DISC = 2, -	/* there is a gap here to match userspace */ -	NBD_CMD_TRIM = 4 -}; - -/* values for flags field */ -#define NBD_FLAG_HAS_FLAGS    (1 << 0) /* nbd-server supports flags */ -#define NBD_FLAG_READ_ONLY    (1 << 1) /* device is read-only */ -/* there is a gap here to match userspace */ -#define NBD_FLAG_SEND_TRIM    (1 << 5) /* send trim/discard */ - -#define nbd_cmd(req) ((req)->cmd[0]) - -/* userspace doesn't need the nbd_device structure */ -#ifdef __KERNEL__  #include <linux/wait.h>  #include <linux/mutex.h> +#include <uapi/linux/nbd.h>  struct request; @@ -76,32 +44,3 @@ struct nbd_device {  };  #endif - -/* These are sent over the network in the request/reply magic fields */ - -#define NBD_REQUEST_MAGIC 0x25609513 -#define NBD_REPLY_MAGIC 0x67446698 -/* Do *not* use magics: 0x12560953 0x96744668. */ - -/* - * This is the packet used for communication between client and - * server. All data are in network byte order. - */ -struct nbd_request { -	__be32 magic; -	__be32 type;	/* == READ || == WRITE 	*/ -	char handle[8]; -	__be64 from; -	__be32 len; -} __attribute__((packed)); - -/* - * This is the reply packet that nbd-server sends back to the client after - * it has completed an I/O request (or an error occurs). - */ -struct nbd_reply { -	__be32 magic; -	__be32 error;		/* 0 = ok, else error	*/ -	char handle[8];		/* handle you got from request	*/ -}; -#endif diff --git a/include/linux/ncp.h b/include/linux/ncp.h deleted file mode 100644 index 99f0adeeb3f..00000000000 --- a/include/linux/ncp.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - *  ncp.h - * - *  Copyright (C) 1995 by Volker Lendecke - *  Modified for sparc by J.F. Chadima - *  Modified for __constant_ntoh by Frank A. Vorstenbosch - * - */ - -#ifndef _LINUX_NCP_H -#define _LINUX_NCP_H - -#include <linux/types.h> - -#define NCP_PTYPE                (0x11) -#define NCP_PORT                 (0x0451) - -#define NCP_ALLOC_SLOT_REQUEST   (0x1111) -#define NCP_REQUEST              (0x2222) -#define NCP_DEALLOC_SLOT_REQUEST (0x5555) - -struct ncp_request_header { -	__u16 type; -	__u8 sequence; -	__u8 conn_low; -	__u8 task; -	__u8 conn_high; -	__u8 function; -	__u8 data[0]; -} __attribute__((packed)); - -#define NCP_REPLY                (0x3333) -#define NCP_WATCHDOG		 (0x3E3E) -#define NCP_POSITIVE_ACK         (0x9999) - -struct ncp_reply_header { -	__u16 type; -	__u8 sequence; -	__u8 conn_low; -	__u8 task; -	__u8 conn_high; -	__u8 completion_code; -	__u8 connection_state; -	__u8 data[0]; -} __attribute__((packed)); - -#define NCP_VOLNAME_LEN (16) -#define NCP_NUMBER_OF_VOLUMES (256) -struct ncp_volume_info { -	__u32 total_blocks; -	__u32 free_blocks; -	__u32 purgeable_blocks; -	__u32 not_yet_purgeable_blocks; -	__u32 total_dir_entries; -	__u32 available_dir_entries; -	__u8 sectors_per_block; -	char volume_name[NCP_VOLNAME_LEN + 1]; -}; - -#define AR_READ      (cpu_to_le16(1)) -#define AR_WRITE     (cpu_to_le16(2)) -#define AR_EXCLUSIVE (cpu_to_le16(0x20)) - -#define NCP_FILE_ID_LEN 6 - -/* Defines for Name Spaces */ -#define NW_NS_DOS     0 -#define NW_NS_MAC     1 -#define NW_NS_NFS     2 -#define NW_NS_FTAM    3 -#define NW_NS_OS2     4 - -/*  Defines for ReturnInformationMask */ -#define RIM_NAME	      (cpu_to_le32(1)) -#define RIM_SPACE_ALLOCATED   (cpu_to_le32(2)) -#define RIM_ATTRIBUTES	      (cpu_to_le32(4)) -#define RIM_DATA_SIZE	      (cpu_to_le32(8)) -#define RIM_TOTAL_SIZE	      (cpu_to_le32(0x10)) -#define RIM_EXT_ATTR_INFO     (cpu_to_le32(0x20)) -#define RIM_ARCHIVE	      (cpu_to_le32(0x40)) -#define RIM_MODIFY	      (cpu_to_le32(0x80)) -#define RIM_CREATION	      (cpu_to_le32(0x100)) -#define RIM_OWNING_NAMESPACE  (cpu_to_le32(0x200)) -#define RIM_DIRECTORY	      (cpu_to_le32(0x400)) -#define RIM_RIGHTS	      (cpu_to_le32(0x800)) -#define RIM_ALL 	      (cpu_to_le32(0xFFF)) -#define RIM_COMPRESSED_INFO   (cpu_to_le32(0x80000000)) - -/* Defines for NSInfoBitMask */ -#define NSIBM_NFS_NAME		0x0001 -#define NSIBM_NFS_MODE		0x0002 -#define NSIBM_NFS_GID		0x0004 -#define NSIBM_NFS_NLINKS	0x0008 -#define NSIBM_NFS_RDEV		0x0010 -#define NSIBM_NFS_LINK		0x0020 -#define NSIBM_NFS_CREATED	0x0040 -#define NSIBM_NFS_UID		0x0080 -#define NSIBM_NFS_ACSFLAG	0x0100 -#define NSIBM_NFS_MYFLAG	0x0200 - -/* open/create modes */ -#define OC_MODE_OPEN	  0x01 -#define OC_MODE_TRUNCATE  0x02 -#define OC_MODE_REPLACE   0x02 -#define OC_MODE_CREATE	  0x08 - -/* open/create results */ -#define OC_ACTION_NONE	   0x00 -#define OC_ACTION_OPEN	   0x01 -#define OC_ACTION_CREATE   0x02 -#define OC_ACTION_TRUNCATE 0x04 -#define OC_ACTION_REPLACE  0x04 - -/* access rights attributes */ -#ifndef AR_READ_ONLY -#define AR_READ_ONLY	   0x0001 -#define AR_WRITE_ONLY	   0x0002 -#define AR_DENY_READ	   0x0004 -#define AR_DENY_WRITE	   0x0008 -#define AR_COMPATIBILITY   0x0010 -#define AR_WRITE_THROUGH   0x0040 -#define AR_OPEN_COMPRESSED 0x0100 -#endif - -struct nw_nfs_info { -	__u32 mode; -	__u32 rdev; -}; - -struct nw_info_struct { -	__u32 spaceAlloc; -	__le32 attributes; -	__u16 flags; -	__le32 dataStreamSize; -	__le32 totalStreamSize; -	__u16 numberOfStreams; -	__le16 creationTime; -	__le16 creationDate; -	__u32 creatorID; -	__le16 modifyTime; -	__le16 modifyDate; -	__u32 modifierID; -	__le16 lastAccessDate; -	__u16 archiveTime; -	__u16 archiveDate; -	__u32 archiverID; -	__u16 inheritedRightsMask; -	__le32 dirEntNum; -	__le32 DosDirNum; -	__u32 volNumber; -	__u32 EADataSize; -	__u32 EAKeyCount; -	__u32 EAKeySize; -	__u32 NSCreator; -	__u8 nameLen; -	__u8 entryName[256]; -	/* libncp may depend on there being nothing after entryName */ -#ifdef __KERNEL__ -	struct nw_nfs_info nfs; -#endif -} __attribute__((packed)); - -/* modify mask - use with MODIFY_DOS_INFO structure */ -#define DM_ATTRIBUTES		  (cpu_to_le32(0x02)) -#define DM_CREATE_DATE		  (cpu_to_le32(0x04)) -#define DM_CREATE_TIME		  (cpu_to_le32(0x08)) -#define DM_CREATOR_ID		  (cpu_to_le32(0x10)) -#define DM_ARCHIVE_DATE 	  (cpu_to_le32(0x20)) -#define DM_ARCHIVE_TIME 	  (cpu_to_le32(0x40)) -#define DM_ARCHIVER_ID		  (cpu_to_le32(0x80)) -#define DM_MODIFY_DATE		  (cpu_to_le32(0x0100)) -#define DM_MODIFY_TIME		  (cpu_to_le32(0x0200)) -#define DM_MODIFIER_ID		  (cpu_to_le32(0x0400)) -#define DM_LAST_ACCESS_DATE	  (cpu_to_le32(0x0800)) -#define DM_INHERITED_RIGHTS_MASK  (cpu_to_le32(0x1000)) -#define DM_MAXIMUM_SPACE	  (cpu_to_le32(0x2000)) - -struct nw_modify_dos_info { -	__le32 attributes; -	__le16 creationDate; -	__le16 creationTime; -	__u32 creatorID; -	__le16 modifyDate; -	__le16 modifyTime; -	__u32 modifierID; -	__u16 archiveDate; -	__u16 archiveTime; -	__u32 archiverID; -	__le16 lastAccessDate; -	__u16 inheritanceGrantMask; -	__u16 inheritanceRevokeMask; -	__u32 maximumSpace; -} __attribute__((packed)); - -struct nw_search_sequence { -	__u8 volNumber; -	__u32 dirBase; -	__u32 sequence; -} __attribute__((packed)); - -#endif				/* _LINUX_NCP_H */ diff --git a/include/linux/ncp_fs.h b/include/linux/ncp_fs.h deleted file mode 100644 index e13eefef065..00000000000 --- a/include/linux/ncp_fs.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - *  ncp_fs.h - * - *  Copyright (C) 1995, 1996 by Volker Lendecke - * - */ - -#ifndef _LINUX_NCP_FS_H -#define _LINUX_NCP_FS_H - -#include <linux/fs.h> -#include <linux/in.h> -#include <linux/types.h> -#include <linux/magic.h> - -#include <linux/ipx.h> -#include <linux/ncp_no.h> - -/* - * ioctl commands - */ - -struct ncp_ioctl_request { -	unsigned int function; -	unsigned int size; -	char __user *data; -}; - -struct ncp_fs_info { -	int version; -	struct sockaddr_ipx addr; -	__kernel_uid_t mounted_uid; -	int connection;		/* Connection number the server assigned us */ -	int buffer_size;	/* The negotiated buffer size, to be -				   used for read/write requests! */ - -	int volume_number; -	__le32 directory_id; -}; - -struct ncp_fs_info_v2 { -	int version; -	unsigned long mounted_uid; -	unsigned int connection; -	unsigned int buffer_size; - -	unsigned int volume_number; -	__le32 directory_id; - -	__u32 dummy1; -	__u32 dummy2; -	__u32 dummy3; -}; - -struct ncp_sign_init -{ -	char sign_root[8]; -	char sign_last[16]; -}; - -struct ncp_lock_ioctl -{ -#define NCP_LOCK_LOG	0 -#define NCP_LOCK_SH	1 -#define NCP_LOCK_EX	2 -#define NCP_LOCK_CLEAR	256 -	int		cmd; -	int		origin; -	unsigned int	offset; -	unsigned int	length; -#define NCP_LOCK_DEFAULT_TIMEOUT	18 -#define NCP_LOCK_MAX_TIMEOUT		180 -	int		timeout; -}; - -struct ncp_setroot_ioctl -{ -	int		volNumber; -	int		namespace; -	__le32		dirEntNum; -}; - -struct ncp_objectname_ioctl -{ -#define NCP_AUTH_NONE	0x00 -#define NCP_AUTH_BIND	0x31 -#define NCP_AUTH_NDS	0x32 -	int		auth_type; -	size_t		object_name_len; -	void __user *	object_name;	/* a userspace data, in most cases user name */ -}; - -struct ncp_privatedata_ioctl -{ -	size_t		len; -	void __user *	data;		/* ~1000 for NDS */ -}; - -/* NLS charsets by ioctl */ -#define NCP_IOCSNAME_LEN 20 -struct ncp_nls_ioctl -{ -	unsigned char codepage[NCP_IOCSNAME_LEN+1]; -	unsigned char iocharset[NCP_IOCSNAME_LEN+1]; -}; - -#define	NCP_IOC_NCPREQUEST		_IOR('n', 1, struct ncp_ioctl_request) -#define	NCP_IOC_GETMOUNTUID		_IOW('n', 2, __kernel_old_uid_t) -#define NCP_IOC_GETMOUNTUID2		_IOW('n', 2, unsigned long) - -#define NCP_IOC_CONN_LOGGED_IN          _IO('n', 3) - -#define NCP_GET_FS_INFO_VERSION    (1) -#define NCP_IOC_GET_FS_INFO             _IOWR('n', 4, struct ncp_fs_info) -#define NCP_GET_FS_INFO_VERSION_V2 (2) -#define NCP_IOC_GET_FS_INFO_V2		_IOWR('n', 4, struct ncp_fs_info_v2) - -#define NCP_IOC_SIGN_INIT		_IOR('n', 5, struct ncp_sign_init) -#define NCP_IOC_SIGN_WANTED		_IOR('n', 6, int) -#define NCP_IOC_SET_SIGN_WANTED		_IOW('n', 6, int) - -#define NCP_IOC_LOCKUNLOCK		_IOR('n', 7, struct ncp_lock_ioctl) - -#define NCP_IOC_GETROOT			_IOW('n', 8, struct ncp_setroot_ioctl) -#define NCP_IOC_SETROOT			_IOR('n', 8, struct ncp_setroot_ioctl) - -#define NCP_IOC_GETOBJECTNAME		_IOWR('n', 9, struct ncp_objectname_ioctl) -#define NCP_IOC_SETOBJECTNAME		_IOR('n', 9, struct ncp_objectname_ioctl) -#define NCP_IOC_GETPRIVATEDATA		_IOWR('n', 10, struct ncp_privatedata_ioctl) -#define NCP_IOC_SETPRIVATEDATA		_IOR('n', 10, struct ncp_privatedata_ioctl) - -#define NCP_IOC_GETCHARSETS		_IOWR('n', 11, struct ncp_nls_ioctl) -#define NCP_IOC_SETCHARSETS		_IOR('n', 11, struct ncp_nls_ioctl) - -#define NCP_IOC_GETDENTRYTTL		_IOW('n', 12, __u32) -#define NCP_IOC_SETDENTRYTTL		_IOR('n', 12, __u32) - -/* - * The packet size to allocate. One page should be enough. - */ -#define NCP_PACKET_SIZE 4070 - -#define NCP_MAXPATHLEN 255 -#define NCP_MAXNAMELEN 14 - -#endif				/* _LINUX_NCP_FS_H */ diff --git a/include/linux/ncp_mount.h b/include/linux/ncp_mount.h deleted file mode 100644 index dfcbea2d889..00000000000 --- a/include/linux/ncp_mount.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - *  ncp_mount.h - * - *  Copyright (C) 1995, 1996 by Volker Lendecke - * - */ - -#ifndef _LINUX_NCP_MOUNT_H -#define _LINUX_NCP_MOUNT_H - -#include <linux/types.h> -#include <linux/ncp.h> - -#define NCP_MOUNT_VERSION 3	/* Binary */ - -/* Values for flags */ -#define NCP_MOUNT_SOFT		0x0001 -#define NCP_MOUNT_INTR		0x0002 -#define NCP_MOUNT_STRONG	0x0004	/* enable delete/rename of r/o files */ -#define NCP_MOUNT_NO_OS2	0x0008	/* do not use OS/2 (LONG) namespace */ -#define NCP_MOUNT_NO_NFS	0x0010	/* do not use NFS namespace */ -#define NCP_MOUNT_EXTRAS	0x0020 -#define NCP_MOUNT_SYMLINKS	0x0040	/* enable symlinks */ -#define NCP_MOUNT_NFS_EXTRAS	0x0080	/* Enable use of NFS NS meta-info */ - -struct ncp_mount_data { -	int version; -	unsigned int ncp_fd;	/* The socket to the ncp port */ -	__kernel_uid_t mounted_uid;	/* Who may umount() this filesystem? */ -	__kernel_pid_t wdog_pid;		/* Who cares for our watchdog packets? */ - -	unsigned char mounted_vol[NCP_VOLNAME_LEN + 1]; -	unsigned int time_out;	/* How long should I wait after -				   sending a NCP request? */ -	unsigned int retry_count;	/* And how often should I retry? */ -	unsigned int flags; - -	__kernel_uid_t uid; -	__kernel_gid_t gid; -	__kernel_mode_t file_mode; -	__kernel_mode_t dir_mode; -}; - -#define NCP_MOUNT_VERSION_V4	(4)	/* Binary or text */ - -struct ncp_mount_data_v4 { -	int version; -	unsigned long flags;	/* NCP_MOUNT_* flags */ -	/* MIPS uses long __kernel_uid_t, but... */ -	/* we neever pass -1, so it is safe */ -	unsigned long mounted_uid;	/* Who may umount() this filesystem? */ -	/* MIPS uses long __kernel_pid_t */ -	long wdog_pid;		/* Who cares for our watchdog packets? */ - -	unsigned int ncp_fd;	/* The socket to the ncp port */ -	unsigned int time_out;	/* How long should I wait after -				   sending a NCP request? */ -	unsigned int retry_count;	/* And how often should I retry? */ - -	/* MIPS uses long __kernel_uid_t... */ -	/* we never pass -1, so it is safe */ -	unsigned long uid; -	unsigned long gid; -	/* MIPS uses unsigned long __kernel_mode_t */ -	unsigned long file_mode; -	unsigned long dir_mode; -}; - -#define NCP_MOUNT_VERSION_V5	(5)	/* Text only */ - -#endif diff --git a/include/linux/ncp_no.h b/include/linux/ncp_no.h deleted file mode 100644 index cddaa48fb18..00000000000 --- a/include/linux/ncp_no.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _NCP_NO -#define _NCP_NO - -/* these define the attribute byte as seen by NCP */ -#define aRONLY			(__cpu_to_le32(1)) -#define aHIDDEN			(__cpu_to_le32(2)) -#define aSYSTEM			(__cpu_to_le32(4)) -#define aEXECUTE		(__cpu_to_le32(8)) -#define aDIR			(__cpu_to_le32(0x10)) -#define aARCH			(__cpu_to_le32(0x20)) -#define aSHARED			(__cpu_to_le32(0x80)) -#define aDONTSUBALLOCATE	(__cpu_to_le32(1L<<11)) -#define aTRANSACTIONAL		(__cpu_to_le32(1L<<12)) -#define aPURGE			(__cpu_to_le32(1L<<16)) -#define aRENAMEINHIBIT		(__cpu_to_le32(1L<<17)) -#define aDELETEINHIBIT		(__cpu_to_le32(1L<<18)) -#define aDONTCOMPRESS		(__cpu_to_le32(1L<<27)) - -#endif /* _NCP_NO */ diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h deleted file mode 100644 index 275e5d65dcb..00000000000 --- a/include/linux/neighbour.h +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef __LINUX_NEIGHBOUR_H -#define __LINUX_NEIGHBOUR_H - -#include <linux/types.h> -#include <linux/netlink.h> - -struct ndmsg { -	__u8		ndm_family; -	__u8		ndm_pad1; -	__u16		ndm_pad2; -	__s32		ndm_ifindex; -	__u16		ndm_state; -	__u8		ndm_flags; -	__u8		ndm_type; -}; - -enum { -	NDA_UNSPEC, -	NDA_DST, -	NDA_LLADDR, -	NDA_CACHEINFO, -	NDA_PROBES, -	__NDA_MAX -}; - -#define NDA_MAX (__NDA_MAX - 1) - -/* - *	Neighbor Cache Entry Flags - */ - -#define NTF_USE		0x01 -#define NTF_PROXY	0x08	/* == ATF_PUBL */ -#define NTF_ROUTER	0x80 - -#define NTF_SELF	0x02 -#define NTF_MASTER	0x04 - -/* - *	Neighbor Cache Entry States. - */ - -#define NUD_INCOMPLETE	0x01 -#define NUD_REACHABLE	0x02 -#define NUD_STALE	0x04 -#define NUD_DELAY	0x08 -#define NUD_PROBE	0x10 -#define NUD_FAILED	0x20 - -/* Dummy states */ -#define NUD_NOARP	0x40 -#define NUD_PERMANENT	0x80 -#define NUD_NONE	0x00 - -/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change -   and make no address resolution or NUD. -   NUD_PERMANENT is also cannot be deleted by garbage collectors. - */ - -struct nda_cacheinfo { -	__u32		ndm_confirmed; -	__u32		ndm_used; -	__u32		ndm_updated; -	__u32		ndm_refcnt; -}; - -/***************************************************************** - *		Neighbour tables specific messages. - * - * To retrieve the neighbour tables send RTM_GETNEIGHTBL with the - * NLM_F_DUMP flag set. Every neighbour table configuration is - * spread over multiple messages to avoid running into message - * size limits on systems with many interfaces. The first message - * in the sequence transports all not device specific data such as - * statistics, configuration, and the default parameter set. - * This message is followed by 0..n messages carrying device - * specific parameter sets. - * Although the ordering should be sufficient, NDTA_NAME can be - * used to identify sequences. The initial message can be identified - * by checking for NDTA_CONFIG. The device specific messages do - * not contain this TLV but have NDTPA_IFINDEX set to the - * corresponding interface index. - * - * To change neighbour table attributes, send RTM_SETNEIGHTBL - * with NDTA_NAME set. Changeable attribute include NDTA_THRESH[1-3], - * NDTA_GC_INTERVAL, and all TLVs in NDTA_PARMS unless marked - * otherwise. Device specific parameter sets can be changed by - * setting NDTPA_IFINDEX to the interface index of the corresponding - * device. - ****/ - -struct ndt_stats { -	__u64		ndts_allocs; -	__u64		ndts_destroys; -	__u64		ndts_hash_grows; -	__u64		ndts_res_failed; -	__u64		ndts_lookups; -	__u64		ndts_hits; -	__u64		ndts_rcv_probes_mcast; -	__u64		ndts_rcv_probes_ucast; -	__u64		ndts_periodic_gc_runs; -	__u64		ndts_forced_gc_runs; -}; - -enum { -	NDTPA_UNSPEC, -	NDTPA_IFINDEX,			/* u32, unchangeable */ -	NDTPA_REFCNT,			/* u32, read-only */ -	NDTPA_REACHABLE_TIME,		/* u64, read-only, msecs */ -	NDTPA_BASE_REACHABLE_TIME,	/* u64, msecs */ -	NDTPA_RETRANS_TIME,		/* u64, msecs */ -	NDTPA_GC_STALETIME,		/* u64, msecs */ -	NDTPA_DELAY_PROBE_TIME,		/* u64, msecs */ -	NDTPA_QUEUE_LEN,		/* u32 */ -	NDTPA_APP_PROBES,		/* u32 */ -	NDTPA_UCAST_PROBES,		/* u32 */ -	NDTPA_MCAST_PROBES,		/* u32 */ -	NDTPA_ANYCAST_DELAY,		/* u64, msecs */ -	NDTPA_PROXY_DELAY,		/* u64, msecs */ -	NDTPA_PROXY_QLEN,		/* u32 */ -	NDTPA_LOCKTIME,			/* u64, msecs */ -	NDTPA_QUEUE_LENBYTES,		/* u32 */ -	__NDTPA_MAX -}; -#define NDTPA_MAX (__NDTPA_MAX - 1) - -struct ndtmsg { -	__u8		ndtm_family; -	__u8		ndtm_pad1; -	__u16		ndtm_pad2; -}; - -struct ndt_config { -	__u16		ndtc_key_len; -	__u16		ndtc_entry_size; -	__u32		ndtc_entries; -	__u32		ndtc_last_flush;	/* delta to now in msecs */ -	__u32		ndtc_last_rand;		/* delta to now in msecs */ -	__u32		ndtc_hash_rnd; -	__u32		ndtc_hash_mask; -	__u32		ndtc_hash_chain_gc; -	__u32		ndtc_proxy_qlen; -}; - -enum { -	NDTA_UNSPEC, -	NDTA_NAME,			/* char *, unchangeable */ -	NDTA_THRESH1,			/* u32 */ -	NDTA_THRESH2,			/* u32 */ -	NDTA_THRESH3,			/* u32 */ -	NDTA_CONFIG,			/* struct ndt_config, read-only */ -	NDTA_PARMS,			/* nested TLV NDTPA_* */ -	NDTA_STATS,			/* struct ndt_stats, read-only */ -	NDTA_GC_INTERVAL,		/* u64, msecs */ -	__NDTA_MAX -}; -#define NDTA_MAX (__NDTA_MAX - 1) - -#endif diff --git a/include/linux/net.h b/include/linux/net.h index 6ab31cabef7..aa1673160a4 100644 --- a/include/linux/net.h +++ b/include/linux/net.h @@ -18,49 +18,13 @@  #ifndef _LINUX_NET_H  #define _LINUX_NET_H -#include <linux/socket.h> -#include <asm/socket.h> - -#define NPROTO		AF_MAX - -#define SYS_SOCKET	1		/* sys_socket(2)		*/ -#define SYS_BIND	2		/* sys_bind(2)			*/ -#define SYS_CONNECT	3		/* sys_connect(2)		*/ -#define SYS_LISTEN	4		/* sys_listen(2)		*/ -#define SYS_ACCEPT	5		/* sys_accept(2)		*/ -#define SYS_GETSOCKNAME	6		/* sys_getsockname(2)		*/ -#define SYS_GETPEERNAME	7		/* sys_getpeername(2)		*/ -#define SYS_SOCKETPAIR	8		/* sys_socketpair(2)		*/ -#define SYS_SEND	9		/* sys_send(2)			*/ -#define SYS_RECV	10		/* sys_recv(2)			*/ -#define SYS_SENDTO	11		/* sys_sendto(2)		*/ -#define SYS_RECVFROM	12		/* sys_recvfrom(2)		*/ -#define SYS_SHUTDOWN	13		/* sys_shutdown(2)		*/ -#define SYS_SETSOCKOPT	14		/* sys_setsockopt(2)		*/ -#define SYS_GETSOCKOPT	15		/* sys_getsockopt(2)		*/ -#define SYS_SENDMSG	16		/* sys_sendmsg(2)		*/ -#define SYS_RECVMSG	17		/* sys_recvmsg(2)		*/ -#define SYS_ACCEPT4	18		/* sys_accept4(2)		*/ -#define SYS_RECVMMSG	19		/* sys_recvmmsg(2)		*/ -#define SYS_SENDMMSG	20		/* sys_sendmmsg(2)		*/ - -typedef enum { -	SS_FREE = 0,			/* not allocated		*/ -	SS_UNCONNECTED,			/* unconnected to any socket	*/ -	SS_CONNECTING,			/* in process of connecting	*/ -	SS_CONNECTED,			/* connected to socket		*/ -	SS_DISCONNECTING		/* in process of disconnecting	*/ -} socket_state; - -#define __SO_ACCEPTCON	(1 << 16)	/* performed a listen		*/ - -#ifdef __KERNEL__  #include <linux/stringify.h>  #include <linux/random.h>  #include <linux/wait.h>  #include <linux/fcntl.h>	/* For O_CLOEXEC and O_NONBLOCK */  #include <linux/kmemcheck.h>  #include <linux/rcupdate.h> +#include <uapi/linux/net.h>  struct poll_table_struct;  struct pipe_inode_info; @@ -319,5 +283,4 @@ extern int kernel_sock_shutdown(struct socket *sock,  #define MODULE_ALIAS_NET_PF_PROTO_NAME(pf, proto, name) \  	MODULE_ALIAS("net-pf-" __stringify(pf) "-proto-" __stringify(proto) \  		     name) -#endif /* __KERNEL__ */  #endif	/* _LINUX_NET_H */ diff --git a/include/linux/net_dropmon.h b/include/linux/net_dropmon.h deleted file mode 100644 index 2a739462cae..00000000000 --- a/include/linux/net_dropmon.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __NET_DROPMON_H -#define __NET_DROPMON_H - -#include <linux/types.h> -#include <linux/netlink.h> - -struct net_dm_drop_point { -	__u8 pc[8]; -	__u32 count; -}; - -#define is_drop_point_hw(x) do {\ -	int ____i, ____j;\ -	for (____i = 0; ____i < 8; i ____i++)\ -		____j |= x[____i];\ -	____j;\ -} while (0) - -#define NET_DM_CFG_VERSION  0 -#define NET_DM_CFG_ALERT_COUNT  1 -#define NET_DM_CFG_ALERT_DELAY 2 -#define NET_DM_CFG_MAX 3 - -struct net_dm_config_entry { -	__u32 type; -	__u64 data __attribute__((aligned(8))); -}; - -struct net_dm_config_msg { -	__u32 entries; -	struct net_dm_config_entry options[0]; -}; - -struct net_dm_alert_msg { -	__u32 entries; -	struct net_dm_drop_point points[0]; -}; - -struct net_dm_user_msg { -	union { -		struct net_dm_config_msg user; -		struct net_dm_alert_msg alert; -	} u; -}; - - -/* These are the netlink message types for this protocol */ - -enum { -	NET_DM_CMD_UNSPEC = 0, -	NET_DM_CMD_ALERT, -	NET_DM_CMD_CONFIG, -	NET_DM_CMD_START, -	NET_DM_CMD_STOP, -	_NET_DM_CMD_MAX, -}; - -#define NET_DM_CMD_MAX (_NET_DM_CMD_MAX - 1) - -/* - * Our group identifiers - */ -#define NET_DM_GRP_ALERT 1 -#endif diff --git a/include/linux/net_tstamp.h b/include/linux/net_tstamp.h deleted file mode 100644 index ae5df122e42..00000000000 --- a/include/linux/net_tstamp.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Userspace API for hardware time stamping of network packets - * - * Copyright (C) 2008,2009 Intel Corporation - * Author: Patrick Ohly <patrick.ohly@intel.com> - * - */ - -#ifndef _NET_TIMESTAMPING_H -#define _NET_TIMESTAMPING_H - -#include <linux/socket.h>   /* for SO_TIMESTAMPING */ - -/* SO_TIMESTAMPING gets an integer bit field comprised of these values */ -enum { -	SOF_TIMESTAMPING_TX_HARDWARE = (1<<0), -	SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1), -	SOF_TIMESTAMPING_RX_HARDWARE = (1<<2), -	SOF_TIMESTAMPING_RX_SOFTWARE = (1<<3), -	SOF_TIMESTAMPING_SOFTWARE = (1<<4), -	SOF_TIMESTAMPING_SYS_HARDWARE = (1<<5), -	SOF_TIMESTAMPING_RAW_HARDWARE = (1<<6), -	SOF_TIMESTAMPING_MASK = -	(SOF_TIMESTAMPING_RAW_HARDWARE - 1) | -	SOF_TIMESTAMPING_RAW_HARDWARE -}; - -/** - * struct hwtstamp_config - %SIOCSHWTSTAMP parameter - * - * @flags:	no flags defined right now, must be zero - * @tx_type:	one of HWTSTAMP_TX_* - * @rx_type:	one of one of HWTSTAMP_FILTER_* - * - * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to - * this structure. dev_ifsioc() in the kernel takes care of the - * translation between 32 bit userspace and 64 bit kernel. The - * structure is intentionally chosen so that it has the same layout on - * 32 and 64 bit systems, don't break this! - */ -struct hwtstamp_config { -	int flags; -	int tx_type; -	int rx_filter; -}; - -/* possible values for hwtstamp_config->tx_type */ -enum hwtstamp_tx_types { -	/* -	 * No outgoing packet will need hardware time stamping; -	 * should a packet arrive which asks for it, no hardware -	 * time stamping will be done. -	 */ -	HWTSTAMP_TX_OFF, - -	/* -	 * Enables hardware time stamping for outgoing packets; -	 * the sender of the packet decides which are to be -	 * time stamped by setting %SOF_TIMESTAMPING_TX_SOFTWARE -	 * before sending the packet. -	 */ -	HWTSTAMP_TX_ON, - -	/* -	 * Enables time stamping for outgoing packets just as -	 * HWTSTAMP_TX_ON does, but also enables time stamp insertion -	 * directly into Sync packets. In this case, transmitted Sync -	 * packets will not received a time stamp via the socket error -	 * queue. -	 */ -	HWTSTAMP_TX_ONESTEP_SYNC, -}; - -/* possible values for hwtstamp_config->rx_filter */ -enum hwtstamp_rx_filters { -	/* time stamp no incoming packet at all */ -	HWTSTAMP_FILTER_NONE, - -	/* time stamp any incoming packet */ -	HWTSTAMP_FILTER_ALL, - -	/* return value: time stamp all packets requested plus some others */ -	HWTSTAMP_FILTER_SOME, - -	/* PTP v1, UDP, any kind of event packet */ -	HWTSTAMP_FILTER_PTP_V1_L4_EVENT, -	/* PTP v1, UDP, Sync packet */ -	HWTSTAMP_FILTER_PTP_V1_L4_SYNC, -	/* PTP v1, UDP, Delay_req packet */ -	HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ, -	/* PTP v2, UDP, any kind of event packet */ -	HWTSTAMP_FILTER_PTP_V2_L4_EVENT, -	/* PTP v2, UDP, Sync packet */ -	HWTSTAMP_FILTER_PTP_V2_L4_SYNC, -	/* PTP v2, UDP, Delay_req packet */ -	HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ, - -	/* 802.AS1, Ethernet, any kind of event packet */ -	HWTSTAMP_FILTER_PTP_V2_L2_EVENT, -	/* 802.AS1, Ethernet, Sync packet */ -	HWTSTAMP_FILTER_PTP_V2_L2_SYNC, -	/* 802.AS1, Ethernet, Delay_req packet */ -	HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ, - -	/* PTP v2/802.AS1, any layer, any kind of event packet */ -	HWTSTAMP_FILTER_PTP_V2_EVENT, -	/* PTP v2/802.AS1, any layer, Sync packet */ -	HWTSTAMP_FILTER_PTP_V2_SYNC, -	/* PTP v2/802.AS1, any layer, Delay_req packet */ -	HWTSTAMP_FILTER_PTP_V2_DELAY_REQ, -}; - -#endif /* _NET_TIMESTAMPING_H */ diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 561c8bc8976..f8eda0276f0 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -25,12 +25,6 @@  #ifndef _LINUX_NETDEVICE_H  #define _LINUX_NETDEVICE_H -#include <linux/if.h> -#include <linux/if_ether.h> -#include <linux/if_packet.h> -#include <linux/if_link.h> - -#ifdef __KERNEL__  #include <linux/pm_qos.h>  #include <linux/timer.h>  #include <linux/bug.h> @@ -55,6 +49,7 @@  #include <linux/netdev_features.h>  #include <linux/neighbour.h> +#include <uapi/linux/netdevice.h>  struct netpoll_info;  struct device; @@ -133,14 +128,6 @@ static inline bool dev_xmit_complete(int rc)  	return false;  } -#endif - -#define MAX_ADDR_LEN	32		/* Largest hardware address length */ - -/* Initial net device group. All devices belong to group 0 by default. */ -#define INIT_NETDEV_GROUP	0 - -#ifdef  __KERNEL__  /*   *	Compute the worst case header length according to the protocols   *	used. @@ -196,21 +183,6 @@ struct net_device_stats {  	unsigned long	tx_compressed;  }; -#endif  /*  __KERNEL__  */ - - -/* Media selection options. */ -enum { -        IF_PORT_UNKNOWN = 0, -        IF_PORT_10BASE2, -        IF_PORT_10BASET, -        IF_PORT_AUI, -        IF_PORT_100BASET, -        IF_PORT_100BASETX, -        IF_PORT_100BASEFX -}; - -#ifdef __KERNEL__  #include <linux/cache.h>  #include <linux/skbuff.h> @@ -2844,6 +2816,4 @@ do {								\  })  #endif -#endif /* __KERNEL__ */ -  #endif	/* _LINUX_NETDEVICE_H */ diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index 1dcf2a38e51..ee142846f56 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h @@ -1,7 +1,6 @@  #ifndef __LINUX_NETFILTER_H  #define __LINUX_NETFILTER_H -#ifdef __KERNEL__  #include <linux/init.h>  #include <linux/skbuff.h>  #include <linux/net.h> @@ -10,75 +9,7 @@  #include <linux/in6.h>  #include <linux/wait.h>  #include <linux/list.h> -#endif -#include <linux/types.h> -#include <linux/compiler.h> -#include <linux/sysctl.h> - -/* Responses from hook functions. */ -#define NF_DROP 0 -#define NF_ACCEPT 1 -#define NF_STOLEN 2 -#define NF_QUEUE 3 -#define NF_REPEAT 4 -#define NF_STOP 5 -#define NF_MAX_VERDICT NF_STOP - -/* we overload the higher bits for encoding auxiliary data such as the queue - * number or errno values. Not nice, but better than additional function - * arguments. */ -#define NF_VERDICT_MASK 0x000000ff - -/* extra verdict flags have mask 0x0000ff00 */ -#define NF_VERDICT_FLAG_QUEUE_BYPASS	0x00008000 - -/* queue number (NF_QUEUE) or errno (NF_DROP) */ -#define NF_VERDICT_QMASK 0xffff0000 -#define NF_VERDICT_QBITS 16 - -#define NF_QUEUE_NR(x) ((((x) << 16) & NF_VERDICT_QMASK) | NF_QUEUE) - -#define NF_DROP_ERR(x) (((-x) << 16) | NF_DROP) - -/* only for userspace compatibility */ -#ifndef __KERNEL__ -/* Generic cache responses from hook functions. -   <= 0x2000 is used for protocol-flags. */ -#define NFC_UNKNOWN 0x4000 -#define NFC_ALTERED 0x8000 - -/* NF_VERDICT_BITS should be 8 now, but userspace might break if this changes */ -#define NF_VERDICT_BITS 16 -#endif - -enum nf_inet_hooks { -	NF_INET_PRE_ROUTING, -	NF_INET_LOCAL_IN, -	NF_INET_FORWARD, -	NF_INET_LOCAL_OUT, -	NF_INET_POST_ROUTING, -	NF_INET_NUMHOOKS -}; - -enum { -	NFPROTO_UNSPEC =  0, -	NFPROTO_IPV4   =  2, -	NFPROTO_ARP    =  3, -	NFPROTO_BRIDGE =  7, -	NFPROTO_IPV6   = 10, -	NFPROTO_DECNET = 12, -	NFPROTO_NUMPROTO, -}; - -union nf_inet_addr { -	__u32		all[4]; -	__be32		ip; -	__be32		ip6[4]; -	struct in_addr	in; -	struct in6_addr	in6; -}; - -#ifdef __KERNEL__ +#include <uapi/linux/netfilter.h>  #ifdef CONFIG_NETFILTER  static inline int NF_DROP_GETERR(int verdict)  { @@ -411,5 +342,4 @@ extern struct nfq_ct_nat_hook __rcu *nfq_ct_nat_hook;  static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {}  #endif -#endif /*__KERNEL__*/  #endif /*__LINUX_NETFILTER_H*/ diff --git a/include/linux/netfilter_arp.h b/include/linux/netfilter_arp.h deleted file mode 100644 index 92bc6ddcbf7..00000000000 --- a/include/linux/netfilter_arp.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __LINUX_ARP_NETFILTER_H -#define __LINUX_ARP_NETFILTER_H - -/* ARP-specific defines for netfilter. - * (C)2002 Rusty Russell IBM -- This code is GPL. - */ - -#include <linux/netfilter.h> - -/* There is no PF_ARP. */ -#define NF_ARP		0 - -/* ARP Hooks */ -#define NF_ARP_IN	0 -#define NF_ARP_OUT	1 -#define NF_ARP_FORWARD	2 -#define NF_ARP_NUMHOOKS	3 - -#endif /* __LINUX_ARP_NETFILTER_H */ diff --git a/include/linux/netfilter_bridge.h b/include/linux/netfilter_bridge.h index 31d2844e657..dfb4d9e52bc 100644 --- a/include/linux/netfilter_bridge.h +++ b/include/linux/netfilter_bridge.h @@ -1,30 +1,8 @@  #ifndef __LINUX_BRIDGE_NETFILTER_H  #define __LINUX_BRIDGE_NETFILTER_H -/* bridge-specific defines for netfilter.  - */ +#include <uapi/linux/netfilter_bridge.h> -#include <linux/netfilter.h> -#include <linux/if_ether.h> -#include <linux/if_vlan.h> -#include <linux/if_pppox.h> - -/* Bridge Hooks */ -/* After promisc drops, checksum checks. */ -#define NF_BR_PRE_ROUTING	0 -/* If the packet is destined for this box. */ -#define NF_BR_LOCAL_IN		1 -/* If the packet is destined for another interface. */ -#define NF_BR_FORWARD		2 -/* Packets coming from a local process. */ -#define NF_BR_LOCAL_OUT		3 -/* Packets about to hit the wire. */ -#define NF_BR_POST_ROUTING	4 -/* Not really a hook, but used for the ebtables broute table */ -#define NF_BR_BROUTING		5 -#define NF_BR_NUMHOOKS		6 - -#ifdef __KERNEL__  enum nf_br_hook_priorities {  	NF_BR_PRI_FIRST = INT_MIN, @@ -118,5 +96,4 @@ static inline void br_drop_fake_rtable(struct sk_buff *skb)  #define br_drop_fake_rtable(skb)	        do { } while (0)  #endif /* CONFIG_BRIDGE_NETFILTER */ -#endif /* __KERNEL__ */  #endif diff --git a/include/linux/netfilter_decnet.h b/include/linux/netfilter_decnet.h deleted file mode 100644 index 0b09732aacd..00000000000 --- a/include/linux/netfilter_decnet.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef __LINUX_DECNET_NETFILTER_H -#define __LINUX_DECNET_NETFILTER_H - -/* DECnet-specific defines for netfilter.  - * This file (C) Steve Whitehouse 1999 derived from the - * ipv4 netfilter header file which is - * (C)1998 Rusty Russell -- This code is GPL. - */ - -#include <linux/netfilter.h> - -/* only for userspace compatibility */ -#ifndef __KERNEL__ - -#include <limits.h> /* for INT_MIN, INT_MAX */ - -/* IP Cache bits. */ -/* Src IP address. */ -#define NFC_DN_SRC		0x0001 -/* Dest IP address. */ -#define NFC_DN_DST		0x0002 -/* Input device. */ -#define NFC_DN_IF_IN		0x0004 -/* Output device. */ -#define NFC_DN_IF_OUT		0x0008 -#endif /* ! __KERNEL__ */ - -/* DECnet Hooks */ -/* After promisc drops, checksum checks. */ -#define NF_DN_PRE_ROUTING	0 -/* If the packet is destined for this box. */ -#define NF_DN_LOCAL_IN		1 -/* If the packet is destined for another interface. */ -#define NF_DN_FORWARD		2 -/* Packets coming from a local process. */ -#define NF_DN_LOCAL_OUT		3 -/* Packets about to hit the wire. */ -#define NF_DN_POST_ROUTING	4 -/* Input Hello Packets */ -#define NF_DN_HELLO		5 -/* Input Routing Packets */ -#define NF_DN_ROUTE		6 -#define NF_DN_NUMHOOKS		7 - -enum nf_dn_hook_priorities { -	NF_DN_PRI_FIRST = INT_MIN, -	NF_DN_PRI_CONNTRACK = -200, -	NF_DN_PRI_MANGLE = -150, -	NF_DN_PRI_NAT_DST = -100, -	NF_DN_PRI_FILTER = 0, -	NF_DN_PRI_NAT_SRC = 100, -	NF_DN_PRI_DNRTMSG = 200, -	NF_DN_PRI_LAST = INT_MAX, -}; - -struct nf_dn_rtmsg { -	int nfdn_ifindex; -}; - -#define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg))) - -#ifndef __KERNEL__ -/* backwards compatibility for userspace */ -#define DNRMG_L1_GROUP 0x01 -#define DNRMG_L2_GROUP 0x02 -#endif - -enum { -	DNRNG_NLGRP_NONE, -#define DNRNG_NLGRP_NONE	DNRNG_NLGRP_NONE -	DNRNG_NLGRP_L1, -#define DNRNG_NLGRP_L1		DNRNG_NLGRP_L1 -	DNRNG_NLGRP_L2, -#define DNRNG_NLGRP_L2		DNRNG_NLGRP_L2 -	__DNRNG_NLGRP_MAX -}; -#define DNRNG_NLGRP_MAX	(__DNRNG_NLGRP_MAX - 1) - -#endif /*__LINUX_DECNET_NETFILTER_H*/ diff --git a/include/linux/netfilter_ipv4.h b/include/linux/netfilter_ipv4.h index b962dfc695a..dfaf116b3e8 100644 --- a/include/linux/netfilter_ipv4.h +++ b/include/linux/netfilter_ipv4.h @@ -1,86 +1,12 @@ -#ifndef __LINUX_IP_NETFILTER_H -#define __LINUX_IP_NETFILTER_H -  /* IPv4-specific defines for netfilter.    * (C)1998 Rusty Russell -- This code is GPL.   */ +#ifndef __LINUX_IP_NETFILTER_H +#define __LINUX_IP_NETFILTER_H -#include <linux/netfilter.h> - -/* only for userspace compatibility */ -#ifndef __KERNEL__ - -#include <limits.h> /* for INT_MIN, INT_MAX */ - -/* IP Cache bits. */ -/* Src IP address. */ -#define NFC_IP_SRC		0x0001 -/* Dest IP address. */ -#define NFC_IP_DST		0x0002 -/* Input device. */ -#define NFC_IP_IF_IN		0x0004 -/* Output device. */ -#define NFC_IP_IF_OUT		0x0008 -/* TOS. */ -#define NFC_IP_TOS		0x0010 -/* Protocol. */ -#define NFC_IP_PROTO		0x0020 -/* IP options. */ -#define NFC_IP_OPTIONS		0x0040 -/* Frag & flags. */ -#define NFC_IP_FRAG		0x0080 - -/* Per-protocol information: only matters if proto match. */ -/* TCP flags. */ -#define NFC_IP_TCPFLAGS		0x0100 -/* Source port. */ -#define NFC_IP_SRC_PT		0x0200 -/* Dest port. */ -#define NFC_IP_DST_PT		0x0400 -/* Something else about the proto */ -#define NFC_IP_PROTO_UNKNOWN	0x2000 - -/* IP Hooks */ -/* After promisc drops, checksum checks. */ -#define NF_IP_PRE_ROUTING	0 -/* If the packet is destined for this box. */ -#define NF_IP_LOCAL_IN		1 -/* If the packet is destined for another interface. */ -#define NF_IP_FORWARD		2 -/* Packets coming from a local process. */ -#define NF_IP_LOCAL_OUT		3 -/* Packets about to hit the wire. */ -#define NF_IP_POST_ROUTING	4 -#define NF_IP_NUMHOOKS		5 -#endif /* ! __KERNEL__ */ - -enum nf_ip_hook_priorities { -	NF_IP_PRI_FIRST = INT_MIN, -	NF_IP_PRI_CONNTRACK_DEFRAG = -400, -	NF_IP_PRI_RAW = -300, -	NF_IP_PRI_SELINUX_FIRST = -225, -	NF_IP_PRI_CONNTRACK = -200, -	NF_IP_PRI_MANGLE = -150, -	NF_IP_PRI_NAT_DST = -100, -	NF_IP_PRI_FILTER = 0, -	NF_IP_PRI_SECURITY = 50, -	NF_IP_PRI_NAT_SRC = 100, -	NF_IP_PRI_SELINUX_LAST = 225, -	NF_IP_PRI_CONNTRACK_HELPER = 300, -	NF_IP_PRI_CONNTRACK_CONFIRM = INT_MAX, -	NF_IP_PRI_LAST = INT_MAX, -}; - -/* Arguments for setsockopt SOL_IP: */ -/* 2.0 firewalling went from 64 through 71 (and +256, +512, etc). */ -/* 2.2 firewalling (+ masq) went from 64 through 76 */ -/* 2.4 firewalling went 64 through 67. */ -#define SO_ORIGINAL_DST 80 +#include <uapi/linux/netfilter_ipv4.h> -#ifdef __KERNEL__  extern int ip_route_me_harder(struct sk_buff *skb, unsigned addr_type);  extern __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,  				   unsigned int dataoff, u_int8_t protocol); -#endif /*__KERNEL__*/ -  #endif /*__LINUX_IP_NETFILTER_H*/ diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 7c8a513ce7a..98ffb54988b 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h @@ -1,81 +1,14 @@ -#ifndef __LINUX_IP6_NETFILTER_H -#define __LINUX_IP6_NETFILTER_H -  /* IPv6-specific defines for netfilter.    * (C)1998 Rusty Russell -- This code is GPL.   * (C)1999 David Jeffery   *   this header was blatantly ripped from netfilter_ipv4.h    *   it's amazing what adding a bunch of 6s can do =8^)   */ +#ifndef __LINUX_IP6_NETFILTER_H +#define __LINUX_IP6_NETFILTER_H -#include <linux/netfilter.h> - -/* only for userspace compatibility */ -#ifndef __KERNEL__ - -#include <limits.h> /* for INT_MIN, INT_MAX */ - -/* IP Cache bits. */ -/* Src IP address. */ -#define NFC_IP6_SRC              0x0001 -/* Dest IP address. */ -#define NFC_IP6_DST              0x0002 -/* Input device. */ -#define NFC_IP6_IF_IN            0x0004 -/* Output device. */ -#define NFC_IP6_IF_OUT           0x0008 -/* TOS. */ -#define NFC_IP6_TOS              0x0010 -/* Protocol. */ -#define NFC_IP6_PROTO            0x0020 -/* IP options. */ -#define NFC_IP6_OPTIONS          0x0040 -/* Frag & flags. */ -#define NFC_IP6_FRAG             0x0080 - - -/* Per-protocol information: only matters if proto match. */ -/* TCP flags. */ -#define NFC_IP6_TCPFLAGS         0x0100 -/* Source port. */ -#define NFC_IP6_SRC_PT           0x0200 -/* Dest port. */ -#define NFC_IP6_DST_PT           0x0400 -/* Something else about the proto */ -#define NFC_IP6_PROTO_UNKNOWN    0x2000 - -/* IP6 Hooks */ -/* After promisc drops, checksum checks. */ -#define NF_IP6_PRE_ROUTING	0 -/* If the packet is destined for this box. */ -#define NF_IP6_LOCAL_IN		1 -/* If the packet is destined for another interface. */ -#define NF_IP6_FORWARD		2 -/* Packets coming from a local process. */ -#define NF_IP6_LOCAL_OUT		3 -/* Packets about to hit the wire. */ -#define NF_IP6_POST_ROUTING	4 -#define NF_IP6_NUMHOOKS		5 -#endif /* ! __KERNEL__ */ - - -enum nf_ip6_hook_priorities { -	NF_IP6_PRI_FIRST = INT_MIN, -	NF_IP6_PRI_CONNTRACK_DEFRAG = -400, -	NF_IP6_PRI_RAW = -300, -	NF_IP6_PRI_SELINUX_FIRST = -225, -	NF_IP6_PRI_CONNTRACK = -200, -	NF_IP6_PRI_MANGLE = -150, -	NF_IP6_PRI_NAT_DST = -100, -	NF_IP6_PRI_FILTER = 0, -	NF_IP6_PRI_SECURITY = 50, -	NF_IP6_PRI_NAT_SRC = 100, -	NF_IP6_PRI_SELINUX_LAST = 225, -	NF_IP6_PRI_CONNTRACK_HELPER = 300, -	NF_IP6_PRI_LAST = INT_MAX, -}; +#include <uapi/linux/netfilter_ipv6.h> -#ifdef  __KERNEL__  #ifdef CONFIG_NETFILTER  extern int ip6_route_me_harder(struct sk_buff *skb); @@ -89,6 +22,4 @@ static inline int ipv6_netfilter_init(void) { return 0; }  static inline void ipv6_netfilter_fini(void) { return; }  #endif /* CONFIG_NETFILTER */ -#endif /* __KERNEL__ */ -  #endif /*__LINUX_IP6_NETFILTER_H*/ diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 6d3af05c107..e0f746b7b95 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h @@ -1,160 +1,12 @@  #ifndef __LINUX_NETLINK_H  #define __LINUX_NETLINK_H -#include <linux/socket.h> /* for __kernel_sa_family_t */ -#include <linux/types.h> - -#define NETLINK_ROUTE		0	/* Routing/device hook				*/ -#define NETLINK_UNUSED		1	/* Unused number				*/ -#define NETLINK_USERSOCK	2	/* Reserved for user mode socket protocols 	*/ -#define NETLINK_FIREWALL	3	/* Unused number, formerly ip_queue		*/ -#define NETLINK_SOCK_DIAG	4	/* socket monitoring				*/ -#define NETLINK_NFLOG		5	/* netfilter/iptables ULOG */ -#define NETLINK_XFRM		6	/* ipsec */ -#define NETLINK_SELINUX		7	/* SELinux event notifications */ -#define NETLINK_ISCSI		8	/* Open-iSCSI */ -#define NETLINK_AUDIT		9	/* auditing */ -#define NETLINK_FIB_LOOKUP	10	 -#define NETLINK_CONNECTOR	11 -#define NETLINK_NETFILTER	12	/* netfilter subsystem */ -#define NETLINK_IP6_FW		13 -#define NETLINK_DNRTMSG		14	/* DECnet routing messages */ -#define NETLINK_KOBJECT_UEVENT	15	/* Kernel messages to userspace */ -#define NETLINK_GENERIC		16 -/* leave room for NETLINK_DM (DM Events) */ -#define NETLINK_SCSITRANSPORT	18	/* SCSI Transports */ -#define NETLINK_ECRYPTFS	19 -#define NETLINK_RDMA		20 -#define NETLINK_CRYPTO		21	/* Crypto layer */ - -#define NETLINK_INET_DIAG	NETLINK_SOCK_DIAG - -#define MAX_LINKS 32		 - -struct sockaddr_nl { -	__kernel_sa_family_t	nl_family;	/* AF_NETLINK	*/ -	unsigned short	nl_pad;		/* zero		*/ -	__u32		nl_pid;		/* port ID	*/ -       	__u32		nl_groups;	/* multicast groups mask */ -}; - -struct nlmsghdr { -	__u32		nlmsg_len;	/* Length of message including header */ -	__u16		nlmsg_type;	/* Message content */ -	__u16		nlmsg_flags;	/* Additional flags */ -	__u32		nlmsg_seq;	/* Sequence number */ -	__u32		nlmsg_pid;	/* Sending process port ID */ -}; - -/* Flags values */ - -#define NLM_F_REQUEST		1	/* It is request message. 	*/ -#define NLM_F_MULTI		2	/* Multipart message, terminated by NLMSG_DONE */ -#define NLM_F_ACK		4	/* Reply with ack, with zero or error code */ -#define NLM_F_ECHO		8	/* Echo this request 		*/ -#define NLM_F_DUMP_INTR		16	/* Dump was inconsistent due to sequence change */ - -/* Modifiers to GET request */ -#define NLM_F_ROOT	0x100	/* specify tree	root	*/ -#define NLM_F_MATCH	0x200	/* return all matching	*/ -#define NLM_F_ATOMIC	0x400	/* atomic GET		*/ -#define NLM_F_DUMP	(NLM_F_ROOT|NLM_F_MATCH) - -/* Modifiers to NEW request */ -#define NLM_F_REPLACE	0x100	/* Override existing		*/ -#define NLM_F_EXCL	0x200	/* Do not touch, if it exists	*/ -#define NLM_F_CREATE	0x400	/* Create, if it does not exist	*/ -#define NLM_F_APPEND	0x800	/* Add to end of list		*/ - -/* -   4.4BSD ADD		NLM_F_CREATE|NLM_F_EXCL -   4.4BSD CHANGE	NLM_F_REPLACE - -   True CHANGE		NLM_F_CREATE|NLM_F_REPLACE -   Append		NLM_F_CREATE -   Check		NLM_F_EXCL - */ - -#define NLMSG_ALIGNTO	4U -#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) ) -#define NLMSG_HDRLEN	 ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) -#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(NLMSG_HDRLEN)) -#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len)) -#define NLMSG_DATA(nlh)  ((void*)(((char*)nlh) + NLMSG_LENGTH(0))) -#define NLMSG_NEXT(nlh,len)	 ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \ -				  (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len))) -#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ -			   (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ -			   (nlh)->nlmsg_len <= (len)) -#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len))) - -#define NLMSG_NOOP		0x1	/* Nothing.		*/ -#define NLMSG_ERROR		0x2	/* Error		*/ -#define NLMSG_DONE		0x3	/* End of a dump	*/ -#define NLMSG_OVERRUN		0x4	/* Data lost		*/ - -#define NLMSG_MIN_TYPE		0x10	/* < 0x10: reserved control messages */ - -struct nlmsgerr { -	int		error; -	struct nlmsghdr msg; -}; - -#define NETLINK_ADD_MEMBERSHIP	1 -#define NETLINK_DROP_MEMBERSHIP	2 -#define NETLINK_PKTINFO		3 -#define NETLINK_BROADCAST_ERROR	4 -#define NETLINK_NO_ENOBUFS	5 - -struct nl_pktinfo { -	__u32	group; -}; - -#define NET_MAJOR 36		/* Major 36 is reserved for networking 						*/ - -enum { -	NETLINK_UNCONNECTED = 0, -	NETLINK_CONNECTED, -}; - -/* - *  <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)--> - * +---------------------+- - -+- - - - - - - - - -+- - -+ - * |        Header       | Pad |     Payload       | Pad | - * |   (struct nlattr)   | ing |                   | ing | - * +---------------------+- - -+- - - - - - - - - -+- - -+ - *  <-------------- nlattr->nla_len --------------> - */ - -struct nlattr { -	__u16           nla_len; -	__u16           nla_type; -}; - -/* - * nla_type (16 bits) - * +---+---+-------------------------------+ - * | N | O | Attribute Type                | - * +---+---+-------------------------------+ - * N := Carries nested attributes - * O := Payload stored in network byte order - * - * Note: The N and O flag are mutually exclusive. - */ -#define NLA_F_NESTED		(1 << 15) -#define NLA_F_NET_BYTEORDER	(1 << 14) -#define NLA_TYPE_MASK		~(NLA_F_NESTED | NLA_F_NET_BYTEORDER) - -#define NLA_ALIGNTO		4 -#define NLA_ALIGN(len)		(((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1)) -#define NLA_HDRLEN		((int) NLA_ALIGN(sizeof(struct nlattr))) - -#ifdef __KERNEL__  #include <linux/capability.h>  #include <linux/skbuff.h>  #include <linux/export.h>  #include <net/scm.h> +#include <uapi/linux/netlink.h>  struct net; @@ -283,6 +135,4 @@ static inline int netlink_dump_start(struct sock *ssk, struct sk_buff *skb,  	return __netlink_dump_start(ssk, skb, nlh, control);  } -#endif /* __KERNEL__ */ -  #endif	/* __LINUX_NETLINK_H */ diff --git a/include/linux/netrom.h b/include/linux/netrom.h deleted file mode 100644 index af7313cc9cb..00000000000 --- a/include/linux/netrom.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * These are the public elements of the Linux kernel NET/ROM implementation. - * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the - * definition of the ax25_address structure. - */ - -#ifndef	NETROM_KERNEL_H -#define	NETROM_KERNEL_H - -#include <linux/ax25.h> - -#define NETROM_MTU	236 - -#define NETROM_T1	1 -#define NETROM_T2	2 -#define NETROM_N2	3 -#define	NETROM_T4	6 -#define	NETROM_IDLE	7 - -#define	SIOCNRDECOBS		(SIOCPROTOPRIVATE+2) - -struct nr_route_struct { -#define	NETROM_NEIGH	0 -#define	NETROM_NODE	1 -	int		type; -	ax25_address	callsign; -	char		device[16]; -	unsigned int	quality; -	char		mnemonic[7]; -	ax25_address	neighbour; -	unsigned int	obs_count; -	unsigned int	ndigis; -	ax25_address	digipeaters[AX25_MAX_DIGIS]; -}; - -#endif diff --git a/include/linux/nfc.h b/include/linux/nfc.h deleted file mode 100644 index d908d17da56..00000000000 --- a/include/linux/nfc.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright (C) 2011 Instituto Nokia de Tecnologia - * - * Authors: - *    Lauro Ramos Venancio <lauro.venancio@openbossa.org> - *    Aloisio Almeida Jr <aloisio.almeida@openbossa.org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the - * Free Software Foundation, Inc., - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef __LINUX_NFC_H -#define __LINUX_NFC_H - -#include <linux/types.h> -#include <linux/socket.h> - -#define NFC_GENL_NAME "nfc" -#define NFC_GENL_VERSION 1 - -#define NFC_GENL_MCAST_EVENT_NAME "events" - -/** - * enum nfc_commands - supported nfc commands - * - * @NFC_CMD_UNSPEC: unspecified command - * - * @NFC_CMD_GET_DEVICE: request information about a device (requires - *	%NFC_ATTR_DEVICE_INDEX) or dump request to get a list of all nfc devices - * @NFC_CMD_DEV_UP: turn on the nfc device - *	(requires %NFC_ATTR_DEVICE_INDEX) - * @NFC_CMD_DEV_DOWN: turn off the nfc device - *	(requires %NFC_ATTR_DEVICE_INDEX) - * @NFC_CMD_START_POLL: start polling for targets using the given protocols - *	(requires %NFC_ATTR_DEVICE_INDEX and %NFC_ATTR_PROTOCOLS) - * @NFC_CMD_STOP_POLL: stop polling for targets (requires - *	%NFC_ATTR_DEVICE_INDEX) - * @NFC_CMD_GET_TARGET: dump all targets found by the previous poll (requires - *	%NFC_ATTR_DEVICE_INDEX) - * @NFC_EVENT_TARGETS_FOUND: event emitted when a new target is found - *	(it sends %NFC_ATTR_DEVICE_INDEX) - * @NFC_EVENT_DEVICE_ADDED: event emitted when a new device is registred - *	(it sends %NFC_ATTR_DEVICE_NAME, %NFC_ATTR_DEVICE_INDEX and - *	%NFC_ATTR_PROTOCOLS) - * @NFC_EVENT_DEVICE_REMOVED: event emitted when a device is removed - *	(it sends %NFC_ATTR_DEVICE_INDEX) - * @NFC_EVENT_TM_ACTIVATED: event emitted when the adapter is activated in - *      target mode. - * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated - *      from target mode. - */ -enum nfc_commands { -	NFC_CMD_UNSPEC, -	NFC_CMD_GET_DEVICE, -	NFC_CMD_DEV_UP, -	NFC_CMD_DEV_DOWN, -	NFC_CMD_DEP_LINK_UP, -	NFC_CMD_DEP_LINK_DOWN, -	NFC_CMD_START_POLL, -	NFC_CMD_STOP_POLL, -	NFC_CMD_GET_TARGET, -	NFC_EVENT_TARGETS_FOUND, -	NFC_EVENT_DEVICE_ADDED, -	NFC_EVENT_DEVICE_REMOVED, -	NFC_EVENT_TARGET_LOST, -	NFC_EVENT_TM_ACTIVATED, -	NFC_EVENT_TM_DEACTIVATED, -/* private: internal use only */ -	__NFC_CMD_AFTER_LAST -}; -#define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1) - -/** - * enum nfc_attrs - supported nfc attributes - * - * @NFC_ATTR_UNSPEC: unspecified attribute - * - * @NFC_ATTR_DEVICE_INDEX: index of nfc device - * @NFC_ATTR_DEVICE_NAME: device name, max 8 chars - * @NFC_ATTR_PROTOCOLS: nfc protocols - bitwise or-ed combination from - *	NFC_PROTO_*_MASK constants - * @NFC_ATTR_TARGET_INDEX: index of the nfc target - * @NFC_ATTR_TARGET_SENS_RES: NFC-A targets extra information such as NFCID - * @NFC_ATTR_TARGET_SEL_RES: NFC-A targets extra information (useful if the - *	target is not NFC-Forum compliant) - * @NFC_ATTR_TARGET_NFCID1: NFC-A targets identifier, max 10 bytes - * @NFC_ATTR_TARGET_SENSB_RES: NFC-B targets extra information, max 12 bytes - * @NFC_ATTR_TARGET_SENSF_RES: NFC-F targets extra information, max 18 bytes - * @NFC_ATTR_COMM_MODE: Passive or active mode - * @NFC_ATTR_RF_MODE: Initiator or target - * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for - * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for - */ -enum nfc_attrs { -	NFC_ATTR_UNSPEC, -	NFC_ATTR_DEVICE_INDEX, -	NFC_ATTR_DEVICE_NAME, -	NFC_ATTR_PROTOCOLS, -	NFC_ATTR_TARGET_INDEX, -	NFC_ATTR_TARGET_SENS_RES, -	NFC_ATTR_TARGET_SEL_RES, -	NFC_ATTR_TARGET_NFCID1, -	NFC_ATTR_TARGET_SENSB_RES, -	NFC_ATTR_TARGET_SENSF_RES, -	NFC_ATTR_COMM_MODE, -	NFC_ATTR_RF_MODE, -	NFC_ATTR_DEVICE_POWERED, -	NFC_ATTR_IM_PROTOCOLS, -	NFC_ATTR_TM_PROTOCOLS, -/* private: internal use only */ -	__NFC_ATTR_AFTER_LAST -}; -#define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1) - -#define NFC_DEVICE_NAME_MAXSIZE 8 -#define NFC_NFCID1_MAXSIZE 10 -#define NFC_SENSB_RES_MAXSIZE 12 -#define NFC_SENSF_RES_MAXSIZE 18 -#define NFC_GB_MAXSIZE        48 - -/* NFC protocols */ -#define NFC_PROTO_JEWEL		1 -#define NFC_PROTO_MIFARE	2 -#define NFC_PROTO_FELICA	3 -#define NFC_PROTO_ISO14443	4 -#define NFC_PROTO_NFC_DEP	5 -#define NFC_PROTO_ISO14443_B	6 - -#define NFC_PROTO_MAX		7 - -/* NFC communication modes */ -#define NFC_COMM_ACTIVE  0 -#define NFC_COMM_PASSIVE 1 - -/* NFC RF modes */ -#define NFC_RF_INITIATOR 0 -#define NFC_RF_TARGET    1 -#define NFC_RF_NONE      2 - -/* NFC protocols masks used in bitsets */ -#define NFC_PROTO_JEWEL_MASK      (1 << NFC_PROTO_JEWEL) -#define NFC_PROTO_MIFARE_MASK     (1 << NFC_PROTO_MIFARE) -#define NFC_PROTO_FELICA_MASK	  (1 << NFC_PROTO_FELICA) -#define NFC_PROTO_ISO14443_MASK	  (1 << NFC_PROTO_ISO14443) -#define NFC_PROTO_NFC_DEP_MASK	  (1 << NFC_PROTO_NFC_DEP) -#define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) - -struct sockaddr_nfc { -	sa_family_t sa_family; -	__u32 dev_idx; -	__u32 target_idx; -	__u32 nfc_protocol; -}; - -#define NFC_LLCP_MAX_SERVICE_NAME 63 -struct sockaddr_nfc_llcp { -	sa_family_t sa_family; -	__u32 dev_idx; -	__u32 target_idx; -	__u32 nfc_protocol; -	__u8 dsap; /* Destination SAP, if known */ -	__u8 ssap; /* Source SAP to be bound to */ -	char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */; -	size_t service_name_len; -}; - -/* NFC socket protocols */ -#define NFC_SOCKPROTO_RAW	0 -#define NFC_SOCKPROTO_LLCP	1 -#define NFC_SOCKPROTO_MAX	2 - -#define NFC_HEADER_SIZE 1 - -/** - * Pseudo-header info for raw socket packets - * First byte is the adapter index - * Second byte contains flags - *  - 0x01 - Direction (0=RX, 1=TX) - *  - 0x02-0x80 - Reserved - **/ -#define NFC_LLCP_RAW_HEADER_SIZE	2 -#define NFC_LLCP_DIRECTION_RX		0x00 -#define NFC_LLCP_DIRECTION_TX		0x01 - -#endif /*__LINUX_NFC_H */ diff --git a/include/linux/nfs.h b/include/linux/nfs.h index 6d1fb63f592..3e794c12e90 100644 --- a/include/linux/nfs.h +++ b/include/linux/nfs.h @@ -7,130 +7,9 @@  #ifndef _LINUX_NFS_H  #define _LINUX_NFS_H -#define NFS_PROGRAM	100003 -#define NFS_PORT	2049 -#define NFS_MAXDATA	8192 -#define NFS_MAXPATHLEN	1024 -#define NFS_MAXNAMLEN	255 -#define NFS_MAXGROUPS	16 -#define NFS_FHSIZE	32 -#define NFS_COOKIESIZE	4 -#define NFS_FIFO_DEV	(-1) -#define NFSMODE_FMT	0170000 -#define NFSMODE_DIR	0040000 -#define NFSMODE_CHR	0020000 -#define NFSMODE_BLK	0060000 -#define NFSMODE_REG	0100000 -#define NFSMODE_LNK	0120000 -#define NFSMODE_SOCK	0140000 -#define NFSMODE_FIFO	0010000 - -#define NFS_MNT_PROGRAM		100005 -#define NFS_MNT_VERSION		1 -#define NFS_MNT3_VERSION	3 - -#define NFS_PIPE_DIRNAME "nfs" - -/* - * NFS stats. The good thing with these values is that NFSv3 errors are - * a superset of NFSv2 errors (with the exception of NFSERR_WFLUSH which - * no-one uses anyway), so we can happily mix code as long as we make sure - * no NFSv3 errors are returned to NFSv2 clients. - * Error codes that have a `--' in the v2 column are not part of the - * standard, but seem to be widely used nevertheless. - */ - enum nfs_stat { -	NFS_OK = 0,			/* v2 v3 v4 */ -	NFSERR_PERM = 1,		/* v2 v3 v4 */ -	NFSERR_NOENT = 2,		/* v2 v3 v4 */ -	NFSERR_IO = 5,			/* v2 v3 v4 */ -	NFSERR_NXIO = 6,		/* v2 v3 v4 */ -	NFSERR_EAGAIN = 11,		/* v2 v3 */ -	NFSERR_ACCES = 13,		/* v2 v3 v4 */ -	NFSERR_EXIST = 17,		/* v2 v3 v4 */ -	NFSERR_XDEV = 18,		/*    v3 v4 */ -	NFSERR_NODEV = 19,		/* v2 v3 v4 */ -	NFSERR_NOTDIR = 20,		/* v2 v3 v4 */ -	NFSERR_ISDIR = 21,		/* v2 v3 v4 */ -	NFSERR_INVAL = 22,		/* v2 v3 v4 */ -	NFSERR_FBIG = 27,		/* v2 v3 v4 */ -	NFSERR_NOSPC = 28,		/* v2 v3 v4 */ -	NFSERR_ROFS = 30,		/* v2 v3 v4 */ -	NFSERR_MLINK = 31,		/*    v3 v4 */ -	NFSERR_OPNOTSUPP = 45,		/* v2 v3 */ -	NFSERR_NAMETOOLONG = 63,	/* v2 v3 v4 */ -	NFSERR_NOTEMPTY = 66,		/* v2 v3 v4 */ -	NFSERR_DQUOT = 69,		/* v2 v3 v4 */ -	NFSERR_STALE = 70,		/* v2 v3 v4 */ -	NFSERR_REMOTE = 71,		/* v2 v3 */ -	NFSERR_WFLUSH = 99,		/* v2    */ -	NFSERR_BADHANDLE = 10001,	/*    v3 v4 */ -	NFSERR_NOT_SYNC = 10002,	/*    v3 */ -	NFSERR_BAD_COOKIE = 10003,	/*    v3 v4 */ -	NFSERR_NOTSUPP = 10004,		/*    v3 v4 */ -	NFSERR_TOOSMALL = 10005,	/*    v3 v4 */ -	NFSERR_SERVERFAULT = 10006,	/*    v3 v4 */ -	NFSERR_BADTYPE = 10007,		/*    v3 v4 */ -	NFSERR_JUKEBOX = 10008,		/*    v3 v4 */ -	NFSERR_SAME = 10009,		/*       v4 */ -	NFSERR_DENIED = 10010,		/*       v4 */ -	NFSERR_EXPIRED = 10011,		/*       v4 */ -	NFSERR_LOCKED = 10012,		/*       v4 */ -	NFSERR_GRACE = 10013,		/*       v4 */ -	NFSERR_FHEXPIRED = 10014,	/*       v4 */ -	NFSERR_SHARE_DENIED = 10015,	/*       v4 */ -	NFSERR_WRONGSEC = 10016,	/*       v4 */ -	NFSERR_CLID_INUSE = 10017,	/*       v4 */ -	NFSERR_RESOURCE = 10018,	/*       v4 */ -	NFSERR_MOVED = 10019,		/*       v4 */ -	NFSERR_NOFILEHANDLE = 10020,	/*       v4 */ -	NFSERR_MINOR_VERS_MISMATCH = 10021,   /* v4 */ -	NFSERR_STALE_CLIENTID = 10022,	/*       v4 */ -	NFSERR_STALE_STATEID = 10023,   /*       v4 */ -	NFSERR_OLD_STATEID = 10024,     /*       v4 */ -	NFSERR_BAD_STATEID = 10025,     /*       v4 */   -	NFSERR_BAD_SEQID = 10026,	/*       v4 */ -	NFSERR_NOT_SAME = 10027,	/*       v4 */ -	NFSERR_LOCK_RANGE = 10028,	/*       v4 */ -	NFSERR_SYMLINK = 10029,		/*       v4 */ -	NFSERR_RESTOREFH = 10030,	/*       v4 */ -	NFSERR_LEASE_MOVED = 10031,	/*       v4 */ -	NFSERR_ATTRNOTSUPP = 10032,	/*       v4 */ -	NFSERR_NO_GRACE = 10033,	/*       v4 */ -	NFSERR_RECLAIM_BAD = 10034,	/*       v4 */ -	NFSERR_RECLAIM_CONFLICT = 10035,/*       v4 */ -	NFSERR_BAD_XDR = 10036,		/*       v4 */ -	NFSERR_LOCKS_HELD = 10037,	/*       v4 */ -	NFSERR_OPENMODE = 10038,       /*       v4 */ -	NFSERR_BADOWNER = 10039,       /*       v4 */ -	NFSERR_BADCHAR = 10040,        /*       v4 */ -	NFSERR_BADNAME = 10041,        /*       v4 */ -	NFSERR_BAD_RANGE = 10042,      /*       v4 */ -	NFSERR_LOCK_NOTSUPP = 10043,   /*       v4 */ -	NFSERR_OP_ILLEGAL = 10044,     /*       v4 */ -	NFSERR_DEADLOCK = 10045,       /*       v4 */ -	NFSERR_FILE_OPEN = 10046,      /*       v4 */ -	NFSERR_ADMIN_REVOKED = 10047,  /*       v4 */ -	NFSERR_CB_PATH_DOWN = 10048,   /*       v4 */ -}; - -/* NFSv2 file types - beware, these are not the same in NFSv3 */ - -enum nfs_ftype { -	NFNON = 0, -	NFREG = 1, -	NFDIR = 2, -	NFBLK = 3, -	NFCHR = 4, -	NFLNK = 5, -	NFSOCK = 6, -	NFBAD = 7, -	NFFIFO = 8 -}; - -#ifdef __KERNEL__  #include <linux/sunrpc/msg_prot.h>  #include <linux/string.h> +#include <uapi/linux/nfs.h>  /*   * This is the kernel NFS client file handle representation @@ -169,5 +48,4 @@ enum nfs3_stable_how {  	NFS_DATA_SYNC = 1,  	NFS_FILE_SYNC = 2  }; -#endif /* __KERNEL__ */  #endif /* _LINUX_NFS_H */ diff --git a/include/linux/nfs2.h b/include/linux/nfs2.h deleted file mode 100644 index fde24b30cc9..00000000000 --- a/include/linux/nfs2.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * NFS protocol definitions - * - * This file contains constants for Version 2 of the protocol. - */ -#ifndef _LINUX_NFS2_H -#define _LINUX_NFS2_H - -#define NFS2_PORT	2049 -#define NFS2_MAXDATA	8192 -#define NFS2_MAXPATHLEN	1024 -#define NFS2_MAXNAMLEN	255 -#define NFS2_MAXGROUPS	16 -#define NFS2_FHSIZE	32 -#define NFS2_COOKIESIZE	4 -#define NFS2_FIFO_DEV	(-1) -#define NFS2MODE_FMT	0170000 -#define NFS2MODE_DIR	0040000 -#define NFS2MODE_CHR	0020000 -#define NFS2MODE_BLK	0060000 -#define NFS2MODE_REG	0100000 -#define NFS2MODE_LNK	0120000 -#define NFS2MODE_SOCK	0140000 -#define NFS2MODE_FIFO	0010000 - - -/* NFSv2 file types - beware, these are not the same in NFSv3 */ -enum nfs2_ftype { -	NF2NON = 0, -	NF2REG = 1, -	NF2DIR = 2, -	NF2BLK = 3, -	NF2CHR = 4, -	NF2LNK = 5, -	NF2SOCK = 6, -	NF2BAD = 7, -	NF2FIFO = 8 -}; - -struct nfs2_fh { -	char			data[NFS2_FHSIZE]; -}; - -/* - * Procedure numbers for NFSv2 - */ -#define NFS2_VERSION		2 -#define NFSPROC_NULL		0 -#define NFSPROC_GETATTR		1 -#define NFSPROC_SETATTR		2 -#define NFSPROC_ROOT		3 -#define NFSPROC_LOOKUP		4 -#define NFSPROC_READLINK	5 -#define NFSPROC_READ		6 -#define NFSPROC_WRITECACHE	7 -#define NFSPROC_WRITE		8 -#define NFSPROC_CREATE		9 -#define NFSPROC_REMOVE		10 -#define NFSPROC_RENAME		11 -#define NFSPROC_LINK		12 -#define NFSPROC_SYMLINK		13 -#define NFSPROC_MKDIR		14 -#define NFSPROC_RMDIR		15 -#define NFSPROC_READDIR		16 -#define NFSPROC_STATFS		17 - -#endif /* _LINUX_NFS2_H */ diff --git a/include/linux/nfs3.h b/include/linux/nfs3.h index 6ccfe3b641e..a778ad8e3af 100644 --- a/include/linux/nfs3.h +++ b/include/linux/nfs3.h @@ -4,100 +4,10 @@  #ifndef _LINUX_NFS3_H  #define _LINUX_NFS3_H -#define NFS3_PORT		2049 -#define NFS3_MAXDATA		32768 -#define NFS3_MAXPATHLEN		PATH_MAX -#define NFS3_MAXNAMLEN		NAME_MAX -#define NFS3_MAXGROUPS		16 -#define NFS3_FHSIZE		64 -#define NFS3_COOKIESIZE		4 -#define NFS3_CREATEVERFSIZE	8 -#define NFS3_COOKIEVERFSIZE	8 -#define NFS3_WRITEVERFSIZE	8 -#define NFS3_FIFO_DEV		(-1) -#define NFS3MODE_FMT		0170000 -#define NFS3MODE_DIR		0040000 -#define NFS3MODE_CHR		0020000 -#define NFS3MODE_BLK		0060000 -#define NFS3MODE_REG		0100000 -#define NFS3MODE_LNK		0120000 -#define NFS3MODE_SOCK		0140000 -#define NFS3MODE_FIFO		0010000 +#include <uapi/linux/nfs3.h> -/* Flags for access() call */ -#define NFS3_ACCESS_READ	0x0001 -#define NFS3_ACCESS_LOOKUP	0x0002 -#define NFS3_ACCESS_MODIFY	0x0004 -#define NFS3_ACCESS_EXTEND	0x0008 -#define NFS3_ACCESS_DELETE	0x0010 -#define NFS3_ACCESS_EXECUTE	0x0020 -#define NFS3_ACCESS_FULL	0x003f - -/* Flags for create mode */ -enum nfs3_createmode { -	NFS3_CREATE_UNCHECKED = 0, -	NFS3_CREATE_GUARDED = 1, -	NFS3_CREATE_EXCLUSIVE = 2 -}; - -/* NFSv3 file system properties */ -#define NFS3_FSF_LINK		0x0001 -#define NFS3_FSF_SYMLINK	0x0002 -#define NFS3_FSF_HOMOGENEOUS	0x0008 -#define NFS3_FSF_CANSETTIME	0x0010 -/* Some shorthands. See fs/nfsd/nfs3proc.c */ -#define NFS3_FSF_DEFAULT	0x001B -#define NFS3_FSF_BILLYBOY	0x0018 -#define NFS3_FSF_READONLY	0x0008 - -enum nfs3_ftype { -	NF3NON  = 0, -	NF3REG  = 1, -	NF3DIR  = 2, -	NF3BLK  = 3, -	NF3CHR  = 4, -	NF3LNK  = 5, -	NF3SOCK = 6, -	NF3FIFO = 7,	/* changed from NFSv2 (was 8) */ -	NF3BAD  = 8 -}; - -struct nfs3_fh { -	unsigned short size; -	unsigned char  data[NFS3_FHSIZE]; -}; - -#define NFS3_VERSION		3 -#define NFS3PROC_NULL		0 -#define NFS3PROC_GETATTR	1 -#define NFS3PROC_SETATTR	2 -#define NFS3PROC_LOOKUP		3 -#define NFS3PROC_ACCESS		4 -#define NFS3PROC_READLINK	5 -#define NFS3PROC_READ		6 -#define NFS3PROC_WRITE		7 -#define NFS3PROC_CREATE		8 -#define NFS3PROC_MKDIR		9 -#define NFS3PROC_SYMLINK	10 -#define NFS3PROC_MKNOD		11 -#define NFS3PROC_REMOVE		12 -#define NFS3PROC_RMDIR		13 -#define NFS3PROC_RENAME		14 -#define NFS3PROC_LINK		15 -#define NFS3PROC_READDIR	16 -#define NFS3PROC_READDIRPLUS	17 -#define NFS3PROC_FSSTAT		18 -#define NFS3PROC_FSINFO		19 -#define NFS3PROC_PATHCONF	20 -#define NFS3PROC_COMMIT		21 - -#define NFS_MNT3_VERSION	3 -  - -#if defined(__KERNEL__)  /* Number of 32bit words in post_op_attr */  #define NFS3_POST_OP_ATTR_WORDS		22 -#endif /* __KERNEL__ */  #endif /* _LINUX_NFS3_H */ diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index af2d2fa30ee..e111fa419a4 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h @@ -9,168 +9,11 @@   *  Kendrick Smith <kmsmith@umich.edu>   *  Andy Adamson   <andros@umich.edu>   */ -  #ifndef _LINUX_NFS4_H  #define _LINUX_NFS4_H -#include <linux/types.h> - -#define NFS4_BITMAP_SIZE	2 -#define NFS4_VERIFIER_SIZE	8 -#define NFS4_STATEID_SEQID_SIZE 4 -#define NFS4_STATEID_OTHER_SIZE 12 -#define NFS4_STATEID_SIZE	(NFS4_STATEID_SEQID_SIZE + NFS4_STATEID_OTHER_SIZE) -#define NFS4_FHSIZE		128 -#define NFS4_MAXPATHLEN		PATH_MAX -#define NFS4_MAXNAMLEN		NAME_MAX -#define NFS4_OPAQUE_LIMIT	1024 -#define NFS4_MAX_SESSIONID_LEN	16 - -#define NFS4_ACCESS_READ        0x0001 -#define NFS4_ACCESS_LOOKUP      0x0002 -#define NFS4_ACCESS_MODIFY      0x0004 -#define NFS4_ACCESS_EXTEND      0x0008 -#define NFS4_ACCESS_DELETE      0x0010 -#define NFS4_ACCESS_EXECUTE     0x0020 - -#define NFS4_FH_PERSISTENT		0x0000 -#define NFS4_FH_NOEXPIRE_WITH_OPEN	0x0001 -#define NFS4_FH_VOLATILE_ANY		0x0002 -#define NFS4_FH_VOL_MIGRATION		0x0004 -#define NFS4_FH_VOL_RENAME		0x0008 - -#define NFS4_OPEN_RESULT_CONFIRM 0x0002 -#define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004 - -#define NFS4_SHARE_ACCESS_MASK	0x000F -#define NFS4_SHARE_ACCESS_READ	0x0001 -#define NFS4_SHARE_ACCESS_WRITE	0x0002 -#define NFS4_SHARE_ACCESS_BOTH	0x0003 -#define NFS4_SHARE_DENY_READ	0x0001 -#define NFS4_SHARE_DENY_WRITE	0x0002 -#define NFS4_SHARE_DENY_BOTH	0x0003 - -/* nfs41 */ -#define NFS4_SHARE_WANT_MASK		0xFF00 -#define NFS4_SHARE_WANT_NO_PREFERENCE	0x0000 -#define NFS4_SHARE_WANT_READ_DELEG	0x0100 -#define NFS4_SHARE_WANT_WRITE_DELEG	0x0200 -#define NFS4_SHARE_WANT_ANY_DELEG	0x0300 -#define NFS4_SHARE_WANT_NO_DELEG	0x0400 -#define NFS4_SHARE_WANT_CANCEL		0x0500 - -#define NFS4_SHARE_WHEN_MASK		0xF0000 -#define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL	0x10000 -#define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED		0x20000 - -#define NFS4_CDFC4_FORE	0x1 -#define NFS4_CDFC4_BACK 0x2 -#define NFS4_CDFC4_BOTH 0x3 -#define NFS4_CDFC4_FORE_OR_BOTH 0x3 -#define NFS4_CDFC4_BACK_OR_BOTH 0x7 - -#define NFS4_CDFS4_FORE 0x1 -#define NFS4_CDFS4_BACK 0x2 -#define NFS4_CDFS4_BOTH 0x3 - -#define NFS4_SET_TO_SERVER_TIME	0 -#define NFS4_SET_TO_CLIENT_TIME	1 - -#define NFS4_ACE_ACCESS_ALLOWED_ACE_TYPE 0 -#define NFS4_ACE_ACCESS_DENIED_ACE_TYPE  1 -#define NFS4_ACE_SYSTEM_AUDIT_ACE_TYPE   2 -#define NFS4_ACE_SYSTEM_ALARM_ACE_TYPE   3 - -#define ACL4_SUPPORT_ALLOW_ACL 0x01 -#define ACL4_SUPPORT_DENY_ACL  0x02 -#define ACL4_SUPPORT_AUDIT_ACL 0x04 -#define ACL4_SUPPORT_ALARM_ACL 0x08 - -#define NFS4_ACE_FILE_INHERIT_ACE             0x00000001 -#define NFS4_ACE_DIRECTORY_INHERIT_ACE        0x00000002 -#define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE     0x00000004 -#define NFS4_ACE_INHERIT_ONLY_ACE             0x00000008 -#define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG   0x00000010 -#define NFS4_ACE_FAILED_ACCESS_ACE_FLAG       0x00000020 -#define NFS4_ACE_IDENTIFIER_GROUP             0x00000040 - -#define NFS4_ACE_READ_DATA                    0x00000001 -#define NFS4_ACE_LIST_DIRECTORY               0x00000001 -#define NFS4_ACE_WRITE_DATA                   0x00000002 -#define NFS4_ACE_ADD_FILE                     0x00000002 -#define NFS4_ACE_APPEND_DATA                  0x00000004 -#define NFS4_ACE_ADD_SUBDIRECTORY             0x00000004 -#define NFS4_ACE_READ_NAMED_ATTRS             0x00000008 -#define NFS4_ACE_WRITE_NAMED_ATTRS            0x00000010 -#define NFS4_ACE_EXECUTE                      0x00000020 -#define NFS4_ACE_DELETE_CHILD                 0x00000040 -#define NFS4_ACE_READ_ATTRIBUTES              0x00000080 -#define NFS4_ACE_WRITE_ATTRIBUTES             0x00000100 -#define NFS4_ACE_DELETE                       0x00010000 -#define NFS4_ACE_READ_ACL                     0x00020000 -#define NFS4_ACE_WRITE_ACL                    0x00040000 -#define NFS4_ACE_WRITE_OWNER                  0x00080000 -#define NFS4_ACE_SYNCHRONIZE                  0x00100000 -#define NFS4_ACE_GENERIC_READ                 0x00120081 -#define NFS4_ACE_GENERIC_WRITE                0x00160106 -#define NFS4_ACE_GENERIC_EXECUTE              0x001200A0 -#define NFS4_ACE_MASK_ALL                     0x001F01FF - -#define EXCHGID4_FLAG_SUPP_MOVED_REFER		0x00000001 -#define EXCHGID4_FLAG_SUPP_MOVED_MIGR		0x00000002 -#define EXCHGID4_FLAG_BIND_PRINC_STATEID	0x00000100 - -#define EXCHGID4_FLAG_USE_NON_PNFS		0x00010000 -#define EXCHGID4_FLAG_USE_PNFS_MDS		0x00020000 -#define EXCHGID4_FLAG_USE_PNFS_DS		0x00040000 -#define EXCHGID4_FLAG_MASK_PNFS			0x00070000 - -#define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A	0x40000000 -#define EXCHGID4_FLAG_CONFIRMED_R		0x80000000 -/* - * Since the validity of these bits depends on whether - * they're set in the argument or response, have separate - * invalid flag masks for arg (_A) and resp (_R). - */ -#define EXCHGID4_FLAG_MASK_A			0x40070103 -#define EXCHGID4_FLAG_MASK_R			0x80070103 - -#define SEQ4_STATUS_CB_PATH_DOWN		0x00000001 -#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING	0x00000002 -#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED	0x00000004 -#define SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED	0x00000008 -#define SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED	0x00000010 -#define SEQ4_STATUS_ADMIN_STATE_REVOKED		0x00000020 -#define SEQ4_STATUS_RECALLABLE_STATE_REVOKED	0x00000040 -#define SEQ4_STATUS_LEASE_MOVED			0x00000080 -#define SEQ4_STATUS_RESTART_RECLAIM_NEEDED	0x00000100 -#define SEQ4_STATUS_CB_PATH_DOWN_SESSION	0x00000200 -#define SEQ4_STATUS_BACKCHANNEL_FAULT		0x00000400 - -#define NFS4_SECINFO_STYLE4_CURRENT_FH	0 -#define NFS4_SECINFO_STYLE4_PARENT	1 - -#define NFS4_MAX_UINT64	(~(u64)0) - -/* An NFS4 sessions server must support at least NFS4_MAX_OPS operations. - * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly. - */ -#define NFS4_MAX_OPS   8 - -/* Our NFS4 client back channel server only wants the cb_sequene and the - * actual operation per compound - */ -#define NFS4_MAX_BACK_CHANNEL_OPS 2 - -enum nfs4_acl_whotype { -	NFS4_ACL_WHO_NAMED = 0, -	NFS4_ACL_WHO_OWNER, -	NFS4_ACL_WHO_GROUP, -	NFS4_ACL_WHO_EVERYONE, -}; - -#ifdef __KERNEL__  #include <linux/list.h> +#include <uapi/linux/nfs4.h>  struct nfs4_ace {  	uint32_t	type; @@ -673,10 +516,3 @@ struct nfs4_deviceid {  };  #endif -#endif - -/* - * Local variables: - *  c-basic-offset: 8 - * End: - */ diff --git a/include/linux/nfs4_mount.h b/include/linux/nfs4_mount.h deleted file mode 100644 index a0dcf665565..00000000000 --- a/include/linux/nfs4_mount.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef _LINUX_NFS4_MOUNT_H -#define _LINUX_NFS4_MOUNT_H - -/* - *  linux/include/linux/nfs4_mount.h - * - *  Copyright (C) 2002  Trond Myklebust - * - *  structure passed from user-space to kernel-space during an nfsv4 mount - */ - -/* - * WARNING!  Do not delete or change the order of these fields.  If - * a new field is required then add it to the end.  The version field - * tracks which fields are present.  This will ensure some measure of - * mount-to-kernel version compatibility.  Some of these aren't used yet - * but here they are anyway. - */ -#define NFS4_MOUNT_VERSION	1 - -struct nfs_string { -	unsigned int len; -	const char __user * data; -}; - -struct nfs4_mount_data { -	int version;				/* 1 */ -	int flags;				/* 1 */ -	int rsize;				/* 1 */ -	int wsize;				/* 1 */ -	int timeo;				/* 1 */ -	int retrans;				/* 1 */ -	int acregmin;				/* 1 */ -	int acregmax;				/* 1 */ -	int acdirmin;				/* 1 */ -	int acdirmax;				/* 1 */ - -	/* see the definition of 'struct clientaddr4' in RFC3010 */ -	struct nfs_string client_addr;		/* 1 */ - -	/* Mount path */ -	struct nfs_string mnt_path;		/* 1 */ - -	/* Server details */ -	struct nfs_string hostname;		/* 1 */ -	/* Server IP address */ -	unsigned int host_addrlen;		/* 1 */ -	struct sockaddr __user * host_addr;	/* 1 */ - -	/* Transport protocol to use */ -	int proto;				/* 1 */ - -	/* Pseudo-flavours to use for authentication. See RFC2623 */ -	int auth_flavourlen;			/* 1 */ -	int __user *auth_flavours;		/* 1 */ -}; - -/* bits in the flags field */ -/* Note: the fields that correspond to existing NFSv2/v3 mount options - * 	 should mirror the values from include/linux/nfs_mount.h - */ - -#define NFS4_MOUNT_SOFT		0x0001	/* 1 */ -#define NFS4_MOUNT_INTR		0x0002	/* 1 */ -#define NFS4_MOUNT_NOCTO	0x0010	/* 1 */ -#define NFS4_MOUNT_NOAC		0x0020	/* 1 */ -#define NFS4_MOUNT_STRICTLOCK	0x1000	/* 1 */ -#define NFS4_MOUNT_UNSHARED	0x8000	/* 1 */ -#define NFS4_MOUNT_FLAGMASK	0x9033 - -#endif diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 334a2f5f6bf..1cc25682b20 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -5,38 +5,11 @@   *   *  OS-specific nfs filesystem definitions and declarations   */ -  #ifndef _LINUX_NFS_FS_H  #define _LINUX_NFS_FS_H -#include <linux/magic.h> - -/* Default timeout values */ -#define NFS_DEF_UDP_TIMEO	(11) -#define NFS_DEF_UDP_RETRANS	(3) -#define NFS_DEF_TCP_TIMEO	(600) -#define NFS_DEF_TCP_RETRANS	(2) - -#define NFS_MAX_UDP_TIMEOUT	(60*HZ) -#define NFS_MAX_TCP_TIMEOUT	(600*HZ) - -#define NFS_DEF_ACREGMIN	(3) -#define NFS_DEF_ACREGMAX	(60) -#define NFS_DEF_ACDIRMIN	(30) -#define NFS_DEF_ACDIRMAX	(60) - -/* - * When flushing a cluster of dirty pages, there can be different - * strategies: - */ -#define FLUSH_SYNC		1	/* file being synced, or contention */ -#define FLUSH_STABLE		4	/* commit to stable storage */ -#define FLUSH_LOWPRI		8	/* low priority background flush */ -#define FLUSH_HIGHPRI		16	/* high priority memory reclaim flush */ -#define FLUSH_COND_STABLE	32	/* conditional stable write - only stable -					 * if everything fits in one RPC */ +#include <uapi/linux/nfs_fs.h> -#ifdef __KERNEL__  /*   * Enable dprintk() debugging support for nfs client. @@ -613,29 +586,6 @@ nfs_fileid_to_ino_t(u64 fileid)  #define NFS_JUKEBOX_RETRY_TIME (5 * HZ) -#endif /* __KERNEL__ */ - -/* - * NFS debug flags - */ -#define NFSDBG_VFS		0x0001 -#define NFSDBG_DIRCACHE		0x0002 -#define NFSDBG_LOOKUPCACHE	0x0004 -#define NFSDBG_PAGECACHE	0x0008 -#define NFSDBG_PROC		0x0010 -#define NFSDBG_XDR		0x0020 -#define NFSDBG_FILE		0x0040 -#define NFSDBG_ROOT		0x0080 -#define NFSDBG_CALLBACK		0x0100 -#define NFSDBG_CLIENT		0x0200 -#define NFSDBG_MOUNT		0x0400 -#define NFSDBG_FSCACHE		0x0800 -#define NFSDBG_PNFS		0x1000 -#define NFSDBG_PNFS_LD		0x2000 -#define NFSDBG_STATE		0x4000 -#define NFSDBG_ALL		0xFFFF - -#ifdef __KERNEL__  # undef ifdebug  # ifdef NFS_DEBUG @@ -645,6 +595,4 @@ nfs_fileid_to_ino_t(u64 fileid)  #  define ifdebug(fac)		if (0)  #  define NFS_IFDEBUG(x)  # endif -#endif /* __KERNEL */ -  #endif diff --git a/include/linux/nfs_idmap.h b/include/linux/nfs_idmap.h index ece91c57ad7..2dcef3ab58b 100644 --- a/include/linux/nfs_idmap.h +++ b/include/linux/nfs_idmap.h @@ -33,35 +33,11 @@   *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS   *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   */ -  #ifndef NFS_IDMAP_H  #define NFS_IDMAP_H -#include <linux/types.h> - -/* XXX from bits/utmp.h  */ -#define IDMAP_NAMESZ  128 - -#define IDMAP_TYPE_USER  0 -#define IDMAP_TYPE_GROUP 1 - -#define IDMAP_CONV_IDTONAME 0 -#define IDMAP_CONV_NAMETOID 1 +#include <uapi/linux/nfs_idmap.h> -#define IDMAP_STATUS_INVALIDMSG 0x01 -#define IDMAP_STATUS_AGAIN      0x02 -#define IDMAP_STATUS_LOOKUPFAIL 0x04 -#define IDMAP_STATUS_SUCCESS    0x08 - -struct idmap_msg { -	__u8  im_type; -	__u8  im_conv; -	char  im_name[IDMAP_NAMESZ]; -	__u32 im_id; -	__u8  im_status; -}; - -#ifdef __KERNEL__  /* Forward declaration to make this header independent of others */  struct nfs_client; @@ -97,6 +73,4 @@ int nfs_map_uid_to_name(const struct nfs_server *, __u32, char *, size_t);  int nfs_map_gid_to_group(const struct nfs_server *, __u32, char *, size_t);  extern unsigned int nfs_idmap_cache_timeout; -#endif /* __KERNEL__ */ -  #endif /* NFS_IDMAP_H */ diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h deleted file mode 100644 index 576bddd72e0..00000000000 --- a/include/linux/nfs_mount.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef _LINUX_NFS_MOUNT_H -#define _LINUX_NFS_MOUNT_H - -/* - *  linux/include/linux/nfs_mount.h - * - *  Copyright (C) 1992  Rick Sladkey - * - *  structure passed from user-space to kernel-space during an nfs mount - */ -#include <linux/in.h> -#include <linux/nfs.h> -#include <linux/nfs2.h> -#include <linux/nfs3.h> - -/* - * WARNING!  Do not delete or change the order of these fields.  If - * a new field is required then add it to the end.  The version field - * tracks which fields are present.  This will ensure some measure of - * mount-to-kernel version compatibility.  Some of these aren't used yet - * but here they are anyway. - */ -#define NFS_MOUNT_VERSION	6 -#define NFS_MAX_CONTEXT_LEN	256 - -struct nfs_mount_data { -	int		version;		/* 1 */ -	int		fd;			/* 1 */ -	struct nfs2_fh	old_root;		/* 1 */ -	int		flags;			/* 1 */ -	int		rsize;			/* 1 */ -	int		wsize;			/* 1 */ -	int		timeo;			/* 1 */ -	int		retrans;		/* 1 */ -	int		acregmin;		/* 1 */ -	int		acregmax;		/* 1 */ -	int		acdirmin;		/* 1 */ -	int		acdirmax;		/* 1 */ -	struct sockaddr_in addr;		/* 1 */ -	char		hostname[NFS_MAXNAMLEN + 1];		/* 1 */ -	int		namlen;			/* 2 */ -	unsigned int	bsize;			/* 3 */ -	struct nfs3_fh	root;			/* 4 */ -	int		pseudoflavor;		/* 5 */ -	char		context[NFS_MAX_CONTEXT_LEN + 1];	/* 6 */ -}; - -/* bits in the flags field visible to user space */ - -#define NFS_MOUNT_SOFT		0x0001	/* 1 */ -#define NFS_MOUNT_INTR		0x0002	/* 1 */ /* now unused, but ABI */ -#define NFS_MOUNT_SECURE	0x0004	/* 1 */ -#define NFS_MOUNT_POSIX		0x0008	/* 1 */ -#define NFS_MOUNT_NOCTO		0x0010	/* 1 */ -#define NFS_MOUNT_NOAC		0x0020	/* 1 */ -#define NFS_MOUNT_TCP		0x0040	/* 2 */ -#define NFS_MOUNT_VER3		0x0080	/* 3 */ -#define NFS_MOUNT_KERBEROS	0x0100	/* 3 */ -#define NFS_MOUNT_NONLM		0x0200	/* 3 */ -#define NFS_MOUNT_BROKEN_SUID	0x0400	/* 4 */ -#define NFS_MOUNT_NOACL		0x0800	/* 4 */ -#define NFS_MOUNT_STRICTLOCK	0x1000	/* reserved for NFSv4 */ -#define NFS_MOUNT_SECFLAVOUR	0x2000	/* 5 */ -#define NFS_MOUNT_NORDIRPLUS	0x4000	/* 5 */ -#define NFS_MOUNT_UNSHARED	0x8000	/* 5 */ -#define NFS_MOUNT_FLAGMASK	0xFFFF - -/* The following are for internal use only */ -#define NFS_MOUNT_LOOKUP_CACHE_NONEG	0x10000 -#define NFS_MOUNT_LOOKUP_CACHE_NONE	0x20000 -#define NFS_MOUNT_NORESVPORT		0x40000 -#define NFS_MOUNT_LEGACY_INTERFACE	0x80000 - -#define NFS_MOUNT_LOCAL_FLOCK	0x100000 -#define NFS_MOUNT_LOCAL_FCNTL	0x200000 - -#endif diff --git a/include/linux/nfsacl.h b/include/linux/nfsacl.h index fabcb1e5c46..5e69e67b31a 100644 --- a/include/linux/nfsacl.h +++ b/include/linux/nfsacl.h @@ -6,30 +6,10 @@  #ifndef __LINUX_NFSACL_H  #define __LINUX_NFSACL_H -#define NFS_ACL_PROGRAM	100227 - -#define ACLPROC2_GETACL		1 -#define ACLPROC2_SETACL		2 -#define ACLPROC2_GETATTR	3 -#define ACLPROC2_ACCESS		4 - -#define ACLPROC3_GETACL		1 -#define ACLPROC3_SETACL		2 - - -/* Flags for the getacl/setacl mode */ -#define NFS_ACL			0x0001 -#define NFS_ACLCNT		0x0002 -#define NFS_DFACL		0x0004 -#define NFS_DFACLCNT		0x0008 - -/* Flag for Default ACL entries */ -#define NFS_ACL_DEFAULT		0x1000 - -#ifdef __KERNEL__  #include <linux/posix_acl.h>  #include <linux/sunrpc/xdr.h> +#include <uapi/linux/nfsacl.h>  /* Maximum number of ACL entries over NFS */  #define NFS_ACL_MAX_ENTRIES	1024 @@ -58,5 +38,4 @@ extern int  nfsacl_decode(struct xdr_buf *buf, unsigned int base, unsigned int *aclcnt,  	      struct posix_acl **pacl); -#endif /* __KERNEL__ */  #endif  /* __LINUX_NFSACL_H */ diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h deleted file mode 100644 index 7df9b500c80..00000000000 --- a/include/linux/nl80211.h +++ /dev/null @@ -1,3072 +0,0 @@ -#ifndef __LINUX_NL80211_H -#define __LINUX_NL80211_H -/* - * 802.11 netlink interface public header - * - * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net> - * Copyright 2008 Michael Wu <flamingice@sourmilk.net> - * Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com> - * Copyright 2008 Michael Buesch <m@bues.ch> - * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com> - * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> - * Copyright 2008 Colin McCabe <colin@cozybit.com> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -#include <linux/types.h> - -/** - * DOC: Station handling - * - * Stations are added per interface, but a special case exists with VLAN - * interfaces. When a station is bound to an AP interface, it may be moved - * into a VLAN identified by a VLAN interface index (%NL80211_ATTR_STA_VLAN). - * The station is still assumed to belong to the AP interface it was added - * to. - * - * TODO: need more info? - */ - -/** - * DOC: Frame transmission/registration support - * - * Frame transmission and registration support exists to allow userspace - * management entities such as wpa_supplicant react to management frames - * that are not being handled by the kernel. This includes, for example, - * certain classes of action frames that cannot be handled in the kernel - * for various reasons. - * - * Frame registration is done on a per-interface basis and registrations - * cannot be removed other than by closing the socket. It is possible to - * specify a registration filter to register, for example, only for a - * certain type of action frame. In particular with action frames, those - * that userspace registers for will not be returned as unhandled by the - * driver, so that the registered application has to take responsibility - * for doing that. - * - * The type of frame that can be registered for is also dependent on the - * driver and interface type. The frame types are advertised in wiphy - * attributes so applications know what to expect. - * - * NOTE: When an interface changes type while registrations are active, - *       these registrations are ignored until the interface type is - *       changed again. This means that changing the interface type can - *       lead to a situation that couldn't otherwise be produced, but - *       any such registrations will be dormant in the sense that they - *       will not be serviced, i.e. they will not receive any frames. - * - * Frame transmission allows userspace to send for example the required - * responses to action frames. It is subject to some sanity checking, - * but many frames can be transmitted. When a frame was transmitted, its - * status is indicated to the sending socket. - * - * For more technical details, see the corresponding command descriptions - * below. - */ - -/** - * DOC: Virtual interface / concurrency capabilities - * - * Some devices are able to operate with virtual MACs, they can have - * more than one virtual interface. The capability handling for this - * is a bit complex though, as there may be a number of restrictions - * on the types of concurrency that are supported. - * - * To start with, each device supports the interface types listed in - * the %NL80211_ATTR_SUPPORTED_IFTYPES attribute, but by listing the - * types there no concurrency is implied. - * - * Once concurrency is desired, more attributes must be observed: - * To start with, since some interface types are purely managed in - * software, like the AP-VLAN type in mac80211 for example, there's - * an additional list of these, they can be added at any time and - * are only restricted by some semantic restrictions (e.g. AP-VLAN - * cannot be added without a corresponding AP interface). This list - * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute. - * - * Further, the list of supported combinations is exported. This is - * in the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute. Basically, - * it exports a list of "groups", and at any point in time the - * interfaces that are currently active must fall into any one of - * the advertised groups. Within each group, there are restrictions - * on the number of interfaces of different types that are supported - * and also the number of different channels, along with potentially - * some other restrictions. See &enum nl80211_if_combination_attrs. - * - * All together, these attributes define the concurrency of virtual - * interfaces that a given device supports. - */ - -/** - * enum nl80211_commands - supported nl80211 commands - * - * @NL80211_CMD_UNSPEC: unspecified command to catch errors - * - * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request - *	to get a list of all present wiphys. - * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or - *	%NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, - *	%NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, - *	%NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT, - *	%NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, - *	and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. - *	However, for setting the channel, see %NL80211_CMD_SET_CHANNEL - *	instead, the support here is for backward compatibility only. - * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request - *	or rename notification. Has attributes %NL80211_ATTR_WIPHY and - *	%NL80211_ATTR_WIPHY_NAME. - * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes - *	%NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. - * - * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; - *	either a dump request on a %NL80211_ATTR_WIPHY or a specific get - *	on an %NL80211_ATTR_IFINDEX is supported. - * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires - *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. - * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response - *	to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX, - *	%NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also - *	be sent from userspace to request creation of a new virtual interface, - *	then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and - *	%NL80211_ATTR_IFNAME. - * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes - *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from - *	userspace to request deletion of a virtual interface, then requires - *	attribute %NL80211_ATTR_IFINDEX. - * - * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified - *	by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. - * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, - *	%NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD. - * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, - *	%NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER, - *	and %NL80211_ATTR_KEY_SEQ attributes. - * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX - *	or %NL80211_ATTR_MAC. - * - * @NL80211_CMD_GET_BEACON: (not used) - * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface - *	using the %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL - *	attributes. For drivers that generate the beacon and probe responses - *	internally, the following attributes must be provided: %NL80211_ATTR_IE, - *	%NL80211_ATTR_IE_PROBE_RESP and %NL80211_ATTR_IE_ASSOC_RESP. - * @NL80211_CMD_START_AP: Start AP operation on an AP interface, parameters - *	are like for %NL80211_CMD_SET_BEACON, and additionally parameters that - *	do not change are used, these include %NL80211_ATTR_BEACON_INTERVAL, - *	%NL80211_ATTR_DTIM_PERIOD, %NL80211_ATTR_SSID, - *	%NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE, - *	%NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS, - *	%NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, - *	%NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT. - *	The channel to use can be set on the interface or be given using the - *	%NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs. - * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP - * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface - * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP - * - * @NL80211_CMD_GET_STATION: Get station attributes for station identified by - *	%NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. - * @NL80211_CMD_SET_STATION: Set station attributes for station identified by - *	%NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. - * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the - *	the interface identified by %NL80211_ATTR_IFINDEX. - * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC - *	or, if no MAC address given, all stations, on the interface identified - *	by %NL80211_ATTR_IFINDEX. - * - * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to - * 	destination %NL80211_ATTR_MAC on the interface identified by - * 	%NL80211_ATTR_IFINDEX. - * @NL80211_CMD_SET_MPATH:  Set mesh path attributes for mesh path to - * 	destination %NL80211_ATTR_MAC on the interface identified by - * 	%NL80211_ATTR_IFINDEX. - * @NL80211_CMD_NEW_MPATH: Create a new mesh path for the destination given by - *	%NL80211_ATTR_MAC via %NL80211_ATTR_MPATH_NEXT_HOP. - * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by - *	%NL80211_ATTR_MAC. - * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the - *	the interface identified by %NL80211_ATTR_IFINDEX. - * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC - *	or, if no MAC address given, all mesh paths, on the interface identified - *	by %NL80211_ATTR_IFINDEX. - * @NL80211_CMD_SET_BSS: Set BSS attributes for BSS identified by - *	%NL80211_ATTR_IFINDEX. - * - * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set - * 	regulatory domain. - * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command - *	after being queried by the kernel. CRDA replies by sending a regulatory - *	domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our - *	current alpha2 if it found a match. It also provides - * 	NL80211_ATTR_REG_RULE_FLAGS, and a set of regulatory rules. Each - * 	regulatory rule is a nested set of attributes  given by - * 	%NL80211_ATTR_REG_RULE_FREQ_[START|END] and - * 	%NL80211_ATTR_FREQ_RANGE_MAX_BW with an attached power rule given by - * 	%NL80211_ATTR_REG_RULE_POWER_MAX_ANT_GAIN and - * 	%NL80211_ATTR_REG_RULE_POWER_MAX_EIRP. - * @NL80211_CMD_REQ_SET_REG: ask the wireless core to set the regulatory domain - * 	to the specified ISO/IEC 3166-1 alpha2 country code. The core will - * 	store this as a valid request and then query userspace for it. - * - * @NL80211_CMD_GET_MESH_CONFIG: Get mesh networking properties for the - *	interface identified by %NL80211_ATTR_IFINDEX - * - * @NL80211_CMD_SET_MESH_CONFIG: Set mesh networking properties for the - *      interface identified by %NL80211_ATTR_IFINDEX - * - * @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The - *	interface is identified with %NL80211_ATTR_IFINDEX and the management - *	frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be - *	added to the end of the specified management frame is specified with - *	%NL80211_ATTR_IE. If the command succeeds, the requested data will be - *	added to all specified management frames generated by - *	kernel/firmware/driver. - *	Note: This command has been removed and it is only reserved at this - *	point to avoid re-using existing command number. The functionality this - *	command was planned for has been provided with cleaner design with the - *	option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN, - *	NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE, - *	NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE. - * - * @NL80211_CMD_GET_SCAN: get scan results - * @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters - *	%NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the - *	probe requests at CCK rate or not. - * @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to - *	NL80211_CMD_GET_SCAN and on the "scan" multicast group) - * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons, - *	partial scan results may be available - * - * @NL80211_CMD_START_SCHED_SCAN: start a scheduled scan at certain - *	intervals, as specified by %NL80211_ATTR_SCHED_SCAN_INTERVAL. - *	Like with normal scans, if SSIDs (%NL80211_ATTR_SCAN_SSIDS) - *	are passed, they are used in the probe requests.  For - *	broadcast, a broadcast SSID must be passed (ie. an empty - *	string).  If no SSID is passed, no probe requests are sent and - *	a passive scan is performed.  %NL80211_ATTR_SCAN_FREQUENCIES, - *	if passed, define which channels should be scanned; if not - *	passed, all channels allowed for the current regulatory domain - *	are used.  Extra IEs can also be passed from the userspace by - *	using the %NL80211_ATTR_IE attribute. - * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan.  Returns -ENOENT - *	if scheduled scan is not running. - * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan - *	results available. - * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has - *	stopped.  The driver may issue this event at any time during a - *	scheduled scan.  One reason for stopping the scan is if the hardware - *	does not support starting an association or a normal scan while running - *	a scheduled scan.  This event is also sent when the - *	%NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface - *	is brought down while a scheduled scan was running. - * - * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation - *      or noise level - * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to - *	NL80211_CMD_GET_SURVEY and on the "scan" multicast group) - * - * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry, using %NL80211_ATTR_MAC - *	(for the BSSID) and %NL80211_ATTR_PMKID. - * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC - *	(for the BSSID) and %NL80211_ATTR_PMKID. - * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries. - * - * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain - * 	has been changed and provides details of the request information - * 	that caused the change such as who initiated the regulatory request - * 	(%NL80211_ATTR_REG_INITIATOR), the wiphy_idx - * 	(%NL80211_ATTR_REG_ALPHA2) on which the request was made from if - * 	the initiator was %NL80211_REGDOM_SET_BY_COUNTRY_IE or - * 	%NL80211_REGDOM_SET_BY_DRIVER, the type of regulatory domain - * 	set (%NL80211_ATTR_REG_TYPE), if the type of regulatory domain is - * 	%NL80211_REG_TYPE_COUNTRY the alpha2 to which we have moved on - * 	to (%NL80211_ATTR_REG_ALPHA2). - * @NL80211_CMD_REG_BEACON_HINT: indicates to userspace that an AP beacon - * 	has been found while world roaming thus enabling active scan or - * 	any mode of operation that initiates TX (beacons) on a channel - * 	where we would not have been able to do either before. As an example - * 	if you are world roaming (regulatory domain set to world or if your - * 	driver is using a custom world roaming regulatory domain) and while - * 	doing a passive scan on the 5 GHz band you find an AP there (if not - * 	on a DFS channel) you will now be able to actively scan for that AP - * 	or use AP mode on your card on that same channel. Note that this will - * 	never be used for channels 1-11 on the 2 GHz band as they are always - * 	enabled world wide. This beacon hint is only sent if your device had - * 	either disabled active scanning or beaconing on a channel. We send to - * 	userspace the wiphy on which we removed a restriction from - * 	(%NL80211_ATTR_WIPHY) and the channel on which this occurred - * 	before (%NL80211_ATTR_FREQ_BEFORE) and after (%NL80211_ATTR_FREQ_AFTER) - * 	the beacon hint was processed. - * - * @NL80211_CMD_AUTHENTICATE: authentication request and notification. - *	This command is used both as a command (request to authenticate) and - *	as an event on the "mlme" multicast group indicating completion of the - *	authentication process. - *	When used as a command, %NL80211_ATTR_IFINDEX is used to identify the - *	interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and - *	BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify - *	the SSID (mainly for association, but is included in authentication - *	request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used - *	to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE - *	is used to specify the authentication type. %NL80211_ATTR_IE is used to - *	define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs) - *	to be added to the frame. - *	When used as an event, this reports reception of an Authentication - *	frame in station and IBSS modes when the local MLME processed the - *	frame, i.e., it was for the local STA and was received in correct - *	state. This is similar to MLME-AUTHENTICATE.confirm primitive in the - *	MLME SAP interface (kernel providing MLME, userspace SME). The - *	included %NL80211_ATTR_FRAME attribute contains the management frame - *	(including both the header and frame body, but not FCS). This event is - *	also used to indicate if the authentication attempt timed out. In that - *	case the %NL80211_ATTR_FRAME attribute is replaced with a - *	%NL80211_ATTR_TIMED_OUT flag (and %NL80211_ATTR_MAC to indicate which - *	pending authentication timed out). - * @NL80211_CMD_ASSOCIATE: association request and notification; like - *	NL80211_CMD_AUTHENTICATE but for Association and Reassociation - *	(similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request, - *	MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). - * @NL80211_CMD_DEAUTHENTICATE: deauthentication request and notification; like - *	NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to - *	MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication - *	primitives). - * @NL80211_CMD_DISASSOCIATE: disassociation request and notification; like - *	NL80211_CMD_AUTHENTICATE but for Disassociation frames (similar to - *	MLME-DISASSOCIATE.request and MLME-DISASSOCIATE.indication primitives). - * - * @NL80211_CMD_MICHAEL_MIC_FAILURE: notification of a locally detected Michael - *	MIC (part of TKIP) failure; sent on the "mlme" multicast group; the - *	event includes %NL80211_ATTR_MAC to describe the source MAC address of - *	the frame with invalid MIC, %NL80211_ATTR_KEY_TYPE to show the key - *	type, %NL80211_ATTR_KEY_IDX to indicate the key identifier, and - *	%NL80211_ATTR_KEY_SEQ to indicate the TSC value of the frame; this - *	event matches with MLME-MICHAELMICFAILURE.indication() primitive - * - * @NL80211_CMD_JOIN_IBSS: Join a new IBSS -- given at least an SSID and a - *	FREQ attribute (for the initial frequency if no peer can be found) - *	and optionally a MAC (as BSSID) and FREQ_FIXED attribute if those - *	should be fixed rather than automatically determined. Can only be - *	executed on a network interface that is UP, and fixed BSSID/FREQ - *	may be rejected. Another optional parameter is the beacon interval, - *	given in the %NL80211_ATTR_BEACON_INTERVAL attribute, which if not - *	given defaults to 100 TU (102.4ms). - * @NL80211_CMD_LEAVE_IBSS: Leave the IBSS -- no special arguments, the IBSS is - *	determined by the network interface. - * - * @NL80211_CMD_TESTMODE: testmode command, takes a wiphy (or ifindex) attribute - *	to identify the device, and the TESTDATA blob attribute to pass through - *	to the driver. - * - * @NL80211_CMD_CONNECT: connection request and notification; this command - *	requests to connect to a specified network but without separating - *	auth and assoc steps. For this, you need to specify the SSID in a - *	%NL80211_ATTR_SSID attribute, and can optionally specify the association - *	IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC, - *	%NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, - *	%NL80211_ATTR_CONTROL_PORT_ETHERTYPE and - *	%NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT. - *	Background scan period can optionally be - *	specified in %NL80211_ATTR_BG_SCAN_PERIOD, - *	if not specified default background scan configuration - *	in driver is used and if period value is 0, bg scan will be disabled. - *	This attribute is ignored if driver does not support roam scan. - *	It is also sent as an event, with the BSSID and response IEs when the - *	connection is established or failed to be established. This can be - *	determined by the STATUS_CODE attribute. - * @NL80211_CMD_ROAM: request that the card roam (currently not implemented), - *	sent as an event when the card/driver roamed by itself. - * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify - *	userspace that a connection was dropped by the AP or due to other - *	reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and - *	%NL80211_ATTR_REASON_CODE attributes are used. - * - * @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices - *	associated with this wiphy must be down and will follow. - * - * @NL80211_CMD_REMAIN_ON_CHANNEL: Request to remain awake on the specified - *	channel for the specified amount of time. This can be used to do - *	off-channel operations like transmit a Public Action frame and wait for - *	a response while being associated to an AP on another channel. - *	%NL80211_ATTR_IFINDEX is used to specify which interface (and thus - *	radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the - *	frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be - *	optionally used to specify additional channel parameters. - *	%NL80211_ATTR_DURATION is used to specify the duration in milliseconds - *	to remain on the channel. This command is also used as an event to - *	notify when the requested duration starts (it may take a while for the - *	driver to schedule this time due to other concurrent needs for the - *	radio). - *	When called, this operation returns a cookie (%NL80211_ATTR_COOKIE) - *	that will be included with any events pertaining to this request; - *	the cookie is also used to cancel the request. - * @NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL: This command can be used to cancel a - *	pending remain-on-channel duration if the desired operation has been - *	completed prior to expiration of the originally requested duration. - *	%NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the - *	radio. The %NL80211_ATTR_COOKIE attribute must be given as well to - *	uniquely identify the request. - *	This command is also used as an event to notify when a requested - *	remain-on-channel duration has expired. - * - * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX - *	rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface - *	and @NL80211_ATTR_TX_RATES the set of allowed rates. - * - * @NL80211_CMD_REGISTER_FRAME: Register for receiving certain mgmt frames - *	(via @NL80211_CMD_FRAME) for processing in userspace. This command - *	requires an interface index, a frame type attribute (optional for - *	backward compatibility reasons, if not given assumes action frames) - *	and a match attribute containing the first few bytes of the frame - *	that should match, e.g. a single byte for only a category match or - *	four bytes for vendor frames including the OUI. The registration - *	cannot be dropped, but is removed automatically when the netlink - *	socket is closed. Multiple registrations can be made. - * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for - *	backward compatibility - * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This - *	command is used both as a request to transmit a management frame and - *	as an event indicating reception of a frame that was not processed in - *	kernel code, but is for us (i.e., which may need to be processed in a - *	user space application). %NL80211_ATTR_FRAME is used to specify the - *	frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and - *	optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on - *	which channel the frame is to be transmitted or was received. If this - *	channel is not the current channel (remain-on-channel or the - *	operational channel) the device will switch to the given channel and - *	transmit the frame, optionally waiting for a response for the time - *	specified using %NL80211_ATTR_DURATION. When called, this operation - *	returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the - *	TX status event pertaining to the TX request. - *	%NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the - *	management frames at CCK rate or not in 2GHz band. - * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this - *	command may be used with the corresponding cookie to cancel the wait - *	time if it is known that it is no longer necessary. - * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility. - * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame - *	transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies - *	the TX command and %NL80211_ATTR_FRAME includes the contents of the - *	frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged - *	the frame. - * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for - *	backward compatibility. - * - * @NL80211_CMD_SET_POWER_SAVE: Set powersave, using %NL80211_ATTR_PS_STATE - * @NL80211_CMD_GET_POWER_SAVE: Get powersave status in %NL80211_ATTR_PS_STATE - * - * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command - *	is used to configure connection quality monitoring notification trigger - *	levels. - * @NL80211_CMD_NOTIFY_CQM: Connection quality monitor notification. This - *	command is used as an event to indicate the that a trigger level was - *	reached. - * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ - *	and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed - *	by %NL80211_ATTR_IFINDEX) shall operate on. - *	In case multiple channels are supported by the device, the mechanism - *	with which it switches channels is implementation-defined. - *	When a monitor interface is given, it can only switch channel while - *	no other interfaces are operating to avoid disturbing the operation - *	of any other interfaces, and other interfaces will again take - *	precedence when they are used. - * - * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface. - * - * @NL80211_CMD_JOIN_MESH: Join a mesh. The mesh ID must be given, and initial - *	mesh config parameters may be given. - * @NL80211_CMD_LEAVE_MESH: Leave the mesh network -- no special arguments, the - *	network is determined by the network interface. - * - * @NL80211_CMD_UNPROT_DEAUTHENTICATE: Unprotected deauthentication frame - *	notification. This event is used to indicate that an unprotected - *	deauthentication frame was dropped when MFP is in use. - * @NL80211_CMD_UNPROT_DISASSOCIATE: Unprotected disassociation frame - *	notification. This event is used to indicate that an unprotected - *	disassociation frame was dropped when MFP is in use. - * - * @NL80211_CMD_NEW_PEER_CANDIDATE: Notification on the reception of a - *      beacon or probe response from a compatible mesh peer.  This is only - *      sent while no station information (sta_info) exists for the new peer - *      candidate and when @NL80211_MESH_SETUP_USERSPACE_AUTH is set.  On - *      reception of this notification, userspace may decide to create a new - *      station (@NL80211_CMD_NEW_STATION).  To stop this notification from - *      reoccurring, the userspace authentication daemon may want to create the - *      new station with the AUTHENTICATED flag unset and maybe change it later - *      depending on the authentication result. - * - * @NL80211_CMD_GET_WOWLAN: get Wake-on-Wireless-LAN (WoWLAN) settings. - * @NL80211_CMD_SET_WOWLAN: set Wake-on-Wireless-LAN (WoWLAN) settings. - *	Since wireless is more complex than wired ethernet, it supports - *	various triggers. These triggers can be configured through this - *	command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For - *	more background information, see - *	http://wireless.kernel.org/en/users/Documentation/WoWLAN. - * - * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver - *	the necessary information for supporting GTK rekey offload. This - *	feature is typically used during WoWLAN. The configuration data - *	is contained in %NL80211_ATTR_REKEY_DATA (which is nested and - *	contains the data in sub-attributes). After rekeying happened, - *	this command may also be sent by the driver as an MLME event to - *	inform userspace of the new replay counter. - * - * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace - *	of PMKSA caching dandidates. - * - * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). - * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. - * - * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP - *	(or GO) interface (i.e. hostapd) to ask for unexpected frames to - *	implement sending deauth to stations that send unexpected class 3 - *	frames. Also used as the event sent by the kernel when such a frame - *	is received. - *	For the event, the %NL80211_ATTR_MAC attribute carries the TA and - *	other attributes like the interface index are present. - *	If used as the command it must have an interface index and you can - *	only unsubscribe from the event by closing the socket. Subscription - *	is also for %NL80211_CMD_UNEXPECTED_4ADDR_FRAME events. - * - * @NL80211_CMD_UNEXPECTED_4ADDR_FRAME: Sent as an event indicating that the - *	associated station identified by %NL80211_ATTR_MAC sent a 4addr frame - *	and wasn't already in a 4-addr VLAN. The event will be sent similarly - *	to the %NL80211_CMD_UNEXPECTED_FRAME event, to the same listener. - * - * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface - *	by sending a null data frame to it and reporting when the frame is - *	acknowleged. This is used to allow timing out inactive clients. Uses - *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a - *	direct reply with an %NL80211_ATTR_COOKIE that is later used to match - *	up the event with the request. The event includes the same data and - *	has %NL80211_ATTR_ACK set if the frame was ACKed. - * - * @NL80211_CMD_REGISTER_BEACONS: Register this socket to receive beacons from - *	other BSSes when any interfaces are in AP mode. This helps implement - *	OLBC handling in hostapd. Beacons are reported in %NL80211_CMD_FRAME - *	messages. Note that per PHY only one application may register. - * - * @NL80211_CMD_SET_NOACK_MAP: sets a bitmap for the individual TIDs whether - *      No Acknowledgement Policy should be applied. - * - * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels - *	independently of the userspace SME, send this event indicating - *	%NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with - *	%NL80211_ATTR_WIPHY_CHANNEL_TYPE. - * - * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by - *	its %NL80211_ATTR_WDEV identifier. It must have been created with - *	%NL80211_CMD_NEW_INTERFACE previously. After it has been started, the - *	P2P Device can be used for P2P operations, e.g. remain-on-channel and - *	public action frame TX. - * @NL80211_CMD_STOP_P2P_DEVICE: Stop the given P2P Device, identified by - *	its %NL80211_ATTR_WDEV identifier. - * - * @NL80211_CMD_CONN_FAILED: connection request to an AP failed; used to - *	notify userspace that AP has rejected the connection request from a - *	station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON - *	is used for this. - * - * @NL80211_CMD_MAX: highest used command number - * @__NL80211_CMD_AFTER_LAST: internal use - */ -enum nl80211_commands { -/* don't change the order or add anything between, this is ABI! */ -	NL80211_CMD_UNSPEC, - -	NL80211_CMD_GET_WIPHY,		/* can dump */ -	NL80211_CMD_SET_WIPHY, -	NL80211_CMD_NEW_WIPHY, -	NL80211_CMD_DEL_WIPHY, - -	NL80211_CMD_GET_INTERFACE,	/* can dump */ -	NL80211_CMD_SET_INTERFACE, -	NL80211_CMD_NEW_INTERFACE, -	NL80211_CMD_DEL_INTERFACE, - -	NL80211_CMD_GET_KEY, -	NL80211_CMD_SET_KEY, -	NL80211_CMD_NEW_KEY, -	NL80211_CMD_DEL_KEY, - -	NL80211_CMD_GET_BEACON, -	NL80211_CMD_SET_BEACON, -	NL80211_CMD_START_AP, -	NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP, -	NL80211_CMD_STOP_AP, -	NL80211_CMD_DEL_BEACON = NL80211_CMD_STOP_AP, - -	NL80211_CMD_GET_STATION, -	NL80211_CMD_SET_STATION, -	NL80211_CMD_NEW_STATION, -	NL80211_CMD_DEL_STATION, - -	NL80211_CMD_GET_MPATH, -	NL80211_CMD_SET_MPATH, -	NL80211_CMD_NEW_MPATH, -	NL80211_CMD_DEL_MPATH, - -	NL80211_CMD_SET_BSS, - -	NL80211_CMD_SET_REG, -	NL80211_CMD_REQ_SET_REG, - -	NL80211_CMD_GET_MESH_CONFIG, -	NL80211_CMD_SET_MESH_CONFIG, - -	NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */, - -	NL80211_CMD_GET_REG, - -	NL80211_CMD_GET_SCAN, -	NL80211_CMD_TRIGGER_SCAN, -	NL80211_CMD_NEW_SCAN_RESULTS, -	NL80211_CMD_SCAN_ABORTED, - -	NL80211_CMD_REG_CHANGE, - -	NL80211_CMD_AUTHENTICATE, -	NL80211_CMD_ASSOCIATE, -	NL80211_CMD_DEAUTHENTICATE, -	NL80211_CMD_DISASSOCIATE, - -	NL80211_CMD_MICHAEL_MIC_FAILURE, - -	NL80211_CMD_REG_BEACON_HINT, - -	NL80211_CMD_JOIN_IBSS, -	NL80211_CMD_LEAVE_IBSS, - -	NL80211_CMD_TESTMODE, - -	NL80211_CMD_CONNECT, -	NL80211_CMD_ROAM, -	NL80211_CMD_DISCONNECT, - -	NL80211_CMD_SET_WIPHY_NETNS, - -	NL80211_CMD_GET_SURVEY, -	NL80211_CMD_NEW_SURVEY_RESULTS, - -	NL80211_CMD_SET_PMKSA, -	NL80211_CMD_DEL_PMKSA, -	NL80211_CMD_FLUSH_PMKSA, - -	NL80211_CMD_REMAIN_ON_CHANNEL, -	NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, - -	NL80211_CMD_SET_TX_BITRATE_MASK, - -	NL80211_CMD_REGISTER_FRAME, -	NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME, -	NL80211_CMD_FRAME, -	NL80211_CMD_ACTION = NL80211_CMD_FRAME, -	NL80211_CMD_FRAME_TX_STATUS, -	NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS, - -	NL80211_CMD_SET_POWER_SAVE, -	NL80211_CMD_GET_POWER_SAVE, - -	NL80211_CMD_SET_CQM, -	NL80211_CMD_NOTIFY_CQM, - -	NL80211_CMD_SET_CHANNEL, -	NL80211_CMD_SET_WDS_PEER, - -	NL80211_CMD_FRAME_WAIT_CANCEL, - -	NL80211_CMD_JOIN_MESH, -	NL80211_CMD_LEAVE_MESH, - -	NL80211_CMD_UNPROT_DEAUTHENTICATE, -	NL80211_CMD_UNPROT_DISASSOCIATE, - -	NL80211_CMD_NEW_PEER_CANDIDATE, - -	NL80211_CMD_GET_WOWLAN, -	NL80211_CMD_SET_WOWLAN, - -	NL80211_CMD_START_SCHED_SCAN, -	NL80211_CMD_STOP_SCHED_SCAN, -	NL80211_CMD_SCHED_SCAN_RESULTS, -	NL80211_CMD_SCHED_SCAN_STOPPED, - -	NL80211_CMD_SET_REKEY_OFFLOAD, - -	NL80211_CMD_PMKSA_CANDIDATE, - -	NL80211_CMD_TDLS_OPER, -	NL80211_CMD_TDLS_MGMT, - -	NL80211_CMD_UNEXPECTED_FRAME, - -	NL80211_CMD_PROBE_CLIENT, - -	NL80211_CMD_REGISTER_BEACONS, - -	NL80211_CMD_UNEXPECTED_4ADDR_FRAME, - -	NL80211_CMD_SET_NOACK_MAP, - -	NL80211_CMD_CH_SWITCH_NOTIFY, - -	NL80211_CMD_START_P2P_DEVICE, -	NL80211_CMD_STOP_P2P_DEVICE, - -	NL80211_CMD_CONN_FAILED, - -	/* add new commands above here */ - -	/* used to define NL80211_CMD_MAX below */ -	__NL80211_CMD_AFTER_LAST, -	NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 -}; - -/* - * Allow user space programs to use #ifdef on new commands by defining them - * here - */ -#define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS -#define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE -#define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE -#define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE -#define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE -#define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE -#define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE -#define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT - -#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS - -/* source-level API compatibility */ -#define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG -#define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG -#define NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE NL80211_MESH_SETUP_IE - -/** - * enum nl80211_attrs - nl80211 netlink attributes - * - * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors - * - * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. - *	/sys/class/ieee80211/<phyname>/index - * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) - * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters - * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz - * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ - *	if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): - *	NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including - *		this attribute) - *	NL80211_CHAN_HT20 = HT20 only - *	NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel - *	NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel - * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is - *	less than or equal to the RTS threshold; allowed range: 1..255; - *	dot11ShortRetryLimit; u8 - * @NL80211_ATTR_WIPHY_RETRY_LONG: TX retry limit for frames whose length is - *	greater than the RTS threshold; allowed range: 1..255; - *	dot11ShortLongLimit; u8 - * @NL80211_ATTR_WIPHY_FRAG_THRESHOLD: fragmentation threshold, i.e., maximum - *	length in octets for frames; allowed range: 256..8000, disable - *	fragmentation with (u32)-1; dot11FragmentationThreshold; u32 - * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length - *	larger than or equal to this use RTS/CTS handshake); allowed range: - *	0..65536, disable with (u32)-1; dot11RTSThreshold; u32 - * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11 - *	section 7.3.2.9; dot11CoverageClass; u8 - * - * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on - * @NL80211_ATTR_IFNAME: network interface name - * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype - * - * @NL80211_ATTR_WDEV: wireless device identifier, used for pseudo-devices - *	that don't have a netdev (u64) - * - * @NL80211_ATTR_MAC: MAC address (various uses) - * - * @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of - *	16 bytes encryption key followed by 8 bytes each for TX and RX MIC - *	keys - * @NL80211_ATTR_KEY_IDX: key ID (u8, 0-3) - * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 - *	section 7.3.2.25.1, e.g. 0x000FAC04) - * @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and - *	CCMP keys, each six bytes in little endian - * @NL80211_ATTR_KEY_DEFAULT: Flag attribute indicating the key is default key - * @NL80211_ATTR_KEY_DEFAULT_MGMT: Flag attribute indicating the key is the - *	default management key - * @NL80211_ATTR_CIPHER_SUITES_PAIRWISE: For crypto settings for connect or - *	other commands, indicates which pairwise cipher suites are used - * @NL80211_ATTR_CIPHER_SUITE_GROUP: For crypto settings for connect or - *	other commands, indicates which group cipher suite is used - * - * @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU - * @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing - * @NL80211_ATTR_BEACON_HEAD: portion of the beacon before the TIM IE - * @NL80211_ATTR_BEACON_TAIL: portion of the beacon after the TIM IE - * - * @NL80211_ATTR_STA_AID: Association ID for the station (u16) - * @NL80211_ATTR_STA_FLAGS: flags, nested element with NLA_FLAG attributes of - *	&enum nl80211_sta_flags (deprecated, use %NL80211_ATTR_STA_FLAGS2) - * @NL80211_ATTR_STA_LISTEN_INTERVAL: listen interval as defined by - *	IEEE 802.11 7.3.1.6 (u16). - * @NL80211_ATTR_STA_SUPPORTED_RATES: supported rates, array of supported - *	rates as defined by IEEE 802.11 7.3.2.2 but without the length - *	restriction (at most %NL80211_MAX_SUPP_RATES). - * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station - *	to, or the AP interface the station was originally added to to. - * @NL80211_ATTR_STA_INFO: information about a station, part of station info - *	given for %NL80211_CMD_GET_STATION, nested attribute containing - *	info as possible, see &enum nl80211_sta_info. - * - * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands, - *	consisting of a nested array. - * - * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes). - * @NL80211_ATTR_STA_PLINK_ACTION: action to perform on the mesh peer link. - * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path. - * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path - * 	info given for %NL80211_CMD_GET_MPATH, nested attribute described at - *	&enum nl80211_mpath_info. - * - * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of - *      &enum nl80211_mntr_flags. - * - * @NL80211_ATTR_REG_ALPHA2: an ISO-3166-alpha2 country code for which the - * 	current regulatory domain should be set to or is already set to. - * 	For example, 'CR', for Costa Rica. This attribute is used by the kernel - * 	to query the CRDA to retrieve one regulatory domain. This attribute can - * 	also be used by userspace to query the kernel for the currently set - * 	regulatory domain. We chose an alpha2 as that is also used by the - * 	IEEE-802.11d country information element to identify a country. - * 	Users can also simply ask the wireless core to set regulatory domain - * 	to a specific alpha2. - * @NL80211_ATTR_REG_RULES: a nested array of regulatory domain regulatory - *	rules. - * - * @NL80211_ATTR_BSS_CTS_PROT: whether CTS protection is enabled (u8, 0 or 1) - * @NL80211_ATTR_BSS_SHORT_PREAMBLE: whether short preamble is enabled - *	(u8, 0 or 1) - * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled - *	(u8, 0 or 1) - * @NL80211_ATTR_BSS_BASIC_RATES: basic rates, array of basic - *	rates in format defined by IEEE 802.11 7.3.2.2 but without the length - *	restriction (at most %NL80211_MAX_SUPP_RATES). - * - * @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from - *	association request when used with NL80211_CMD_NEW_STATION) - * - * @NL80211_ATTR_SUPPORTED_IFTYPES: nested attribute containing all - *	supported interface types, each a flag attribute with the number - *	of the interface mode. - * - * @NL80211_ATTR_MGMT_SUBTYPE: Management frame subtype for - *	%NL80211_CMD_SET_MGMT_EXTRA_IE. - * - * @NL80211_ATTR_IE: Information element(s) data (used, e.g., with - *	%NL80211_CMD_SET_MGMT_EXTRA_IE). - * - * @NL80211_ATTR_MAX_NUM_SCAN_SSIDS: number of SSIDs you can scan with - *	a single scan request, a wiphy attribute. - * @NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS: number of SSIDs you can - *	scan with a single scheduled scan request, a wiphy attribute. - * @NL80211_ATTR_MAX_SCAN_IE_LEN: maximum length of information elements - *	that can be added to a scan request - * @NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN: maximum length of information - *	elements that can be added to a scheduled scan request - * @NL80211_ATTR_MAX_MATCH_SETS: maximum number of sets that can be - *	used with @NL80211_ATTR_SCHED_SCAN_MATCH, a wiphy attribute. - * - * @NL80211_ATTR_SCAN_FREQUENCIES: nested attribute with frequencies (in MHz) - * @NL80211_ATTR_SCAN_SSIDS: nested attribute with SSIDs, leave out for passive - *	scanning and include a zero-length SSID (wildcard) for wildcard scan - * @NL80211_ATTR_BSS: scan result BSS - * - * @NL80211_ATTR_REG_INITIATOR: indicates who requested the regulatory domain - * 	currently in effect. This could be any of the %NL80211_REGDOM_SET_BY_* - * @NL80211_ATTR_REG_TYPE: indicates the type of the regulatory domain currently - * 	set. This can be one of the nl80211_reg_type (%NL80211_REGDOM_TYPE_*) - * - * @NL80211_ATTR_SUPPORTED_COMMANDS: wiphy attribute that specifies - *	an array of command numbers (i.e. a mapping index to command number) - *	that the driver for the given wiphy supports. - * - * @NL80211_ATTR_FRAME: frame data (binary attribute), including frame header - *	and body, but not FCS; used, e.g., with NL80211_CMD_AUTHENTICATE and - *	NL80211_CMD_ASSOCIATE events - * @NL80211_ATTR_SSID: SSID (binary attribute, 0..32 octets) - * @NL80211_ATTR_AUTH_TYPE: AuthenticationType, see &enum nl80211_auth_type, - *	represented as a u32 - * @NL80211_ATTR_REASON_CODE: ReasonCode for %NL80211_CMD_DEAUTHENTICATE and - *	%NL80211_CMD_DISASSOCIATE, u16 - * - * @NL80211_ATTR_KEY_TYPE: Key Type, see &enum nl80211_key_type, represented as - *	a u32 - * - * @NL80211_ATTR_FREQ_BEFORE: A channel which has suffered a regulatory change - * 	due to considerations from a beacon hint. This attribute reflects - * 	the state of the channel _before_ the beacon hint processing. This - * 	attributes consists of a nested attribute containing - * 	NL80211_FREQUENCY_ATTR_* - * @NL80211_ATTR_FREQ_AFTER: A channel which has suffered a regulatory change - * 	due to considerations from a beacon hint. This attribute reflects - * 	the state of the channel _after_ the beacon hint processing. This - * 	attributes consists of a nested attribute containing - * 	NL80211_FREQUENCY_ATTR_* - * - * @NL80211_ATTR_CIPHER_SUITES: a set of u32 values indicating the supported - *	cipher suites - * - * @NL80211_ATTR_FREQ_FIXED: a flag indicating the IBSS should not try to look - *	for other networks on different channels - * - * @NL80211_ATTR_TIMED_OUT: a flag indicating than an operation timed out; this - *	is used, e.g., with %NL80211_CMD_AUTHENTICATE event - * - * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is - *	used for the association (&enum nl80211_mfp, represented as a u32); - *	this attribute can be used - *	with %NL80211_CMD_ASSOCIATE request - * - * @NL80211_ATTR_STA_FLAGS2: Attribute containing a - *	&struct nl80211_sta_flag_update. - * - * @NL80211_ATTR_CONTROL_PORT: A flag indicating whether user space controls - *	IEEE 802.1X port, i.e., sets/clears %NL80211_STA_FLAG_AUTHORIZED, in - *	station mode. If the flag is included in %NL80211_CMD_ASSOCIATE - *	request, the driver will assume that the port is unauthorized until - *	authorized by user space. Otherwise, port is marked authorized by - *	default in station mode. - * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the - *	ethertype that will be used for key negotiation. It can be - *	specified with the associate and connect commands. If it is not - *	specified, the value defaults to 0x888E (PAE, 802.1X). This - *	attribute is also used as a flag in the wiphy information to - *	indicate that protocols other than PAE are supported. - * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with - *	%NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom - *	ethertype frames used for key negotiation must not be encrypted. - * - * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. - *	We recommend using nested, driver-specific attributes within this. - * - * @NL80211_ATTR_DISCONNECTED_BY_AP: A flag indicating that the DISCONNECT - *	event was due to the AP disconnecting the station, and not due to - *	a local disconnect request. - * @NL80211_ATTR_STATUS_CODE: StatusCode for the %NL80211_CMD_CONNECT - *	event (u16) - * @NL80211_ATTR_PRIVACY: Flag attribute, used with connect(), indicating - *	that protected APs should be used. This is also used with NEW_BEACON to - *	indicate that the BSS is to use protection. - * - * @NL80211_ATTR_CIPHERS_PAIRWISE: Used with CONNECT, ASSOCIATE, and NEW_BEACON - *	to indicate which unicast key ciphers will be used with the connection - *	(an array of u32). - * @NL80211_ATTR_CIPHER_GROUP: Used with CONNECT, ASSOCIATE, and NEW_BEACON to - *	indicate which group key cipher will be used with the connection (a - *	u32). - * @NL80211_ATTR_WPA_VERSIONS: Used with CONNECT, ASSOCIATE, and NEW_BEACON to - *	indicate which WPA version(s) the AP we want to associate with is using - *	(a u32 with flags from &enum nl80211_wpa_versions). - * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to - *	indicate which key management algorithm(s) to use (an array of u32). - * - * @NL80211_ATTR_REQ_IE: (Re)association request information elements as - *	sent out by the card, for ROAM and successful CONNECT events. - * @NL80211_ATTR_RESP_IE: (Re)association response information elements as - *	sent by peer, for ROAM and successful CONNECT events. - * - * @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used by in ASSOCIATE - *	commands to specify using a reassociate frame - * - * @NL80211_ATTR_KEY: key information in a nested attribute with - *	%NL80211_KEY_* sub-attributes - * @NL80211_ATTR_KEYS: array of keys for static WEP keys for connect() - *	and join_ibss(), key information is in a nested attribute each - *	with %NL80211_KEY_* sub-attributes - * - * @NL80211_ATTR_PID: Process ID of a network namespace. - * - * @NL80211_ATTR_GENERATION: Used to indicate consistent snapshots for - *	dumps. This number increases whenever the object list being - *	dumped changes, and as such userspace can verify that it has - *	obtained a complete and consistent snapshot by verifying that - *	all dump messages contain the same generation number. If it - *	changed then the list changed and the dump should be repeated - *	completely from scratch. - * - * @NL80211_ATTR_4ADDR: Use 4-address frames on a virtual interface - * - * @NL80211_ATTR_SURVEY_INFO: survey information about a channel, part of - *      the survey response for %NL80211_CMD_GET_SURVEY, nested attribute - *      containing info as possible, see &enum survey_info. - * - * @NL80211_ATTR_PMKID: PMK material for PMKSA caching. - * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can - *	cache, a wiphy attribute. - * - * @NL80211_ATTR_DURATION: Duration of an operation in milliseconds, u32. - * @NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION: Device attribute that - *	specifies the maximum duration that can be requested with the - *	remain-on-channel operation, in milliseconds, u32. - * - * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects. - * - * @NL80211_ATTR_TX_RATES: Nested set of attributes - *	(enum nl80211_tx_rate_attributes) describing TX rates per band. The - *	enum nl80211_band value is used as the index (nla_type() of the nested - *	data. If a band is not included, it will be configured to allow all - *	rates based on negotiated supported rates information. This attribute - *	is used with %NL80211_CMD_SET_TX_BITRATE_MASK. - * - * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain - *	at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. - * @NL80211_ATTR_FRAME_TYPE: A u16 indicating the frame type/subtype for the - *	@NL80211_CMD_REGISTER_FRAME command. - * @NL80211_ATTR_TX_FRAME_TYPES: wiphy capability attribute, which is a - *	nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing - *	information about which frame types can be transmitted with - *	%NL80211_CMD_FRAME. - * @NL80211_ATTR_RX_FRAME_TYPES: wiphy capability attribute, which is a - *	nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing - *	information about which frame types can be registered for RX. - * - * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was - *	acknowledged by the recipient. - * - * @NL80211_ATTR_PS_STATE: powersave state, using &enum nl80211_ps_state values. - * - * @NL80211_ATTR_CQM: connection quality monitor configuration in a - *	nested attribute with %NL80211_ATTR_CQM_* sub-attributes. - * - * @NL80211_ATTR_LOCAL_STATE_CHANGE: Flag attribute to indicate that a command - *	is requesting a local authentication/association state change without - *	invoking actual management frame exchange. This can be used with - *	NL80211_CMD_AUTHENTICATE, NL80211_CMD_DEAUTHENTICATE, - *	NL80211_CMD_DISASSOCIATE. - * - * @NL80211_ATTR_AP_ISOLATE: (AP mode) Do not forward traffic between stations - *	connected to this BSS. - * - * @NL80211_ATTR_WIPHY_TX_POWER_SETTING: Transmit power setting type. See - *      &enum nl80211_tx_power_setting for possible values. - * @NL80211_ATTR_WIPHY_TX_POWER_LEVEL: Transmit power level in signed mBm units. - *      This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING - *      for non-automatic settings. - * - * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly - *	means support for per-station GTKs. - * - * @NL80211_ATTR_WIPHY_ANTENNA_TX: Bitmap of allowed antennas for transmitting. - *	This can be used to mask out antennas which are not attached or should - *	not be used for transmitting. If an antenna is not selected in this - *	bitmap the hardware is not allowed to transmit on this antenna. - * - *	Each bit represents one antenna, starting with antenna 1 at the first - *	bit. Depending on which antennas are selected in the bitmap, 802.11n - *	drivers can derive which chainmasks to use (if all antennas belonging to - *	a particular chain are disabled this chain should be disabled) and if - *	a chain has diversity antennas wether diversity should be used or not. - *	HT capabilities (STBC, TX Beamforming, Antenna selection) can be - *	derived from the available chains after applying the antenna mask. - *	Non-802.11n drivers can derive wether to use diversity or not. - *	Drivers may reject configurations or RX/TX mask combinations they cannot - *	support by returning -EINVAL. - * - * @NL80211_ATTR_WIPHY_ANTENNA_RX: Bitmap of allowed antennas for receiving. - *	This can be used to mask out antennas which are not attached or should - *	not be used for receiving. If an antenna is not selected in this bitmap - *	the hardware should not be configured to receive on this antenna. - *	For a more detailed description see @NL80211_ATTR_WIPHY_ANTENNA_TX. - * - * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX: Bitmap of antennas which are available - *	for configuration as TX antennas via the above parameters. - * - * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX: Bitmap of antennas which are available - *	for configuration as RX antennas via the above parameters. - * - * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS - * - * @NL80211_ATTR_OFFCHANNEL_TX_OK: For management frame TX, the frame may be - *	transmitted on another channel when the channel given doesn't match - *	the current channel. If the current channel doesn't match and this - *	flag isn't set, the frame will be rejected. This is also used as an - *	nl80211 capability flag. - * - * @NL80211_ATTR_BSS_HT_OPMODE: HT operation mode (u16) - * - * @NL80211_ATTR_KEY_DEFAULT_TYPES: A nested attribute containing flags - *	attributes, specifying what a key should be set as default as. - *	See &enum nl80211_key_default_types. - * - * @NL80211_ATTR_MESH_SETUP: Optional mesh setup parameters.  These cannot be - *	changed once the mesh is active. - * @NL80211_ATTR_MESH_CONFIG: Mesh configuration parameters, a nested attribute - *	containing attributes from &enum nl80211_meshconf_params. - * @NL80211_ATTR_SUPPORT_MESH_AUTH: Currently, this means the underlying driver - *	allows auth frames in a mesh to be passed to userspace for processing via - *	the @NL80211_MESH_SETUP_USERSPACE_AUTH flag. - * @NL80211_ATTR_STA_PLINK_STATE: The state of a mesh peer link as - *	defined in &enum nl80211_plink_state. Used when userspace is - *	driving the peer link management state machine. - *	@NL80211_MESH_SETUP_USERSPACE_AMPE must be enabled. - * - * @NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED: indicates, as part of the wiphy - *	capabilities, the supported WoWLAN triggers - * @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to - *	indicate which WoW triggers should be enabled. This is also - *	used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN - *	triggers. - * - * @NL80211_ATTR_SCHED_SCAN_INTERVAL: Interval between scheduled scan - *	cycles, in msecs. - * - * @NL80211_ATTR_SCHED_SCAN_MATCH: Nested attribute with one or more - *	sets of attributes to match during scheduled scans.  Only BSSs - *	that match any of the sets will be reported.  These are - *	pass-thru filter rules. - *	For a match to succeed, the BSS must match all attributes of a - *	set.  Since not every hardware supports matching all types of - *	attributes, there is no guarantee that the reported BSSs are - *	fully complying with the match sets and userspace needs to be - *	able to ignore them by itself. - *	Thus, the implementation is somewhat hardware-dependent, but - *	this is only an optimization and the userspace application - *	needs to handle all the non-filtered results anyway. - *	If the match attributes don't make sense when combined with - *	the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID - *	is included in the probe request, but the match attributes - *	will never let it go through), -EINVAL may be returned. - *	If ommited, no filtering is done. - * - * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported - *	interface combinations. In each nested item, it contains attributes - *	defined in &enum nl80211_if_combination_attrs. - * @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like - *	%NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that - *	are managed in software: interfaces of these types aren't subject to - *	any restrictions in their number or combinations. - * - * @NL80211_ATTR_REKEY_DATA: nested attribute containing the information - *	necessary for GTK rekeying in the device, see &enum nl80211_rekey_data. - * - * @NL80211_ATTR_SCAN_SUPP_RATES: rates per to be advertised as supported in scan, - *	nested array attribute containing an entry for each band, with the entry - *	being a list of supported rates as defined by IEEE 802.11 7.3.2.2 but - *	without the length restriction (at most %NL80211_MAX_SUPP_RATES). - * - * @NL80211_ATTR_HIDDEN_SSID: indicates whether SSID is to be hidden from Beacon - *	and Probe Response (when response to wildcard Probe Request); see - *	&enum nl80211_hidden_ssid, represented as a u32 - * - * @NL80211_ATTR_IE_PROBE_RESP: Information element(s) for Probe Response frame. - *	This is used with %NL80211_CMD_NEW_BEACON and %NL80211_CMD_SET_BEACON to - *	provide extra IEs (e.g., WPS/P2P IE) into Probe Response frames when the - *	driver (or firmware) replies to Probe Request frames. - * @NL80211_ATTR_IE_ASSOC_RESP: Information element(s) for (Re)Association - *	Response frames. This is used with %NL80211_CMD_NEW_BEACON and - *	%NL80211_CMD_SET_BEACON to provide extra IEs (e.g., WPS/P2P IE) into - *	(Re)Association Response frames when the driver (or firmware) replies to - *	(Re)Association Request frames. - * - * @NL80211_ATTR_STA_WME: Nested attribute containing the wme configuration - *	of the station, see &enum nl80211_sta_wme_attr. - * @NL80211_ATTR_SUPPORT_AP_UAPSD: the device supports uapsd when working - *	as AP. - * - * @NL80211_ATTR_ROAM_SUPPORT: Indicates whether the firmware is capable of - *	roaming to another AP in the same ESS if the signal lever is low. - * - * @NL80211_ATTR_PMKSA_CANDIDATE: Nested attribute containing the PMKSA caching - *	candidate information, see &enum nl80211_pmksa_candidate_attr. - * - * @NL80211_ATTR_TX_NO_CCK_RATE: Indicates whether to use CCK rate or not - *	for management frames transmission. In order to avoid p2p probe/action - *	frames are being transmitted at CCK rate in 2GHz band, the user space - *	applications use this attribute. - *	This attribute is used with %NL80211_CMD_TRIGGER_SCAN and - *	%NL80211_CMD_FRAME commands. - * - * @NL80211_ATTR_TDLS_ACTION: Low level TDLS action code (e.g. link setup - *	request, link setup confirm, link teardown, etc.). Values are - *	described in the TDLS (802.11z) specification. - * @NL80211_ATTR_TDLS_DIALOG_TOKEN: Non-zero token for uniquely identifying a - *	TDLS conversation between two devices. - * @NL80211_ATTR_TDLS_OPERATION: High level TDLS operation; see - *	&enum nl80211_tdls_operation, represented as a u8. - * @NL80211_ATTR_TDLS_SUPPORT: A flag indicating the device can operate - *	as a TDLS peer sta. - * @NL80211_ATTR_TDLS_EXTERNAL_SETUP: The TDLS discovery/setup and teardown - *	procedures should be performed by sending TDLS packets via - *	%NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be - *	used for asking the driver to perform a TDLS operation. - * - * @NL80211_ATTR_DEVICE_AP_SME: This u32 attribute may be listed for devices - *	that have AP support to indicate that they have the AP SME integrated - *	with support for the features listed in this attribute, see - *	&enum nl80211_ap_sme_features. - * - * @NL80211_ATTR_DONT_WAIT_FOR_ACK: Used with %NL80211_CMD_FRAME, this tells - *	the driver to not wait for an acknowledgement. Note that due to this, - *	it will also not give a status callback nor return a cookie. This is - *	mostly useful for probe responses to save airtime. - * - * @NL80211_ATTR_FEATURE_FLAGS: This u32 attribute contains flags from - *	&enum nl80211_feature_flags and is advertised in wiphy information. - * @NL80211_ATTR_PROBE_RESP_OFFLOAD: Indicates that the HW responds to probe - *	requests while operating in AP-mode. - *	This attribute holds a bitmap of the supported protocols for - *	offloading (see &enum nl80211_probe_resp_offload_support_attr). - * - * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire - *	probe-response frame. The DA field in the 802.11 header is zero-ed out, - *	to be filled by the FW. - * @NL80211_ATTR_DISABLE_HT:  Force HT capable interfaces to disable - *      this feature.  Currently, only supported in mac80211 drivers. - * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the - *      ATTR_HT_CAPABILITY to which attention should be paid. - *      Currently, only mac80211 NICs support this feature. - *      The values that may be configured are: - *       MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40 - *       AMPDU density and AMPDU factor. - *      All values are treated as suggestions and may be ignored - *      by the driver as required.  The actual values may be seen in - *      the station debugfs ht_caps file. - * - * @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country - *    abides to when initiating radiation on DFS channels. A country maps - *    to one DFS region. - * - * @NL80211_ATTR_NOACK_MAP: This u16 bitmap contains the No Ack Policy of - *      up to 16 TIDs. - * - * @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be - *	used by the drivers which has MLME in firmware and does not have support - *	to report per station tx/rx activity to free up the staion entry from - *	the list. This needs to be used when the driver advertises the - *	capability to timeout the stations. - * - * @NL80211_ATTR_RX_SIGNAL_DBM: signal strength in dBm (as a 32-bit int); - *	this attribute is (depending on the driver capabilities) added to - *	received frames indicated with %NL80211_CMD_FRAME. - * - * @NL80211_ATTR_BG_SCAN_PERIOD: Background scan period in seconds - *      or 0 to disable background scan. - * - * @NL80211_ATTR_USER_REG_HINT_TYPE: type of regulatory hint passed from - *	userspace. If unset it is assumed the hint comes directly from - *	a user. If set code could specify exactly what type of source - *	was used to provide the hint. For the different types of - *	allowed user regulatory hints see nl80211_user_reg_hint_type. - * - * @NL80211_ATTR_CONN_FAILED_REASON: The reason for which AP has rejected - *	the connection request from a station. nl80211_connect_failed_reason - *	enum has different reasons of connection failure. - * - * @NL80211_ATTR_MAX: highest attribute number currently defined - * @__NL80211_ATTR_AFTER_LAST: internal use - */ -enum nl80211_attrs { -/* don't change the order or add anything between, this is ABI! */ -	NL80211_ATTR_UNSPEC, - -	NL80211_ATTR_WIPHY, -	NL80211_ATTR_WIPHY_NAME, - -	NL80211_ATTR_IFINDEX, -	NL80211_ATTR_IFNAME, -	NL80211_ATTR_IFTYPE, - -	NL80211_ATTR_MAC, - -	NL80211_ATTR_KEY_DATA, -	NL80211_ATTR_KEY_IDX, -	NL80211_ATTR_KEY_CIPHER, -	NL80211_ATTR_KEY_SEQ, -	NL80211_ATTR_KEY_DEFAULT, - -	NL80211_ATTR_BEACON_INTERVAL, -	NL80211_ATTR_DTIM_PERIOD, -	NL80211_ATTR_BEACON_HEAD, -	NL80211_ATTR_BEACON_TAIL, - -	NL80211_ATTR_STA_AID, -	NL80211_ATTR_STA_FLAGS, -	NL80211_ATTR_STA_LISTEN_INTERVAL, -	NL80211_ATTR_STA_SUPPORTED_RATES, -	NL80211_ATTR_STA_VLAN, -	NL80211_ATTR_STA_INFO, - -	NL80211_ATTR_WIPHY_BANDS, - -	NL80211_ATTR_MNTR_FLAGS, - -	NL80211_ATTR_MESH_ID, -	NL80211_ATTR_STA_PLINK_ACTION, -	NL80211_ATTR_MPATH_NEXT_HOP, -	NL80211_ATTR_MPATH_INFO, - -	NL80211_ATTR_BSS_CTS_PROT, -	NL80211_ATTR_BSS_SHORT_PREAMBLE, -	NL80211_ATTR_BSS_SHORT_SLOT_TIME, - -	NL80211_ATTR_HT_CAPABILITY, - -	NL80211_ATTR_SUPPORTED_IFTYPES, - -	NL80211_ATTR_REG_ALPHA2, -	NL80211_ATTR_REG_RULES, - -	NL80211_ATTR_MESH_CONFIG, - -	NL80211_ATTR_BSS_BASIC_RATES, - -	NL80211_ATTR_WIPHY_TXQ_PARAMS, -	NL80211_ATTR_WIPHY_FREQ, -	NL80211_ATTR_WIPHY_CHANNEL_TYPE, - -	NL80211_ATTR_KEY_DEFAULT_MGMT, - -	NL80211_ATTR_MGMT_SUBTYPE, -	NL80211_ATTR_IE, - -	NL80211_ATTR_MAX_NUM_SCAN_SSIDS, - -	NL80211_ATTR_SCAN_FREQUENCIES, -	NL80211_ATTR_SCAN_SSIDS, -	NL80211_ATTR_GENERATION, /* replaces old SCAN_GENERATION */ -	NL80211_ATTR_BSS, - -	NL80211_ATTR_REG_INITIATOR, -	NL80211_ATTR_REG_TYPE, - -	NL80211_ATTR_SUPPORTED_COMMANDS, - -	NL80211_ATTR_FRAME, -	NL80211_ATTR_SSID, -	NL80211_ATTR_AUTH_TYPE, -	NL80211_ATTR_REASON_CODE, - -	NL80211_ATTR_KEY_TYPE, - -	NL80211_ATTR_MAX_SCAN_IE_LEN, -	NL80211_ATTR_CIPHER_SUITES, - -	NL80211_ATTR_FREQ_BEFORE, -	NL80211_ATTR_FREQ_AFTER, - -	NL80211_ATTR_FREQ_FIXED, - - -	NL80211_ATTR_WIPHY_RETRY_SHORT, -	NL80211_ATTR_WIPHY_RETRY_LONG, -	NL80211_ATTR_WIPHY_FRAG_THRESHOLD, -	NL80211_ATTR_WIPHY_RTS_THRESHOLD, - -	NL80211_ATTR_TIMED_OUT, - -	NL80211_ATTR_USE_MFP, - -	NL80211_ATTR_STA_FLAGS2, - -	NL80211_ATTR_CONTROL_PORT, - -	NL80211_ATTR_TESTDATA, - -	NL80211_ATTR_PRIVACY, - -	NL80211_ATTR_DISCONNECTED_BY_AP, -	NL80211_ATTR_STATUS_CODE, - -	NL80211_ATTR_CIPHER_SUITES_PAIRWISE, -	NL80211_ATTR_CIPHER_SUITE_GROUP, -	NL80211_ATTR_WPA_VERSIONS, -	NL80211_ATTR_AKM_SUITES, - -	NL80211_ATTR_REQ_IE, -	NL80211_ATTR_RESP_IE, - -	NL80211_ATTR_PREV_BSSID, - -	NL80211_ATTR_KEY, -	NL80211_ATTR_KEYS, - -	NL80211_ATTR_PID, - -	NL80211_ATTR_4ADDR, - -	NL80211_ATTR_SURVEY_INFO, - -	NL80211_ATTR_PMKID, -	NL80211_ATTR_MAX_NUM_PMKIDS, - -	NL80211_ATTR_DURATION, - -	NL80211_ATTR_COOKIE, - -	NL80211_ATTR_WIPHY_COVERAGE_CLASS, - -	NL80211_ATTR_TX_RATES, - -	NL80211_ATTR_FRAME_MATCH, - -	NL80211_ATTR_ACK, - -	NL80211_ATTR_PS_STATE, - -	NL80211_ATTR_CQM, - -	NL80211_ATTR_LOCAL_STATE_CHANGE, - -	NL80211_ATTR_AP_ISOLATE, - -	NL80211_ATTR_WIPHY_TX_POWER_SETTING, -	NL80211_ATTR_WIPHY_TX_POWER_LEVEL, - -	NL80211_ATTR_TX_FRAME_TYPES, -	NL80211_ATTR_RX_FRAME_TYPES, -	NL80211_ATTR_FRAME_TYPE, - -	NL80211_ATTR_CONTROL_PORT_ETHERTYPE, -	NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, - -	NL80211_ATTR_SUPPORT_IBSS_RSN, - -	NL80211_ATTR_WIPHY_ANTENNA_TX, -	NL80211_ATTR_WIPHY_ANTENNA_RX, - -	NL80211_ATTR_MCAST_RATE, - -	NL80211_ATTR_OFFCHANNEL_TX_OK, - -	NL80211_ATTR_BSS_HT_OPMODE, - -	NL80211_ATTR_KEY_DEFAULT_TYPES, - -	NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION, - -	NL80211_ATTR_MESH_SETUP, - -	NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX, -	NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX, - -	NL80211_ATTR_SUPPORT_MESH_AUTH, -	NL80211_ATTR_STA_PLINK_STATE, - -	NL80211_ATTR_WOWLAN_TRIGGERS, -	NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, - -	NL80211_ATTR_SCHED_SCAN_INTERVAL, - -	NL80211_ATTR_INTERFACE_COMBINATIONS, -	NL80211_ATTR_SOFTWARE_IFTYPES, - -	NL80211_ATTR_REKEY_DATA, - -	NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS, -	NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, - -	NL80211_ATTR_SCAN_SUPP_RATES, - -	NL80211_ATTR_HIDDEN_SSID, - -	NL80211_ATTR_IE_PROBE_RESP, -	NL80211_ATTR_IE_ASSOC_RESP, - -	NL80211_ATTR_STA_WME, -	NL80211_ATTR_SUPPORT_AP_UAPSD, - -	NL80211_ATTR_ROAM_SUPPORT, - -	NL80211_ATTR_SCHED_SCAN_MATCH, -	NL80211_ATTR_MAX_MATCH_SETS, - -	NL80211_ATTR_PMKSA_CANDIDATE, - -	NL80211_ATTR_TX_NO_CCK_RATE, - -	NL80211_ATTR_TDLS_ACTION, -	NL80211_ATTR_TDLS_DIALOG_TOKEN, -	NL80211_ATTR_TDLS_OPERATION, -	NL80211_ATTR_TDLS_SUPPORT, -	NL80211_ATTR_TDLS_EXTERNAL_SETUP, - -	NL80211_ATTR_DEVICE_AP_SME, - -	NL80211_ATTR_DONT_WAIT_FOR_ACK, - -	NL80211_ATTR_FEATURE_FLAGS, - -	NL80211_ATTR_PROBE_RESP_OFFLOAD, - -	NL80211_ATTR_PROBE_RESP, - -	NL80211_ATTR_DFS_REGION, - -	NL80211_ATTR_DISABLE_HT, -	NL80211_ATTR_HT_CAPABILITY_MASK, - -	NL80211_ATTR_NOACK_MAP, - -	NL80211_ATTR_INACTIVITY_TIMEOUT, - -	NL80211_ATTR_RX_SIGNAL_DBM, - -	NL80211_ATTR_BG_SCAN_PERIOD, - -	NL80211_ATTR_WDEV, - -	NL80211_ATTR_USER_REG_HINT_TYPE, - -	NL80211_ATTR_CONN_FAILED_REASON, - -	/* add attributes here, update the policy in nl80211.c */ - -	__NL80211_ATTR_AFTER_LAST, -	NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 -}; - -/* source-level API compatibility */ -#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION -#define	NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG - -/* - * Allow user space programs to use #ifdef on new attributes by defining them - * here - */ -#define NL80211_CMD_CONNECT NL80211_CMD_CONNECT -#define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY -#define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES -#define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS -#define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ -#define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE -#define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE -#define NL80211_ATTR_IE NL80211_ATTR_IE -#define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR -#define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE -#define NL80211_ATTR_FRAME NL80211_ATTR_FRAME -#define NL80211_ATTR_SSID NL80211_ATTR_SSID -#define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE -#define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE -#define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE -#define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP -#define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS -#define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES -#define NL80211_ATTR_KEY NL80211_ATTR_KEY -#define NL80211_ATTR_KEYS NL80211_ATTR_KEYS -#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS - -#define NL80211_MAX_SUPP_RATES			32 -#define NL80211_MAX_SUPP_HT_RATES		77 -#define NL80211_MAX_SUPP_REG_RULES		32 -#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY	0 -#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY	16 -#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY	24 -#define NL80211_HT_CAPABILITY_LEN		26 - -#define NL80211_MAX_NR_CIPHER_SUITES		5 -#define NL80211_MAX_NR_AKM_SUITES		2 - -#define NL80211_MIN_REMAIN_ON_CHANNEL_TIME	10 - -/* default RSSI threshold for scan results if none specified. */ -#define NL80211_SCAN_RSSI_THOLD_OFF		-300 - -#define NL80211_CQM_TXE_MAX_INTVL		1800 - -/** - * enum nl80211_iftype - (virtual) interface types - * - * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides - * @NL80211_IFTYPE_ADHOC: independent BSS member - * @NL80211_IFTYPE_STATION: managed BSS member - * @NL80211_IFTYPE_AP: access point - * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points; VLAN interfaces - *	are a bit special in that they must always be tied to a pre-existing - *	AP type interface. - * @NL80211_IFTYPE_WDS: wireless distribution interface - * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames - * @NL80211_IFTYPE_MESH_POINT: mesh point - * @NL80211_IFTYPE_P2P_CLIENT: P2P client - * @NL80211_IFTYPE_P2P_GO: P2P group owner - * @NL80211_IFTYPE_P2P_DEVICE: P2P device interface type, this is not a netdev - *	and therefore can't be created in the normal ways, use the - *	%NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE - *	commands to create and destroy one - * @NL80211_IFTYPE_MAX: highest interface type number currently defined - * @NUM_NL80211_IFTYPES: number of defined interface types - * - * These values are used with the %NL80211_ATTR_IFTYPE - * to set the type of an interface. - * - */ -enum nl80211_iftype { -	NL80211_IFTYPE_UNSPECIFIED, -	NL80211_IFTYPE_ADHOC, -	NL80211_IFTYPE_STATION, -	NL80211_IFTYPE_AP, -	NL80211_IFTYPE_AP_VLAN, -	NL80211_IFTYPE_WDS, -	NL80211_IFTYPE_MONITOR, -	NL80211_IFTYPE_MESH_POINT, -	NL80211_IFTYPE_P2P_CLIENT, -	NL80211_IFTYPE_P2P_GO, -	NL80211_IFTYPE_P2P_DEVICE, - -	/* keep last */ -	NUM_NL80211_IFTYPES, -	NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1 -}; - -/** - * enum nl80211_sta_flags - station flags - * - * Station flags. When a station is added to an AP interface, it is - * assumed to be already associated (and hence authenticated.) - * - * @__NL80211_STA_FLAG_INVALID: attribute number 0 is reserved - * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X) - * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames - *	with short barker preamble - * @NL80211_STA_FLAG_WME: station is WME/QoS capable - * @NL80211_STA_FLAG_MFP: station uses management frame protection - * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated - * @NL80211_STA_FLAG_TDLS_PEER: station is a TDLS peer -- this flag should - *	only be used in managed mode (even in the flags mask). Note that the - *	flag can't be changed, it is only valid while adding a station, and - *	attempts to change it will silently be ignored (rather than rejected - *	as errors.) - * @NL80211_STA_FLAG_MAX: highest station flag number currently defined - * @__NL80211_STA_FLAG_AFTER_LAST: internal use - */ -enum nl80211_sta_flags { -	__NL80211_STA_FLAG_INVALID, -	NL80211_STA_FLAG_AUTHORIZED, -	NL80211_STA_FLAG_SHORT_PREAMBLE, -	NL80211_STA_FLAG_WME, -	NL80211_STA_FLAG_MFP, -	NL80211_STA_FLAG_AUTHENTICATED, -	NL80211_STA_FLAG_TDLS_PEER, - -	/* keep last */ -	__NL80211_STA_FLAG_AFTER_LAST, -	NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1 -}; - -#define NL80211_STA_FLAG_MAX_OLD_API	NL80211_STA_FLAG_TDLS_PEER - -/** - * struct nl80211_sta_flag_update - station flags mask/set - * @mask: mask of station flags to set - * @set: which values to set them to - * - * Both mask and set contain bits as per &enum nl80211_sta_flags. - */ -struct nl80211_sta_flag_update { -	__u32 mask; -	__u32 set; -} __attribute__((packed)); - -/** - * enum nl80211_rate_info - bitrate information - * - * These attribute types are used with %NL80211_STA_INFO_TXRATE - * when getting information about the bitrate of a station. - * There are 2 attributes for bitrate, a legacy one that represents - * a 16-bit value, and new one that represents a 32-bit value. - * If the rate value fits into 16 bit, both attributes are reported - * with the same value. If the rate is too high to fit into 16 bits - * (>6.5535Gbps) only 32-bit attribute is included. - * User space tools encouraged to use the 32-bit attribute and fall - * back to the 16-bit one for compatibility with older kernels. - * - * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved - * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) - * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) - * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate - * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval - * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) - * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined - * @__NL80211_RATE_INFO_AFTER_LAST: internal use - */ -enum nl80211_rate_info { -	__NL80211_RATE_INFO_INVALID, -	NL80211_RATE_INFO_BITRATE, -	NL80211_RATE_INFO_MCS, -	NL80211_RATE_INFO_40_MHZ_WIDTH, -	NL80211_RATE_INFO_SHORT_GI, -	NL80211_RATE_INFO_BITRATE32, - -	/* keep last */ -	__NL80211_RATE_INFO_AFTER_LAST, -	NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1 -}; - -/** - * enum nl80211_sta_bss_param - BSS information collected by STA - * - * These attribute types are used with %NL80211_STA_INFO_BSS_PARAM - * when getting information about the bitrate of a station. - * - * @__NL80211_STA_BSS_PARAM_INVALID: attribute number 0 is reserved - * @NL80211_STA_BSS_PARAM_CTS_PROT: whether CTS protection is enabled (flag) - * @NL80211_STA_BSS_PARAM_SHORT_PREAMBLE:  whether short preamble is enabled - *	(flag) - * @NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME:  whether short slot time is enabled - *	(flag) - * @NL80211_STA_BSS_PARAM_DTIM_PERIOD: DTIM period for beaconing (u8) - * @NL80211_STA_BSS_PARAM_BEACON_INTERVAL: Beacon interval (u16) - * @NL80211_STA_BSS_PARAM_MAX: highest sta_bss_param number currently defined - * @__NL80211_STA_BSS_PARAM_AFTER_LAST: internal use - */ -enum nl80211_sta_bss_param { -	__NL80211_STA_BSS_PARAM_INVALID, -	NL80211_STA_BSS_PARAM_CTS_PROT, -	NL80211_STA_BSS_PARAM_SHORT_PREAMBLE, -	NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME, -	NL80211_STA_BSS_PARAM_DTIM_PERIOD, -	NL80211_STA_BSS_PARAM_BEACON_INTERVAL, - -	/* keep last */ -	__NL80211_STA_BSS_PARAM_AFTER_LAST, -	NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1 -}; - -/** - * enum nl80211_sta_info - station information - * - * These attribute types are used with %NL80211_ATTR_STA_INFO - * when getting information about a station. - * - * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved - * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) - * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) - * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) - * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) - * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute - * 	containing info as possible, see &enum nl80211_rate_info - * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) - * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this - *	station) - * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station) - * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station) - * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) - * @NL80211_STA_INFO_LLID: the station's mesh LLID - * @NL80211_STA_INFO_PLID: the station's mesh PLID - * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station - *	(see %enum nl80211_plink_state) - * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested - *	attribute, like NL80211_STA_INFO_TX_BITRATE. - * @NL80211_STA_INFO_BSS_PARAM: current station's view of BSS, nested attribute - *     containing info as possible, see &enum nl80211_sta_bss_param - * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected - * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. - * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) - * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) - * @__NL80211_STA_INFO_AFTER_LAST: internal - * @NL80211_STA_INFO_MAX: highest possible station info attribute - */ -enum nl80211_sta_info { -	__NL80211_STA_INFO_INVALID, -	NL80211_STA_INFO_INACTIVE_TIME, -	NL80211_STA_INFO_RX_BYTES, -	NL80211_STA_INFO_TX_BYTES, -	NL80211_STA_INFO_LLID, -	NL80211_STA_INFO_PLID, -	NL80211_STA_INFO_PLINK_STATE, -	NL80211_STA_INFO_SIGNAL, -	NL80211_STA_INFO_TX_BITRATE, -	NL80211_STA_INFO_RX_PACKETS, -	NL80211_STA_INFO_TX_PACKETS, -	NL80211_STA_INFO_TX_RETRIES, -	NL80211_STA_INFO_TX_FAILED, -	NL80211_STA_INFO_SIGNAL_AVG, -	NL80211_STA_INFO_RX_BITRATE, -	NL80211_STA_INFO_BSS_PARAM, -	NL80211_STA_INFO_CONNECTED_TIME, -	NL80211_STA_INFO_STA_FLAGS, -	NL80211_STA_INFO_BEACON_LOSS, -	NL80211_STA_INFO_T_OFFSET, - -	/* keep last */ -	__NL80211_STA_INFO_AFTER_LAST, -	NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 -}; - -/** - * enum nl80211_mpath_flags - nl80211 mesh path flags - * - * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active - * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running - * @NL80211_MPATH_FLAG_SN_VALID: the mesh path contains a valid SN - * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set - * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded - */ -enum nl80211_mpath_flags { -	NL80211_MPATH_FLAG_ACTIVE =	1<<0, -	NL80211_MPATH_FLAG_RESOLVING =	1<<1, -	NL80211_MPATH_FLAG_SN_VALID =	1<<2, -	NL80211_MPATH_FLAG_FIXED =	1<<3, -	NL80211_MPATH_FLAG_RESOLVED =	1<<4, -}; - -/** - * enum nl80211_mpath_info - mesh path information - * - * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting - * information about a mesh path. - * - * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved - * @NL80211_MPATH_INFO_FRAME_QLEN: number of queued frames for this destination - * @NL80211_MPATH_INFO_SN: destination sequence number - * @NL80211_MPATH_INFO_METRIC: metric (cost) of this mesh path - * @NL80211_MPATH_INFO_EXPTIME: expiration time for the path, in msec from now - * @NL80211_MPATH_INFO_FLAGS: mesh path flags, enumerated in - * 	&enum nl80211_mpath_flags; - * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec - * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries - * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number - *	currently defind - * @__NL80211_MPATH_INFO_AFTER_LAST: internal use - */ -enum nl80211_mpath_info { -	__NL80211_MPATH_INFO_INVALID, -	NL80211_MPATH_INFO_FRAME_QLEN, -	NL80211_MPATH_INFO_SN, -	NL80211_MPATH_INFO_METRIC, -	NL80211_MPATH_INFO_EXPTIME, -	NL80211_MPATH_INFO_FLAGS, -	NL80211_MPATH_INFO_DISCOVERY_TIMEOUT, -	NL80211_MPATH_INFO_DISCOVERY_RETRIES, - -	/* keep last */ -	__NL80211_MPATH_INFO_AFTER_LAST, -	NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 -}; - -/** - * enum nl80211_band_attr - band attributes - * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved - * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band, - *	an array of nested frequency attributes - * @NL80211_BAND_ATTR_RATES: supported bitrates in this band, - *	an array of nested bitrate attributes - * @NL80211_BAND_ATTR_HT_MCS_SET: 16-byte attribute containing the MCS set as - *	defined in 802.11n - * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE - * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n - * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n - * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as - *	defined in 802.11ac - * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE - * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined - * @__NL80211_BAND_ATTR_AFTER_LAST: internal use - */ -enum nl80211_band_attr { -	__NL80211_BAND_ATTR_INVALID, -	NL80211_BAND_ATTR_FREQS, -	NL80211_BAND_ATTR_RATES, - -	NL80211_BAND_ATTR_HT_MCS_SET, -	NL80211_BAND_ATTR_HT_CAPA, -	NL80211_BAND_ATTR_HT_AMPDU_FACTOR, -	NL80211_BAND_ATTR_HT_AMPDU_DENSITY, - -	NL80211_BAND_ATTR_VHT_MCS_SET, -	NL80211_BAND_ATTR_VHT_CAPA, - -	/* keep last */ -	__NL80211_BAND_ATTR_AFTER_LAST, -	NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 -}; - -#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA - -/** - * enum nl80211_frequency_attr - frequency attributes - * @__NL80211_FREQUENCY_ATTR_INVALID: attribute number 0 is reserved - * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz - * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current - *	regulatory domain. - * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is - *	permitted on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted - *	on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory - *	on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm - *	(100 * dBm). - * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number - *	currently defined - * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use - */ -enum nl80211_frequency_attr { -	__NL80211_FREQUENCY_ATTR_INVALID, -	NL80211_FREQUENCY_ATTR_FREQ, -	NL80211_FREQUENCY_ATTR_DISABLED, -	NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, -	NL80211_FREQUENCY_ATTR_NO_IBSS, -	NL80211_FREQUENCY_ATTR_RADAR, -	NL80211_FREQUENCY_ATTR_MAX_TX_POWER, - -	/* keep last */ -	__NL80211_FREQUENCY_ATTR_AFTER_LAST, -	NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1 -}; - -#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER - -/** - * enum nl80211_bitrate_attr - bitrate attributes - * @__NL80211_BITRATE_ATTR_INVALID: attribute number 0 is reserved - * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps - * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported - *	in 2.4 GHz band. - * @NL80211_BITRATE_ATTR_MAX: highest bitrate attribute number - *	currently defined - * @__NL80211_BITRATE_ATTR_AFTER_LAST: internal use - */ -enum nl80211_bitrate_attr { -	__NL80211_BITRATE_ATTR_INVALID, -	NL80211_BITRATE_ATTR_RATE, -	NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE, - -	/* keep last */ -	__NL80211_BITRATE_ATTR_AFTER_LAST, -	NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1 -}; - -/** - * enum nl80211_initiator - Indicates the initiator of a reg domain request - * @NL80211_REGDOM_SET_BY_CORE: Core queried CRDA for a dynamic world - * 	regulatory domain. - * @NL80211_REGDOM_SET_BY_USER: User asked the wireless core to set the - * 	regulatory domain. - * @NL80211_REGDOM_SET_BY_DRIVER: a wireless drivers has hinted to the - * 	wireless core it thinks its knows the regulatory domain we should be in. - * @NL80211_REGDOM_SET_BY_COUNTRY_IE: the wireless core has received an - * 	802.11 country information element with regulatory information it - * 	thinks we should consider. cfg80211 only processes the country - *	code from the IE, and relies on the regulatory domain information - *	structure passed by userspace (CRDA) from our wireless-regdb. - *	If a channel is enabled but the country code indicates it should - *	be disabled we disable the channel and re-enable it upon disassociation. - */ -enum nl80211_reg_initiator { -	NL80211_REGDOM_SET_BY_CORE, -	NL80211_REGDOM_SET_BY_USER, -	NL80211_REGDOM_SET_BY_DRIVER, -	NL80211_REGDOM_SET_BY_COUNTRY_IE, -}; - -/** - * enum nl80211_reg_type - specifies the type of regulatory domain - * @NL80211_REGDOM_TYPE_COUNTRY: the regulatory domain set is one that pertains - *	to a specific country. When this is set you can count on the - *	ISO / IEC 3166 alpha2 country code being valid. - * @NL80211_REGDOM_TYPE_WORLD: the regulatory set domain is the world regulatory - * 	domain. - * @NL80211_REGDOM_TYPE_CUSTOM_WORLD: the regulatory domain set is a custom - * 	driver specific world regulatory domain. These do not apply system-wide - * 	and are only applicable to the individual devices which have requested - * 	them to be applied. - * @NL80211_REGDOM_TYPE_INTERSECTION: the regulatory domain set is the product - *	of an intersection between two regulatory domains -- the previously - *	set regulatory domain on the system and the last accepted regulatory - *	domain request to be processed. - */ -enum nl80211_reg_type { -	NL80211_REGDOM_TYPE_COUNTRY, -	NL80211_REGDOM_TYPE_WORLD, -	NL80211_REGDOM_TYPE_CUSTOM_WORLD, -	NL80211_REGDOM_TYPE_INTERSECTION, -}; - -/** - * enum nl80211_reg_rule_attr - regulatory rule attributes - * @__NL80211_REG_RULE_ATTR_INVALID: attribute number 0 is reserved - * @NL80211_ATTR_REG_RULE_FLAGS: a set of flags which specify additional - * 	considerations for a given frequency range. These are the - * 	&enum nl80211_reg_rule_flags. - * @NL80211_ATTR_FREQ_RANGE_START: starting frequencry for the regulatory - * 	rule in KHz. This is not a center of frequency but an actual regulatory - * 	band edge. - * @NL80211_ATTR_FREQ_RANGE_END: ending frequency for the regulatory rule - * 	in KHz. This is not a center a frequency but an actual regulatory - * 	band edge. - * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this - * 	frequency range, in KHz. - * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain - * 	for a given frequency range. The value is in mBi (100 * dBi). - * 	If you don't have one then don't send this. - * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for - * 	a given frequency range. The value is in mBm (100 * dBm). - * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number - *	currently defined - * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use - */ -enum nl80211_reg_rule_attr { -	__NL80211_REG_RULE_ATTR_INVALID, -	NL80211_ATTR_REG_RULE_FLAGS, - -	NL80211_ATTR_FREQ_RANGE_START, -	NL80211_ATTR_FREQ_RANGE_END, -	NL80211_ATTR_FREQ_RANGE_MAX_BW, - -	NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, -	NL80211_ATTR_POWER_RULE_MAX_EIRP, - -	/* keep last */ -	__NL80211_REG_RULE_ATTR_AFTER_LAST, -	NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 -}; - -/** - * enum nl80211_sched_scan_match_attr - scheduled scan match attributes - * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved - * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, - * only report BSS with matching SSID. - * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a - *	BSS in scan results. Filtering is turned off if not specified. - * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter - *	attribute number currently defined - * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use - */ -enum nl80211_sched_scan_match_attr { -	__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID, - -	NL80211_SCHED_SCAN_MATCH_ATTR_SSID, -	NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, - -	/* keep last */ -	__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, -	NL80211_SCHED_SCAN_MATCH_ATTR_MAX = -		__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1 -}; - -/* only for backward compatibility */ -#define NL80211_ATTR_SCHED_SCAN_MATCH_SSID NL80211_SCHED_SCAN_MATCH_ATTR_SSID - -/** - * enum nl80211_reg_rule_flags - regulatory rule flags - * - * @NL80211_RRF_NO_OFDM: OFDM modulation not allowed - * @NL80211_RRF_NO_CCK: CCK modulation not allowed - * @NL80211_RRF_NO_INDOOR: indoor operation not allowed - * @NL80211_RRF_NO_OUTDOOR: outdoor operation not allowed - * @NL80211_RRF_DFS: DFS support is required to be used - * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links - * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links - * @NL80211_RRF_PASSIVE_SCAN: passive scan is required - * @NL80211_RRF_NO_IBSS: no IBSS is allowed - */ -enum nl80211_reg_rule_flags { -	NL80211_RRF_NO_OFDM		= 1<<0, -	NL80211_RRF_NO_CCK		= 1<<1, -	NL80211_RRF_NO_INDOOR		= 1<<2, -	NL80211_RRF_NO_OUTDOOR		= 1<<3, -	NL80211_RRF_DFS			= 1<<4, -	NL80211_RRF_PTP_ONLY		= 1<<5, -	NL80211_RRF_PTMP_ONLY		= 1<<6, -	NL80211_RRF_PASSIVE_SCAN	= 1<<7, -	NL80211_RRF_NO_IBSS		= 1<<8, -}; - -/** - * enum nl80211_dfs_regions - regulatory DFS regions - * - * @NL80211_DFS_UNSET: Country has no DFS master region specified - * @NL80211_DFS_FCC: Country follows DFS master rules from FCC - * @NL80211_DFS_ETSI: Country follows DFS master rules from ETSI - * @NL80211_DFS_JP: Country follows DFS master rules from JP/MKK/Telec - */ -enum nl80211_dfs_regions { -	NL80211_DFS_UNSET	= 0, -	NL80211_DFS_FCC		= 1, -	NL80211_DFS_ETSI	= 2, -	NL80211_DFS_JP		= 3, -}; - -/** - * enum nl80211_user_reg_hint_type - type of user regulatory hint - * - * @NL80211_USER_REG_HINT_USER: a user sent the hint. This is always - *	assumed if the attribute is not set. - * @NL80211_USER_REG_HINT_CELL_BASE: the hint comes from a cellular - *	base station. Device drivers that have been tested to work - *	properly to support this type of hint can enable these hints - *	by setting the NL80211_FEATURE_CELL_BASE_REG_HINTS feature - *	capability on the struct wiphy. The wireless core will - *	ignore all cell base station hints until at least one device - *	present has been registered with the wireless core that - *	has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a - *	supported feature. - */ -enum nl80211_user_reg_hint_type { -	NL80211_USER_REG_HINT_USER	= 0, -	NL80211_USER_REG_HINT_CELL_BASE = 1, -}; - -/** - * enum nl80211_survey_info - survey information - * - * These attribute types are used with %NL80211_ATTR_SURVEY_INFO - * when getting information about a survey. - * - * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved - * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel - * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) - * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used - * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio - *	spent on this channel - * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary - *	channel was sensed busy (either due to activity or energy detect) - * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension - *	channel was sensed busy - * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent - *	receiving data - * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent - *	transmitting data - * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number - *	currently defined - * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use - */ -enum nl80211_survey_info { -	__NL80211_SURVEY_INFO_INVALID, -	NL80211_SURVEY_INFO_FREQUENCY, -	NL80211_SURVEY_INFO_NOISE, -	NL80211_SURVEY_INFO_IN_USE, -	NL80211_SURVEY_INFO_CHANNEL_TIME, -	NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY, -	NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY, -	NL80211_SURVEY_INFO_CHANNEL_TIME_RX, -	NL80211_SURVEY_INFO_CHANNEL_TIME_TX, - -	/* keep last */ -	__NL80211_SURVEY_INFO_AFTER_LAST, -	NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 -}; - -/** - * enum nl80211_mntr_flags - monitor configuration flags - * - * Monitor configuration flags. - * - * @__NL80211_MNTR_FLAG_INVALID: reserved - * - * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS - * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP - * @NL80211_MNTR_FLAG_CONTROL: pass control frames - * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering - * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing. - *	overrides all other flags. - * - * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use - * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag - */ -enum nl80211_mntr_flags { -	__NL80211_MNTR_FLAG_INVALID, -	NL80211_MNTR_FLAG_FCSFAIL, -	NL80211_MNTR_FLAG_PLCPFAIL, -	NL80211_MNTR_FLAG_CONTROL, -	NL80211_MNTR_FLAG_OTHER_BSS, -	NL80211_MNTR_FLAG_COOK_FRAMES, - -	/* keep last */ -	__NL80211_MNTR_FLAG_AFTER_LAST, -	NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 -}; - -/** - * enum nl80211_meshconf_params - mesh configuration parameters - * - * Mesh configuration parameters. These can be changed while the mesh is - * active. - * - * @__NL80211_MESHCONF_INVALID: internal use - * - * @NL80211_MESHCONF_RETRY_TIMEOUT: specifies the initial retry timeout in - *	millisecond units, used by the Peer Link Open message - * - * @NL80211_MESHCONF_CONFIRM_TIMEOUT: specifies the initial confirm timeout, in - *	millisecond units, used by the peer link management to close a peer link - * - * @NL80211_MESHCONF_HOLDING_TIMEOUT: specifies the holding timeout, in - *	millisecond units - * - * @NL80211_MESHCONF_MAX_PEER_LINKS: maximum number of peer links allowed - *	on this mesh interface - * - * @NL80211_MESHCONF_MAX_RETRIES: specifies the maximum number of peer link - *	open retries that can be sent to establish a new peer link instance in a - *	mesh - * - * @NL80211_MESHCONF_TTL: specifies the value of TTL field set at a source mesh - *	point. - * - * @NL80211_MESHCONF_AUTO_OPEN_PLINKS: whether we should automatically - *	open peer links when we detect compatible mesh peers. - * - * @NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES: the number of action frames - *	containing a PREQ that an MP can send to a particular destination (path - *	target) - * - * @NL80211_MESHCONF_PATH_REFRESH_TIME: how frequently to refresh mesh paths - *	(in milliseconds) - * - * @NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT: minimum length of time to wait - *	until giving up on a path discovery (in milliseconds) - * - * @NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT: The time (in TUs) for which mesh - *	points receiving a PREQ shall consider the forwarding information from - *	the root to be valid. (TU = time unit) - * - * @NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL: The minimum interval of time (in - *	TUs) during which an MP can send only one action frame containing a PREQ - *	reference element - * - * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs) - *	that it takes for an HWMP information element to propagate across the - *	mesh - * - * @NL80211_MESHCONF_HWMP_ROOTMODE: whether root mode is enabled or not - * - * @NL80211_MESHCONF_ELEMENT_TTL: specifies the value of TTL field set at a - *	source mesh point for path selection elements. - * - * @NL80211_MESHCONF_HWMP_RANN_INTERVAL:  The interval of time (in TUs) between - *	root announcements are transmitted. - * - * @NL80211_MESHCONF_GATE_ANNOUNCEMENTS: Advertise that this mesh station has - *	access to a broader network beyond the MBSS.  This is done via Root - *	Announcement frames. - * - * @NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL: The minimum interval of time (in - *	TUs) during which a mesh STA can send only one Action frame containing a - *	PERR element. - * - * @NL80211_MESHCONF_FORWARDING: set Mesh STA as forwarding or non-forwarding - *	or forwarding entity (default is TRUE - forwarding entity) - * - * @NL80211_MESHCONF_RSSI_THRESHOLD: RSSI threshold in dBm. This specifies the - *	threshold for average signal strength of candidate station to establish - *	a peer link. - * - * @NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR: maximum number of neighbors - *	to synchronize to for 11s default synchronization method - *	(see 11C.12.2.2) - * - * @NL80211_MESHCONF_HT_OPMODE: set mesh HT protection mode. - * - * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute - * - * @NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT: The time (in TUs) for - *	which mesh STAs receiving a proactive PREQ shall consider the forwarding - *	information to the root mesh STA to be valid. - * - * @NL80211_MESHCONF_HWMP_ROOT_INTERVAL: The interval of time (in TUs) between - *	proactive PREQs are transmitted. - * - * @NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL: The minimum interval of time - *	(in TUs) during which a mesh STA can send only one Action frame - *	containing a PREQ element for root path confirmation. - * - * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use - */ -enum nl80211_meshconf_params { -	__NL80211_MESHCONF_INVALID, -	NL80211_MESHCONF_RETRY_TIMEOUT, -	NL80211_MESHCONF_CONFIRM_TIMEOUT, -	NL80211_MESHCONF_HOLDING_TIMEOUT, -	NL80211_MESHCONF_MAX_PEER_LINKS, -	NL80211_MESHCONF_MAX_RETRIES, -	NL80211_MESHCONF_TTL, -	NL80211_MESHCONF_AUTO_OPEN_PLINKS, -	NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, -	NL80211_MESHCONF_PATH_REFRESH_TIME, -	NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, -	NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, -	NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL, -	NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME, -	NL80211_MESHCONF_HWMP_ROOTMODE, -	NL80211_MESHCONF_ELEMENT_TTL, -	NL80211_MESHCONF_HWMP_RANN_INTERVAL, -	NL80211_MESHCONF_GATE_ANNOUNCEMENTS, -	NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL, -	NL80211_MESHCONF_FORWARDING, -	NL80211_MESHCONF_RSSI_THRESHOLD, -	NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR, -	NL80211_MESHCONF_HT_OPMODE, -	NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, -	NL80211_MESHCONF_HWMP_ROOT_INTERVAL, -	NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, - -	/* keep last */ -	__NL80211_MESHCONF_ATTR_AFTER_LAST, -	NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1 -}; - -/** - * enum nl80211_mesh_setup_params - mesh setup parameters - * - * Mesh setup parameters.  These are used to start/join a mesh and cannot be - * changed while the mesh is active. - * - * @__NL80211_MESH_SETUP_INVALID: Internal use - * - * @NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL: Enable this option to use a - *	vendor specific path selection algorithm or disable it to use the - *	default HWMP. - * - * @NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC: Enable this option to use a - *	vendor specific path metric or disable it to use the default Airtime - *	metric. - * - * @NL80211_MESH_SETUP_IE: Information elements for this mesh, for instance, a - *	robust security network ie, or a vendor specific information element - *	that vendors will use to identify the path selection methods and - *	metrics in use. - * - * @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication - *	daemon will be authenticating mesh candidates. - * - * @NL80211_MESH_SETUP_USERSPACE_AMPE: Enable this option if an authentication - *	daemon will be securing peer link frames.  AMPE is a secured version of - *	Mesh Peering Management (MPM) and is implemented with the assistance of - *	a userspace daemon.  When this flag is set, the kernel will send peer - *	management frames to a userspace daemon that will implement AMPE - *	functionality (security capabilities selection, key confirmation, and - *	key management).  When the flag is unset (default), the kernel can - *	autonomously complete (unsecured) mesh peering without the need of a - *	userspace daemon. - * - * @NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC: Enable this option to use a - *	vendor specific synchronization method or disable it to use the default - *	neighbor offset synchronization - * - * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number - * - * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use - */ -enum nl80211_mesh_setup_params { -	__NL80211_MESH_SETUP_INVALID, -	NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL, -	NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC, -	NL80211_MESH_SETUP_IE, -	NL80211_MESH_SETUP_USERSPACE_AUTH, -	NL80211_MESH_SETUP_USERSPACE_AMPE, -	NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC, - -	/* keep last */ -	__NL80211_MESH_SETUP_ATTR_AFTER_LAST, -	NL80211_MESH_SETUP_ATTR_MAX = __NL80211_MESH_SETUP_ATTR_AFTER_LAST - 1 -}; - -/** - * enum nl80211_txq_attr - TX queue parameter attributes - * @__NL80211_TXQ_ATTR_INVALID: Attribute number 0 is reserved - * @NL80211_TXQ_ATTR_AC: AC identifier (NL80211_AC_*) - * @NL80211_TXQ_ATTR_TXOP: Maximum burst time in units of 32 usecs, 0 meaning - *	disabled - * @NL80211_TXQ_ATTR_CWMIN: Minimum contention window [a value of the form - *	2^n-1 in the range 1..32767] - * @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form - *	2^n-1 in the range 1..32767] - * @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255] - * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal - * @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number - */ -enum nl80211_txq_attr { -	__NL80211_TXQ_ATTR_INVALID, -	NL80211_TXQ_ATTR_AC, -	NL80211_TXQ_ATTR_TXOP, -	NL80211_TXQ_ATTR_CWMIN, -	NL80211_TXQ_ATTR_CWMAX, -	NL80211_TXQ_ATTR_AIFS, - -	/* keep last */ -	__NL80211_TXQ_ATTR_AFTER_LAST, -	NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1 -}; - -enum nl80211_ac { -	NL80211_AC_VO, -	NL80211_AC_VI, -	NL80211_AC_BE, -	NL80211_AC_BK, -	NL80211_NUM_ACS -}; - -/* backward compat */ -#define NL80211_TXQ_ATTR_QUEUE	NL80211_TXQ_ATTR_AC -#define NL80211_TXQ_Q_VO	NL80211_AC_VO -#define NL80211_TXQ_Q_VI	NL80211_AC_VI -#define NL80211_TXQ_Q_BE	NL80211_AC_BE -#define NL80211_TXQ_Q_BK	NL80211_AC_BK - -enum nl80211_channel_type { -	NL80211_CHAN_NO_HT, -	NL80211_CHAN_HT20, -	NL80211_CHAN_HT40MINUS, -	NL80211_CHAN_HT40PLUS -}; - -/** - * enum nl80211_bss - netlink attributes for a BSS - * - * @__NL80211_BSS_INVALID: invalid - * @NL80211_BSS_BSSID: BSSID of the BSS (6 octets) - * @NL80211_BSS_FREQUENCY: frequency in MHz (u32) - * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64) - * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) - * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16) - * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the - *	raw information elements from the probe response/beacon (bin); - *	if the %NL80211_BSS_BEACON_IES attribute is present, the IEs here are - *	from a Probe Response frame; otherwise they are from a Beacon frame. - *	However, if the driver does not indicate the source of the IEs, these - *	IEs may be from either frame subtype. - * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon - *	in mBm (100 * dBm) (s32) - * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon - *	in unspecified units, scaled to 0..100 (u8) - * @NL80211_BSS_STATUS: status, if this BSS is "used" - * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms - * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information - *	elements from a Beacon frame (bin); not present if no Beacon frame has - *	yet been received - * @__NL80211_BSS_AFTER_LAST: internal - * @NL80211_BSS_MAX: highest BSS attribute - */ -enum nl80211_bss { -	__NL80211_BSS_INVALID, -	NL80211_BSS_BSSID, -	NL80211_BSS_FREQUENCY, -	NL80211_BSS_TSF, -	NL80211_BSS_BEACON_INTERVAL, -	NL80211_BSS_CAPABILITY, -	NL80211_BSS_INFORMATION_ELEMENTS, -	NL80211_BSS_SIGNAL_MBM, -	NL80211_BSS_SIGNAL_UNSPEC, -	NL80211_BSS_STATUS, -	NL80211_BSS_SEEN_MS_AGO, -	NL80211_BSS_BEACON_IES, - -	/* keep last */ -	__NL80211_BSS_AFTER_LAST, -	NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1 -}; - -/** - * enum nl80211_bss_status - BSS "status" - * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. - * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. - * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. - * - * The BSS status is a BSS attribute in scan dumps, which - * indicates the status the interface has wrt. this BSS. - */ -enum nl80211_bss_status { -	NL80211_BSS_STATUS_AUTHENTICATED, -	NL80211_BSS_STATUS_ASSOCIATED, -	NL80211_BSS_STATUS_IBSS_JOINED, -}; - -/** - * enum nl80211_auth_type - AuthenticationType - * - * @NL80211_AUTHTYPE_OPEN_SYSTEM: Open System authentication - * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) - * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) - * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) - * @__NL80211_AUTHTYPE_NUM: internal - * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm - * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by - *	trying multiple times); this is invalid in netlink -- leave out - *	the attribute for this on CONNECT commands. - */ -enum nl80211_auth_type { -	NL80211_AUTHTYPE_OPEN_SYSTEM, -	NL80211_AUTHTYPE_SHARED_KEY, -	NL80211_AUTHTYPE_FT, -	NL80211_AUTHTYPE_NETWORK_EAP, - -	/* keep last */ -	__NL80211_AUTHTYPE_NUM, -	NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1, -	NL80211_AUTHTYPE_AUTOMATIC -}; - -/** - * enum nl80211_key_type - Key Type - * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key - * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key - * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS) - * @NUM_NL80211_KEYTYPES: number of defined key types - */ -enum nl80211_key_type { -	NL80211_KEYTYPE_GROUP, -	NL80211_KEYTYPE_PAIRWISE, -	NL80211_KEYTYPE_PEERKEY, - -	NUM_NL80211_KEYTYPES -}; - -/** - * enum nl80211_mfp - Management frame protection state - * @NL80211_MFP_NO: Management frame protection not used - * @NL80211_MFP_REQUIRED: Management frame protection required - */ -enum nl80211_mfp { -	NL80211_MFP_NO, -	NL80211_MFP_REQUIRED, -}; - -enum nl80211_wpa_versions { -	NL80211_WPA_VERSION_1 = 1 << 0, -	NL80211_WPA_VERSION_2 = 1 << 1, -}; - -/** - * enum nl80211_key_default_types - key default types - * @__NL80211_KEY_DEFAULT_TYPE_INVALID: invalid - * @NL80211_KEY_DEFAULT_TYPE_UNICAST: key should be used as default - *	unicast key - * @NL80211_KEY_DEFAULT_TYPE_MULTICAST: key should be used as default - *	multicast key - * @NUM_NL80211_KEY_DEFAULT_TYPES: number of default types - */ -enum nl80211_key_default_types { -	__NL80211_KEY_DEFAULT_TYPE_INVALID, -	NL80211_KEY_DEFAULT_TYPE_UNICAST, -	NL80211_KEY_DEFAULT_TYPE_MULTICAST, - -	NUM_NL80211_KEY_DEFAULT_TYPES -}; - -/** - * enum nl80211_key_attributes - key attributes - * @__NL80211_KEY_INVALID: invalid - * @NL80211_KEY_DATA: (temporal) key data; for TKIP this consists of - *	16 bytes encryption key followed by 8 bytes each for TX and RX MIC - *	keys - * @NL80211_KEY_IDX: key ID (u8, 0-3) - * @NL80211_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 - *	section 7.3.2.25.1, e.g. 0x000FAC04) - * @NL80211_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and - *	CCMP keys, each six bytes in little endian - * @NL80211_KEY_DEFAULT: flag indicating default key - * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key - * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not - *	specified the default depends on whether a MAC address was - *	given with the command using the key or not (u32) - * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags - *	attributes, specifying what a key should be set as default as. - *	See &enum nl80211_key_default_types. - * @__NL80211_KEY_AFTER_LAST: internal - * @NL80211_KEY_MAX: highest key attribute - */ -enum nl80211_key_attributes { -	__NL80211_KEY_INVALID, -	NL80211_KEY_DATA, -	NL80211_KEY_IDX, -	NL80211_KEY_CIPHER, -	NL80211_KEY_SEQ, -	NL80211_KEY_DEFAULT, -	NL80211_KEY_DEFAULT_MGMT, -	NL80211_KEY_TYPE, -	NL80211_KEY_DEFAULT_TYPES, - -	/* keep last */ -	__NL80211_KEY_AFTER_LAST, -	NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 -}; - -/** - * enum nl80211_tx_rate_attributes - TX rate set attributes - * @__NL80211_TXRATE_INVALID: invalid - * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection - *	in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with - *	1 = 500 kbps) but without the IE length restriction (at most - *	%NL80211_MAX_SUPP_RATES in a single array). - * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection - *	in an array of MCS numbers. - * @__NL80211_TXRATE_AFTER_LAST: internal - * @NL80211_TXRATE_MAX: highest TX rate attribute - */ -enum nl80211_tx_rate_attributes { -	__NL80211_TXRATE_INVALID, -	NL80211_TXRATE_LEGACY, -	NL80211_TXRATE_MCS, - -	/* keep last */ -	__NL80211_TXRATE_AFTER_LAST, -	NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 -}; - -/** - * enum nl80211_band - Frequency band - * @NL80211_BAND_2GHZ: 2.4 GHz ISM band - * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz) - * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz) - */ -enum nl80211_band { -	NL80211_BAND_2GHZ, -	NL80211_BAND_5GHZ, -	NL80211_BAND_60GHZ, -}; - -/** - * enum nl80211_ps_state - powersave state - * @NL80211_PS_DISABLED: powersave is disabled - * @NL80211_PS_ENABLED: powersave is enabled - */ -enum nl80211_ps_state { -	NL80211_PS_DISABLED, -	NL80211_PS_ENABLED, -}; - -/** - * enum nl80211_attr_cqm - connection quality monitor attributes - * @__NL80211_ATTR_CQM_INVALID: invalid - * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm. This value specifies - *	the threshold for the RSSI level at which an event will be sent. Zero - *	to disable. - * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm. This value specifies - *	the minimum amount the RSSI level must change after an event before a - *	new event may be issued (to reduce effects of RSSI oscillation). - * @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT: RSSI threshold event - * @NL80211_ATTR_CQM_PKT_LOSS_EVENT: a u32 value indicating that this many - *	consecutive packets were not acknowledged by the peer - * @NL80211_ATTR_CQM_TXE_RATE: TX error rate in %. Minimum % of TX failures - *	during the given %NL80211_ATTR_CQM_TXE_INTVL before an - *	%NL80211_CMD_NOTIFY_CQM with reported %NL80211_ATTR_CQM_TXE_RATE and - *	%NL80211_ATTR_CQM_TXE_PKTS is generated. - * @NL80211_ATTR_CQM_TXE_PKTS: number of attempted packets in a given - *	%NL80211_ATTR_CQM_TXE_INTVL before %NL80211_ATTR_CQM_TXE_RATE is - *	checked. - * @NL80211_ATTR_CQM_TXE_INTVL: interval in seconds. Specifies the periodic - *	interval in which %NL80211_ATTR_CQM_TXE_PKTS and - *	%NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an - *	%NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. - * @__NL80211_ATTR_CQM_AFTER_LAST: internal - * @NL80211_ATTR_CQM_MAX: highest key attribute - */ -enum nl80211_attr_cqm { -	__NL80211_ATTR_CQM_INVALID, -	NL80211_ATTR_CQM_RSSI_THOLD, -	NL80211_ATTR_CQM_RSSI_HYST, -	NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT, -	NL80211_ATTR_CQM_PKT_LOSS_EVENT, -	NL80211_ATTR_CQM_TXE_RATE, -	NL80211_ATTR_CQM_TXE_PKTS, -	NL80211_ATTR_CQM_TXE_INTVL, - -	/* keep last */ -	__NL80211_ATTR_CQM_AFTER_LAST, -	NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1 -}; - -/** - * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event - * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW: The RSSI level is lower than the - *      configured threshold - * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the - *      configured threshold - * @NL80211_CQM_RSSI_BEACON_LOSS_EVENT: The device experienced beacon loss. - *	(Note that deauth/disassoc will still follow if the AP is not - *	available. This event might get used as roaming event, etc.) - */ -enum nl80211_cqm_rssi_threshold_event { -	NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW, -	NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH, -	NL80211_CQM_RSSI_BEACON_LOSS_EVENT, -}; - - -/** - * enum nl80211_tx_power_setting - TX power adjustment - * @NL80211_TX_POWER_AUTOMATIC: automatically determine transmit power - * @NL80211_TX_POWER_LIMITED: limit TX power by the mBm parameter - * @NL80211_TX_POWER_FIXED: fix TX power to the mBm parameter - */ -enum nl80211_tx_power_setting { -	NL80211_TX_POWER_AUTOMATIC, -	NL80211_TX_POWER_LIMITED, -	NL80211_TX_POWER_FIXED, -}; - -/** - * enum nl80211_wowlan_packet_pattern_attr - WoWLAN packet pattern attribute - * @__NL80211_WOWLAN_PKTPAT_INVALID: invalid number for nested attribute - * @NL80211_WOWLAN_PKTPAT_PATTERN: the pattern, values where the mask has - *	a zero bit are ignored - * @NL80211_WOWLAN_PKTPAT_MASK: pattern mask, must be long enough to have - *	a bit for each byte in the pattern. The lowest-order bit corresponds - *	to the first byte of the pattern, but the bytes of the pattern are - *	in a little-endian-like format, i.e. the 9th byte of the pattern - *	corresponds to the lowest-order bit in the second byte of the mask. - *	For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where - *	xx indicates "don't care") would be represented by a pattern of - *	twelve zero bytes, and a mask of "0xed,0x07". - *	Note that the pattern matching is done as though frames were not - *	802.11 frames but 802.3 frames, i.e. the frame is fully unpacked - *	first (including SNAP header unpacking) and then matched. - * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes - * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number - */ -enum nl80211_wowlan_packet_pattern_attr { -	__NL80211_WOWLAN_PKTPAT_INVALID, -	NL80211_WOWLAN_PKTPAT_MASK, -	NL80211_WOWLAN_PKTPAT_PATTERN, - -	NUM_NL80211_WOWLAN_PKTPAT, -	MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1, -}; - -/** - * struct nl80211_wowlan_pattern_support - pattern support information - * @max_patterns: maximum number of patterns supported - * @min_pattern_len: minimum length of each pattern - * @max_pattern_len: maximum length of each pattern - * - * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when - * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the - * capability information given by the kernel to userspace. - */ -struct nl80211_wowlan_pattern_support { -	__u32 max_patterns; -	__u32 min_pattern_len; -	__u32 max_pattern_len; -} __attribute__((packed)); - -/** - * enum nl80211_wowlan_triggers - WoWLAN trigger definitions - * @__NL80211_WOWLAN_TRIG_INVALID: invalid number for nested attributes - * @NL80211_WOWLAN_TRIG_ANY: wake up on any activity, do not really put - *	the chip into a special state -- works best with chips that have - *	support for low-power operation already (flag) - * @NL80211_WOWLAN_TRIG_DISCONNECT: wake up on disconnect, the way disconnect - *	is detected is implementation-specific (flag) - * @NL80211_WOWLAN_TRIG_MAGIC_PKT: wake up on magic packet (6x 0xff, followed - *	by 16 repetitions of MAC addr, anywhere in payload) (flag) - * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns - *	which are passed in an array of nested attributes, each nested attribute - *	defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern. - *	Each pattern defines a wakeup packet. The matching is done on the MSDU, - *	i.e. as though the packet was an 802.3 packet, so the pattern matching - *	is done after the packet is converted to the MSDU. - * - *	In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute - *	carrying a &struct nl80211_wowlan_pattern_support. - * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be - *	used when setting, used only to indicate that GTK rekeying is supported - *	by the device (flag) - * @NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE: wake up on GTK rekey failure (if - *	done by the device) (flag) - * @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST: wake up on EAP Identity Request - *	packet (flag) - * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) - * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released - *	(on devices that have rfkill in the device) (flag) - * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers - * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number - */ -enum nl80211_wowlan_triggers { -	__NL80211_WOWLAN_TRIG_INVALID, -	NL80211_WOWLAN_TRIG_ANY, -	NL80211_WOWLAN_TRIG_DISCONNECT, -	NL80211_WOWLAN_TRIG_MAGIC_PKT, -	NL80211_WOWLAN_TRIG_PKT_PATTERN, -	NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED, -	NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE, -	NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, -	NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, -	NL80211_WOWLAN_TRIG_RFKILL_RELEASE, - -	/* keep last */ -	NUM_NL80211_WOWLAN_TRIG, -	MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1 -}; - -/** - * enum nl80211_iface_limit_attrs - limit attributes - * @NL80211_IFACE_LIMIT_UNSPEC: (reserved) - * @NL80211_IFACE_LIMIT_MAX: maximum number of interfaces that - *	can be chosen from this set of interface types (u32) - * @NL80211_IFACE_LIMIT_TYPES: nested attribute containing a - *	flag attribute for each interface type in this set - * @NUM_NL80211_IFACE_LIMIT: number of attributes - * @MAX_NL80211_IFACE_LIMIT: highest attribute number - */ -enum nl80211_iface_limit_attrs { -	NL80211_IFACE_LIMIT_UNSPEC, -	NL80211_IFACE_LIMIT_MAX, -	NL80211_IFACE_LIMIT_TYPES, - -	/* keep last */ -	NUM_NL80211_IFACE_LIMIT, -	MAX_NL80211_IFACE_LIMIT = NUM_NL80211_IFACE_LIMIT - 1 -}; - -/** - * enum nl80211_if_combination_attrs -- interface combination attributes - * - * @NL80211_IFACE_COMB_UNSPEC: (reserved) - * @NL80211_IFACE_COMB_LIMITS: Nested attributes containing the limits - *	for given interface types, see &enum nl80211_iface_limit_attrs. - * @NL80211_IFACE_COMB_MAXNUM: u32 attribute giving the total number of - *	interfaces that can be created in this group. This number doesn't - *	apply to interfaces purely managed in software, which are listed - *	in a separate attribute %NL80211_ATTR_INTERFACES_SOFTWARE. - * @NL80211_IFACE_COMB_STA_AP_BI_MATCH: flag attribute specifying that - *	beacon intervals within this group must be all the same even for - *	infrastructure and AP/GO combinations, i.e. the GO(s) must adopt - *	the infrastructure network's beacon interval. - * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many - *	different channels may be used within this group. - * @NUM_NL80211_IFACE_COMB: number of attributes - * @MAX_NL80211_IFACE_COMB: highest attribute number - * - * Examples: - *	limits = [ #{STA} <= 1, #{AP} <= 1 ], matching BI, channels = 1, max = 2 - *	=> allows an AP and a STA that must match BIs - * - *	numbers = [ #{AP, P2P-GO} <= 8 ], channels = 1, max = 8 - *	=> allows 8 of AP/GO - * - *	numbers = [ #{STA} <= 2 ], channels = 2, max = 2 - *	=> allows two STAs on different channels - * - *	numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4 - *	=> allows a STA plus three P2P interfaces - * - * The list of these four possiblities could completely be contained - * within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate - * that any of these groups must match. - * - * "Combinations" of just a single interface will not be listed here, - * a single interface of any valid interface type is assumed to always - * be possible by itself. This means that implicitly, for each valid - * interface type, the following group always exists: - *	numbers = [ #{<type>} <= 1 ], channels = 1, max = 1 - */ -enum nl80211_if_combination_attrs { -	NL80211_IFACE_COMB_UNSPEC, -	NL80211_IFACE_COMB_LIMITS, -	NL80211_IFACE_COMB_MAXNUM, -	NL80211_IFACE_COMB_STA_AP_BI_MATCH, -	NL80211_IFACE_COMB_NUM_CHANNELS, - -	/* keep last */ -	NUM_NL80211_IFACE_COMB, -	MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1 -}; - - -/** - * enum nl80211_plink_state - state of a mesh peer link finite state machine - * - * @NL80211_PLINK_LISTEN: initial state, considered the implicit - *	state of non existant mesh peer links - * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to - *	this mesh peer - * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received - *	from this mesh peer - * @NL80211_PLINK_CNF_RCVD: mesh plink confirm frame has been - *	received from this mesh peer - * @NL80211_PLINK_ESTAB: mesh peer link is established - * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled - * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh - *	plink are discarded - * @NUM_NL80211_PLINK_STATES: number of peer link states - * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states - */ -enum nl80211_plink_state { -	NL80211_PLINK_LISTEN, -	NL80211_PLINK_OPN_SNT, -	NL80211_PLINK_OPN_RCVD, -	NL80211_PLINK_CNF_RCVD, -	NL80211_PLINK_ESTAB, -	NL80211_PLINK_HOLDING, -	NL80211_PLINK_BLOCKED, - -	/* keep last */ -	NUM_NL80211_PLINK_STATES, -	MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1 -}; - -#define NL80211_KCK_LEN			16 -#define NL80211_KEK_LEN			16 -#define NL80211_REPLAY_CTR_LEN		8 - -/** - * enum nl80211_rekey_data - attributes for GTK rekey offload - * @__NL80211_REKEY_DATA_INVALID: invalid number for nested attributes - * @NL80211_REKEY_DATA_KEK: key encryption key (binary) - * @NL80211_REKEY_DATA_KCK: key confirmation key (binary) - * @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary) - * @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal) - * @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal) - */ -enum nl80211_rekey_data { -	__NL80211_REKEY_DATA_INVALID, -	NL80211_REKEY_DATA_KEK, -	NL80211_REKEY_DATA_KCK, -	NL80211_REKEY_DATA_REPLAY_CTR, - -	/* keep last */ -	NUM_NL80211_REKEY_DATA, -	MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1 -}; - -/** - * enum nl80211_hidden_ssid - values for %NL80211_ATTR_HIDDEN_SSID - * @NL80211_HIDDEN_SSID_NOT_IN_USE: do not hide SSID (i.e., broadcast it in - *	Beacon frames) - * @NL80211_HIDDEN_SSID_ZERO_LEN: hide SSID by using zero-length SSID element - *	in Beacon frames - * @NL80211_HIDDEN_SSID_ZERO_CONTENTS: hide SSID by using correct length of SSID - *	element in Beacon frames but zero out each byte in the SSID - */ -enum nl80211_hidden_ssid { -	NL80211_HIDDEN_SSID_NOT_IN_USE, -	NL80211_HIDDEN_SSID_ZERO_LEN, -	NL80211_HIDDEN_SSID_ZERO_CONTENTS -}; - -/** - * enum nl80211_sta_wme_attr - station WME attributes - * @__NL80211_STA_WME_INVALID: invalid number for nested attribute - * @NL80211_STA_WME_UAPSD_QUEUES: bitmap of uapsd queues. the format - *	is the same as the AC bitmap in the QoS info field. - * @NL80211_STA_WME_MAX_SP: max service period. the format is the same - *	as the MAX_SP field in the QoS info field (but already shifted down). - * @__NL80211_STA_WME_AFTER_LAST: internal - * @NL80211_STA_WME_MAX: highest station WME attribute - */ -enum nl80211_sta_wme_attr { -	__NL80211_STA_WME_INVALID, -	NL80211_STA_WME_UAPSD_QUEUES, -	NL80211_STA_WME_MAX_SP, - -	/* keep last */ -	__NL80211_STA_WME_AFTER_LAST, -	NL80211_STA_WME_MAX = __NL80211_STA_WME_AFTER_LAST - 1 -}; - -/** - * enum nl80211_pmksa_candidate_attr - attributes for PMKSA caching candidates - * @__NL80211_PMKSA_CANDIDATE_INVALID: invalid number for nested attributes - * @NL80211_PMKSA_CANDIDATE_INDEX: candidate index (u32; the smaller, the higher - *	priority) - * @NL80211_PMKSA_CANDIDATE_BSSID: candidate BSSID (6 octets) - * @NL80211_PMKSA_CANDIDATE_PREAUTH: RSN pre-authentication supported (flag) - * @NUM_NL80211_PMKSA_CANDIDATE: number of PMKSA caching candidate attributes - *	(internal) - * @MAX_NL80211_PMKSA_CANDIDATE: highest PMKSA caching candidate attribute - *	(internal) - */ -enum nl80211_pmksa_candidate_attr { -	__NL80211_PMKSA_CANDIDATE_INVALID, -	NL80211_PMKSA_CANDIDATE_INDEX, -	NL80211_PMKSA_CANDIDATE_BSSID, -	NL80211_PMKSA_CANDIDATE_PREAUTH, - -	/* keep last */ -	NUM_NL80211_PMKSA_CANDIDATE, -	MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1 -}; - -/** - * enum nl80211_tdls_operation - values for %NL80211_ATTR_TDLS_OPERATION - * @NL80211_TDLS_DISCOVERY_REQ: Send a TDLS discovery request - * @NL80211_TDLS_SETUP: Setup TDLS link - * @NL80211_TDLS_TEARDOWN: Teardown a TDLS link which is already established - * @NL80211_TDLS_ENABLE_LINK: Enable TDLS link - * @NL80211_TDLS_DISABLE_LINK: Disable TDLS link - */ -enum nl80211_tdls_operation { -	NL80211_TDLS_DISCOVERY_REQ, -	NL80211_TDLS_SETUP, -	NL80211_TDLS_TEARDOWN, -	NL80211_TDLS_ENABLE_LINK, -	NL80211_TDLS_DISABLE_LINK, -}; - -/* - * enum nl80211_ap_sme_features - device-integrated AP features - * Reserved for future use, no bits are defined in - * NL80211_ATTR_DEVICE_AP_SME yet. -enum nl80211_ap_sme_features { -}; - */ - -/** - * enum nl80211_feature_flags - device/driver features - * @NL80211_FEATURE_SK_TX_STATUS: This driver supports reflecting back - *	TX status to the socket error queue when requested with the - *	socket option. - * @NL80211_FEATURE_HT_IBSS: This driver supports IBSS with HT datarates. - * @NL80211_FEATURE_INACTIVITY_TIMER: This driver takes care of freeing up - *	the connected inactive stations in AP mode. - * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested - *	to work properly to suppport receiving regulatory hints from - *	cellular base stations. - * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: If this is set, an active - *	P2P Device (%NL80211_IFTYPE_P2P_DEVICE) requires its own channel - *	in the interface combinations, even when it's only used for scan - *	and remain-on-channel. This could be due to, for example, the - *	remain-on-channel implementation requiring a channel context. - */ -enum nl80211_feature_flags { -	NL80211_FEATURE_SK_TX_STATUS			= 1 << 0, -	NL80211_FEATURE_HT_IBSS				= 1 << 1, -	NL80211_FEATURE_INACTIVITY_TIMER		= 1 << 2, -	NL80211_FEATURE_CELL_BASE_REG_HINTS		= 1 << 3, -	NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL	= 1 << 4, -}; - -/** - * enum nl80211_probe_resp_offload_support_attr - optional supported - *	protocols for probe-response offloading by the driver/FW. - *	To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute. - *	Each enum value represents a bit in the bitmap of supported - *	protocols. Typically a subset of probe-requests belonging to a - *	supported protocol will be excluded from offload and uploaded - *	to the host. - * - * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS: Support for WPS ver. 1 - * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2: Support for WPS ver. 2 - * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P: Support for P2P - * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U: Support for 802.11u - */ -enum nl80211_probe_resp_offload_support_attr { -	NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS =	1<<0, -	NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 =	1<<1, -	NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P =	1<<2, -	NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U =	1<<3, -}; - -/** - * enum nl80211_connect_failed_reason - connection request failed reasons - * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be - *	handled by the AP is reached. - * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Client's MAC is in the AP's blocklist. - */ -enum nl80211_connect_failed_reason { -	NL80211_CONN_FAIL_MAX_CLIENTS, -	NL80211_CONN_FAIL_BLOCKED_CLIENT, -}; - -#endif /* __LINUX_NL80211_H */ diff --git a/include/linux/nubus.h b/include/linux/nubus.h index e137b3c486a..a8696bbdfbc 100644 --- a/include/linux/nubus.h +++ b/include/linux/nubus.h @@ -8,236 +8,12 @@    Some of the constants in here are from the corresponding    NetBSD/OpenBSD header file, by Allen Briggs.  We figured out the    rest of them on our own. */ -  #ifndef LINUX_NUBUS_H  #define LINUX_NUBUS_H -#include <linux/types.h> -#ifdef __KERNEL__  #include <asm/nubus.h> -#endif - -enum nubus_category { -	NUBUS_CAT_BOARD          = 0x0001, -	NUBUS_CAT_DISPLAY        = 0x0003, -	NUBUS_CAT_NETWORK        = 0x0004, -	NUBUS_CAT_COMMUNICATIONS = 0x0006, -	NUBUS_CAT_FONT           = 0x0009, -	NUBUS_CAT_CPU            = 0x000A, -	/* For lack of a better name */ -	NUBUS_CAT_DUODOCK        = 0x0020 -}; - -enum nubus_type_network { -	NUBUS_TYPE_ETHERNET      = 0x0001, -	NUBUS_TYPE_RS232         = 0x0002 -}; - -enum nubus_type_display { -	NUBUS_TYPE_VIDEO         = 0x0001 -}; - -enum nubus_type_cpu { -	NUBUS_TYPE_68020         = 0x0003, -	NUBUS_TYPE_68030         = 0x0004, -	NUBUS_TYPE_68040         = 0x0005 -}; - -/* Known <Cat,Type,SW,HW> tuples: (according to TattleTech and Slots) - *  68030 motherboards: <10,4,0,24> - *  68040 motherboards: <10,5,0,24> - *  DuoDock Plus: <32,1,1,2> - * - *  Toby Frame Buffer card: <3,1,1,1> - *  RBV built-in video (IIci): <3,1,1,24> - *  Valkyrie built-in video (Q630): <3,1,1,46> - *  Macintosh Display Card: <3,1,1,25> - *  Sonora built-in video (P460): <3,1,1,34> - *  Jet framebuffer (DuoDock Plus): <3,1,1,41> - * - *  SONIC comm-slot/on-board and DuoDock Ethernet: <4,1,1,272> - *  SONIC LC-PDS Ethernet (Dayna, but like Apple 16-bit, sort of): <4,1,1,271> - *  Apple SONIC LC-PDS Ethernet ("Apple Ethernet LC Twisted-Pair Card"): <4,1,0,281> - *  Sonic Systems Ethernet A-Series Card: <4,1,268,256> - *  Asante MacCon NuBus-A: <4,1,260,256> (alpha-1.0,1.1 revision) - *   ROM on the above card: <2,1,0,0> - *  Cabletron ethernet card: <4,1,1,265> - *  Farallon ethernet card: <4,1,268,256> (identical to Sonic Systems card) - *  Kinetics EtherPort IIN: <4,1,259,262> - *  API Engineering EtherRun_LCa PDS enet card: <4,1,282,256> - * - *  Add your devices to the list!  You can obtain the "Slots" utility - *  from Apple's FTP site at: - *  ftp://dev.apple.com/devworld/Tool_Chest/Devices_-_Hardware/NuBus_Slot_Manager/ - * - *  Alternately, TattleTech can be found at any Info-Mac mirror site.   - *  or from its distribution site: ftp://ftp.decismkr.com/dms - */ - -/* DrSW: Uniquely identifies the software interface to a board.  This -   is usually the one you want to look at when writing a driver.  It's -   not as useful as you think, though, because as we should know by -   now (duh), "Apple Compatible" can mean a lot of things... */ - -/* Add known DrSW values here */ -enum nubus_drsw { -	/* NUBUS_CAT_DISPLAY */ -	NUBUS_DRSW_APPLE        = 0x0001, -	NUBUS_DRSW_APPLE_HIRES  = 0x0013, /* MacII HiRes card driver */ -	 -	/* NUBUS_CAT_NETWORK */ -	NUBUS_DRSW_3COM         = 0x0000, -	NUBUS_DRSW_CABLETRON    = 0x0001, -	NUBUS_DRSW_SONIC_LC     = 0x0001, -	NUBUS_DRSW_KINETICS     = 0x0103, -	NUBUS_DRSW_ASANTE       = 0x0104, -	NUBUS_DRSW_TECHWORKS    = 0x0109, -	NUBUS_DRSW_DAYNA        = 0x010b, -	NUBUS_DRSW_FARALLON     = 0x010c, -	NUBUS_DRSW_APPLE_SN     = 0x010f, -	NUBUS_DRSW_DAYNA2       = 0x0115, -	NUBUS_DRSW_FOCUS        = 0x011a, -	NUBUS_DRSW_ASANTE_CS    = 0x011d, /* use asante SMC9194 driver */ -	NUBUS_DRSW_DAYNA_LC     = 0x011e, - -	/* NUBUS_CAT_CPU */ -	NUBUS_DRSW_NONE         = 0x0000, -}; - -/* DrHW: Uniquely identifies the hardware interface to a board (or at -   least, it should...  some video cards are known to incorrectly -   identify themselves as Toby cards) */ - -/* Add known DrHW values here */ -enum nubus_drhw { -	/* NUBUS_CAT_DISPLAY */ -	NUBUS_DRHW_APPLE_TFB      = 0x0001, /* Toby frame buffer card */ -	NUBUS_DRHW_APPLE_WVC      = 0x0006, /* Apple Workstation Video Card */ -	NUBUS_DRHW_SIGMA_CLRMAX   = 0x0007, /* Sigma Design ColorMax */ -	NUBUS_DRHW_APPLE_SE30     = 0x0009, /* Apple SE/30 video */ -	NUBUS_DRHW_APPLE_HRVC     = 0x0013, /* Mac II High-Res Video Card */ -	NUBUS_DRHW_APPLE_PVC      = 0x0017, /* Mac II Portrait Video Card */ -	NUBUS_DRHW_APPLE_RBV1     = 0x0018, /* IIci RBV video */ -	NUBUS_DRHW_APPLE_MDC      = 0x0019, /* Macintosh Display Card */ -	NUBUS_DRHW_APPLE_SONORA   = 0x0022, /* Sonora built-in video */ -	NUBUS_DRHW_APPLE_24AC     = 0x002b, /* Mac 24AC Video Card */ -	NUBUS_DRHW_APPLE_VALKYRIE = 0x002e, -	NUBUS_DRHW_APPLE_JET      = 0x0029, /* Jet framebuffer (DuoDock) */ -	NUBUS_DRHW_SMAC_GFX       = 0x0105, /* SuperMac GFX */ -	NUBUS_DRHW_RASTER_CB264   = 0x013B, /* RasterOps ColorBoard 264 */ -	NUBUS_DRHW_MICRON_XCEED   = 0x0146, /* Micron Exceed color */ -	NUBUS_DRHW_RDIUS_GSC      = 0x0153, /* Radius GS/C */ -	NUBUS_DRHW_SMAC_SPEC8     = 0x017B, /* SuperMac Spectrum/8 */ -	NUBUS_DRHW_SMAC_SPEC24    = 0x017C, /* SuperMac Spectrum/24 */ -	NUBUS_DRHW_RASTER_CB364   = 0x026F, /* RasterOps ColorBoard 364 */ -	NUBUS_DRHW_RDIUS_DCGX     = 0x027C, /* Radius DirectColor/GX */ -	NUBUS_DRHW_RDIUS_PC8      = 0x0291, /* Radius PrecisionColor 8 */ -	NUBUS_DRHW_LAPIS_PCS8     = 0x0292, /* Lapis ProColorServer 8 */ -	NUBUS_DRHW_RASTER_24XLI   = 0x02A0, /* RasterOps 8/24 XLi */ -	NUBUS_DRHW_RASTER_PBPGT   = 0x02A5, /* RasterOps PaintBoard Prism GT */ -	NUBUS_DRHW_EMACH_FSX      = 0x02AE, /* E-Machines Futura SX */ -	NUBUS_DRHW_RASTER_24XLTV  = 0x02B7, /* RasterOps 24XLTV */ -	NUBUS_DRHW_SMAC_THUND24   = 0x02CB, /* SuperMac Thunder/24 */ -	NUBUS_DRHW_SMAC_THUNDLGHT = 0x03D9, /* SuperMac ThunderLight */ -	NUBUS_DRHW_RDIUS_PC24XP   = 0x0406, /* Radius PrecisionColor 24Xp */ -	NUBUS_DRHW_RDIUS_PC24X    = 0x040A, /* Radius PrecisionColor 24X */ -	NUBUS_DRHW_RDIUS_PC8XJ    = 0x040B, /* Radius PrecisionColor 8XJ */ -	 -	/* NUBUS_CAT_NETWORK */ -	NUBUS_DRHW_INTERLAN       = 0x0100, -	NUBUS_DRHW_SMC9194        = 0x0101, -	NUBUS_DRHW_KINETICS       = 0x0106, -	NUBUS_DRHW_CABLETRON      = 0x0109, -	NUBUS_DRHW_ASANTE_LC      = 0x010f, -	NUBUS_DRHW_SONIC          = 0x0110, -	NUBUS_DRHW_TECHWORKS      = 0x0112, -	NUBUS_DRHW_APPLE_SONIC_NB = 0x0118, -	NUBUS_DRHW_APPLE_SONIC_LC = 0x0119, -	NUBUS_DRHW_FOCUS          = 0x011c, -	NUBUS_DRHW_SONNET         = 0x011d, -}; +#include <uapi/linux/nubus.h> -/* Resource IDs: These are the identifiers for the various weird and -   wonderful tidbits of information that may or may not reside in the -   NuBus ROM directory. */ -enum nubus_res_id { -	NUBUS_RESID_TYPE         = 0x0001, -	NUBUS_RESID_NAME         = 0x0002, -	NUBUS_RESID_ICON         = 0x0003, -	NUBUS_RESID_DRVRDIR      = 0x0004, -	NUBUS_RESID_LOADREC      = 0x0005, -	NUBUS_RESID_BOOTREC      = 0x0006, -	NUBUS_RESID_FLAGS        = 0x0007, -	NUBUS_RESID_HWDEVID      = 0x0008, -	NUBUS_RESID_MINOR_BASEOS = 0x000a, -	NUBUS_RESID_MINOR_LENGTH = 0x000b, -	NUBUS_RESID_MAJOR_BASEOS = 0x000c, -	NUBUS_RESID_MAJOR_LENGTH = 0x000d, -	NUBUS_RESID_CICN         = 0x000f, -	NUBUS_RESID_ICL8         = 0x0010, -	NUBUS_RESID_ICL4         = 0x0011, -}; - -/* Category-specific resources. */ -enum nubus_board_res_id { -	NUBUS_RESID_BOARDID      = 0x0020, -	NUBUS_RESID_PRAMINITDATA = 0x0021, -	NUBUS_RESID_PRIMARYINIT  = 0x0022, -	NUBUS_RESID_TIMEOUTCONST = 0x0023, -	NUBUS_RESID_VENDORINFO   = 0x0024, -	NUBUS_RESID_BOARDFLAGS   = 0x0025, -	NUBUS_RESID_SECONDINIT   = 0x0026, - -	/* Not sure why Apple put these next two in here */ -	NUBUS_RESID_VIDNAMES     = 0x0041, -	NUBUS_RESID_VIDMODES     = 0x007e -}; - -/* Fields within the vendor info directory */ -enum nubus_vendor_res_id { -	NUBUS_RESID_VEND_ID     = 0x0001, -	NUBUS_RESID_VEND_SERIAL = 0x0002, -	NUBUS_RESID_VEND_REV    = 0x0003, -	NUBUS_RESID_VEND_PART   = 0x0004, -	NUBUS_RESID_VEND_DATE   = 0x0005 -}; - -enum nubus_net_res_id { -	NUBUS_RESID_MAC_ADDRESS  = 0x0080 -}; - -enum nubus_cpu_res_id { -	NUBUS_RESID_MEMINFO      = 0x0081, -	NUBUS_RESID_ROMINFO      = 0x0082 -}; - -enum nubus_display_res_id { -	NUBUS_RESID_GAMMADIR    = 0x0040, -	NUBUS_RESID_FIRSTMODE   = 0x0080, -	NUBUS_RESID_SECONDMODE  = 0x0081, -	NUBUS_RESID_THIRDMODE   = 0x0082, -	NUBUS_RESID_FOURTHMODE  = 0x0083, -	NUBUS_RESID_FIFTHMODE   = 0x0084, -	NUBUS_RESID_SIXTHMODE   = 0x0085 -}; - -struct nubus_dir -{ -	unsigned char *base; -	unsigned char *ptr; -	int done; -	int mask; -}; - -struct nubus_dirent -{ -	unsigned char *base; -	unsigned char type; -	__u32 data;	/* Actually 24bits used */ -	int mask; -}; - -#ifdef __KERNEL__  struct nubus_board {  	struct nubus_board* next;  	struct nubus_dev* first_dev; @@ -352,12 +128,4 @@ void nubus_get_rsrc_mem(void* dest,  void nubus_get_rsrc_str(void* dest,  			const struct nubus_dirent *dirent,  			int maxlen); -#endif /* __KERNEL__ */ - -/* We'd like to get rid of this eventually.  Only daynaport.c uses it now. */ -static inline void *nubus_slot_addr(int slot) -{ -	return (void *)(0xF0000000|(slot<<24)); -} -  #endif /* LINUX_NUBUS_H */ diff --git a/include/linux/nvram.h b/include/linux/nvram.h index 9189829c131..cf0ff555a6a 100644 --- a/include/linux/nvram.h +++ b/include/linux/nvram.h @@ -1,18 +1,8 @@  #ifndef _LINUX_NVRAM_H  #define _LINUX_NVRAM_H -#include <linux/ioctl.h> +#include <uapi/linux/nvram.h> -/* /dev/nvram ioctls */ -#define NVRAM_INIT	_IO('p', 0x40) /* initialize NVRAM and set checksum */ -#define NVRAM_SETCKS	_IO('p', 0x41) /* recalculate checksum */ - -/* for all current systems, this is where NVRAM starts */ -#define NVRAM_FIRST_BYTE    14 -/* all these functions expect an NVRAM offset, not an absolute */ -#define NVRAM_OFFSET(x)   ((x)-NVRAM_FIRST_BYTE) - -#ifdef __KERNEL__  /* __foo is foo without grabbing the rtc_lock - get it yourself */  extern unsigned char __nvram_read_byte(int i);  extern unsigned char nvram_read_byte(int i); @@ -20,6 +10,4 @@ extern void __nvram_write_byte(unsigned char c, int i);  extern void nvram_write_byte(unsigned char c, int i);  extern int __nvram_check_checksum(void);  extern int nvram_check_checksum(void); -#endif -  #endif  /* _LINUX_NVRAM_H */ diff --git a/include/linux/omap3isp.h b/include/linux/omap3isp.h deleted file mode 100644 index c090cf9249b..00000000000 --- a/include/linux/omap3isp.h +++ /dev/null @@ -1,646 +0,0 @@ -/* - * omap3isp.h - * - * TI OMAP3 ISP - User-space API - * - * Copyright (C) 2010 Nokia Corporation - * Copyright (C) 2009 Texas Instruments, Inc. - * - * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com> - *	     Sakari Ailus <sakari.ailus@iki.fi> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - -#ifndef OMAP3_ISP_USER_H -#define OMAP3_ISP_USER_H - -#include <linux/types.h> -#include <linux/videodev2.h> - -/* - * Private IOCTLs - * - * VIDIOC_OMAP3ISP_CCDC_CFG: Set CCDC configuration - * VIDIOC_OMAP3ISP_PRV_CFG: Set preview engine configuration - * VIDIOC_OMAP3ISP_AEWB_CFG: Set AEWB module configuration - * VIDIOC_OMAP3ISP_HIST_CFG: Set histogram module configuration - * VIDIOC_OMAP3ISP_AF_CFG: Set auto-focus module configuration - * VIDIOC_OMAP3ISP_STAT_REQ: Read statistics (AEWB/AF/histogram) data - * VIDIOC_OMAP3ISP_STAT_EN: Enable/disable a statistics module - */ - -#define VIDIOC_OMAP3ISP_CCDC_CFG \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct omap3isp_ccdc_update_config) -#define VIDIOC_OMAP3ISP_PRV_CFG \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct omap3isp_prev_update_config) -#define VIDIOC_OMAP3ISP_AEWB_CFG \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct omap3isp_h3a_aewb_config) -#define VIDIOC_OMAP3ISP_HIST_CFG \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct omap3isp_hist_config) -#define VIDIOC_OMAP3ISP_AF_CFG \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct omap3isp_h3a_af_config) -#define VIDIOC_OMAP3ISP_STAT_REQ \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct omap3isp_stat_data) -#define VIDIOC_OMAP3ISP_STAT_EN \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 7, unsigned long) - -/* - * Events - * - * V4L2_EVENT_OMAP3ISP_AEWB: AEWB statistics data ready - * V4L2_EVENT_OMAP3ISP_AF: AF statistics data ready - * V4L2_EVENT_OMAP3ISP_HIST: Histogram statistics data ready - */ - -#define V4L2_EVENT_OMAP3ISP_CLASS	(V4L2_EVENT_PRIVATE_START | 0x100) -#define V4L2_EVENT_OMAP3ISP_AEWB	(V4L2_EVENT_OMAP3ISP_CLASS | 0x1) -#define V4L2_EVENT_OMAP3ISP_AF		(V4L2_EVENT_OMAP3ISP_CLASS | 0x2) -#define V4L2_EVENT_OMAP3ISP_HIST	(V4L2_EVENT_OMAP3ISP_CLASS | 0x3) - -struct omap3isp_stat_event_status { -	__u32 frame_number; -	__u16 config_counter; -	__u8 buf_err; -}; - -/* AE/AWB related structures and flags*/ - -/* H3A Range Constants */ -#define OMAP3ISP_AEWB_MAX_SATURATION_LIM	1023 -#define OMAP3ISP_AEWB_MIN_WIN_H			2 -#define OMAP3ISP_AEWB_MAX_WIN_H			256 -#define OMAP3ISP_AEWB_MIN_WIN_W			6 -#define OMAP3ISP_AEWB_MAX_WIN_W			256 -#define OMAP3ISP_AEWB_MIN_WINVC			1 -#define OMAP3ISP_AEWB_MIN_WINHC			1 -#define OMAP3ISP_AEWB_MAX_WINVC			128 -#define OMAP3ISP_AEWB_MAX_WINHC			36 -#define OMAP3ISP_AEWB_MAX_WINSTART		4095 -#define OMAP3ISP_AEWB_MIN_SUB_INC		2 -#define OMAP3ISP_AEWB_MAX_SUB_INC		32 -#define OMAP3ISP_AEWB_MAX_BUF_SIZE		83600 - -#define OMAP3ISP_AF_IIRSH_MIN			0 -#define OMAP3ISP_AF_IIRSH_MAX			4095 -#define OMAP3ISP_AF_PAXEL_HORIZONTAL_COUNT_MIN	1 -#define OMAP3ISP_AF_PAXEL_HORIZONTAL_COUNT_MAX	36 -#define OMAP3ISP_AF_PAXEL_VERTICAL_COUNT_MIN	1 -#define OMAP3ISP_AF_PAXEL_VERTICAL_COUNT_MAX	128 -#define OMAP3ISP_AF_PAXEL_INCREMENT_MIN		2 -#define OMAP3ISP_AF_PAXEL_INCREMENT_MAX		32 -#define OMAP3ISP_AF_PAXEL_HEIGHT_MIN		2 -#define OMAP3ISP_AF_PAXEL_HEIGHT_MAX		256 -#define OMAP3ISP_AF_PAXEL_WIDTH_MIN		16 -#define OMAP3ISP_AF_PAXEL_WIDTH_MAX		256 -#define OMAP3ISP_AF_PAXEL_HZSTART_MIN		1 -#define OMAP3ISP_AF_PAXEL_HZSTART_MAX		4095 -#define OMAP3ISP_AF_PAXEL_VTSTART_MIN		0 -#define OMAP3ISP_AF_PAXEL_VTSTART_MAX		4095 -#define OMAP3ISP_AF_THRESHOLD_MAX		255 -#define OMAP3ISP_AF_COEF_MAX			4095 -#define OMAP3ISP_AF_PAXEL_SIZE			48 -#define OMAP3ISP_AF_MAX_BUF_SIZE		221184 - -/** - * struct omap3isp_h3a_aewb_config - AE AWB configuration reset values - * saturation_limit: Saturation limit. - * @win_height: Window Height. Range 2 - 256, even values only. - * @win_width: Window Width. Range 6 - 256, even values only. - * @ver_win_count: Vertical Window Count. Range 1 - 128. - * @hor_win_count: Horizontal Window Count. Range 1 - 36. - * @ver_win_start: Vertical Window Start. Range 0 - 4095. - * @hor_win_start: Horizontal Window Start. Range 0 - 4095. - * @blk_ver_win_start: Black Vertical Windows Start. Range 0 - 4095. - * @blk_win_height: Black Window Height. Range 2 - 256, even values only. - * @subsample_ver_inc: Subsample Vertical points increment Range 2 - 32, even - *                     values only. - * @subsample_hor_inc: Subsample Horizontal points increment Range 2 - 32, even - *                     values only. - * @alaw_enable: AEW ALAW EN flag. - */ -struct omap3isp_h3a_aewb_config { -	/* -	 * Common fields. -	 * They should be the first ones and must be in the same order as in -	 * ispstat_generic_config struct. -	 */ -	__u32 buf_size; -	__u16 config_counter; - -	/* Private fields */ -	__u16 saturation_limit; -	__u16 win_height; -	__u16 win_width; -	__u16 ver_win_count; -	__u16 hor_win_count; -	__u16 ver_win_start; -	__u16 hor_win_start; -	__u16 blk_ver_win_start; -	__u16 blk_win_height; -	__u16 subsample_ver_inc; -	__u16 subsample_hor_inc; -	__u8 alaw_enable; -}; - -/** - * struct omap3isp_stat_data - Statistic data sent to or received from user - * @ts: Timestamp of returned framestats. - * @buf: Pointer to pass to user. - * @frame_number: Frame number of requested stats. - * @cur_frame: Current frame number being processed. - * @config_counter: Number of the configuration associated with the data. - */ -struct omap3isp_stat_data { -	struct timeval ts; -	void __user *buf; -	__u32 buf_size; -	__u16 frame_number; -	__u16 cur_frame; -	__u16 config_counter; -}; - - -/* Histogram related structs */ - -/* Flags for number of bins */ -#define OMAP3ISP_HIST_BINS_32		0 -#define OMAP3ISP_HIST_BINS_64		1 -#define OMAP3ISP_HIST_BINS_128		2 -#define OMAP3ISP_HIST_BINS_256		3 - -/* Number of bins * 4 colors * 4-bytes word */ -#define OMAP3ISP_HIST_MEM_SIZE_BINS(n)	((1 << ((n)+5))*4*4) - -#define OMAP3ISP_HIST_MEM_SIZE		1024 -#define OMAP3ISP_HIST_MIN_REGIONS	1 -#define OMAP3ISP_HIST_MAX_REGIONS	4 -#define OMAP3ISP_HIST_MAX_WB_GAIN	255 -#define OMAP3ISP_HIST_MIN_WB_GAIN	0 -#define OMAP3ISP_HIST_MAX_BIT_WIDTH	14 -#define OMAP3ISP_HIST_MIN_BIT_WIDTH	8 -#define OMAP3ISP_HIST_MAX_WG		4 -#define OMAP3ISP_HIST_MAX_BUF_SIZE	4096 - -/* Source */ -#define OMAP3ISP_HIST_SOURCE_CCDC	0 -#define OMAP3ISP_HIST_SOURCE_MEM	1 - -/* CFA pattern */ -#define OMAP3ISP_HIST_CFA_BAYER		0 -#define OMAP3ISP_HIST_CFA_FOVEONX3	1 - -struct omap3isp_hist_region { -	__u16 h_start; -	__u16 h_end; -	__u16 v_start; -	__u16 v_end; -}; - -struct omap3isp_hist_config { -	/* -	 * Common fields. -	 * They should be the first ones and must be in the same order as in -	 * ispstat_generic_config struct. -	 */ -	__u32 buf_size; -	__u16 config_counter; - -	__u8 num_acc_frames;	/* Num of image frames to be processed and -				   accumulated for each histogram frame */ -	__u16 hist_bins;	/* number of bins: 32, 64, 128, or 256 */ -	__u8 cfa;		/* BAYER or FOVEON X3 */ -	__u8 wg[OMAP3ISP_HIST_MAX_WG];	/* White Balance Gain */ -	__u8 num_regions;	/* number of regions to be configured */ -	struct omap3isp_hist_region region[OMAP3ISP_HIST_MAX_REGIONS]; -}; - -/* Auto Focus related structs */ - -#define OMAP3ISP_AF_NUM_COEF		11 - -enum omap3isp_h3a_af_fvmode { -	OMAP3ISP_AF_MODE_SUMMED = 0, -	OMAP3ISP_AF_MODE_PEAK = 1 -}; - -/* Red, Green, and blue pixel location in the AF windows */ -enum omap3isp_h3a_af_rgbpos { -	OMAP3ISP_AF_GR_GB_BAYER = 0,	/* GR and GB as Bayer pattern */ -	OMAP3ISP_AF_RG_GB_BAYER = 1,	/* RG and GB as Bayer pattern */ -	OMAP3ISP_AF_GR_BG_BAYER = 2,	/* GR and BG as Bayer pattern */ -	OMAP3ISP_AF_RG_BG_BAYER = 3,	/* RG and BG as Bayer pattern */ -	OMAP3ISP_AF_GG_RB_CUSTOM = 4,	/* GG and RB as custom pattern */ -	OMAP3ISP_AF_RB_GG_CUSTOM = 5	/* RB and GG as custom pattern */ -}; - -/* Contains the information regarding the Horizontal Median Filter */ -struct omap3isp_h3a_af_hmf { -	__u8 enable;	/* Status of Horizontal Median Filter */ -	__u8 threshold;	/* Threshold Value for Horizontal Median Filter */ -}; - -/* Contains the information regarding the IIR Filters */ -struct omap3isp_h3a_af_iir { -	__u16 h_start;			/* IIR horizontal start */ -	__u16 coeff_set0[OMAP3ISP_AF_NUM_COEF];	/* Filter coefficient, set 0 */ -	__u16 coeff_set1[OMAP3ISP_AF_NUM_COEF];	/* Filter coefficient, set 1 */ -}; - -/* Contains the information regarding the Paxels Structure in AF Engine */ -struct omap3isp_h3a_af_paxel { -	__u16 h_start;	/* Horizontal Start Position */ -	__u16 v_start;	/* Vertical Start Position */ -	__u8 width;	/* Width of the Paxel */ -	__u8 height;	/* Height of the Paxel */ -	__u8 h_cnt;	/* Horizontal Count */ -	__u8 v_cnt;	/* vertical Count */ -	__u8 line_inc;	/* Line Increment */ -}; - -/* Contains the parameters required for hardware set up of AF Engine */ -struct omap3isp_h3a_af_config { -	/* -	 * Common fields. -	 * They should be the first ones and must be in the same order as in -	 * ispstat_generic_config struct. -	 */ -	__u32 buf_size; -	__u16 config_counter; - -	struct omap3isp_h3a_af_hmf hmf;		/* HMF configurations */ -	struct omap3isp_h3a_af_iir iir;		/* IIR filter configurations */ -	struct omap3isp_h3a_af_paxel paxel;	/* Paxel parameters */ -	enum omap3isp_h3a_af_rgbpos rgb_pos;	/* RGB Positions */ -	enum omap3isp_h3a_af_fvmode fvmode;	/* Accumulator mode */ -	__u8 alaw_enable;			/* AF ALAW status */ -}; - -/* ISP CCDC structs */ - -/* Abstraction layer CCDC configurations */ -#define OMAP3ISP_CCDC_ALAW		(1 << 0) -#define OMAP3ISP_CCDC_LPF		(1 << 1) -#define OMAP3ISP_CCDC_BLCLAMP		(1 << 2) -#define OMAP3ISP_CCDC_BCOMP		(1 << 3) -#define OMAP3ISP_CCDC_FPC		(1 << 4) -#define OMAP3ISP_CCDC_CULL		(1 << 5) -#define OMAP3ISP_CCDC_CONFIG_LSC	(1 << 7) -#define OMAP3ISP_CCDC_TBL_LSC		(1 << 8) - -#define OMAP3ISP_RGB_MAX		3 - -/* Enumeration constants for Alaw input width */ -enum omap3isp_alaw_ipwidth { -	OMAP3ISP_ALAW_BIT12_3 = 0x3, -	OMAP3ISP_ALAW_BIT11_2 = 0x4, -	OMAP3ISP_ALAW_BIT10_1 = 0x5, -	OMAP3ISP_ALAW_BIT9_0 = 0x6 -}; - -/** - * struct omap3isp_ccdc_lsc_config - LSC configuration - * @offset: Table Offset of the gain table. - * @gain_mode_n: Vertical dimension of a paxel in LSC configuration. - * @gain_mode_m: Horizontal dimension of a paxel in LSC configuration. - * @gain_format: Gain table format. - * @fmtsph: Start pixel horizontal from start of the HS sync pulse. - * @fmtlnh: Number of pixels in horizontal direction to use for the data - *          reformatter. - * @fmtslv: Start line from start of VS sync pulse for the data reformatter. - * @fmtlnv: Number of lines in vertical direction for the data reformatter. - * @initial_x: X position, in pixels, of the first active pixel in reference - *             to the first active paxel. Must be an even number. - * @initial_y: Y position, in pixels, of the first active pixel in reference - *             to the first active paxel. Must be an even number. - * @size: Size of LSC gain table. Filled when loaded from userspace. - */ -struct omap3isp_ccdc_lsc_config { -	__u16 offset; -	__u8 gain_mode_n; -	__u8 gain_mode_m; -	__u8 gain_format; -	__u16 fmtsph; -	__u16 fmtlnh; -	__u16 fmtslv; -	__u16 fmtlnv; -	__u8 initial_x; -	__u8 initial_y; -	__u32 size; -}; - -/** - * struct omap3isp_ccdc_bclamp - Optical & Digital black clamp subtract - * @obgain: Optical black average gain. - * @obstpixel: Start Pixel w.r.t. HS pulse in Optical black sample. - * @oblines: Optical Black Sample lines. - * @oblen: Optical Black Sample Length. - * @dcsubval: Digital Black Clamp subtract value. - */ -struct omap3isp_ccdc_bclamp { -	__u8 obgain; -	__u8 obstpixel; -	__u8 oblines; -	__u8 oblen; -	__u16 dcsubval; -}; - -/** - * struct omap3isp_ccdc_fpc - Faulty Pixels Correction - * @fpnum: Number of faulty pixels to be corrected in the frame. - * @fpcaddr: Memory address of the FPC Table - */ -struct omap3isp_ccdc_fpc { -	__u16 fpnum; -	__u32 fpcaddr; -}; - -/** - * struct omap3isp_ccdc_blcomp - Black Level Compensation parameters - * @b_mg: B/Mg pixels. 2's complement. -128 to +127. - * @gb_g: Gb/G pixels. 2's complement. -128 to +127. - * @gr_cy: Gr/Cy pixels. 2's complement. -128 to +127. - * @r_ye: R/Ye pixels. 2's complement. -128 to +127. - */ -struct omap3isp_ccdc_blcomp { -	__u8 b_mg; -	__u8 gb_g; -	__u8 gr_cy; -	__u8 r_ye; -}; - -/** - * omap3isp_ccdc_culling - Culling parameters - * @v_pattern: Vertical culling pattern. - * @h_odd: Horizontal Culling pattern for odd lines. - * @h_even: Horizontal Culling pattern for even lines. - */ -struct omap3isp_ccdc_culling { -	__u8 v_pattern; -	__u16 h_odd; -	__u16 h_even; -}; - -/** - * omap3isp_ccdc_update_config - CCDC configuration - * @update: Specifies which CCDC registers should be updated. - * @flag: Specifies which CCDC functions should be enabled. - * @alawip: Enable/Disable A-Law compression. - * @bclamp: Black clamp control register. - * @blcomp: Black level compensation value for RGrGbB Pixels. 2's complement. - * @fpc: Number of faulty pixels corrected in the frame, address of FPC table. - * @cull: Cull control register. - * @lsc: Pointer to LSC gain table. - */ -struct omap3isp_ccdc_update_config { -	__u16 update; -	__u16 flag; -	enum omap3isp_alaw_ipwidth alawip; -	struct omap3isp_ccdc_bclamp __user *bclamp; -	struct omap3isp_ccdc_blcomp __user *blcomp; -	struct omap3isp_ccdc_fpc __user *fpc; -	struct omap3isp_ccdc_lsc_config __user *lsc_cfg; -	struct omap3isp_ccdc_culling __user *cull; -	__u8 __user *lsc; -}; - -/* Preview configurations */ -#define OMAP3ISP_PREV_LUMAENH		(1 << 0) -#define OMAP3ISP_PREV_INVALAW		(1 << 1) -#define OMAP3ISP_PREV_HRZ_MED		(1 << 2) -#define OMAP3ISP_PREV_CFA		(1 << 3) -#define OMAP3ISP_PREV_CHROMA_SUPP	(1 << 4) -#define OMAP3ISP_PREV_WB		(1 << 5) -#define OMAP3ISP_PREV_BLKADJ		(1 << 6) -#define OMAP3ISP_PREV_RGB2RGB		(1 << 7) -#define OMAP3ISP_PREV_COLOR_CONV	(1 << 8) -#define OMAP3ISP_PREV_YC_LIMIT		(1 << 9) -#define OMAP3ISP_PREV_DEFECT_COR	(1 << 10) -/* Bit 11 was OMAP3ISP_PREV_GAMMABYPASS, now merged with OMAP3ISP_PREV_GAMMA */ -#define OMAP3ISP_PREV_DRK_FRM_CAPTURE	(1 << 12) -#define OMAP3ISP_PREV_DRK_FRM_SUBTRACT	(1 << 13) -#define OMAP3ISP_PREV_LENS_SHADING	(1 << 14) -#define OMAP3ISP_PREV_NF		(1 << 15) -#define OMAP3ISP_PREV_GAMMA		(1 << 16) - -#define OMAP3ISP_PREV_NF_TBL_SIZE	64 -#define OMAP3ISP_PREV_CFA_TBL_SIZE	576 -#define OMAP3ISP_PREV_CFA_BLK_SIZE	(OMAP3ISP_PREV_CFA_TBL_SIZE / 4) -#define OMAP3ISP_PREV_GAMMA_TBL_SIZE	1024 -#define OMAP3ISP_PREV_YENH_TBL_SIZE	128 - -#define OMAP3ISP_PREV_DETECT_CORRECT_CHANNELS	4 - -/** - * struct omap3isp_prev_hmed - Horizontal Median Filter - * @odddist: Distance between consecutive pixels of same color in the odd line. - * @evendist: Distance between consecutive pixels of same color in the even - *            line. - * @thres: Horizontal median filter threshold. - */ -struct omap3isp_prev_hmed { -	__u8 odddist; -	__u8 evendist; -	__u8 thres; -}; - -/* - * Enumeration for CFA Formats supported by preview - */ -enum omap3isp_cfa_fmt { -	OMAP3ISP_CFAFMT_BAYER, -	OMAP3ISP_CFAFMT_SONYVGA, -	OMAP3ISP_CFAFMT_RGBFOVEON, -	OMAP3ISP_CFAFMT_DNSPL, -	OMAP3ISP_CFAFMT_HONEYCOMB, -	OMAP3ISP_CFAFMT_RRGGBBFOVEON -}; - -/** - * struct omap3isp_prev_cfa - CFA Interpolation - * @format: CFA Format Enum value supported by preview. - * @gradthrs_vert: CFA Gradient Threshold - Vertical. - * @gradthrs_horz: CFA Gradient Threshold - Horizontal. - * @table: Pointer to the CFA table. - */ -struct omap3isp_prev_cfa { -	enum omap3isp_cfa_fmt format; -	__u8 gradthrs_vert; -	__u8 gradthrs_horz; -	__u32 table[4][OMAP3ISP_PREV_CFA_BLK_SIZE]; -}; - -/** - * struct omap3isp_prev_csup - Chrominance Suppression - * @gain: Gain. - * @thres: Threshold. - * @hypf_en: Flag to enable/disable the High Pass Filter. - */ -struct omap3isp_prev_csup { -	__u8 gain; -	__u8 thres; -	__u8 hypf_en; -}; - -/** - * struct omap3isp_prev_wbal - White Balance - * @dgain: Digital gain (U10Q8). - * @coef3: White balance gain - COEF 3 (U8Q5). - * @coef2: White balance gain - COEF 2 (U8Q5). - * @coef1: White balance gain - COEF 1 (U8Q5). - * @coef0: White balance gain - COEF 0 (U8Q5). - */ -struct omap3isp_prev_wbal { -	__u16 dgain; -	__u8 coef3; -	__u8 coef2; -	__u8 coef1; -	__u8 coef0; -}; - -/** - * struct omap3isp_prev_blkadj - Black Level Adjustment - * @red: Black level offset adjustment for Red in 2's complement format - * @green: Black level offset adjustment for Green in 2's complement format - * @blue: Black level offset adjustment for Blue in 2's complement format - */ -struct omap3isp_prev_blkadj { -	/*Black level offset adjustment for Red in 2's complement format */ -	__u8 red; -	/*Black level offset adjustment for Green in 2's complement format */ -	__u8 green; -	/* Black level offset adjustment for Blue in 2's complement format */ -	__u8 blue; -}; - -/** - * struct omap3isp_prev_rgbtorgb - RGB to RGB Blending - * @matrix: Blending values(S12Q8 format) - *              [RR] [GR] [BR] - *              [RG] [GG] [BG] - *              [RB] [GB] [BB] - * @offset: Blending offset value for R,G,B in 2's complement integer format. - */ -struct omap3isp_prev_rgbtorgb { -	__u16 matrix[OMAP3ISP_RGB_MAX][OMAP3ISP_RGB_MAX]; -	__u16 offset[OMAP3ISP_RGB_MAX]; -}; - -/** - * struct omap3isp_prev_csc - Color Space Conversion from RGB-YCbYCr - * @matrix: Color space conversion coefficients(S10Q8) - *              [CSCRY]  [CSCGY]  [CSCBY] - *              [CSCRCB] [CSCGCB] [CSCBCB] - *              [CSCRCR] [CSCGCR] [CSCBCR] - * @offset: CSC offset values for Y offset, CB offset and CR offset respectively - */ -struct omap3isp_prev_csc { -	__u16 matrix[OMAP3ISP_RGB_MAX][OMAP3ISP_RGB_MAX]; -	__s16 offset[OMAP3ISP_RGB_MAX]; -}; - -/** - * struct omap3isp_prev_yclimit - Y, C Value Limit - * @minC: Minimum C value - * @maxC: Maximum C value - * @minY: Minimum Y value - * @maxY: Maximum Y value - */ -struct omap3isp_prev_yclimit { -	__u8 minC; -	__u8 maxC; -	__u8 minY; -	__u8 maxY; -}; - -/** - * struct omap3isp_prev_dcor - Defect correction - * @couplet_mode_en: Flag to enable or disable the couplet dc Correction in NF - * @detect_correct: Thresholds for correction bit 0:10 detect 16:25 correct - */ -struct omap3isp_prev_dcor { -	__u8 couplet_mode_en; -	__u32 detect_correct[OMAP3ISP_PREV_DETECT_CORRECT_CHANNELS]; -}; - -/** - * struct omap3isp_prev_nf - Noise Filter - * @spread: Spread value to be used in Noise Filter - * @table: Pointer to the Noise Filter table - */ -struct omap3isp_prev_nf { -	__u8 spread; -	__u32 table[OMAP3ISP_PREV_NF_TBL_SIZE]; -}; - -/** - * struct omap3isp_prev_gtables - Gamma correction tables - * @red: Array for red gamma table. - * @green: Array for green gamma table. - * @blue: Array for blue gamma table. - */ -struct omap3isp_prev_gtables { -	__u32 red[OMAP3ISP_PREV_GAMMA_TBL_SIZE]; -	__u32 green[OMAP3ISP_PREV_GAMMA_TBL_SIZE]; -	__u32 blue[OMAP3ISP_PREV_GAMMA_TBL_SIZE]; -}; - -/** - * struct omap3isp_prev_luma - Luma enhancement - * @table: Array for luma enhancement table. - */ -struct omap3isp_prev_luma { -	__u32 table[OMAP3ISP_PREV_YENH_TBL_SIZE]; -}; - -/** - * struct omap3isp_prev_update_config - Preview engine configuration (user) - * @update: Specifies which ISP Preview registers should be updated. - * @flag: Specifies which ISP Preview functions should be enabled. - * @shading_shift: 3bit value of shift used in shading compensation. - * @luma: Pointer to luma enhancement structure. - * @hmed: Pointer to structure containing the odd and even distance. - *        between the pixels in the image along with the filter threshold. - * @cfa: Pointer to structure containing the CFA interpolation table, CFA. - *       format in the image, vertical and horizontal gradient threshold. - * @csup: Pointer to Structure for Chrominance Suppression coefficients. - * @wbal: Pointer to structure for White Balance. - * @blkadj: Pointer to structure for Black Adjustment. - * @rgb2rgb: Pointer to structure for RGB to RGB Blending. - * @csc: Pointer to structure for Color Space Conversion from RGB-YCbYCr. - * @yclimit: Pointer to structure for Y, C Value Limit. - * @dcor: Pointer to structure for defect correction. - * @nf: Pointer to structure for Noise Filter - * @gamma: Pointer to gamma structure. - */ -struct omap3isp_prev_update_config { -	__u32 update; -	__u32 flag; -	__u32 shading_shift; -	struct omap3isp_prev_luma __user *luma; -	struct omap3isp_prev_hmed __user *hmed; -	struct omap3isp_prev_cfa __user *cfa; -	struct omap3isp_prev_csup __user *csup; -	struct omap3isp_prev_wbal __user *wbal; -	struct omap3isp_prev_blkadj __user *blkadj; -	struct omap3isp_prev_rgbtorgb __user *rgb2rgb; -	struct omap3isp_prev_csc __user *csc; -	struct omap3isp_prev_yclimit __user *yclimit; -	struct omap3isp_prev_dcor __user *dcor; -	struct omap3isp_prev_nf __user *nf; -	struct omap3isp_prev_gtables __user *gamma; -}; - -#endif	/* OMAP3_ISP_USER_H */ diff --git a/include/linux/omapfb.h b/include/linux/omapfb.h index 85af8184691..d1f4dccaeed 100644 --- a/include/linux/omapfb.h +++ b/include/linux/omapfb.h @@ -20,205 +20,11 @@   * with this program; if not, write to the Free Software Foundation, Inc.,   * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.   */ -  #ifndef __LINUX_OMAPFB_H__  #define __LINUX_OMAPFB_H__ -#include <linux/fb.h> -#include <linux/ioctl.h> -#include <linux/types.h> - -/* IOCTL commands. */ - -#define OMAP_IOW(num, dtype)	_IOW('O', num, dtype) -#define OMAP_IOR(num, dtype)	_IOR('O', num, dtype) -#define OMAP_IOWR(num, dtype)	_IOWR('O', num, dtype) -#define OMAP_IO(num)		_IO('O', num) - -#define OMAPFB_MIRROR		OMAP_IOW(31, int) -#define OMAPFB_SYNC_GFX		OMAP_IO(37) -#define OMAPFB_VSYNC		OMAP_IO(38) -#define OMAPFB_SET_UPDATE_MODE	OMAP_IOW(40, int) -#define OMAPFB_GET_CAPS		OMAP_IOR(42, struct omapfb_caps) -#define OMAPFB_GET_UPDATE_MODE	OMAP_IOW(43, int) -#define OMAPFB_LCD_TEST		OMAP_IOW(45, int) -#define OMAPFB_CTRL_TEST	OMAP_IOW(46, int) -#define OMAPFB_UPDATE_WINDOW_OLD OMAP_IOW(47, struct omapfb_update_window_old) -#define OMAPFB_SET_COLOR_KEY	OMAP_IOW(50, struct omapfb_color_key) -#define OMAPFB_GET_COLOR_KEY	OMAP_IOW(51, struct omapfb_color_key) -#define OMAPFB_SETUP_PLANE	OMAP_IOW(52, struct omapfb_plane_info) -#define OMAPFB_QUERY_PLANE	OMAP_IOW(53, struct omapfb_plane_info) -#define OMAPFB_UPDATE_WINDOW	OMAP_IOW(54, struct omapfb_update_window) -#define OMAPFB_SETUP_MEM	OMAP_IOW(55, struct omapfb_mem_info) -#define OMAPFB_QUERY_MEM	OMAP_IOW(56, struct omapfb_mem_info) -#define OMAPFB_WAITFORVSYNC	OMAP_IO(57) -#define OMAPFB_MEMORY_READ	OMAP_IOR(58, struct omapfb_memory_read) -#define OMAPFB_GET_OVERLAY_COLORMODE OMAP_IOR(59, struct omapfb_ovl_colormode) -#define OMAPFB_WAITFORGO	OMAP_IO(60) -#define OMAPFB_GET_VRAM_INFO	OMAP_IOR(61, struct omapfb_vram_info) -#define OMAPFB_SET_TEARSYNC	OMAP_IOW(62, struct omapfb_tearsync_info) -#define OMAPFB_GET_DISPLAY_INFO	OMAP_IOR(63, struct omapfb_display_info) - -#define OMAPFB_CAPS_GENERIC_MASK	0x00000fff -#define OMAPFB_CAPS_LCDC_MASK		0x00fff000 -#define OMAPFB_CAPS_PANEL_MASK		0xff000000 - -#define OMAPFB_CAPS_MANUAL_UPDATE	0x00001000 -#define OMAPFB_CAPS_TEARSYNC		0x00002000 -#define OMAPFB_CAPS_PLANE_RELOCATE_MEM	0x00004000 -#define OMAPFB_CAPS_PLANE_SCALE		0x00008000 -#define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE	0x00010000 -#define OMAPFB_CAPS_WINDOW_SCALE	0x00020000 -#define OMAPFB_CAPS_WINDOW_OVERLAY	0x00040000 -#define OMAPFB_CAPS_WINDOW_ROTATE	0x00080000 -#define OMAPFB_CAPS_SET_BACKLIGHT	0x01000000 - -/* Values from DSP must map to lower 16-bits */ -#define OMAPFB_FORMAT_MASK		0x00ff -#define OMAPFB_FORMAT_FLAG_DOUBLE	0x0100 -#define OMAPFB_FORMAT_FLAG_TEARSYNC	0x0200 -#define OMAPFB_FORMAT_FLAG_FORCE_VSYNC	0x0400 -#define OMAPFB_FORMAT_FLAG_ENABLE_OVERLAY	0x0800 -#define OMAPFB_FORMAT_FLAG_DISABLE_OVERLAY	0x1000 - -#define OMAPFB_MEMTYPE_SDRAM		0 -#define OMAPFB_MEMTYPE_SRAM		1 -#define OMAPFB_MEMTYPE_MAX		1 - -#define OMAPFB_MEM_IDX_ENABLED	0x80 -#define OMAPFB_MEM_IDX_MASK	0x7f - -enum omapfb_color_format { -	OMAPFB_COLOR_RGB565 = 0, -	OMAPFB_COLOR_YUV422, -	OMAPFB_COLOR_YUV420, -	OMAPFB_COLOR_CLUT_8BPP, -	OMAPFB_COLOR_CLUT_4BPP, -	OMAPFB_COLOR_CLUT_2BPP, -	OMAPFB_COLOR_CLUT_1BPP, -	OMAPFB_COLOR_RGB444, -	OMAPFB_COLOR_YUY422, - -	OMAPFB_COLOR_ARGB16, -	OMAPFB_COLOR_RGB24U,	/* RGB24, 32-bit container */ -	OMAPFB_COLOR_RGB24P,	/* RGB24, 24-bit container */ -	OMAPFB_COLOR_ARGB32, -	OMAPFB_COLOR_RGBA32, -	OMAPFB_COLOR_RGBX32, -}; - -struct omapfb_update_window { -	__u32 x, y; -	__u32 width, height; -	__u32 format; -	__u32 out_x, out_y; -	__u32 out_width, out_height; -	__u32 reserved[8]; -}; +#include <uapi/linux/omapfb.h> -struct omapfb_update_window_old { -	__u32 x, y; -	__u32 width, height; -	__u32 format; -}; - -enum omapfb_plane { -	OMAPFB_PLANE_GFX = 0, -	OMAPFB_PLANE_VID1, -	OMAPFB_PLANE_VID2, -}; - -enum omapfb_channel_out { -	OMAPFB_CHANNEL_OUT_LCD = 0, -	OMAPFB_CHANNEL_OUT_DIGIT, -}; - -struct omapfb_plane_info { -	__u32 pos_x; -	__u32 pos_y; -	__u8  enabled; -	__u8  channel_out; -	__u8  mirror; -	__u8  mem_idx; -	__u32 out_width; -	__u32 out_height; -	__u32 reserved2[12]; -}; - -struct omapfb_mem_info { -	__u32 size; -	__u8  type; -	__u8  reserved[3]; -}; - -struct omapfb_caps { -	__u32 ctrl; -	__u32 plane_color; -	__u32 wnd_color; -}; - -enum omapfb_color_key_type { -	OMAPFB_COLOR_KEY_DISABLED = 0, -	OMAPFB_COLOR_KEY_GFX_DST, -	OMAPFB_COLOR_KEY_VID_SRC, -}; - -struct omapfb_color_key { -	__u8  channel_out; -	__u32 background; -	__u32 trans_key; -	__u8  key_type; -}; - -enum omapfb_update_mode { -	OMAPFB_UPDATE_DISABLED = 0, -	OMAPFB_AUTO_UPDATE, -	OMAPFB_MANUAL_UPDATE -}; - -struct omapfb_memory_read { -	__u16 x; -	__u16 y; -	__u16 w; -	__u16 h; -	size_t buffer_size; -	void __user *buffer; -}; - -struct omapfb_ovl_colormode { -	__u8 overlay_idx; -	__u8 mode_idx; -	__u32 bits_per_pixel; -	__u32 nonstd; -	struct fb_bitfield red; -	struct fb_bitfield green; -	struct fb_bitfield blue; -	struct fb_bitfield transp; -}; - -struct omapfb_vram_info { -	__u32 total; -	__u32 free; -	__u32 largest_free_block; -	__u32 reserved[5]; -}; - -struct omapfb_tearsync_info { -	__u8 enabled; -	__u8 reserved1[3]; -	__u16 line; -	__u16 reserved2; -}; - -struct omapfb_display_info { -	__u16 xres; -	__u16 yres; -	__u32 width;	/* phys width of the display in micrometers */ -	__u32 height;	/* phys height of the display in micrometers */ -	__u32 reserved[5]; -}; - -#ifdef __KERNEL__  struct omap_lcd_config {  	char panel_name[16]; @@ -233,6 +39,4 @@ struct omapfb_platform_data {  void __init omapfb_set_lcd_config(const struct omap_lcd_config *config); -#endif -  #endif /* __OMAPFB_H */ diff --git a/include/linux/oom.h b/include/linux/oom.h index d36a8221f58..fb9826847b8 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h @@ -1,18 +1,11 @@  #ifndef __INCLUDE_LINUX_OOM_H  #define __INCLUDE_LINUX_OOM_H -/* - * /proc/<pid>/oom_score_adj set to OOM_SCORE_ADJ_MIN disables oom killing for - * pid. - */ -#define OOM_SCORE_ADJ_MIN	(-1000) -#define OOM_SCORE_ADJ_MAX	1000 - -#ifdef __KERNEL__  #include <linux/sched.h>  #include <linux/types.h>  #include <linux/nodemask.h> +#include <uapi/linux/oom.h>  struct zonelist;  struct notifier_block; @@ -82,5 +75,4 @@ extern struct task_struct *find_lock_task_mm(struct task_struct *p);  extern int sysctl_oom_dump_tasks;  extern int sysctl_oom_kill_allocating_task;  extern int sysctl_panic_on_oom; -#endif /* __KERNEL__*/  #endif /* _INCLUDE_LINUX_OOM_H */ diff --git a/include/linux/packet_diag.h b/include/linux/packet_diag.h deleted file mode 100644 index 93f5fa94a43..00000000000 --- a/include/linux/packet_diag.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __PACKET_DIAG_H__ -#define __PACKET_DIAG_H__ - -#include <linux/types.h> - -struct packet_diag_req { -	__u8	sdiag_family; -	__u8	sdiag_protocol; -	__u16	pad; -	__u32	pdiag_ino; -	__u32	pdiag_show; -	__u32	pdiag_cookie[2]; -}; - -#define PACKET_SHOW_INFO	0x00000001 /* Basic packet_sk information */ -#define PACKET_SHOW_MCLIST	0x00000002 /* A set of packet_diag_mclist-s */ -#define PACKET_SHOW_RING_CFG	0x00000004 /* Rings configuration parameters */ -#define PACKET_SHOW_FANOUT	0x00000008 - -struct packet_diag_msg { -	__u8	pdiag_family; -	__u8	pdiag_type; -	__u16	pdiag_num; - -	__u32	pdiag_ino; -	__u32	pdiag_cookie[2]; -}; - -enum { -	PACKET_DIAG_INFO, -	PACKET_DIAG_MCLIST, -	PACKET_DIAG_RX_RING, -	PACKET_DIAG_TX_RING, -	PACKET_DIAG_FANOUT, - -	PACKET_DIAG_MAX, -}; - -struct packet_diag_info { -	__u32	pdi_index; -	__u32	pdi_version; -	__u32	pdi_reserve; -	__u32	pdi_copy_thresh; -	__u32	pdi_tstamp; -	__u32	pdi_flags; - -#define PDI_RUNNING	0x1 -#define PDI_AUXDATA	0x2 -#define PDI_ORIGDEV	0x4 -#define PDI_VNETHDR	0x8 -#define PDI_LOSS	0x10 -}; - -struct packet_diag_mclist { -	__u32	pdmc_index; -	__u32	pdmc_count; -	__u16	pdmc_type; -	__u16	pdmc_alen; -	__u8	pdmc_addr[MAX_ADDR_LEN]; -}; - -struct packet_diag_ring { -	__u32	pdr_block_size; -	__u32	pdr_block_nr; -	__u32	pdr_frame_size; -	__u32	pdr_frame_nr; -	__u32	pdr_retire_tmo; -	__u32	pdr_sizeof_priv; -	__u32	pdr_features; -}; - -#endif diff --git a/include/linux/param.h b/include/linux/param.h deleted file mode 100644 index 092e92f67b5..00000000000 --- a/include/linux/param.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _LINUX_PARAM_H -#define _LINUX_PARAM_H - -#include <asm/param.h> - -#endif diff --git a/include/linux/parport.h b/include/linux/parport.h index 106c2ca9440..c22f1254732 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h @@ -3,96 +3,9 @@   * the GNU Free Documentation License, Version 1.1 or any later version   * published by the Free Software Foundation.   */ -  #ifndef _PARPORT_H_  #define _PARPORT_H_ -/* Start off with user-visible constants */ - -/* Maximum of 16 ports per machine */ -#define PARPORT_MAX  16 - -/* Magic numbers */ -#define PARPORT_IRQ_NONE  -1 -#define PARPORT_DMA_NONE  -1 -#define PARPORT_IRQ_AUTO  -2 -#define PARPORT_DMA_AUTO  -2 -#define PARPORT_DMA_NOFIFO -3 -#define PARPORT_DISABLE   -2 -#define PARPORT_IRQ_PROBEONLY -3 -#define PARPORT_IOHI_AUTO -1 - -#define PARPORT_CONTROL_STROBE    0x1 -#define PARPORT_CONTROL_AUTOFD    0x2 -#define PARPORT_CONTROL_INIT      0x4 -#define PARPORT_CONTROL_SELECT    0x8 - -#define PARPORT_STATUS_ERROR      0x8 -#define PARPORT_STATUS_SELECT     0x10 -#define PARPORT_STATUS_PAPEROUT   0x20 -#define PARPORT_STATUS_ACK        0x40 -#define PARPORT_STATUS_BUSY       0x80 - -/* Type classes for Plug-and-Play probe.  */ -typedef enum { -	PARPORT_CLASS_LEGACY = 0,       /* Non-IEEE1284 device */ -	PARPORT_CLASS_PRINTER, -	PARPORT_CLASS_MODEM, -	PARPORT_CLASS_NET, -	PARPORT_CLASS_HDC,              /* Hard disk controller */ -	PARPORT_CLASS_PCMCIA, -	PARPORT_CLASS_MEDIA,            /* Multimedia device */ -	PARPORT_CLASS_FDC,              /* Floppy disk controller */ -	PARPORT_CLASS_PORTS, -	PARPORT_CLASS_SCANNER, -	PARPORT_CLASS_DIGCAM, -	PARPORT_CLASS_OTHER,            /* Anything else */ -	PARPORT_CLASS_UNSPEC,           /* No CLS field in ID */ -	PARPORT_CLASS_SCSIADAPTER -} parport_device_class; - -/* The "modes" entry in parport is a bit field representing the -   capabilities of the hardware. */ -#define PARPORT_MODE_PCSPP	(1<<0) /* IBM PC registers available. */ -#define PARPORT_MODE_TRISTATE	(1<<1) /* Can tristate. */ -#define PARPORT_MODE_EPP	(1<<2) /* Hardware EPP. */ -#define PARPORT_MODE_ECP	(1<<3) /* Hardware ECP. */ -#define PARPORT_MODE_COMPAT	(1<<4) /* Hardware 'printer protocol'. */ -#define PARPORT_MODE_DMA	(1<<5) /* Hardware can DMA. */ -#define PARPORT_MODE_SAFEININT	(1<<6) /* SPP registers accessible in IRQ. */ - -/* IEEE1284 modes:  -   Nibble mode, byte mode, ECP, ECPRLE and EPP are their own -   'extensibility request' values.  Others are special. -   'Real' ECP modes must have the IEEE1284_MODE_ECP bit set.  */ -#define IEEE1284_MODE_NIBBLE             0 -#define IEEE1284_MODE_BYTE              (1<<0) -#define IEEE1284_MODE_COMPAT            (1<<8) -#define IEEE1284_MODE_BECP              (1<<9) /* Bounded ECP mode */ -#define IEEE1284_MODE_ECP               (1<<4) -#define IEEE1284_MODE_ECPRLE            (IEEE1284_MODE_ECP | (1<<5)) -#define IEEE1284_MODE_ECPSWE            (1<<10) /* Software-emulated */ -#define IEEE1284_MODE_EPP               (1<<6) -#define IEEE1284_MODE_EPPSL             (1<<11) /* EPP 1.7 */ -#define IEEE1284_MODE_EPPSWE            (1<<12) /* Software-emulated */ -#define IEEE1284_DEVICEID               (1<<2)  /* This is a flag */ -#define IEEE1284_EXT_LINK               (1<<14) /* This flag causes the -						 * extensibility link to -						 * be requested, using -						 * bits 0-6. */ - -/* For the benefit of parport_read/write, you can use these with - * parport_negotiate to use address operations.  They have no effect - * other than to make parport_read/write use address transfers. */ -#define IEEE1284_ADDR			(1<<13)	/* This is a flag */ -#define IEEE1284_DATA			 0	/* So is this */ - -/* Flags for block transfer operations. */ -#define PARPORT_EPP_FAST		(1<<0) /* Unreliable counts. */ -#define PARPORT_W91284PIC		(1<<1) /* have a Warp9 w91284pic in the device */ - -/* The rest is for the kernel only */ -#ifdef __KERNEL__  #include <linux/jiffies.h>  #include <linux/proc_fs.h> @@ -101,6 +14,7 @@ typedef enum {  #include <linux/irqreturn.h>  #include <linux/semaphore.h>  #include <asm/ptrace.h> +#include <uapi/linux/parport.h>  /* Define this later. */  struct parport; @@ -564,5 +478,4 @@ extern int parport_device_proc_unregister(struct pardevice *device);  extern unsigned long parport_default_timeslice;  extern int parport_default_spintime; -#endif /* __KERNEL__ */  #endif /* _PARPORT_H_ */ diff --git a/include/linux/patchkey.h b/include/linux/patchkey.h index aefda0ec6e6..97a919fc992 100644 --- a/include/linux/patchkey.h +++ b/include/linux/patchkey.h @@ -9,22 +9,12 @@   * Do not include this file directly.  Please use <sys/soundcard.h> instead.   * For kernel code, use <linux/soundcard.h>   */ - -#ifndef _LINUX_PATCHKEY_H_INDIRECT -#error "patchkey.h included directly" -#endif -  #ifndef _LINUX_PATCHKEY_H  #define _LINUX_PATCHKEY_H -/* Endian macros. */ -#ifdef __KERNEL__  #  include <asm/byteorder.h> -#else -#  include <endian.h> -#endif +#include <uapi/linux/patchkey.h> -#if defined(__KERNEL__)  #  if defined(__BIG_ENDIAN)  #    define _PATCHKEY(id) (0xfd00|id)  #  elif defined(__LITTLE_ENDIAN) @@ -32,16 +22,4 @@  #  else  #    error "could not determine byte order"  #  endif -#else -#if defined(__BYTE_ORDER) -#  if __BYTE_ORDER == __BIG_ENDIAN -#    define _PATCHKEY(id) (0xfd00|id) -#  elif __BYTE_ORDER == __LITTLE_ENDIAN -#    define _PATCHKEY(id) ((id<<8)|0x00fd) -#  else -#    error "could not determine byte order" -#  endif -#endif -#endif -  #endif /* _LINUX_PATCHKEY_H */ diff --git a/include/linux/pci.h b/include/linux/pci.h index be1de01de1c..ee2179546c6 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -13,32 +13,9 @@   *	PCI to PCI Bridge Specification   *	PCI System Design Guide   */ -  #ifndef LINUX_PCI_H  #define LINUX_PCI_H -#include <linux/pci_regs.h>	/* The pci register defines */ - -/* - * The PCI interface treats multi-function devices as independent - * devices.  The slot/function address of each device is encoded - * in a single byte as follows: - * - *	7:3 = slot - *	2:0 = function - */ -#define PCI_DEVFN(slot, func)	((((slot) & 0x1f) << 3) | ((func) & 0x07)) -#define PCI_SLOT(devfn)		(((devfn) >> 3) & 0x1f) -#define PCI_FUNC(devfn)		((devfn) & 0x07) - -/* Ioctls for /proc/bus/pci/X/Y nodes. */ -#define PCIIOC_BASE		('P' << 24 | 'C' << 16 | 'I' << 8) -#define PCIIOC_CONTROLLER	(PCIIOC_BASE | 0x00)	/* Get controller for PCI device. */ -#define PCIIOC_MMAP_IS_IO	(PCIIOC_BASE | 0x01)	/* Set mmap state to I/O space. */ -#define PCIIOC_MMAP_IS_MEM	(PCIIOC_BASE | 0x02)	/* Set mmap state to MEM space. */ -#define PCIIOC_WRITE_COMBINE	(PCIIOC_BASE | 0x03)	/* Enable/disable write-combining. */ - -#ifdef __KERNEL__  #include <linux/mod_devicetable.h> @@ -53,6 +30,7 @@  #include <linux/device.h>  #include <linux/io.h>  #include <linux/irqreturn.h> +#include <uapi/linux/pci.h>  /* Include the ID list */  #include <linux/pci_ids.h> @@ -1831,5 +1809,4 @@ static inline struct eeh_dev *pci_dev_to_eeh_dev(struct pci_dev *pdev)   */  struct pci_dev *pci_find_upstream_pcie_bridge(struct pci_dev *pdev); -#endif /* __KERNEL__ */  #endif /* LINUX_PCI_H */ diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h deleted file mode 100644 index 20ae747ddf3..00000000000 --- a/include/linux/pci_regs.h +++ /dev/null @@ -1,846 +0,0 @@ -/* - *	pci_regs.h - * - *	PCI standard defines - *	Copyright 1994, Drew Eckhardt - *	Copyright 1997--1999 Martin Mares <mj@ucw.cz> - * - *	For more information, please consult the following manuals (look at - *	http://www.pcisig.com/ for how to get them): - * - *	PCI BIOS Specification - *	PCI Local Bus Specification - *	PCI to PCI Bridge Specification - *	PCI System Design Guide - * - * 	For hypertransport information, please consult the following manuals - * 	from http://www.hypertransport.org - * - *	The Hypertransport I/O Link Specification - */ - -#ifndef LINUX_PCI_REGS_H -#define LINUX_PCI_REGS_H - -/* - * Under PCI, each device has 256 bytes of configuration address space, - * of which the first 64 bytes are standardized as follows: - */ -#define PCI_STD_HEADER_SIZEOF	64 -#define PCI_VENDOR_ID		0x00	/* 16 bits */ -#define PCI_DEVICE_ID		0x02	/* 16 bits */ -#define PCI_COMMAND		0x04	/* 16 bits */ -#define  PCI_COMMAND_IO		0x1	/* Enable response in I/O space */ -#define  PCI_COMMAND_MEMORY	0x2	/* Enable response in Memory space */ -#define  PCI_COMMAND_MASTER	0x4	/* Enable bus mastering */ -#define  PCI_COMMAND_SPECIAL	0x8	/* Enable response to special cycles */ -#define  PCI_COMMAND_INVALIDATE	0x10	/* Use memory write and invalidate */ -#define  PCI_COMMAND_VGA_PALETTE 0x20	/* Enable palette snooping */ -#define  PCI_COMMAND_PARITY	0x40	/* Enable parity checking */ -#define  PCI_COMMAND_WAIT 	0x80	/* Enable address/data stepping */ -#define  PCI_COMMAND_SERR	0x100	/* Enable SERR */ -#define  PCI_COMMAND_FAST_BACK	0x200	/* Enable back-to-back writes */ -#define  PCI_COMMAND_INTX_DISABLE 0x400 /* INTx Emulation Disable */ - -#define PCI_STATUS		0x06	/* 16 bits */ -#define  PCI_STATUS_INTERRUPT	0x08	/* Interrupt status */ -#define  PCI_STATUS_CAP_LIST	0x10	/* Support Capability List */ -#define  PCI_STATUS_66MHZ	0x20	/* Support 66 Mhz PCI 2.1 bus */ -#define  PCI_STATUS_UDF		0x40	/* Support User Definable Features [obsolete] */ -#define  PCI_STATUS_FAST_BACK	0x80	/* Accept fast-back to back */ -#define  PCI_STATUS_PARITY	0x100	/* Detected parity error */ -#define  PCI_STATUS_DEVSEL_MASK	0x600	/* DEVSEL timing */ -#define  PCI_STATUS_DEVSEL_FAST		0x000 -#define  PCI_STATUS_DEVSEL_MEDIUM	0x200 -#define  PCI_STATUS_DEVSEL_SLOW		0x400 -#define  PCI_STATUS_SIG_TARGET_ABORT	0x800 /* Set on target abort */ -#define  PCI_STATUS_REC_TARGET_ABORT	0x1000 /* Master ack of " */ -#define  PCI_STATUS_REC_MASTER_ABORT	0x2000 /* Set on master abort */ -#define  PCI_STATUS_SIG_SYSTEM_ERROR	0x4000 /* Set when we drive SERR */ -#define  PCI_STATUS_DETECTED_PARITY	0x8000 /* Set on parity error */ - -#define PCI_CLASS_REVISION	0x08	/* High 24 bits are class, low 8 revision */ -#define PCI_REVISION_ID		0x08	/* Revision ID */ -#define PCI_CLASS_PROG		0x09	/* Reg. Level Programming Interface */ -#define PCI_CLASS_DEVICE	0x0a	/* Device class */ - -#define PCI_CACHE_LINE_SIZE	0x0c	/* 8 bits */ -#define PCI_LATENCY_TIMER	0x0d	/* 8 bits */ -#define PCI_HEADER_TYPE		0x0e	/* 8 bits */ -#define  PCI_HEADER_TYPE_NORMAL		0 -#define  PCI_HEADER_TYPE_BRIDGE		1 -#define  PCI_HEADER_TYPE_CARDBUS	2 - -#define PCI_BIST		0x0f	/* 8 bits */ -#define  PCI_BIST_CODE_MASK	0x0f	/* Return result */ -#define  PCI_BIST_START		0x40	/* 1 to start BIST, 2 secs or less */ -#define  PCI_BIST_CAPABLE	0x80	/* 1 if BIST capable */ - -/* - * Base addresses specify locations in memory or I/O space. - * Decoded size can be determined by writing a value of - * 0xffffffff to the register, and reading it back.  Only - * 1 bits are decoded. - */ -#define PCI_BASE_ADDRESS_0	0x10	/* 32 bits */ -#define PCI_BASE_ADDRESS_1	0x14	/* 32 bits [htype 0,1 only] */ -#define PCI_BASE_ADDRESS_2	0x18	/* 32 bits [htype 0 only] */ -#define PCI_BASE_ADDRESS_3	0x1c	/* 32 bits */ -#define PCI_BASE_ADDRESS_4	0x20	/* 32 bits */ -#define PCI_BASE_ADDRESS_5	0x24	/* 32 bits */ -#define  PCI_BASE_ADDRESS_SPACE		0x01	/* 0 = memory, 1 = I/O */ -#define  PCI_BASE_ADDRESS_SPACE_IO	0x01 -#define  PCI_BASE_ADDRESS_SPACE_MEMORY	0x00 -#define  PCI_BASE_ADDRESS_MEM_TYPE_MASK	0x06 -#define  PCI_BASE_ADDRESS_MEM_TYPE_32	0x00	/* 32 bit address */ -#define  PCI_BASE_ADDRESS_MEM_TYPE_1M	0x02	/* Below 1M [obsolete] */ -#define  PCI_BASE_ADDRESS_MEM_TYPE_64	0x04	/* 64 bit address */ -#define  PCI_BASE_ADDRESS_MEM_PREFETCH	0x08	/* prefetchable? */ -#define  PCI_BASE_ADDRESS_MEM_MASK	(~0x0fUL) -#define  PCI_BASE_ADDRESS_IO_MASK	(~0x03UL) -/* bit 1 is reserved if address_space = 1 */ - -/* Header type 0 (normal devices) */ -#define PCI_CARDBUS_CIS		0x28 -#define PCI_SUBSYSTEM_VENDOR_ID	0x2c -#define PCI_SUBSYSTEM_ID	0x2e -#define PCI_ROM_ADDRESS		0x30	/* Bits 31..11 are address, 10..1 reserved */ -#define  PCI_ROM_ADDRESS_ENABLE	0x01 -#define PCI_ROM_ADDRESS_MASK	(~0x7ffUL) - -#define PCI_CAPABILITY_LIST	0x34	/* Offset of first capability list entry */ - -/* 0x35-0x3b are reserved */ -#define PCI_INTERRUPT_LINE	0x3c	/* 8 bits */ -#define PCI_INTERRUPT_PIN	0x3d	/* 8 bits */ -#define PCI_MIN_GNT		0x3e	/* 8 bits */ -#define PCI_MAX_LAT		0x3f	/* 8 bits */ - -/* Header type 1 (PCI-to-PCI bridges) */ -#define PCI_PRIMARY_BUS		0x18	/* Primary bus number */ -#define PCI_SECONDARY_BUS	0x19	/* Secondary bus number */ -#define PCI_SUBORDINATE_BUS	0x1a	/* Highest bus number behind the bridge */ -#define PCI_SEC_LATENCY_TIMER	0x1b	/* Latency timer for secondary interface */ -#define PCI_IO_BASE		0x1c	/* I/O range behind the bridge */ -#define PCI_IO_LIMIT		0x1d -#define  PCI_IO_RANGE_TYPE_MASK	0x0fUL	/* I/O bridging type */ -#define  PCI_IO_RANGE_TYPE_16	0x00 -#define  PCI_IO_RANGE_TYPE_32	0x01 -#define  PCI_IO_RANGE_MASK	(~0x0fUL) /* Standard 4K I/O windows */ -#define  PCI_IO_1K_RANGE_MASK	(~0x03UL) /* Intel 1K I/O windows */ -#define PCI_SEC_STATUS		0x1e	/* Secondary status register, only bit 14 used */ -#define PCI_MEMORY_BASE		0x20	/* Memory range behind */ -#define PCI_MEMORY_LIMIT	0x22 -#define  PCI_MEMORY_RANGE_TYPE_MASK 0x0fUL -#define  PCI_MEMORY_RANGE_MASK	(~0x0fUL) -#define PCI_PREF_MEMORY_BASE	0x24	/* Prefetchable memory range behind */ -#define PCI_PREF_MEMORY_LIMIT	0x26 -#define  PCI_PREF_RANGE_TYPE_MASK 0x0fUL -#define  PCI_PREF_RANGE_TYPE_32	0x00 -#define  PCI_PREF_RANGE_TYPE_64	0x01 -#define  PCI_PREF_RANGE_MASK	(~0x0fUL) -#define PCI_PREF_BASE_UPPER32	0x28	/* Upper half of prefetchable memory range */ -#define PCI_PREF_LIMIT_UPPER32	0x2c -#define PCI_IO_BASE_UPPER16	0x30	/* Upper half of I/O addresses */ -#define PCI_IO_LIMIT_UPPER16	0x32 -/* 0x34 same as for htype 0 */ -/* 0x35-0x3b is reserved */ -#define PCI_ROM_ADDRESS1	0x38	/* Same as PCI_ROM_ADDRESS, but for htype 1 */ -/* 0x3c-0x3d are same as for htype 0 */ -#define PCI_BRIDGE_CONTROL	0x3e -#define  PCI_BRIDGE_CTL_PARITY	0x01	/* Enable parity detection on secondary interface */ -#define  PCI_BRIDGE_CTL_SERR	0x02	/* The same for SERR forwarding */ -#define  PCI_BRIDGE_CTL_ISA	0x04	/* Enable ISA mode */ -#define  PCI_BRIDGE_CTL_VGA	0x08	/* Forward VGA addresses */ -#define  PCI_BRIDGE_CTL_MASTER_ABORT	0x20  /* Report master aborts */ -#define  PCI_BRIDGE_CTL_BUS_RESET	0x40	/* Secondary bus reset */ -#define  PCI_BRIDGE_CTL_FAST_BACK	0x80	/* Fast Back2Back enabled on secondary interface */ - -/* Header type 2 (CardBus bridges) */ -#define PCI_CB_CAPABILITY_LIST	0x14 -/* 0x15 reserved */ -#define PCI_CB_SEC_STATUS	0x16	/* Secondary status */ -#define PCI_CB_PRIMARY_BUS	0x18	/* PCI bus number */ -#define PCI_CB_CARD_BUS		0x19	/* CardBus bus number */ -#define PCI_CB_SUBORDINATE_BUS	0x1a	/* Subordinate bus number */ -#define PCI_CB_LATENCY_TIMER	0x1b	/* CardBus latency timer */ -#define PCI_CB_MEMORY_BASE_0	0x1c -#define PCI_CB_MEMORY_LIMIT_0	0x20 -#define PCI_CB_MEMORY_BASE_1	0x24 -#define PCI_CB_MEMORY_LIMIT_1	0x28 -#define PCI_CB_IO_BASE_0	0x2c -#define PCI_CB_IO_BASE_0_HI	0x2e -#define PCI_CB_IO_LIMIT_0	0x30 -#define PCI_CB_IO_LIMIT_0_HI	0x32 -#define PCI_CB_IO_BASE_1	0x34 -#define PCI_CB_IO_BASE_1_HI	0x36 -#define PCI_CB_IO_LIMIT_1	0x38 -#define PCI_CB_IO_LIMIT_1_HI	0x3a -#define  PCI_CB_IO_RANGE_MASK	(~0x03UL) -/* 0x3c-0x3d are same as for htype 0 */ -#define PCI_CB_BRIDGE_CONTROL	0x3e -#define  PCI_CB_BRIDGE_CTL_PARITY	0x01	/* Similar to standard bridge control register */ -#define  PCI_CB_BRIDGE_CTL_SERR		0x02 -#define  PCI_CB_BRIDGE_CTL_ISA		0x04 -#define  PCI_CB_BRIDGE_CTL_VGA		0x08 -#define  PCI_CB_BRIDGE_CTL_MASTER_ABORT	0x20 -#define  PCI_CB_BRIDGE_CTL_CB_RESET	0x40	/* CardBus reset */ -#define  PCI_CB_BRIDGE_CTL_16BIT_INT	0x80	/* Enable interrupt for 16-bit cards */ -#define  PCI_CB_BRIDGE_CTL_PREFETCH_MEM0 0x100	/* Prefetch enable for both memory regions */ -#define  PCI_CB_BRIDGE_CTL_PREFETCH_MEM1 0x200 -#define  PCI_CB_BRIDGE_CTL_POST_WRITES	0x400 -#define PCI_CB_SUBSYSTEM_VENDOR_ID	0x40 -#define PCI_CB_SUBSYSTEM_ID		0x42 -#define PCI_CB_LEGACY_MODE_BASE		0x44	/* 16-bit PC Card legacy mode base address (ExCa) */ -/* 0x48-0x7f reserved */ - -/* Capability lists */ - -#define PCI_CAP_LIST_ID		0	/* Capability ID */ -#define  PCI_CAP_ID_PM		0x01	/* Power Management */ -#define  PCI_CAP_ID_AGP		0x02	/* Accelerated Graphics Port */ -#define  PCI_CAP_ID_VPD		0x03	/* Vital Product Data */ -#define  PCI_CAP_ID_SLOTID	0x04	/* Slot Identification */ -#define  PCI_CAP_ID_MSI		0x05	/* Message Signalled Interrupts */ -#define  PCI_CAP_ID_CHSWP	0x06	/* CompactPCI HotSwap */ -#define  PCI_CAP_ID_PCIX	0x07	/* PCI-X */ -#define  PCI_CAP_ID_HT		0x08	/* HyperTransport */ -#define  PCI_CAP_ID_VNDR	0x09	/* Vendor specific */ -#define  PCI_CAP_ID_DBG		0x0A	/* Debug port */ -#define  PCI_CAP_ID_CCRC	0x0B	/* CompactPCI Central Resource Control */ -#define  PCI_CAP_ID_SHPC 	0x0C	/* PCI Standard Hot-Plug Controller */ -#define  PCI_CAP_ID_SSVID	0x0D	/* Bridge subsystem vendor/device ID */ -#define  PCI_CAP_ID_AGP3	0x0E	/* AGP Target PCI-PCI bridge */ -#define  PCI_CAP_ID_SECDEV	0x0F	/* Secure Device */ -#define  PCI_CAP_ID_EXP 	0x10	/* PCI Express */ -#define  PCI_CAP_ID_MSIX	0x11	/* MSI-X */ -#define  PCI_CAP_ID_SATA	0x12	/* SATA Data/Index Conf. */ -#define  PCI_CAP_ID_AF		0x13	/* PCI Advanced Features */ -#define  PCI_CAP_ID_MAX		PCI_CAP_ID_AF -#define PCI_CAP_LIST_NEXT	1	/* Next capability in the list */ -#define PCI_CAP_FLAGS		2	/* Capability defined flags (16 bits) */ -#define PCI_CAP_SIZEOF		4 - -/* Power Management Registers */ - -#define PCI_PM_PMC		2	/* PM Capabilities Register */ -#define  PCI_PM_CAP_VER_MASK	0x0007	/* Version */ -#define  PCI_PM_CAP_PME_CLOCK	0x0008	/* PME clock required */ -#define  PCI_PM_CAP_RESERVED    0x0010  /* Reserved field */ -#define  PCI_PM_CAP_DSI		0x0020	/* Device specific initialization */ -#define  PCI_PM_CAP_AUX_POWER	0x01C0	/* Auxiliary power support mask */ -#define  PCI_PM_CAP_D1		0x0200	/* D1 power state support */ -#define  PCI_PM_CAP_D2		0x0400	/* D2 power state support */ -#define  PCI_PM_CAP_PME		0x0800	/* PME pin supported */ -#define  PCI_PM_CAP_PME_MASK	0xF800	/* PME Mask of all supported states */ -#define  PCI_PM_CAP_PME_D0	0x0800	/* PME# from D0 */ -#define  PCI_PM_CAP_PME_D1	0x1000	/* PME# from D1 */ -#define  PCI_PM_CAP_PME_D2	0x2000	/* PME# from D2 */ -#define  PCI_PM_CAP_PME_D3	0x4000	/* PME# from D3 (hot) */ -#define  PCI_PM_CAP_PME_D3cold	0x8000	/* PME# from D3 (cold) */ -#define  PCI_PM_CAP_PME_SHIFT	11	/* Start of the PME Mask in PMC */ -#define PCI_PM_CTRL		4	/* PM control and status register */ -#define  PCI_PM_CTRL_STATE_MASK	0x0003	/* Current power state (D0 to D3) */ -#define  PCI_PM_CTRL_NO_SOFT_RESET	0x0008	/* No reset for D3hot->D0 */ -#define  PCI_PM_CTRL_PME_ENABLE	0x0100	/* PME pin enable */ -#define  PCI_PM_CTRL_DATA_SEL_MASK	0x1e00	/* Data select (??) */ -#define  PCI_PM_CTRL_DATA_SCALE_MASK	0x6000	/* Data scale (??) */ -#define  PCI_PM_CTRL_PME_STATUS	0x8000	/* PME pin status */ -#define PCI_PM_PPB_EXTENSIONS	6	/* PPB support extensions (??) */ -#define  PCI_PM_PPB_B2_B3	0x40	/* Stop clock when in D3hot (??) */ -#define  PCI_PM_BPCC_ENABLE	0x80	/* Bus power/clock control enable (??) */ -#define PCI_PM_DATA_REGISTER	7	/* (??) */ -#define PCI_PM_SIZEOF		8 - -/* AGP registers */ - -#define PCI_AGP_VERSION		2	/* BCD version number */ -#define PCI_AGP_RFU		3	/* Rest of capability flags */ -#define PCI_AGP_STATUS		4	/* Status register */ -#define  PCI_AGP_STATUS_RQ_MASK	0xff000000	/* Maximum number of requests - 1 */ -#define  PCI_AGP_STATUS_SBA	0x0200	/* Sideband addressing supported */ -#define  PCI_AGP_STATUS_64BIT	0x0020	/* 64-bit addressing supported */ -#define  PCI_AGP_STATUS_FW	0x0010	/* FW transfers supported */ -#define  PCI_AGP_STATUS_RATE4	0x0004	/* 4x transfer rate supported */ -#define  PCI_AGP_STATUS_RATE2	0x0002	/* 2x transfer rate supported */ -#define  PCI_AGP_STATUS_RATE1	0x0001	/* 1x transfer rate supported */ -#define PCI_AGP_COMMAND		8	/* Control register */ -#define  PCI_AGP_COMMAND_RQ_MASK 0xff000000  /* Master: Maximum number of requests */ -#define  PCI_AGP_COMMAND_SBA	0x0200	/* Sideband addressing enabled */ -#define  PCI_AGP_COMMAND_AGP	0x0100	/* Allow processing of AGP transactions */ -#define  PCI_AGP_COMMAND_64BIT	0x0020 	/* Allow processing of 64-bit addresses */ -#define  PCI_AGP_COMMAND_FW	0x0010 	/* Force FW transfers */ -#define  PCI_AGP_COMMAND_RATE4	0x0004	/* Use 4x rate */ -#define  PCI_AGP_COMMAND_RATE2	0x0002	/* Use 2x rate */ -#define  PCI_AGP_COMMAND_RATE1	0x0001	/* Use 1x rate */ -#define PCI_AGP_SIZEOF		12 - -/* Vital Product Data */ - -#define PCI_VPD_ADDR		2	/* Address to access (15 bits!) */ -#define  PCI_VPD_ADDR_MASK	0x7fff	/* Address mask */ -#define  PCI_VPD_ADDR_F		0x8000	/* Write 0, 1 indicates completion */ -#define PCI_VPD_DATA		4	/* 32-bits of data returned here */ -#define PCI_CAP_VPD_SIZEOF	8 - -/* Slot Identification */ - -#define PCI_SID_ESR		2	/* Expansion Slot Register */ -#define  PCI_SID_ESR_NSLOTS	0x1f	/* Number of expansion slots available */ -#define  PCI_SID_ESR_FIC	0x20	/* First In Chassis Flag */ -#define PCI_SID_CHASSIS_NR	3	/* Chassis Number */ - -/* Message Signalled Interrupts registers */ - -#define PCI_MSI_FLAGS		2	/* Various flags */ -#define  PCI_MSI_FLAGS_64BIT	0x80	/* 64-bit addresses allowed */ -#define  PCI_MSI_FLAGS_QSIZE	0x70	/* Message queue size configured */ -#define  PCI_MSI_FLAGS_QMASK	0x0e	/* Maximum queue size available */ -#define  PCI_MSI_FLAGS_ENABLE	0x01	/* MSI feature enabled */ -#define  PCI_MSI_FLAGS_MASKBIT	0x100	/* 64-bit mask bits allowed */ -#define PCI_MSI_RFU		3	/* Rest of capability flags */ -#define PCI_MSI_ADDRESS_LO	4	/* Lower 32 bits */ -#define PCI_MSI_ADDRESS_HI	8	/* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */ -#define PCI_MSI_DATA_32		8	/* 16 bits of data for 32-bit devices */ -#define PCI_MSI_MASK_32		12	/* Mask bits register for 32-bit devices */ -#define PCI_MSI_PENDING_32	16	/* Pending intrs for 32-bit devices */ -#define PCI_MSI_DATA_64		12	/* 16 bits of data for 64-bit devices */ -#define PCI_MSI_MASK_64		16	/* Mask bits register for 64-bit devices */ -#define PCI_MSI_PENDING_64	20	/* Pending intrs for 64-bit devices */ - -/* MSI-X registers */ -#define PCI_MSIX_FLAGS		2 -#define  PCI_MSIX_FLAGS_QSIZE	0x7FF -#define  PCI_MSIX_FLAGS_ENABLE	(1 << 15) -#define  PCI_MSIX_FLAGS_MASKALL	(1 << 14) -#define PCI_MSIX_TABLE		4 -#define PCI_MSIX_PBA		8 -#define  PCI_MSIX_FLAGS_BIRMASK	(7 << 0) -#define PCI_CAP_MSIX_SIZEOF	12	/* size of MSIX registers */ - -/* MSI-X entry's format */ -#define PCI_MSIX_ENTRY_SIZE		16 -#define  PCI_MSIX_ENTRY_LOWER_ADDR	0 -#define  PCI_MSIX_ENTRY_UPPER_ADDR	4 -#define  PCI_MSIX_ENTRY_DATA		8 -#define  PCI_MSIX_ENTRY_VECTOR_CTRL	12 -#define   PCI_MSIX_ENTRY_CTRL_MASKBIT	1 - -/* CompactPCI Hotswap Register */ - -#define PCI_CHSWP_CSR		2	/* Control and Status Register */ -#define  PCI_CHSWP_DHA		0x01	/* Device Hiding Arm */ -#define  PCI_CHSWP_EIM		0x02	/* ENUM# Signal Mask */ -#define  PCI_CHSWP_PIE		0x04	/* Pending Insert or Extract */ -#define  PCI_CHSWP_LOO		0x08	/* LED On / Off */ -#define  PCI_CHSWP_PI		0x30	/* Programming Interface */ -#define  PCI_CHSWP_EXT		0x40	/* ENUM# status - extraction */ -#define  PCI_CHSWP_INS		0x80	/* ENUM# status - insertion */ - -/* PCI Advanced Feature registers */ - -#define PCI_AF_LENGTH		2 -#define PCI_AF_CAP		3 -#define  PCI_AF_CAP_TP		0x01 -#define  PCI_AF_CAP_FLR		0x02 -#define PCI_AF_CTRL		4 -#define  PCI_AF_CTRL_FLR	0x01 -#define PCI_AF_STATUS		5 -#define  PCI_AF_STATUS_TP	0x01 -#define PCI_CAP_AF_SIZEOF	6	/* size of AF registers */ - -/* PCI-X registers */ - -#define PCI_X_CMD		2	/* Modes & Features */ -#define  PCI_X_CMD_DPERR_E	0x0001	/* Data Parity Error Recovery Enable */ -#define  PCI_X_CMD_ERO		0x0002	/* Enable Relaxed Ordering */ -#define  PCI_X_CMD_READ_512	0x0000	/* 512 byte maximum read byte count */ -#define  PCI_X_CMD_READ_1K	0x0004	/* 1Kbyte maximum read byte count */ -#define  PCI_X_CMD_READ_2K	0x0008	/* 2Kbyte maximum read byte count */ -#define  PCI_X_CMD_READ_4K	0x000c	/* 4Kbyte maximum read byte count */ -#define  PCI_X_CMD_MAX_READ	0x000c	/* Max Memory Read Byte Count */ -				/* Max # of outstanding split transactions */ -#define  PCI_X_CMD_SPLIT_1	0x0000	/* Max 1 */ -#define  PCI_X_CMD_SPLIT_2	0x0010	/* Max 2 */ -#define  PCI_X_CMD_SPLIT_3	0x0020	/* Max 3 */ -#define  PCI_X_CMD_SPLIT_4	0x0030	/* Max 4 */ -#define  PCI_X_CMD_SPLIT_8	0x0040	/* Max 8 */ -#define  PCI_X_CMD_SPLIT_12	0x0050	/* Max 12 */ -#define  PCI_X_CMD_SPLIT_16	0x0060	/* Max 16 */ -#define  PCI_X_CMD_SPLIT_32	0x0070	/* Max 32 */ -#define  PCI_X_CMD_MAX_SPLIT	0x0070	/* Max Outstanding Split Transactions */ -#define  PCI_X_CMD_VERSION(x) 	(((x) >> 12) & 3) /* Version */ -#define PCI_X_STATUS		4	/* PCI-X capabilities */ -#define  PCI_X_STATUS_DEVFN	0x000000ff	/* A copy of devfn */ -#define  PCI_X_STATUS_BUS	0x0000ff00	/* A copy of bus nr */ -#define  PCI_X_STATUS_64BIT	0x00010000	/* 64-bit device */ -#define  PCI_X_STATUS_133MHZ	0x00020000	/* 133 MHz capable */ -#define  PCI_X_STATUS_SPL_DISC	0x00040000	/* Split Completion Discarded */ -#define  PCI_X_STATUS_UNX_SPL	0x00080000	/* Unexpected Split Completion */ -#define  PCI_X_STATUS_COMPLEX	0x00100000	/* Device Complexity */ -#define  PCI_X_STATUS_MAX_READ	0x00600000	/* Designed Max Memory Read Count */ -#define  PCI_X_STATUS_MAX_SPLIT	0x03800000	/* Designed Max Outstanding Split Transactions */ -#define  PCI_X_STATUS_MAX_CUM	0x1c000000	/* Designed Max Cumulative Read Size */ -#define  PCI_X_STATUS_SPL_ERR	0x20000000	/* Rcvd Split Completion Error Msg */ -#define  PCI_X_STATUS_266MHZ	0x40000000	/* 266 MHz capable */ -#define  PCI_X_STATUS_533MHZ	0x80000000	/* 533 MHz capable */ -#define PCI_X_ECC_CSR		8	/* ECC control and status */ -#define PCI_CAP_PCIX_SIZEOF_V0	8	/* size of registers for Version 0 */ -#define PCI_CAP_PCIX_SIZEOF_V1	24	/* size for Version 1 */ -#define PCI_CAP_PCIX_SIZEOF_V2	PCI_CAP_PCIX_SIZEOF_V1	/* Same for v2 */ - -/* PCI Bridge Subsystem ID registers */ - -#define PCI_SSVID_VENDOR_ID     4	/* PCI-Bridge subsystem vendor id register */ -#define PCI_SSVID_DEVICE_ID     6	/* PCI-Bridge subsystem device id register */ - -/* PCI Express capability registers */ - -#define PCI_EXP_FLAGS		2	/* Capabilities register */ -#define PCI_EXP_FLAGS_VERS	0x000f	/* Capability version */ -#define PCI_EXP_FLAGS_TYPE	0x00f0	/* Device/Port type */ -#define  PCI_EXP_TYPE_ENDPOINT	0x0	/* Express Endpoint */ -#define  PCI_EXP_TYPE_LEG_END	0x1	/* Legacy Endpoint */ -#define  PCI_EXP_TYPE_ROOT_PORT 0x4	/* Root Port */ -#define  PCI_EXP_TYPE_UPSTREAM	0x5	/* Upstream Port */ -#define  PCI_EXP_TYPE_DOWNSTREAM 0x6	/* Downstream Port */ -#define  PCI_EXP_TYPE_PCI_BRIDGE 0x7	/* PCI/PCI-X Bridge */ -#define  PCI_EXP_TYPE_PCIE_BRIDGE 0x8	/* PCI/PCI-X to PCIE Bridge */ -#define  PCI_EXP_TYPE_RC_END	0x9	/* Root Complex Integrated Endpoint */ -#define  PCI_EXP_TYPE_RC_EC	0xa	/* Root Complex Event Collector */ -#define PCI_EXP_FLAGS_SLOT	0x0100	/* Slot implemented */ -#define PCI_EXP_FLAGS_IRQ	0x3e00	/* Interrupt message number */ -#define PCI_EXP_DEVCAP		4	/* Device capabilities */ -#define  PCI_EXP_DEVCAP_PAYLOAD	0x07	/* Max_Payload_Size */ -#define  PCI_EXP_DEVCAP_PHANTOM	0x18	/* Phantom functions */ -#define  PCI_EXP_DEVCAP_EXT_TAG	0x20	/* Extended tags */ -#define  PCI_EXP_DEVCAP_L0S	0x1c0	/* L0s Acceptable Latency */ -#define  PCI_EXP_DEVCAP_L1	0xe00	/* L1 Acceptable Latency */ -#define  PCI_EXP_DEVCAP_ATN_BUT	0x1000	/* Attention Button Present */ -#define  PCI_EXP_DEVCAP_ATN_IND	0x2000	/* Attention Indicator Present */ -#define  PCI_EXP_DEVCAP_PWR_IND	0x4000	/* Power Indicator Present */ -#define  PCI_EXP_DEVCAP_RBER	0x8000	/* Role-Based Error Reporting */ -#define  PCI_EXP_DEVCAP_PWR_VAL	0x3fc0000 /* Slot Power Limit Value */ -#define  PCI_EXP_DEVCAP_PWR_SCL	0xc000000 /* Slot Power Limit Scale */ -#define  PCI_EXP_DEVCAP_FLR     0x10000000 /* Function Level Reset */ -#define PCI_EXP_DEVCTL		8	/* Device Control */ -#define  PCI_EXP_DEVCTL_CERE	0x0001	/* Correctable Error Reporting En. */ -#define  PCI_EXP_DEVCTL_NFERE	0x0002	/* Non-Fatal Error Reporting Enable */ -#define  PCI_EXP_DEVCTL_FERE	0x0004	/* Fatal Error Reporting Enable */ -#define  PCI_EXP_DEVCTL_URRE	0x0008	/* Unsupported Request Reporting En. */ -#define  PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */ -#define  PCI_EXP_DEVCTL_PAYLOAD	0x00e0	/* Max_Payload_Size */ -#define  PCI_EXP_DEVCTL_EXT_TAG	0x0100	/* Extended Tag Field Enable */ -#define  PCI_EXP_DEVCTL_PHANTOM	0x0200	/* Phantom Functions Enable */ -#define  PCI_EXP_DEVCTL_AUX_PME	0x0400	/* Auxiliary Power PM Enable */ -#define  PCI_EXP_DEVCTL_NOSNOOP_EN 0x0800  /* Enable No Snoop */ -#define  PCI_EXP_DEVCTL_READRQ	0x7000	/* Max_Read_Request_Size */ -#define  PCI_EXP_DEVCTL_BCR_FLR 0x8000  /* Bridge Configuration Retry / FLR */ -#define PCI_EXP_DEVSTA		10	/* Device Status */ -#define  PCI_EXP_DEVSTA_CED	0x01	/* Correctable Error Detected */ -#define  PCI_EXP_DEVSTA_NFED	0x02	/* Non-Fatal Error Detected */ -#define  PCI_EXP_DEVSTA_FED	0x04	/* Fatal Error Detected */ -#define  PCI_EXP_DEVSTA_URD	0x08	/* Unsupported Request Detected */ -#define  PCI_EXP_DEVSTA_AUXPD	0x10	/* AUX Power Detected */ -#define  PCI_EXP_DEVSTA_TRPND	0x20	/* Transactions Pending */ -#define PCI_EXP_LNKCAP		12	/* Link Capabilities */ -#define  PCI_EXP_LNKCAP_SLS	0x0000000f /* Supported Link Speeds */ -#define  PCI_EXP_LNKCAP_MLW	0x000003f0 /* Maximum Link Width */ -#define  PCI_EXP_LNKCAP_ASPMS	0x00000c00 /* ASPM Support */ -#define  PCI_EXP_LNKCAP_L0SEL	0x00007000 /* L0s Exit Latency */ -#define  PCI_EXP_LNKCAP_L1EL	0x00038000 /* L1 Exit Latency */ -#define  PCI_EXP_LNKCAP_CLKPM	0x00040000 /* L1 Clock Power Management */ -#define  PCI_EXP_LNKCAP_SDERC	0x00080000 /* Surprise Down Error Reporting Capable */ -#define  PCI_EXP_LNKCAP_DLLLARC	0x00100000 /* Data Link Layer Link Active Reporting Capable */ -#define  PCI_EXP_LNKCAP_LBNC	0x00200000 /* Link Bandwidth Notification Capability */ -#define  PCI_EXP_LNKCAP_PN	0xff000000 /* Port Number */ -#define PCI_EXP_LNKCTL		16	/* Link Control */ -#define  PCI_EXP_LNKCTL_ASPMC	0x0003	/* ASPM Control */ -#define  PCI_EXP_LNKCTL_RCB	0x0008	/* Read Completion Boundary */ -#define  PCI_EXP_LNKCTL_LD	0x0010	/* Link Disable */ -#define  PCI_EXP_LNKCTL_RL	0x0020	/* Retrain Link */ -#define  PCI_EXP_LNKCTL_CCC	0x0040	/* Common Clock Configuration */ -#define  PCI_EXP_LNKCTL_ES	0x0080	/* Extended Synch */ -#define  PCI_EXP_LNKCTL_CLKREQ_EN 0x100	/* Enable clkreq */ -#define  PCI_EXP_LNKCTL_HAWD	0x0200	/* Hardware Autonomous Width Disable */ -#define  PCI_EXP_LNKCTL_LBMIE	0x0400	/* Link Bandwidth Management Interrupt Enable */ -#define  PCI_EXP_LNKCTL_LABIE	0x0800	/* Lnk Autonomous Bandwidth Interrupt Enable */ -#define PCI_EXP_LNKSTA		18	/* Link Status */ -#define  PCI_EXP_LNKSTA_CLS	0x000f	/* Current Link Speed */ -#define  PCI_EXP_LNKSTA_CLS_2_5GB 0x01	/* Current Link Speed 2.5GT/s */ -#define  PCI_EXP_LNKSTA_CLS_5_0GB 0x02	/* Current Link Speed 5.0GT/s */ -#define  PCI_EXP_LNKSTA_NLW	0x03f0	/* Nogotiated Link Width */ -#define  PCI_EXP_LNKSTA_NLW_SHIFT 4	/* start of NLW mask in link status */ -#define  PCI_EXP_LNKSTA_LT	0x0800	/* Link Training */ -#define  PCI_EXP_LNKSTA_SLC	0x1000	/* Slot Clock Configuration */ -#define  PCI_EXP_LNKSTA_DLLLA	0x2000	/* Data Link Layer Link Active */ -#define  PCI_EXP_LNKSTA_LBMS	0x4000	/* Link Bandwidth Management Status */ -#define  PCI_EXP_LNKSTA_LABS	0x8000	/* Link Autonomous Bandwidth Status */ -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1	20	/* v1 endpoints end here */ -#define PCI_EXP_SLTCAP		20	/* Slot Capabilities */ -#define  PCI_EXP_SLTCAP_ABP	0x00000001 /* Attention Button Present */ -#define  PCI_EXP_SLTCAP_PCP	0x00000002 /* Power Controller Present */ -#define  PCI_EXP_SLTCAP_MRLSP	0x00000004 /* MRL Sensor Present */ -#define  PCI_EXP_SLTCAP_AIP	0x00000008 /* Attention Indicator Present */ -#define  PCI_EXP_SLTCAP_PIP	0x00000010 /* Power Indicator Present */ -#define  PCI_EXP_SLTCAP_HPS	0x00000020 /* Hot-Plug Surprise */ -#define  PCI_EXP_SLTCAP_HPC	0x00000040 /* Hot-Plug Capable */ -#define  PCI_EXP_SLTCAP_SPLV	0x00007f80 /* Slot Power Limit Value */ -#define  PCI_EXP_SLTCAP_SPLS	0x00018000 /* Slot Power Limit Scale */ -#define  PCI_EXP_SLTCAP_EIP	0x00020000 /* Electromechanical Interlock Present */ -#define  PCI_EXP_SLTCAP_NCCS	0x00040000 /* No Command Completed Support */ -#define  PCI_EXP_SLTCAP_PSN	0xfff80000 /* Physical Slot Number */ -#define PCI_EXP_SLTCTL		24	/* Slot Control */ -#define  PCI_EXP_SLTCTL_ABPE	0x0001	/* Attention Button Pressed Enable */ -#define  PCI_EXP_SLTCTL_PFDE	0x0002	/* Power Fault Detected Enable */ -#define  PCI_EXP_SLTCTL_MRLSCE	0x0004	/* MRL Sensor Changed Enable */ -#define  PCI_EXP_SLTCTL_PDCE	0x0008	/* Presence Detect Changed Enable */ -#define  PCI_EXP_SLTCTL_CCIE	0x0010	/* Command Completed Interrupt Enable */ -#define  PCI_EXP_SLTCTL_HPIE	0x0020	/* Hot-Plug Interrupt Enable */ -#define  PCI_EXP_SLTCTL_AIC	0x00c0	/* Attention Indicator Control */ -#define  PCI_EXP_SLTCTL_PIC	0x0300	/* Power Indicator Control */ -#define  PCI_EXP_SLTCTL_PCC	0x0400	/* Power Controller Control */ -#define  PCI_EXP_SLTCTL_EIC	0x0800	/* Electromechanical Interlock Control */ -#define  PCI_EXP_SLTCTL_DLLSCE	0x1000	/* Data Link Layer State Changed Enable */ -#define PCI_EXP_SLTSTA		26	/* Slot Status */ -#define  PCI_EXP_SLTSTA_ABP	0x0001	/* Attention Button Pressed */ -#define  PCI_EXP_SLTSTA_PFD	0x0002	/* Power Fault Detected */ -#define  PCI_EXP_SLTSTA_MRLSC	0x0004	/* MRL Sensor Changed */ -#define  PCI_EXP_SLTSTA_PDC	0x0008	/* Presence Detect Changed */ -#define  PCI_EXP_SLTSTA_CC	0x0010	/* Command Completed */ -#define  PCI_EXP_SLTSTA_MRLSS	0x0020	/* MRL Sensor State */ -#define  PCI_EXP_SLTSTA_PDS	0x0040	/* Presence Detect State */ -#define  PCI_EXP_SLTSTA_EIS	0x0080	/* Electromechanical Interlock Status */ -#define  PCI_EXP_SLTSTA_DLLSC	0x0100	/* Data Link Layer State Changed */ -#define PCI_EXP_RTCTL		28	/* Root Control */ -#define  PCI_EXP_RTCTL_SECEE	0x01	/* System Error on Correctable Error */ -#define  PCI_EXP_RTCTL_SENFEE	0x02	/* System Error on Non-Fatal Error */ -#define  PCI_EXP_RTCTL_SEFEE	0x04	/* System Error on Fatal Error */ -#define  PCI_EXP_RTCTL_PMEIE	0x08	/* PME Interrupt Enable */ -#define  PCI_EXP_RTCTL_CRSSVE	0x10	/* CRS Software Visibility Enable */ -#define PCI_EXP_RTCAP		30	/* Root Capabilities */ -#define PCI_EXP_RTSTA		32	/* Root Status */ -#define PCI_EXP_RTSTA_PME	0x10000 /* PME status */ -#define PCI_EXP_RTSTA_PENDING	0x20000 /* PME pending */ -/* - * Note that the following PCI Express 'Capability Structure' registers - * were introduced with 'Capability Version' 0x2 (v2).  These registers - * do not exist on devices with Capability Version 1.  Use pci_pcie_cap2() - * to use these fields safely. - */ -#define PCI_EXP_DEVCAP2		36	/* Device Capabilities 2 */ -#define  PCI_EXP_DEVCAP2_ARI	0x20	/* Alternative Routing-ID */ -#define  PCI_EXP_DEVCAP2_LTR	0x800	/* Latency tolerance reporting */ -#define  PCI_EXP_OBFF_MASK	0xc0000 /* OBFF support mechanism */ -#define  PCI_EXP_OBFF_MSG	0x40000 /* New message signaling */ -#define  PCI_EXP_OBFF_WAKE	0x80000 /* Re-use WAKE# for OBFF */ -#define PCI_EXP_DEVCTL2		40	/* Device Control 2 */ -#define  PCI_EXP_DEVCTL2_ARI	0x20	/* Alternative Routing-ID */ -#define  PCI_EXP_IDO_REQ_EN	0x100	/* ID-based ordering request enable */ -#define  PCI_EXP_IDO_CMP_EN	0x200	/* ID-based ordering completion enable */ -#define  PCI_EXP_LTR_EN		0x400	/* Latency tolerance reporting */ -#define  PCI_EXP_OBFF_MSGA_EN	0x2000	/* OBFF enable with Message type A */ -#define  PCI_EXP_OBFF_MSGB_EN	0x4000	/* OBFF enable with Message type B */ -#define  PCI_EXP_OBFF_WAKE_EN	0x6000	/* OBFF using WAKE# signaling */ -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2	44	/* v2 endpoints end here */ -#define PCI_EXP_LNKCAP2		44	/* Link Capability 2 */ -#define  PCI_EXP_LNKCAP2_SLS_2_5GB 0x01	/* Current Link Speed 2.5GT/s */ -#define  PCI_EXP_LNKCAP2_SLS_5_0GB 0x02	/* Current Link Speed 5.0GT/s */ -#define  PCI_EXP_LNKCAP2_SLS_8_0GB 0x04	/* Current Link Speed 8.0GT/s */ -#define  PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */ -#define PCI_EXP_LNKCTL2		48	/* Link Control 2 */ -#define PCI_EXP_LNKSTA2		50	/* Link Status 2 */ -#define PCI_EXP_SLTCTL2		56	/* Slot Control 2 */ - -/* Extended Capabilities (PCI-X 2.0 and Express) */ -#define PCI_EXT_CAP_ID(header)		(header & 0x0000ffff) -#define PCI_EXT_CAP_VER(header)		((header >> 16) & 0xf) -#define PCI_EXT_CAP_NEXT(header)	((header >> 20) & 0xffc) - -#define PCI_EXT_CAP_ID_ERR	0x01	/* Advanced Error Reporting */ -#define PCI_EXT_CAP_ID_VC	0x02	/* Virtual Channel Capability */ -#define PCI_EXT_CAP_ID_DSN	0x03	/* Device Serial Number */ -#define PCI_EXT_CAP_ID_PWR	0x04	/* Power Budgeting */ -#define PCI_EXT_CAP_ID_RCLD	0x05	/* Root Complex Link Declaration */ -#define PCI_EXT_CAP_ID_RCILC	0x06	/* Root Complex Internal Link Control */ -#define PCI_EXT_CAP_ID_RCEC	0x07	/* Root Complex Event Collector */ -#define PCI_EXT_CAP_ID_MFVC	0x08	/* Multi-Function VC Capability */ -#define PCI_EXT_CAP_ID_VC9	0x09	/* same as _VC */ -#define PCI_EXT_CAP_ID_RCRB	0x0A	/* Root Complex RB? */ -#define PCI_EXT_CAP_ID_VNDR	0x0B	/* Vendor Specific */ -#define PCI_EXT_CAP_ID_CAC	0x0C	/* Config Access - obsolete */ -#define PCI_EXT_CAP_ID_ACS	0x0D	/* Access Control Services */ -#define PCI_EXT_CAP_ID_ARI	0x0E	/* Alternate Routing ID */ -#define PCI_EXT_CAP_ID_ATS	0x0F	/* Address Translation Services */ -#define PCI_EXT_CAP_ID_SRIOV	0x10	/* Single Root I/O Virtualization */ -#define PCI_EXT_CAP_ID_MRIOV	0x11	/* Multi Root I/O Virtualization */ -#define PCI_EXT_CAP_ID_MCAST	0x12	/* Multicast */ -#define PCI_EXT_CAP_ID_PRI	0x13	/* Page Request Interface */ -#define PCI_EXT_CAP_ID_AMD_XXX	0x14	/* reserved for AMD */ -#define PCI_EXT_CAP_ID_REBAR	0x15	/* resizable BAR */ -#define PCI_EXT_CAP_ID_DPA	0x16	/* dynamic power alloc */ -#define PCI_EXT_CAP_ID_TPH	0x17	/* TPH request */ -#define PCI_EXT_CAP_ID_LTR	0x18	/* latency tolerance reporting */ -#define PCI_EXT_CAP_ID_SECPCI	0x19	/* Secondary PCIe */ -#define PCI_EXT_CAP_ID_PMUX	0x1A	/* Protocol Multiplexing */ -#define PCI_EXT_CAP_ID_PASID	0x1B	/* Process Address Space ID */ -#define PCI_EXT_CAP_ID_MAX	PCI_EXT_CAP_ID_PASID - -#define PCI_EXT_CAP_DSN_SIZEOF	12 -#define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40 - -/* Advanced Error Reporting */ -#define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */ -#define  PCI_ERR_UNC_TRAIN	0x00000001	/* Training */ -#define  PCI_ERR_UNC_DLP	0x00000010	/* Data Link Protocol */ -#define  PCI_ERR_UNC_SURPDN	0x00000020	/* Surprise Down */ -#define  PCI_ERR_UNC_POISON_TLP	0x00001000	/* Poisoned TLP */ -#define  PCI_ERR_UNC_FCP	0x00002000	/* Flow Control Protocol */ -#define  PCI_ERR_UNC_COMP_TIME	0x00004000	/* Completion Timeout */ -#define  PCI_ERR_UNC_COMP_ABORT	0x00008000	/* Completer Abort */ -#define  PCI_ERR_UNC_UNX_COMP	0x00010000	/* Unexpected Completion */ -#define  PCI_ERR_UNC_RX_OVER	0x00020000	/* Receiver Overflow */ -#define  PCI_ERR_UNC_MALF_TLP	0x00040000	/* Malformed TLP */ -#define  PCI_ERR_UNC_ECRC	0x00080000	/* ECRC Error Status */ -#define  PCI_ERR_UNC_UNSUP	0x00100000	/* Unsupported Request */ -#define  PCI_ERR_UNC_ACSV	0x00200000	/* ACS Violation */ -#define  PCI_ERR_UNC_INTN	0x00400000	/* internal error */ -#define  PCI_ERR_UNC_MCBTLP	0x00800000	/* MC blocked TLP */ -#define  PCI_ERR_UNC_ATOMEG	0x01000000	/* Atomic egress blocked */ -#define  PCI_ERR_UNC_TLPPRE	0x02000000	/* TLP prefix blocked */ -#define PCI_ERR_UNCOR_MASK	8	/* Uncorrectable Error Mask */ -	/* Same bits as above */ -#define PCI_ERR_UNCOR_SEVER	12	/* Uncorrectable Error Severity */ -	/* Same bits as above */ -#define PCI_ERR_COR_STATUS	16	/* Correctable Error Status */ -#define  PCI_ERR_COR_RCVR	0x00000001	/* Receiver Error Status */ -#define  PCI_ERR_COR_BAD_TLP	0x00000040	/* Bad TLP Status */ -#define  PCI_ERR_COR_BAD_DLLP	0x00000080	/* Bad DLLP Status */ -#define  PCI_ERR_COR_REP_ROLL	0x00000100	/* REPLAY_NUM Rollover */ -#define  PCI_ERR_COR_REP_TIMER	0x00001000	/* Replay Timer Timeout */ -#define  PCI_ERR_COR_ADV_NFAT	0x00002000	/* Advisory Non-Fatal */ -#define  PCI_ERR_COR_INTERNAL	0x00004000	/* Corrected Internal */ -#define  PCI_ERR_COR_LOG_OVER	0x00008000	/* Header Log Overflow */ -#define PCI_ERR_COR_MASK	20	/* Correctable Error Mask */ -	/* Same bits as above */ -#define PCI_ERR_CAP		24	/* Advanced Error Capabilities */ -#define  PCI_ERR_CAP_FEP(x)	((x) & 31)	/* First Error Pointer */ -#define  PCI_ERR_CAP_ECRC_GENC	0x00000020	/* ECRC Generation Capable */ -#define  PCI_ERR_CAP_ECRC_GENE	0x00000040	/* ECRC Generation Enable */ -#define  PCI_ERR_CAP_ECRC_CHKC	0x00000080	/* ECRC Check Capable */ -#define  PCI_ERR_CAP_ECRC_CHKE	0x00000100	/* ECRC Check Enable */ -#define PCI_ERR_HEADER_LOG	28	/* Header Log Register (16 bytes) */ -#define PCI_ERR_ROOT_COMMAND	44	/* Root Error Command */ -/* Correctable Err Reporting Enable */ -#define PCI_ERR_ROOT_CMD_COR_EN		0x00000001 -/* Non-fatal Err Reporting Enable */ -#define PCI_ERR_ROOT_CMD_NONFATAL_EN	0x00000002 -/* Fatal Err Reporting Enable */ -#define PCI_ERR_ROOT_CMD_FATAL_EN	0x00000004 -#define PCI_ERR_ROOT_STATUS	48 -#define PCI_ERR_ROOT_COR_RCV		0x00000001	/* ERR_COR Received */ -/* Multi ERR_COR Received */ -#define PCI_ERR_ROOT_MULTI_COR_RCV	0x00000002 -/* ERR_FATAL/NONFATAL Recevied */ -#define PCI_ERR_ROOT_UNCOR_RCV		0x00000004 -/* Multi ERR_FATAL/NONFATAL Recevied */ -#define PCI_ERR_ROOT_MULTI_UNCOR_RCV	0x00000008 -#define PCI_ERR_ROOT_FIRST_FATAL	0x00000010	/* First Fatal */ -#define PCI_ERR_ROOT_NONFATAL_RCV	0x00000020	/* Non-Fatal Received */ -#define PCI_ERR_ROOT_FATAL_RCV		0x00000040	/* Fatal Received */ -#define PCI_ERR_ROOT_ERR_SRC	52	/* Error Source Identification */ - -/* Virtual Channel */ -#define PCI_VC_PORT_REG1	4 -#define  PCI_VC_REG1_EVCC	0x7	/* extended vc count */ -#define PCI_VC_PORT_REG2	8 -#define  PCI_VC_REG2_32_PHASE	0x2 -#define  PCI_VC_REG2_64_PHASE	0x4 -#define  PCI_VC_REG2_128_PHASE	0x8 -#define PCI_VC_PORT_CTRL	12 -#define PCI_VC_PORT_STATUS	14 -#define PCI_VC_RES_CAP		16 -#define PCI_VC_RES_CTRL		20 -#define PCI_VC_RES_STATUS	26 -#define PCI_CAP_VC_BASE_SIZEOF		0x10 -#define PCI_CAP_VC_PER_VC_SIZEOF	0x0C - -/* Power Budgeting */ -#define PCI_PWR_DSR		4	/* Data Select Register */ -#define PCI_PWR_DATA		8	/* Data Register */ -#define  PCI_PWR_DATA_BASE(x)	((x) & 0xff)	    /* Base Power */ -#define  PCI_PWR_DATA_SCALE(x)	(((x) >> 8) & 3)    /* Data Scale */ -#define  PCI_PWR_DATA_PM_SUB(x)	(((x) >> 10) & 7)   /* PM Sub State */ -#define  PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3) /* PM State */ -#define  PCI_PWR_DATA_TYPE(x)	(((x) >> 15) & 7)   /* Type */ -#define  PCI_PWR_DATA_RAIL(x)	(((x) >> 18) & 7)   /* Power Rail */ -#define PCI_PWR_CAP		12	/* Capability */ -#define  PCI_PWR_CAP_BUDGET(x)	((x) & 1)	/* Included in system budget */ -#define PCI_EXT_CAP_PWR_SIZEOF	16 - -/* Vendor-Specific (VSEC, PCI_EXT_CAP_ID_VNDR) */ -#define PCI_VNDR_HEADER		4	/* Vendor-Specific Header */ -#define  PCI_VNDR_HEADER_ID(x)	((x) & 0xffff) -#define  PCI_VNDR_HEADER_REV(x)	(((x) >> 16) & 0xf) -#define  PCI_VNDR_HEADER_LEN(x)	(((x) >> 20) & 0xfff) - -/* - * Hypertransport sub capability types - * - * Unfortunately there are both 3 bit and 5 bit capability types defined - * in the HT spec, catering for that is a little messy. You probably don't - * want to use these directly, just use pci_find_ht_capability() and it - * will do the right thing for you. - */ -#define HT_3BIT_CAP_MASK	0xE0 -#define HT_CAPTYPE_SLAVE	0x00	/* Slave/Primary link configuration */ -#define HT_CAPTYPE_HOST		0x20	/* Host/Secondary link configuration */ - -#define HT_5BIT_CAP_MASK	0xF8 -#define HT_CAPTYPE_IRQ		0x80	/* IRQ Configuration */ -#define HT_CAPTYPE_REMAPPING_40	0xA0	/* 40 bit address remapping */ -#define HT_CAPTYPE_REMAPPING_64 0xA2	/* 64 bit address remapping */ -#define HT_CAPTYPE_UNITID_CLUMP	0x90	/* Unit ID clumping */ -#define HT_CAPTYPE_EXTCONF	0x98	/* Extended Configuration Space Access */ -#define HT_CAPTYPE_MSI_MAPPING	0xA8	/* MSI Mapping Capability */ -#define  HT_MSI_FLAGS		0x02		/* Offset to flags */ -#define  HT_MSI_FLAGS_ENABLE	0x1		/* Mapping enable */ -#define  HT_MSI_FLAGS_FIXED	0x2		/* Fixed mapping only */ -#define  HT_MSI_FIXED_ADDR	0x00000000FEE00000ULL	/* Fixed addr */ -#define  HT_MSI_ADDR_LO		0x04		/* Offset to low addr bits */ -#define  HT_MSI_ADDR_LO_MASK	0xFFF00000	/* Low address bit mask */ -#define  HT_MSI_ADDR_HI		0x08		/* Offset to high addr bits */ -#define HT_CAPTYPE_DIRECT_ROUTE	0xB0	/* Direct routing configuration */ -#define HT_CAPTYPE_VCSET	0xB8	/* Virtual Channel configuration */ -#define HT_CAPTYPE_ERROR_RETRY	0xC0	/* Retry on error configuration */ -#define HT_CAPTYPE_GEN3		0xD0	/* Generation 3 hypertransport configuration */ -#define HT_CAPTYPE_PM		0xE0	/* Hypertransport powermanagement configuration */ -#define HT_CAP_SIZEOF_LONG	28	/* slave & primary */ -#define HT_CAP_SIZEOF_SHORT	24	/* host & secondary */ - -/* Alternative Routing-ID Interpretation */ -#define PCI_ARI_CAP		0x04	/* ARI Capability Register */ -#define  PCI_ARI_CAP_MFVC	0x0001	/* MFVC Function Groups Capability */ -#define  PCI_ARI_CAP_ACS	0x0002	/* ACS Function Groups Capability */ -#define  PCI_ARI_CAP_NFN(x)	(((x) >> 8) & 0xff) /* Next Function Number */ -#define PCI_ARI_CTRL		0x06	/* ARI Control Register */ -#define  PCI_ARI_CTRL_MFVC	0x0001	/* MFVC Function Groups Enable */ -#define  PCI_ARI_CTRL_ACS	0x0002	/* ACS Function Groups Enable */ -#define  PCI_ARI_CTRL_FG(x)	(((x) >> 4) & 7) /* Function Group */ -#define PCI_EXT_CAP_ARI_SIZEOF	8 - -/* Address Translation Service */ -#define PCI_ATS_CAP		0x04	/* ATS Capability Register */ -#define  PCI_ATS_CAP_QDEP(x)	((x) & 0x1f)	/* Invalidate Queue Depth */ -#define  PCI_ATS_MAX_QDEP	32	/* Max Invalidate Queue Depth */ -#define PCI_ATS_CTRL		0x06	/* ATS Control Register */ -#define  PCI_ATS_CTRL_ENABLE	0x8000	/* ATS Enable */ -#define  PCI_ATS_CTRL_STU(x)	((x) & 0x1f)	/* Smallest Translation Unit */ -#define  PCI_ATS_MIN_STU	12	/* shift of minimum STU block */ -#define PCI_EXT_CAP_ATS_SIZEOF	8 - -/* Page Request Interface */ -#define PCI_PRI_CTRL		0x04	/* PRI control register */ -#define  PCI_PRI_CTRL_ENABLE	0x01	/* Enable */ -#define  PCI_PRI_CTRL_RESET	0x02	/* Reset */ -#define PCI_PRI_STATUS		0x06	/* PRI status register */ -#define  PCI_PRI_STATUS_RF	0x001	/* Response Failure */ -#define  PCI_PRI_STATUS_UPRGI	0x002	/* Unexpected PRG index */ -#define  PCI_PRI_STATUS_STOPPED	0x100	/* PRI Stopped */ -#define PCI_PRI_MAX_REQ		0x08	/* PRI max reqs supported */ -#define PCI_PRI_ALLOC_REQ	0x0c	/* PRI max reqs allowed */ -#define PCI_EXT_CAP_PRI_SIZEOF	16 - -/* PASID capability */ -#define PCI_PASID_CAP		0x04    /* PASID feature register */ -#define  PCI_PASID_CAP_EXEC	0x02	/* Exec permissions Supported */ -#define  PCI_PASID_CAP_PRIV	0x04	/* Priviledge Mode Supported */ -#define PCI_PASID_CTRL		0x06    /* PASID control register */ -#define  PCI_PASID_CTRL_ENABLE	0x01	/* Enable bit */ -#define  PCI_PASID_CTRL_EXEC	0x02	/* Exec permissions Enable */ -#define  PCI_PASID_CTRL_PRIV	0x04	/* Priviledge Mode Enable */ -#define PCI_EXT_CAP_PASID_SIZEOF	8 - -/* Single Root I/O Virtualization */ -#define PCI_SRIOV_CAP		0x04	/* SR-IOV Capabilities */ -#define  PCI_SRIOV_CAP_VFM	0x01	/* VF Migration Capable */ -#define  PCI_SRIOV_CAP_INTR(x)	((x) >> 21) /* Interrupt Message Number */ -#define PCI_SRIOV_CTRL		0x08	/* SR-IOV Control */ -#define  PCI_SRIOV_CTRL_VFE	0x01	/* VF Enable */ -#define  PCI_SRIOV_CTRL_VFM	0x02	/* VF Migration Enable */ -#define  PCI_SRIOV_CTRL_INTR	0x04	/* VF Migration Interrupt Enable */ -#define  PCI_SRIOV_CTRL_MSE	0x08	/* VF Memory Space Enable */ -#define  PCI_SRIOV_CTRL_ARI	0x10	/* ARI Capable Hierarchy */ -#define PCI_SRIOV_STATUS	0x0a	/* SR-IOV Status */ -#define  PCI_SRIOV_STATUS_VFM	0x01	/* VF Migration Status */ -#define PCI_SRIOV_INITIAL_VF	0x0c	/* Initial VFs */ -#define PCI_SRIOV_TOTAL_VF	0x0e	/* Total VFs */ -#define PCI_SRIOV_NUM_VF	0x10	/* Number of VFs */ -#define PCI_SRIOV_FUNC_LINK	0x12	/* Function Dependency Link */ -#define PCI_SRIOV_VF_OFFSET	0x14	/* First VF Offset */ -#define PCI_SRIOV_VF_STRIDE	0x16	/* Following VF Stride */ -#define PCI_SRIOV_VF_DID	0x1a	/* VF Device ID */ -#define PCI_SRIOV_SUP_PGSIZE	0x1c	/* Supported Page Sizes */ -#define PCI_SRIOV_SYS_PGSIZE	0x20	/* System Page Size */ -#define PCI_SRIOV_BAR		0x24	/* VF BAR0 */ -#define  PCI_SRIOV_NUM_BARS	6	/* Number of VF BARs */ -#define PCI_SRIOV_VFM		0x3c	/* VF Migration State Array Offset*/ -#define  PCI_SRIOV_VFM_BIR(x)	((x) & 7)	/* State BIR */ -#define  PCI_SRIOV_VFM_OFFSET(x) ((x) & ~7)	/* State Offset */ -#define  PCI_SRIOV_VFM_UA	0x0	/* Inactive.Unavailable */ -#define  PCI_SRIOV_VFM_MI	0x1	/* Dormant.MigrateIn */ -#define  PCI_SRIOV_VFM_MO	0x2	/* Active.MigrateOut */ -#define  PCI_SRIOV_VFM_AV	0x3	/* Active.Available */ -#define PCI_EXT_CAP_SRIOV_SIZEOF 64 - -#define PCI_LTR_MAX_SNOOP_LAT	0x4 -#define PCI_LTR_MAX_NOSNOOP_LAT	0x6 -#define  PCI_LTR_VALUE_MASK	0x000003ff -#define  PCI_LTR_SCALE_MASK	0x00001c00 -#define  PCI_LTR_SCALE_SHIFT	10 -#define PCI_EXT_CAP_LTR_SIZEOF	8 - -/* Access Control Service */ -#define PCI_ACS_CAP		0x04	/* ACS Capability Register */ -#define  PCI_ACS_SV		0x01	/* Source Validation */ -#define  PCI_ACS_TB		0x02	/* Translation Blocking */ -#define  PCI_ACS_RR		0x04	/* P2P Request Redirect */ -#define  PCI_ACS_CR		0x08	/* P2P Completion Redirect */ -#define  PCI_ACS_UF		0x10	/* Upstream Forwarding */ -#define  PCI_ACS_EC		0x20	/* P2P Egress Control */ -#define  PCI_ACS_DT		0x40	/* Direct Translated P2P */ -#define PCI_ACS_EGRESS_BITS	0x05	/* ACS Egress Control Vector Size */ -#define PCI_ACS_CTRL		0x06	/* ACS Control Register */ -#define PCI_ACS_EGRESS_CTL_V	0x08	/* ACS Egress Control Vector */ - -#define PCI_VSEC_HDR		4	/* extended cap - vendor specific */ -#define  PCI_VSEC_HDR_LEN_SHIFT	20	/* shift for length field */ - -/* sata capability */ -#define PCI_SATA_REGS		4	/* SATA REGs specifier */ -#define  PCI_SATA_REGS_MASK	0xF	/* location - BAR#/inline */ -#define  PCI_SATA_REGS_INLINE	0xF	/* REGS in config space */ -#define PCI_SATA_SIZEOF_SHORT	8 -#define PCI_SATA_SIZEOF_LONG	16 - -/* resizable BARs */ -#define PCI_REBAR_CTRL		8	/* control register */ -#define  PCI_REBAR_CTRL_NBAR_MASK	(7 << 5)	/* mask for # bars */ -#define  PCI_REBAR_CTRL_NBAR_SHIFT	5	/* shift for # bars */ - -/* dynamic power allocation */ -#define PCI_DPA_CAP		4	/* capability register */ -#define  PCI_DPA_CAP_SUBSTATE_MASK	0x1F	/* # substates - 1 */ -#define PCI_DPA_BASE_SIZEOF	16	/* size with 0 substates */ - -/* TPH Requester */ -#define PCI_TPH_CAP		4	/* capability register */ -#define  PCI_TPH_CAP_LOC_MASK	0x600	/* location mask */ -#define   PCI_TPH_LOC_NONE	0x000	/* no location */ -#define   PCI_TPH_LOC_CAP	0x200	/* in capability */ -#define   PCI_TPH_LOC_MSIX	0x400	/* in MSI-X */ -#define PCI_TPH_CAP_ST_MASK	0x07FF0000	/* st table mask */ -#define PCI_TPH_CAP_ST_SHIFT	16	/* st table shift */ -#define PCI_TPH_BASE_SIZEOF	12	/* size with no st table */ - -#endif /* LINUX_PCI_REGS_H */ diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index b4166cdfa7a..2e902359aee 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -14,606 +14,9 @@  #ifndef _LINUX_PERF_EVENT_H  #define _LINUX_PERF_EVENT_H -#include <linux/types.h> -#include <linux/ioctl.h> -#include <asm/byteorder.h> +#include <uapi/linux/perf_event.h>  /* - * User-space ABI bits: - */ - -/* - * attr.type - */ -enum perf_type_id { -	PERF_TYPE_HARDWARE			= 0, -	PERF_TYPE_SOFTWARE			= 1, -	PERF_TYPE_TRACEPOINT			= 2, -	PERF_TYPE_HW_CACHE			= 3, -	PERF_TYPE_RAW				= 4, -	PERF_TYPE_BREAKPOINT			= 5, - -	PERF_TYPE_MAX,				/* non-ABI */ -}; - -/* - * Generalized performance event event_id types, used by the - * attr.event_id parameter of the sys_perf_event_open() - * syscall: - */ -enum perf_hw_id { -	/* -	 * Common hardware events, generalized by the kernel: -	 */ -	PERF_COUNT_HW_CPU_CYCLES		= 0, -	PERF_COUNT_HW_INSTRUCTIONS		= 1, -	PERF_COUNT_HW_CACHE_REFERENCES		= 2, -	PERF_COUNT_HW_CACHE_MISSES		= 3, -	PERF_COUNT_HW_BRANCH_INSTRUCTIONS	= 4, -	PERF_COUNT_HW_BRANCH_MISSES		= 5, -	PERF_COUNT_HW_BUS_CYCLES		= 6, -	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND	= 7, -	PERF_COUNT_HW_STALLED_CYCLES_BACKEND	= 8, -	PERF_COUNT_HW_REF_CPU_CYCLES		= 9, - -	PERF_COUNT_HW_MAX,			/* non-ABI */ -}; - -/* - * Generalized hardware cache events: - * - *       { L1-D, L1-I, LLC, ITLB, DTLB, BPU, NODE } x - *       { read, write, prefetch } x - *       { accesses, misses } - */ -enum perf_hw_cache_id { -	PERF_COUNT_HW_CACHE_L1D			= 0, -	PERF_COUNT_HW_CACHE_L1I			= 1, -	PERF_COUNT_HW_CACHE_LL			= 2, -	PERF_COUNT_HW_CACHE_DTLB		= 3, -	PERF_COUNT_HW_CACHE_ITLB		= 4, -	PERF_COUNT_HW_CACHE_BPU			= 5, -	PERF_COUNT_HW_CACHE_NODE		= 6, - -	PERF_COUNT_HW_CACHE_MAX,		/* non-ABI */ -}; - -enum perf_hw_cache_op_id { -	PERF_COUNT_HW_CACHE_OP_READ		= 0, -	PERF_COUNT_HW_CACHE_OP_WRITE		= 1, -	PERF_COUNT_HW_CACHE_OP_PREFETCH		= 2, - -	PERF_COUNT_HW_CACHE_OP_MAX,		/* non-ABI */ -}; - -enum perf_hw_cache_op_result_id { -	PERF_COUNT_HW_CACHE_RESULT_ACCESS	= 0, -	PERF_COUNT_HW_CACHE_RESULT_MISS		= 1, - -	PERF_COUNT_HW_CACHE_RESULT_MAX,		/* non-ABI */ -}; - -/* - * Special "software" events provided by the kernel, even if the hardware - * does not support performance events. These events measure various - * physical and sw events of the kernel (and allow the profiling of them as - * well): - */ -enum perf_sw_ids { -	PERF_COUNT_SW_CPU_CLOCK			= 0, -	PERF_COUNT_SW_TASK_CLOCK		= 1, -	PERF_COUNT_SW_PAGE_FAULTS		= 2, -	PERF_COUNT_SW_CONTEXT_SWITCHES		= 3, -	PERF_COUNT_SW_CPU_MIGRATIONS		= 4, -	PERF_COUNT_SW_PAGE_FAULTS_MIN		= 5, -	PERF_COUNT_SW_PAGE_FAULTS_MAJ		= 6, -	PERF_COUNT_SW_ALIGNMENT_FAULTS		= 7, -	PERF_COUNT_SW_EMULATION_FAULTS		= 8, - -	PERF_COUNT_SW_MAX,			/* non-ABI */ -}; - -/* - * Bits that can be set in attr.sample_type to request information - * in the overflow packets. - */ -enum perf_event_sample_format { -	PERF_SAMPLE_IP				= 1U << 0, -	PERF_SAMPLE_TID				= 1U << 1, -	PERF_SAMPLE_TIME			= 1U << 2, -	PERF_SAMPLE_ADDR			= 1U << 3, -	PERF_SAMPLE_READ			= 1U << 4, -	PERF_SAMPLE_CALLCHAIN			= 1U << 5, -	PERF_SAMPLE_ID				= 1U << 6, -	PERF_SAMPLE_CPU				= 1U << 7, -	PERF_SAMPLE_PERIOD			= 1U << 8, -	PERF_SAMPLE_STREAM_ID			= 1U << 9, -	PERF_SAMPLE_RAW				= 1U << 10, -	PERF_SAMPLE_BRANCH_STACK		= 1U << 11, -	PERF_SAMPLE_REGS_USER			= 1U << 12, -	PERF_SAMPLE_STACK_USER			= 1U << 13, - -	PERF_SAMPLE_MAX = 1U << 14,		/* non-ABI */ -}; - -/* - * values to program into branch_sample_type when PERF_SAMPLE_BRANCH is set - * - * If the user does not pass priv level information via branch_sample_type, - * the kernel uses the event's priv level. Branch and event priv levels do - * not have to match. Branch priv level is checked for permissions. - * - * The branch types can be combined, however BRANCH_ANY covers all types - * of branches and therefore it supersedes all the other types. - */ -enum perf_branch_sample_type { -	PERF_SAMPLE_BRANCH_USER		= 1U << 0, /* user branches */ -	PERF_SAMPLE_BRANCH_KERNEL	= 1U << 1, /* kernel branches */ -	PERF_SAMPLE_BRANCH_HV		= 1U << 2, /* hypervisor branches */ - -	PERF_SAMPLE_BRANCH_ANY		= 1U << 3, /* any branch types */ -	PERF_SAMPLE_BRANCH_ANY_CALL	= 1U << 4, /* any call branch */ -	PERF_SAMPLE_BRANCH_ANY_RETURN	= 1U << 5, /* any return branch */ -	PERF_SAMPLE_BRANCH_IND_CALL	= 1U << 6, /* indirect calls */ - -	PERF_SAMPLE_BRANCH_MAX		= 1U << 7, /* non-ABI */ -}; - -#define PERF_SAMPLE_BRANCH_PLM_ALL \ -	(PERF_SAMPLE_BRANCH_USER|\ -	 PERF_SAMPLE_BRANCH_KERNEL|\ -	 PERF_SAMPLE_BRANCH_HV) - -/* - * Values to determine ABI of the registers dump. - */ -enum perf_sample_regs_abi { -	PERF_SAMPLE_REGS_ABI_NONE	= 0, -	PERF_SAMPLE_REGS_ABI_32		= 1, -	PERF_SAMPLE_REGS_ABI_64		= 2, -}; - -/* - * The format of the data returned by read() on a perf event fd, - * as specified by attr.read_format: - * - * struct read_format { - *	{ u64		value; - *	  { u64		time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED - *	  { u64		time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING - *	  { u64		id;           } && PERF_FORMAT_ID - *	} && !PERF_FORMAT_GROUP - * - *	{ u64		nr; - *	  { u64		time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED - *	  { u64		time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING - *	  { u64		value; - *	    { u64	id;           } && PERF_FORMAT_ID - *	  }		cntr[nr]; - *	} && PERF_FORMAT_GROUP - * }; - */ -enum perf_event_read_format { -	PERF_FORMAT_TOTAL_TIME_ENABLED		= 1U << 0, -	PERF_FORMAT_TOTAL_TIME_RUNNING		= 1U << 1, -	PERF_FORMAT_ID				= 1U << 2, -	PERF_FORMAT_GROUP			= 1U << 3, - -	PERF_FORMAT_MAX = 1U << 4,		/* non-ABI */ -}; - -#define PERF_ATTR_SIZE_VER0	64	/* sizeof first published struct */ -#define PERF_ATTR_SIZE_VER1	72	/* add: config2 */ -#define PERF_ATTR_SIZE_VER2	80	/* add: branch_sample_type */ -#define PERF_ATTR_SIZE_VER3	96	/* add: sample_regs_user */ -					/* add: sample_stack_user */ - -/* - * Hardware event_id to monitor via a performance monitoring event: - */ -struct perf_event_attr { - -	/* -	 * Major type: hardware/software/tracepoint/etc. -	 */ -	__u32			type; - -	/* -	 * Size of the attr structure, for fwd/bwd compat. -	 */ -	__u32			size; - -	/* -	 * Type specific configuration information. -	 */ -	__u64			config; - -	union { -		__u64		sample_period; -		__u64		sample_freq; -	}; - -	__u64			sample_type; -	__u64			read_format; - -	__u64			disabled       :  1, /* off by default        */ -				inherit	       :  1, /* children inherit it   */ -				pinned	       :  1, /* must always be on PMU */ -				exclusive      :  1, /* only group on PMU     */ -				exclude_user   :  1, /* don't count user      */ -				exclude_kernel :  1, /* ditto kernel          */ -				exclude_hv     :  1, /* ditto hypervisor      */ -				exclude_idle   :  1, /* don't count when idle */ -				mmap           :  1, /* include mmap data     */ -				comm	       :  1, /* include comm data     */ -				freq           :  1, /* use freq, not period  */ -				inherit_stat   :  1, /* per task counts       */ -				enable_on_exec :  1, /* next exec enables     */ -				task           :  1, /* trace fork/exit       */ -				watermark      :  1, /* wakeup_watermark      */ -				/* -				 * precise_ip: -				 * -				 *  0 - SAMPLE_IP can have arbitrary skid -				 *  1 - SAMPLE_IP must have constant skid -				 *  2 - SAMPLE_IP requested to have 0 skid -				 *  3 - SAMPLE_IP must have 0 skid -				 * -				 *  See also PERF_RECORD_MISC_EXACT_IP -				 */ -				precise_ip     :  2, /* skid constraint       */ -				mmap_data      :  1, /* non-exec mmap data    */ -				sample_id_all  :  1, /* sample_type all events */ - -				exclude_host   :  1, /* don't count in host   */ -				exclude_guest  :  1, /* don't count in guest  */ - -				exclude_callchain_kernel : 1, /* exclude kernel callchains */ -				exclude_callchain_user   : 1, /* exclude user callchains */ - -				__reserved_1   : 41; - -	union { -		__u32		wakeup_events;	  /* wakeup every n events */ -		__u32		wakeup_watermark; /* bytes before wakeup   */ -	}; - -	__u32			bp_type; -	union { -		__u64		bp_addr; -		__u64		config1; /* extension of config */ -	}; -	union { -		__u64		bp_len; -		__u64		config2; /* extension of config1 */ -	}; -	__u64	branch_sample_type; /* enum perf_branch_sample_type */ - -	/* -	 * Defines set of user regs to dump on samples. -	 * See asm/perf_regs.h for details. -	 */ -	__u64	sample_regs_user; - -	/* -	 * Defines size of the user stack to dump on samples. -	 */ -	__u32	sample_stack_user; - -	/* Align to u64. */ -	__u32	__reserved_2; -}; - -#define perf_flags(attr)	(*(&(attr)->read_format + 1)) - -/* - * Ioctls that can be done on a perf event fd: - */ -#define PERF_EVENT_IOC_ENABLE		_IO ('$', 0) -#define PERF_EVENT_IOC_DISABLE		_IO ('$', 1) -#define PERF_EVENT_IOC_REFRESH		_IO ('$', 2) -#define PERF_EVENT_IOC_RESET		_IO ('$', 3) -#define PERF_EVENT_IOC_PERIOD		_IOW('$', 4, __u64) -#define PERF_EVENT_IOC_SET_OUTPUT	_IO ('$', 5) -#define PERF_EVENT_IOC_SET_FILTER	_IOW('$', 6, char *) - -enum perf_event_ioc_flags { -	PERF_IOC_FLAG_GROUP		= 1U << 0, -}; - -/* - * Structure of the page that can be mapped via mmap - */ -struct perf_event_mmap_page { -	__u32	version;		/* version number of this structure */ -	__u32	compat_version;		/* lowest version this is compat with */ - -	/* -	 * Bits needed to read the hw events in user-space. -	 * -	 *   u32 seq, time_mult, time_shift, idx, width; -	 *   u64 count, enabled, running; -	 *   u64 cyc, time_offset; -	 *   s64 pmc = 0; -	 * -	 *   do { -	 *     seq = pc->lock; -	 *     barrier() -	 * -	 *     enabled = pc->time_enabled; -	 *     running = pc->time_running; -	 * -	 *     if (pc->cap_usr_time && enabled != running) { -	 *       cyc = rdtsc(); -	 *       time_offset = pc->time_offset; -	 *       time_mult   = pc->time_mult; -	 *       time_shift  = pc->time_shift; -	 *     } -	 * -	 *     idx = pc->index; -	 *     count = pc->offset; -	 *     if (pc->cap_usr_rdpmc && idx) { -	 *       width = pc->pmc_width; -	 *       pmc = rdpmc(idx - 1); -	 *     } -	 * -	 *     barrier(); -	 *   } while (pc->lock != seq); -	 * -	 * NOTE: for obvious reason this only works on self-monitoring -	 *       processes. -	 */ -	__u32	lock;			/* seqlock for synchronization */ -	__u32	index;			/* hardware event identifier */ -	__s64	offset;			/* add to hardware event value */ -	__u64	time_enabled;		/* time event active */ -	__u64	time_running;		/* time event on cpu */ -	union { -		__u64	capabilities; -		__u64	cap_usr_time  : 1, -			cap_usr_rdpmc : 1, -			cap_____res   : 62; -	}; - -	/* -	 * If cap_usr_rdpmc this field provides the bit-width of the value -	 * read using the rdpmc() or equivalent instruction. This can be used -	 * to sign extend the result like: -	 * -	 *   pmc <<= 64 - width; -	 *   pmc >>= 64 - width; // signed shift right -	 *   count += pmc; -	 */ -	__u16	pmc_width; - -	/* -	 * If cap_usr_time the below fields can be used to compute the time -	 * delta since time_enabled (in ns) using rdtsc or similar. -	 * -	 *   u64 quot, rem; -	 *   u64 delta; -	 * -	 *   quot = (cyc >> time_shift); -	 *   rem = cyc & ((1 << time_shift) - 1); -	 *   delta = time_offset + quot * time_mult + -	 *              ((rem * time_mult) >> time_shift); -	 * -	 * Where time_offset,time_mult,time_shift and cyc are read in the -	 * seqcount loop described above. This delta can then be added to -	 * enabled and possible running (if idx), improving the scaling: -	 * -	 *   enabled += delta; -	 *   if (idx) -	 *     running += delta; -	 * -	 *   quot = count / running; -	 *   rem  = count % running; -	 *   count = quot * enabled + (rem * enabled) / running; -	 */ -	__u16	time_shift; -	__u32	time_mult; -	__u64	time_offset; - -		/* -		 * Hole for extension of the self monitor capabilities -		 */ - -	__u64	__reserved[120];	/* align to 1k */ - -	/* -	 * Control data for the mmap() data buffer. -	 * -	 * User-space reading the @data_head value should issue an rmb(), on -	 * SMP capable platforms, after reading this value -- see -	 * perf_event_wakeup(). -	 * -	 * When the mapping is PROT_WRITE the @data_tail value should be -	 * written by userspace to reflect the last read data. In this case -	 * the kernel will not over-write unread data. -	 */ -	__u64   data_head;		/* head in the data section */ -	__u64	data_tail;		/* user-space written tail */ -}; - -#define PERF_RECORD_MISC_CPUMODE_MASK		(7 << 0) -#define PERF_RECORD_MISC_CPUMODE_UNKNOWN	(0 << 0) -#define PERF_RECORD_MISC_KERNEL			(1 << 0) -#define PERF_RECORD_MISC_USER			(2 << 0) -#define PERF_RECORD_MISC_HYPERVISOR		(3 << 0) -#define PERF_RECORD_MISC_GUEST_KERNEL		(4 << 0) -#define PERF_RECORD_MISC_GUEST_USER		(5 << 0) - -/* - * Indicates that the content of PERF_SAMPLE_IP points to - * the actual instruction that triggered the event. See also - * perf_event_attr::precise_ip. - */ -#define PERF_RECORD_MISC_EXACT_IP		(1 << 14) -/* - * Reserve the last bit to indicate some extended misc field - */ -#define PERF_RECORD_MISC_EXT_RESERVED		(1 << 15) - -struct perf_event_header { -	__u32	type; -	__u16	misc; -	__u16	size; -}; - -enum perf_event_type { - -	/* -	 * If perf_event_attr.sample_id_all is set then all event types will -	 * have the sample_type selected fields related to where/when -	 * (identity) an event took place (TID, TIME, ID, CPU, STREAM_ID) -	 * described in PERF_RECORD_SAMPLE below, it will be stashed just after -	 * the perf_event_header and the fields already present for the existing -	 * fields, i.e. at the end of the payload. That way a newer perf.data -	 * file will be supported by older perf tools, with these new optional -	 * fields being ignored. -	 * -	 * The MMAP events record the PROT_EXEC mappings so that we can -	 * correlate userspace IPs to code. They have the following structure: -	 * -	 * struct { -	 *	struct perf_event_header	header; -	 * -	 *	u32				pid, tid; -	 *	u64				addr; -	 *	u64				len; -	 *	u64				pgoff; -	 *	char				filename[]; -	 * }; -	 */ -	PERF_RECORD_MMAP			= 1, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 *	u64				id; -	 *	u64				lost; -	 * }; -	 */ -	PERF_RECORD_LOST			= 2, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 * -	 *	u32				pid, tid; -	 *	char				comm[]; -	 * }; -	 */ -	PERF_RECORD_COMM			= 3, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 *	u32				pid, ppid; -	 *	u32				tid, ptid; -	 *	u64				time; -	 * }; -	 */ -	PERF_RECORD_EXIT			= 4, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 *	u64				time; -	 *	u64				id; -	 *	u64				stream_id; -	 * }; -	 */ -	PERF_RECORD_THROTTLE			= 5, -	PERF_RECORD_UNTHROTTLE			= 6, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 *	u32				pid, ppid; -	 *	u32				tid, ptid; -	 *	u64				time; -	 * }; -	 */ -	PERF_RECORD_FORK			= 7, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 *	u32				pid, tid; -	 * -	 *	struct read_format		values; -	 * }; -	 */ -	PERF_RECORD_READ			= 8, - -	/* -	 * struct { -	 *	struct perf_event_header	header; -	 * -	 *	{ u64			ip;	  } && PERF_SAMPLE_IP -	 *	{ u32			pid, tid; } && PERF_SAMPLE_TID -	 *	{ u64			time;     } && PERF_SAMPLE_TIME -	 *	{ u64			addr;     } && PERF_SAMPLE_ADDR -	 *	{ u64			id;	  } && PERF_SAMPLE_ID -	 *	{ u64			stream_id;} && PERF_SAMPLE_STREAM_ID -	 *	{ u32			cpu, res; } && PERF_SAMPLE_CPU -	 *	{ u64			period;   } && PERF_SAMPLE_PERIOD -	 * -	 *	{ struct read_format	values;	  } && PERF_SAMPLE_READ -	 * -	 *	{ u64			nr, -	 *	  u64			ips[nr];  } && PERF_SAMPLE_CALLCHAIN -	 * -	 *	# -	 *	# The RAW record below is opaque data wrt the ABI -	 *	# -	 *	# That is, the ABI doesn't make any promises wrt to -	 *	# the stability of its content, it may vary depending -	 *	# on event, hardware, kernel version and phase of -	 *	# the moon. -	 *	# -	 *	# In other words, PERF_SAMPLE_RAW contents are not an ABI. -	 *	# -	 * -	 *	{ u32			size; -	 *	  char                  data[size];}&& PERF_SAMPLE_RAW -	 * -	 *	{ u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK -	 * -	 * 	{ u64			abi; # enum perf_sample_regs_abi -	 * 	  u64			regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER -	 * -	 * 	{ u64			size; -	 * 	  char			data[size]; -	 * 	  u64			dyn_size; } && PERF_SAMPLE_STACK_USER -	 * }; -	 */ -	PERF_RECORD_SAMPLE			= 9, - -	PERF_RECORD_MAX,			/* non-ABI */ -}; - -#define PERF_MAX_STACK_DEPTH		127 - -enum perf_callchain_context { -	PERF_CONTEXT_HV			= (__u64)-32, -	PERF_CONTEXT_KERNEL		= (__u64)-128, -	PERF_CONTEXT_USER		= (__u64)-512, - -	PERF_CONTEXT_GUEST		= (__u64)-2048, -	PERF_CONTEXT_GUEST_KERNEL	= (__u64)-2176, -	PERF_CONTEXT_GUEST_USER		= (__u64)-2560, - -	PERF_CONTEXT_MAX		= (__u64)-4095, -}; - -#define PERF_FLAG_FD_NO_GROUP		(1U << 0) -#define PERF_FLAG_FD_OUTPUT		(1U << 1) -#define PERF_FLAG_PID_CGROUP		(1U << 2) /* pid=cgroup id, per-cpu mode only */ - -#ifdef __KERNEL__ -/*   * Kernel-internal data types and definitions:   */ @@ -1422,5 +825,4 @@ _name##_show(struct device *dev,					\  									\  static struct device_attribute format_attr_##_name = __ATTR_RO(_name) -#endif /* __KERNEL__ */  #endif /* _LINUX_PERF_EVENT_H */ diff --git a/include/linux/personality.h b/include/linux/personality.h index 8fc7dd1a57f..646c0a7d50f 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -1,7 +1,8 @@  #ifndef _LINUX_PERSONALITY_H  #define _LINUX_PERSONALITY_H -#ifdef __KERNEL__ +#include <uapi/linux/personality.h> +  /*   * Handling of different ABIs (personalities). @@ -14,72 +15,6 @@ extern int		register_exec_domain(struct exec_domain *);  extern int		unregister_exec_domain(struct exec_domain *);  extern int		__set_personality(unsigned int); -#endif /* __KERNEL__ */ - -/* - * Flags for bug emulation. - * - * These occupy the top three bytes. - */ -enum { -	UNAME26	=               0x0020000, -	ADDR_NO_RANDOMIZE = 	0x0040000,	/* disable randomization of VA space */ -	FDPIC_FUNCPTRS =	0x0080000,	/* userspace function ptrs point to descriptors -						 * (signal handling) -						 */ -	MMAP_PAGE_ZERO =	0x0100000, -	ADDR_COMPAT_LAYOUT =	0x0200000, -	READ_IMPLIES_EXEC =	0x0400000, -	ADDR_LIMIT_32BIT =	0x0800000, -	SHORT_INODE =		0x1000000, -	WHOLE_SECONDS =		0x2000000, -	STICKY_TIMEOUTS	=	0x4000000, -	ADDR_LIMIT_3GB = 	0x8000000, -}; - -/* - * Security-relevant compatibility flags that must be - * cleared upon setuid or setgid exec: - */ -#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC  | \ -			    ADDR_NO_RANDOMIZE  | \ -			    ADDR_COMPAT_LAYOUT | \ -			    MMAP_PAGE_ZERO) - -/* - * Personality types. - * - * These go in the low byte.  Avoid using the top bit, it will - * conflict with error returns. - */ -enum { -	PER_LINUX =		0x0000, -	PER_LINUX_32BIT =	0x0000 | ADDR_LIMIT_32BIT, -	PER_LINUX_FDPIC =	0x0000 | FDPIC_FUNCPTRS, -	PER_SVR4 =		0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, -	PER_SVR3 =		0x0002 | STICKY_TIMEOUTS | SHORT_INODE, -	PER_SCOSVR3 =		0x0003 | STICKY_TIMEOUTS | -					 WHOLE_SECONDS | SHORT_INODE, -	PER_OSR5 =		0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS, -	PER_WYSEV386 =		0x0004 | STICKY_TIMEOUTS | SHORT_INODE, -	PER_ISCR4 =		0x0005 | STICKY_TIMEOUTS, -	PER_BSD =		0x0006, -	PER_SUNOS =		0x0006 | STICKY_TIMEOUTS, -	PER_XENIX =		0x0007 | STICKY_TIMEOUTS | SHORT_INODE, -	PER_LINUX32 =		0x0008, -	PER_LINUX32_3GB =	0x0008 | ADDR_LIMIT_3GB, -	PER_IRIX32 =		0x0009 | STICKY_TIMEOUTS,/* IRIX5 32-bit */ -	PER_IRIXN32 =		0x000a | STICKY_TIMEOUTS,/* IRIX6 new 32-bit */ -	PER_IRIX64 =		0x000b | STICKY_TIMEOUTS,/* IRIX6 64-bit */ -	PER_RISCOS =		0x000c, -	PER_SOLARIS =		0x000d | STICKY_TIMEOUTS, -	PER_UW7 =		0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, -	PER_OSF4 =		0x000f,			 /* OSF/1 v4 */ -	PER_HPUX =		0x0010, -	PER_MASK =		0x00ff, -}; - -#ifdef __KERNEL__  /*   * Description of an execution domain. @@ -116,6 +51,4 @@ struct exec_domain {  #define set_personality(pers) \  	((current->personality == (pers)) ? 0 : __set_personality(pers)) -#endif /* __KERNEL__ */ -  #endif /* _LINUX_PERSONALITY_H */ diff --git a/include/linux/pfkeyv2.h b/include/linux/pfkeyv2.h deleted file mode 100644 index 0b80c806631..00000000000 --- a/include/linux/pfkeyv2.h +++ /dev/null @@ -1,370 +0,0 @@ -/* PF_KEY user interface, this is defined by rfc2367 so - * do not make arbitrary modifications or else this header - * file will not be compliant. - */ - -#ifndef _LINUX_PFKEY2_H -#define _LINUX_PFKEY2_H - -#include <linux/types.h> - -#define PF_KEY_V2		2 -#define PFKEYV2_REVISION	199806L - -struct sadb_msg { -	__u8		sadb_msg_version; -	__u8		sadb_msg_type; -	__u8		sadb_msg_errno; -	__u8		sadb_msg_satype; -	__u16	sadb_msg_len; -	__u16	sadb_msg_reserved; -	__u32	sadb_msg_seq; -	__u32	sadb_msg_pid; -} __attribute__((packed)); -/* sizeof(struct sadb_msg) == 16 */ - -struct sadb_ext { -	__u16	sadb_ext_len; -	__u16	sadb_ext_type; -} __attribute__((packed)); -/* sizeof(struct sadb_ext) == 4 */ - -struct sadb_sa { -	__u16	sadb_sa_len; -	__u16	sadb_sa_exttype; -	__be32		sadb_sa_spi; -	__u8		sadb_sa_replay; -	__u8		sadb_sa_state; -	__u8		sadb_sa_auth; -	__u8		sadb_sa_encrypt; -	__u32	sadb_sa_flags; -} __attribute__((packed)); -/* sizeof(struct sadb_sa) == 16 */ - -struct sadb_lifetime { -	__u16	sadb_lifetime_len; -	__u16	sadb_lifetime_exttype; -	__u32	sadb_lifetime_allocations; -	__u64	sadb_lifetime_bytes; -	__u64	sadb_lifetime_addtime; -	__u64	sadb_lifetime_usetime; -} __attribute__((packed)); -/* sizeof(struct sadb_lifetime) == 32 */ - -struct sadb_address { -	__u16	sadb_address_len; -	__u16	sadb_address_exttype; -	__u8		sadb_address_proto; -	__u8		sadb_address_prefixlen; -	__u16	sadb_address_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_address) == 8 */ - -struct sadb_key { -	__u16	sadb_key_len; -	__u16	sadb_key_exttype; -	__u16	sadb_key_bits; -	__u16	sadb_key_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_key) == 8 */ - -struct sadb_ident { -	__u16	sadb_ident_len; -	__u16	sadb_ident_exttype; -	__u16	sadb_ident_type; -	__u16	sadb_ident_reserved; -	__u64	sadb_ident_id; -} __attribute__((packed)); -/* sizeof(struct sadb_ident) == 16 */ - -struct sadb_sens { -	__u16	sadb_sens_len; -	__u16	sadb_sens_exttype; -	__u32	sadb_sens_dpd; -	__u8		sadb_sens_sens_level; -	__u8		sadb_sens_sens_len; -	__u8		sadb_sens_integ_level; -	__u8		sadb_sens_integ_len; -	__u32	sadb_sens_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_sens) == 16 */ - -/* followed by: -	__u64	sadb_sens_bitmap[sens_len]; -	__u64	sadb_integ_bitmap[integ_len];  */ - -struct sadb_prop { -	__u16	sadb_prop_len; -	__u16	sadb_prop_exttype; -	__u8		sadb_prop_replay; -	__u8		sadb_prop_reserved[3]; -} __attribute__((packed)); -/* sizeof(struct sadb_prop) == 8 */ - -/* followed by: -	struct sadb_comb sadb_combs[(sadb_prop_len + -		sizeof(__u64) - sizeof(struct sadb_prop)) / -		sizeof(struct sadb_comb)]; */ - -struct sadb_comb { -	__u8		sadb_comb_auth; -	__u8		sadb_comb_encrypt; -	__u16	sadb_comb_flags; -	__u16	sadb_comb_auth_minbits; -	__u16	sadb_comb_auth_maxbits; -	__u16	sadb_comb_encrypt_minbits; -	__u16	sadb_comb_encrypt_maxbits; -	__u32	sadb_comb_reserved; -	__u32	sadb_comb_soft_allocations; -	__u32	sadb_comb_hard_allocations; -	__u64	sadb_comb_soft_bytes; -	__u64	sadb_comb_hard_bytes; -	__u64	sadb_comb_soft_addtime; -	__u64	sadb_comb_hard_addtime; -	__u64	sadb_comb_soft_usetime; -	__u64	sadb_comb_hard_usetime; -} __attribute__((packed)); -/* sizeof(struct sadb_comb) == 72 */ - -struct sadb_supported { -	__u16	sadb_supported_len; -	__u16	sadb_supported_exttype; -	__u32	sadb_supported_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_supported) == 8 */ - -/* followed by: -	struct sadb_alg sadb_algs[(sadb_supported_len + -		sizeof(__u64) - sizeof(struct sadb_supported)) / -		sizeof(struct sadb_alg)]; */ - -struct sadb_alg { -	__u8		sadb_alg_id; -	__u8		sadb_alg_ivlen; -	__u16	sadb_alg_minbits; -	__u16	sadb_alg_maxbits; -	__u16	sadb_alg_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_alg) == 8 */ - -struct sadb_spirange { -	__u16	sadb_spirange_len; -	__u16	sadb_spirange_exttype; -	__u32	sadb_spirange_min; -	__u32	sadb_spirange_max; -	__u32	sadb_spirange_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_spirange) == 16 */ - -struct sadb_x_kmprivate { -	__u16	sadb_x_kmprivate_len; -	__u16	sadb_x_kmprivate_exttype; -	__u32	sadb_x_kmprivate_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_x_kmprivate) == 8 */ - -struct sadb_x_sa2 { -	__u16	sadb_x_sa2_len; -	__u16	sadb_x_sa2_exttype; -	__u8		sadb_x_sa2_mode; -	__u8		sadb_x_sa2_reserved1; -	__u16	sadb_x_sa2_reserved2; -	__u32	sadb_x_sa2_sequence; -	__u32	sadb_x_sa2_reqid; -} __attribute__((packed)); -/* sizeof(struct sadb_x_sa2) == 16 */ - -struct sadb_x_policy { -	__u16	sadb_x_policy_len; -	__u16	sadb_x_policy_exttype; -	__u16	sadb_x_policy_type; -	__u8		sadb_x_policy_dir; -	__u8		sadb_x_policy_reserved; -	__u32	sadb_x_policy_id; -	__u32	sadb_x_policy_priority; -} __attribute__((packed)); -/* sizeof(struct sadb_x_policy) == 16 */ - -struct sadb_x_ipsecrequest { -	__u16	sadb_x_ipsecrequest_len; -	__u16	sadb_x_ipsecrequest_proto; -	__u8		sadb_x_ipsecrequest_mode; -	__u8		sadb_x_ipsecrequest_level; -	__u16	sadb_x_ipsecrequest_reserved1; -	__u32	sadb_x_ipsecrequest_reqid; -	__u32	sadb_x_ipsecrequest_reserved2; -} __attribute__((packed)); -/* sizeof(struct sadb_x_ipsecrequest) == 16 */ - -/* This defines the TYPE of Nat Traversal in use.  Currently only one - * type of NAT-T is supported, draft-ietf-ipsec-udp-encaps-06 - */ -struct sadb_x_nat_t_type { -	__u16	sadb_x_nat_t_type_len; -	__u16	sadb_x_nat_t_type_exttype; -	__u8		sadb_x_nat_t_type_type; -	__u8		sadb_x_nat_t_type_reserved[3]; -} __attribute__((packed)); -/* sizeof(struct sadb_x_nat_t_type) == 8 */ - -/* Pass a NAT Traversal port (Source or Dest port) */ -struct sadb_x_nat_t_port { -	__u16	sadb_x_nat_t_port_len; -	__u16	sadb_x_nat_t_port_exttype; -	__be16		sadb_x_nat_t_port_port; -	__u16	sadb_x_nat_t_port_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_x_nat_t_port) == 8 */ - -/* Generic LSM security context */ -struct sadb_x_sec_ctx { -	__u16	sadb_x_sec_len; -	__u16	sadb_x_sec_exttype; -	__u8		sadb_x_ctx_alg;  /* LSMs: e.g., selinux == 1 */ -	__u8		sadb_x_ctx_doi; -	__u16	sadb_x_ctx_len; -} __attribute__((packed)); -/* sizeof(struct sadb_sec_ctx) = 8 */ - -/* Used by MIGRATE to pass addresses IKE will use to perform - * negotiation with the peer */ -struct sadb_x_kmaddress { -	__u16	sadb_x_kmaddress_len; -	__u16	sadb_x_kmaddress_exttype; -	__u32	sadb_x_kmaddress_reserved; -} __attribute__((packed)); -/* sizeof(struct sadb_x_kmaddress) == 8 */ - -/* Message types */ -#define SADB_RESERVED		0 -#define SADB_GETSPI		1 -#define SADB_UPDATE		2 -#define SADB_ADD		3 -#define SADB_DELETE		4 -#define SADB_GET		5 -#define SADB_ACQUIRE		6 -#define SADB_REGISTER		7 -#define SADB_EXPIRE		8 -#define SADB_FLUSH		9 -#define SADB_DUMP		10 -#define SADB_X_PROMISC		11 -#define SADB_X_PCHANGE		12 -#define SADB_X_SPDUPDATE	13 -#define SADB_X_SPDADD		14 -#define SADB_X_SPDDELETE	15 -#define SADB_X_SPDGET		16 -#define SADB_X_SPDACQUIRE	17 -#define SADB_X_SPDDUMP		18 -#define SADB_X_SPDFLUSH		19 -#define SADB_X_SPDSETIDX	20 -#define SADB_X_SPDEXPIRE	21 -#define SADB_X_SPDDELETE2	22 -#define SADB_X_NAT_T_NEW_MAPPING	23 -#define SADB_X_MIGRATE		24 -#define SADB_MAX		24 - -/* Security Association flags */ -#define SADB_SAFLAGS_PFS	1 -#define SADB_SAFLAGS_NOPMTUDISC	0x20000000 -#define SADB_SAFLAGS_DECAP_DSCP	0x40000000 -#define SADB_SAFLAGS_NOECN	0x80000000 - -/* Security Association states */ -#define SADB_SASTATE_LARVAL	0 -#define SADB_SASTATE_MATURE	1 -#define SADB_SASTATE_DYING	2 -#define SADB_SASTATE_DEAD	3 -#define SADB_SASTATE_MAX	3 - -/* Security Association types */ -#define SADB_SATYPE_UNSPEC	0 -#define SADB_SATYPE_AH		2 -#define SADB_SATYPE_ESP		3 -#define SADB_SATYPE_RSVP	5 -#define SADB_SATYPE_OSPFV2	6 -#define SADB_SATYPE_RIPV2	7 -#define SADB_SATYPE_MIP		8 -#define SADB_X_SATYPE_IPCOMP	9 -#define SADB_SATYPE_MAX		9 - -/* Authentication algorithms */ -#define SADB_AALG_NONE			0 -#define SADB_AALG_MD5HMAC		2 -#define SADB_AALG_SHA1HMAC		3 -#define SADB_X_AALG_SHA2_256HMAC	5 -#define SADB_X_AALG_SHA2_384HMAC	6 -#define SADB_X_AALG_SHA2_512HMAC	7 -#define SADB_X_AALG_RIPEMD160HMAC	8 -#define SADB_X_AALG_AES_XCBC_MAC	9 -#define SADB_X_AALG_NULL		251	/* kame */ -#define SADB_AALG_MAX			251 - -/* Encryption algorithms */ -#define SADB_EALG_NONE			0 -#define SADB_EALG_DESCBC		2 -#define SADB_EALG_3DESCBC		3 -#define SADB_X_EALG_CASTCBC		6 -#define SADB_X_EALG_BLOWFISHCBC		7 -#define SADB_EALG_NULL			11 -#define SADB_X_EALG_AESCBC		12 -#define SADB_X_EALG_AESCTR		13 -#define SADB_X_EALG_AES_CCM_ICV8	14 -#define SADB_X_EALG_AES_CCM_ICV12	15 -#define SADB_X_EALG_AES_CCM_ICV16	16 -#define SADB_X_EALG_AES_GCM_ICV8	18 -#define SADB_X_EALG_AES_GCM_ICV12	19 -#define SADB_X_EALG_AES_GCM_ICV16	20 -#define SADB_X_EALG_CAMELLIACBC		22 -#define SADB_X_EALG_NULL_AES_GMAC	23 -#define SADB_EALG_MAX                   253 /* last EALG */ -/* private allocations should use 249-255 (RFC2407) */ -#define SADB_X_EALG_SERPENTCBC  252     /* draft-ietf-ipsec-ciph-aes-cbc-00 */ -#define SADB_X_EALG_TWOFISHCBC  253     /* draft-ietf-ipsec-ciph-aes-cbc-00 */ - -/* Compression algorithms */ -#define SADB_X_CALG_NONE		0 -#define SADB_X_CALG_OUI			1 -#define SADB_X_CALG_DEFLATE		2 -#define SADB_X_CALG_LZS			3 -#define SADB_X_CALG_LZJH		4 -#define SADB_X_CALG_MAX			4 - -/* Extension Header values */ -#define SADB_EXT_RESERVED		0 -#define SADB_EXT_SA			1 -#define SADB_EXT_LIFETIME_CURRENT	2 -#define SADB_EXT_LIFETIME_HARD		3 -#define SADB_EXT_LIFETIME_SOFT		4 -#define SADB_EXT_ADDRESS_SRC		5 -#define SADB_EXT_ADDRESS_DST		6 -#define SADB_EXT_ADDRESS_PROXY		7 -#define SADB_EXT_KEY_AUTH		8 -#define SADB_EXT_KEY_ENCRYPT		9 -#define SADB_EXT_IDENTITY_SRC		10 -#define SADB_EXT_IDENTITY_DST		11 -#define SADB_EXT_SENSITIVITY		12 -#define SADB_EXT_PROPOSAL		13 -#define SADB_EXT_SUPPORTED_AUTH		14 -#define SADB_EXT_SUPPORTED_ENCRYPT	15 -#define SADB_EXT_SPIRANGE		16 -#define SADB_X_EXT_KMPRIVATE		17 -#define SADB_X_EXT_POLICY		18 -#define SADB_X_EXT_SA2			19 -/* The next four entries are for setting up NAT Traversal */ -#define SADB_X_EXT_NAT_T_TYPE		20 -#define SADB_X_EXT_NAT_T_SPORT		21 -#define SADB_X_EXT_NAT_T_DPORT		22 -#define SADB_X_EXT_NAT_T_OA		23 -#define SADB_X_EXT_SEC_CTX		24 -/* Used with MIGRATE to pass @ to IKE for negotiation */ -#define SADB_X_EXT_KMADDRESS		25 -#define SADB_EXT_MAX			25 - -/* Identity Extension values */ -#define SADB_IDENTTYPE_RESERVED	0 -#define SADB_IDENTTYPE_PREFIX	1 -#define SADB_IDENTTYPE_FQDN	2 -#define SADB_IDENTTYPE_USERFQDN	3 -#define SADB_IDENTTYPE_MAX	3 - -#endif /* !(_LINUX_PFKEY2_H) */ diff --git a/include/linux/pg.h b/include/linux/pg.h deleted file mode 100644 index db994bb0c79..00000000000 --- a/include/linux/pg.h +++ /dev/null @@ -1,63 +0,0 @@ -/* 	pg.h (c) 1998  Grant R. Guenther <grant@torque.net> - 		       Under the terms of the GNU General Public License - - -	pg.h defines the user interface to the generic ATAPI packet -        command driver for parallel port ATAPI devices (pg). The -	driver is loosely modelled after the generic SCSI driver, sg, -	although the actual interface is different. - -	The pg driver provides a simple character device interface for -        sending ATAPI commands to a device.  With the exception of the -	ATAPI reset operation, all operations are performed by a pair -        of read and write operations to the appropriate /dev/pgN device. -	A write operation delivers a command and any outbound data in -        a single buffer.  Normally, the write will succeed unless the -        device is offline or malfunctioning, or there is already another -	command pending.  If the write succeeds, it should be followed -        immediately by a read operation, to obtain any returned data and -        status information.  A read will fail if there is no operation -        in progress. - -	As a special case, the device can be reset with a write operation, -        and in this case, no following read is expected, or permitted. - -	There are no ioctl() operations.  Any single operation -	may transfer at most PG_MAX_DATA bytes.  Note that the driver must -        copy the data through an internal buffer.  In keeping with all -	current ATAPI devices, command packets are assumed to be exactly -	12 bytes in length. - -	To permit future changes to this interface, the headers in the -	read and write buffers contain a single character "magic" flag. -        Currently this flag must be the character "P". - -*/ - -#define PG_MAGIC	'P' -#define PG_RESET	'Z' -#define PG_COMMAND	'C' - -#define PG_MAX_DATA	32768 - -struct pg_write_hdr { - -	char	magic;		/* == PG_MAGIC */ -	char	func;		/* PG_RESET or PG_COMMAND */ -	int     dlen;		/* number of bytes expected to transfer */ -	int     timeout;	/* number of seconds before timeout */ -	char	packet[12];	/* packet command */ - -}; - -struct pg_read_hdr { - -	char	magic;		/* == PG_MAGIC */ -	char	scsi;		/* "scsi" status == sense key */ -	int	dlen;		/* size of device transfer request */ -	int     duration;	/* time in seconds command took */ -	char    pad[12];	/* not used */ - -}; - -/* end of pg.h */ diff --git a/include/linux/phantom.h b/include/linux/phantom.h deleted file mode 100644 index 94dd6645c60..00000000000 --- a/include/linux/phantom.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - *  Copyright (C) 2005-2007 Jiri Slaby <jirislaby@gmail.com> - * - *  This program is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - */ - -#ifndef __PHANTOM_H -#define __PHANTOM_H - -#include <linux/types.h> - -/* PHN_(G/S)ET_REG param */ -struct phm_reg { -	__u32 reg; -	__u32 value; -}; - -/* PHN_(G/S)ET_REGS param */ -struct phm_regs { -	__u32 count; -	__u32 mask; -	__u32 values[8]; -}; - -#define PH_IOC_MAGIC		'p' -#define PHN_GET_REG		_IOWR(PH_IOC_MAGIC, 0, struct phm_reg *) -#define PHN_SET_REG		_IOW(PH_IOC_MAGIC, 1, struct phm_reg *) -#define PHN_GET_REGS		_IOWR(PH_IOC_MAGIC, 2, struct phm_regs *) -#define PHN_SET_REGS		_IOW(PH_IOC_MAGIC, 3, struct phm_regs *) -/* this ioctl tells the driver, that the caller is not OpenHaptics and might - * use improved registers update (no more phantom switchoffs when using - * libphantom) */ -#define PHN_NOT_OH		_IO(PH_IOC_MAGIC, 4) -#define PHN_GETREG		_IOWR(PH_IOC_MAGIC, 5, struct phm_reg) -#define PHN_SETREG		_IOW(PH_IOC_MAGIC, 6, struct phm_reg) -#define PHN_GETREGS		_IOWR(PH_IOC_MAGIC, 7, struct phm_regs) -#define PHN_SETREGS		_IOW(PH_IOC_MAGIC, 8, struct phm_regs) - -#define PHN_CONTROL		0x6     /* control byte in iaddr space */ -#define PHN_CTL_AMP		0x1     /*   switch after torques change */ -#define PHN_CTL_BUT		0x2     /*   is button switched */ -#define PHN_CTL_IRQ		0x10    /*   is irq enabled */ - -#define PHN_ZERO_FORCE		2048	/* zero torque on motor */ - -#endif diff --git a/include/linux/phonet.h b/include/linux/phonet.h index f48bfc80cb4..f691b04fc5c 100644 --- a/include/linux/phonet.h +++ b/include/linux/phonet.h @@ -19,169 +19,11 @@   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA   */ -  #ifndef LINUX_PHONET_H  #define LINUX_PHONET_H -#include <linux/types.h> -#include <linux/socket.h> - -/* Automatic protocol selection */ -#define PN_PROTO_TRANSPORT	0 -/* Phonet datagram socket */ -#define PN_PROTO_PHONET		1 -/* Phonet pipe */ -#define PN_PROTO_PIPE		2 -#define PHONET_NPROTO		3 - -/* Socket options for SOL_PNPIPE level */ -#define PNPIPE_ENCAP		1 -#define PNPIPE_IFINDEX		2 -#define PNPIPE_HANDLE		3 -#define PNPIPE_INITSTATE	4 - -#define PNADDR_ANY		0 -#define PNADDR_BROADCAST	0xFC -#define PNPORT_RESOURCE_ROUTING	0 - -/* Values for PNPIPE_ENCAP option */ -#define PNPIPE_ENCAP_NONE	0 -#define PNPIPE_ENCAP_IP		1 - -/* ioctls */ -#define SIOCPNGETOBJECT		(SIOCPROTOPRIVATE + 0) -#define SIOCPNENABLEPIPE	(SIOCPROTOPRIVATE + 13) -#define SIOCPNADDRESOURCE	(SIOCPROTOPRIVATE + 14) -#define SIOCPNDELRESOURCE	(SIOCPROTOPRIVATE + 15) - -/* Phonet protocol header */ -struct phonethdr { -	__u8	pn_rdev; -	__u8	pn_sdev; -	__u8	pn_res; -	__be16	pn_length; -	__u8	pn_robj; -	__u8	pn_sobj; -} __attribute__((packed)); - -/* Common Phonet payload header */ -struct phonetmsg { -	__u8	pn_trans_id;	/* transaction ID */ -	__u8	pn_msg_id;	/* message type */ -	union { -		struct { -			__u8	pn_submsg_id;	/* message subtype */ -			__u8	pn_data[5]; -		} base; -		struct { -			__u16	pn_e_res_id;	/* extended resource ID */ -			__u8	pn_e_submsg_id;	/* message subtype */ -			__u8	pn_e_data[3]; -		} ext; -	} pn_msg_u; -}; -#define PN_COMMON_MESSAGE	0xF0 -#define PN_COMMGR		0x10 -#define PN_PREFIX		0xE0 /* resource for extended messages */ -#define pn_submsg_id		pn_msg_u.base.pn_submsg_id -#define pn_e_submsg_id		pn_msg_u.ext.pn_e_submsg_id -#define pn_e_res_id		pn_msg_u.ext.pn_e_res_id -#define pn_data			pn_msg_u.base.pn_data -#define pn_e_data		pn_msg_u.ext.pn_e_data - -/* data for unreachable errors */ -#define PN_COMM_SERVICE_NOT_IDENTIFIED_RESP	0x01 -#define PN_COMM_ISA_ENTITY_NOT_REACHABLE_RESP	0x14 -#define pn_orig_msg_id		pn_data[0] -#define pn_status		pn_data[1] -#define pn_e_orig_msg_id	pn_e_data[0] -#define pn_e_status		pn_e_data[1] - -/* Phonet socket address structure */ -struct sockaddr_pn { -	__kernel_sa_family_t spn_family; -	__u8 spn_obj; -	__u8 spn_dev; -	__u8 spn_resource; -	__u8 spn_zero[sizeof(struct sockaddr) - sizeof(__kernel_sa_family_t) - 3]; -} __attribute__((packed)); - -/* Well known address */ -#define PN_DEV_PC	0x10 - -static inline __u16 pn_object(__u8 addr, __u16 port) -{ -	return (addr << 8) | (port & 0x3ff); -} +#include <uapi/linux/phonet.h> -static inline __u8 pn_obj(__u16 handle) -{ -	return handle & 0xff; -} - -static inline __u8 pn_dev(__u16 handle) -{ -	return handle >> 8; -} - -static inline __u16 pn_port(__u16 handle) -{ -	return handle & 0x3ff; -} - -static inline __u8 pn_addr(__u16 handle) -{ -	return (handle >> 8) & 0xfc; -} - -static inline void pn_sockaddr_set_addr(struct sockaddr_pn *spn, __u8 addr) -{ -	spn->spn_dev &= 0x03; -	spn->spn_dev |= addr & 0xfc; -} - -static inline void pn_sockaddr_set_port(struct sockaddr_pn *spn, __u16 port) -{ -	spn->spn_dev &= 0xfc; -	spn->spn_dev |= (port >> 8) & 0x03; -	spn->spn_obj = port & 0xff; -} - -static inline void pn_sockaddr_set_object(struct sockaddr_pn *spn, -						__u16 handle) -{ -	spn->spn_dev = pn_dev(handle); -	spn->spn_obj = pn_obj(handle); -} - -static inline void pn_sockaddr_set_resource(struct sockaddr_pn *spn, -						__u8 resource) -{ -	spn->spn_resource = resource; -} - -static inline __u8 pn_sockaddr_get_addr(const struct sockaddr_pn *spn) -{ -	return spn->spn_dev & 0xfc; -} - -static inline __u16 pn_sockaddr_get_port(const struct sockaddr_pn *spn) -{ -	return ((spn->spn_dev & 0x03) << 8) | spn->spn_obj; -} - -static inline __u16 pn_sockaddr_get_object(const struct sockaddr_pn *spn) -{ -	return pn_object(spn->spn_dev, spn->spn_obj); -} - -static inline __u8 pn_sockaddr_get_resource(const struct sockaddr_pn *spn) -{ -	return spn->spn_resource; -} - -/* Phonet device ioctl requests */ -#ifdef __KERNEL__  #define SIOCPNGAUTOCONF		(SIOCDEVPRIVATE + 0)  struct if_phonet_autoconf { @@ -195,6 +37,4 @@ struct if_phonet_req {  	} ifr_ifru;  };  #define ifr_phonet_autoconf ifr_ifru.ifru_phonet_autoconf -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h deleted file mode 100644 index 082eafaf026..00000000000 --- a/include/linux/pkt_cls.h +++ /dev/null @@ -1,469 +0,0 @@ -#ifndef __LINUX_PKT_CLS_H -#define __LINUX_PKT_CLS_H - -#include <linux/types.h> -#include <linux/pkt_sched.h> - -/* I think i could have done better macros ; for now this is stolen from - * some arch/mips code - jhs -*/ -#define _TC_MAKE32(x) ((x)) - -#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n)) -#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n)) -#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n)) -#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n)) - -/* verdict bit breakdown  - * -bit 0: when set -> this packet has been munged already - -bit 1: when set -> It is ok to munge this packet - -bit 2,3,4,5: Reclassify counter - sort of reverse TTL - if exceeded -assume loop - -bit 6,7: Where this packet was last seen  -0: Above the transmit example at the socket level -1: on the Ingress -2: on the Egress - -bit 8: when set --> Request not to classify on ingress.  - -bits 9,10,11: redirect counter -  redirect TTL. Loop avoidance - - * - * */ - -#define TC_MUNGED          _TC_MAKEMASK1(0) -#define SET_TC_MUNGED(v)   ( TC_MUNGED | (v & ~TC_MUNGED)) -#define CLR_TC_MUNGED(v)   ( v & ~TC_MUNGED) - -#define TC_OK2MUNGE        _TC_MAKEMASK1(1) -#define SET_TC_OK2MUNGE(v)   ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE)) -#define CLR_TC_OK2MUNGE(v)   ( v & ~TC_OK2MUNGE) - -#define S_TC_VERD          _TC_MAKE32(2) -#define M_TC_VERD          _TC_MAKEMASK(4,S_TC_VERD) -#define G_TC_VERD(x)       _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD) -#define V_TC_VERD(x)       _TC_MAKEVALUE(x,S_TC_VERD) -#define SET_TC_VERD(v,n)   ((V_TC_VERD(n)) | (v & ~M_TC_VERD)) - -#define S_TC_FROM          _TC_MAKE32(6) -#define M_TC_FROM          _TC_MAKEMASK(2,S_TC_FROM) -#define G_TC_FROM(x)       _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM) -#define V_TC_FROM(x)       _TC_MAKEVALUE(x,S_TC_FROM) -#define SET_TC_FROM(v,n)   ((V_TC_FROM(n)) | (v & ~M_TC_FROM)) -#define AT_STACK	0x0 -#define AT_INGRESS	0x1 -#define AT_EGRESS	0x2 - -#define TC_NCLS          _TC_MAKEMASK1(8) -#define SET_TC_NCLS(v)   ( TC_NCLS | (v & ~TC_NCLS)) -#define CLR_TC_NCLS(v)   ( v & ~TC_NCLS) - -#define S_TC_RTTL          _TC_MAKE32(9) -#define M_TC_RTTL          _TC_MAKEMASK(3,S_TC_RTTL) -#define G_TC_RTTL(x)       _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL) -#define V_TC_RTTL(x)       _TC_MAKEVALUE(x,S_TC_RTTL) -#define SET_TC_RTTL(v,n)   ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL)) - -#define S_TC_AT          _TC_MAKE32(12) -#define M_TC_AT          _TC_MAKEMASK(2,S_TC_AT) -#define G_TC_AT(x)       _TC_GETVALUE(x,S_TC_AT,M_TC_AT) -#define V_TC_AT(x)       _TC_MAKEVALUE(x,S_TC_AT) -#define SET_TC_AT(v,n)   ((V_TC_AT(n)) | (v & ~M_TC_AT)) - -/* Action attributes */ -enum { -	TCA_ACT_UNSPEC, -	TCA_ACT_KIND, -	TCA_ACT_OPTIONS, -	TCA_ACT_INDEX, -	TCA_ACT_STATS, -	__TCA_ACT_MAX -}; - -#define TCA_ACT_MAX __TCA_ACT_MAX -#define TCA_OLD_COMPAT (TCA_ACT_MAX+1) -#define TCA_ACT_MAX_PRIO 32 -#define TCA_ACT_BIND	1 -#define TCA_ACT_NOBIND	0 -#define TCA_ACT_UNBIND	1 -#define TCA_ACT_NOUNBIND	0 -#define TCA_ACT_REPLACE		1 -#define TCA_ACT_NOREPLACE	0 -#define MAX_REC_LOOP 4 -#define MAX_RED_LOOP 4 - -#define TC_ACT_UNSPEC	(-1) -#define TC_ACT_OK		0 -#define TC_ACT_RECLASSIFY	1 -#define TC_ACT_SHOT		2 -#define TC_ACT_PIPE		3 -#define TC_ACT_STOLEN		4 -#define TC_ACT_QUEUED		5 -#define TC_ACT_REPEAT		6 -#define TC_ACT_JUMP		0x10000000 - -/* Action type identifiers*/ -enum { -	TCA_ID_UNSPEC=0, -	TCA_ID_POLICE=1, -	/* other actions go here */ -	__TCA_ID_MAX=255 -}; - -#define TCA_ID_MAX __TCA_ID_MAX - -struct tc_police { -	__u32			index; -	int			action; -#define TC_POLICE_UNSPEC	TC_ACT_UNSPEC -#define TC_POLICE_OK		TC_ACT_OK -#define TC_POLICE_RECLASSIFY	TC_ACT_RECLASSIFY -#define TC_POLICE_SHOT		TC_ACT_SHOT -#define TC_POLICE_PIPE		TC_ACT_PIPE - -	__u32			limit; -	__u32			burst; -	__u32			mtu; -	struct tc_ratespec	rate; -	struct tc_ratespec	peakrate; -	int 			refcnt; -	int 			bindcnt; -	__u32			capab; -}; - -struct tcf_t { -	__u64   install; -	__u64   lastuse; -	__u64   expires; -}; - -struct tc_cnt { -	int                   refcnt;  -	int                   bindcnt; -}; - -#define tc_gen \ -	__u32                 index; \ -	__u32                 capab; \ -	int                   action; \ -	int                   refcnt; \ -	int                   bindcnt - -enum { -	TCA_POLICE_UNSPEC, -	TCA_POLICE_TBF, -	TCA_POLICE_RATE, -	TCA_POLICE_PEAKRATE, -	TCA_POLICE_AVRATE, -	TCA_POLICE_RESULT, -	__TCA_POLICE_MAX -#define TCA_POLICE_RESULT TCA_POLICE_RESULT -}; - -#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) - -/* U32 filters */ - -#define TC_U32_HTID(h) ((h)&0xFFF00000) -#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20) -#define TC_U32_HASH(h) (((h)>>12)&0xFF) -#define TC_U32_NODE(h) ((h)&0xFFF) -#define TC_U32_KEY(h) ((h)&0xFFFFF) -#define TC_U32_UNSPEC	0 -#define TC_U32_ROOT	(0xFFF00000) - -enum { -	TCA_U32_UNSPEC, -	TCA_U32_CLASSID, -	TCA_U32_HASH, -	TCA_U32_LINK, -	TCA_U32_DIVISOR, -	TCA_U32_SEL, -	TCA_U32_POLICE, -	TCA_U32_ACT,    -	TCA_U32_INDEV, -	TCA_U32_PCNT, -	TCA_U32_MARK, -	__TCA_U32_MAX -}; - -#define TCA_U32_MAX (__TCA_U32_MAX - 1) - -struct tc_u32_key { -	__be32		mask; -	__be32		val; -	int		off; -	int		offmask; -}; - -struct tc_u32_sel { -	unsigned char		flags; -	unsigned char		offshift; -	unsigned char		nkeys; - -	__be16			offmask; -	__u16			off; -	short			offoff; - -	short			hoff; -	__be32			hmask; -	struct tc_u32_key	keys[0]; -}; - -struct tc_u32_mark { -	__u32		val; -	__u32		mask; -	__u32		success; -}; - -struct tc_u32_pcnt { -	__u64 rcnt; -	__u64 rhit; -	__u64 kcnts[0]; -}; - -/* Flags */ - -#define TC_U32_TERMINAL		1 -#define TC_U32_OFFSET		2 -#define TC_U32_VAROFFSET	4 -#define TC_U32_EAT		8 - -#define TC_U32_MAXDEPTH 8 - - -/* RSVP filter */ - -enum { -	TCA_RSVP_UNSPEC, -	TCA_RSVP_CLASSID, -	TCA_RSVP_DST, -	TCA_RSVP_SRC, -	TCA_RSVP_PINFO, -	TCA_RSVP_POLICE, -	TCA_RSVP_ACT, -	__TCA_RSVP_MAX -}; - -#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 ) - -struct tc_rsvp_gpi { -	__u32	key; -	__u32	mask; -	int	offset; -}; - -struct tc_rsvp_pinfo { -	struct tc_rsvp_gpi dpi; -	struct tc_rsvp_gpi spi; -	__u8	protocol; -	__u8	tunnelid; -	__u8	tunnelhdr; -	__u8	pad; -}; - -/* ROUTE filter */ - -enum { -	TCA_ROUTE4_UNSPEC, -	TCA_ROUTE4_CLASSID, -	TCA_ROUTE4_TO, -	TCA_ROUTE4_FROM, -	TCA_ROUTE4_IIF, -	TCA_ROUTE4_POLICE, -	TCA_ROUTE4_ACT, -	__TCA_ROUTE4_MAX -}; - -#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1) - - -/* FW filter */ - -enum { -	TCA_FW_UNSPEC, -	TCA_FW_CLASSID, -	TCA_FW_POLICE, -	TCA_FW_INDEV, /*  used by CONFIG_NET_CLS_IND */ -	TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */ -	TCA_FW_MASK, -	__TCA_FW_MAX -}; - -#define TCA_FW_MAX (__TCA_FW_MAX - 1) - -/* TC index filter */ - -enum { -	TCA_TCINDEX_UNSPEC, -	TCA_TCINDEX_HASH, -	TCA_TCINDEX_MASK, -	TCA_TCINDEX_SHIFT, -	TCA_TCINDEX_FALL_THROUGH, -	TCA_TCINDEX_CLASSID, -	TCA_TCINDEX_POLICE, -	TCA_TCINDEX_ACT, -	__TCA_TCINDEX_MAX -}; - -#define TCA_TCINDEX_MAX     (__TCA_TCINDEX_MAX - 1) - -/* Flow filter */ - -enum { -	FLOW_KEY_SRC, -	FLOW_KEY_DST, -	FLOW_KEY_PROTO, -	FLOW_KEY_PROTO_SRC, -	FLOW_KEY_PROTO_DST, -	FLOW_KEY_IIF, -	FLOW_KEY_PRIORITY, -	FLOW_KEY_MARK, -	FLOW_KEY_NFCT, -	FLOW_KEY_NFCT_SRC, -	FLOW_KEY_NFCT_DST, -	FLOW_KEY_NFCT_PROTO_SRC, -	FLOW_KEY_NFCT_PROTO_DST, -	FLOW_KEY_RTCLASSID, -	FLOW_KEY_SKUID, -	FLOW_KEY_SKGID, -	FLOW_KEY_VLAN_TAG, -	FLOW_KEY_RXHASH, -	__FLOW_KEY_MAX, -}; - -#define FLOW_KEY_MAX	(__FLOW_KEY_MAX - 1) - -enum { -	FLOW_MODE_MAP, -	FLOW_MODE_HASH, -}; - -enum { -	TCA_FLOW_UNSPEC, -	TCA_FLOW_KEYS, -	TCA_FLOW_MODE, -	TCA_FLOW_BASECLASS, -	TCA_FLOW_RSHIFT, -	TCA_FLOW_ADDEND, -	TCA_FLOW_MASK, -	TCA_FLOW_XOR, -	TCA_FLOW_DIVISOR, -	TCA_FLOW_ACT, -	TCA_FLOW_POLICE, -	TCA_FLOW_EMATCHES, -	TCA_FLOW_PERTURB, -	__TCA_FLOW_MAX -}; - -#define TCA_FLOW_MAX	(__TCA_FLOW_MAX - 1) - -/* Basic filter */ - -enum { -	TCA_BASIC_UNSPEC, -	TCA_BASIC_CLASSID, -	TCA_BASIC_EMATCHES, -	TCA_BASIC_ACT, -	TCA_BASIC_POLICE, -	__TCA_BASIC_MAX -}; - -#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1) - - -/* Cgroup classifier */ - -enum { -	TCA_CGROUP_UNSPEC, -	TCA_CGROUP_ACT, -	TCA_CGROUP_POLICE, -	TCA_CGROUP_EMATCHES, -	__TCA_CGROUP_MAX, -}; - -#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1) - -/* Extended Matches */ - -struct tcf_ematch_tree_hdr { -	__u16		nmatches; -	__u16		progid; -}; - -enum { -	TCA_EMATCH_TREE_UNSPEC, -	TCA_EMATCH_TREE_HDR, -	TCA_EMATCH_TREE_LIST, -	__TCA_EMATCH_TREE_MAX -}; -#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) - -struct tcf_ematch_hdr { -	__u16		matchid; -	__u16		kind; -	__u16		flags; -	__u16		pad; /* currently unused */ -}; - -/*  0                   1 - *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5  - * +-----------------------+-+-+---+ - * |         Unused        |S|I| R | - * +-----------------------+-+-+---+ - * - * R(2) ::= relation to next ematch - *          where: 0 0 END (last ematch) - *                 0 1 AND - *                 1 0 OR - *                 1 1 Unused (invalid) - * I(1) ::= invert result - * S(1) ::= simple payload - */ -#define TCF_EM_REL_END	0 -#define TCF_EM_REL_AND	(1<<0) -#define TCF_EM_REL_OR	(1<<1) -#define TCF_EM_INVERT	(1<<2) -#define TCF_EM_SIMPLE	(1<<3) - -#define TCF_EM_REL_MASK	3 -#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) - -enum { -	TCF_LAYER_LINK, -	TCF_LAYER_NETWORK, -	TCF_LAYER_TRANSPORT, -	__TCF_LAYER_MAX -}; -#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1) - -/* Ematch type assignments - *   1..32767		Reserved for ematches inside kernel tree - *   32768..65535	Free to use, not reliable - */ -#define	TCF_EM_CONTAINER	0 -#define	TCF_EM_CMP		1 -#define	TCF_EM_NBYTE		2 -#define	TCF_EM_U32		3 -#define	TCF_EM_META		4 -#define	TCF_EM_TEXT		5 -#define	TCF_EM_VLAN		6 -#define	TCF_EM_CANID		7 -#define	TCF_EM_IPSET		8 -#define	TCF_EM_MAX		8 - -enum { -	TCF_EM_PROG_TC -}; - -enum { -	TCF_EM_OPND_EQ, -	TCF_EM_OPND_GT, -	TCF_EM_OPND_LT -}; - -#endif diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h deleted file mode 100644 index 32aef0a439e..00000000000 --- a/include/linux/pkt_sched.h +++ /dev/null @@ -1,738 +0,0 @@ -#ifndef __LINUX_PKT_SCHED_H -#define __LINUX_PKT_SCHED_H - -#include <linux/types.h> - -/* Logical priority bands not depending on specific packet scheduler. -   Every scheduler will map them to real traffic classes, if it has -   no more precise mechanism to classify packets. - -   These numbers have no special meaning, though their coincidence -   with obsolete IPv6 values is not occasional :-). New IPv6 drafts -   preferred full anarchy inspired by diffserv group. - -   Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy -   class, actually, as rule it will be handled with more care than -   filler or even bulk. - */ - -#define TC_PRIO_BESTEFFORT		0 -#define TC_PRIO_FILLER			1 -#define TC_PRIO_BULK			2 -#define TC_PRIO_INTERACTIVE_BULK	4 -#define TC_PRIO_INTERACTIVE		6 -#define TC_PRIO_CONTROL			7 - -#define TC_PRIO_MAX			15 - -/* Generic queue statistics, available for all the elements. -   Particular schedulers may have also their private records. - */ - -struct tc_stats { -	__u64	bytes;			/* Number of enqueued bytes */ -	__u32	packets;		/* Number of enqueued packets	*/ -	__u32	drops;			/* Packets dropped because of lack of resources */ -	__u32	overlimits;		/* Number of throttle events when this -					 * flow goes out of allocated bandwidth */ -	__u32	bps;			/* Current flow byte rate */ -	__u32	pps;			/* Current flow packet rate */ -	__u32	qlen; -	__u32	backlog; -}; - -struct tc_estimator { -	signed char	interval; -	unsigned char	ewma_log; -}; - -/* "Handles" -   --------- - -    All the traffic control objects have 32bit identifiers, or "handles". - -    They can be considered as opaque numbers from user API viewpoint, -    but actually they always consist of two fields: major and -    minor numbers, which are interpreted by kernel specially, -    that may be used by applications, though not recommended. - -    F.e. qdisc handles always have minor number equal to zero, -    classes (or flows) have major equal to parent qdisc major, and -    minor uniquely identifying class inside qdisc. - -    Macros to manipulate handles: - */ - -#define TC_H_MAJ_MASK (0xFFFF0000U) -#define TC_H_MIN_MASK (0x0000FFFFU) -#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK) -#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK) -#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK)) - -#define TC_H_UNSPEC	(0U) -#define TC_H_ROOT	(0xFFFFFFFFU) -#define TC_H_INGRESS    (0xFFFFFFF1U) - -struct tc_ratespec { -	unsigned char	cell_log; -	unsigned char	__reserved; -	unsigned short	overhead; -	short		cell_align; -	unsigned short	mpu; -	__u32		rate; -}; - -#define TC_RTAB_SIZE	1024 - -struct tc_sizespec { -	unsigned char	cell_log; -	unsigned char	size_log; -	short		cell_align; -	int		overhead; -	unsigned int	linklayer; -	unsigned int	mpu; -	unsigned int	mtu; -	unsigned int	tsize; -}; - -enum { -	TCA_STAB_UNSPEC, -	TCA_STAB_BASE, -	TCA_STAB_DATA, -	__TCA_STAB_MAX -}; - -#define TCA_STAB_MAX (__TCA_STAB_MAX - 1) - -/* FIFO section */ - -struct tc_fifo_qopt { -	__u32	limit;	/* Queue length: bytes for bfifo, packets for pfifo */ -}; - -/* PRIO section */ - -#define TCQ_PRIO_BANDS	16 -#define TCQ_MIN_PRIO_BANDS 2 - -struct tc_prio_qopt { -	int	bands;			/* Number of bands */ -	__u8	priomap[TC_PRIO_MAX+1];	/* Map: logical priority -> PRIO band */ -}; - -/* MULTIQ section */ - -struct tc_multiq_qopt { -	__u16	bands;			/* Number of bands */ -	__u16	max_bands;		/* Maximum number of queues */ -}; - -/* PLUG section */ - -#define TCQ_PLUG_BUFFER                0 -#define TCQ_PLUG_RELEASE_ONE           1 -#define TCQ_PLUG_RELEASE_INDEFINITE    2 -#define TCQ_PLUG_LIMIT                 3 - -struct tc_plug_qopt { -	/* TCQ_PLUG_BUFFER: Inset a plug into the queue and -	 *  buffer any incoming packets -	 * TCQ_PLUG_RELEASE_ONE: Dequeue packets from queue head -	 *   to beginning of the next plug. -	 * TCQ_PLUG_RELEASE_INDEFINITE: Dequeue all packets from queue. -	 *   Stop buffering packets until the next TCQ_PLUG_BUFFER -	 *   command is received (just act as a pass-thru queue). -	 * TCQ_PLUG_LIMIT: Increase/decrease queue size -	 */ -	int             action; -	__u32           limit; -}; - -/* TBF section */ - -struct tc_tbf_qopt { -	struct tc_ratespec rate; -	struct tc_ratespec peakrate; -	__u32		limit; -	__u32		buffer; -	__u32		mtu; -}; - -enum { -	TCA_TBF_UNSPEC, -	TCA_TBF_PARMS, -	TCA_TBF_RTAB, -	TCA_TBF_PTAB, -	__TCA_TBF_MAX, -}; - -#define TCA_TBF_MAX (__TCA_TBF_MAX - 1) - - -/* TEQL section */ - -/* TEQL does not require any parameters */ - -/* SFQ section */ - -struct tc_sfq_qopt { -	unsigned	quantum;	/* Bytes per round allocated to flow */ -	int		perturb_period;	/* Period of hash perturbation */ -	__u32		limit;		/* Maximal packets in queue */ -	unsigned	divisor;	/* Hash divisor  */ -	unsigned	flows;		/* Maximal number of flows  */ -}; - -struct tc_sfqred_stats { -	__u32           prob_drop;      /* Early drops, below max threshold */ -	__u32           forced_drop;	/* Early drops, after max threshold */ -	__u32           prob_mark;      /* Marked packets, below max threshold */ -	__u32           forced_mark;    /* Marked packets, after max threshold */ -	__u32           prob_mark_head; /* Marked packets, below max threshold */ -	__u32           forced_mark_head;/* Marked packets, after max threshold */ -}; - -struct tc_sfq_qopt_v1 { -	struct tc_sfq_qopt v0; -	unsigned int	depth;		/* max number of packets per flow */ -	unsigned int	headdrop; -/* SFQRED parameters */ -	__u32		limit;		/* HARD maximal flow queue length (bytes) */ -	__u32		qth_min;	/* Min average length threshold (bytes) */ -	__u32		qth_max;	/* Max average length threshold (bytes) */ -	unsigned char   Wlog;		/* log(W)		*/ -	unsigned char   Plog;		/* log(P_max/(qth_max-qth_min))	*/ -	unsigned char   Scell_log;	/* cell size for idle damping */ -	unsigned char	flags; -	__u32		max_P;		/* probability, high resolution */ -/* SFQRED stats */ -	struct tc_sfqred_stats stats; -}; - - -struct tc_sfq_xstats { -	__s32		allot; -}; - -/* RED section */ - -enum { -	TCA_RED_UNSPEC, -	TCA_RED_PARMS, -	TCA_RED_STAB, -	TCA_RED_MAX_P, -	__TCA_RED_MAX, -}; - -#define TCA_RED_MAX (__TCA_RED_MAX - 1) - -struct tc_red_qopt { -	__u32		limit;		/* HARD maximal queue length (bytes)	*/ -	__u32		qth_min;	/* Min average length threshold (bytes) */ -	__u32		qth_max;	/* Max average length threshold (bytes) */ -	unsigned char   Wlog;		/* log(W)		*/ -	unsigned char   Plog;		/* log(P_max/(qth_max-qth_min))	*/ -	unsigned char   Scell_log;	/* cell size for idle damping */ -	unsigned char	flags; -#define TC_RED_ECN		1 -#define TC_RED_HARDDROP		2 -#define TC_RED_ADAPTATIVE	4 -}; - -struct tc_red_xstats { -	__u32           early;          /* Early drops */ -	__u32           pdrop;          /* Drops due to queue limits */ -	__u32           other;          /* Drops due to drop() calls */ -	__u32           marked;         /* Marked packets */ -}; - -/* GRED section */ - -#define MAX_DPs 16 - -enum { -       TCA_GRED_UNSPEC, -       TCA_GRED_PARMS, -       TCA_GRED_STAB, -       TCA_GRED_DPS, -       TCA_GRED_MAX_P, -	   __TCA_GRED_MAX, -}; - -#define TCA_GRED_MAX (__TCA_GRED_MAX - 1) - -struct tc_gred_qopt { -	__u32		limit;        /* HARD maximal queue length (bytes)    */ -	__u32		qth_min;      /* Min average length threshold (bytes) */ -	__u32		qth_max;      /* Max average length threshold (bytes) */ -	__u32		DP;           /* up to 2^32 DPs */ -	__u32		backlog; -	__u32		qave; -	__u32		forced; -	__u32		early; -	__u32		other; -	__u32		pdrop; -	__u8		Wlog;         /* log(W)               */ -	__u8		Plog;         /* log(P_max/(qth_max-qth_min)) */ -	__u8		Scell_log;    /* cell size for idle damping */ -	__u8		prio;         /* prio of this VQ */ -	__u32		packets; -	__u32		bytesin; -}; - -/* gred setup */ -struct tc_gred_sopt { -	__u32		DPs; -	__u32		def_DP; -	__u8		grio; -	__u8		flags; -	__u16		pad1; -}; - -/* CHOKe section */ - -enum { -	TCA_CHOKE_UNSPEC, -	TCA_CHOKE_PARMS, -	TCA_CHOKE_STAB, -	TCA_CHOKE_MAX_P, -	__TCA_CHOKE_MAX, -}; - -#define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1) - -struct tc_choke_qopt { -	__u32		limit;		/* Hard queue length (packets)	*/ -	__u32		qth_min;	/* Min average threshold (packets) */ -	__u32		qth_max;	/* Max average threshold (packets) */ -	unsigned char   Wlog;		/* log(W)		*/ -	unsigned char   Plog;		/* log(P_max/(qth_max-qth_min))	*/ -	unsigned char   Scell_log;	/* cell size for idle damping */ -	unsigned char	flags;		/* see RED flags */ -}; - -struct tc_choke_xstats { -	__u32		early;          /* Early drops */ -	__u32		pdrop;          /* Drops due to queue limits */ -	__u32		other;          /* Drops due to drop() calls */ -	__u32		marked;         /* Marked packets */ -	__u32		matched;	/* Drops due to flow match */ -}; - -/* HTB section */ -#define TC_HTB_NUMPRIO		8 -#define TC_HTB_MAXDEPTH		8 -#define TC_HTB_PROTOVER		3 /* the same as HTB and TC's major */ - -struct tc_htb_opt { -	struct tc_ratespec 	rate; -	struct tc_ratespec 	ceil; -	__u32	buffer; -	__u32	cbuffer; -	__u32	quantum; -	__u32	level;		/* out only */ -	__u32	prio; -}; -struct tc_htb_glob { -	__u32 version;		/* to match HTB/TC */ -    	__u32 rate2quantum;	/* bps->quantum divisor */ -    	__u32 defcls;		/* default class number */ -	__u32 debug;		/* debug flags */ - -	/* stats */ -	__u32 direct_pkts; /* count of non shaped packets */ -}; -enum { -	TCA_HTB_UNSPEC, -	TCA_HTB_PARMS, -	TCA_HTB_INIT, -	TCA_HTB_CTAB, -	TCA_HTB_RTAB, -	__TCA_HTB_MAX, -}; - -#define TCA_HTB_MAX (__TCA_HTB_MAX - 1) - -struct tc_htb_xstats { -	__u32 lends; -	__u32 borrows; -	__u32 giants;	/* too big packets (rate will not be accurate) */ -	__u32 tokens; -	__u32 ctokens; -}; - -/* HFSC section */ - -struct tc_hfsc_qopt { -	__u16	defcls;		/* default class */ -}; - -struct tc_service_curve { -	__u32	m1;		/* slope of the first segment in bps */ -	__u32	d;		/* x-projection of the first segment in us */ -	__u32	m2;		/* slope of the second segment in bps */ -}; - -struct tc_hfsc_stats { -	__u64	work;		/* total work done */ -	__u64	rtwork;		/* work done by real-time criteria */ -	__u32	period;		/* current period */ -	__u32	level;		/* class level in hierarchy */ -}; - -enum { -	TCA_HFSC_UNSPEC, -	TCA_HFSC_RSC, -	TCA_HFSC_FSC, -	TCA_HFSC_USC, -	__TCA_HFSC_MAX, -}; - -#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1) - - -/* CBQ section */ - -#define TC_CBQ_MAXPRIO		8 -#define TC_CBQ_MAXLEVEL		8 -#define TC_CBQ_DEF_EWMA		5 - -struct tc_cbq_lssopt { -	unsigned char	change; -	unsigned char	flags; -#define TCF_CBQ_LSS_BOUNDED	1 -#define TCF_CBQ_LSS_ISOLATED	2 -	unsigned char  	ewma_log; -	unsigned char  	level; -#define TCF_CBQ_LSS_FLAGS	1 -#define TCF_CBQ_LSS_EWMA	2 -#define TCF_CBQ_LSS_MAXIDLE	4 -#define TCF_CBQ_LSS_MINIDLE	8 -#define TCF_CBQ_LSS_OFFTIME	0x10 -#define TCF_CBQ_LSS_AVPKT	0x20 -	__u32		maxidle; -	__u32		minidle; -	__u32		offtime; -	__u32		avpkt; -}; - -struct tc_cbq_wrropt { -	unsigned char	flags; -	unsigned char	priority; -	unsigned char	cpriority; -	unsigned char	__reserved; -	__u32		allot; -	__u32		weight; -}; - -struct tc_cbq_ovl { -	unsigned char	strategy; -#define	TC_CBQ_OVL_CLASSIC	0 -#define	TC_CBQ_OVL_DELAY	1 -#define	TC_CBQ_OVL_LOWPRIO	2 -#define	TC_CBQ_OVL_DROP		3 -#define	TC_CBQ_OVL_RCLASSIC	4 -	unsigned char	priority2; -	__u16		pad; -	__u32		penalty; -}; - -struct tc_cbq_police { -	unsigned char	police; -	unsigned char	__res1; -	unsigned short	__res2; -}; - -struct tc_cbq_fopt { -	__u32		split; -	__u32		defmap; -	__u32		defchange; -}; - -struct tc_cbq_xstats { -	__u32		borrows; -	__u32		overactions; -	__s32		avgidle; -	__s32		undertime; -}; - -enum { -	TCA_CBQ_UNSPEC, -	TCA_CBQ_LSSOPT, -	TCA_CBQ_WRROPT, -	TCA_CBQ_FOPT, -	TCA_CBQ_OVL_STRATEGY, -	TCA_CBQ_RATE, -	TCA_CBQ_RTAB, -	TCA_CBQ_POLICE, -	__TCA_CBQ_MAX, -}; - -#define TCA_CBQ_MAX	(__TCA_CBQ_MAX - 1) - -/* dsmark section */ - -enum { -	TCA_DSMARK_UNSPEC, -	TCA_DSMARK_INDICES, -	TCA_DSMARK_DEFAULT_INDEX, -	TCA_DSMARK_SET_TC_INDEX, -	TCA_DSMARK_MASK, -	TCA_DSMARK_VALUE, -	__TCA_DSMARK_MAX, -}; - -#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1) - -/* ATM  section */ - -enum { -	TCA_ATM_UNSPEC, -	TCA_ATM_FD,		/* file/socket descriptor */ -	TCA_ATM_PTR,		/* pointer to descriptor - later */ -	TCA_ATM_HDR,		/* LL header */ -	TCA_ATM_EXCESS,		/* excess traffic class (0 for CLP)  */ -	TCA_ATM_ADDR,		/* PVC address (for output only) */ -	TCA_ATM_STATE,		/* VC state (ATM_VS_*; for output only) */ -	__TCA_ATM_MAX, -}; - -#define TCA_ATM_MAX	(__TCA_ATM_MAX - 1) - -/* Network emulator */ - -enum { -	TCA_NETEM_UNSPEC, -	TCA_NETEM_CORR, -	TCA_NETEM_DELAY_DIST, -	TCA_NETEM_REORDER, -	TCA_NETEM_CORRUPT, -	TCA_NETEM_LOSS, -	TCA_NETEM_RATE, -	TCA_NETEM_ECN, -	__TCA_NETEM_MAX, -}; - -#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) - -struct tc_netem_qopt { -	__u32	latency;	/* added delay (us) */ -	__u32   limit;		/* fifo limit (packets) */ -	__u32	loss;		/* random packet loss (0=none ~0=100%) */ -	__u32	gap;		/* re-ordering gap (0 for none) */ -	__u32   duplicate;	/* random packet dup  (0=none ~0=100%) */ -	__u32	jitter;		/* random jitter in latency (us) */ -}; - -struct tc_netem_corr { -	__u32	delay_corr;	/* delay correlation */ -	__u32	loss_corr;	/* packet loss correlation */ -	__u32	dup_corr;	/* duplicate correlation  */ -}; - -struct tc_netem_reorder { -	__u32	probability; -	__u32	correlation; -}; - -struct tc_netem_corrupt { -	__u32	probability; -	__u32	correlation; -}; - -struct tc_netem_rate { -	__u32	rate;	/* byte/s */ -	__s32	packet_overhead; -	__u32	cell_size; -	__s32	cell_overhead; -}; - -enum { -	NETEM_LOSS_UNSPEC, -	NETEM_LOSS_GI,		/* General Intuitive - 4 state model */ -	NETEM_LOSS_GE,		/* Gilbert Elliot models */ -	__NETEM_LOSS_MAX -}; -#define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1) - -/* State transition probabilities for 4 state model */ -struct tc_netem_gimodel { -	__u32	p13; -	__u32	p31; -	__u32	p32; -	__u32	p14; -	__u32	p23; -}; - -/* Gilbert-Elliot models */ -struct tc_netem_gemodel { -	__u32 p; -	__u32 r; -	__u32 h; -	__u32 k1; -}; - -#define NETEM_DIST_SCALE	8192 -#define NETEM_DIST_MAX		16384 - -/* DRR */ - -enum { -	TCA_DRR_UNSPEC, -	TCA_DRR_QUANTUM, -	__TCA_DRR_MAX -}; - -#define TCA_DRR_MAX	(__TCA_DRR_MAX - 1) - -struct tc_drr_stats { -	__u32	deficit; -}; - -/* MQPRIO */ -#define TC_QOPT_BITMASK 15 -#define TC_QOPT_MAX_QUEUE 16 - -struct tc_mqprio_qopt { -	__u8	num_tc; -	__u8	prio_tc_map[TC_QOPT_BITMASK + 1]; -	__u8	hw; -	__u16	count[TC_QOPT_MAX_QUEUE]; -	__u16	offset[TC_QOPT_MAX_QUEUE]; -}; - -/* SFB */ - -enum { -	TCA_SFB_UNSPEC, -	TCA_SFB_PARMS, -	__TCA_SFB_MAX, -}; - -#define TCA_SFB_MAX (__TCA_SFB_MAX - 1) - -/* - * Note: increment, decrement are Q0.16 fixed-point values. - */ -struct tc_sfb_qopt { -	__u32 rehash_interval;	/* delay between hash move, in ms */ -	__u32 warmup_time;	/* double buffering warmup time in ms (warmup_time < rehash_interval) */ -	__u32 max;		/* max len of qlen_min */ -	__u32 bin_size;		/* maximum queue length per bin */ -	__u32 increment;	/* probability increment, (d1 in Blue) */ -	__u32 decrement;	/* probability decrement, (d2 in Blue) */ -	__u32 limit;		/* max SFB queue length */ -	__u32 penalty_rate;	/* inelastic flows are rate limited to 'rate' pps */ -	__u32 penalty_burst; -}; - -struct tc_sfb_xstats { -	__u32 earlydrop; -	__u32 penaltydrop; -	__u32 bucketdrop; -	__u32 queuedrop; -	__u32 childdrop; /* drops in child qdisc */ -	__u32 marked; -	__u32 maxqlen; -	__u32 maxprob; -	__u32 avgprob; -}; - -#define SFB_MAX_PROB 0xFFFF - -/* QFQ */ -enum { -	TCA_QFQ_UNSPEC, -	TCA_QFQ_WEIGHT, -	TCA_QFQ_LMAX, -	__TCA_QFQ_MAX -}; - -#define TCA_QFQ_MAX	(__TCA_QFQ_MAX - 1) - -struct tc_qfq_stats { -	__u32 weight; -	__u32 lmax; -}; - -/* CODEL */ - -enum { -	TCA_CODEL_UNSPEC, -	TCA_CODEL_TARGET, -	TCA_CODEL_LIMIT, -	TCA_CODEL_INTERVAL, -	TCA_CODEL_ECN, -	__TCA_CODEL_MAX -}; - -#define TCA_CODEL_MAX	(__TCA_CODEL_MAX - 1) - -struct tc_codel_xstats { -	__u32	maxpacket; /* largest packet we've seen so far */ -	__u32	count;	   /* how many drops we've done since the last time we -			    * entered dropping state -			    */ -	__u32	lastcount; /* count at entry to dropping state */ -	__u32	ldelay;    /* in-queue delay seen by most recently dequeued packet */ -	__s32	drop_next; /* time to drop next packet */ -	__u32	drop_overlimit; /* number of time max qdisc packet limit was hit */ -	__u32	ecn_mark;  /* number of packets we ECN marked instead of dropped */ -	__u32	dropping;  /* are we in dropping state ? */ -}; - -/* FQ_CODEL */ - -enum { -	TCA_FQ_CODEL_UNSPEC, -	TCA_FQ_CODEL_TARGET, -	TCA_FQ_CODEL_LIMIT, -	TCA_FQ_CODEL_INTERVAL, -	TCA_FQ_CODEL_ECN, -	TCA_FQ_CODEL_FLOWS, -	TCA_FQ_CODEL_QUANTUM, -	__TCA_FQ_CODEL_MAX -}; - -#define TCA_FQ_CODEL_MAX	(__TCA_FQ_CODEL_MAX - 1) - -enum { -	TCA_FQ_CODEL_XSTATS_QDISC, -	TCA_FQ_CODEL_XSTATS_CLASS, -}; - -struct tc_fq_codel_qd_stats { -	__u32	maxpacket;	/* largest packet we've seen so far */ -	__u32	drop_overlimit; /* number of time max qdisc -				 * packet limit was hit -				 */ -	__u32	ecn_mark;	/* number of packets we ECN marked -				 * instead of being dropped -				 */ -	__u32	new_flow_count; /* number of time packets -				 * created a 'new flow' -				 */ -	__u32	new_flows_len;	/* count of flows in new list */ -	__u32	old_flows_len;	/* count of flows in old list */ -}; - -struct tc_fq_codel_cl_stats { -	__s32	deficit; -	__u32	ldelay;		/* in-queue delay seen by most recently -				 * dequeued packet -				 */ -	__u32	count; -	__u32	lastcount; -	__u32	dropping; -	__s32	drop_next; -}; - -struct tc_fq_codel_xstats { -	__u32	type; -	union { -		struct tc_fq_codel_qd_stats qdisc_stats; -		struct tc_fq_codel_cl_stats class_stats; -	}; -}; - -#endif diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h index 721301b0a90..93d142ad152 100644 --- a/include/linux/pktcdvd.h +++ b/include/linux/pktcdvd.h @@ -12,108 +12,13 @@  #ifndef __PKTCDVD_H  #define __PKTCDVD_H -#include <linux/types.h> - -/* - * 1 for normal debug messages, 2 is very verbose. 0 to turn it off. - */ -#define PACKET_DEBUG		1 - -#define	MAX_WRITERS		8 - -#define PKT_RB_POOL_SIZE	512 - -/* - * How long we should hold a non-full packet before starting data gathering. - */ -#define PACKET_WAIT_TIME	(HZ * 5 / 1000) - -/* - * use drive write caching -- we need deferred error handling to be - * able to successfully recover with this option (drive will return good - * status as soon as the cdb is validated). - */ -#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) -#define USE_WCACHING		1 -#else -#define USE_WCACHING		0 -#endif - -/* - * No user-servicable parts beyond this point -> - */ - -/* - * device types - */ -#define PACKET_CDR		1 -#define	PACKET_CDRW		2 -#define PACKET_DVDR		3 -#define PACKET_DVDRW		4 - -/* - * flags - */ -#define PACKET_WRITABLE		1	/* pd is writable */ -#define PACKET_NWA_VALID	2	/* next writable address valid */ -#define PACKET_LRA_VALID	3	/* last recorded address valid */ -#define PACKET_MERGE_SEGS	4	/* perform segment merging to keep */ -					/* underlying cdrom device happy */ - -/* - * Disc status -- from READ_DISC_INFO - */ -#define PACKET_DISC_EMPTY	0 -#define PACKET_DISC_INCOMPLETE	1 -#define PACKET_DISC_COMPLETE	2 -#define PACKET_DISC_OTHER	3 - -/* - * write type, and corresponding data block type - */ -#define PACKET_MODE1		1 -#define PACKET_MODE2		2 -#define PACKET_BLOCK_MODE1	8 -#define PACKET_BLOCK_MODE2	10 - -/* - * Last session/border status - */ -#define PACKET_SESSION_EMPTY		0 -#define PACKET_SESSION_INCOMPLETE	1 -#define PACKET_SESSION_RESERVED		2 -#define PACKET_SESSION_COMPLETE		3 - -#define PACKET_MCN			"4a656e734178626f65323030300000" - -#undef PACKET_USE_LS - -#define PKT_CTRL_CMD_SETUP	0 -#define PKT_CTRL_CMD_TEARDOWN	1 -#define PKT_CTRL_CMD_STATUS	2 - -struct pkt_ctrl_command { -	__u32 command;				/* in: Setup, teardown, status */ -	__u32 dev_index;			/* in/out: Device index */ -	__u32 dev;				/* in/out: Device nr for cdrw device */ -	__u32 pkt_dev;				/* in/out: Device nr for packet device */ -	__u32 num_devices;			/* out: Largest device index + 1 */ -	__u32 padding;				/* Not used */ -}; - -/* - * packet ioctls - */ -#define PACKET_IOCTL_MAGIC	('X') -#define PACKET_CTRL_CMD		_IOWR(PACKET_IOCTL_MAGIC, 1, struct pkt_ctrl_command) - -#ifdef __KERNEL__  #include <linux/blkdev.h>  #include <linux/completion.h>  #include <linux/cdrom.h>  #include <linux/kobject.h>  #include <linux/sysfs.h>  #include <linux/mempool.h> +#include <uapi/linux/pktcdvd.h>  /* default bio write queue congestion marks */  #define PKT_WRITE_CONGESTION_ON    10000 @@ -297,6 +202,4 @@ struct pktcdvd_device  	struct dentry		*dfs_f_info;	/* debugfs: info file */  }; -#endif /* __KERNEL__ */ -  #endif /* __PKTCDVD_H */ diff --git a/include/linux/pmu.h b/include/linux/pmu.h index 84e6a55a120..99b400b8a24 100644 --- a/include/linux/pmu.h +++ b/include/linux/pmu.h @@ -5,138 +5,12 @@   *   * Copyright (C) 1998 Paul Mackerras.   */ -  #ifndef _LINUX_PMU_H  #define _LINUX_PMU_H -#define PMU_DRIVER_VERSION	2 - -/* - * PMU commands - */ -#define PMU_POWER_CTRL0		0x10	/* control power of some devices */ -#define PMU_POWER_CTRL		0x11	/* control power of some devices */ -#define PMU_ADB_CMD		0x20	/* send ADB packet */ -#define PMU_ADB_POLL_OFF	0x21	/* disable ADB auto-poll */ -#define PMU_WRITE_NVRAM		0x33	/* write non-volatile RAM */ -#define PMU_READ_NVRAM		0x3b	/* read non-volatile RAM */ -#define PMU_SET_RTC		0x30	/* set real-time clock */ -#define PMU_READ_RTC		0x38	/* read real-time clock */ -#define PMU_SET_VOLBUTTON	0x40	/* set volume up/down position */ -#define PMU_BACKLIGHT_BRIGHT	0x41	/* set backlight brightness */ -#define PMU_GET_VOLBUTTON	0x48	/* get volume up/down position */ -#define PMU_PCEJECT		0x4c	/* eject PC-card from slot */ -#define PMU_BATTERY_STATE	0x6b	/* report battery state etc. */ -#define PMU_SMART_BATTERY_STATE	0x6f	/* report battery state (new way) */ -#define PMU_SET_INTR_MASK	0x70	/* set PMU interrupt mask */ -#define PMU_INT_ACK		0x78	/* read interrupt bits */ -#define PMU_SHUTDOWN		0x7e	/* turn power off */ -#define PMU_CPU_SPEED		0x7d	/* control CPU speed on some models */ -#define PMU_SLEEP		0x7f	/* put CPU to sleep */ -#define PMU_POWER_EVENTS	0x8f	/* Send power-event commands to PMU */ -#define PMU_I2C_CMD		0x9a	/* I2C operations */ -#define PMU_RESET		0xd0	/* reset CPU */ -#define PMU_GET_BRIGHTBUTTON	0xd9	/* report brightness up/down pos */ -#define PMU_GET_COVER		0xdc	/* report cover open/closed */ -#define PMU_SYSTEM_READY	0xdf	/* tell PMU we are awake */ -#define PMU_GET_VERSION		0xea	/* read the PMU version */ - -/* Bits to use with the PMU_POWER_CTRL0 command */ -#define PMU_POW0_ON		0x80	/* OR this to power ON the device */ -#define PMU_POW0_OFF		0x00	/* leave bit 7 to 0 to power it OFF */ -#define PMU_POW0_HARD_DRIVE	0x04	/* Hard drive power (on wallstreet/lombard ?) */ - -/* Bits to use with the PMU_POWER_CTRL command */ -#define PMU_POW_ON		0x80	/* OR this to power ON the device */ -#define PMU_POW_OFF		0x00	/* leave bit 7 to 0 to power it OFF */ -#define PMU_POW_BACKLIGHT	0x01	/* backlight power */ -#define PMU_POW_CHARGER		0x02	/* battery charger power */ -#define PMU_POW_IRLED		0x04	/* IR led power (on wallstreet) */ -#define PMU_POW_MEDIABAY	0x08	/* media bay power (wallstreet/lombard ?) */ - -/* Bits in PMU interrupt and interrupt mask bytes */ -#define PMU_INT_PCEJECT		0x04	/* PC-card eject buttons */ -#define PMU_INT_SNDBRT		0x08	/* sound/brightness up/down buttons */ -#define PMU_INT_ADB		0x10	/* ADB autopoll or reply data */ -#define PMU_INT_BATTERY		0x20	/* Battery state change */ -#define PMU_INT_ENVIRONMENT	0x40	/* Environment interrupts */ -#define PMU_INT_TICK		0x80	/* 1-second tick interrupt */ - -/* Other bits in PMU interrupt valid when PMU_INT_ADB is set */ -#define PMU_INT_ADB_AUTO	0x04	/* ADB autopoll, when PMU_INT_ADB */ -#define PMU_INT_WAITING_CHARGER	0x01	/* ??? */ -#define PMU_INT_AUTO_SRQ_POLL	0x02	/* ??? */ - -/* Bits in the environement message (either obtained via PMU_GET_COVER, - * or via PMU_INT_ENVIRONMENT on core99 */ -#define PMU_ENV_LID_CLOSED	0x01	/* The lid is closed */ - -/* I2C related definitions */ -#define PMU_I2C_MODE_SIMPLE	0 -#define PMU_I2C_MODE_STDSUB	1 -#define PMU_I2C_MODE_COMBINED	2 - -#define PMU_I2C_BUS_STATUS	0 -#define PMU_I2C_BUS_SYSCLK	1 -#define PMU_I2C_BUS_POWER	2 - -#define PMU_I2C_STATUS_OK	0 -#define PMU_I2C_STATUS_DATAREAD	1 -#define PMU_I2C_STATUS_BUSY	0xfe +#include <uapi/linux/pmu.h> -/* Kind of PMU (model) */ -enum { -	PMU_UNKNOWN, -	PMU_OHARE_BASED,	/* 2400, 3400, 3500 (old G3 powerbook) */ -	PMU_HEATHROW_BASED,	/* PowerBook G3 series */ -	PMU_PADDINGTON_BASED,	/* 1999 PowerBook G3 */ -	PMU_KEYLARGO_BASED,	/* Core99 motherboard (PMU99) */ -	PMU_68K_V1,		/* 68K PMU, version 1 */ -	PMU_68K_V2, 		/* 68K PMU, version 2 */ -}; - -/* PMU PMU_POWER_EVENTS commands */ -enum { -	PMU_PWR_GET_POWERUP_EVENTS	= 0x00, -	PMU_PWR_SET_POWERUP_EVENTS	= 0x01, -	PMU_PWR_CLR_POWERUP_EVENTS	= 0x02, -	PMU_PWR_GET_WAKEUP_EVENTS	= 0x03, -	PMU_PWR_SET_WAKEUP_EVENTS	= 0x04, -	PMU_PWR_CLR_WAKEUP_EVENTS	= 0x05, -}; - -/* Power events wakeup bits */ -enum { -	PMU_PWR_WAKEUP_KEY		= 0x01,	/* Wake on key press */ -	PMU_PWR_WAKEUP_AC_INSERT	= 0x02, /* Wake on AC adapter plug */ -	PMU_PWR_WAKEUP_AC_CHANGE	= 0x04, -	PMU_PWR_WAKEUP_LID_OPEN		= 0x08, -	PMU_PWR_WAKEUP_RING		= 0x10, -}; -	 -/* - * Ioctl commands for the /dev/pmu device - */ -#include <linux/ioctl.h> - -/* no param */ -#define PMU_IOC_SLEEP		_IO('B', 0) -/* out param: u32*	backlight value: 0 to 15 */ -#define PMU_IOC_GET_BACKLIGHT	_IOR('B', 1, size_t) -/* in param: u32	backlight value: 0 to 15 */ -#define PMU_IOC_SET_BACKLIGHT	_IOW('B', 2, size_t) -/* out param: u32*	PMU model */ -#define PMU_IOC_GET_MODEL	_IOR('B', 3, size_t) -/* out param: u32*	has_adb: 0 or 1 */ -#define PMU_IOC_HAS_ADB		_IOR('B', 4, size_t)  -/* out param: u32*	can_sleep: 0 or 1 */ -#define PMU_IOC_CAN_SLEEP	_IOR('B', 5, size_t)  -/* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */ -#define PMU_IOC_GRAB_BACKLIGHT	_IOR('B', 6, size_t)  - -#ifdef __KERNEL__ -  extern int find_via_pmu(void);  extern int pmu_request(struct adb_request *req, @@ -208,6 +82,4 @@ extern int pmu_sys_suspended;  #define pmu_sys_suspended	0  #endif -#endif	/* __KERNEL__ */ -  #endif /* _LINUX_PMU_H */ diff --git a/include/linux/poll.h b/include/linux/poll.h index 48fe8bc398d..c08386fb3e0 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h @@ -1,9 +1,6 @@  #ifndef _LINUX_POLL_H  #define _LINUX_POLL_H -#include <asm/poll.h> - -#ifdef __KERNEL__  #include <linux/compiler.h>  #include <linux/ktime.h> @@ -12,6 +9,7 @@  #include <linux/fs.h>  #include <linux/sysctl.h>  #include <asm/uaccess.h> +#include <uapi/linux/poll.h>  extern struct ctl_table epoll_table[]; /* for sysctl */  /* ~832 bytes of stack space used max in sys_select/sys_poll before allocating @@ -163,6 +161,4 @@ extern int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,  extern int poll_select_set_timeout(struct timespec *to, long sec, long nsec); -#endif /* KERNEL */ -  #endif /* _LINUX_POLL_H */ diff --git a/include/linux/posix_types.h b/include/linux/posix_types.h deleted file mode 100644 index 988f76e636e..00000000000 --- a/include/linux/posix_types.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _LINUX_POSIX_TYPES_H -#define _LINUX_POSIX_TYPES_H - -#include <linux/stddef.h> - -/* - * This allows for 1024 file descriptors: if NR_OPEN is ever grown - * beyond that you'll have to change this too. But 1024 fd's seem to be - * enough even for such "real" unices like OSF/1, so hopefully this is - * one limit that doesn't have to be changed [again]. - * - * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in - * <sys/time.h> (and thus <linux/time.h>) - but this is a more logical - * place for them. Solved by having dummy defines in <sys/time.h>. - */ - -/* - * This macro may have been defined in <gnu/types.h>. But we always - * use the one here. - */ -#undef __FD_SETSIZE -#define __FD_SETSIZE	1024 - -typedef struct { -	unsigned long fds_bits[__FD_SETSIZE / (8 * sizeof(long))]; -} __kernel_fd_set; - -/* Type of a signal handler.  */ -typedef void (*__kernel_sighandler_t)(int); - -/* Type of a SYSV IPC key.  */ -typedef int __kernel_key_t; -typedef int __kernel_mqd_t; - -#include <asm/posix_types.h> - -#endif /* _LINUX_POSIX_TYPES_H */ diff --git a/include/linux/ppdev.h b/include/linux/ppdev.h deleted file mode 100644 index dc18c5d23eb..00000000000 --- a/include/linux/ppdev.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * linux/include/linux/ppdev.h - * - * User-space parallel port device driver (header file). - * - * Copyright (C) 1998-9 Tim Waugh <tim@cyberelk.demon.co.uk> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - * - * Added PPGETTIME/PPSETTIME, Fred Barnes, 1999 - * Added PPGETMODES/PPGETMODE/PPGETPHASE, Fred Barnes <frmb2@ukc.ac.uk>, 03/01/2001 - */ - -#define PP_IOCTL	'p' - -/* Set mode for read/write (e.g. IEEE1284_MODE_EPP) */ -#define PPSETMODE	_IOW(PP_IOCTL, 0x80, int) - -/* Read status */ -#define PPRSTATUS	_IOR(PP_IOCTL, 0x81, unsigned char) -#define PPWSTATUS	OBSOLETE__IOW(PP_IOCTL, 0x82, unsigned char) - -/* Read/write control */ -#define PPRCONTROL	_IOR(PP_IOCTL, 0x83, unsigned char) -#define PPWCONTROL	_IOW(PP_IOCTL, 0x84, unsigned char) - -struct ppdev_frob_struct { -	unsigned char mask; -	unsigned char val; -}; -#define PPFCONTROL      _IOW(PP_IOCTL, 0x8e, struct ppdev_frob_struct) - -/* Read/write data */ -#define PPRDATA		_IOR(PP_IOCTL, 0x85, unsigned char) -#define PPWDATA		_IOW(PP_IOCTL, 0x86, unsigned char) - -/* Read/write econtrol (not used) */ -#define PPRECONTROL	OBSOLETE__IOR(PP_IOCTL, 0x87, unsigned char) -#define PPWECONTROL	OBSOLETE__IOW(PP_IOCTL, 0x88, unsigned char) - -/* Read/write FIFO (not used) */ -#define PPRFIFO		OBSOLETE__IOR(PP_IOCTL, 0x89, unsigned char) -#define PPWFIFO		OBSOLETE__IOW(PP_IOCTL, 0x8a, unsigned char) - -/* Claim the port to start using it */ -#define PPCLAIM		_IO(PP_IOCTL, 0x8b) - -/* Release the port when you aren't using it */ -#define PPRELEASE	_IO(PP_IOCTL, 0x8c) - -/* Yield the port (release it if another driver is waiting, - * then reclaim) */ -#define PPYIELD		_IO(PP_IOCTL, 0x8d) - -/* Register device exclusively (must be before PPCLAIM). */ -#define PPEXCL		_IO(PP_IOCTL, 0x8f) - -/* Data line direction: non-zero for input mode. */ -#define PPDATADIR	_IOW(PP_IOCTL, 0x90, int) - -/* Negotiate a particular IEEE 1284 mode. */ -#define PPNEGOT		_IOW(PP_IOCTL, 0x91, int) - -/* Set control lines when an interrupt occurs. */ -#define PPWCTLONIRQ	_IOW(PP_IOCTL, 0x92, unsigned char) - -/* Clear (and return) interrupt count. */ -#define PPCLRIRQ	_IOR(PP_IOCTL, 0x93, int) - -/* Set the IEEE 1284 phase that we're in (e.g. IEEE1284_PH_FWD_IDLE) */ -#define PPSETPHASE	_IOW(PP_IOCTL, 0x94, int) - -/* Set and get port timeout (struct timeval's) */ -#define PPGETTIME	_IOR(PP_IOCTL, 0x95, struct timeval) -#define PPSETTIME	_IOW(PP_IOCTL, 0x96, struct timeval) - -/* Get available modes (what the hardware can do) */ -#define PPGETMODES	_IOR(PP_IOCTL, 0x97, unsigned int) - -/* Get the current mode and phaze */ -#define PPGETMODE	_IOR(PP_IOCTL, 0x98, int) -#define PPGETPHASE	_IOR(PP_IOCTL, 0x99, int) - -/* get/set flags */ -#define PPGETFLAGS	_IOR(PP_IOCTL, 0x9a, int) -#define PPSETFLAGS	_IOW(PP_IOCTL, 0x9b, int) - -/* flags visible to the world */ -#define PP_FASTWRITE	(1<<2) -#define PP_FASTREAD	(1<<3) -#define PP_W91284PIC	(1<<4) - -/* only masks user-visible flags */ -#define PP_FLAGMASK	(PP_FASTWRITE | PP_FASTREAD | PP_W91284PIC) - - diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h index b7dc06f7f1d..4ea1d377e1a 100644 --- a/include/linux/ppp-comp.h +++ b/include/linux/ppp-comp.h @@ -10,7 +10,8 @@  #ifndef _NET_PPP_COMP_H  #define _NET_PPP_COMP_H -#ifdef __KERNEL__ +#include <uapi/linux/ppp-comp.h> +  struct module; @@ -100,89 +101,6 @@ struct compressor {  #define DECOMP_ERROR		-1	/* error detected before decomp. */  #define DECOMP_FATALERROR	-2	/* error detected after decomp. */ -#endif /* __KERNEL__ */ - -/* - * CCP codes. - */ - -#define CCP_CONFREQ	1 -#define CCP_CONFACK	2 -#define CCP_TERMREQ	5 -#define CCP_TERMACK	6 -#define CCP_RESETREQ	14 -#define CCP_RESETACK	15 - -/* - * Max # bytes for a CCP option - */ - -#define CCP_MAX_OPTION_LENGTH	32 - -/* - * Parts of a CCP packet. - */ - -#define CCP_CODE(dp)		((dp)[0]) -#define CCP_ID(dp)		((dp)[1]) -#define CCP_LENGTH(dp)		(((dp)[2] << 8) + (dp)[3]) -#define CCP_HDRLEN		4 - -#define CCP_OPT_CODE(dp)	((dp)[0]) -#define CCP_OPT_LENGTH(dp)	((dp)[1]) -#define CCP_OPT_MINLEN		2 - -/* - * Definitions for BSD-Compress. - */ - -#define CI_BSD_COMPRESS		21	/* config. option for BSD-Compress */ -#define CILEN_BSD_COMPRESS	3	/* length of config. option */ - -/* Macros for handling the 3rd byte of the BSD-Compress config option. */ -#define BSD_NBITS(x)		((x) & 0x1F)	/* number of bits requested */ -#define BSD_VERSION(x)		((x) >> 5)	/* version of option format */ -#define BSD_CURRENT_VERSION	1		/* current version number */ -#define BSD_MAKE_OPT(v, n)	(((v) << 5) | (n)) - -#define BSD_MIN_BITS		9	/* smallest code size supported */ -#define BSD_MAX_BITS		15	/* largest code size supported */ - -/* - * Definitions for Deflate. - */ - -#define CI_DEFLATE		26	/* config option for Deflate */ -#define CI_DEFLATE_DRAFT	24	/* value used in original draft RFC */ -#define CILEN_DEFLATE		4	/* length of its config option */ - -#define DEFLATE_MIN_SIZE	9 -#define DEFLATE_MAX_SIZE	15 -#define DEFLATE_METHOD_VAL	8 -#define DEFLATE_SIZE(x)		(((x) >> 4) + 8) -#define DEFLATE_METHOD(x)	((x) & 0x0F) -#define DEFLATE_MAKE_OPT(w)	((((w) - 8) << 4) + DEFLATE_METHOD_VAL) -#define DEFLATE_CHK_SEQUENCE	0 - -/* - * Definitions for MPPE. - */ - -#define CI_MPPE                18      /* config option for MPPE */ -#define CILEN_MPPE              6      /* length of config option */ - -/* - * Definitions for other, as yet unsupported, compression methods. - */ - -#define CI_PREDICTOR_1		1	/* config option for Predictor-1 */ -#define CILEN_PREDICTOR_1	2	/* length of its config option */ -#define CI_PREDICTOR_2		2	/* config option for Predictor-2 */ -#define CILEN_PREDICTOR_2	2	/* length of its config option */ - -#ifdef __KERNEL__  extern int ppp_register_compressor(struct compressor *);  extern void ppp_unregister_compressor(struct compressor *); -#endif /* __KERNEL__ */ -  #endif /* _NET_PPP_COMP_H */ diff --git a/include/linux/ppp-ioctl.h b/include/linux/ppp-ioctl.h deleted file mode 100644 index 2d9a8859550..00000000000 --- a/include/linux/ppp-ioctl.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * ppp-ioctl.h - PPP ioctl definitions. - * - * Copyright 1999-2002 Paul Mackerras. - * - *  This program is free software; you can redistribute it and/or - *  modify it under the terms of the GNU General Public License - *  version 2 as published by the Free Software Foundation. - */ -#ifndef _PPP_IOCTL_H -#define _PPP_IOCTL_H - -#include <linux/types.h> -#include <linux/compiler.h> - -/* - * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS. - */ -#define SC_COMP_PROT	0x00000001	/* protocol compression (output) */ -#define SC_COMP_AC	0x00000002	/* header compression (output) */ -#define	SC_COMP_TCP	0x00000004	/* TCP (VJ) compression (output) */ -#define SC_NO_TCP_CCID	0x00000008	/* disable VJ connection-id comp. */ -#define SC_REJ_COMP_AC	0x00000010	/* reject adrs/ctrl comp. on input */ -#define SC_REJ_COMP_TCP	0x00000020	/* reject TCP (VJ) comp. on input */ -#define SC_CCP_OPEN	0x00000040	/* Look at CCP packets */ -#define SC_CCP_UP	0x00000080	/* May send/recv compressed packets */ -#define SC_ENABLE_IP	0x00000100	/* IP packets may be exchanged */ -#define SC_LOOP_TRAFFIC	0x00000200	/* send traffic to pppd */ -#define SC_MULTILINK	0x00000400	/* do multilink encapsulation */ -#define SC_MP_SHORTSEQ	0x00000800	/* use short MP sequence numbers */ -#define SC_COMP_RUN	0x00001000	/* compressor has been inited */ -#define SC_DECOMP_RUN	0x00002000	/* decompressor has been inited */ -#define SC_MP_XSHORTSEQ	0x00004000	/* transmit short MP seq numbers */ -#define SC_DEBUG	0x00010000	/* enable debug messages */ -#define SC_LOG_INPKT	0x00020000	/* log contents of good pkts recvd */ -#define SC_LOG_OUTPKT	0x00040000	/* log contents of pkts sent */ -#define SC_LOG_RAWIN	0x00080000	/* log all chars received */ -#define SC_LOG_FLUSH	0x00100000	/* log all chars flushed */ -#define	SC_SYNC		0x00200000	/* synchronous serial mode */ -#define	SC_MUST_COMP    0x00400000	/* no uncompressed packets may be sent or received */ -#define	SC_MASK		0x0f600fff	/* bits that user can change */ - -/* state bits */ -#define SC_XMIT_BUSY	0x10000000	/* (used by isdn_ppp?) */ -#define SC_RCV_ODDP	0x08000000	/* have rcvd char with odd parity */ -#define SC_RCV_EVNP	0x04000000	/* have rcvd char with even parity */ -#define SC_RCV_B7_1	0x02000000	/* have rcvd char with bit 7 = 1 */ -#define SC_RCV_B7_0	0x01000000	/* have rcvd char with bit 7 = 0 */ -#define SC_DC_FERROR	0x00800000	/* fatal decomp error detected */ -#define SC_DC_ERROR	0x00400000	/* non-fatal decomp error detected */ - -/* Used with PPPIOCGNPMODE/PPPIOCSNPMODE */ -struct npioctl { -	int		protocol;	/* PPP protocol, e.g. PPP_IP */ -	enum NPmode	mode; -}; - -/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ -struct ppp_option_data { -	__u8	__user *ptr; -	__u32	length; -	int	transmit; -}; - -/* For PPPIOCGL2TPSTATS */ -struct pppol2tp_ioc_stats { -	__u16		tunnel_id;	/* redundant */ -	__u16		session_id;	/* if zero, get tunnel stats */ -	__u32		using_ipsec:1;	/* valid only for session_id == 0 */ -	__aligned_u64	tx_packets; -	__aligned_u64	tx_bytes; -	__aligned_u64	tx_errors; -	__aligned_u64	rx_packets; -	__aligned_u64	rx_bytes; -	__aligned_u64	rx_seq_discards; -	__aligned_u64	rx_oos_packets; -	__aligned_u64	rx_errors; -}; - -/* - * Ioctl definitions. - */ - -#define	PPPIOCGFLAGS	_IOR('t', 90, int)	/* get configuration flags */ -#define	PPPIOCSFLAGS	_IOW('t', 89, int)	/* set configuration flags */ -#define	PPPIOCGASYNCMAP	_IOR('t', 88, int)	/* get async map */ -#define	PPPIOCSASYNCMAP	_IOW('t', 87, int)	/* set async map */ -#define	PPPIOCGUNIT	_IOR('t', 86, int)	/* get ppp unit number */ -#define	PPPIOCGRASYNCMAP _IOR('t', 85, int)	/* get receive async map */ -#define	PPPIOCSRASYNCMAP _IOW('t', 84, int)	/* set receive async map */ -#define	PPPIOCGMRU	_IOR('t', 83, int)	/* get max receive unit */ -#define	PPPIOCSMRU	_IOW('t', 82, int)	/* set max receive unit */ -#define	PPPIOCSMAXCID	_IOW('t', 81, int)	/* set VJ max slot ID */ -#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ -#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ -#define PPPIOCXFERUNIT	_IO('t', 78)		/* transfer PPP unit */ -#define PPPIOCSCOMPRESS	_IOW('t', 77, struct ppp_option_data) -#define PPPIOCGNPMODE	_IOWR('t', 76, struct npioctl) /* get NP mode */ -#define PPPIOCSNPMODE	_IOW('t', 75, struct npioctl)  /* set NP mode */ -#define PPPIOCSPASS	_IOW('t', 71, struct sock_fprog) /* set pass filter */ -#define PPPIOCSACTIVE	_IOW('t', 70, struct sock_fprog) /* set active filt */ -#define PPPIOCGDEBUG	_IOR('t', 65, int)	/* Read debug level */ -#define PPPIOCSDEBUG	_IOW('t', 64, int)	/* Set debug level */ -#define PPPIOCGIDLE	_IOR('t', 63, struct ppp_idle) /* get idle time */ -#define PPPIOCNEWUNIT	_IOWR('t', 62, int)	/* create new ppp unit */ -#define PPPIOCATTACH	_IOW('t', 61, int)	/* attach to ppp unit */ -#define PPPIOCDETACH	_IOW('t', 60, int)	/* detach from ppp unit/chan */ -#define PPPIOCSMRRU	_IOW('t', 59, int)	/* set multilink MRU */ -#define PPPIOCCONNECT	_IOW('t', 58, int)	/* connect channel to unit */ -#define PPPIOCDISCONN	_IO('t', 57)		/* disconnect channel */ -#define PPPIOCATTCHAN	_IOW('t', 56, int)	/* attach to ppp channel */ -#define PPPIOCGCHAN	_IOR('t', 55, int)	/* get ppp channel number */ -#define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats) - -#define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0) -#define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)	/* NEVER change this!! */ -#define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2) - -#endif /* _PPP_IOCTL_H */ diff --git a/include/linux/ppp_defs.h b/include/linux/ppp_defs.h index ba416f67eb6..28aa0237c8c 100644 --- a/include/linux/ppp_defs.h +++ b/include/linux/ppp_defs.h @@ -7,148 +7,11 @@   *  modify it under the terms of the GNU General Public License   *  version 2 as published by the Free Software Foundation.   */ -#include <linux/types.h> -  #ifndef _PPP_DEFS_H_  #define _PPP_DEFS_H_ -/* - * The basic PPP frame. - */ -#define PPP_HDRLEN	4	/* octets for standard ppp header */ -#define PPP_FCSLEN	2	/* octets for FCS */ -#define PPP_MRU		1500	/* default MRU = max length of info field */ - -#define PPP_ADDRESS(p)	(((__u8 *)(p))[0]) -#define PPP_CONTROL(p)	(((__u8 *)(p))[1]) -#define PPP_PROTOCOL(p)	((((__u8 *)(p))[2] << 8) + ((__u8 *)(p))[3]) - -/* - * Significant octet values. - */ -#define	PPP_ALLSTATIONS	0xff	/* All-Stations broadcast address */ -#define	PPP_UI		0x03	/* Unnumbered Information */ -#define	PPP_FLAG	0x7e	/* Flag Sequence */ -#define	PPP_ESCAPE	0x7d	/* Asynchronous Control Escape */ -#define	PPP_TRANS	0x20	/* Asynchronous transparency modifier */ - -/* - * Protocol field values. - */ -#define PPP_IP		0x21	/* Internet Protocol */ -#define PPP_AT		0x29	/* AppleTalk Protocol */ -#define PPP_IPX		0x2b	/* IPX protocol */ -#define	PPP_VJC_COMP	0x2d	/* VJ compressed TCP */ -#define	PPP_VJC_UNCOMP	0x2f	/* VJ uncompressed TCP */ -#define PPP_MP		0x3d	/* Multilink protocol */ -#define PPP_IPV6	0x57	/* Internet Protocol Version 6 */ -#define PPP_COMPFRAG	0xfb	/* fragment compressed below bundle */ -#define PPP_COMP	0xfd	/* compressed packet */ -#define PPP_MPLS_UC	0x0281	/* Multi Protocol Label Switching - Unicast */ -#define PPP_MPLS_MC	0x0283	/* Multi Protocol Label Switching - Multicast */ -#define PPP_IPCP	0x8021	/* IP Control Protocol */ -#define PPP_ATCP	0x8029	/* AppleTalk Control Protocol */ -#define PPP_IPXCP	0x802b	/* IPX Control Protocol */ -#define PPP_IPV6CP	0x8057	/* IPv6 Control Protocol */ -#define PPP_CCPFRAG	0x80fb	/* CCP at link level (below MP bundle) */ -#define PPP_CCP		0x80fd	/* Compression Control Protocol */ -#define PPP_MPLSCP	0x80fd	/* MPLS Control Protocol */ -#define PPP_LCP		0xc021	/* Link Control Protocol */ -#define PPP_PAP		0xc023	/* Password Authentication Protocol */ -#define PPP_LQR		0xc025	/* Link Quality Report protocol */ -#define PPP_CHAP	0xc223	/* Cryptographic Handshake Auth. Protocol */ -#define PPP_CBCP	0xc029	/* Callback Control Protocol */ - -/* - * Values for FCS calculations. - */ - -#define PPP_INITFCS	0xffff	/* Initial FCS value */ -#define PPP_GOODFCS	0xf0b8	/* Good final FCS value */ - -#ifdef __KERNEL__  #include <linux/crc-ccitt.h> -#define PPP_FCS(fcs, c) crc_ccitt_byte(fcs, c) -#endif - -/* - * Extended asyncmap - allows any character to be escaped. - */ - -typedef __u32		ext_accm[8]; - -/* - * What to do with network protocol (NP) packets. - */ -enum NPmode { -    NPMODE_PASS,		/* pass the packet through */ -    NPMODE_DROP,		/* silently drop the packet */ -    NPMODE_ERROR,		/* return an error */ -    NPMODE_QUEUE		/* save it up for later. */ -}; - -/* - * Statistics for LQRP and pppstats - */ -struct pppstat	{ -    __u32	ppp_discards;	/* # frames discarded */ - -    __u32	ppp_ibytes;	/* bytes received */ -    __u32	ppp_ioctects;	/* bytes received not in error */ -    __u32	ppp_ipackets;	/* packets received */ -    __u32	ppp_ierrors;	/* receive errors */ -    __u32	ppp_ilqrs;	/* # LQR frames received */ - -    __u32	ppp_obytes;	/* raw bytes sent */ -    __u32	ppp_ooctects;	/* frame bytes sent */ -    __u32	ppp_opackets;	/* packets sent */ -    __u32	ppp_oerrors;	/* transmit errors */  -    __u32	ppp_olqrs;	/* # LQR frames sent */ -}; - -struct vjstat { -    __u32	vjs_packets;	/* outbound packets */ -    __u32	vjs_compressed;	/* outbound compressed packets */ -    __u32	vjs_searches;	/* searches for connection state */ -    __u32	vjs_misses;	/* times couldn't find conn. state */ -    __u32	vjs_uncompressedin; /* inbound uncompressed packets */ -    __u32	vjs_compressedin;   /* inbound compressed packets */ -    __u32	vjs_errorin;	/* inbound unknown type packets */ -    __u32	vjs_tossed;	/* inbound packets tossed because of error */ -}; - -struct compstat { -    __u32	unc_bytes;	/* total uncompressed bytes */ -    __u32	unc_packets;	/* total uncompressed packets */ -    __u32	comp_bytes;	/* compressed bytes */ -    __u32	comp_packets;	/* compressed packets */ -    __u32	inc_bytes;	/* incompressible bytes */ -    __u32	inc_packets;	/* incompressible packets */ - -    /* the compression ratio is defined as in_count / bytes_out */ -    __u32       in_count;	/* Bytes received */ -    __u32       bytes_out;	/* Bytes transmitted */ - -    double	ratio;		/* not computed in kernel. */ -}; - -struct ppp_stats { -    struct pppstat	p;	/* basic PPP statistics */ -    struct vjstat	vj;	/* VJ header compression statistics */ -}; - -struct ppp_comp_stats { -    struct compstat	c;	/* packet compression statistics */ -    struct compstat	d;	/* packet decompression statistics */ -}; - -/* - * The following structure records the time in seconds since - * the last NP packet was sent or received. - */ -struct ppp_idle { -    __kernel_time_t xmit_idle;	/* time since last NP packet sent */ -    __kernel_time_t recv_idle;	/* time since last NP packet received */ -}; +#include <uapi/linux/ppp_defs.h> +#define PPP_FCS(fcs, c) crc_ccitt_byte(fcs, c)  #endif /* _PPP_DEFS_H_ */ diff --git a/include/linux/pps.h b/include/linux/pps.h deleted file mode 100644 index a9bb1d93451..00000000000 --- a/include/linux/pps.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * PPS API header - * - * Copyright (C) 2005-2009   Rodolfo Giometti <giometti@linux.it> - * - *   This program is free software; you can redistribute it and/or modify - *   it under the terms of the GNU General Public License as published by - *   the Free Software Foundation; either version 2 of the License, or - *   (at your option) any later version. - * - *   This program is distributed in the hope that it will be useful, - *   but WITHOUT ANY WARRANTY; without even the implied warranty of - *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *   GNU General Public License for more details. - * - *   You should have received a copy of the GNU General Public License - *   along with this program; if not, write to the Free Software - *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#ifndef _PPS_H_ -#define _PPS_H_ - -#include <linux/types.h> - -#define PPS_VERSION		"5.3.6" -#define PPS_MAX_SOURCES		16		/* should be enough... */ - -/* Implementation note: the logical states ``assert'' and ``clear'' - * are implemented in terms of the chip register, i.e. ``assert'' - * means the bit is set.  */ - -/* - * 3.2 New data structures - */ - -#define PPS_API_VERS_1		1 -#define PPS_API_VERS		PPS_API_VERS_1	/* we use API version 1 */ -#define PPS_MAX_NAME_LEN	32 - -/* 32-bit vs. 64-bit compatibility. - * - * 0n i386, the alignment of a uint64_t is only 4 bytes, while on most other - * architectures it's 8 bytes. On i386, there will be no padding between the - * two consecutive 'struct pps_ktime' members of struct pps_kinfo and struct - * pps_kparams. But on most platforms there will be padding to ensure correct - * alignment. - * - * The simple fix is probably to add an explicit padding. - *					 		[David Woodhouse] - */ -struct pps_ktime { -	__s64 sec; -	__s32 nsec; -	__u32 flags; -}; -#define PPS_TIME_INVALID	(1<<0)	/* used to specify timeout==NULL */ - -struct pps_kinfo { -	__u32 assert_sequence;		/* seq. num. of assert event */ -	__u32 clear_sequence; 		/* seq. num. of clear event */ -	struct pps_ktime assert_tu;	/* time of assert event */ -	struct pps_ktime clear_tu;	/* time of clear event */ -	int current_mode;		/* current mode bits */ -}; - -struct pps_kparams { -	int api_version;		/* API version # */ -	int mode;			/* mode bits */ -	struct pps_ktime assert_off_tu;	/* offset compensation for assert */ -	struct pps_ktime clear_off_tu;	/* offset compensation for clear */ -}; - -/* - * 3.3 Mode bit definitions - */ - -/* Device/implementation parameters */ -#define PPS_CAPTUREASSERT	0x01	/* capture assert events */ -#define PPS_CAPTURECLEAR	0x02	/* capture clear events */ -#define PPS_CAPTUREBOTH		0x03	/* capture assert and clear events */ - -#define PPS_OFFSETASSERT	0x10	/* apply compensation for assert ev. */ -#define PPS_OFFSETCLEAR		0x20	/* apply compensation for clear ev. */ - -#define PPS_CANWAIT		0x100	/* can we wait for an event? */ -#define PPS_CANPOLL		0x200	/* bit reserved for future use */ - -/* Kernel actions */ -#define PPS_ECHOASSERT		0x40	/* feed back assert event to output */ -#define PPS_ECHOCLEAR		0x80	/* feed back clear event to output */ - -/* Timestamp formats */ -#define PPS_TSFMT_TSPEC		0x1000	/* select timespec format */ -#define PPS_TSFMT_NTPFP		0x2000	/* select NTP format */ - -/* - * 3.4.4 New functions: disciplining the kernel timebase - */ - -/* Kernel consumers */ -#define PPS_KC_HARDPPS		0	/* hardpps() (or equivalent) */ -#define PPS_KC_HARDPPS_PLL	1	/* hardpps() constrained to -					   use a phase-locked loop */ -#define PPS_KC_HARDPPS_FLL	2	/* hardpps() constrained to -					   use a frequency-locked loop */ -/* - * Here begins the implementation-specific part! - */ - -struct pps_fdata { -	struct pps_kinfo info; -	struct pps_ktime timeout; -}; - -struct pps_bind_args { -	int tsformat;	/* format of time stamps */ -	int edge;	/* selected event type */ -	int consumer;	/* selected kernel consumer */ -}; - -#include <linux/ioctl.h> - -#define PPS_GETPARAMS		_IOR('p', 0xa1, struct pps_kparams *) -#define PPS_SETPARAMS		_IOW('p', 0xa2, struct pps_kparams *) -#define PPS_GETCAP		_IOR('p', 0xa3, int *) -#define PPS_FETCH		_IOWR('p', 0xa4, struct pps_fdata *) -#define PPS_KC_BIND		_IOW('p', 0xa5, struct pps_bind_args *) - -#endif /* _PPS_H_ */ diff --git a/include/linux/prctl.h b/include/linux/prctl.h deleted file mode 100644 index 289760f424a..00000000000 --- a/include/linux/prctl.h +++ /dev/null @@ -1,152 +0,0 @@ -#ifndef _LINUX_PRCTL_H -#define _LINUX_PRCTL_H - -/* Values to pass as first argument to prctl() */ - -#define PR_SET_PDEATHSIG  1  /* Second arg is a signal */ -#define PR_GET_PDEATHSIG  2  /* Second arg is a ptr to return the signal */ - -/* Get/set current->mm->dumpable */ -#define PR_GET_DUMPABLE   3 -#define PR_SET_DUMPABLE   4 - -/* Get/set unaligned access control bits (if meaningful) */ -#define PR_GET_UNALIGN	  5 -#define PR_SET_UNALIGN	  6 -# define PR_UNALIGN_NOPRINT	1	/* silently fix up unaligned user accesses */ -# define PR_UNALIGN_SIGBUS	2	/* generate SIGBUS on unaligned user access */ - -/* Get/set whether or not to drop capabilities on setuid() away from - * uid 0 (as per security/commoncap.c) */ -#define PR_GET_KEEPCAPS   7 -#define PR_SET_KEEPCAPS   8 - -/* Get/set floating-point emulation control bits (if meaningful) */ -#define PR_GET_FPEMU  9 -#define PR_SET_FPEMU 10 -# define PR_FPEMU_NOPRINT	1	/* silently emulate fp operations accesses */ -# define PR_FPEMU_SIGFPE	2	/* don't emulate fp operations, send SIGFPE instead */ - -/* Get/set floating-point exception mode (if meaningful) */ -#define PR_GET_FPEXC	11 -#define PR_SET_FPEXC	12 -# define PR_FP_EXC_SW_ENABLE	0x80	/* Use FPEXC for FP exception enables */ -# define PR_FP_EXC_DIV		0x010000	/* floating point divide by zero */ -# define PR_FP_EXC_OVF		0x020000	/* floating point overflow */ -# define PR_FP_EXC_UND		0x040000	/* floating point underflow */ -# define PR_FP_EXC_RES		0x080000	/* floating point inexact result */ -# define PR_FP_EXC_INV		0x100000	/* floating point invalid operation */ -# define PR_FP_EXC_DISABLED	0	/* FP exceptions disabled */ -# define PR_FP_EXC_NONRECOV	1	/* async non-recoverable exc. mode */ -# define PR_FP_EXC_ASYNC	2	/* async recoverable exception mode */ -# define PR_FP_EXC_PRECISE	3	/* precise exception mode */ - -/* Get/set whether we use statistical process timing or accurate timestamp - * based process timing */ -#define PR_GET_TIMING   13 -#define PR_SET_TIMING   14 -# define PR_TIMING_STATISTICAL  0       /* Normal, traditional, -                                                   statistical process timing */ -# define PR_TIMING_TIMESTAMP    1       /* Accurate timestamp based -                                                   process timing */ - -#define PR_SET_NAME    15		/* Set process name */ -#define PR_GET_NAME    16		/* Get process name */ - -/* Get/set process endian */ -#define PR_GET_ENDIAN	19 -#define PR_SET_ENDIAN	20 -# define PR_ENDIAN_BIG		0 -# define PR_ENDIAN_LITTLE	1	/* True little endian mode */ -# define PR_ENDIAN_PPC_LITTLE	2	/* "PowerPC" pseudo little endian */ - -/* Get/set process seccomp mode */ -#define PR_GET_SECCOMP	21 -#define PR_SET_SECCOMP	22 - -/* Get/set the capability bounding set (as per security/commoncap.c) */ -#define PR_CAPBSET_READ 23 -#define PR_CAPBSET_DROP 24 - -/* Get/set the process' ability to use the timestamp counter instruction */ -#define PR_GET_TSC 25 -#define PR_SET_TSC 26 -# define PR_TSC_ENABLE		1	/* allow the use of the timestamp counter */ -# define PR_TSC_SIGSEGV		2	/* throw a SIGSEGV instead of reading the TSC */ - -/* Get/set securebits (as per security/commoncap.c) */ -#define PR_GET_SECUREBITS 27 -#define PR_SET_SECUREBITS 28 - -/* - * Get/set the timerslack as used by poll/select/nanosleep - * A value of 0 means "use default" - */ -#define PR_SET_TIMERSLACK 29 -#define PR_GET_TIMERSLACK 30 - -#define PR_TASK_PERF_EVENTS_DISABLE		31 -#define PR_TASK_PERF_EVENTS_ENABLE		32 - -/* - * Set early/late kill mode for hwpoison memory corruption. - * This influences when the process gets killed on a memory corruption. - */ -#define PR_MCE_KILL	33 -# define PR_MCE_KILL_CLEAR   0 -# define PR_MCE_KILL_SET     1 - -# define PR_MCE_KILL_LATE    0 -# define PR_MCE_KILL_EARLY   1 -# define PR_MCE_KILL_DEFAULT 2 - -#define PR_MCE_KILL_GET 34 - -/* - * Tune up process memory map specifics. - */ -#define PR_SET_MM		35 -# define PR_SET_MM_START_CODE		1 -# define PR_SET_MM_END_CODE		2 -# define PR_SET_MM_START_DATA		3 -# define PR_SET_MM_END_DATA		4 -# define PR_SET_MM_START_STACK		5 -# define PR_SET_MM_START_BRK		6 -# define PR_SET_MM_BRK			7 -# define PR_SET_MM_ARG_START		8 -# define PR_SET_MM_ARG_END		9 -# define PR_SET_MM_ENV_START		10 -# define PR_SET_MM_ENV_END		11 -# define PR_SET_MM_AUXV			12 -# define PR_SET_MM_EXE_FILE		13 - -/* - * Set specific pid that is allowed to ptrace the current task. - * A value of 0 mean "no process". - */ -#define PR_SET_PTRACER 0x59616d61 -# define PR_SET_PTRACER_ANY ((unsigned long)-1) - -#define PR_SET_CHILD_SUBREAPER	36 -#define PR_GET_CHILD_SUBREAPER	37 - -/* - * If no_new_privs is set, then operations that grant new privileges (i.e. - * execve) will either fail or not grant them.  This affects suid/sgid, - * file capabilities, and LSMs. - * - * Operations that merely manipulate or drop existing privileges (setresuid, - * capset, etc.) will still work.  Drop those privileges if you want them gone. - * - * Changing LSM security domain is considered a new privilege.  So, for example, - * asking selinux for a specific new context (e.g. with runcon) will result - * in execve returning -EPERM. - * - * See Documentation/prctl/no_new_privs.txt for more details. - */ -#define PR_SET_NO_NEW_PRIVS	38 -#define PR_GET_NO_NEW_PRIVS	39 - -#define PR_GET_TID_ADDRESS	40 - -#endif /* _LINUX_PRCTL_H */ diff --git a/include/linux/ptp_clock.h b/include/linux/ptp_clock.h deleted file mode 100644 index 94e981f810a..00000000000 --- a/include/linux/ptp_clock.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * PTP 1588 clock support - user space interface - * - * Copyright (C) 2010 OMICRON electronics GmbH - * - *  This program is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  This program is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with this program; if not, write to the Free Software - *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef _PTP_CLOCK_H_ -#define _PTP_CLOCK_H_ - -#include <linux/ioctl.h> -#include <linux/types.h> - -/* PTP_xxx bits, for the flags field within the request structures. */ -#define PTP_ENABLE_FEATURE (1<<0) -#define PTP_RISING_EDGE    (1<<1) -#define PTP_FALLING_EDGE   (1<<2) - -/* - * struct ptp_clock_time - represents a time value - * - * The sign of the seconds field applies to the whole value. The - * nanoseconds field is always unsigned. The reserved field is - * included for sub-nanosecond resolution, should the demand for - * this ever appear. - * - */ -struct ptp_clock_time { -	__s64 sec;  /* seconds */ -	__u32 nsec; /* nanoseconds */ -	__u32 reserved; -}; - -struct ptp_clock_caps { -	int max_adj;   /* Maximum frequency adjustment in parts per billon. */ -	int n_alarm;   /* Number of programmable alarms. */ -	int n_ext_ts;  /* Number of external time stamp channels. */ -	int n_per_out; /* Number of programmable periodic signals. */ -	int pps;       /* Whether the clock supports a PPS callback. */ -	int rsv[15];   /* Reserved for future use. */ -}; - -struct ptp_extts_request { -	unsigned int index;  /* Which channel to configure. */ -	unsigned int flags;  /* Bit field for PTP_xxx flags. */ -	unsigned int rsv[2]; /* Reserved for future use. */ -}; - -struct ptp_perout_request { -	struct ptp_clock_time start;  /* Absolute start time. */ -	struct ptp_clock_time period; /* Desired period, zero means disable. */ -	unsigned int index;           /* Which channel to configure. */ -	unsigned int flags;           /* Reserved for future use. */ -	unsigned int rsv[4];          /* Reserved for future use. */ -}; - -#define PTP_CLK_MAGIC '=' - -#define PTP_CLOCK_GETCAPS  _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) -#define PTP_EXTTS_REQUEST  _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request) -#define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) -#define PTP_ENABLE_PPS     _IOW(PTP_CLK_MAGIC, 4, int) - -struct ptp_extts_event { -	struct ptp_clock_time t; /* Time event occured. */ -	unsigned int index;      /* Which channel produced the event. */ -	unsigned int flags;      /* Reserved for future use. */ -	unsigned int rsv[2];     /* Reserved for future use. */ -}; - -#endif diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index 1d24ffad59c..e0ff4689d35 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h @@ -1,82 +1,12 @@  #ifndef _LINUX_PTRACE_H  #define _LINUX_PTRACE_H -/* ptrace.h */ -/* structs and defines to help the user use the ptrace system call. */ -/* has the defines to get at the registers. */ - -#define PTRACE_TRACEME		   0 -#define PTRACE_PEEKTEXT		   1 -#define PTRACE_PEEKDATA		   2 -#define PTRACE_PEEKUSR		   3 -#define PTRACE_POKETEXT		   4 -#define PTRACE_POKEDATA		   5 -#define PTRACE_POKEUSR		   6 -#define PTRACE_CONT		   7 -#define PTRACE_KILL		   8 -#define PTRACE_SINGLESTEP	   9 - -#define PTRACE_ATTACH		  16 -#define PTRACE_DETACH		  17 - -#define PTRACE_SYSCALL		  24 - -/* 0x4200-0x4300 are reserved for architecture-independent additions.  */ -#define PTRACE_SETOPTIONS	0x4200 -#define PTRACE_GETEVENTMSG	0x4201 -#define PTRACE_GETSIGINFO	0x4202 -#define PTRACE_SETSIGINFO	0x4203 - -/* - * Generic ptrace interface that exports the architecture specific regsets - * using the corresponding NT_* types (which are also used in the core dump). - * Please note that the NT_PRSTATUS note type in a core dump contains a full - * 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the - * elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the - * other user_regset flavors, the user_regset layout and the ELF core dump note - * payload are exactly the same layout. - * - * This interface usage is as follows: - *	struct iovec iov = { buf, len}; - * - *	ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov); - * - * On the successful completion, iov.len will be updated by the kernel, - * specifying how much the kernel has written/read to/from the user's iov.buf. - */ -#define PTRACE_GETREGSET	0x4204 -#define PTRACE_SETREGSET	0x4205 - -#define PTRACE_SEIZE		0x4206 -#define PTRACE_INTERRUPT	0x4207 -#define PTRACE_LISTEN		0x4208 - -/* Wait extended result codes for the above trace options.  */ -#define PTRACE_EVENT_FORK	1 -#define PTRACE_EVENT_VFORK	2 -#define PTRACE_EVENT_CLONE	3 -#define PTRACE_EVENT_EXEC	4 -#define PTRACE_EVENT_VFORK_DONE	5 -#define PTRACE_EVENT_EXIT	6 -#define PTRACE_EVENT_SECCOMP	7 -/* Extended result codes which enabled by means other than options.  */ -#define PTRACE_EVENT_STOP	128 - -/* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */ -#define PTRACE_O_TRACESYSGOOD	1 -#define PTRACE_O_TRACEFORK	(1 << PTRACE_EVENT_FORK) -#define PTRACE_O_TRACEVFORK	(1 << PTRACE_EVENT_VFORK) -#define PTRACE_O_TRACECLONE	(1 << PTRACE_EVENT_CLONE) -#define PTRACE_O_TRACEEXEC	(1 << PTRACE_EVENT_EXEC) -#define PTRACE_O_TRACEVFORKDONE	(1 << PTRACE_EVENT_VFORK_DONE) -#define PTRACE_O_TRACEEXIT	(1 << PTRACE_EVENT_EXIT) -#define PTRACE_O_TRACESECCOMP	(1 << PTRACE_EVENT_SECCOMP) - -#define PTRACE_O_MASK		0x000000ff - -#include <asm/ptrace.h> +#include <linux/compiler.h>		/* For unlikely.  */ +#include <linux/sched.h>		/* For struct task_struct.  */ +#include <linux/err.h>			/* for IS_ERR_VALUE */ +#include <linux/bug.h>			/* For BUG_ON.  */ +#include <uapi/linux/ptrace.h> -#ifdef __KERNEL__  /*   * Ptrace flags   * @@ -108,12 +38,6 @@  #define PT_BLOCKSTEP_BIT	30  #define PT_BLOCKSTEP		(1<<PT_BLOCKSTEP_BIT) -#include <linux/compiler.h>		/* For unlikely.  */ -#include <linux/sched.h>		/* For struct task_struct.  */ -#include <linux/err.h>			/* for IS_ERR_VALUE */ -#include <linux/bug.h>			/* For BUG_ON.  */ - -  extern long arch_ptrace(struct task_struct *child, long request,  			unsigned long addr, unsigned long data);  extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len); @@ -416,6 +340,4 @@ extern void ptrace_put_breakpoints(struct task_struct *tsk);  static inline void ptrace_put_breakpoints(struct task_struct *tsk) { }  #endif /* CONFIG_HAVE_HW_BREAKPOINT */ -#endif /* __KERNEL */ -  #endif diff --git a/include/linux/qnx4_fs.h b/include/linux/qnx4_fs.h deleted file mode 100644 index 8b9aee1a9ce..00000000000 --- a/include/linux/qnx4_fs.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - *  Name                         : qnx4_fs.h - *  Author                       : Richard Frowijn - *  Function                     : qnx4 global filesystem definitions - *  History                      : 23-03-1998 created - */ -#ifndef _LINUX_QNX4_FS_H -#define _LINUX_QNX4_FS_H - -#include <linux/types.h> -#include <linux/qnxtypes.h> -#include <linux/magic.h> - -#define QNX4_ROOT_INO 1 - -#define QNX4_MAX_XTNTS_PER_XBLK	60 -/* for di_status */ -#define QNX4_FILE_USED          0x01 -#define QNX4_FILE_MODIFIED      0x02 -#define QNX4_FILE_BUSY          0x04 -#define QNX4_FILE_LINK          0x08 -#define QNX4_FILE_INODE         0x10 -#define QNX4_FILE_FSYSCLEAN     0x20 - -#define QNX4_I_MAP_SLOTS	8 -#define QNX4_Z_MAP_SLOTS	64 -#define QNX4_VALID_FS		0x0001	/* Clean fs. */ -#define QNX4_ERROR_FS		0x0002	/* fs has errors. */ -#define QNX4_BLOCK_SIZE         0x200	/* blocksize of 512 bytes */ -#define QNX4_BLOCK_SIZE_BITS    9	/* blocksize shift */ -#define QNX4_DIR_ENTRY_SIZE     0x040	/* dir entry size of 64 bytes */ -#define QNX4_DIR_ENTRY_SIZE_BITS 6	/* dir entry size shift */ -#define QNX4_XBLK_ENTRY_SIZE    0x200	/* xblk entry size */ -#define QNX4_INODES_PER_BLOCK   0x08	/* 512 / 64 */ - -/* for filenames */ -#define QNX4_SHORT_NAME_MAX	16 -#define QNX4_NAME_MAX		48 - -/* - * This is the original qnx4 inode layout on disk. - */ -struct qnx4_inode_entry { -	char		di_fname[QNX4_SHORT_NAME_MAX]; -	qnx4_off_t	di_size; -	qnx4_xtnt_t	di_first_xtnt; -	__le32		di_xblk; -	__le32		di_ftime; -	__le32		di_mtime; -	__le32		di_atime; -	__le32		di_ctime; -	qnx4_nxtnt_t	di_num_xtnts; -	qnx4_mode_t	di_mode; -	qnx4_muid_t	di_uid; -	qnx4_mgid_t	di_gid; -	qnx4_nlink_t	di_nlink; -	__u8		di_zero[4]; -	qnx4_ftype_t	di_type; -	__u8		di_status; -}; - -struct qnx4_link_info { -	char		dl_fname[QNX4_NAME_MAX]; -	__le32		dl_inode_blk; -	__u8		dl_inode_ndx; -	__u8		dl_spare[10]; -	__u8		dl_status; -}; - -struct qnx4_xblk { -	__le32		xblk_next_xblk; -	__le32		xblk_prev_xblk; -	__u8		xblk_num_xtnts; -	__u8		xblk_spare[3]; -	__le32		xblk_num_blocks; -	qnx4_xtnt_t	xblk_xtnts[QNX4_MAX_XTNTS_PER_XBLK]; -	char		xblk_signature[8]; -	qnx4_xtnt_t	xblk_first_xtnt; -}; - -struct qnx4_super_block { -	struct qnx4_inode_entry RootDir; -	struct qnx4_inode_entry Inode; -	struct qnx4_inode_entry Boot; -	struct qnx4_inode_entry AltBoot; -}; - -#endif diff --git a/include/linux/qnxtypes.h b/include/linux/qnxtypes.h deleted file mode 100644 index bebbe5cc4fb..00000000000 --- a/include/linux/qnxtypes.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - *  Name                         : qnxtypes.h - *  Author                       : Richard Frowijn - *  Function                     : standard qnx types - *  History                      : 22-03-1998 created - * - */ - -#ifndef _QNX4TYPES_H -#define _QNX4TYPES_H - -#include <linux/types.h> - -typedef __le16 qnx4_nxtnt_t; -typedef __u8  qnx4_ftype_t; - -typedef struct { -	__le32 xtnt_blk; -	__le32 xtnt_size; -} qnx4_xtnt_t; - -typedef __le16 qnx4_mode_t; -typedef __le16 qnx4_muid_t; -typedef __le16 qnx4_mgid_t; -typedef __le32 qnx4_off_t; -typedef __le16 qnx4_nlink_t; - -#endif diff --git a/include/linux/quota.h b/include/linux/quota.h index dcd5721e626..58fdef12525 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h @@ -29,146 +29,9 @@   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * SUCH DAMAGE.   */ -  #ifndef _LINUX_QUOTA_  #define _LINUX_QUOTA_ -#include <linux/errno.h> -#include <linux/types.h> - -#define __DQUOT_VERSION__	"dquot_6.5.2" - -#define MAXQUOTAS 2 -#define USRQUOTA  0		/* element used for user quotas */ -#define GRPQUOTA  1		/* element used for group quotas */ - -/* - * Definitions for the default names of the quotas files. - */ -#define INITQFNAMES { \ -	"user",    /* USRQUOTA */ \ -	"group",   /* GRPQUOTA */ \ -	"undefined", \ -}; - -/* - * Command definitions for the 'quotactl' system call. - * The commands are broken into a main command defined below - * and a subcommand that is used to convey the type of - * quota that is being manipulated (see above). - */ -#define SUBCMDMASK  0x00ff -#define SUBCMDSHIFT 8 -#define QCMD(cmd, type)  (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK)) - -#define Q_SYNC     0x800001	/* sync disk copy of a filesystems quotas */ -#define Q_QUOTAON  0x800002	/* turn quotas on */ -#define Q_QUOTAOFF 0x800003	/* turn quotas off */ -#define Q_GETFMT   0x800004	/* get quota format used on given filesystem */ -#define Q_GETINFO  0x800005	/* get information about quota files */ -#define Q_SETINFO  0x800006	/* set information about quota files */ -#define Q_GETQUOTA 0x800007	/* get user quota structure */ -#define Q_SETQUOTA 0x800008	/* set user quota structure */ - -/* Quota format type IDs */ -#define	QFMT_VFS_OLD 1 -#define	QFMT_VFS_V0 2 -#define QFMT_OCFS2 3 -#define	QFMT_VFS_V1 4 - -/* Size of block in which space limits are passed through the quota - * interface */ -#define QIF_DQBLKSIZE_BITS 10 -#define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS) - -/* - * Quota structure used for communication with userspace via quotactl - * Following flags are used to specify which fields are valid - */ -enum { -	QIF_BLIMITS_B = 0, -	QIF_SPACE_B, -	QIF_ILIMITS_B, -	QIF_INODES_B, -	QIF_BTIME_B, -	QIF_ITIME_B, -}; - -#define QIF_BLIMITS	(1 << QIF_BLIMITS_B) -#define QIF_SPACE	(1 << QIF_SPACE_B) -#define QIF_ILIMITS	(1 << QIF_ILIMITS_B) -#define QIF_INODES	(1 << QIF_INODES_B) -#define QIF_BTIME	(1 << QIF_BTIME_B) -#define QIF_ITIME	(1 << QIF_ITIME_B) -#define QIF_LIMITS	(QIF_BLIMITS | QIF_ILIMITS) -#define QIF_USAGE	(QIF_SPACE | QIF_INODES) -#define QIF_TIMES	(QIF_BTIME | QIF_ITIME) -#define QIF_ALL		(QIF_LIMITS | QIF_USAGE | QIF_TIMES) - -struct if_dqblk { -	__u64 dqb_bhardlimit; -	__u64 dqb_bsoftlimit; -	__u64 dqb_curspace; -	__u64 dqb_ihardlimit; -	__u64 dqb_isoftlimit; -	__u64 dqb_curinodes; -	__u64 dqb_btime; -	__u64 dqb_itime; -	__u32 dqb_valid; -}; - -/* - * Structure used for setting quota information about file via quotactl - * Following flags are used to specify which fields are valid - */ -#define IIF_BGRACE	1 -#define IIF_IGRACE	2 -#define IIF_FLAGS	4 -#define IIF_ALL		(IIF_BGRACE | IIF_IGRACE | IIF_FLAGS) - -struct if_dqinfo { -	__u64 dqi_bgrace; -	__u64 dqi_igrace; -	__u32 dqi_flags; -	__u32 dqi_valid; -}; - -/* - * Definitions for quota netlink interface - */ -#define QUOTA_NL_NOWARN 0 -#define QUOTA_NL_IHARDWARN 1		/* Inode hardlimit reached */ -#define QUOTA_NL_ISOFTLONGWARN 2 	/* Inode grace time expired */ -#define QUOTA_NL_ISOFTWARN 3		/* Inode softlimit reached */ -#define QUOTA_NL_BHARDWARN 4		/* Block hardlimit reached */ -#define QUOTA_NL_BSOFTLONGWARN 5	/* Block grace time expired */ -#define QUOTA_NL_BSOFTWARN 6		/* Block softlimit reached */ -#define QUOTA_NL_IHARDBELOW 7		/* Usage got below inode hardlimit */ -#define QUOTA_NL_ISOFTBELOW 8		/* Usage got below inode softlimit */ -#define QUOTA_NL_BHARDBELOW 9		/* Usage got below block hardlimit */ -#define QUOTA_NL_BSOFTBELOW 10		/* Usage got below block softlimit */ - -enum { -	QUOTA_NL_C_UNSPEC, -	QUOTA_NL_C_WARNING, -	__QUOTA_NL_C_MAX, -}; -#define QUOTA_NL_C_MAX (__QUOTA_NL_C_MAX - 1) - -enum { -	QUOTA_NL_A_UNSPEC, -	QUOTA_NL_A_QTYPE, -	QUOTA_NL_A_EXCESS_ID, -	QUOTA_NL_A_WARNING, -	QUOTA_NL_A_DEV_MAJOR, -	QUOTA_NL_A_DEV_MINOR, -	QUOTA_NL_A_CAUSED_ID, -	__QUOTA_NL_A_MAX, -}; -#define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1) - - -#ifdef __KERNEL__  #include <linux/list.h>  #include <linux/mutex.h>  #include <linux/rwsem.h> @@ -183,6 +46,7 @@ enum {  #include <linux/atomic.h>  #include <linux/uidgid.h>  #include <linux/projid.h> +#include <uapi/linux/quota.h>  #undef USRQUOTA  #undef GRPQUOTA @@ -543,5 +407,4 @@ struct quota_module_name {  	{QFMT_VFS_V0, "quota_v2"},\  	{0, NULL}} -#endif /* __KERNEL__ */  #endif /* _QUOTA_ */ diff --git a/include/linux/radeonfb.h b/include/linux/radeonfb.h deleted file mode 100644 index 8c4bbdecc44..00000000000 --- a/include/linux/radeonfb.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __LINUX_RADEONFB_H__ -#define __LINUX_RADEONFB_H__ - -#include <asm/ioctl.h> -#include <linux/types.h> - -#define ATY_RADEON_LCD_ON	0x00000001 -#define ATY_RADEON_CRT_ON	0x00000002 - - -#define FBIO_RADEON_GET_MIRROR	_IOR('@', 3, size_t) -#define FBIO_RADEON_SET_MIRROR	_IOW('@', 4, size_t) - -#endif - diff --git a/include/linux/random.h b/include/linux/random.h index ac621ce886c..6330ed47b38 100644 --- a/include/linux/random.h +++ b/include/linux/random.h @@ -3,50 +3,11 @@   *   * Include file for the random number generator.   */ -  #ifndef _LINUX_RANDOM_H  #define _LINUX_RANDOM_H -#include <linux/types.h> -#include <linux/ioctl.h> -#include <linux/irqnr.h> - -/* ioctl()'s for the random number generator */ - -/* Get the entropy count. */ -#define RNDGETENTCNT	_IOR( 'R', 0x00, int ) - -/* Add to (or subtract from) the entropy count.  (Superuser only.) */ -#define RNDADDTOENTCNT	_IOW( 'R', 0x01, int ) - -/* Get the contents of the entropy pool.  (Superuser only.) */ -#define RNDGETPOOL	_IOR( 'R', 0x02, int [2] ) - -/*  - * Write bytes into the entropy pool and add to the entropy count. - * (Superuser only.) - */ -#define RNDADDENTROPY	_IOW( 'R', 0x03, int [2] ) +#include <uapi/linux/random.h> -/* Clear entropy count to 0.  (Superuser only.) */ -#define RNDZAPENTCNT	_IO( 'R', 0x04 ) - -/* Clear the entropy pool and associated counters.  (Superuser only.) */ -#define RNDCLEARPOOL	_IO( 'R', 0x06 ) - -struct rand_pool_info { -	int	entropy_count; -	int	buf_size; -	__u32	buf[0]; -}; - -struct rnd_state { -	__u32 s1, s2, s3; -}; - -/* Exported functions */ - -#ifdef __KERNEL__  extern void add_device_randomness(const void *, unsigned int);  extern void add_input_randomness(unsigned int type, unsigned int code, @@ -104,6 +65,4 @@ static inline int arch_get_random_int(unsigned int *v)  }  #endif -#endif /* __KERNEL___ */ -  #endif /* _LINUX_RANDOM_H */ diff --git a/include/linux/raw.h b/include/linux/raw.h deleted file mode 100644 index 62d543e7060..00000000000 --- a/include/linux/raw.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef __LINUX_RAW_H -#define __LINUX_RAW_H - -#include <linux/types.h> - -#define RAW_SETBIND	_IO( 0xac, 0 ) -#define RAW_GETBIND	_IO( 0xac, 1 ) - -struct raw_config_request  -{ -	int	raw_minor; -	__u64	block_major; -	__u64	block_minor; -}; - -#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS - -#endif /* __LINUX_RAW_H */ diff --git a/include/linux/rds.h b/include/linux/rds.h deleted file mode 100644 index 91950950aa5..00000000000 --- a/include/linux/rds.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (c) 2008 Oracle.  All rights reserved. - * - * This software is available to you under a choice of one of two - * licenses.  You may choose to be licensed under the terms of the GNU - * General Public License (GPL) Version 2, available from the file - * COPYING in the main directory of this source tree, or the - * OpenIB.org BSD license below: - * - *     Redistribution and use in source and binary forms, with or - *     without modification, are permitted provided that the following - *     conditions are met: - * - *      - Redistributions of source code must retain the above - *        copyright notice, this list of conditions and the following - *        disclaimer. - * - *      - Redistributions in binary form must reproduce the above - *        copyright notice, this list of conditions and the following - *        disclaimer in the documentation and/or other materials - *        provided with the distribution. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */ - -#ifndef _LINUX_RDS_H -#define _LINUX_RDS_H - -#include <linux/types.h> - -#define RDS_IB_ABI_VERSION		0x301 - -/* - * setsockopt/getsockopt for SOL_RDS - */ -#define RDS_CANCEL_SENT_TO      	1 -#define RDS_GET_MR			2 -#define RDS_FREE_MR			3 -/* deprecated: RDS_BARRIER 4 */ -#define RDS_RECVERR			5 -#define RDS_CONG_MONITOR		6 -#define RDS_GET_MR_FOR_DEST		7 - -/* - * Control message types for SOL_RDS. - * - * CMSG_RDMA_ARGS (sendmsg) - *	Request a RDMA transfer to/from the specified - *	memory ranges. - *	The cmsg_data is a struct rds_rdma_args. - * RDS_CMSG_RDMA_DEST (recvmsg, sendmsg) - *	Kernel informs application about intended - *	source/destination of a RDMA transfer - * RDS_CMSG_RDMA_MAP (sendmsg) - *	Application asks kernel to map the given - *	memory range into a IB MR, and send the - *	R_Key along in an RDS extension header. - *	The cmsg_data is a struct rds_get_mr_args, - *	the same as for the GET_MR setsockopt. - * RDS_CMSG_RDMA_STATUS (recvmsg) - *	Returns the status of a completed RDMA operation. - */ -#define RDS_CMSG_RDMA_ARGS		1 -#define RDS_CMSG_RDMA_DEST		2 -#define RDS_CMSG_RDMA_MAP		3 -#define RDS_CMSG_RDMA_STATUS		4 -#define RDS_CMSG_CONG_UPDATE		5 -#define RDS_CMSG_ATOMIC_FADD		6 -#define RDS_CMSG_ATOMIC_CSWP		7 -#define RDS_CMSG_MASKED_ATOMIC_FADD	8 -#define RDS_CMSG_MASKED_ATOMIC_CSWP	9 - -#define RDS_INFO_FIRST			10000 -#define RDS_INFO_COUNTERS		10000 -#define RDS_INFO_CONNECTIONS		10001 -/* 10002 aka RDS_INFO_FLOWS is deprecated */ -#define RDS_INFO_SEND_MESSAGES		10003 -#define RDS_INFO_RETRANS_MESSAGES       10004 -#define RDS_INFO_RECV_MESSAGES          10005 -#define RDS_INFO_SOCKETS                10006 -#define RDS_INFO_TCP_SOCKETS            10007 -#define RDS_INFO_IB_CONNECTIONS		10008 -#define RDS_INFO_CONNECTION_STATS	10009 -#define RDS_INFO_IWARP_CONNECTIONS	10010 -#define RDS_INFO_LAST			10010 - -struct rds_info_counter { -	uint8_t	name[32]; -	uint64_t	value; -} __attribute__((packed)); - -#define RDS_INFO_CONNECTION_FLAG_SENDING	0x01 -#define RDS_INFO_CONNECTION_FLAG_CONNECTING	0x02 -#define RDS_INFO_CONNECTION_FLAG_CONNECTED	0x04 - -#define TRANSNAMSIZ	16 - -struct rds_info_connection { -	uint64_t	next_tx_seq; -	uint64_t	next_rx_seq; -	__be32		laddr; -	__be32		faddr; -	uint8_t	transport[TRANSNAMSIZ];		/* null term ascii */ -	uint8_t	flags; -} __attribute__((packed)); - -#define RDS_INFO_MESSAGE_FLAG_ACK               0x01 -#define RDS_INFO_MESSAGE_FLAG_FAST_ACK          0x02 - -struct rds_info_message { -	uint64_t	seq; -	uint32_t	len; -	__be32		laddr; -	__be32		faddr; -	__be16		lport; -	__be16		fport; -	uint8_t	flags; -} __attribute__((packed)); - -struct rds_info_socket { -	uint32_t	sndbuf; -	__be32		bound_addr; -	__be32		connected_addr; -	__be16		bound_port; -	__be16		connected_port; -	uint32_t	rcvbuf; -	uint64_t	inum; -} __attribute__((packed)); - -struct rds_info_tcp_socket { -	__be32          local_addr; -	__be16          local_port; -	__be32          peer_addr; -	__be16          peer_port; -	uint64_t       hdr_rem; -	uint64_t       data_rem; -	uint32_t       last_sent_nxt; -	uint32_t       last_expected_una; -	uint32_t       last_seen_una; -} __attribute__((packed)); - -#define RDS_IB_GID_LEN	16 -struct rds_info_rdma_connection { -	__be32		src_addr; -	__be32		dst_addr; -	uint8_t		src_gid[RDS_IB_GID_LEN]; -	uint8_t		dst_gid[RDS_IB_GID_LEN]; - -	uint32_t	max_send_wr; -	uint32_t	max_recv_wr; -	uint32_t	max_send_sge; -	uint32_t	rdma_mr_max; -	uint32_t	rdma_mr_size; -}; - -/* - * Congestion monitoring. - * Congestion control in RDS happens at the host connection - * level by exchanging a bitmap marking congested ports. - * By default, a process sleeping in poll() is always woken - * up when the congestion map is updated. - * With explicit monitoring, an application can have more - * fine-grained control. - * The application installs a 64bit mask value in the socket, - * where each bit corresponds to a group of ports. - * When a congestion update arrives, RDS checks the set of - * ports that are now uncongested against the list bit mask - * installed in the socket, and if they overlap, we queue a - * cong_notification on the socket. - * - * To install the congestion monitor bitmask, use RDS_CONG_MONITOR - * with the 64bit mask. - * Congestion updates are received via RDS_CMSG_CONG_UPDATE - * control messages. - * - * The correspondence between bits and ports is - *	1 << (portnum % 64) - */ -#define RDS_CONG_MONITOR_SIZE	64 -#define RDS_CONG_MONITOR_BIT(port)  (((unsigned int) port) % RDS_CONG_MONITOR_SIZE) -#define RDS_CONG_MONITOR_MASK(port) (1ULL << RDS_CONG_MONITOR_BIT(port)) - -/* - * RDMA related types - */ - -/* - * This encapsulates a remote memory location. - * In the current implementation, it contains the R_Key - * of the remote memory region, and the offset into it - * (so that the application does not have to worry about - * alignment). - */ -typedef uint64_t	rds_rdma_cookie_t; - -struct rds_iovec { -	uint64_t	addr; -	uint64_t	bytes; -}; - -struct rds_get_mr_args { -	struct rds_iovec vec; -	uint64_t	cookie_addr; -	uint64_t	flags; -}; - -struct rds_get_mr_for_dest_args { -	struct sockaddr_storage	dest_addr; -	struct rds_iovec 	vec; -	uint64_t		cookie_addr; -	uint64_t		flags; -}; - -struct rds_free_mr_args { -	rds_rdma_cookie_t cookie; -	uint64_t	flags; -}; - -struct rds_rdma_args { -	rds_rdma_cookie_t cookie; -	struct rds_iovec remote_vec; -	uint64_t	local_vec_addr; -	uint64_t	nr_local; -	uint64_t	flags; -	uint64_t	user_token; -}; - -struct rds_atomic_args { -	rds_rdma_cookie_t cookie; -	uint64_t 	local_addr; -	uint64_t 	remote_addr; -	union { -		struct { -			uint64_t	compare; -			uint64_t	swap; -		} cswp; -		struct { -			uint64_t	add; -		} fadd; -		struct { -			uint64_t	compare; -			uint64_t	swap; -			uint64_t	compare_mask; -			uint64_t	swap_mask; -		} m_cswp; -		struct { -			uint64_t	add; -			uint64_t	nocarry_mask; -		} m_fadd; -	}; -	uint64_t	flags; -	uint64_t	user_token; -}; - -struct rds_rdma_notify { -	uint64_t	user_token; -	int32_t		status; -}; - -#define RDS_RDMA_SUCCESS	0 -#define RDS_RDMA_REMOTE_ERROR	1 -#define RDS_RDMA_CANCELED	2 -#define RDS_RDMA_DROPPED	3 -#define RDS_RDMA_OTHER_ERROR	4 - -/* - * Common set of flags for all RDMA related structs - */ -#define RDS_RDMA_READWRITE	0x0001 -#define RDS_RDMA_FENCE		0x0002	/* use FENCE for immediate send */ -#define RDS_RDMA_INVALIDATE	0x0004	/* invalidate R_Key after freeing MR */ -#define RDS_RDMA_USE_ONCE	0x0008	/* free MR after use */ -#define RDS_RDMA_DONTWAIT	0x0010	/* Don't wait in SET_BARRIER */ -#define RDS_RDMA_NOTIFY_ME	0x0020	/* Notify when operation completes */ -#define RDS_RDMA_SILENT		0x0040	/* Do not interrupt remote */ - -#endif /* IB_RDS_H */ diff --git a/include/linux/reboot.h b/include/linux/reboot.h index e0879a70e83..23b36304cd8 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h @@ -1,43 +1,9 @@  #ifndef _LINUX_REBOOT_H  #define _LINUX_REBOOT_H -/* - * Magic values required to use _reboot() system call. - */ - -#define	LINUX_REBOOT_MAGIC1	0xfee1dead -#define	LINUX_REBOOT_MAGIC2	672274793 -#define	LINUX_REBOOT_MAGIC2A	85072278 -#define	LINUX_REBOOT_MAGIC2B	369367448 -#define	LINUX_REBOOT_MAGIC2C	537993216 - - -/* - * Commands accepted by the _reboot() system call. - * - * RESTART     Restart system using default command and mode. - * HALT        Stop OS and give system control to ROM monitor, if any. - * CAD_ON      Ctrl-Alt-Del sequence causes RESTART command. - * CAD_OFF     Ctrl-Alt-Del sequence sends SIGINT to init task. - * POWER_OFF   Stop OS and remove all power from system, if possible. - * RESTART2    Restart system using given command string. - * SW_SUSPEND  Suspend system using software suspend if compiled in. - * KEXEC       Restart system using a previously loaded Linux kernel - */ - -#define	LINUX_REBOOT_CMD_RESTART	0x01234567 -#define	LINUX_REBOOT_CMD_HALT		0xCDEF0123 -#define	LINUX_REBOOT_CMD_CAD_ON		0x89ABCDEF -#define	LINUX_REBOOT_CMD_CAD_OFF	0x00000000 -#define	LINUX_REBOOT_CMD_POWER_OFF	0x4321FEDC -#define	LINUX_REBOOT_CMD_RESTART2	0xA1B2C3D4 -#define	LINUX_REBOOT_CMD_SW_SUSPEND	0xD000FCE2 -#define	LINUX_REBOOT_CMD_KEXEC		0x45584543 - - -#ifdef __KERNEL__  #include <linux/notifier.h> +#include <uapi/linux/reboot.h>  #define SYS_DOWN	0x0001	/* Notify of system down */  #define SYS_RESTART	SYS_DOWN @@ -84,6 +50,4 @@ extern int orderly_poweroff(bool force);  extern void emergency_restart(void);  #include <asm/emergency-restart.h> -#endif -  #endif /* _LINUX_REBOOT_H */ diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h deleted file mode 100644 index ea3700cd736..00000000000 --- a/include/linux/reiserfs_fs.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 1996, 1997, 1998 Hans Reiser, see reiserfs/README for licensing and copyright details - */ -#ifndef _LINUX_REISER_FS_H -#define _LINUX_REISER_FS_H - -#include <linux/types.h> -#include <linux/magic.h> - -/* - *  include/linux/reiser_fs.h - * - *  Reiser File System constants and structures - * - */ - -/* ioctl's command */ -#define REISERFS_IOC_UNPACK		_IOW(0xCD,1,long) -/* define following flags to be the same as in ext2, so that chattr(1), -   lsattr(1) will work with us. */ -#define REISERFS_IOC_GETFLAGS		FS_IOC_GETFLAGS -#define REISERFS_IOC_SETFLAGS		FS_IOC_SETFLAGS -#define REISERFS_IOC_GETVERSION		FS_IOC_GETVERSION -#define REISERFS_IOC_SETVERSION		FS_IOC_SETVERSION - -#endif				/* _LINUX_REISER_FS_H */ diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h deleted file mode 100644 index d8ce17c2459..00000000000 --- a/include/linux/reiserfs_xattr.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -  File: linux/reiserfs_xattr.h -*/ - -#ifndef _LINUX_REISERFS_XATTR_H -#define _LINUX_REISERFS_XATTR_H - -#include <linux/types.h> - -/* Magic value in header */ -#define REISERFS_XATTR_MAGIC 0x52465841	/* "RFXA" */ - -struct reiserfs_xattr_header { -	__le32 h_magic;		/* magic number for identification */ -	__le32 h_hash;		/* hash of the value */ -}; - -struct reiserfs_security_handle { -	char *name; -	void *value; -	size_t length; -}; - -#endif  /*  _LINUX_REISERFS_XATTR_H  */ diff --git a/include/linux/resource.h b/include/linux/resource.h index d01c96c1966..5bc3116e649 100644 --- a/include/linux/resource.h +++ b/include/linux/resource.h @@ -1,82 +1,8 @@  #ifndef _LINUX_RESOURCE_H  #define _LINUX_RESOURCE_H -#include <linux/time.h> -#include <linux/types.h> +#include <uapi/linux/resource.h> -/* - * Resource control/accounting header file for linux - */ - -/* - * Definition of struct rusage taken from BSD 4.3 Reno - *  - * We don't support all of these yet, but we might as well have them.... - * Otherwise, each time we add new items, programs which depend on this - * structure will lose.  This reduces the chances of that happening. - */ -#define	RUSAGE_SELF	0 -#define	RUSAGE_CHILDREN	(-1) -#define RUSAGE_BOTH	(-2)		/* sys_wait4() uses this */ -#define	RUSAGE_THREAD	1		/* only the calling thread */ - -struct	rusage { -	struct timeval ru_utime;	/* user time used */ -	struct timeval ru_stime;	/* system time used */ -	long	ru_maxrss;		/* maximum resident set size */ -	long	ru_ixrss;		/* integral shared memory size */ -	long	ru_idrss;		/* integral unshared data size */ -	long	ru_isrss;		/* integral unshared stack size */ -	long	ru_minflt;		/* page reclaims */ -	long	ru_majflt;		/* page faults */ -	long	ru_nswap;		/* swaps */ -	long	ru_inblock;		/* block input operations */ -	long	ru_oublock;		/* block output operations */ -	long	ru_msgsnd;		/* messages sent */ -	long	ru_msgrcv;		/* messages received */ -	long	ru_nsignals;		/* signals received */ -	long	ru_nvcsw;		/* voluntary context switches */ -	long	ru_nivcsw;		/* involuntary " */ -}; - -struct rlimit { -	unsigned long	rlim_cur; -	unsigned long	rlim_max; -}; - -#define RLIM64_INFINITY		(~0ULL) - -struct rlimit64 { -	__u64 rlim_cur; -	__u64 rlim_max; -}; - -#define	PRIO_MIN	(-20) -#define	PRIO_MAX	20 - -#define	PRIO_PROCESS	0 -#define	PRIO_PGRP	1 -#define	PRIO_USER	2 - -/* - * Limit the stack by to some sane default: root can always - * increase this limit if needed..  8MB seems reasonable. - */ -#define _STK_LIM	(8*1024*1024) - -/* - * GPG2 wants 64kB of mlocked memory, to make sure pass phrases - * and other sensitive information are never written to disk. - */ -#define MLOCK_LIMIT	((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024) - -/* - * Due to binary compatibility, the actual resource numbers - * may be different for different linux versions.. - */ -#include <asm/resource.h> - -#ifdef __KERNEL__  struct task_struct; @@ -84,6 +10,4 @@ int getrusage(struct task_struct *p, int who, struct rusage __user *ru);  int do_prlimit(struct task_struct *tsk, unsigned int resource,  		struct rlimit *new_rlim, struct rlimit *old_rlim); -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h index 0ec590bb361..d9010789b4e 100644 --- a/include/linux/rfkill.h +++ b/include/linux/rfkill.h @@ -1,6 +1,3 @@ -#ifndef __RFKILL_H -#define __RFKILL_H -  /*   * Copyright (C) 2006 - 2007 Ivo van Doorn   * Copyright (C) 2007 Dmitry Torokhov @@ -18,92 +15,11 @@   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   */ +#ifndef __RFKILL_H +#define __RFKILL_H -#include <linux/types.h> - -/* define userspace visible states */ -#define RFKILL_STATE_SOFT_BLOCKED	0 -#define RFKILL_STATE_UNBLOCKED		1 -#define RFKILL_STATE_HARD_BLOCKED	2 - -/** - * enum rfkill_type - type of rfkill switch. - * - * @RFKILL_TYPE_ALL: toggles all switches (requests only - not a switch type) - * @RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device. - * @RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device. - * @RFKILL_TYPE_UWB: switch is on a ultra wideband device. - * @RFKILL_TYPE_WIMAX: switch is on a WiMAX device. - * @RFKILL_TYPE_WWAN: switch is on a wireless WAN device. - * @RFKILL_TYPE_GPS: switch is on a GPS device. - * @RFKILL_TYPE_FM: switch is on a FM radio device. - * @NUM_RFKILL_TYPES: number of defined rfkill types - */ -enum rfkill_type { -	RFKILL_TYPE_ALL = 0, -	RFKILL_TYPE_WLAN, -	RFKILL_TYPE_BLUETOOTH, -	RFKILL_TYPE_UWB, -	RFKILL_TYPE_WIMAX, -	RFKILL_TYPE_WWAN, -	RFKILL_TYPE_GPS, -	RFKILL_TYPE_FM, -	NUM_RFKILL_TYPES, -}; - -/** - * enum rfkill_operation - operation types - * @RFKILL_OP_ADD: a device was added - * @RFKILL_OP_DEL: a device was removed - * @RFKILL_OP_CHANGE: a device's state changed -- userspace changes one device - * @RFKILL_OP_CHANGE_ALL: userspace changes all devices (of a type, or all) - */ -enum rfkill_operation { -	RFKILL_OP_ADD = 0, -	RFKILL_OP_DEL, -	RFKILL_OP_CHANGE, -	RFKILL_OP_CHANGE_ALL, -}; - -/** - * struct rfkill_event - events for userspace on /dev/rfkill - * @idx: index of dev rfkill - * @type: type of the rfkill struct - * @op: operation code - * @hard: hard state (0/1) - * @soft: soft state (0/1) - * - * Structure used for userspace communication on /dev/rfkill, - * used for events from the kernel and control to the kernel. - */ -struct rfkill_event { -	__u32 idx; -	__u8  type; -	__u8  op; -	__u8  soft, hard; -} __attribute__((packed)); - -/* - * We are planning to be backward and forward compatible with changes - * to the event struct, by adding new, optional, members at the end. - * When reading an event (whether the kernel from userspace or vice - * versa) we need to accept anything that's at least as large as the - * version 1 event size, but might be able to accept other sizes in - * the future. - * - * One exception is the kernel -- we already have two event sizes in - * that we've made the 'hard' member optional since our only option - * is to ignore it anyway. - */ -#define RFKILL_EVENT_SIZE_V1	8 - -/* ioctl for turning off rfkill-input (if present) */ -#define RFKILL_IOC_MAGIC	'R' -#define RFKILL_IOC_NOINPUT	1 -#define RFKILL_IOCTL_NOINPUT	_IO(RFKILL_IOC_MAGIC, RFKILL_IOC_NOINPUT) +#include <uapi/linux/rfkill.h> -/* and that's all userspace gets */ -#ifdef __KERNEL__  /* don't allow anyone to use these in the kernel */  enum rfkill_user_states {  	RFKILL_USER_STATE_SOFT_BLOCKED	= RFKILL_STATE_SOFT_BLOCKED, @@ -385,6 +301,4 @@ rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name)  }  #endif -#endif /* __KERNEL__ */ -  #endif /* RFKILL_H */ diff --git a/include/linux/romfs_fs.h b/include/linux/romfs_fs.h deleted file mode 100644 index 5f57f93b284..00000000000 --- a/include/linux/romfs_fs.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __LINUX_ROMFS_FS_H -#define __LINUX_ROMFS_FS_H - -#include <linux/types.h> -#include <linux/fs.h> - -/* The basic structures of the romfs filesystem */ - -#define ROMBSIZE BLOCK_SIZE -#define ROMBSBITS BLOCK_SIZE_BITS -#define ROMBMASK (ROMBSIZE-1) -#define ROMFS_MAGIC 0x7275 - -#define ROMFS_MAXFN 128 - -#define __mkw(h,l) (((h)&0x00ff)<< 8|((l)&0x00ff)) -#define __mkl(h,l) (((h)&0xffff)<<16|((l)&0xffff)) -#define __mk4(a,b,c,d) cpu_to_be32(__mkl(__mkw(a,b),__mkw(c,d))) -#define ROMSB_WORD0 __mk4('-','r','o','m') -#define ROMSB_WORD1 __mk4('1','f','s','-') - -/* On-disk "super block" */ - -struct romfs_super_block { -	__be32 word0; -	__be32 word1; -	__be32 size; -	__be32 checksum; -	char name[0];		/* volume name */ -}; - -/* On disk inode */ - -struct romfs_inode { -	__be32 next;		/* low 4 bits see ROMFH_ */ -	__be32 spec; -	__be32 size; -	__be32 checksum; -	char name[0]; -}; - -#define ROMFH_TYPE 7 -#define ROMFH_HRD 0 -#define ROMFH_DIR 1 -#define ROMFH_REG 2 -#define ROMFH_SYM 3 -#define ROMFH_BLK 4 -#define ROMFH_CHR 5 -#define ROMFH_SCK 6 -#define ROMFH_FIF 7 -#define ROMFH_EXEC 8 - -/* Alignment */ - -#define ROMFH_SIZE 16 -#define ROMFH_PAD (ROMFH_SIZE-1) -#define ROMFH_MASK (~ROMFH_PAD) - -#endif diff --git a/include/linux/rose.h b/include/linux/rose.h deleted file mode 100644 index 1fcfe95893b..00000000000 --- a/include/linux/rose.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * These are the public elements of the Linux kernel Rose implementation. - * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the - * definition of the ax25_address structure. - */ - -#ifndef	ROSE_KERNEL_H -#define	ROSE_KERNEL_H - -#include <linux/socket.h> -#include <linux/ax25.h> - -#define ROSE_MTU	251 - -#define ROSE_MAX_DIGIS 6 - -#define	ROSE_DEFER	1 -#define ROSE_T1		2 -#define	ROSE_T2		3 -#define	ROSE_T3		4 -#define	ROSE_IDLE	5 -#define	ROSE_QBITINCL	6 -#define	ROSE_HOLDBACK	7 - -#define	SIOCRSGCAUSE		(SIOCPROTOPRIVATE+0) -#define	SIOCRSSCAUSE		(SIOCPROTOPRIVATE+1) -#define	SIOCRSL2CALL		(SIOCPROTOPRIVATE+2) -#define	SIOCRSSL2CALL		(SIOCPROTOPRIVATE+2) -#define	SIOCRSACCEPT		(SIOCPROTOPRIVATE+3) -#define	SIOCRSCLRRT		(SIOCPROTOPRIVATE+4) -#define	SIOCRSGL2CALL		(SIOCPROTOPRIVATE+5) -#define	SIOCRSGFACILITIES	(SIOCPROTOPRIVATE+6) - -#define	ROSE_DTE_ORIGINATED	0x00 -#define	ROSE_NUMBER_BUSY	0x01 -#define	ROSE_INVALID_FACILITY	0x03 -#define	ROSE_NETWORK_CONGESTION	0x05 -#define	ROSE_OUT_OF_ORDER	0x09 -#define	ROSE_ACCESS_BARRED	0x0B -#define	ROSE_NOT_OBTAINABLE	0x0D -#define	ROSE_REMOTE_PROCEDURE	0x11 -#define	ROSE_LOCAL_PROCEDURE	0x13 -#define	ROSE_SHIP_ABSENT	0x39 - -typedef struct { -	char		rose_addr[5]; -} rose_address; - -struct sockaddr_rose { -	__kernel_sa_family_t srose_family; -	rose_address	srose_addr; -	ax25_address	srose_call; -	int		srose_ndigis; -	ax25_address	srose_digi; -}; - -struct full_sockaddr_rose { -	__kernel_sa_family_t srose_family; -	rose_address	srose_addr; -	ax25_address	srose_call; -	unsigned int	srose_ndigis; -	ax25_address	srose_digis[ROSE_MAX_DIGIS]; -}; - -struct rose_route_struct { -	rose_address	address; -	unsigned short	mask; -	ax25_address	neighbour; -	char		device[16]; -	unsigned char	ndigis; -	ax25_address	digipeaters[AX25_MAX_DIGIS]; -}; - -struct rose_cause_struct { -	unsigned char	cause; -	unsigned char	diagnostic; -}; - -struct rose_facilities_struct { -	rose_address	source_addr,   dest_addr; -	ax25_address	source_call,   dest_call; -	unsigned char	source_ndigis, dest_ndigis; -	ax25_address	source_digis[ROSE_MAX_DIGIS]; -	ax25_address	dest_digis[ROSE_MAX_DIGIS]; -	unsigned int	rand; -	rose_address	fail_addr; -	ax25_address	fail_call; -}; - -#endif diff --git a/include/linux/route.h b/include/linux/route.h deleted file mode 100644 index 6600708311c..00000000000 --- a/include/linux/route.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * INET		An implementation of the TCP/IP protocol suite for the LINUX - *		operating system.  INET is implemented using the  BSD Socket - *		interface as the means of communication with the user level. - * - *		Global definitions for the IP router interface. - * - * Version:	@(#)route.h	1.0.3	05/27/93 - * - * Authors:	Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 - *		for the purposes of compatibility only. - * - *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> - * - * Changes: - *              Mike McLagan    :       Routing by source - * - *		This program is free software; you can redistribute it and/or - *		modify it under the terms of the GNU General Public License - *		as published by the Free Software Foundation; either version - *		2 of the License, or (at your option) any later version. - */ -#ifndef _LINUX_ROUTE_H -#define _LINUX_ROUTE_H - -#include <linux/if.h> -#include <linux/compiler.h> - -/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ -struct rtentry { -	unsigned long	rt_pad1; -	struct sockaddr	rt_dst;		/* target address		*/ -	struct sockaddr	rt_gateway;	/* gateway addr (RTF_GATEWAY)	*/ -	struct sockaddr	rt_genmask;	/* target network mask (IP)	*/ -	unsigned short	rt_flags; -	short		rt_pad2; -	unsigned long	rt_pad3; -	void		*rt_pad4; -	short		rt_metric;	/* +1 for binary compatibility!	*/ -	char __user	*rt_dev;	/* forcing the device at add	*/ -	unsigned long	rt_mtu;		/* per route MTU/Window 	*/ -#ifndef __KERNEL__ -#define rt_mss	rt_mtu			/* Compatibility :-(            */ -#endif -	unsigned long	rt_window;	/* Window clamping 		*/ -	unsigned short	rt_irtt;	/* Initial RTT			*/ -}; - - -#define	RTF_UP		0x0001		/* route usable		  	*/ -#define	RTF_GATEWAY	0x0002		/* destination is a gateway	*/ -#define	RTF_HOST	0x0004		/* host entry (net otherwise)	*/ -#define RTF_REINSTATE	0x0008		/* reinstate route after tmout	*/ -#define	RTF_DYNAMIC	0x0010		/* created dyn. (by redirect)	*/ -#define	RTF_MODIFIED	0x0020		/* modified dyn. (by redirect)	*/ -#define RTF_MTU		0x0040		/* specific MTU for this route	*/ -#define RTF_MSS		RTF_MTU		/* Compatibility :-(		*/ -#define RTF_WINDOW	0x0080		/* per route window clamping	*/ -#define RTF_IRTT	0x0100		/* Initial round trip time	*/ -#define RTF_REJECT	0x0200		/* Reject route			*/ - -/* - *	<linux/ipv6_route.h> uses RTF values >= 64k - */ - - - -#endif	/* _LINUX_ROUTE_H */ - diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 20ec4d3bed7..9531845c419 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -11,102 +11,10 @@  #ifndef _LINUX_RTC_H_  #define _LINUX_RTC_H_ -/* - * The struct used to pass data via the following ioctl. Similar to the - * struct tm in <time.h>, but it needs to be here so that the kernel - * source is self contained, allowing cross-compiles, etc. etc. - */ - -struct rtc_time { -	int tm_sec; -	int tm_min; -	int tm_hour; -	int tm_mday; -	int tm_mon; -	int tm_year; -	int tm_wday; -	int tm_yday; -	int tm_isdst; -}; - -/* - * This data structure is inspired by the EFI (v0.92) wakeup - * alarm API. - */ -struct rtc_wkalrm { -	unsigned char enabled;	/* 0 = alarm disabled, 1 = alarm enabled */ -	unsigned char pending;  /* 0 = alarm not pending, 1 = alarm pending */ -	struct rtc_time time;	/* time the alarm is set to */ -}; - -/* - * Data structure to control PLL correction some better RTC feature - * pll_value is used to get or set current value of correction, - * the rest of the struct is used to query HW capabilities. - * This is modeled after the RTC used in Q40/Q60 computers but - * should be sufficiently flexible for other devices - * - * +ve pll_value means clock will run faster by - *   pll_value*pll_posmult/pll_clock - * -ve pll_value means clock will run slower by - *   pll_value*pll_negmult/pll_clock - */ - -struct rtc_pll_info { -	int pll_ctrl;       /* placeholder for fancier control */ -	int pll_value;      /* get/set correction value */ -	int pll_max;        /* max +ve (faster) adjustment value */ -	int pll_min;        /* max -ve (slower) adjustment value */ -	int pll_posmult;    /* factor for +ve correction */ -	int pll_negmult;    /* factor for -ve correction */ -	long pll_clock;     /* base PLL frequency */ -}; - -/* - * ioctl calls that are permitted to the /dev/rtc interface, if - * any of the RTC drivers are enabled. - */ - -#define RTC_AIE_ON	_IO('p', 0x01)	/* Alarm int. enable on		*/ -#define RTC_AIE_OFF	_IO('p', 0x02)	/* ... off			*/ -#define RTC_UIE_ON	_IO('p', 0x03)	/* Update int. enable on	*/ -#define RTC_UIE_OFF	_IO('p', 0x04)	/* ... off			*/ -#define RTC_PIE_ON	_IO('p', 0x05)	/* Periodic int. enable on	*/ -#define RTC_PIE_OFF	_IO('p', 0x06)	/* ... off			*/ -#define RTC_WIE_ON	_IO('p', 0x0f)  /* Watchdog int. enable on	*/ -#define RTC_WIE_OFF	_IO('p', 0x10)  /* ... off			*/ - -#define RTC_ALM_SET	_IOW('p', 0x07, struct rtc_time) /* Set alarm time  */ -#define RTC_ALM_READ	_IOR('p', 0x08, struct rtc_time) /* Read alarm time */ -#define RTC_RD_TIME	_IOR('p', 0x09, struct rtc_time) /* Read RTC time   */ -#define RTC_SET_TIME	_IOW('p', 0x0a, struct rtc_time) /* Set RTC time    */ -#define RTC_IRQP_READ	_IOR('p', 0x0b, unsigned long)	 /* Read IRQ rate   */ -#define RTC_IRQP_SET	_IOW('p', 0x0c, unsigned long)	 /* Set IRQ rate    */ -#define RTC_EPOCH_READ	_IOR('p', 0x0d, unsigned long)	 /* Read epoch      */ -#define RTC_EPOCH_SET	_IOW('p', 0x0e, unsigned long)	 /* Set epoch       */ - -#define RTC_WKALM_SET	_IOW('p', 0x0f, struct rtc_wkalrm)/* Set wakeup alarm*/ -#define RTC_WKALM_RD	_IOR('p', 0x10, struct rtc_wkalrm)/* Get wakeup alarm*/ - -#define RTC_PLL_GET	_IOR('p', 0x11, struct rtc_pll_info)  /* Get PLL correction */ -#define RTC_PLL_SET	_IOW('p', 0x12, struct rtc_pll_info)  /* Set PLL correction */ - -#define RTC_VL_READ	_IOR('p', 0x13, int)	/* Voltage low detector */ -#define RTC_VL_CLR	_IO('p', 0x14)		/* Clear voltage low information */ - -/* interrupt flags */ -#define RTC_IRQF 0x80	/* Any of the following is active */ -#define RTC_PF 0x40	/* Periodic interrupt */ -#define RTC_AF 0x20	/* Alarm interrupt */ -#define RTC_UF 0x10	/* Update interrupt for 1Hz RTC */ - - -#define RTC_MAX_FREQ	8192 - -#ifdef __KERNEL__  #include <linux/types.h>  #include <linux/interrupt.h> +#include <uapi/linux/rtc.h>  extern int rtc_month_days(unsigned int month, unsigned int year);  extern int rtc_year_days(unsigned int day, unsigned int month, unsigned int year); @@ -282,6 +190,4 @@ extern int rtc_hctosys_ret;  #define rtc_hctosys_ret -ENODEV  #endif -#endif /* __KERNEL__ */ -  #endif /* _LINUX_RTC_H_ */ diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index db71c4ad862..7002bbfd5d4 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h @@ -1,616 +1,10 @@  #ifndef __LINUX_RTNETLINK_H  #define __LINUX_RTNETLINK_H -#include <linux/types.h> -#include <linux/netlink.h> -#include <linux/if_link.h> -#include <linux/if_addr.h> -#include <linux/neighbour.h> - -/* rtnetlink families. Values up to 127 are reserved for real address - * families, values above 128 may be used arbitrarily. - */ -#define RTNL_FAMILY_IPMR		128 -#define RTNL_FAMILY_IP6MR		129 -#define RTNL_FAMILY_MAX			129 - -/**** - *		Routing/neighbour discovery messages. - ****/ - -/* Types of messages */ - -enum { -	RTM_BASE	= 16, -#define RTM_BASE	RTM_BASE - -	RTM_NEWLINK	= 16, -#define RTM_NEWLINK	RTM_NEWLINK -	RTM_DELLINK, -#define RTM_DELLINK	RTM_DELLINK -	RTM_GETLINK, -#define RTM_GETLINK	RTM_GETLINK -	RTM_SETLINK, -#define RTM_SETLINK	RTM_SETLINK - -	RTM_NEWADDR	= 20, -#define RTM_NEWADDR	RTM_NEWADDR -	RTM_DELADDR, -#define RTM_DELADDR	RTM_DELADDR -	RTM_GETADDR, -#define RTM_GETADDR	RTM_GETADDR - -	RTM_NEWROUTE	= 24, -#define RTM_NEWROUTE	RTM_NEWROUTE -	RTM_DELROUTE, -#define RTM_DELROUTE	RTM_DELROUTE -	RTM_GETROUTE, -#define RTM_GETROUTE	RTM_GETROUTE - -	RTM_NEWNEIGH	= 28, -#define RTM_NEWNEIGH	RTM_NEWNEIGH -	RTM_DELNEIGH, -#define RTM_DELNEIGH	RTM_DELNEIGH -	RTM_GETNEIGH, -#define RTM_GETNEIGH	RTM_GETNEIGH - -	RTM_NEWRULE	= 32, -#define RTM_NEWRULE	RTM_NEWRULE -	RTM_DELRULE, -#define RTM_DELRULE	RTM_DELRULE -	RTM_GETRULE, -#define RTM_GETRULE	RTM_GETRULE - -	RTM_NEWQDISC	= 36, -#define RTM_NEWQDISC	RTM_NEWQDISC -	RTM_DELQDISC, -#define RTM_DELQDISC	RTM_DELQDISC -	RTM_GETQDISC, -#define RTM_GETQDISC	RTM_GETQDISC - -	RTM_NEWTCLASS	= 40, -#define RTM_NEWTCLASS	RTM_NEWTCLASS -	RTM_DELTCLASS, -#define RTM_DELTCLASS	RTM_DELTCLASS -	RTM_GETTCLASS, -#define RTM_GETTCLASS	RTM_GETTCLASS - -	RTM_NEWTFILTER	= 44, -#define RTM_NEWTFILTER	RTM_NEWTFILTER -	RTM_DELTFILTER, -#define RTM_DELTFILTER	RTM_DELTFILTER -	RTM_GETTFILTER, -#define RTM_GETTFILTER	RTM_GETTFILTER - -	RTM_NEWACTION	= 48, -#define RTM_NEWACTION   RTM_NEWACTION -	RTM_DELACTION, -#define RTM_DELACTION   RTM_DELACTION -	RTM_GETACTION, -#define RTM_GETACTION   RTM_GETACTION - -	RTM_NEWPREFIX	= 52, -#define RTM_NEWPREFIX	RTM_NEWPREFIX - -	RTM_GETMULTICAST = 58, -#define RTM_GETMULTICAST RTM_GETMULTICAST - -	RTM_GETANYCAST	= 62, -#define RTM_GETANYCAST	RTM_GETANYCAST - -	RTM_NEWNEIGHTBL	= 64, -#define RTM_NEWNEIGHTBL	RTM_NEWNEIGHTBL -	RTM_GETNEIGHTBL	= 66, -#define RTM_GETNEIGHTBL	RTM_GETNEIGHTBL -	RTM_SETNEIGHTBL, -#define RTM_SETNEIGHTBL	RTM_SETNEIGHTBL - -	RTM_NEWNDUSEROPT = 68, -#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT - -	RTM_NEWADDRLABEL = 72, -#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL -	RTM_DELADDRLABEL, -#define RTM_DELADDRLABEL RTM_DELADDRLABEL -	RTM_GETADDRLABEL, -#define RTM_GETADDRLABEL RTM_GETADDRLABEL - -	RTM_GETDCB = 78, -#define RTM_GETDCB RTM_GETDCB -	RTM_SETDCB, -#define RTM_SETDCB RTM_SETDCB - -	__RTM_MAX, -#define RTM_MAX		(((__RTM_MAX + 3) & ~3) - 1) -}; - -#define RTM_NR_MSGTYPES	(RTM_MAX + 1 - RTM_BASE) -#define RTM_NR_FAMILIES	(RTM_NR_MSGTYPES >> 2) -#define RTM_FAM(cmd)	(((cmd) - RTM_BASE) >> 2) - -/*  -   Generic structure for encapsulation of optional route information. -   It is reminiscent of sockaddr, but with sa_family replaced -   with attribute type. - */ - -struct rtattr { -	unsigned short	rta_len; -	unsigned short	rta_type; -}; - -/* Macros to handle rtattributes */ - -#define RTA_ALIGNTO	4 -#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) ) -#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && \ -			 (rta)->rta_len >= sizeof(struct rtattr) && \ -			 (rta)->rta_len <= (len)) -#define RTA_NEXT(rta,attrlen)	((attrlen) -= RTA_ALIGN((rta)->rta_len), \ -				 (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len))) -#define RTA_LENGTH(len)	(RTA_ALIGN(sizeof(struct rtattr)) + (len)) -#define RTA_SPACE(len)	RTA_ALIGN(RTA_LENGTH(len)) -#define RTA_DATA(rta)   ((void*)(((char*)(rta)) + RTA_LENGTH(0))) -#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0)) - - - - -/****************************************************************************** - *		Definitions used in routing table administration. - ****/ - -struct rtmsg { -	unsigned char		rtm_family; -	unsigned char		rtm_dst_len; -	unsigned char		rtm_src_len; -	unsigned char		rtm_tos; - -	unsigned char		rtm_table;	/* Routing table id */ -	unsigned char		rtm_protocol;	/* Routing protocol; see below	*/ -	unsigned char		rtm_scope;	/* See below */	 -	unsigned char		rtm_type;	/* See below	*/ - -	unsigned		rtm_flags; -}; - -/* rtm_type */ - -enum { -	RTN_UNSPEC, -	RTN_UNICAST,		/* Gateway or direct route	*/ -	RTN_LOCAL,		/* Accept locally		*/ -	RTN_BROADCAST,		/* Accept locally as broadcast, -				   send as broadcast */ -	RTN_ANYCAST,		/* Accept locally as broadcast, -				   but send as unicast */ -	RTN_MULTICAST,		/* Multicast route		*/ -	RTN_BLACKHOLE,		/* Drop				*/ -	RTN_UNREACHABLE,	/* Destination is unreachable   */ -	RTN_PROHIBIT,		/* Administratively prohibited	*/ -	RTN_THROW,		/* Not in this table		*/ -	RTN_NAT,		/* Translate this address	*/ -	RTN_XRESOLVE,		/* Use external resolver	*/ -	__RTN_MAX -}; - -#define RTN_MAX (__RTN_MAX - 1) - - -/* rtm_protocol */ - -#define RTPROT_UNSPEC	0 -#define RTPROT_REDIRECT	1	/* Route installed by ICMP redirects; -				   not used by current IPv4 */ -#define RTPROT_KERNEL	2	/* Route installed by kernel		*/ -#define RTPROT_BOOT	3	/* Route installed during boot		*/ -#define RTPROT_STATIC	4	/* Route installed by administrator	*/ - -/* Values of protocol >= RTPROT_STATIC are not interpreted by kernel; -   they are just passed from user and back as is. -   It will be used by hypothetical multiple routing daemons. -   Note that protocol values should be standardized in order to -   avoid conflicts. - */ - -#define RTPROT_GATED	8	/* Apparently, GateD */ -#define RTPROT_RA	9	/* RDISC/ND router advertisements */ -#define RTPROT_MRT	10	/* Merit MRT */ -#define RTPROT_ZEBRA	11	/* Zebra */ -#define RTPROT_BIRD	12	/* BIRD */ -#define RTPROT_DNROUTED	13	/* DECnet routing daemon */ -#define RTPROT_XORP	14	/* XORP */ -#define RTPROT_NTK	15	/* Netsukuku */ -#define RTPROT_DHCP	16      /* DHCP client */ - -/* rtm_scope - -   Really it is not scope, but sort of distance to the destination. -   NOWHERE are reserved for not existing destinations, HOST is our -   local addresses, LINK are destinations, located on directly attached -   link and UNIVERSE is everywhere in the Universe. - -   Intermediate values are also possible f.e. interior routes -   could be assigned a value between UNIVERSE and LINK. -*/ - -enum rt_scope_t { -	RT_SCOPE_UNIVERSE=0, -/* User defined values  */ -	RT_SCOPE_SITE=200, -	RT_SCOPE_LINK=253, -	RT_SCOPE_HOST=254, -	RT_SCOPE_NOWHERE=255 -}; - -/* rtm_flags */ - -#define RTM_F_NOTIFY		0x100	/* Notify user of route change	*/ -#define RTM_F_CLONED		0x200	/* This route is cloned		*/ -#define RTM_F_EQUALIZE		0x400	/* Multipath equalizer: NI	*/ -#define RTM_F_PREFIX		0x800	/* Prefix addresses		*/ - -/* Reserved table identifiers */ - -enum rt_class_t { -	RT_TABLE_UNSPEC=0, -/* User defined values */ -	RT_TABLE_COMPAT=252, -	RT_TABLE_DEFAULT=253, -	RT_TABLE_MAIN=254, -	RT_TABLE_LOCAL=255, -	RT_TABLE_MAX=0xFFFFFFFF -}; - - -/* Routing message attributes */ - -enum rtattr_type_t { -	RTA_UNSPEC, -	RTA_DST, -	RTA_SRC, -	RTA_IIF, -	RTA_OIF, -	RTA_GATEWAY, -	RTA_PRIORITY, -	RTA_PREFSRC, -	RTA_METRICS, -	RTA_MULTIPATH, -	RTA_PROTOINFO, /* no longer used */ -	RTA_FLOW, -	RTA_CACHEINFO, -	RTA_SESSION, /* no longer used */ -	RTA_MP_ALGO, /* no longer used */ -	RTA_TABLE, -	RTA_MARK, -	__RTA_MAX -}; - -#define RTA_MAX (__RTA_MAX - 1) - -#define RTM_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg)))) -#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg)) - -/* RTM_MULTIPATH --- array of struct rtnexthop. - * - * "struct rtnexthop" describes all necessary nexthop information, - * i.e. parameters of path to a destination via this nexthop. - * - * At the moment it is impossible to set different prefsrc, mtu, window - * and rtt for different paths from multipath. - */ - -struct rtnexthop { -	unsigned short		rtnh_len; -	unsigned char		rtnh_flags; -	unsigned char		rtnh_hops; -	int			rtnh_ifindex; -}; - -/* rtnh_flags */ - -#define RTNH_F_DEAD		1	/* Nexthop is dead (used by multipath)	*/ -#define RTNH_F_PERVASIVE	2	/* Do recursive gateway lookup	*/ -#define RTNH_F_ONLINK		4	/* Gateway is forced on link	*/ - -/* Macros to handle hexthops */ - -#define RTNH_ALIGNTO	4 -#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) ) -#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \ -			   ((int)(rtnh)->rtnh_len) <= (len)) -#define RTNH_NEXT(rtnh)	((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) -#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len)) -#define RTNH_SPACE(len)	RTNH_ALIGN(RTNH_LENGTH(len)) -#define RTNH_DATA(rtnh)   ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) - -/* RTM_CACHEINFO */ - -struct rta_cacheinfo { -	__u32	rta_clntref; -	__u32	rta_lastuse; -	__s32	rta_expires; -	__u32	rta_error; -	__u32	rta_used; - -#define RTNETLINK_HAVE_PEERINFO 1 -	__u32	rta_id; -	__u32	rta_ts; -	__u32	rta_tsage; -}; - -/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */ - -enum { -	RTAX_UNSPEC, -#define RTAX_UNSPEC RTAX_UNSPEC -	RTAX_LOCK, -#define RTAX_LOCK RTAX_LOCK -	RTAX_MTU, -#define RTAX_MTU RTAX_MTU -	RTAX_WINDOW, -#define RTAX_WINDOW RTAX_WINDOW -	RTAX_RTT, -#define RTAX_RTT RTAX_RTT -	RTAX_RTTVAR, -#define RTAX_RTTVAR RTAX_RTTVAR -	RTAX_SSTHRESH, -#define RTAX_SSTHRESH RTAX_SSTHRESH -	RTAX_CWND, -#define RTAX_CWND RTAX_CWND -	RTAX_ADVMSS, -#define RTAX_ADVMSS RTAX_ADVMSS -	RTAX_REORDERING, -#define RTAX_REORDERING RTAX_REORDERING -	RTAX_HOPLIMIT, -#define RTAX_HOPLIMIT RTAX_HOPLIMIT -	RTAX_INITCWND, -#define RTAX_INITCWND RTAX_INITCWND -	RTAX_FEATURES, -#define RTAX_FEATURES RTAX_FEATURES -	RTAX_RTO_MIN, -#define RTAX_RTO_MIN RTAX_RTO_MIN -	RTAX_INITRWND, -#define RTAX_INITRWND RTAX_INITRWND -	__RTAX_MAX -}; - -#define RTAX_MAX (__RTAX_MAX - 1) - -#define RTAX_FEATURE_ECN	0x00000001 -#define RTAX_FEATURE_SACK	0x00000002 -#define RTAX_FEATURE_TIMESTAMP	0x00000004 -#define RTAX_FEATURE_ALLFRAG	0x00000008 - -struct rta_session { -	__u8	proto; -	__u8	pad1; -	__u16	pad2; - -	union { -		struct { -			__u16	sport; -			__u16	dport; -		} ports; - -		struct { -			__u8	type; -			__u8	code; -			__u16	ident; -		} icmpt; - -		__u32		spi; -	} u; -}; - -/**** - *		General form of address family dependent message. - ****/ - -struct rtgenmsg { -	unsigned char		rtgen_family; -}; - -/***************************************************************** - *		Link layer specific messages. - ****/ - -/* struct ifinfomsg - * passes link level specific information, not dependent - * on network protocol. - */ - -struct ifinfomsg { -	unsigned char	ifi_family; -	unsigned char	__ifi_pad; -	unsigned short	ifi_type;		/* ARPHRD_* */ -	int		ifi_index;		/* Link index	*/ -	unsigned	ifi_flags;		/* IFF_* flags	*/ -	unsigned	ifi_change;		/* IFF_* change mask */ -}; - -/******************************************************************** - *		prefix information  - ****/ - -struct prefixmsg { -	unsigned char	prefix_family; -	unsigned char	prefix_pad1; -	unsigned short	prefix_pad2; -	int		prefix_ifindex; -	unsigned char	prefix_type; -	unsigned char	prefix_len; -	unsigned char	prefix_flags; -	unsigned char	prefix_pad3; -}; - -enum  -{ -	PREFIX_UNSPEC, -	PREFIX_ADDRESS, -	PREFIX_CACHEINFO, -	__PREFIX_MAX -}; - -#define PREFIX_MAX	(__PREFIX_MAX - 1) - -struct prefix_cacheinfo { -	__u32	preferred_time; -	__u32	valid_time; -}; - - -/***************************************************************** - *		Traffic control messages. - ****/ - -struct tcmsg { -	unsigned char	tcm_family; -	unsigned char	tcm__pad1; -	unsigned short	tcm__pad2; -	int		tcm_ifindex; -	__u32		tcm_handle; -	__u32		tcm_parent; -	__u32		tcm_info; -}; - -enum { -	TCA_UNSPEC, -	TCA_KIND, -	TCA_OPTIONS, -	TCA_STATS, -	TCA_XSTATS, -	TCA_RATE, -	TCA_FCNT, -	TCA_STATS2, -	TCA_STAB, -	__TCA_MAX -}; - -#define TCA_MAX (__TCA_MAX - 1) - -#define TCA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) -#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) - -/******************************************************************** - *		Neighbor Discovery userland options - ****/ - -struct nduseroptmsg { -	unsigned char	nduseropt_family; -	unsigned char	nduseropt_pad1; -	unsigned short	nduseropt_opts_len;	/* Total length of options */ -	int		nduseropt_ifindex; -	__u8		nduseropt_icmp_type; -	__u8		nduseropt_icmp_code; -	unsigned short	nduseropt_pad2; -	unsigned int	nduseropt_pad3; -	/* Followed by one or more ND options */ -}; - -enum { -	NDUSEROPT_UNSPEC, -	NDUSEROPT_SRCADDR, -	__NDUSEROPT_MAX -}; - -#define NDUSEROPT_MAX	(__NDUSEROPT_MAX - 1) - -#ifndef __KERNEL__ -/* RTnetlink multicast groups - backwards compatibility for userspace */ -#define RTMGRP_LINK		1 -#define RTMGRP_NOTIFY		2 -#define RTMGRP_NEIGH		4 -#define RTMGRP_TC		8 - -#define RTMGRP_IPV4_IFADDR	0x10 -#define RTMGRP_IPV4_MROUTE	0x20 -#define RTMGRP_IPV4_ROUTE	0x40 -#define RTMGRP_IPV4_RULE	0x80 - -#define RTMGRP_IPV6_IFADDR	0x100 -#define RTMGRP_IPV6_MROUTE	0x200 -#define RTMGRP_IPV6_ROUTE	0x400 -#define RTMGRP_IPV6_IFINFO	0x800 - -#define RTMGRP_DECnet_IFADDR    0x1000 -#define RTMGRP_DECnet_ROUTE     0x4000 - -#define RTMGRP_IPV6_PREFIX	0x20000 -#endif - -/* RTnetlink multicast groups */ -enum rtnetlink_groups { -	RTNLGRP_NONE, -#define RTNLGRP_NONE		RTNLGRP_NONE -	RTNLGRP_LINK, -#define RTNLGRP_LINK		RTNLGRP_LINK -	RTNLGRP_NOTIFY, -#define RTNLGRP_NOTIFY		RTNLGRP_NOTIFY -	RTNLGRP_NEIGH, -#define RTNLGRP_NEIGH		RTNLGRP_NEIGH -	RTNLGRP_TC, -#define RTNLGRP_TC		RTNLGRP_TC -	RTNLGRP_IPV4_IFADDR, -#define RTNLGRP_IPV4_IFADDR	RTNLGRP_IPV4_IFADDR -	RTNLGRP_IPV4_MROUTE, -#define	RTNLGRP_IPV4_MROUTE	RTNLGRP_IPV4_MROUTE -	RTNLGRP_IPV4_ROUTE, -#define RTNLGRP_IPV4_ROUTE	RTNLGRP_IPV4_ROUTE -	RTNLGRP_IPV4_RULE, -#define RTNLGRP_IPV4_RULE	RTNLGRP_IPV4_RULE -	RTNLGRP_IPV6_IFADDR, -#define RTNLGRP_IPV6_IFADDR	RTNLGRP_IPV6_IFADDR -	RTNLGRP_IPV6_MROUTE, -#define RTNLGRP_IPV6_MROUTE	RTNLGRP_IPV6_MROUTE -	RTNLGRP_IPV6_ROUTE, -#define RTNLGRP_IPV6_ROUTE	RTNLGRP_IPV6_ROUTE -	RTNLGRP_IPV6_IFINFO, -#define RTNLGRP_IPV6_IFINFO	RTNLGRP_IPV6_IFINFO -	RTNLGRP_DECnet_IFADDR, -#define RTNLGRP_DECnet_IFADDR	RTNLGRP_DECnet_IFADDR -	RTNLGRP_NOP2, -	RTNLGRP_DECnet_ROUTE, -#define RTNLGRP_DECnet_ROUTE	RTNLGRP_DECnet_ROUTE -	RTNLGRP_DECnet_RULE, -#define RTNLGRP_DECnet_RULE	RTNLGRP_DECnet_RULE -	RTNLGRP_NOP4, -	RTNLGRP_IPV6_PREFIX, -#define RTNLGRP_IPV6_PREFIX	RTNLGRP_IPV6_PREFIX -	RTNLGRP_IPV6_RULE, -#define RTNLGRP_IPV6_RULE	RTNLGRP_IPV6_RULE -	RTNLGRP_ND_USEROPT, -#define RTNLGRP_ND_USEROPT	RTNLGRP_ND_USEROPT -	RTNLGRP_PHONET_IFADDR, -#define RTNLGRP_PHONET_IFADDR	RTNLGRP_PHONET_IFADDR -	RTNLGRP_PHONET_ROUTE, -#define RTNLGRP_PHONET_ROUTE	RTNLGRP_PHONET_ROUTE -	RTNLGRP_DCB, -#define RTNLGRP_DCB		RTNLGRP_DCB -	__RTNLGRP_MAX -}; -#define RTNLGRP_MAX	(__RTNLGRP_MAX - 1) - -/* TC action piece */ -struct tcamsg { -	unsigned char	tca_family; -	unsigned char	tca__pad1; -	unsigned short	tca__pad2; -}; -#define TA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg)))) -#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) -#define TCA_ACT_TAB 1 /* attr type must be >=1 */	 -#define TCAA_MAX 1 - -/* New extended info filters for IFLA_EXT_MASK */ -#define RTEXT_FILTER_VF		(1 << 0) - -/* End of information exported to user level */ - -#ifdef __KERNEL__  #include <linux/mutex.h>  #include <linux/netdevice.h> +#include <uapi/linux/rtnetlink.h>  extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo);  extern int rtnl_unicast(struct sk_buff *skb, struct net *net, u32 pid); @@ -675,7 +69,4 @@ extern int ndo_dflt_fdb_dump(struct sk_buff *skb,  			     struct netlink_callback *cb,  			     struct net_device *dev,  			     int idx); -#endif /* __KERNEL__ */ - -  #endif	/* __LINUX_RTNETLINK_H */ diff --git a/include/linux/scc.h b/include/linux/scc.h index 3495bd953cc..c5a00496267 100644 --- a/include/linux/scc.h +++ b/include/linux/scc.h @@ -1,175 +1,9 @@  /* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */ -  #ifndef	_SCC_H  #define	_SCC_H +#include <uapi/linux/scc.h> -/* selection of hardware types */ - -#define PA0HZP		0x00	/* hardware type for PA0HZP SCC card and compatible */ -#define EAGLE		0x01    /* hardware type for EAGLE card */ -#define PC100		0x02	/* hardware type for PC100 card */ -#define PRIMUS		0x04	/* hardware type for PRIMUS-PC (DG9BL) card */ -#define DRSI		0x08	/* hardware type for DRSI PC*Packet card */ -#define BAYCOM		0x10	/* hardware type for BayCom (U)SCC */ - -/* DEV ioctl() commands */ - -enum SCC_ioctl_cmds { -	SIOCSCCRESERVED = SIOCDEVPRIVATE, -	SIOCSCCCFG, -	SIOCSCCINI, -	SIOCSCCCHANINI, -	SIOCSCCSMEM, -	SIOCSCCGKISS, -	SIOCSCCSKISS, -	SIOCSCCGSTAT, -	SIOCSCCCAL -}; - -/* Device parameter control (from WAMPES) */ - -enum L1_params { -	PARAM_DATA, -	PARAM_TXDELAY, -	PARAM_PERSIST, -	PARAM_SLOTTIME, -	PARAM_TXTAIL, -	PARAM_FULLDUP, -	PARAM_SOFTDCD,		/* was: PARAM_HW */ -	PARAM_MUTE,		/* ??? */ -	PARAM_DTR, -	PARAM_RTS, -	PARAM_SPEED, -	PARAM_ENDDELAY,		/* ??? */ -	PARAM_GROUP, -	PARAM_IDLE, -	PARAM_MIN, -	PARAM_MAXKEY, -	PARAM_WAIT, -	PARAM_MAXDEFER, -	PARAM_TX, -	PARAM_HWEVENT = 31, -	PARAM_RETURN = 255	/* reset kiss mode */ -}; - -/* fulldup parameter */ - -enum FULLDUP_modes { -	KISS_DUPLEX_HALF,	/* normal CSMA operation */ -	KISS_DUPLEX_FULL,	/* fullduplex, key down trx after transmission */ -	KISS_DUPLEX_LINK,	/* fullduplex, key down trx after 'idletime' sec */ -	KISS_DUPLEX_OPTIMA	/* fullduplex, let the protocol layer control the hw */ -}; - -/* misc. parameters */ - -#define TIMER_OFF	65535U	/* to switch off timers */ -#define NO_SUCH_PARAM	65534U	/* param not implemented */ - -/* HWEVENT parameter */ - -enum HWEVENT_opts { -	HWEV_DCD_ON, -	HWEV_DCD_OFF, -	HWEV_ALL_SENT -}; - -/* channel grouping */ - -#define RXGROUP		0100	/* if set, only tx when all channels clear */ -#define TXGROUP		0200	/* if set, don't transmit simultaneously */ - -/* Tx/Rx clock sources */ - -enum CLOCK_sources { -	CLK_DPLL,	/* normal halfduplex operation */ -	CLK_EXTERNAL,	/* external clocking (G3RUH/DF9IC modems) */ -	CLK_DIVIDER,	/* Rx = DPLL, Tx = divider (fullduplex with */ -			/* modems without clock regeneration */ -	CLK_BRG		/* experimental fullduplex mode with DPLL/BRG for */ -			/* MODEMs without clock recovery */ -}; - -/* Tx state */ - -enum TX_state { -	TXS_IDLE,	/* Transmitter off, no data pending */ -	TXS_BUSY,	/* waiting for permission to send / tailtime */ -	TXS_ACTIVE,	/* Transmitter on, sending data */ -	TXS_NEWFRAME,	/* reset CRC and send (next) frame */ -	TXS_IDLE2,	/* Transmitter on, no data pending */ -	TXS_WAIT,	/* Waiting for Mintime to expire */ -	TXS_TIMEOUT	/* We had a transmission timeout */ -}; - -typedef unsigned long io_port;	/* type definition for an 'io port address' */ - -/* SCC statistical information */ - -struct scc_stat { -        long rxints;            /* Receiver interrupts */ -        long txints;            /* Transmitter interrupts */ -        long exints;            /* External/status interrupts */ -        long spints;            /* Special receiver interrupts */ - -        long txframes;          /* Packets sent */ -        long rxframes;          /* Number of Frames Actually Received */ -        long rxerrs;            /* CRC Errors */ -        long txerrs;		/* KISS errors */ -         -	unsigned int nospace;	/* "Out of buffers" */ -	unsigned int rx_over;	/* Receiver Overruns */ -	unsigned int tx_under;	/* Transmitter Underruns */ - -	unsigned int tx_state;	/* Transmitter state */ -	int tx_queued;		/* tx frames enqueued */ - -	unsigned int maxqueue;	/* allocated tx_buffers */ -	unsigned int bufsize;	/* used buffersize */ -}; - -struct scc_modem { -	long speed;		/* Line speed, bps */ -	char clocksrc;		/* 0 = DPLL, 1 = external, 2 = divider */ -	char nrz;		/* NRZ instead of NRZI */	 -}; - -struct scc_kiss_cmd { -	int  	 command;	/* one of the KISS-Commands defined above */ -	unsigned param;		/* KISS-Param */ -}; - -struct scc_hw_config { -	io_port data_a;		/* data port channel A */ -	io_port ctrl_a;		/* control port channel A */ -	io_port data_b;		/* data port channel B */ -	io_port ctrl_b;		/* control port channel B */ -	io_port vector_latch;	/* INTACK-Latch (#) */ -	io_port	special;	/* special function port */ - -	int	irq;		/* irq */ -	long	clock;		/* clock */ -	char	option;		/* command for function port */ - -	char brand;		/* hardware type */ -	char escc;		/* use ext. features of a 8580/85180/85280 */ -}; - -/* (#) only one INTACK latch allowed. */ - - -struct scc_mem_config { -	unsigned int dummy; -	unsigned int bufsize; -}; - -struct scc_calibrate { -	unsigned int time; -	unsigned char pattern; -}; - -#ifdef __KERNEL__  enum {TX_OFF, TX_ON};	/* command for scc_key_trx() */ @@ -248,5 +82,4 @@ struct scc_channel {  	spinlock_t	lock;		/* Channel guard lock */  }; -#endif /* defined(__KERNEL__) */  #endif /* defined(_SCC_H) */ diff --git a/include/linux/sched.h b/include/linux/sched.h index a83ca5816ec..0dd42a02df2 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1,48 +1,8 @@  #ifndef _LINUX_SCHED_H  #define _LINUX_SCHED_H -/* - * cloning flags: - */ -#define CSIGNAL		0x000000ff	/* signal mask to be sent at exit */ -#define CLONE_VM	0x00000100	/* set if VM shared between processes */ -#define CLONE_FS	0x00000200	/* set if fs info shared between processes */ -#define CLONE_FILES	0x00000400	/* set if open files shared between processes */ -#define CLONE_SIGHAND	0x00000800	/* set if signal handlers and blocked signals shared */ -#define CLONE_PTRACE	0x00002000	/* set if we want to let tracing continue on the child too */ -#define CLONE_VFORK	0x00004000	/* set if the parent wants the child to wake it up on mm_release */ -#define CLONE_PARENT	0x00008000	/* set if we want to have the same parent as the cloner */ -#define CLONE_THREAD	0x00010000	/* Same thread group? */ -#define CLONE_NEWNS	0x00020000	/* New namespace group? */ -#define CLONE_SYSVSEM	0x00040000	/* share system V SEM_UNDO semantics */ -#define CLONE_SETTLS	0x00080000	/* create a new TLS for the child */ -#define CLONE_PARENT_SETTID	0x00100000	/* set the TID in the parent */ -#define CLONE_CHILD_CLEARTID	0x00200000	/* clear the TID in the child */ -#define CLONE_DETACHED		0x00400000	/* Unused, ignored */ -#define CLONE_UNTRACED		0x00800000	/* set if the tracing process can't force CLONE_PTRACE on this clone */ -#define CLONE_CHILD_SETTID	0x01000000	/* set the TID in the child */ -/* 0x02000000 was previously the unused CLONE_STOPPED (Start in stopped state) -   and is now available for re-use. */ -#define CLONE_NEWUTS		0x04000000	/* New utsname group? */ -#define CLONE_NEWIPC		0x08000000	/* New ipcs */ -#define CLONE_NEWUSER		0x10000000	/* New user namespace */ -#define CLONE_NEWPID		0x20000000	/* New pid namespace */ -#define CLONE_NEWNET		0x40000000	/* New network namespace */ -#define CLONE_IO		0x80000000	/* Clone io context */ - -/* - * Scheduling policies - */ -#define SCHED_NORMAL		0 -#define SCHED_FIFO		1 -#define SCHED_RR		2 -#define SCHED_BATCH		3 -/* SCHED_ISO: reserved but not implemented yet */ -#define SCHED_IDLE		5 -/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ -#define SCHED_RESET_ON_FORK     0x40000000 +#include <uapi/linux/sched.h> -#ifdef __KERNEL__  struct sched_param {  	int sched_priority; @@ -2828,6 +2788,4 @@ static inline unsigned long rlimit_max(unsigned int limit)  	return task_rlimit_max(current, limit);  } -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h index fb3c5a8fef3..005bf3e38db 100644 --- a/include/linux/screen_info.h +++ b/include/linux/screen_info.h @@ -1,76 +1,8 @@  #ifndef _SCREEN_INFO_H  #define _SCREEN_INFO_H -#include <linux/types.h> +#include <uapi/linux/screen_info.h> -/* - * These are set up by the setup-routine at boot-time: - */ - -struct screen_info { -	__u8  orig_x;		/* 0x00 */ -	__u8  orig_y;		/* 0x01 */ -	__u16 ext_mem_k;	/* 0x02 */ -	__u16 orig_video_page;	/* 0x04 */ -	__u8  orig_video_mode;	/* 0x06 */ -	__u8  orig_video_cols;	/* 0x07 */ -	__u8  flags;		/* 0x08 */ -	__u8  unused2;		/* 0x09 */ -	__u16 orig_video_ega_bx;/* 0x0a */ -	__u16 unused3;		/* 0x0c */ -	__u8  orig_video_lines;	/* 0x0e */ -	__u8  orig_video_isVGA;	/* 0x0f */ -	__u16 orig_video_points;/* 0x10 */ - -	/* VESA graphic mode -- linear frame buffer */ -	__u16 lfb_width;	/* 0x12 */ -	__u16 lfb_height;	/* 0x14 */ -	__u16 lfb_depth;	/* 0x16 */ -	__u32 lfb_base;		/* 0x18 */ -	__u32 lfb_size;		/* 0x1c */ -	__u16 cl_magic, cl_offset; /* 0x20 */ -	__u16 lfb_linelength;	/* 0x24 */ -	__u8  red_size;		/* 0x26 */ -	__u8  red_pos;		/* 0x27 */ -	__u8  green_size;	/* 0x28 */ -	__u8  green_pos;	/* 0x29 */ -	__u8  blue_size;	/* 0x2a */ -	__u8  blue_pos;		/* 0x2b */ -	__u8  rsvd_size;	/* 0x2c */ -	__u8  rsvd_pos;		/* 0x2d */ -	__u16 vesapm_seg;	/* 0x2e */ -	__u16 vesapm_off;	/* 0x30 */ -	__u16 pages;		/* 0x32 */ -	__u16 vesa_attributes;	/* 0x34 */ -	__u32 capabilities;     /* 0x36 */ -	__u8  _reserved[6];	/* 0x3a */ -} __attribute__((packed)); - -#define VIDEO_TYPE_MDA		0x10	/* Monochrome Text Display	*/ -#define VIDEO_TYPE_CGA		0x11	/* CGA Display 			*/ -#define VIDEO_TYPE_EGAM		0x20	/* EGA/VGA in Monochrome Mode	*/ -#define VIDEO_TYPE_EGAC		0x21	/* EGA in Color Mode		*/ -#define VIDEO_TYPE_VGAC		0x22	/* VGA+ in Color Mode		*/ -#define VIDEO_TYPE_VLFB		0x23	/* VESA VGA in graphic mode	*/ - -#define VIDEO_TYPE_PICA_S3	0x30	/* ACER PICA-61 local S3 video	*/ -#define VIDEO_TYPE_MIPS_G364	0x31    /* MIPS Magnum 4000 G364 video  */ -#define VIDEO_TYPE_SGI          0x33    /* Various SGI graphics hardware */ - -#define VIDEO_TYPE_TGAC		0x40	/* DEC TGA */ - -#define VIDEO_TYPE_SUN          0x50    /* Sun frame buffer. */ -#define VIDEO_TYPE_SUNPCI       0x51    /* Sun PCI based frame buffer. */ - -#define VIDEO_TYPE_PMAC		0x60	/* PowerMacintosh frame buffer. */ - -#define VIDEO_TYPE_EFI		0x70	/* EFI graphic mode		*/ - -#define VIDEO_FLAGS_NOCURSOR	(1 << 0) /* The video mode has no cursor set */ - -#define VIDEO_CAPABILITY_SKIP_QUIRKS	(1 << 0) - -#ifdef __KERNEL__  extern struct screen_info screen_info;  #define ORIG_X			(screen_info.orig_x) @@ -81,6 +13,4 @@ extern struct screen_info screen_info;  #define ORIG_VIDEO_LINES	(screen_info.orig_video_lines)  #define ORIG_VIDEO_ISVGA	(screen_info.orig_video_isVGA)  #define ORIG_VIDEO_POINTS       (screen_info.orig_video_points) -#endif /* __KERNEL__ */ -  #endif /* _SCREEN_INFO_H */ diff --git a/include/linux/sdla.h b/include/linux/sdla.h index 9995c7fc3f6..fe7a967d7de 100644 --- a/include/linux/sdla.h +++ b/include/linux/sdla.h @@ -19,100 +19,11 @@   *		as published by the Free Software Foundation; either version   *		2 of the License, or (at your option) any later version.   */ -  #ifndef SDLA_H  #define SDLA_H -/* adapter type */ -#define SDLA_TYPES -#define SDLA_S502A			5020 -#define SDLA_S502E			5021 -#define SDLA_S503			5030 -#define SDLA_S507			5070 -#define SDLA_S508			5080 -#define SDLA_S509			5090 -#define SDLA_UNKNOWN			-1 - -/* port selection flags for the S508 */ -#define SDLA_S508_PORT_V35		0x00 -#define SDLA_S508_PORT_RS232		0x02 - -/* Z80 CPU speeds */ -#define SDLA_CPU_3M			0x00 -#define SDLA_CPU_5M			0x01 -#define SDLA_CPU_7M			0x02 -#define SDLA_CPU_8M			0x03 -#define SDLA_CPU_10M			0x04 -#define SDLA_CPU_16M			0x05 -#define SDLA_CPU_12M			0x06 - -/* some private IOCTLs */ -#define SDLA_IDENTIFY			(FRAD_LAST_IOCTL + 1) -#define SDLA_CPUSPEED			(FRAD_LAST_IOCTL + 2) -#define SDLA_PROTOCOL			(FRAD_LAST_IOCTL + 3) - -#define SDLA_CLEARMEM			(FRAD_LAST_IOCTL + 4) -#define SDLA_WRITEMEM			(FRAD_LAST_IOCTL + 5) -#define SDLA_READMEM			(FRAD_LAST_IOCTL + 6) - -struct sdla_mem { -   int  addr; -   int  len; -   void __user *data; -}; - -#define SDLA_START			(FRAD_LAST_IOCTL + 7) -#define SDLA_STOP			(FRAD_LAST_IOCTL + 8) +#include <uapi/linux/sdla.h> -/* some offsets in the Z80's memory space */ -#define SDLA_NMIADDR			0x0000 -#define SDLA_CONF_ADDR			0x0010 -#define SDLA_S502A_NMIADDR		0x0066 -#define SDLA_CODE_BASEADDR		0x0100 -#define SDLA_WINDOW_SIZE		0x2000 -#define SDLA_ADDR_MASK			0x1FFF - -/* largest handleable block of data */ -#define SDLA_MAX_DATA			4080 -#define SDLA_MAX_MTU			4072	/* MAX_DATA - sizeof(fradhdr) */ -#define SDLA_MAX_DLCI			24 - -/* this should be the same as frad_conf */ -struct sdla_conf { -   short station; -   short config; -   short kbaud; -   short clocking; -   short max_frm; -   short T391; -   short T392; -   short N391; -   short N392; -   short N393; -   short CIR_fwd; -   short Bc_fwd; -   short Be_fwd; -   short CIR_bwd; -   short Bc_bwd; -   short Be_bwd; -}; - -/* this should be the same as dlci_conf */ -struct sdla_dlci_conf { -   short config; -   short CIR_fwd; -   short Bc_fwd; -   short Be_fwd; -   short CIR_bwd; -   short Bc_bwd; -   short Be_bwd;  -   short Tc_fwd; -   short Tc_bwd; -   short Tf_max; -   short Tb_max; -}; - -#ifdef __KERNEL__  /* important Z80 window addresses */  #define SDLA_CONTROL_WND		0xE000 @@ -331,5 +242,3 @@ struct buf_entry {  } __attribute__((packed));  #endif - -#endif diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h index 84f6320da50..6f19cfd1840 100644 --- a/include/linux/seccomp.h +++ b/include/linux/seccomp.h @@ -1,50 +1,8 @@  #ifndef _LINUX_SECCOMP_H  #define _LINUX_SECCOMP_H -#include <linux/compiler.h> -#include <linux/types.h> +#include <uapi/linux/seccomp.h> - -/* Valid values for seccomp.mode and prctl(PR_SET_SECCOMP, <mode>) */ -#define SECCOMP_MODE_DISABLED	0 /* seccomp is not in use. */ -#define SECCOMP_MODE_STRICT	1 /* uses hard-coded filter. */ -#define SECCOMP_MODE_FILTER	2 /* uses user-supplied filter. */ - -/* - * All BPF programs must return a 32-bit value. - * The bottom 16-bits are for optional return data. - * The upper 16-bits are ordered from least permissive values to most. - * - * The ordering ensures that a min_t() over composed return values always - * selects the least permissive choice. - */ -#define SECCOMP_RET_KILL	0x00000000U /* kill the task immediately */ -#define SECCOMP_RET_TRAP	0x00030000U /* disallow and force a SIGSYS */ -#define SECCOMP_RET_ERRNO	0x00050000U /* returns an errno */ -#define SECCOMP_RET_TRACE	0x7ff00000U /* pass to a tracer or disallow */ -#define SECCOMP_RET_ALLOW	0x7fff0000U /* allow */ - -/* Masks for the return value sections. */ -#define SECCOMP_RET_ACTION	0x7fff0000U -#define SECCOMP_RET_DATA	0x0000ffffU - -/** - * struct seccomp_data - the format the BPF program executes over. - * @nr: the system call number - * @arch: indicates system call convention as an AUDIT_ARCH_* value - *        as defined in <linux/audit.h>. - * @instruction_pointer: at the time of the system call. - * @args: up to 6 system call arguments always stored as 64-bit values - *        regardless of the architecture. - */ -struct seccomp_data { -	int nr; -	__u32 arch; -	__u64 instruction_pointer; -	__u64 args[6]; -}; - -#ifdef __KERNEL__  #ifdef CONFIG_SECCOMP  #include <linux/thread_info.h> @@ -129,5 +87,4 @@ static inline void get_seccomp_filter(struct task_struct *tsk)  	return;  }  #endif /* CONFIG_SECCOMP_FILTER */ -#endif /* __KERNEL__ */  #endif /* _LINUX_SECCOMP_H */ diff --git a/include/linux/securebits.h b/include/linux/securebits.h index 33406174cbe..da1b33b33af 100644 --- a/include/linux/securebits.h +++ b/include/linux/securebits.h @@ -1,54 +1,7 @@  #ifndef _LINUX_SECUREBITS_H  #define _LINUX_SECUREBITS_H 1 -/* Each securesetting is implemented using two bits. One bit specifies -   whether the setting is on or off. The other bit specify whether the -   setting is locked or not. A setting which is locked cannot be -   changed from user-level. */ -#define issecure_mask(X)	(1 << (X)) -#ifdef __KERNEL__ -#define issecure(X)		(issecure_mask(X) & current_cred_xxx(securebits)) -#endif - -#define SECUREBITS_DEFAULT 0x00000000 - -/* When set UID 0 has no special privileges. When unset, we support -   inheritance of root-permissions and suid-root executable under -   compatibility mode. We raise the effective and inheritable bitmasks -   *of the executable file* if the effective uid of the new process is -   0. If the real uid is 0, we raise the effective (legacy) bit of the -   executable file. */ -#define SECURE_NOROOT			0 -#define SECURE_NOROOT_LOCKED		1  /* make bit-0 immutable */ - -#define SECBIT_NOROOT		(issecure_mask(SECURE_NOROOT)) -#define SECBIT_NOROOT_LOCKED	(issecure_mask(SECURE_NOROOT_LOCKED)) - -/* When set, setuid to/from uid 0 does not trigger capability-"fixup". -   When unset, to provide compatiblility with old programs relying on -   set*uid to gain/lose privilege, transitions to/from uid 0 cause -   capabilities to be gained/lost. */ -#define SECURE_NO_SETUID_FIXUP		2 -#define SECURE_NO_SETUID_FIXUP_LOCKED	3  /* make bit-2 immutable */ - -#define SECBIT_NO_SETUID_FIXUP	(issecure_mask(SECURE_NO_SETUID_FIXUP)) -#define SECBIT_NO_SETUID_FIXUP_LOCKED \ -			(issecure_mask(SECURE_NO_SETUID_FIXUP_LOCKED)) - -/* When set, a process can retain its capabilities even after -   transitioning to a non-root user (the set-uid fixup suppressed by -   bit 2). Bit-4 is cleared when a process calls exec(); setting both -   bit 4 and 5 will create a barrier through exec that no exec()'d -   child can use this feature again. */ -#define SECURE_KEEP_CAPS		4 -#define SECURE_KEEP_CAPS_LOCKED		5  /* make bit-4 immutable */ - -#define SECBIT_KEEP_CAPS	(issecure_mask(SECURE_KEEP_CAPS)) -#define SECBIT_KEEP_CAPS_LOCKED (issecure_mask(SECURE_KEEP_CAPS_LOCKED)) - -#define SECURE_ALL_BITS		(issecure_mask(SECURE_NOROOT) | \ -				 issecure_mask(SECURE_NO_SETUID_FIXUP) | \ -				 issecure_mask(SECURE_KEEP_CAPS)) -#define SECURE_ALL_LOCKS	(SECURE_ALL_BITS << 1) +#include <uapi/linux/securebits.h> +#define issecure(X)		(issecure_mask(X) & current_cred_xxx(securebits))  #endif /* !_LINUX_SECUREBITS_H */ diff --git a/include/linux/selinux_netlink.h b/include/linux/selinux_netlink.h deleted file mode 100644 index d239797785c..00000000000 --- a/include/linux/selinux_netlink.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Netlink event notifications for SELinux. - * - * Author: James Morris <jmorris@redhat.com> - * - * Copyright (C) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - */ -#ifndef _LINUX_SELINUX_NETLINK_H -#define _LINUX_SELINUX_NETLINK_H - -#include <linux/types.h> - -/* Message types. */ -#define SELNL_MSG_BASE 0x10 -enum { -	SELNL_MSG_SETENFORCE = SELNL_MSG_BASE, -	SELNL_MSG_POLICYLOAD, -	SELNL_MSG_MAX -}; - -#ifndef __KERNEL__ -/* Multicast groups - backwards compatiblility for userspace */ -#define SELNL_GRP_NONE		0x00000000 -#define SELNL_GRP_AVC		0x00000001	/* AVC notifications */ -#define SELNL_GRP_ALL		0xffffffff -#endif - -enum selinux_nlgroups { -	SELNLGRP_NONE, -#define SELNLGRP_NONE	SELNLGRP_NONE -	SELNLGRP_AVC, -#define SELNLGRP_AVC	SELNLGRP_AVC -	__SELNLGRP_MAX -}; -#define SELNLGRP_MAX	(__SELNLGRP_MAX - 1) - -/* Message structures */ -struct selnl_msg_setenforce { -	__s32		val; -}; - -struct selnl_msg_policyload { -	__u32	seqno; -}; - -#endif /* _LINUX_SELINUX_NETLINK_H */ diff --git a/include/linux/sem.h b/include/linux/sem.h index 10d6b226afc..53d42650b19 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h @@ -1,85 +1,10 @@  #ifndef _LINUX_SEM_H  #define _LINUX_SEM_H -#include <linux/ipc.h> - -/* semop flags */ -#define SEM_UNDO        0x1000  /* undo the operation on exit */ - -/* semctl Command Definitions. */ -#define GETPID  11       /* get sempid */ -#define GETVAL  12       /* get semval */ -#define GETALL  13       /* get all semval's */ -#define GETNCNT 14       /* get semncnt */ -#define GETZCNT 15       /* get semzcnt */ -#define SETVAL  16       /* set semval */ -#define SETALL  17       /* set all semval's */ - -/* ipcs ctl cmds */ -#define SEM_STAT 18 -#define SEM_INFO 19 - -/* Obsolete, used only for backwards compatibility and libc5 compiles */ -struct semid_ds { -	struct ipc_perm	sem_perm;		/* permissions .. see ipc.h */ -	__kernel_time_t	sem_otime;		/* last semop time */ -	__kernel_time_t	sem_ctime;		/* last change time */ -	struct sem	*sem_base;		/* ptr to first semaphore in array */ -	struct sem_queue *sem_pending;		/* pending operations to be processed */ -	struct sem_queue **sem_pending_last;	/* last pending operation */ -	struct sem_undo	*undo;			/* undo requests on this array */ -	unsigned short	sem_nsems;		/* no. of semaphores in array */ -}; - -/* Include the definition of semid64_ds */ -#include <asm/sembuf.h> - -/* semop system calls takes an array of these. */ -struct sembuf { -	unsigned short  sem_num;	/* semaphore index in array */ -	short		sem_op;		/* semaphore operation */ -	short		sem_flg;	/* operation flags */ -}; - -/* arg for semctl system calls. */ -union semun { -	int val;			/* value for SETVAL */ -	struct semid_ds __user *buf;	/* buffer for IPC_STAT & IPC_SET */ -	unsigned short __user *array;	/* array for GETALL & SETALL */ -	struct seminfo __user *__buf;	/* buffer for IPC_INFO */ -	void __user *__pad; -}; - -struct  seminfo { -	int semmap; -	int semmni; -	int semmns; -	int semmnu; -	int semmsl; -	int semopm; -	int semume; -	int semusz; -	int semvmx; -	int semaem; -}; - -#define SEMMNI  128             /* <= IPCMNI  max # of semaphore identifiers */ -#define SEMMSL  250             /* <= 8 000 max num of semaphores per id */ -#define SEMMNS  (SEMMNI*SEMMSL) /* <= INT_MAX max # of semaphores in system */ -#define SEMOPM  32	        /* <= 1 000 max num of ops per semop call */ -#define SEMVMX  32767           /* <= 32767 semaphore maximum value */ -#define SEMAEM  SEMVMX          /* adjust on exit max value */ - -/* unused */ -#define SEMUME  SEMOPM          /* max num of undo entries per process */ -#define SEMMNU  SEMMNS          /* num of undo structures system wide */ -#define SEMMAP  SEMMNS          /* # of entries in semaphore map */ -#define SEMUSZ  20		/* sizeof struct sem_undo */ - -#ifdef __KERNEL__  #include <linux/atomic.h>  #include <linux/rcupdate.h>  #include <linux/cache.h> +#include <uapi/linux/sem.h>  struct task_struct; @@ -122,6 +47,4 @@ static inline void exit_sem(struct task_struct *tsk)  }  #endif -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SEM_H */ diff --git a/include/linux/serial.h b/include/linux/serial.h index 861e51de476..0916107c77f 100644 --- a/include/linux/serial.h +++ b/include/linux/serial.h @@ -6,16 +6,11 @@   * Redistribution of this file is permitted under the terms of the GNU    * Public License (GPL)   */ -  #ifndef _LINUX_SERIAL_H  #define _LINUX_SERIAL_H -#include <linux/types.h> - -#include <linux/tty_flags.h> - -#ifdef __KERNEL__  #include <asm/page.h> +#include <uapi/linux/serial.h>  /* @@ -33,118 +28,6 @@ struct async_icount {   */  #define SERIAL_XMIT_SIZE PAGE_SIZE -#endif - -struct serial_struct { -	int	type; -	int	line; -	unsigned int	port; -	int	irq; -	int	flags; -	int	xmit_fifo_size; -	int	custom_divisor; -	int	baud_base; -	unsigned short	close_delay; -	char	io_type; -	char	reserved_char[1]; -	int	hub6; -	unsigned short	closing_wait; /* time to wait before closing */ -	unsigned short	closing_wait2; /* no longer used... */ -	unsigned char	*iomem_base; -	unsigned short	iomem_reg_shift; -	unsigned int	port_high; -	unsigned long	iomap_base;	/* cookie passed into ioremap */ -}; - -/* - * For the close wait times, 0 means wait forever for serial port to - * flush its output.  65535 means don't wait at all. - */ -#define ASYNC_CLOSING_WAIT_INF	0 -#define ASYNC_CLOSING_WAIT_NONE	65535 - -/* - * These are the supported serial types. - */ -#define PORT_UNKNOWN	0 -#define PORT_8250	1 -#define PORT_16450	2 -#define PORT_16550	3 -#define PORT_16550A	4 -#define PORT_CIRRUS     5	/* usurped by cyclades.c */ -#define PORT_16650	6 -#define PORT_16650V2	7 -#define PORT_16750	8 -#define PORT_STARTECH	9	/* usurped by cyclades.c */ -#define PORT_16C950	10	/* Oxford Semiconductor */ -#define PORT_16654	11 -#define PORT_16850	12 -#define PORT_RSA	13	/* RSA-DV II/S card */ -#define PORT_MAX	13 - -#define SERIAL_IO_PORT	0 -#define SERIAL_IO_HUB6	1 -#define SERIAL_IO_MEM	2 - -#define UART_CLEAR_FIFO		0x01 -#define UART_USE_FIFO		0x02 -#define UART_STARTECH		0x04 -#define UART_NATSEMI		0x08 - - -/* - * Multiport serial configuration structure --- external structure - */ -struct serial_multiport_struct { -	int		irq; -	int		port1; -	unsigned char	mask1, match1; -	int		port2; -	unsigned char	mask2, match2; -	int		port3; -	unsigned char	mask3, match3; -	int		port4; -	unsigned char	mask4, match4; -	int		port_monitor; -	int	reserved[32]; -}; - -/* - * Serial input interrupt line counters -- external structure - * Four lines can interrupt: CTS, DSR, RI, DCD - */ -struct serial_icounter_struct { -	int cts, dsr, rng, dcd; -	int rx, tx; -	int frame, overrun, parity, brk; -	int buf_overrun; -	int reserved[9]; -}; - -/* - * Serial interface for controlling RS485 settings on chips with suitable - * support. Set with TIOCSRS485 and get with TIOCGRS485 if supported by your - * platform. The set function returns the new state, with any unsupported bits - * reverted appropriately. - */ - -struct serial_rs485 { -	__u32	flags;			/* RS485 feature flags */ -#define SER_RS485_ENABLED		(1 << 0)	/* If enabled */ -#define SER_RS485_RTS_ON_SEND		(1 << 1)	/* Logical level for -							   RTS pin when -							   sending */ -#define SER_RS485_RTS_AFTER_SEND	(1 << 2)	/* Logical level for -							   RTS pin after sent*/ -#define SER_RS485_RX_DURING_TX		(1 << 4) -	__u32	delay_rts_before_send;	/* Delay before send (milliseconds) */ -	__u32	delay_rts_after_send;	/* Delay after send (milliseconds) */ -	__u32	padding[5];		/* Memory is cheap, new structs -					   are a royal PITA .. */ -}; - -#ifdef __KERNEL__  #include <linux/compiler.h> -#endif /* __KERNEL__ */  #endif /* _LINUX_SERIAL_H */ diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index f9b22ec7a9f..3c430228d23 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -20,202 +20,6 @@  #ifndef LINUX_SERIAL_CORE_H  #define LINUX_SERIAL_CORE_H -#include <linux/serial.h> - -/* - * The type definitions.  These are from Ted Ts'o's serial.h - */ -#define PORT_UNKNOWN	0 -#define PORT_8250	1 -#define PORT_16450	2 -#define PORT_16550	3 -#define PORT_16550A	4 -#define PORT_CIRRUS	5 -#define PORT_16650	6 -#define PORT_16650V2	7 -#define PORT_16750	8 -#define PORT_STARTECH	9 -#define PORT_16C950	10 -#define PORT_16654	11 -#define PORT_16850	12 -#define PORT_RSA	13 -#define PORT_NS16550A	14 -#define PORT_XSCALE	15 -#define PORT_RM9000	16	/* PMC-Sierra RM9xxx internal UART */ -#define PORT_OCTEON	17	/* Cavium OCTEON internal UART */ -#define PORT_AR7	18	/* Texas Instruments AR7 internal UART */ -#define PORT_U6_16550A	19	/* ST-Ericsson U6xxx internal UART */ -#define PORT_TEGRA	20	/* NVIDIA Tegra internal UART */ -#define PORT_XR17D15X	21	/* Exar XR17D15x UART */ -#define PORT_LPC3220	22	/* NXP LPC32xx SoC "Standard" UART */ -#define PORT_8250_CIR	23	/* CIR infrared port, has its own driver */ -#define PORT_MAX_8250	23	/* max port ID */ - -/* - * ARM specific type numbers.  These are not currently guaranteed - * to be implemented, and will change in the future.  These are - * separate so any additions to the old serial.c that occur before - * we are merged can be easily merged here. - */ -#define PORT_PXA	31 -#define PORT_AMBA	32 -#define PORT_CLPS711X	33 -#define PORT_SA1100	34 -#define PORT_UART00	35 -#define PORT_21285	37 - -/* Sparc type numbers.  */ -#define PORT_SUNZILOG	38 -#define PORT_SUNSAB	39 - -/* DEC */ -#define PORT_DZ		46 -#define PORT_ZS		47 - -/* Parisc type numbers. */ -#define PORT_MUX	48 - -/* Atmel AT91 / AT32 SoC */ -#define PORT_ATMEL	49 - -/* Macintosh Zilog type numbers */ -#define PORT_MAC_ZILOG	50	/* m68k : not yet implemented */ -#define PORT_PMAC_ZILOG	51 - -/* SH-SCI */ -#define PORT_SCI	52 -#define PORT_SCIF	53 -#define PORT_IRDA	54 - -/* Samsung S3C2410 SoC and derivatives thereof */ -#define PORT_S3C2410    55 - -/* SGI IP22 aka Indy / Challenge S / Indigo 2 */ -#define PORT_IP22ZILOG	56 - -/* Sharp LH7a40x -- an ARM9 SoC series */ -#define PORT_LH7A40X	57 - -/* PPC CPM type number */ -#define PORT_CPM        58 - -/* MPC52xx (and MPC512x) type numbers */ -#define PORT_MPC52xx	59 - -/* IBM icom */ -#define PORT_ICOM	60 - -/* Samsung S3C2440 SoC */ -#define PORT_S3C2440	61 - -/* Motorola i.MX SoC */ -#define PORT_IMX	62 - -/* Marvell MPSC */ -#define PORT_MPSC	63 - -/* TXX9 type number */ -#define PORT_TXX9	64 - -/* NEC VR4100 series SIU/DSIU */ -#define PORT_VR41XX_SIU		65 -#define PORT_VR41XX_DSIU	66 - -/* Samsung S3C2400 SoC */ -#define PORT_S3C2400	67 - -/* M32R SIO */ -#define PORT_M32R_SIO	68 - -/*Digi jsm */ -#define PORT_JSM        69 - -#define PORT_PNX8XXX	70 - -/* Hilscher netx */ -#define PORT_NETX	71 - -/* SUN4V Hypervisor Console */ -#define PORT_SUNHV	72 - -#define PORT_S3C2412	73 - -/* Xilinx uartlite */ -#define PORT_UARTLITE	74 - -/* Blackfin bf5xx */ -#define PORT_BFIN	75 - -/* Micrel KS8695 */ -#define PORT_KS8695	76 - -/* Broadcom SB1250, etc. SOC */ -#define PORT_SB1250_DUART	77 - -/* Freescale ColdFire */ -#define PORT_MCF	78 - -/* Blackfin SPORT */ -#define PORT_BFIN_SPORT		79 - -/* MN10300 on-chip UART numbers */ -#define PORT_MN10300		80 -#define PORT_MN10300_CTS	81 - -#define PORT_SC26XX	82 - -/* SH-SCI */ -#define PORT_SCIFA	83 - -#define PORT_S3C6400	84 - -/* NWPSERIAL */ -#define PORT_NWPSERIAL	85 - -/* MAX3100 */ -#define PORT_MAX3100    86 - -/* Timberdale UART */ -#define PORT_TIMBUART	87 - -/* Qualcomm MSM SoCs */ -#define PORT_MSM	88 - -/* BCM63xx family SoCs */ -#define PORT_BCM63XX	89 - -/* Aeroflex Gaisler GRLIB APBUART */ -#define PORT_APBUART    90 - -/* Altera UARTs */ -#define PORT_ALTERA_JTAGUART	91 -#define PORT_ALTERA_UART	92 - -/* SH-SCI */ -#define PORT_SCIFB	93 - -/* MAX310X */ -#define PORT_MAX310X	94 - -/* High Speed UART for Medfield */ -#define PORT_MFD	95 - -/* TI OMAP-UART */ -#define PORT_OMAP	96 - -/* VIA VT8500 SoC */ -#define PORT_VT8500	97 - -/* Xilinx PSS UART */ -#define PORT_XUARTPS	98 - -/* Atheros AR933X SoC */ -#define PORT_AR933X	99 - -/* Energy Micro efm32 SoC */ -#define PORT_EFMUART   100 - -#ifdef __KERNEL__  #include <linux/compiler.h>  #include <linux/interrupt.h> @@ -226,6 +30,7 @@  #include <linux/mutex.h>  #include <linux/sysrq.h>  #include <linux/pps_kernel.h> +#include <uapi/linux/serial_core.h>  struct uart_port;  struct serial_struct; @@ -562,6 +367,4 @@ static inline int uart_handle_break(struct uart_port *port)  					 (cflag) & CRTSCTS || \  					 !((cflag) & CLOCAL)) -#endif -  #endif /* LINUX_SERIAL_CORE_H */ diff --git a/include/linux/serial_reg.h b/include/linux/serial_reg.h deleted file mode 100644 index 5ed325e88a8..00000000000 --- a/include/linux/serial_reg.h +++ /dev/null @@ -1,371 +0,0 @@ -/* - * include/linux/serial_reg.h - * - * Copyright (C) 1992, 1994 by Theodore Ts'o. - *  - * Redistribution of this file is permitted under the terms of the GNU  - * Public License (GPL) - *  - * These are the UART port assignments, expressed as offsets from the base - * register.  These assignments should hold for any serial port based on - * a 8250, 16450, or 16550(A). - */ - -#ifndef _LINUX_SERIAL_REG_H -#define _LINUX_SERIAL_REG_H - -/* - * DLAB=0 - */ -#define UART_RX		0	/* In:  Receive buffer */ -#define UART_TX		0	/* Out: Transmit buffer */ - -#define UART_IER	1	/* Out: Interrupt Enable Register */ -#define UART_IER_MSI		0x08 /* Enable Modem status interrupt */ -#define UART_IER_RLSI		0x04 /* Enable receiver line status interrupt */ -#define UART_IER_THRI		0x02 /* Enable Transmitter holding register int. */ -#define UART_IER_RDI		0x01 /* Enable receiver data interrupt */ -/* - * Sleep mode for ST16650 and TI16750.  For the ST16650, EFR[4]=1 - */ -#define UART_IERX_SLEEP		0x10 /* Enable sleep mode */ - -#define UART_IIR	2	/* In:  Interrupt ID Register */ -#define UART_IIR_NO_INT		0x01 /* No interrupts pending */ -#define UART_IIR_ID		0x06 /* Mask for the interrupt ID */ -#define UART_IIR_MSI		0x00 /* Modem status interrupt */ -#define UART_IIR_THRI		0x02 /* Transmitter holding register empty */ -#define UART_IIR_RDI		0x04 /* Receiver data interrupt */ -#define UART_IIR_RLSI		0x06 /* Receiver line status interrupt */ - -#define UART_IIR_BUSY		0x07 /* DesignWare APB Busy Detect */ - -#define UART_IIR_RX_TIMEOUT	0x0c /* OMAP RX Timeout interrupt */ -#define UART_IIR_XOFF		0x10 /* OMAP XOFF/Special Character */ -#define UART_IIR_CTS_RTS_DSR	0x20 /* OMAP CTS/RTS/DSR Change */ - -#define UART_FCR	2	/* Out: FIFO Control Register */ -#define UART_FCR_ENABLE_FIFO	0x01 /* Enable the FIFO */ -#define UART_FCR_CLEAR_RCVR	0x02 /* Clear the RCVR FIFO */ -#define UART_FCR_CLEAR_XMIT	0x04 /* Clear the XMIT FIFO */ -#define UART_FCR_DMA_SELECT	0x08 /* For DMA applications */ -/* - * Note: The FIFO trigger levels are chip specific: - *	RX:76 = 00  01  10  11	TX:54 = 00  01  10  11 - * PC16550D:	 1   4   8  14		xx  xx  xx  xx - * TI16C550A:	 1   4   8  14          xx  xx  xx  xx - * TI16C550C:	 1   4   8  14          xx  xx  xx  xx - * ST16C550:	 1   4   8  14		xx  xx  xx  xx - * ST16C650:	 8  16  24  28		16   8  24  30	PORT_16650V2 - * NS16C552:	 1   4   8  14		xx  xx  xx  xx - * ST16C654:	 8  16  56  60		 8  16  32  56	PORT_16654 - * TI16C750:	 1  16  32  56		xx  xx  xx  xx	PORT_16750 - * TI16C752:	 8  16  56  60		 8  16  32  56 - * Tegra:	 1   4   8  14		16   8   4   1	PORT_TEGRA - */ -#define UART_FCR_R_TRIG_00	0x00 -#define UART_FCR_R_TRIG_01	0x40 -#define UART_FCR_R_TRIG_10	0x80 -#define UART_FCR_R_TRIG_11	0xc0 -#define UART_FCR_T_TRIG_00	0x00 -#define UART_FCR_T_TRIG_01	0x10 -#define UART_FCR_T_TRIG_10	0x20 -#define UART_FCR_T_TRIG_11	0x30 - -#define UART_FCR_TRIGGER_MASK	0xC0 /* Mask for the FIFO trigger range */ -#define UART_FCR_TRIGGER_1	0x00 /* Mask for trigger set at 1 */ -#define UART_FCR_TRIGGER_4	0x40 /* Mask for trigger set at 4 */ -#define UART_FCR_TRIGGER_8	0x80 /* Mask for trigger set at 8 */ -#define UART_FCR_TRIGGER_14	0xC0 /* Mask for trigger set at 14 */ -/* 16650 definitions */ -#define UART_FCR6_R_TRIGGER_8	0x00 /* Mask for receive trigger set at 1 */ -#define UART_FCR6_R_TRIGGER_16	0x40 /* Mask for receive trigger set at 4 */ -#define UART_FCR6_R_TRIGGER_24  0x80 /* Mask for receive trigger set at 8 */ -#define UART_FCR6_R_TRIGGER_28	0xC0 /* Mask for receive trigger set at 14 */ -#define UART_FCR6_T_TRIGGER_16	0x00 /* Mask for transmit trigger set at 16 */ -#define UART_FCR6_T_TRIGGER_8	0x10 /* Mask for transmit trigger set at 8 */ -#define UART_FCR6_T_TRIGGER_24  0x20 /* Mask for transmit trigger set at 24 */ -#define UART_FCR6_T_TRIGGER_30	0x30 /* Mask for transmit trigger set at 30 */ -#define UART_FCR7_64BYTE	0x20 /* Go into 64 byte mode (TI16C750) */ - -#define UART_LCR	3	/* Out: Line Control Register */ -/* - * Note: if the word length is 5 bits (UART_LCR_WLEN5), then setting  - * UART_LCR_STOP will select 1.5 stop bits, not 2 stop bits. - */ -#define UART_LCR_DLAB		0x80 /* Divisor latch access bit */ -#define UART_LCR_SBC		0x40 /* Set break control */ -#define UART_LCR_SPAR		0x20 /* Stick parity (?) */ -#define UART_LCR_EPAR		0x10 /* Even parity select */ -#define UART_LCR_PARITY		0x08 /* Parity Enable */ -#define UART_LCR_STOP		0x04 /* Stop bits: 0=1 bit, 1=2 bits */ -#define UART_LCR_WLEN5		0x00 /* Wordlength: 5 bits */ -#define UART_LCR_WLEN6		0x01 /* Wordlength: 6 bits */ -#define UART_LCR_WLEN7		0x02 /* Wordlength: 7 bits */ -#define UART_LCR_WLEN8		0x03 /* Wordlength: 8 bits */ - -/* - * Access to some registers depends on register access / configuration - * mode. - */ -#define UART_LCR_CONF_MODE_A	UART_LCR_DLAB	/* Configutation mode A */ -#define UART_LCR_CONF_MODE_B	0xBF		/* Configutation mode B */ - -#define UART_MCR	4	/* Out: Modem Control Register */ -#define UART_MCR_CLKSEL		0x80 /* Divide clock by 4 (TI16C752, EFR[4]=1) */ -#define UART_MCR_TCRTLR		0x40 /* Access TCR/TLR (TI16C752, EFR[4]=1) */ -#define UART_MCR_XONANY		0x20 /* Enable Xon Any (TI16C752, EFR[4]=1) */ -#define UART_MCR_AFE		0x20 /* Enable auto-RTS/CTS (TI16C550C/TI16C750) */ -#define UART_MCR_LOOP		0x10 /* Enable loopback test mode */ -#define UART_MCR_OUT2		0x08 /* Out2 complement */ -#define UART_MCR_OUT1		0x04 /* Out1 complement */ -#define UART_MCR_RTS		0x02 /* RTS complement */ -#define UART_MCR_DTR		0x01 /* DTR complement */ - -#define UART_LSR	5	/* In:  Line Status Register */ -#define UART_LSR_FIFOE		0x80 /* Fifo error */ -#define UART_LSR_TEMT		0x40 /* Transmitter empty */ -#define UART_LSR_THRE		0x20 /* Transmit-hold-register empty */ -#define UART_LSR_BI		0x10 /* Break interrupt indicator */ -#define UART_LSR_FE		0x08 /* Frame error indicator */ -#define UART_LSR_PE		0x04 /* Parity error indicator */ -#define UART_LSR_OE		0x02 /* Overrun error indicator */ -#define UART_LSR_DR		0x01 /* Receiver data ready */ -#define UART_LSR_BRK_ERROR_BITS	0x1E /* BI, FE, PE, OE bits */ - -#define UART_MSR	6	/* In:  Modem Status Register */ -#define UART_MSR_DCD		0x80 /* Data Carrier Detect */ -#define UART_MSR_RI		0x40 /* Ring Indicator */ -#define UART_MSR_DSR		0x20 /* Data Set Ready */ -#define UART_MSR_CTS		0x10 /* Clear to Send */ -#define UART_MSR_DDCD		0x08 /* Delta DCD */ -#define UART_MSR_TERI		0x04 /* Trailing edge ring indicator */ -#define UART_MSR_DDSR		0x02 /* Delta DSR */ -#define UART_MSR_DCTS		0x01 /* Delta CTS */ -#define UART_MSR_ANY_DELTA	0x0F /* Any of the delta bits! */ - -#define UART_SCR	7	/* I/O: Scratch Register */ - -/* - * DLAB=1 - */ -#define UART_DLL	0	/* Out: Divisor Latch Low */ -#define UART_DLM	1	/* Out: Divisor Latch High */ - -/* - * LCR=0xBF (or DLAB=1 for 16C660) - */ -#define UART_EFR	2	/* I/O: Extended Features Register */ -#define UART_XR_EFR	9	/* I/O: Extended Features Register (XR17D15x) */ -#define UART_EFR_CTS		0x80 /* CTS flow control */ -#define UART_EFR_RTS		0x40 /* RTS flow control */ -#define UART_EFR_SCD		0x20 /* Special character detect */ -#define UART_EFR_ECB		0x10 /* Enhanced control bit */ -/* - * the low four bits control software flow control - */ - -/* - * LCR=0xBF, TI16C752, ST16650, ST16650A, ST16654 - */ -#define UART_XON1	4	/* I/O: Xon character 1 */ -#define UART_XON2	5	/* I/O: Xon character 2 */ -#define UART_XOFF1	6	/* I/O: Xoff character 1 */ -#define UART_XOFF2	7	/* I/O: Xoff character 2 */ - -/* - * EFR[4]=1 MCR[6]=1, TI16C752 - */ -#define UART_TI752_TCR	6	/* I/O: transmission control register */ -#define UART_TI752_TLR	7	/* I/O: trigger level register */ - -/* - * LCR=0xBF, XR16C85x - */ -#define UART_TRG	0	/* FCTR bit 7 selects Rx or Tx -				 * In: Fifo count -				 * Out: Fifo custom trigger levels */ -/* - * These are the definitions for the Programmable Trigger Register - */ -#define UART_TRG_1		0x01 -#define UART_TRG_4		0x04 -#define UART_TRG_8		0x08 -#define UART_TRG_16		0x10 -#define UART_TRG_32		0x20 -#define UART_TRG_64		0x40 -#define UART_TRG_96		0x60 -#define UART_TRG_120		0x78 -#define UART_TRG_128		0x80 - -#define UART_FCTR	1	/* Feature Control Register */ -#define UART_FCTR_RTS_NODELAY	0x00  /* RTS flow control delay */ -#define UART_FCTR_RTS_4DELAY	0x01 -#define UART_FCTR_RTS_6DELAY	0x02 -#define UART_FCTR_RTS_8DELAY	0x03 -#define UART_FCTR_IRDA		0x04  /* IrDa data encode select */ -#define UART_FCTR_TX_INT	0x08  /* Tx interrupt type select */ -#define UART_FCTR_TRGA		0x00  /* Tx/Rx 550 trigger table select */ -#define UART_FCTR_TRGB		0x10  /* Tx/Rx 650 trigger table select */ -#define UART_FCTR_TRGC		0x20  /* Tx/Rx 654 trigger table select */ -#define UART_FCTR_TRGD		0x30  /* Tx/Rx 850 programmable trigger select */ -#define UART_FCTR_SCR_SWAP	0x40  /* Scratch pad register swap */ -#define UART_FCTR_RX		0x00  /* Programmable trigger mode select */ -#define UART_FCTR_TX		0x80  /* Programmable trigger mode select */ - -/* - * LCR=0xBF, FCTR[6]=1 - */ -#define UART_EMSR	7	/* Extended Mode Select Register */ -#define UART_EMSR_FIFO_COUNT	0x01  /* Rx/Tx select */ -#define UART_EMSR_ALT_COUNT	0x02  /* Alternating count select */ - -/* - * The Intel XScale on-chip UARTs define these bits - */ -#define UART_IER_DMAE	0x80	/* DMA Requests Enable */ -#define UART_IER_UUE	0x40	/* UART Unit Enable */ -#define UART_IER_NRZE	0x20	/* NRZ coding Enable */ -#define UART_IER_RTOIE	0x10	/* Receiver Time Out Interrupt Enable */ - -#define UART_IIR_TOD	0x08	/* Character Timeout Indication Detected */ - -#define UART_FCR_PXAR1	0x00	/* receive FIFO threshold = 1 */ -#define UART_FCR_PXAR8	0x40	/* receive FIFO threshold = 8 */ -#define UART_FCR_PXAR16	0x80	/* receive FIFO threshold = 16 */ -#define UART_FCR_PXAR32	0xc0	/* receive FIFO threshold = 32 */ - -/* - * Intel MID on-chip HSU (High Speed UART) defined bits - */ -#define UART_FCR_HSU_64_1B	0x00	/* receive FIFO treshold = 1 */ -#define UART_FCR_HSU_64_16B	0x40	/* receive FIFO treshold = 16 */ -#define UART_FCR_HSU_64_32B	0x80	/* receive FIFO treshold = 32 */ -#define UART_FCR_HSU_64_56B	0xc0	/* receive FIFO treshold = 56 */ - -#define UART_FCR_HSU_16_1B	0x00	/* receive FIFO treshold = 1 */ -#define UART_FCR_HSU_16_4B	0x40	/* receive FIFO treshold = 4 */ -#define UART_FCR_HSU_16_8B	0x80	/* receive FIFO treshold = 8 */ -#define UART_FCR_HSU_16_14B	0xc0	/* receive FIFO treshold = 14 */ - -#define UART_FCR_HSU_64B_FIFO	0x20	/* chose 64 bytes FIFO */ -#define UART_FCR_HSU_16B_FIFO	0x00	/* chose 16 bytes FIFO */ - -#define UART_FCR_HALF_EMPT_TXI	0x00	/* trigger TX_EMPT IRQ for half empty */ -#define UART_FCR_FULL_EMPT_TXI	0x08	/* trigger TX_EMPT IRQ for full empty */ - -/* - * These register definitions are for the 16C950 - */ -#define UART_ASR	0x01	/* Additional Status Register */ -#define UART_RFL	0x03	/* Receiver FIFO level */ -#define UART_TFL 	0x04	/* Transmitter FIFO level */ -#define UART_ICR	0x05	/* Index Control Register */ - -/* The 16950 ICR registers */ -#define UART_ACR	0x00	/* Additional Control Register */ -#define UART_CPR	0x01	/* Clock Prescalar Register */ -#define UART_TCR	0x02	/* Times Clock Register */ -#define UART_CKS	0x03	/* Clock Select Register */ -#define UART_TTL	0x04	/* Transmitter Interrupt Trigger Level */ -#define UART_RTL	0x05	/* Receiver Interrupt Trigger Level */ -#define UART_FCL	0x06	/* Flow Control Level Lower */ -#define UART_FCH	0x07	/* Flow Control Level Higher */ -#define UART_ID1	0x08	/* ID #1 */ -#define UART_ID2	0x09	/* ID #2 */ -#define UART_ID3	0x0A	/* ID #3 */ -#define UART_REV	0x0B	/* Revision */ -#define UART_CSR	0x0C	/* Channel Software Reset */ -#define UART_NMR	0x0D	/* Nine-bit Mode Register */ -#define UART_CTR	0xFF - -/* - * The 16C950 Additional Control Register - */ -#define UART_ACR_RXDIS	0x01	/* Receiver disable */ -#define UART_ACR_TXDIS	0x02	/* Transmitter disable */ -#define UART_ACR_DSRFC	0x04	/* DSR Flow Control */ -#define UART_ACR_TLENB	0x20	/* 950 trigger levels enable */ -#define UART_ACR_ICRRD	0x40	/* ICR Read enable */ -#define UART_ACR_ASREN	0x80	/* Additional status enable */ - - - -/* - * These definitions are for the RSA-DV II/S card, from - * - * Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - */ - -#define UART_RSA_BASE (-8) - -#define UART_RSA_MSR ((UART_RSA_BASE) + 0) /* I/O: Mode Select Register */ - -#define UART_RSA_MSR_SWAP (1 << 0) /* Swap low/high 8 bytes in I/O port addr */ -#define UART_RSA_MSR_FIFO (1 << 2) /* Enable the external FIFO */ -#define UART_RSA_MSR_FLOW (1 << 3) /* Enable the auto RTS/CTS flow control */ -#define UART_RSA_MSR_ITYP (1 << 4) /* Level (1) / Edge triger (0) */ - -#define UART_RSA_IER ((UART_RSA_BASE) + 1) /* I/O: Interrupt Enable Register */ - -#define UART_RSA_IER_Rx_FIFO_H (1 << 0) /* Enable Rx FIFO half full int. */ -#define UART_RSA_IER_Tx_FIFO_H (1 << 1) /* Enable Tx FIFO half full int. */ -#define UART_RSA_IER_Tx_FIFO_E (1 << 2) /* Enable Tx FIFO empty int. */ -#define UART_RSA_IER_Rx_TOUT (1 << 3) /* Enable char receive timeout int */ -#define UART_RSA_IER_TIMER (1 << 4) /* Enable timer interrupt */ - -#define UART_RSA_SRR ((UART_RSA_BASE) + 2) /* IN: Status Read Register */ - -#define UART_RSA_SRR_Tx_FIFO_NEMP (1 << 0) /* Tx FIFO is not empty (1) */ -#define UART_RSA_SRR_Tx_FIFO_NHFL (1 << 1) /* Tx FIFO is not half full (1) */ -#define UART_RSA_SRR_Tx_FIFO_NFUL (1 << 2) /* Tx FIFO is not full (1) */ -#define UART_RSA_SRR_Rx_FIFO_NEMP (1 << 3) /* Rx FIFO is not empty (1) */ -#define UART_RSA_SRR_Rx_FIFO_NHFL (1 << 4) /* Rx FIFO is not half full (1) */ -#define UART_RSA_SRR_Rx_FIFO_NFUL (1 << 5) /* Rx FIFO is not full (1) */ -#define UART_RSA_SRR_Rx_TOUT (1 << 6) /* Character reception timeout occurred (1) */ -#define UART_RSA_SRR_TIMER (1 << 7) /* Timer interrupt occurred */ - -#define UART_RSA_FRR ((UART_RSA_BASE) + 2) /* OUT: FIFO Reset Register */ - -#define UART_RSA_TIVSR ((UART_RSA_BASE) + 3) /* I/O: Timer Interval Value Set Register */ - -#define UART_RSA_TCR ((UART_RSA_BASE) + 4) /* OUT: Timer Control Register */ - -#define UART_RSA_TCR_SWITCH (1 << 0) /* Timer on */ - -/* - * The RSA DSV/II board has two fixed clock frequencies.  One is the - * standard rate, and the other is 8 times faster. - */ -#define SERIAL_RSA_BAUD_BASE (921600) -#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8) - -/* - * Extra serial register definitions for the internal UARTs - * in TI OMAP processors. - */ -#define UART_OMAP_MDR1		0x08	/* Mode definition register */ -#define UART_OMAP_MDR2		0x09	/* Mode definition register 2 */ -#define UART_OMAP_SCR		0x10	/* Supplementary control register */ -#define UART_OMAP_SSR		0x11	/* Supplementary status register */ -#define UART_OMAP_EBLR		0x12	/* BOF length register */ -#define UART_OMAP_OSC_12M_SEL	0x13	/* OMAP1510 12MHz osc select */ -#define UART_OMAP_MVER		0x14	/* Module version register */ -#define UART_OMAP_SYSC		0x15	/* System configuration register */ -#define UART_OMAP_SYSS		0x16	/* System status register */ -#define UART_OMAP_WER		0x17	/* Wake-up enable register */ - -/* - * These are the definitions for the MDR1 register - */ -#define UART_OMAP_MDR1_16X_MODE		0x00	/* UART 16x mode */ -#define UART_OMAP_MDR1_SIR_MODE		0x01	/* SIR mode */ -#define UART_OMAP_MDR1_16X_ABAUD_MODE	0x02	/* UART 16x auto-baud */ -#define UART_OMAP_MDR1_13X_MODE		0x03	/* UART 13x mode */ -#define UART_OMAP_MDR1_MIR_MODE		0x04	/* MIR mode */ -#define UART_OMAP_MDR1_FIR_MODE		0x05	/* FIR mode */ -#define UART_OMAP_MDR1_CIR_MODE		0x06	/* CIR mode */ -#define UART_OMAP_MDR1_DISABLE		0x07	/* Disable (default state) */ - -#endif /* _LINUX_SERIAL_REG_H */ - diff --git a/include/linux/serio.h b/include/linux/serio.h index 6d6cfd3e94a..36aac733840 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h @@ -1,6 +1,3 @@ -#ifndef _SERIO_H -#define _SERIO_H -  /*   * Copyright (C) 1999-2002 Vojtech Pavlik  * @@ -8,12 +5,9 @@   * under the terms of the GNU General Public License version 2 as published by   * the Free Software Foundation.   */ +#ifndef _SERIO_H +#define _SERIO_H -#include <linux/ioctl.h> - -#define SPIOCSTYPE	_IOW('q', 0x01, unsigned long) - -#ifdef __KERNEL__  #include <linux/types.h>  #include <linux/interrupt.h> @@ -22,6 +16,7 @@  #include <linux/mutex.h>  #include <linux/device.h>  #include <linux/mod_devicetable.h> +#include <uapi/linux/serio.h>  struct serio {  	void *port_data; @@ -152,68 +147,3 @@ static inline void serio_continue_rx(struct serio *serio)  }  #endif - -/* - * bit masks for use in "interrupt" flags (3rd argument) - */ -#define SERIO_TIMEOUT	1 -#define SERIO_PARITY	2 -#define SERIO_FRAME	4 - -/* - * Serio types - */ -#define SERIO_XT	0x00 -#define SERIO_8042	0x01 -#define SERIO_RS232	0x02 -#define SERIO_HIL_MLC	0x03 -#define SERIO_PS_PSTHRU	0x05 -#define SERIO_8042_XL	0x06 - -/* - * Serio protocols - */ -#define SERIO_UNKNOWN	0x00 -#define SERIO_MSC	0x01 -#define SERIO_SUN	0x02 -#define SERIO_MS	0x03 -#define SERIO_MP	0x04 -#define SERIO_MZ	0x05 -#define SERIO_MZP	0x06 -#define SERIO_MZPP	0x07 -#define SERIO_VSXXXAA	0x08 -#define SERIO_SUNKBD	0x10 -#define SERIO_WARRIOR	0x18 -#define SERIO_SPACEORB	0x19 -#define SERIO_MAGELLAN	0x1a -#define SERIO_SPACEBALL	0x1b -#define SERIO_GUNZE	0x1c -#define SERIO_IFORCE	0x1d -#define SERIO_STINGER	0x1e -#define SERIO_NEWTON	0x1f -#define SERIO_STOWAWAY	0x20 -#define SERIO_H3600	0x21 -#define SERIO_PS2SER	0x22 -#define SERIO_TWIDKBD	0x23 -#define SERIO_TWIDJOY	0x24 -#define SERIO_HIL	0x25 -#define SERIO_SNES232	0x26 -#define SERIO_SEMTECH	0x27 -#define SERIO_LKKBD	0x28 -#define SERIO_ELO	0x29 -#define SERIO_MICROTOUCH	0x30 -#define SERIO_PENMOUNT	0x31 -#define SERIO_TOUCHRIGHT	0x32 -#define SERIO_TOUCHWIN	0x33 -#define SERIO_TAOSEVM	0x34 -#define SERIO_FUJITSU	0x35 -#define SERIO_ZHENHUA	0x36 -#define SERIO_INEXIO	0x37 -#define SERIO_TOUCHIT213	0x38 -#define SERIO_W8001	0x39 -#define SERIO_DYNAPRO	0x3a -#define SERIO_HAMPSHIRE	0x3b -#define SERIO_PS2MULT	0x3c -#define SERIO_TSC40	0x3d - -#endif diff --git a/include/linux/shm.h b/include/linux/shm.h index edd086883cc..bcf8a6a3ec0 100644 --- a/include/linux/shm.h +++ b/include/linux/shm.h @@ -1,88 +1,11 @@  #ifndef _LINUX_SHM_H_  #define _LINUX_SHM_H_ -#include <linux/ipc.h> -#include <linux/errno.h> -#ifdef __KERNEL__  #include <asm/page.h> -#else -#include <unistd.h> -#endif - -/* - * SHMMAX, SHMMNI and SHMALL are upper limits are defaults which can - * be increased by sysctl - */ +#include <uapi/linux/shm.h> -#define SHMMAX 0x2000000		 /* max shared seg size (bytes) */ -#define SHMMIN 1			 /* min shared seg size (bytes) */ -#define SHMMNI 4096			 /* max num of segs system wide */ -#ifdef __KERNEL__  #define SHMALL (SHMMAX/PAGE_SIZE*(SHMMNI/16)) /* max shm system wide (pages) */ -#else -#define SHMALL (SHMMAX/getpagesize()*(SHMMNI/16)) -#endif -#define SHMSEG SHMMNI			 /* max shared segs per process */ - -#ifdef __KERNEL__  #include <asm/shmparam.h> -#endif - -/* Obsolete, used only for backwards compatibility and libc5 compiles */ -struct shmid_ds { -	struct ipc_perm		shm_perm;	/* operation perms */ -	int			shm_segsz;	/* size of segment (bytes) */ -	__kernel_time_t		shm_atime;	/* last attach time */ -	__kernel_time_t		shm_dtime;	/* last detach time */ -	__kernel_time_t		shm_ctime;	/* last change time */ -	__kernel_ipc_pid_t	shm_cpid;	/* pid of creator */ -	__kernel_ipc_pid_t	shm_lpid;	/* pid of last operator */ -	unsigned short		shm_nattch;	/* no. of current attaches */ -	unsigned short 		shm_unused;	/* compatibility */ -	void 			*shm_unused2;	/* ditto - used by DIPC */ -	void			*shm_unused3;	/* unused */ -}; - -/* Include the definition of shmid64_ds and shminfo64 */ -#include <asm/shmbuf.h> - -/* permission flag for shmget */ -#define SHM_R		0400	/* or S_IRUGO from <linux/stat.h> */ -#define SHM_W		0200	/* or S_IWUGO from <linux/stat.h> */ - -/* mode for attach */ -#define	SHM_RDONLY	010000	/* read-only access */ -#define	SHM_RND		020000	/* round attach address to SHMLBA boundary */ -#define	SHM_REMAP	040000	/* take-over region on attach */ -#define	SHM_EXEC	0100000	/* execution access */ - -/* super user shmctl commands */ -#define SHM_LOCK 	11 -#define SHM_UNLOCK 	12 - -/* ipcs ctl commands */ -#define SHM_STAT 	13 -#define SHM_INFO 	14 - -/* Obsolete, used only for backwards compatibility */ -struct	shminfo { -	int shmmax; -	int shmmin; -	int shmmni; -	int shmseg; -	int shmall; -}; - -struct shm_info { -	int used_ids; -	unsigned long shm_tot;	/* total allocated shm */ -	unsigned long shm_rss;	/* total resident shm */ -	unsigned long shm_swp;	/* total swapped shm */ -	unsigned long swap_attempts; -	unsigned long swap_successes; -}; - -#ifdef __KERNEL__  struct shmid_kernel /* private to the kernel */  {	  	struct kern_ipc_perm	shm_perm; @@ -127,6 +50,4 @@ static inline void exit_shm(struct task_struct *task)  }  #endif -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SHM_H_ */ diff --git a/include/linux/signal.h b/include/linux/signal.h index 26b424adc84..e19a011b43b 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -1,11 +1,8 @@  #ifndef _LINUX_SIGNAL_H  #define _LINUX_SIGNAL_H -#include <asm/signal.h> -#include <asm/siginfo.h> - -#ifdef __KERNEL__  #include <linux/list.h> +#include <uapi/linux/signal.h>  struct task_struct; @@ -388,6 +385,4 @@ int unhandled_signal(struct task_struct *tsk, int sig);  void signals_init(void); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SIGNAL_H */ diff --git a/include/linux/signalfd.h b/include/linux/signalfd.h index 247399b2979..eadbe227c25 100644 --- a/include/linux/signalfd.h +++ b/include/linux/signalfd.h @@ -4,51 +4,11 @@   *  Copyright (C) 2007  Davide Libenzi <davidel@xmailserver.org>   *   */ -  #ifndef _LINUX_SIGNALFD_H  #define _LINUX_SIGNALFD_H -#include <linux/types.h> -/* For O_CLOEXEC and O_NONBLOCK */ -#include <linux/fcntl.h> - -/* Flags for signalfd4.  */ -#define SFD_CLOEXEC O_CLOEXEC -#define SFD_NONBLOCK O_NONBLOCK - -struct signalfd_siginfo { -	__u32 ssi_signo; -	__s32 ssi_errno; -	__s32 ssi_code; -	__u32 ssi_pid; -	__u32 ssi_uid; -	__s32 ssi_fd; -	__u32 ssi_tid; -	__u32 ssi_band; -	__u32 ssi_overrun; -	__u32 ssi_trapno; -	__s32 ssi_status; -	__s32 ssi_int; -	__u64 ssi_ptr; -	__u64 ssi_utime; -	__u64 ssi_stime; -	__u64 ssi_addr; -	__u16 ssi_addr_lsb; +#include <uapi/linux/signalfd.h> -	/* -	 * Pad strcture to 128 bytes. Remember to update the -	 * pad size when you add new members. We use a fixed -	 * size structure to avoid compatibility problems with -	 * future versions, and we leave extra space for additional -	 * members. We use fixed size members because this strcture -	 * comes out of a read(2) and we really don't want to have -	 * a compat on read(2). -	 */ -	__u8 __pad[46]; -}; - - -#ifdef __KERNEL__  #ifdef CONFIG_SIGNALFD @@ -71,6 +31,4 @@ static inline void signalfd_cleanup(struct sighand_struct *sighand) { }  #endif /* CONFIG_SIGNALFD */ -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SIGNALFD_H */ diff --git a/include/linux/snmp.h b/include/linux/snmp.h deleted file mode 100644 index fdfba235f9f..00000000000 --- a/include/linux/snmp.h +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Definitions for MIBs - * - * Author: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> - */ - -#ifndef _LINUX_SNMP_H -#define _LINUX_SNMP_H - -/* ipstats mib definitions */ -/* - * RFC 1213:  MIB-II - * RFC 2011 (updates 1213):  SNMPv2-MIB-IP - * RFC 2863:  Interfaces Group MIB - * RFC 2465:  IPv6 MIB: General Group - * draft-ietf-ipv6-rfc2011-update-10.txt: MIB for IP: IP Statistics Tables - */ -enum -{ -	IPSTATS_MIB_NUM = 0, -/* frequently written fields in fast path, kept in same cache line */ -	IPSTATS_MIB_INPKTS,			/* InReceives */ -	IPSTATS_MIB_INOCTETS,			/* InOctets */ -	IPSTATS_MIB_INDELIVERS,			/* InDelivers */ -	IPSTATS_MIB_OUTFORWDATAGRAMS,		/* OutForwDatagrams */ -	IPSTATS_MIB_OUTPKTS,			/* OutRequests */ -	IPSTATS_MIB_OUTOCTETS,			/* OutOctets */ -/* other fields */ -	IPSTATS_MIB_INHDRERRORS,		/* InHdrErrors */ -	IPSTATS_MIB_INTOOBIGERRORS,		/* InTooBigErrors */ -	IPSTATS_MIB_INNOROUTES,			/* InNoRoutes */ -	IPSTATS_MIB_INADDRERRORS,		/* InAddrErrors */ -	IPSTATS_MIB_INUNKNOWNPROTOS,		/* InUnknownProtos */ -	IPSTATS_MIB_INTRUNCATEDPKTS,		/* InTruncatedPkts */ -	IPSTATS_MIB_INDISCARDS,			/* InDiscards */ -	IPSTATS_MIB_OUTDISCARDS,		/* OutDiscards */ -	IPSTATS_MIB_OUTNOROUTES,		/* OutNoRoutes */ -	IPSTATS_MIB_REASMTIMEOUT,		/* ReasmTimeout */ -	IPSTATS_MIB_REASMREQDS,			/* ReasmReqds */ -	IPSTATS_MIB_REASMOKS,			/* ReasmOKs */ -	IPSTATS_MIB_REASMFAILS,			/* ReasmFails */ -	IPSTATS_MIB_FRAGOKS,			/* FragOKs */ -	IPSTATS_MIB_FRAGFAILS,			/* FragFails */ -	IPSTATS_MIB_FRAGCREATES,		/* FragCreates */ -	IPSTATS_MIB_INMCASTPKTS,		/* InMcastPkts */ -	IPSTATS_MIB_OUTMCASTPKTS,		/* OutMcastPkts */ -	IPSTATS_MIB_INBCASTPKTS,		/* InBcastPkts */ -	IPSTATS_MIB_OUTBCASTPKTS,		/* OutBcastPkts */ -	IPSTATS_MIB_INMCASTOCTETS,		/* InMcastOctets */ -	IPSTATS_MIB_OUTMCASTOCTETS,		/* OutMcastOctets */ -	IPSTATS_MIB_INBCASTOCTETS,		/* InBcastOctets */ -	IPSTATS_MIB_OUTBCASTOCTETS,		/* OutBcastOctets */ -	__IPSTATS_MIB_MAX -}; - -/* icmp mib definitions */ -/* - * RFC 1213:  MIB-II ICMP Group - * RFC 2011 (updates 1213):  SNMPv2 MIB for IP: ICMP group - */ -enum -{ -	ICMP_MIB_NUM = 0, -	ICMP_MIB_INMSGS,			/* InMsgs */ -	ICMP_MIB_INERRORS,			/* InErrors */ -	ICMP_MIB_INDESTUNREACHS,		/* InDestUnreachs */ -	ICMP_MIB_INTIMEEXCDS,			/* InTimeExcds */ -	ICMP_MIB_INPARMPROBS,			/* InParmProbs */ -	ICMP_MIB_INSRCQUENCHS,			/* InSrcQuenchs */ -	ICMP_MIB_INREDIRECTS,			/* InRedirects */ -	ICMP_MIB_INECHOS,			/* InEchos */ -	ICMP_MIB_INECHOREPS,			/* InEchoReps */ -	ICMP_MIB_INTIMESTAMPS,			/* InTimestamps */ -	ICMP_MIB_INTIMESTAMPREPS,		/* InTimestampReps */ -	ICMP_MIB_INADDRMASKS,			/* InAddrMasks */ -	ICMP_MIB_INADDRMASKREPS,		/* InAddrMaskReps */ -	ICMP_MIB_OUTMSGS,			/* OutMsgs */ -	ICMP_MIB_OUTERRORS,			/* OutErrors */ -	ICMP_MIB_OUTDESTUNREACHS,		/* OutDestUnreachs */ -	ICMP_MIB_OUTTIMEEXCDS,			/* OutTimeExcds */ -	ICMP_MIB_OUTPARMPROBS,			/* OutParmProbs */ -	ICMP_MIB_OUTSRCQUENCHS,			/* OutSrcQuenchs */ -	ICMP_MIB_OUTREDIRECTS,			/* OutRedirects */ -	ICMP_MIB_OUTECHOS,			/* OutEchos */ -	ICMP_MIB_OUTECHOREPS,			/* OutEchoReps */ -	ICMP_MIB_OUTTIMESTAMPS,			/* OutTimestamps */ -	ICMP_MIB_OUTTIMESTAMPREPS,		/* OutTimestampReps */ -	ICMP_MIB_OUTADDRMASKS,			/* OutAddrMasks */ -	ICMP_MIB_OUTADDRMASKREPS,		/* OutAddrMaskReps */ -	__ICMP_MIB_MAX -}; - -#define __ICMPMSG_MIB_MAX 512	/* Out+In for all 8-bit ICMP types */ - -/* icmp6 mib definitions */ -/* - * RFC 2466:  ICMPv6-MIB - */ -enum -{ -	ICMP6_MIB_NUM = 0, -	ICMP6_MIB_INMSGS,			/* InMsgs */ -	ICMP6_MIB_INERRORS,			/* InErrors */ -	ICMP6_MIB_OUTMSGS,			/* OutMsgs */ -	ICMP6_MIB_OUTERRORS,			/* OutErrors */ -	__ICMP6_MIB_MAX -}; - -#define __ICMP6MSG_MIB_MAX 512 /* Out+In for all 8-bit ICMPv6 types */ - -/* tcp mib definitions */ -/* - * RFC 1213:  MIB-II TCP group - * RFC 2012 (updates 1213):  SNMPv2-MIB-TCP - */ -enum -{ -	TCP_MIB_NUM = 0, -	TCP_MIB_RTOALGORITHM,			/* RtoAlgorithm */ -	TCP_MIB_RTOMIN,				/* RtoMin */ -	TCP_MIB_RTOMAX,				/* RtoMax */ -	TCP_MIB_MAXCONN,			/* MaxConn */ -	TCP_MIB_ACTIVEOPENS,			/* ActiveOpens */ -	TCP_MIB_PASSIVEOPENS,			/* PassiveOpens */ -	TCP_MIB_ATTEMPTFAILS,			/* AttemptFails */ -	TCP_MIB_ESTABRESETS,			/* EstabResets */ -	TCP_MIB_CURRESTAB,			/* CurrEstab */ -	TCP_MIB_INSEGS,				/* InSegs */ -	TCP_MIB_OUTSEGS,			/* OutSegs */ -	TCP_MIB_RETRANSSEGS,			/* RetransSegs */ -	TCP_MIB_INERRS,				/* InErrs */ -	TCP_MIB_OUTRSTS,			/* OutRsts */ -	__TCP_MIB_MAX -}; - -/* udp mib definitions */ -/* - * RFC 1213:  MIB-II UDP group - * RFC 2013 (updates 1213):  SNMPv2-MIB-UDP - */ -enum -{ -	UDP_MIB_NUM = 0, -	UDP_MIB_INDATAGRAMS,			/* InDatagrams */ -	UDP_MIB_NOPORTS,			/* NoPorts */ -	UDP_MIB_INERRORS,			/* InErrors */ -	UDP_MIB_OUTDATAGRAMS,			/* OutDatagrams */ -	UDP_MIB_RCVBUFERRORS,			/* RcvbufErrors */ -	UDP_MIB_SNDBUFERRORS,			/* SndbufErrors */ -	__UDP_MIB_MAX -}; - -/* linux mib definitions */ -enum -{ -	LINUX_MIB_NUM = 0, -	LINUX_MIB_SYNCOOKIESSENT,		/* SyncookiesSent */ -	LINUX_MIB_SYNCOOKIESRECV,		/* SyncookiesRecv */ -	LINUX_MIB_SYNCOOKIESFAILED,		/* SyncookiesFailed */ -	LINUX_MIB_EMBRYONICRSTS,		/* EmbryonicRsts */ -	LINUX_MIB_PRUNECALLED,			/* PruneCalled */ -	LINUX_MIB_RCVPRUNED,			/* RcvPruned */ -	LINUX_MIB_OFOPRUNED,			/* OfoPruned */ -	LINUX_MIB_OUTOFWINDOWICMPS,		/* OutOfWindowIcmps */ -	LINUX_MIB_LOCKDROPPEDICMPS,		/* LockDroppedIcmps */ -	LINUX_MIB_ARPFILTER,			/* ArpFilter */ -	LINUX_MIB_TIMEWAITED,			/* TimeWaited */ -	LINUX_MIB_TIMEWAITRECYCLED,		/* TimeWaitRecycled */ -	LINUX_MIB_TIMEWAITKILLED,		/* TimeWaitKilled */ -	LINUX_MIB_PAWSPASSIVEREJECTED,		/* PAWSPassiveRejected */ -	LINUX_MIB_PAWSACTIVEREJECTED,		/* PAWSActiveRejected */ -	LINUX_MIB_PAWSESTABREJECTED,		/* PAWSEstabRejected */ -	LINUX_MIB_DELAYEDACKS,			/* DelayedACKs */ -	LINUX_MIB_DELAYEDACKLOCKED,		/* DelayedACKLocked */ -	LINUX_MIB_DELAYEDACKLOST,		/* DelayedACKLost */ -	LINUX_MIB_LISTENOVERFLOWS,		/* ListenOverflows */ -	LINUX_MIB_LISTENDROPS,			/* ListenDrops */ -	LINUX_MIB_TCPPREQUEUED,			/* TCPPrequeued */ -	LINUX_MIB_TCPDIRECTCOPYFROMBACKLOG,	/* TCPDirectCopyFromBacklog */ -	LINUX_MIB_TCPDIRECTCOPYFROMPREQUEUE,	/* TCPDirectCopyFromPrequeue */ -	LINUX_MIB_TCPPREQUEUEDROPPED,		/* TCPPrequeueDropped */ -	LINUX_MIB_TCPHPHITS,			/* TCPHPHits */ -	LINUX_MIB_TCPHPHITSTOUSER,		/* TCPHPHitsToUser */ -	LINUX_MIB_TCPPUREACKS,			/* TCPPureAcks */ -	LINUX_MIB_TCPHPACKS,			/* TCPHPAcks */ -	LINUX_MIB_TCPRENORECOVERY,		/* TCPRenoRecovery */ -	LINUX_MIB_TCPSACKRECOVERY,		/* TCPSackRecovery */ -	LINUX_MIB_TCPSACKRENEGING,		/* TCPSACKReneging */ -	LINUX_MIB_TCPFACKREORDER,		/* TCPFACKReorder */ -	LINUX_MIB_TCPSACKREORDER,		/* TCPSACKReorder */ -	LINUX_MIB_TCPRENOREORDER,		/* TCPRenoReorder */ -	LINUX_MIB_TCPTSREORDER,			/* TCPTSReorder */ -	LINUX_MIB_TCPFULLUNDO,			/* TCPFullUndo */ -	LINUX_MIB_TCPPARTIALUNDO,		/* TCPPartialUndo */ -	LINUX_MIB_TCPDSACKUNDO,			/* TCPDSACKUndo */ -	LINUX_MIB_TCPLOSSUNDO,			/* TCPLossUndo */ -	LINUX_MIB_TCPLOSTRETRANSMIT,		/* TCPLostRetransmit */ -	LINUX_MIB_TCPRENOFAILURES,		/* TCPRenoFailures */ -	LINUX_MIB_TCPSACKFAILURES,		/* TCPSackFailures */ -	LINUX_MIB_TCPLOSSFAILURES,		/* TCPLossFailures */ -	LINUX_MIB_TCPFASTRETRANS,		/* TCPFastRetrans */ -	LINUX_MIB_TCPFORWARDRETRANS,		/* TCPForwardRetrans */ -	LINUX_MIB_TCPSLOWSTARTRETRANS,		/* TCPSlowStartRetrans */ -	LINUX_MIB_TCPTIMEOUTS,			/* TCPTimeouts */ -	LINUX_MIB_TCPRENORECOVERYFAIL,		/* TCPRenoRecoveryFail */ -	LINUX_MIB_TCPSACKRECOVERYFAIL,		/* TCPSackRecoveryFail */ -	LINUX_MIB_TCPSCHEDULERFAILED,		/* TCPSchedulerFailed */ -	LINUX_MIB_TCPRCVCOLLAPSED,		/* TCPRcvCollapsed */ -	LINUX_MIB_TCPDSACKOLDSENT,		/* TCPDSACKOldSent */ -	LINUX_MIB_TCPDSACKOFOSENT,		/* TCPDSACKOfoSent */ -	LINUX_MIB_TCPDSACKRECV,			/* TCPDSACKRecv */ -	LINUX_MIB_TCPDSACKOFORECV,		/* TCPDSACKOfoRecv */ -	LINUX_MIB_TCPABORTONDATA,		/* TCPAbortOnData */ -	LINUX_MIB_TCPABORTONCLOSE,		/* TCPAbortOnClose */ -	LINUX_MIB_TCPABORTONMEMORY,		/* TCPAbortOnMemory */ -	LINUX_MIB_TCPABORTONTIMEOUT,		/* TCPAbortOnTimeout */ -	LINUX_MIB_TCPABORTONLINGER,		/* TCPAbortOnLinger */ -	LINUX_MIB_TCPABORTFAILED,		/* TCPAbortFailed */ -	LINUX_MIB_TCPMEMORYPRESSURES,		/* TCPMemoryPressures */ -	LINUX_MIB_TCPSACKDISCARD,		/* TCPSACKDiscard */ -	LINUX_MIB_TCPDSACKIGNOREDOLD,		/* TCPSACKIgnoredOld */ -	LINUX_MIB_TCPDSACKIGNOREDNOUNDO,	/* TCPSACKIgnoredNoUndo */ -	LINUX_MIB_TCPSPURIOUSRTOS,		/* TCPSpuriousRTOs */ -	LINUX_MIB_TCPMD5NOTFOUND,		/* TCPMD5NotFound */ -	LINUX_MIB_TCPMD5UNEXPECTED,		/* TCPMD5Unexpected */ -	LINUX_MIB_SACKSHIFTED, -	LINUX_MIB_SACKMERGED, -	LINUX_MIB_SACKSHIFTFALLBACK, -	LINUX_MIB_TCPBACKLOGDROP, -	LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */ -	LINUX_MIB_TCPDEFERACCEPTDROP, -	LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ -	LINUX_MIB_TCPTIMEWAITOVERFLOW,		/* TCPTimeWaitOverflow */ -	LINUX_MIB_TCPREQQFULLDOCOOKIES,		/* TCPReqQFullDoCookies */ -	LINUX_MIB_TCPREQQFULLDROP,		/* TCPReqQFullDrop */ -	LINUX_MIB_TCPRETRANSFAIL,		/* TCPRetransFail */ -	LINUX_MIB_TCPRCVCOALESCE,		/* TCPRcvCoalesce */ -	LINUX_MIB_TCPOFOQUEUE,			/* TCPOFOQueue */ -	LINUX_MIB_TCPOFODROP,			/* TCPOFODrop */ -	LINUX_MIB_TCPOFOMERGE,			/* TCPOFOMerge */ -	LINUX_MIB_TCPCHALLENGEACK,		/* TCPChallengeACK */ -	LINUX_MIB_TCPSYNCHALLENGE,		/* TCPSYNChallenge */ -	LINUX_MIB_TCPFASTOPENACTIVE,		/* TCPFastOpenActive */ -	LINUX_MIB_TCPFASTOPENPASSIVE,		/* TCPFastOpenPassive*/ -	LINUX_MIB_TCPFASTOPENPASSIVEFAIL,	/* TCPFastOpenPassiveFail */ -	LINUX_MIB_TCPFASTOPENLISTENOVERFLOW,	/* TCPFastOpenListenOverflow */ -	LINUX_MIB_TCPFASTOPENCOOKIEREQD,	/* TCPFastOpenCookieReqd */ -	__LINUX_MIB_MAX -}; - -/* linux Xfrm mib definitions */ -enum -{ -	LINUX_MIB_XFRMNUM = 0, -	LINUX_MIB_XFRMINERROR,			/* XfrmInError */ -	LINUX_MIB_XFRMINBUFFERERROR,		/* XfrmInBufferError */ -	LINUX_MIB_XFRMINHDRERROR,		/* XfrmInHdrError */ -	LINUX_MIB_XFRMINNOSTATES,		/* XfrmInNoStates */ -	LINUX_MIB_XFRMINSTATEPROTOERROR,	/* XfrmInStateProtoError */ -	LINUX_MIB_XFRMINSTATEMODEERROR,		/* XfrmInStateModeError */ -	LINUX_MIB_XFRMINSTATESEQERROR,		/* XfrmInStateSeqError */ -	LINUX_MIB_XFRMINSTATEEXPIRED,		/* XfrmInStateExpired */ -	LINUX_MIB_XFRMINSTATEMISMATCH,		/* XfrmInStateMismatch */ -	LINUX_MIB_XFRMINSTATEINVALID,		/* XfrmInStateInvalid */ -	LINUX_MIB_XFRMINTMPLMISMATCH,		/* XfrmInTmplMismatch */ -	LINUX_MIB_XFRMINNOPOLS,			/* XfrmInNoPols */ -	LINUX_MIB_XFRMINPOLBLOCK,		/* XfrmInPolBlock */ -	LINUX_MIB_XFRMINPOLERROR,		/* XfrmInPolError */ -	LINUX_MIB_XFRMOUTERROR,			/* XfrmOutError */ -	LINUX_MIB_XFRMOUTBUNDLEGENERROR,	/* XfrmOutBundleGenError */ -	LINUX_MIB_XFRMOUTBUNDLECHECKERROR,	/* XfrmOutBundleCheckError */ -	LINUX_MIB_XFRMOUTNOSTATES,		/* XfrmOutNoStates */ -	LINUX_MIB_XFRMOUTSTATEPROTOERROR,	/* XfrmOutStateProtoError */ -	LINUX_MIB_XFRMOUTSTATEMODEERROR,	/* XfrmOutStateModeError */ -	LINUX_MIB_XFRMOUTSTATESEQERROR,		/* XfrmOutStateSeqError */ -	LINUX_MIB_XFRMOUTSTATEEXPIRED,		/* XfrmOutStateExpired */ -	LINUX_MIB_XFRMOUTPOLBLOCK,		/* XfrmOutPolBlock */ -	LINUX_MIB_XFRMOUTPOLDEAD,		/* XfrmOutPolDead */ -	LINUX_MIB_XFRMOUTPOLERROR,		/* XfrmOutPolError */ -	LINUX_MIB_XFRMFWDHDRERROR,		/* XfrmFwdHdrError*/ -	__LINUX_MIB_XFRMMAX -}; - -#endif	/* _LINUX_SNMP_H */ diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h index e3e395acc2f..e8d702e0fd8 100644 --- a/include/linux/sock_diag.h +++ b/include/linux/sock_diag.h @@ -1,29 +1,8 @@  #ifndef __SOCK_DIAG_H__  #define __SOCK_DIAG_H__ -#include <linux/types.h> +#include <uapi/linux/sock_diag.h> -#define SOCK_DIAG_BY_FAMILY 20 - -struct sock_diag_req { -	__u8	sdiag_family; -	__u8	sdiag_protocol; -}; - -enum { -	SK_MEMINFO_RMEM_ALLOC, -	SK_MEMINFO_RCVBUF, -	SK_MEMINFO_WMEM_ALLOC, -	SK_MEMINFO_SNDBUF, -	SK_MEMINFO_FWD_ALLOC, -	SK_MEMINFO_WMEM_QUEUED, -	SK_MEMINFO_OPTMEM, -	SK_MEMINFO_BACKLOG, - -	SK_MEMINFO_VARS, -}; - -#ifdef __KERNEL__  struct sk_buff;  struct nlmsghdr;  struct sock; @@ -44,5 +23,4 @@ void sock_diag_save_cookie(void *sk, __u32 *cookie);  int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr); -#endif /* KERNEL */  #endif diff --git a/include/linux/socket.h b/include/linux/socket.h index ba7b2e817cf..9a546ff853d 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -1,30 +1,13 @@  #ifndef _LINUX_SOCKET_H  #define _LINUX_SOCKET_H -/* - * Desired design of maximum size and alignment (see RFC2553) - */ -#define _K_SS_MAXSIZE	128	/* Implementation specific max size */ -#define _K_SS_ALIGNSIZE	(__alignof__ (struct sockaddr *)) -				/* Implementation specific desired alignment */ - -typedef unsigned short __kernel_sa_family_t; - -struct __kernel_sockaddr_storage { -	__kernel_sa_family_t	ss_family;		/* address family */ -	/* Following field(s) are implementation specific */ -	char		__data[_K_SS_MAXSIZE - sizeof(unsigned short)]; -				/* space to achieve desired size, */ -				/* _SS_MAXSIZE value minus size of ss_family */ -} __attribute__ ((aligned(_K_SS_ALIGNSIZE)));	/* force desired alignment */ - -#ifdef __KERNEL__  #include <asm/socket.h>			/* arch-dependent defines	*/  #include <linux/sockios.h>		/* the SIOCxxx I/O controls	*/  #include <linux/uio.h>			/* iovec support		*/  #include <linux/types.h>		/* pid_t			*/  #include <linux/compiler.h>		/* __user			*/ +#include <uapi/linux/socket.h>  struct pid;  struct cred; @@ -340,5 +323,4 @@ extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen  			  unsigned int flags, struct timespec *timeout);  extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,  			  unsigned int vlen, unsigned int flags); -#endif /* not kernel and not glibc */  #endif /* _LINUX_SOCKET_H */ diff --git a/include/linux/sockios.h b/include/linux/sockios.h deleted file mode 100644 index 7997a506ad4..00000000000 --- a/include/linux/sockios.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * INET		An implementation of the TCP/IP protocol suite for the LINUX - *		operating system.  INET is implemented using the  BSD Socket - *		interface as the means of communication with the user level. - * - *		Definitions of the socket-level I/O control calls. - * - * Version:	@(#)sockios.h	1.0.2	03/09/93 - * - * Authors:	Ross Biro - *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> - * - *		This program is free software; you can redistribute it and/or - *		modify it under the terms of the GNU General Public License - *		as published by the Free Software Foundation; either version - *		2 of the License, or (at your option) any later version. - */ -#ifndef _LINUX_SOCKIOS_H -#define _LINUX_SOCKIOS_H - -#include <asm/sockios.h> - -/* Linux-specific socket ioctls */ -#define SIOCINQ		FIONREAD -#define SIOCOUTQ	TIOCOUTQ        /* output queue size (not sent + not acked) */ - -/* Routing table calls. */ -#define SIOCADDRT	0x890B		/* add routing table entry	*/ -#define SIOCDELRT	0x890C		/* delete routing table entry	*/ -#define SIOCRTMSG	0x890D		/* call to routing system	*/ - -/* Socket configuration controls. */ -#define SIOCGIFNAME	0x8910		/* get iface name		*/ -#define SIOCSIFLINK	0x8911		/* set iface channel		*/ -#define SIOCGIFCONF	0x8912		/* get iface list		*/ -#define SIOCGIFFLAGS	0x8913		/* get flags			*/ -#define SIOCSIFFLAGS	0x8914		/* set flags			*/ -#define SIOCGIFADDR	0x8915		/* get PA address		*/ -#define SIOCSIFADDR	0x8916		/* set PA address		*/ -#define SIOCGIFDSTADDR	0x8917		/* get remote PA address	*/ -#define SIOCSIFDSTADDR	0x8918		/* set remote PA address	*/ -#define SIOCGIFBRDADDR	0x8919		/* get broadcast PA address	*/ -#define SIOCSIFBRDADDR	0x891a		/* set broadcast PA address	*/ -#define SIOCGIFNETMASK	0x891b		/* get network PA mask		*/ -#define SIOCSIFNETMASK	0x891c		/* set network PA mask		*/ -#define SIOCGIFMETRIC	0x891d		/* get metric			*/ -#define SIOCSIFMETRIC	0x891e		/* set metric			*/ -#define SIOCGIFMEM	0x891f		/* get memory address (BSD)	*/ -#define SIOCSIFMEM	0x8920		/* set memory address (BSD)	*/ -#define SIOCGIFMTU	0x8921		/* get MTU size			*/ -#define SIOCSIFMTU	0x8922		/* set MTU size			*/ -#define SIOCSIFNAME	0x8923		/* set interface name */ -#define	SIOCSIFHWADDR	0x8924		/* set hardware address 	*/ -#define SIOCGIFENCAP	0x8925		/* get/set encapsulations       */ -#define SIOCSIFENCAP	0x8926		 -#define SIOCGIFHWADDR	0x8927		/* Get hardware address		*/ -#define SIOCGIFSLAVE	0x8929		/* Driver slaving support	*/ -#define SIOCSIFSLAVE	0x8930 -#define SIOCADDMULTI	0x8931		/* Multicast address lists	*/ -#define SIOCDELMULTI	0x8932 -#define SIOCGIFINDEX	0x8933		/* name -> if_index mapping	*/ -#define SIOGIFINDEX	SIOCGIFINDEX	/* misprint compatibility :-)	*/ -#define SIOCSIFPFLAGS	0x8934		/* set/get extended flags set	*/ -#define SIOCGIFPFLAGS	0x8935 -#define SIOCDIFADDR	0x8936		/* delete PA address		*/ -#define	SIOCSIFHWBROADCAST	0x8937	/* set hardware broadcast addr	*/ -#define SIOCGIFCOUNT	0x8938		/* get number of devices */ - -#define SIOCGIFBR	0x8940		/* Bridging support		*/ -#define SIOCSIFBR	0x8941		/* Set bridging options 	*/ - -#define SIOCGIFTXQLEN	0x8942		/* Get the tx queue length	*/ -#define SIOCSIFTXQLEN	0x8943		/* Set the tx queue length 	*/ - -/* SIOCGIFDIVERT was:	0x8944		Frame diversion support */ -/* SIOCSIFDIVERT was:	0x8945		Set frame diversion options */ - -#define SIOCETHTOOL	0x8946		/* Ethtool interface		*/ - -#define SIOCGMIIPHY	0x8947		/* Get address of MII PHY in use. */ -#define SIOCGMIIREG	0x8948		/* Read MII PHY register.	*/ -#define SIOCSMIIREG	0x8949		/* Write MII PHY register.	*/ - -#define SIOCWANDEV	0x894A		/* get/set netdev parameters	*/ - -#define SIOCOUTQNSD	0x894B		/* output queue size (not sent only) */ - -/* ARP cache control calls. */ -		    /*  0x8950 - 0x8952  * obsolete calls, don't re-use */ -#define SIOCDARP	0x8953		/* delete ARP table entry	*/ -#define SIOCGARP	0x8954		/* get ARP table entry		*/ -#define SIOCSARP	0x8955		/* set ARP table entry		*/ - -/* RARP cache control calls. */ -#define SIOCDRARP	0x8960		/* delete RARP table entry	*/ -#define SIOCGRARP	0x8961		/* get RARP table entry		*/ -#define SIOCSRARP	0x8962		/* set RARP table entry		*/ - -/* Driver configuration calls */ - -#define SIOCGIFMAP	0x8970		/* Get device parameters	*/ -#define SIOCSIFMAP	0x8971		/* Set device parameters	*/ - -/* DLCI configuration calls */ - -#define SIOCADDDLCI	0x8980		/* Create new DLCI device	*/ -#define SIOCDELDLCI	0x8981		/* Delete DLCI device		*/ - -#define SIOCGIFVLAN	0x8982		/* 802.1Q VLAN support		*/ -#define SIOCSIFVLAN	0x8983		/* Set 802.1Q VLAN options 	*/ - -/* bonding calls */ - -#define SIOCBONDENSLAVE	0x8990		/* enslave a device to the bond */ -#define SIOCBONDRELEASE 0x8991		/* release a slave from the bond*/ -#define SIOCBONDSETHWADDR      0x8992	/* set the hw addr of the bond  */ -#define SIOCBONDSLAVEINFOQUERY 0x8993   /* rtn info about slave state   */ -#define SIOCBONDINFOQUERY      0x8994	/* rtn info about bond state    */ -#define SIOCBONDCHANGEACTIVE   0x8995   /* update to a new active slave */ -			 -/* bridge calls */ -#define SIOCBRADDBR     0x89a0		/* create new bridge device     */ -#define SIOCBRDELBR     0x89a1		/* remove bridge device         */ -#define SIOCBRADDIF	0x89a2		/* add interface to bridge      */ -#define SIOCBRDELIF	0x89a3		/* remove interface from bridge */ - -/* hardware time stamping: parameters in linux/net_tstamp.h */ -#define SIOCSHWTSTAMP   0x89b0 - -/* Device private ioctl calls */ - -/* - *	These 16 ioctls are available to devices via the do_ioctl() device - *	vector. Each device should include this file and redefine these names - *	as their own. Because these are device dependent it is a good idea - *	_NOT_ to issue them to random objects and hope. - * - *	THESE IOCTLS ARE _DEPRECATED_ AND WILL DISAPPEAR IN 2.5.X -DaveM - */ -  -#define SIOCDEVPRIVATE	0x89F0	/* to 89FF */ - -/* - *	These 16 ioctl calls are protocol private - */ -  -#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */ -#endif	/* _LINUX_SOCKIOS_H */ diff --git a/include/linux/som.h b/include/linux/som.h deleted file mode 100644 index 166594e4e7b..00000000000 --- a/include/linux/som.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef _LINUX_SOM_H -#define _LINUX_SOM_H - -/* File format definition for SOM executables / shared libraries */ - -/* we need struct timespec */ -#include <linux/time.h> - -#define SOM_PAGESIZE 4096 - -/* this is the SOM header */ -struct som_hdr { -	short		system_id;		/* magic number - system */ -	short		a_magic;		/* magic number - file type */ -	unsigned int	version_id;		/* versiod ID: YYMMDDHH */ -	struct timespec	file_time;		/* system clock */ -	unsigned int	entry_space;		/* space for entry point */ -	unsigned int	entry_subspace;		/* subspace for entry point */ -	unsigned int	entry_offset;		/* offset of entry point */ -	unsigned int	aux_header_location;	/* auxiliary header location */ -	unsigned int	aux_header_size;	/* auxiliary header size */ -	unsigned int	som_length;		/* length of entire SOM */ -	unsigned int	presumed_dp;		/* compiler's DP value */ -	unsigned int	space_location;		/* space dictionary location */ -	unsigned int	space_total;		/* number of space entries */ -	unsigned int	subspace_location;	/* subspace entries location */ -	unsigned int	subspace_total;		/* number of subspace entries */ -	unsigned int	loader_fixup_location;	/* MPE/iX loader fixup */ -	unsigned int	loader_fixup_total;	/* number of fixup records */ -	unsigned int	space_strings_location;	/* (sub)space names */ -	unsigned int	space_strings_size;	/* size of strings area */ -	unsigned int	init_array_location;	/* reserved */ -	unsigned int	init_array_total;	/* reserved */ -	unsigned int	compiler_location;	/* module dictionary */ -	unsigned int	compiler_total;		/* number of modules */ -	unsigned int	symbol_location;	/* symbol dictionary */ -	unsigned int	symbol_total;		/* number of symbols */ -	unsigned int	fixup_request_location;	/* fixup requests */ -	unsigned int	fixup_request_total;	/* number of fixup requests */ -	unsigned int	symbol_strings_location;/* module & symbol names area */ -	unsigned int	symbol_strings_size;	/* size of strings area */ -	unsigned int	unloadable_sp_location;	/* unloadable spaces location */ -	unsigned int	unloadable_sp_size;	/* size of data */ -	unsigned int	checksum; -}; - -/* values for system_id */ - -#define SOM_SID_PARISC_1_0	0x020b -#define SOM_SID_PARISC_1_1	0x0210 -#define SOM_SID_PARISC_2_0	0x0214 - -/* values for a_magic */ - -#define SOM_LIB_EXEC		0x0104 -#define SOM_RELOCATABLE		0x0106 -#define SOM_EXEC_NONSHARE	0x0107 -#define SOM_EXEC_SHARE		0x0108 -#define SOM_EXEC_DEMAND		0x010B -#define SOM_LIB_DYN		0x010D -#define SOM_LIB_SHARE		0x010E -#define SOM_LIB_RELOC		0x0619 - -/* values for version_id.  Decimal not hex, yes.  Grr. */ - -#define SOM_ID_OLD		85082112 -#define SOM_ID_NEW		87102412 - -struct aux_id { -	unsigned int	mandatory :1;	/* the linker must understand this */ -	unsigned int	copy	  :1;	/* Must be copied by the linker */ -	unsigned int	append	  :1;	/* Must be merged by the linker */ -	unsigned int	ignore	  :1;	/* Discard section if unknown */ -	unsigned int	reserved  :12; -	unsigned int	type	  :16;	/* Header type */ -	unsigned int	length;		/* length of _following_ data */ -}; - -/* The Exec Auxiliary Header.  Called The HP-UX Header within HP apparently. */ -struct som_exec_auxhdr { -	struct aux_id	som_auxhdr; -	int		exec_tsize;	/* Text size in bytes */ -	int		exec_tmem;	/* Address to load text at */ -	int		exec_tfile;	/* Location of text in file */ -	int		exec_dsize;	/* Data size in bytes */ -	int		exec_dmem;	/* Address to load data at */ -	int		exec_dfile;	/* Location of data in file */ -	int		exec_bsize;	/* Uninitialised data (bss) */ -	int		exec_entry;	/* Address to start executing */ -	int		exec_flags;	/* loader flags */ -	int		exec_bfill;	/* initialisation value for bss */ -}; - -/* Oh, the things people do to avoid casts.  Shame it'll break with gcc's - * new aliasing rules really. - */ -union name_pt { -	char *		n_name; -	unsigned int	n_strx; -}; - -/* The Space Dictionary */ -struct space_dictionary_record { -	union name_pt	name;			/* index to subspace name */ -	unsigned int	is_loadable	:1;	/* loadable */ -	unsigned int	is_defined	:1;	/* defined within file */ -	unsigned int	is_private	:1;	/* not sharable */ -	unsigned int	has_intermediate_code :1; /* contains intermediate code */ -	unsigned int	is_tspecific	:1;	/* thread specific */ -	unsigned int	reserved	:11;	/* for future expansion */ -	unsigned int	sort_key	:8;	/* for linker */ -	unsigned int	reserved2	:8;	/* for future expansion */ - -	int		space_number;		/* index */ -	int		subspace_index;		/* index into subspace dict */ -	unsigned int	subspace_quantity;	/* number of subspaces */ -	int		loader_fix_index;	/* for loader */ -	unsigned int	loader_fix_quantity;	/* for loader */ -	int		init_pointer_index;	/* data pointer array index */ -	unsigned int	init_pointer_quantity;	/* number of data pointers */ -}; - -/* The Subspace Dictionary */ -struct subspace_dictionary_record { -	int		space_index; -	unsigned int	access_control_bits :7; -	unsigned int	memory_resident	:1; -	unsigned int	dup_common	:1; -	unsigned int	is_common	:1; -	unsigned int	quadrant	:2; -	unsigned int	initially_frozen :1; -	unsigned int	is_first	:1; -	unsigned int	code_only	:1; -	unsigned int	sort_key	:8; -	unsigned int	replicate_init	:1; -	unsigned int	continuation	:1; -	unsigned int	is_tspecific	:1; -	unsigned int	is_comdat	:1; -	unsigned int	reserved	:4; - -	int		file_loc_init_value; -	unsigned int	initialization_length; -	unsigned int	subspace_start; -	unsigned int	subspace_length; - -	unsigned int	reserved2	:5; -	unsigned int	alignment	:27; - -	union name_pt	name; -	int		fixup_request_index; -	unsigned int	fixup_request_quantity; -}; - -#endif /* _LINUX_SOM_H */ diff --git a/include/linux/sonet.h b/include/linux/sonet.h index de8832dd272..680f9a31df2 100644 --- a/include/linux/sonet.h +++ b/include/linux/sonet.h @@ -1,64 +1,10 @@  /* sonet.h - SONET/SHD physical layer control */ -  -/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */ -  -  #ifndef LINUX_SONET_H  #define LINUX_SONET_H -#define __SONET_ITEMS \ -    __HANDLE_ITEM(section_bip); 	/* section parity errors (B1) */ \ -    __HANDLE_ITEM(line_bip);		/* line parity errors (B2) */ \ -    __HANDLE_ITEM(path_bip);		/* path parity errors (B3) */ \ -    __HANDLE_ITEM(line_febe);		/* line parity errors at remote */ \ -    __HANDLE_ITEM(path_febe);		/* path parity errors at remote */ \ -    __HANDLE_ITEM(corr_hcs);		/* correctable header errors */ \ -    __HANDLE_ITEM(uncorr_hcs);		/* uncorrectable header errors */ \ -    __HANDLE_ITEM(tx_cells);		/* cells sent */ \ -    __HANDLE_ITEM(rx_cells);		/* cells received */ - -struct sonet_stats { -#define __HANDLE_ITEM(i) int i -	__SONET_ITEMS -#undef __HANDLE_ITEM -} __attribute__ ((packed)); - - -#define SONET_GETSTAT	_IOR('a',ATMIOC_PHYTYP,struct sonet_stats) -					/* get statistics */ -#define SONET_GETSTATZ	_IOR('a',ATMIOC_PHYTYP+1,struct sonet_stats) -					/* ... and zero counters */ -#define SONET_SETDIAG	_IOWR('a',ATMIOC_PHYTYP+2,int) -					/* set error insertion */ -#define SONET_CLRDIAG	_IOWR('a',ATMIOC_PHYTYP+3,int) -					/* clear error insertion */ -#define SONET_GETDIAG	_IOR('a',ATMIOC_PHYTYP+4,int) -					/* query error insertion */ -#define SONET_SETFRAMING _IOW('a',ATMIOC_PHYTYP+5,int) -					/* set framing mode (SONET/SDH) */ -#define SONET_GETFRAMING _IOR('a',ATMIOC_PHYTYP+6,int) -					/* get framing mode */ -#define SONET_GETFRSENSE _IOR('a',ATMIOC_PHYTYP+7, \ -  unsigned char[SONET_FRSENSE_SIZE])	/* get framing sense information */ - -#define SONET_INS_SBIP	  1		/* section BIP */ -#define SONET_INS_LBIP	  2		/* line BIP */ -#define SONET_INS_PBIP	  4		/* path BIP */ -#define SONET_INS_FRAME	  8		/* out of frame */ -#define SONET_INS_LOS	 16		/* set line to zero */ -#define SONET_INS_LAIS	 32		/* line alarm indication signal */ -#define SONET_INS_PAIS	 64		/* path alarm indication signal */ -#define SONET_INS_HCS	128		/* insert HCS error */ - -#define SONET_FRAME_SONET 0		/* SONET STS-3 framing */ -#define SONET_FRAME_SDH   1		/* SDH STM-1 framing */ - -#define SONET_FRSENSE_SIZE 6		/* C1[3],H1[3] (0xff for unknown) */ - - -#ifdef __KERNEL__  #include <linux/atomic.h> +#include <uapi/linux/sonet.h>  struct k_sonet_stats {  #define __HANDLE_ITEM(i) atomic_t i @@ -71,5 +17,3 @@ extern void sonet_subtract_stats(struct k_sonet_stats *from,      struct sonet_stats *to);  #endif - -#endif diff --git a/include/linux/sonypi.h b/include/linux/sonypi.h index c0f87da78f8..0b7cc265cc0 100644 --- a/include/linux/sonypi.h +++ b/include/linux/sonypi.h @@ -32,117 +32,11 @@   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.   *   */ -  #ifndef _SONYPI_H_  #define _SONYPI_H_ -#include <linux/types.h> - -/* events the user application reading /dev/sonypi can use */ - -#define SONYPI_EVENT_IGNORE			 0 -#define SONYPI_EVENT_JOGDIAL_DOWN		 1 -#define SONYPI_EVENT_JOGDIAL_UP			 2 -#define SONYPI_EVENT_JOGDIAL_DOWN_PRESSED	 3 -#define SONYPI_EVENT_JOGDIAL_UP_PRESSED		 4 -#define SONYPI_EVENT_JOGDIAL_PRESSED		 5 -#define SONYPI_EVENT_JOGDIAL_RELEASED		 6	/* obsolete */ -#define SONYPI_EVENT_CAPTURE_PRESSED		 7 -#define SONYPI_EVENT_CAPTURE_RELEASED		 8	/* obsolete */ -#define SONYPI_EVENT_CAPTURE_PARTIALPRESSED	 9 -#define SONYPI_EVENT_CAPTURE_PARTIALRELEASED	10 -#define SONYPI_EVENT_FNKEY_ESC			11 -#define SONYPI_EVENT_FNKEY_F1			12 -#define SONYPI_EVENT_FNKEY_F2			13 -#define SONYPI_EVENT_FNKEY_F3			14 -#define SONYPI_EVENT_FNKEY_F4			15 -#define SONYPI_EVENT_FNKEY_F5			16 -#define SONYPI_EVENT_FNKEY_F6			17 -#define SONYPI_EVENT_FNKEY_F7			18 -#define SONYPI_EVENT_FNKEY_F8			19 -#define SONYPI_EVENT_FNKEY_F9			20 -#define SONYPI_EVENT_FNKEY_F10			21 -#define SONYPI_EVENT_FNKEY_F11			22 -#define SONYPI_EVENT_FNKEY_F12			23 -#define SONYPI_EVENT_FNKEY_1			24 -#define SONYPI_EVENT_FNKEY_2			25 -#define SONYPI_EVENT_FNKEY_D			26 -#define SONYPI_EVENT_FNKEY_E			27 -#define SONYPI_EVENT_FNKEY_F			28 -#define SONYPI_EVENT_FNKEY_S			29 -#define SONYPI_EVENT_FNKEY_B			30 -#define SONYPI_EVENT_BLUETOOTH_PRESSED		31 -#define SONYPI_EVENT_PKEY_P1			32 -#define SONYPI_EVENT_PKEY_P2			33 -#define SONYPI_EVENT_PKEY_P3			34 -#define SONYPI_EVENT_BACK_PRESSED		35 -#define SONYPI_EVENT_LID_CLOSED			36 -#define SONYPI_EVENT_LID_OPENED			37 -#define SONYPI_EVENT_BLUETOOTH_ON		38 -#define SONYPI_EVENT_BLUETOOTH_OFF		39 -#define SONYPI_EVENT_HELP_PRESSED		40 -#define SONYPI_EVENT_FNKEY_ONLY			41 -#define SONYPI_EVENT_JOGDIAL_FAST_DOWN		42 -#define SONYPI_EVENT_JOGDIAL_FAST_UP		43 -#define SONYPI_EVENT_JOGDIAL_FAST_DOWN_PRESSED	44 -#define SONYPI_EVENT_JOGDIAL_FAST_UP_PRESSED	45 -#define SONYPI_EVENT_JOGDIAL_VFAST_DOWN		46 -#define SONYPI_EVENT_JOGDIAL_VFAST_UP		47 -#define SONYPI_EVENT_JOGDIAL_VFAST_DOWN_PRESSED	48 -#define SONYPI_EVENT_JOGDIAL_VFAST_UP_PRESSED	49 -#define SONYPI_EVENT_ZOOM_PRESSED		50 -#define SONYPI_EVENT_THUMBPHRASE_PRESSED	51 -#define SONYPI_EVENT_MEYE_FACE			52 -#define SONYPI_EVENT_MEYE_OPPOSITE		53 -#define SONYPI_EVENT_MEMORYSTICK_INSERT		54 -#define SONYPI_EVENT_MEMORYSTICK_EJECT		55 -#define SONYPI_EVENT_ANYBUTTON_RELEASED		56 -#define SONYPI_EVENT_BATTERY_INSERT		57 -#define SONYPI_EVENT_BATTERY_REMOVE		58 -#define SONYPI_EVENT_FNKEY_RELEASED		59 -#define SONYPI_EVENT_WIRELESS_ON		60 -#define SONYPI_EVENT_WIRELESS_OFF		61 -#define SONYPI_EVENT_ZOOM_IN_PRESSED		62 -#define SONYPI_EVENT_ZOOM_OUT_PRESSED		63 -#define SONYPI_EVENT_CD_EJECT_PRESSED		64 -#define SONYPI_EVENT_MODEKEY_PRESSED		65 -#define SONYPI_EVENT_PKEY_P4			66 -#define SONYPI_EVENT_PKEY_P5			67 -#define SONYPI_EVENT_SETTINGKEY_PRESSED		68 -#define SONYPI_EVENT_VOLUME_INC_PRESSED		69 -#define SONYPI_EVENT_VOLUME_DEC_PRESSED		70 -#define SONYPI_EVENT_BRIGHTNESS_PRESSED		71 -#define SONYPI_EVENT_MEDIA_PRESSED		72 -#define SONYPI_EVENT_VENDOR_PRESSED		73 - -/* get/set brightness */ -#define SONYPI_IOCGBRT		_IOR('v', 0, __u8) -#define SONYPI_IOCSBRT		_IOW('v', 0, __u8) - -/* get battery full capacity/remaining capacity */ -#define SONYPI_IOCGBAT1CAP	_IOR('v', 2, __u16) -#define SONYPI_IOCGBAT1REM	_IOR('v', 3, __u16) -#define SONYPI_IOCGBAT2CAP	_IOR('v', 4, __u16) -#define SONYPI_IOCGBAT2REM	_IOR('v', 5, __u16) +#include <uapi/linux/sonypi.h> -/* get battery flags: battery1/battery2/ac adapter present */ -#define SONYPI_BFLAGS_B1	0x01 -#define SONYPI_BFLAGS_B2	0x02 -#define SONYPI_BFLAGS_AC	0x04 -#define SONYPI_IOCGBATFLAGS	_IOR('v', 7, __u8) - -/* get/set bluetooth subsystem state on/off */ -#define SONYPI_IOCGBLUE		_IOR('v', 8, __u8) -#define SONYPI_IOCSBLUE		_IOW('v', 9, __u8) - -/* get/set fan state on/off */ -#define SONYPI_IOCGFAN		_IOR('v', 10, __u8) -#define SONYPI_IOCSFAN		_IOW('v', 11, __u8) - -/* get temperature (C) */ -#define SONYPI_IOCGTEMP		_IOR('v', 12, __u8) - -#ifdef __KERNEL__  /* used only for communication between v4l and sonypi */ @@ -166,6 +60,4 @@  #define SONYPI_COMMAND_GETCAMERAROMVERSION	18	/* obsolete */  #define SONYPI_COMMAND_GETCAMERAREVISION	19	/* obsolete */ -#endif				/* __KERNEL__ */ -  #endif				/* _SONYPI_H_ */ diff --git a/include/linux/sound.h b/include/linux/sound.h index fae20ba01fb..73ded040f1d 100644 --- a/include/linux/sound.h +++ b/include/linux/sound.h @@ -1,33 +1,8 @@  #ifndef _LINUX_SOUND_H  #define _LINUX_SOUND_H -/* - * Minor numbers for the sound driver. - */ - -#include <linux/fs.h> +#include <uapi/linux/sound.h> -#define SND_DEV_CTL		0	/* Control port /dev/mixer */ -#define SND_DEV_SEQ		1	/* Sequencer output /dev/sequencer (FM -						synthesizer and MIDI output) */ -#define SND_DEV_MIDIN		2	/* Raw midi access */ -#define SND_DEV_DSP		3	/* Digitized voice /dev/dsp */ -#define SND_DEV_AUDIO		4	/* Sparc compatible /dev/audio */ -#define SND_DEV_DSP16		5	/* Like /dev/dsp but 16 bits/sample */ -/* #define SND_DEV_STATUS	6 */	/* /dev/sndstat (obsolete) */ -#define SND_DEV_UNUSED		6 -#define SND_DEV_AWFM		7	/* Reserved */ -#define SND_DEV_SEQ2		8	/* /dev/sequencer, level 2 interface */ -/* #define SND_DEV_SNDPROC	9 */	/* /dev/sndproc for programmable devices (not used) */ -/* #define SND_DEV_DMMIDI	9 */ -#define SND_DEV_SYNTH		9	/* Raw synth access /dev/synth (same as /dev/dmfm) */ -#define SND_DEV_DMFM		10	/* Raw synth access /dev/dmfm */ -#define SND_DEV_UNKNOWN11	11 -#define SND_DEV_ADSP		12	/* Like /dev/dsp (obsolete) */ -#define SND_DEV_AMIDI		13	/* Like /dev/midi (obsolete) */ -#define SND_DEV_ADMMIDI		14	/* Like /dev/dmmidi (onsolete) */ - -#ifdef __KERNEL__  /*   *	Sound core interface functions   */ @@ -43,6 +18,4 @@ extern void unregister_sound_special(int unit);  extern void unregister_sound_mixer(int unit);  extern void unregister_sound_midi(int unit);  extern void unregister_sound_dsp(int unit); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SOUND_H */ diff --git a/include/linux/soundcard.h b/include/linux/soundcard.h index dfcf86f013a..96c79cbd79e 100644 --- a/include/linux/soundcard.h +++ b/include/linux/soundcard.h @@ -1,5 +1,3 @@ -#ifndef SOUNDCARD_H -#define SOUNDCARD_H  /*   * Copyright by Hannu Savolainen 1993-1997   * @@ -23,174 +21,12 @@   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * SUCH DAMAGE.   */ +#ifndef SOUNDCARD_H +#define SOUNDCARD_H - -/* - * OSS interface version. With versions earlier than 3.6 this value is - * an integer with value less than 361. In versions 3.6 and later - * it's a six digit hexadecimal value. For example value - * of 0x030600 represents OSS version 3.6.0. - * Use ioctl(fd, OSS_GETVERSION, &int) to get the version number of - * the currently active driver. - */ -#define SOUND_VERSION	0x030802 -#define OPEN_SOUND_SYSTEM - -/* In Linux we need to be prepared for cross compiling */ -#include <linux/ioctl.h> - -/* Endian macros. */ -#ifdef __KERNEL__  #  include <asm/byteorder.h> -#else -#  include <endian.h> -#endif - -/* - *	Supported card ID numbers (Should be somewhere else?) - */ - -#define SNDCARD_ADLIB		1 -#define SNDCARD_SB		2 -#define SNDCARD_PAS		3 -#define SNDCARD_GUS		4 -#define SNDCARD_MPU401		5 -#define SNDCARD_SB16		6 -#define SNDCARD_SB16MIDI	7 -#define SNDCARD_UART6850	8 -#define SNDCARD_GUS16		9 -#define SNDCARD_MSS		10 -#define SNDCARD_PSS     	11 -#define SNDCARD_SSCAPE		12 -#define SNDCARD_PSS_MPU     	13 -#define SNDCARD_PSS_MSS     	14 -#define SNDCARD_SSCAPE_MSS	15 -#define SNDCARD_TRXPRO		16 -#define SNDCARD_TRXPRO_SB	17 -#define SNDCARD_TRXPRO_MPU	18 -#define SNDCARD_MAD16		19 -#define SNDCARD_MAD16_MPU	20 -#define SNDCARD_CS4232		21 -#define SNDCARD_CS4232_MPU	22 -#define SNDCARD_MAUI		23 -#define SNDCARD_PSEUDO_MSS	24 -#define SNDCARD_GUSPNP		25 -#define SNDCARD_UART401		26 -/* Sound card numbers 27 to N are reserved. Don't add more numbers here. */ - -/*********************************** - * IOCTL Commands for /dev/sequencer - */ - -#ifndef _SIOWR -#if defined(_IOWR) && (defined(_AIX) || (!defined(sun) && !defined(sparc) && !defined(__sparc__) && !defined(__INCioctlh) && !defined(__Lynx__))) -/* Use already defined ioctl defines if they exist (except with Sun or Sparc) */ -#define	SIOCPARM_MASK	IOCPARM_MASK -#define	SIOC_VOID	IOC_VOID -#define	SIOC_OUT	IOC_OUT -#define	SIOC_IN		IOC_IN -#define	SIOC_INOUT	IOC_INOUT -#define _SIOC_SIZE	_IOC_SIZE -#define _SIOC_DIR	_IOC_DIR -#define _SIOC_NONE	_IOC_NONE -#define _SIOC_READ	_IOC_READ -#define _SIOC_WRITE	_IOC_WRITE -#define	_SIO		_IO -#define	_SIOR		_IOR -#define	_SIOW		_IOW -#define	_SIOWR		_IOWR -#else +#include <uapi/linux/soundcard.h> -/* Ioctl's have the command encoded in the lower word, - * and the size of any in or out parameters in the upper - * word.  The high 2 bits of the upper word are used - * to encode the in/out status of the parameter; for now - * we restrict parameters to at most 8191 bytes. - */ -/* #define	SIOCTYPE		(0xff<<8) */ -#define	SIOCPARM_MASK	0x1fff		/* parameters must be < 8192 bytes */ -#define	SIOC_VOID	0x00000000	/* no parameters */ -#define	SIOC_OUT	0x20000000	/* copy out parameters */ -#define	SIOC_IN		0x40000000	/* copy in parameters */ -#define	SIOC_INOUT	(SIOC_IN|SIOC_OUT) -/* the 0x20000000 is so we can distinguish new ioctl's from old */ -#define	_SIO(x,y)	((int)(SIOC_VOID|(x<<8)|y)) -#define	_SIOR(x,y,t)	((int)(SIOC_OUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) -#define	_SIOW(x,y,t)	((int)(SIOC_IN|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) -/* this should be _SIORW, but stdio got there first */ -#define	_SIOWR(x,y,t)	((int)(SIOC_INOUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) -#define _SIOC_SIZE(x)	((x>>16)&SIOCPARM_MASK)	 -#define _SIOC_DIR(x)	(x & 0xf0000000) -#define _SIOC_NONE	SIOC_VOID -#define _SIOC_READ	SIOC_OUT -#define _SIOC_WRITE	SIOC_IN -#  endif /* _IOWR */ -#endif  /* !_SIOWR */ - -#define SNDCTL_SEQ_RESET		_SIO  ('Q', 0) -#define SNDCTL_SEQ_SYNC			_SIO  ('Q', 1) -#define SNDCTL_SYNTH_INFO		_SIOWR('Q', 2, struct synth_info) -#define SNDCTL_SEQ_CTRLRATE		_SIOWR('Q', 3, int)	/* Set/get timer resolution (HZ) */ -#define SNDCTL_SEQ_GETOUTCOUNT		_SIOR ('Q', 4, int) -#define SNDCTL_SEQ_GETINCOUNT		_SIOR ('Q', 5, int) -#define SNDCTL_SEQ_PERCMODE		_SIOW ('Q', 6, int) -#define SNDCTL_FM_LOAD_INSTR		_SIOW ('Q', 7, struct sbi_instrument)	/* Obsolete. Don't use!!!!!! */ -#define SNDCTL_SEQ_TESTMIDI		_SIOW ('Q', 8, int) -#define SNDCTL_SEQ_RESETSAMPLES		_SIOW ('Q', 9, int) -#define SNDCTL_SEQ_NRSYNTHS		_SIOR ('Q',10, int) -#define SNDCTL_SEQ_NRMIDIS		_SIOR ('Q',11, int) -#define SNDCTL_MIDI_INFO		_SIOWR('Q',12, struct midi_info) -#define SNDCTL_SEQ_THRESHOLD		_SIOW ('Q',13, int) -#define SNDCTL_SYNTH_MEMAVL		_SIOWR('Q',14, int)	/* in=dev#, out=memsize */ -#define SNDCTL_FM_4OP_ENABLE		_SIOW ('Q',15, int)	/* in=dev# */ -#define SNDCTL_SEQ_PANIC		_SIO  ('Q',17) -#define SNDCTL_SEQ_OUTOFBAND		_SIOW ('Q',18, struct seq_event_rec) -#define SNDCTL_SEQ_GETTIME		_SIOR ('Q',19, int) -#define SNDCTL_SYNTH_ID			_SIOWR('Q',20, struct synth_info) -#define SNDCTL_SYNTH_CONTROL		_SIOWR('Q',21, struct synth_control) -#define SNDCTL_SYNTH_REMOVESAMPLE	_SIOWR('Q',22, struct remove_sample) - -typedef struct synth_control -{ -	int devno;	/* Synthesizer # */ -	char data[4000]; /* Device spesific command/data record */ -}synth_control; - -typedef struct remove_sample -{ -	int devno;	/* Synthesizer # */ -	int bankno;	/* MIDI bank # (0=General MIDI) */ -	int instrno;	/* MIDI instrument number */ -} remove_sample; - -typedef struct seq_event_rec { -		unsigned char arr[8]; -} seq_event_rec; - -#define SNDCTL_TMR_TIMEBASE		_SIOWR('T', 1, int) -#define SNDCTL_TMR_START		_SIO  ('T', 2) -#define SNDCTL_TMR_STOP			_SIO  ('T', 3) -#define SNDCTL_TMR_CONTINUE		_SIO  ('T', 4) -#define SNDCTL_TMR_TEMPO		_SIOWR('T', 5, int) -#define SNDCTL_TMR_SOURCE		_SIOWR('T', 6, int) -#	define TMR_INTERNAL		0x00000001 -#	define TMR_EXTERNAL		0x00000002 -#		define TMR_MODE_MIDI	0x00000010 -#		define TMR_MODE_FSK	0x00000020 -#		define TMR_MODE_CLS	0x00000040 -#		define TMR_MODE_SMPTE	0x00000080 -#define SNDCTL_TMR_METRONOME		_SIOW ('T', 7, int) -#define SNDCTL_TMR_SELECT		_SIOW ('T', 8, int) - -/* - * Some big endian/little endian handling macros - */ - -#define _LINUX_PATCHKEY_H_INDIRECT -#include <linux/patchkey.h> -#undef _LINUX_PATCHKEY_H_INDIRECT - -#if defined(__KERNEL__)  #  if defined(__BIG_ENDIAN)  #    define AFMT_S16_NE AFMT_S16_BE  #  elif defined(__LITTLE_ENDIAN) @@ -198,1095 +34,4 @@ typedef struct seq_event_rec {  #  else  #    error "could not determine byte order"  #  endif -#else -# if defined(__BYTE_ORDER) -#  if __BYTE_ORDER == __BIG_ENDIAN -#    define AFMT_S16_NE AFMT_S16_BE -#  elif __BYTE_ORDER == __LITTLE_ENDIAN -#    define AFMT_S16_NE AFMT_S16_LE -#  else -#    error "could not determine byte order" -#  endif -# endif -#endif - -/* - *	Sample loading mechanism for internal synthesizers (/dev/sequencer) - *	The following patch_info structure has been designed to support - *	Gravis UltraSound. It tries to be universal format for uploading - *	sample based patches but is probably too limited. - * - *      (PBD) As Hannu guessed, the GUS structure is too limited for  - *      the WaveFront, but this is the right place for a constant definition. - */ - -struct patch_info { -		unsigned short key;		/* Use WAVE_PATCH here */ -#define WAVE_PATCH	   _PATCHKEY(0x04) -#define GUS_PATCH	   WAVE_PATCH -#define WAVEFRONT_PATCH    _PATCHKEY(0x06) - -		short device_no;	/* Synthesizer number */ -		short instr_no;		/* Midi pgm# */ - -		unsigned int mode; -/* - * The least significant byte has the same format than the GUS .PAT - * files - */ -#define WAVE_16_BITS	0x01	/* bit 0 = 8 or 16 bit wave data. */ -#define WAVE_UNSIGNED	0x02	/* bit 1 = Signed - Unsigned data. */ -#define WAVE_LOOPING	0x04	/* bit 2 = looping enabled-1. */ -#define WAVE_BIDIR_LOOP	0x08	/* bit 3 = Set is bidirectional looping. */ -#define WAVE_LOOP_BACK	0x10	/* bit 4 = Set is looping backward. */ -#define WAVE_SUSTAIN_ON	0x20	/* bit 5 = Turn sustaining on. (Env. pts. 3)*/ -#define WAVE_ENVELOPES	0x40	/* bit 6 = Enable envelopes - 1 */ -#define WAVE_FAST_RELEASE 0x80	/* bit 7 = Shut off immediately after note off */ -				/* 	(use the env_rate/env_offs fields). */ -/* Linux specific bits */ -#define WAVE_VIBRATO	0x00010000	/* The vibrato info is valid */ -#define WAVE_TREMOLO	0x00020000	/* The tremolo info is valid */ -#define WAVE_SCALE	0x00040000	/* The scaling info is valid */ -#define WAVE_FRACTIONS	0x00080000	/* Fraction information is valid */ -/* Reserved bits */ -#define WAVE_ROM	0x40000000	/* For future use */ -#define WAVE_MULAW	0x20000000	/* For future use */ -/* Other bits must be zeroed */ - -		int len;	/* Size of the wave data in bytes */ -		int loop_start, loop_end; /* Byte offsets from the beginning */ - -/*  - * The base_freq and base_note fields are used when computing the - * playback speed for a note. The base_note defines the tone frequency - * which is heard if the sample is played using the base_freq as the - * playback speed. - * - * The low_note and high_note fields define the minimum and maximum note - * frequencies for which this sample is valid. It is possible to define - * more than one samples for an instrument number at the same time. The - * low_note and high_note fields are used to select the most suitable one. - * - * The fields base_note, high_note and low_note should contain - * the note frequency multiplied by 1000. For example value for the - * middle A is 440*1000. - */ - -		unsigned int base_freq; -		unsigned int base_note; -		unsigned int high_note; -		unsigned int low_note; -		int panning;	/* -128=left, 127=right */ -		int detuning; - -/*	New fields introduced in version 1.99.5	*/ - -       /* Envelope. Enabled by mode bit WAVE_ENVELOPES	*/ -		unsigned char	env_rate[ 6 ];	 /* GUS HW ramping rate */ -		unsigned char	env_offset[ 6 ]; /* 255 == 100% */ - -	/*  -	 * The tremolo, vibrato and scale info are not supported yet. -	 * Enable by setting the mode bits WAVE_TREMOLO, WAVE_VIBRATO or -	 * WAVE_SCALE -	 */ - -		unsigned char	tremolo_sweep; -		unsigned char	tremolo_rate; -		unsigned char	tremolo_depth; -	 -		unsigned char	vibrato_sweep; -		unsigned char	vibrato_rate; -		unsigned char	vibrato_depth; - -		int		scale_frequency; -		unsigned int	scale_factor;		/* from 0 to 2048 or 0 to 2 */ -	 -	        int		volume; -		int		fractions; -		int		reserved1; -	        int		spare[2]; -		char data[1];	/* The waveform data starts here */ -	}; - -struct sysex_info { -		short key;		/* Use SYSEX_PATCH or MAUI_PATCH here */ -#define SYSEX_PATCH	_PATCHKEY(0x05) -#define MAUI_PATCH	_PATCHKEY(0x06) -		short device_no;	/* Synthesizer number */ -		int len;	/* Size of the sysex data in bytes */ -		unsigned char data[1];	/* Sysex data starts here */ -	}; - -/* - * /dev/sequencer input events. - * - * The data written to the /dev/sequencer is a stream of events. Events - * are records of 4 or 8 bytes. The first byte defines the size.  - * Any number of events can be written with a write call. There - * is a set of macros for sending these events. Use these macros if you - * want to maximize portability of your program. - * - * Events SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO. Are also input events. - * (All input events are currently 4 bytes long. Be prepared to support - * 8 byte events also. If you receive any event having first byte >= 128, - * it's a 8 byte event. - * - * The events are documented at the end of this file. - * - * Normal events (4 bytes) - * There is also a 8 byte version of most of the 4 byte events. The - * 8 byte one is recommended. - */ -#define SEQ_NOTEOFF		0 -#define SEQ_FMNOTEOFF		SEQ_NOTEOFF	/* Just old name */ -#define SEQ_NOTEON		1 -#define	SEQ_FMNOTEON		SEQ_NOTEON -#define SEQ_WAIT		TMR_WAIT_ABS -#define SEQ_PGMCHANGE		3 -#define SEQ_FMPGMCHANGE		SEQ_PGMCHANGE -#define SEQ_SYNCTIMER		TMR_START -#define SEQ_MIDIPUTC		5 -#define SEQ_DRUMON		6	/*** OBSOLETE ***/ -#define SEQ_DRUMOFF		7	/*** OBSOLETE ***/ -#define SEQ_ECHO		TMR_ECHO	/* For synching programs with output */ -#define SEQ_AFTERTOUCH		9 -#define SEQ_CONTROLLER		10 - -/******************************************* - *	Midi controller numbers - ******************************************* - * Controllers 0 to 31 (0x00 to 0x1f) and - * 32 to 63 (0x20 to 0x3f) are continuous - * controllers. - * In the MIDI 1.0 these controllers are sent using - * two messages. Controller numbers 0 to 31 are used - * to send the MSB and the controller numbers 32 to 63 - * are for the LSB. Note that just 7 bits are used in MIDI bytes. - */ - -#define	   CTL_BANK_SELECT		0x00 -#define	   CTL_MODWHEEL			0x01 -#define    CTL_BREATH			0x02 -/*		undefined		0x03 */ -#define    CTL_FOOT			0x04 -#define    CTL_PORTAMENTO_TIME		0x05 -#define    CTL_DATA_ENTRY		0x06 -#define    CTL_MAIN_VOLUME		0x07 -#define    CTL_BALANCE			0x08 -/*		undefined		0x09 */ -#define    CTL_PAN			0x0a -#define    CTL_EXPRESSION		0x0b -/*		undefined		0x0c */ -/*		undefined		0x0d */ -/*		undefined		0x0e */ -/*		undefined		0x0f */ -#define    CTL_GENERAL_PURPOSE1	0x10 -#define    CTL_GENERAL_PURPOSE2	0x11 -#define    CTL_GENERAL_PURPOSE3	0x12 -#define    CTL_GENERAL_PURPOSE4	0x13 -/*		undefined		0x14 - 0x1f */ - -/*		undefined		0x20 */ -/* The controller numbers 0x21 to 0x3f are reserved for the */ -/* least significant bytes of the controllers 0x00 to 0x1f. */ -/* These controllers are not recognised by the driver. */ - -/* Controllers 64 to 69 (0x40 to 0x45) are on/off switches. */ -/* 0=OFF and 127=ON (intermediate values are possible) */ -#define    CTL_DAMPER_PEDAL		0x40 -#define    CTL_SUSTAIN			0x40	/* Alias */ -#define    CTL_HOLD			0x40	/* Alias */ -#define    CTL_PORTAMENTO		0x41 -#define    CTL_SOSTENUTO		0x42 -#define    CTL_SOFT_PEDAL		0x43 -/*		undefined		0x44 */ -#define    CTL_HOLD2			0x45 -/*		undefined		0x46 - 0x4f */ - -#define    CTL_GENERAL_PURPOSE5	0x50 -#define    CTL_GENERAL_PURPOSE6	0x51 -#define    CTL_GENERAL_PURPOSE7	0x52 -#define    CTL_GENERAL_PURPOSE8	0x53 -/*		undefined		0x54 - 0x5a */ -#define    CTL_EXT_EFF_DEPTH		0x5b -#define    CTL_TREMOLO_DEPTH		0x5c -#define    CTL_CHORUS_DEPTH		0x5d -#define    CTL_DETUNE_DEPTH		0x5e -#define    CTL_CELESTE_DEPTH		0x5e	/* Alias for the above one */ -#define    CTL_PHASER_DEPTH		0x5f -#define    CTL_DATA_INCREMENT		0x60 -#define    CTL_DATA_DECREMENT		0x61 -#define    CTL_NONREG_PARM_NUM_LSB	0x62 -#define    CTL_NONREG_PARM_NUM_MSB	0x63 -#define    CTL_REGIST_PARM_NUM_LSB	0x64 -#define    CTL_REGIST_PARM_NUM_MSB	0x65 -/*		undefined		0x66 - 0x78 */ -/*		reserved		0x79 - 0x7f */ - -/* Pseudo controllers (not midi compatible) */ -#define    CTRL_PITCH_BENDER		255 -#define    CTRL_PITCH_BENDER_RANGE	254 -#define    CTRL_EXPRESSION		253	/* Obsolete */ -#define    CTRL_MAIN_VOLUME		252	/* Obsolete */ -#define SEQ_BALANCE		11 -#define SEQ_VOLMODE             12 - -/* - * Volume mode decides how volumes are used - */ - -#define VOL_METHOD_ADAGIO	1 -#define VOL_METHOD_LINEAR	2 - -/* - * Note! SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO are used also as - *	 input events. - */ - -/* - * Event codes 0xf0 to 0xfc are reserved for future extensions. - */ - -#define SEQ_FULLSIZE		0xfd	/* Long events */ -/* - *	SEQ_FULLSIZE events are used for loading patches/samples to the - *	synthesizer devices. These events are passed directly to the driver - *	of the associated synthesizer device. There is no limit to the size - *	of the extended events. These events are not queued but executed - *	immediately when the write() is called (execution can take several - *	seconds of time).  - * - *	When a SEQ_FULLSIZE message is written to the device, it must - *	be written using exactly one write() call. Other events cannot - *	be mixed to the same write. - *	 - *	For FM synths (YM3812/OPL3) use struct sbi_instrument and write it to the  - *	/dev/sequencer. Don't write other data together with the instrument structure - *	Set the key field of the structure to FM_PATCH. The device field is used to - *	route the patch to the corresponding device. - * - *	For wave table use struct patch_info. Initialize the key field - *      to WAVE_PATCH. - */ -#define SEQ_PRIVATE		0xfe	/* Low level HW dependent events (8 bytes) */ -#define SEQ_EXTENDED		0xff	/* Extended events (8 bytes) OBSOLETE */ - -/* - * Record for FM patches - */ - -typedef unsigned char sbi_instr_data[32]; - -struct sbi_instrument { -		unsigned short	key;	/* FM_PATCH or OPL3_PATCH */ -#define FM_PATCH	_PATCHKEY(0x01) -#define OPL3_PATCH	_PATCHKEY(0x03) -		short		device;		/*	Synth# (0-4)	*/ -		int 		channel;	/*	Program# to be initialized 	*/ -		sbi_instr_data	operators;	/*	Register settings for operator cells (.SBI format)	*/ -	}; - -struct synth_info {	/* Read only */ -		char	name[30]; -		int	device;		/* 0-N. INITIALIZE BEFORE CALLING */ -		int	synth_type; -#define SYNTH_TYPE_FM			0 -#define SYNTH_TYPE_SAMPLE		1 -#define SYNTH_TYPE_MIDI			2	/* Midi interface */ - -		int	synth_subtype; -#define FM_TYPE_ADLIB			0x00 -#define FM_TYPE_OPL3			0x01 -#define MIDI_TYPE_MPU401		0x401 - -#define SAMPLE_TYPE_BASIC		0x10 -#define SAMPLE_TYPE_GUS			SAMPLE_TYPE_BASIC -#define SAMPLE_TYPE_WAVEFRONT           0x11 - -		int	perc_mode;	/* No longer supported */ -		int	nr_voices; -		int	nr_drums;	/* Obsolete field */ -		int	instr_bank_size; -		unsigned int	capabilities;	 -#define SYNTH_CAP_PERCMODE		0x00000001 /* No longer used */ -#define SYNTH_CAP_OPL3			0x00000002 /* Set if OPL3 supported */ -#define SYNTH_CAP_INPUT			0x00000004 /* Input (MIDI) device */ -		int	dummies[19];	/* Reserve space */ -	}; - -struct sound_timer_info { -		char name[32]; -		int caps; -	}; - -#define MIDI_CAP_MPU401		1		/* MPU-401 intelligent mode */ - -struct midi_info { -		char		name[30]; -		int		device;		/* 0-N. INITIALIZE BEFORE CALLING */ -		unsigned int	capabilities;	/* To be defined later */ -		int		dev_type; -		int		dummies[18];	/* Reserve space */ -	}; - -/******************************************** - * ioctl commands for the /dev/midi## - */ -typedef struct { -		unsigned char cmd; -		char nr_args, nr_returns; -		unsigned char data[30]; -	} mpu_command_rec; - -#define SNDCTL_MIDI_PRETIME		_SIOWR('m', 0, int) -#define SNDCTL_MIDI_MPUMODE		_SIOWR('m', 1, int) -#define SNDCTL_MIDI_MPUCMD		_SIOWR('m', 2, mpu_command_rec) - -/******************************************** - * IOCTL commands for /dev/dsp and /dev/audio - */ - -#define SNDCTL_DSP_RESET		_SIO  ('P', 0) -#define SNDCTL_DSP_SYNC			_SIO  ('P', 1) -#define SNDCTL_DSP_SPEED		_SIOWR('P', 2, int) -#define SNDCTL_DSP_STEREO		_SIOWR('P', 3, int) -#define SNDCTL_DSP_GETBLKSIZE		_SIOWR('P', 4, int) -#define SNDCTL_DSP_SAMPLESIZE		SNDCTL_DSP_SETFMT -#define SNDCTL_DSP_CHANNELS		_SIOWR('P', 6, int) -#define SOUND_PCM_WRITE_CHANNELS	SNDCTL_DSP_CHANNELS -#define SOUND_PCM_WRITE_FILTER		_SIOWR('P', 7, int) -#define SNDCTL_DSP_POST			_SIO  ('P', 8) -#define SNDCTL_DSP_SUBDIVIDE		_SIOWR('P', 9, int) -#define SNDCTL_DSP_SETFRAGMENT		_SIOWR('P',10, int) - -/*	Audio data formats (Note! U8=8 and S16_LE=16 for compatibility) */ -#define SNDCTL_DSP_GETFMTS		_SIOR ('P',11, int) /* Returns a mask */ -#define SNDCTL_DSP_SETFMT		_SIOWR('P',5, int) /* Selects ONE fmt*/ -#	define AFMT_QUERY		0x00000000	/* Return current fmt */ -#	define AFMT_MU_LAW		0x00000001 -#	define AFMT_A_LAW		0x00000002 -#	define AFMT_IMA_ADPCM		0x00000004 -#	define AFMT_U8			0x00000008 -#	define AFMT_S16_LE		0x00000010	/* Little endian signed 16*/ -#	define AFMT_S16_BE		0x00000020	/* Big endian signed 16 */ -#	define AFMT_S8			0x00000040 -#	define AFMT_U16_LE		0x00000080	/* Little endian U16 */ -#	define AFMT_U16_BE		0x00000100	/* Big endian U16 */ -#	define AFMT_MPEG		0x00000200	/* MPEG (2) audio */ -#	define AFMT_AC3		0x00000400	/* Dolby Digital AC3 */ - -/* - * Buffer status queries. - */ -typedef struct audio_buf_info { -			int fragments;	/* # of available fragments (partially usend ones not counted) */ -			int fragstotal;	/* Total # of fragments allocated */ -			int fragsize;	/* Size of a fragment in bytes */ - -			int bytes;	/* Available space in bytes (includes partially used fragments) */ -			/* Note! 'bytes' could be more than fragments*fragsize */ -		} audio_buf_info; - -#define SNDCTL_DSP_GETOSPACE		_SIOR ('P',12, audio_buf_info) -#define SNDCTL_DSP_GETISPACE		_SIOR ('P',13, audio_buf_info) -#define SNDCTL_DSP_NONBLOCK		_SIO  ('P',14) -#define SNDCTL_DSP_GETCAPS		_SIOR ('P',15, int) -#	define DSP_CAP_REVISION		0x000000ff	/* Bits for revision level (0 to 255) */ -#	define DSP_CAP_DUPLEX		0x00000100	/* Full duplex record/playback */ -#	define DSP_CAP_REALTIME		0x00000200	/* Real time capability */ -#	define DSP_CAP_BATCH		0x00000400	/* Device has some kind of */ -							/* internal buffers which may */ -							/* cause some delays and */ -							/* decrease precision of timing */ -#	define DSP_CAP_COPROC		0x00000800	/* Has a coprocessor */ -							/* Sometimes it's a DSP */ -							/* but usually not */ -#	define DSP_CAP_TRIGGER		0x00001000	/* Supports SETTRIGGER */ -#	define DSP_CAP_MMAP		0x00002000	/* Supports mmap() */ -#	define DSP_CAP_MULTI		0x00004000	/* support multiple open */ -#	define DSP_CAP_BIND		0x00008000	/* channel binding to front/rear/cneter/lfe */ - - -#define SNDCTL_DSP_GETTRIGGER		_SIOR ('P',16, int) -#define SNDCTL_DSP_SETTRIGGER		_SIOW ('P',16, int) -#	define PCM_ENABLE_INPUT		0x00000001 -#	define PCM_ENABLE_OUTPUT		0x00000002 - -typedef struct count_info { -		int bytes;	/* Total # of bytes processed */ -		int blocks;	/* # of fragment transitions since last time */ -		int ptr;	/* Current DMA pointer value */ -	} count_info; - -#define SNDCTL_DSP_GETIPTR		_SIOR ('P',17, count_info) -#define SNDCTL_DSP_GETOPTR		_SIOR ('P',18, count_info) - -typedef struct buffmem_desc { -		unsigned *buffer; -		int size; -	} buffmem_desc; -#define SNDCTL_DSP_MAPINBUF		_SIOR ('P', 19, buffmem_desc) -#define SNDCTL_DSP_MAPOUTBUF		_SIOR ('P', 20, buffmem_desc) -#define SNDCTL_DSP_SETSYNCRO		_SIO  ('P', 21) -#define SNDCTL_DSP_SETDUPLEX		_SIO  ('P', 22) -#define SNDCTL_DSP_GETODELAY		_SIOR ('P', 23, int) - -#define SNDCTL_DSP_GETCHANNELMASK		_SIOWR('P', 64, int) -#define SNDCTL_DSP_BIND_CHANNEL		_SIOWR('P', 65, int) -#	define DSP_BIND_QUERY		0x00000000 -#	define DSP_BIND_FRONT		0x00000001 -#	define DSP_BIND_SURR		0x00000002 -#	define DSP_BIND_CENTER_LFE	0x00000004 -#	define DSP_BIND_HANDSET		0x00000008 -#	define DSP_BIND_MIC		0x00000010 -#	define DSP_BIND_MODEM1		0x00000020 -#	define DSP_BIND_MODEM2		0x00000040 -#	define DSP_BIND_I2S		0x00000080 -#	define DSP_BIND_SPDIF		0x00000100 - -#define SNDCTL_DSP_SETSPDIF		_SIOW ('P', 66, int) -#define SNDCTL_DSP_GETSPDIF		_SIOR ('P', 67, int) -#	define SPDIF_PRO	0x0001 -#	define SPDIF_N_AUD	0x0002 -#	define SPDIF_COPY	0x0004 -#	define SPDIF_PRE	0x0008 -#	define SPDIF_CC		0x07f0 -#	define SPDIF_L		0x0800 -#	define SPDIF_DRS	0x4000 -#	define SPDIF_V		0x8000 - -/* - * Application's profile defines the way how playback underrun situations should be handled. - *  - *	APF_NORMAL (the default) and APF_NETWORK make the driver to cleanup the - *	playback buffer whenever an underrun occurs. This consumes some time - *	prevents looping the existing buffer. - *	APF_CPUINTENS is intended to be set by CPU intensive applications which - *	are likely to run out of time occasionally. In this mode the buffer cleanup is - *	disabled which saves CPU time but also let's the previous buffer content to - *	be played during the "pause" after the underrun. - */ -#define SNDCTL_DSP_PROFILE		_SIOW ('P', 23, int) -#define	  APF_NORMAL	0	/* Normal applications */ -#define	  APF_NETWORK	1	/* Underruns probably caused by an "external" delay */ -#define   APF_CPUINTENS 2	/* Underruns probably caused by "overheating" the CPU */ - -#define SOUND_PCM_READ_RATE		_SIOR ('P', 2, int) -#define SOUND_PCM_READ_CHANNELS		_SIOR ('P', 6, int) -#define SOUND_PCM_READ_BITS		_SIOR ('P', 5, int) -#define SOUND_PCM_READ_FILTER		_SIOR ('P', 7, int) - -/* Some alias names */ -#define SOUND_PCM_WRITE_BITS		SNDCTL_DSP_SETFMT -#define SOUND_PCM_WRITE_RATE		SNDCTL_DSP_SPEED -#define SOUND_PCM_POST			SNDCTL_DSP_POST -#define SOUND_PCM_RESET			SNDCTL_DSP_RESET -#define SOUND_PCM_SYNC			SNDCTL_DSP_SYNC -#define SOUND_PCM_SUBDIVIDE		SNDCTL_DSP_SUBDIVIDE -#define SOUND_PCM_SETFRAGMENT		SNDCTL_DSP_SETFRAGMENT -#define SOUND_PCM_GETFMTS		SNDCTL_DSP_GETFMTS -#define SOUND_PCM_SETFMT		SNDCTL_DSP_SETFMT -#define SOUND_PCM_GETOSPACE		SNDCTL_DSP_GETOSPACE -#define SOUND_PCM_GETISPACE		SNDCTL_DSP_GETISPACE -#define SOUND_PCM_NONBLOCK		SNDCTL_DSP_NONBLOCK -#define SOUND_PCM_GETCAPS		SNDCTL_DSP_GETCAPS -#define SOUND_PCM_GETTRIGGER		SNDCTL_DSP_GETTRIGGER -#define SOUND_PCM_SETTRIGGER		SNDCTL_DSP_SETTRIGGER -#define SOUND_PCM_SETSYNCRO		SNDCTL_DSP_SETSYNCRO -#define SOUND_PCM_GETIPTR		SNDCTL_DSP_GETIPTR -#define SOUND_PCM_GETOPTR		SNDCTL_DSP_GETOPTR -#define SOUND_PCM_MAPINBUF		SNDCTL_DSP_MAPINBUF -#define SOUND_PCM_MAPOUTBUF		SNDCTL_DSP_MAPOUTBUF - -/* - * ioctl calls to be used in communication with coprocessors and - * DSP chips. - */ - -typedef struct copr_buffer { -		int command;	/* Set to 0 if not used */ -		int flags; -#define CPF_NONE		0x0000 -#define CPF_FIRST		0x0001	/* First block */ -#define CPF_LAST		0x0002	/* Last block */ -		int len; -		int offs;	/* If required by the device (0 if not used) */ - -		unsigned char data[4000]; /* NOTE! 4000 is not 4k */ -	} copr_buffer; - -typedef struct copr_debug_buf { -		int command;	/* Used internally. Set to 0 */ -		int parm1; -		int parm2; -		int flags;	 -		int len;	/* Length of data in bytes */ -	} copr_debug_buf; - -typedef struct copr_msg { -		int len; -		unsigned char data[4000]; -	} copr_msg; - -#define SNDCTL_COPR_RESET             _SIO  ('C',  0) -#define SNDCTL_COPR_LOAD	      _SIOWR('C',  1, copr_buffer) -#define SNDCTL_COPR_RDATA	      _SIOWR('C',  2, copr_debug_buf) -#define SNDCTL_COPR_RCODE	      _SIOWR('C',  3, copr_debug_buf) -#define SNDCTL_COPR_WDATA	      _SIOW ('C',  4, copr_debug_buf) -#define SNDCTL_COPR_WCODE	      _SIOW ('C',  5, copr_debug_buf) -#define SNDCTL_COPR_RUN		      _SIOWR('C',  6, copr_debug_buf) -#define SNDCTL_COPR_HALT	      _SIOWR('C',  7, copr_debug_buf) -#define SNDCTL_COPR_SENDMSG	      _SIOWR('C',  8, copr_msg) -#define SNDCTL_COPR_RCVMSG	      _SIOR ('C',  9, copr_msg) - -/********************************************* - * IOCTL commands for /dev/mixer - */ -	 -/*  - * Mixer devices - * - * There can be up to 20 different analog mixer channels. The - * SOUND_MIXER_NRDEVICES gives the currently supported maximum.  - * The SOUND_MIXER_READ_DEVMASK returns a bitmask which tells - * the devices supported by the particular mixer. - */ - -#define SOUND_MIXER_NRDEVICES	25 -#define SOUND_MIXER_VOLUME	0 -#define SOUND_MIXER_BASS	1 -#define SOUND_MIXER_TREBLE	2 -#define SOUND_MIXER_SYNTH	3 -#define SOUND_MIXER_PCM		4 -#define SOUND_MIXER_SPEAKER	5 -#define SOUND_MIXER_LINE	6 -#define SOUND_MIXER_MIC		7 -#define SOUND_MIXER_CD		8 -#define SOUND_MIXER_IMIX	9	/*  Recording monitor  */ -#define SOUND_MIXER_ALTPCM	10 -#define SOUND_MIXER_RECLEV	11	/* Recording level */ -#define SOUND_MIXER_IGAIN	12	/* Input gain */ -#define SOUND_MIXER_OGAIN	13	/* Output gain */ -/*  - * The AD1848 codec and compatibles have three line level inputs - * (line, aux1 and aux2). Since each card manufacturer have assigned - * different meanings to these inputs, it's inpractical to assign - * specific meanings (line, cd, synth etc.) to them. - */ -#define SOUND_MIXER_LINE1	14	/* Input source 1  (aux1) */ -#define SOUND_MIXER_LINE2	15	/* Input source 2  (aux2) */ -#define SOUND_MIXER_LINE3	16	/* Input source 3  (line) */ -#define SOUND_MIXER_DIGITAL1	17	/* Digital (input) 1 */ -#define SOUND_MIXER_DIGITAL2	18	/* Digital (input) 2 */ -#define SOUND_MIXER_DIGITAL3	19	/* Digital (input) 3 */ -#define SOUND_MIXER_PHONEIN	20	/* Phone input */ -#define SOUND_MIXER_PHONEOUT	21	/* Phone output */ -#define SOUND_MIXER_VIDEO	22	/* Video/TV (audio) in */ -#define SOUND_MIXER_RADIO	23	/* Radio in */ -#define SOUND_MIXER_MONITOR	24	/* Monitor (usually mic) volume */ - -/* Some on/off settings (SOUND_SPECIAL_MIN - SOUND_SPECIAL_MAX) */ -/* Not counted to SOUND_MIXER_NRDEVICES, but use the same number space */ -#define SOUND_ONOFF_MIN		28 -#define SOUND_ONOFF_MAX		30 - -/* Note!	Number 31 cannot be used since the sign bit is reserved */ -#define SOUND_MIXER_NONE	31 - -/* - * The following unsupported macros are no longer functional. - * Use SOUND_MIXER_PRIVATE# macros in future. - */ -#define SOUND_MIXER_ENHANCE	SOUND_MIXER_NONE -#define SOUND_MIXER_MUTE	SOUND_MIXER_NONE -#define SOUND_MIXER_LOUD	SOUND_MIXER_NONE - - -#define SOUND_DEVICE_LABELS	{"Vol  ", "Bass ", "Trebl", "Synth", "Pcm  ", "Spkr ", "Line ", \ -				 "Mic  ", "CD   ", "Mix  ", "Pcm2 ", "Rec  ", "IGain", "OGain", \ -				 "Line1", "Line2", "Line3", "Digital1", "Digital2", "Digital3", \ -				 "PhoneIn", "PhoneOut", "Video", "Radio", "Monitor"} - -#define SOUND_DEVICE_NAMES	{"vol", "bass", "treble", "synth", "pcm", "speaker", "line", \ -				 "mic", "cd", "mix", "pcm2", "rec", "igain", "ogain", \ -				 "line1", "line2", "line3", "dig1", "dig2", "dig3", \ -				 "phin", "phout", "video", "radio", "monitor"} - -/*	Device bitmask identifiers	*/ - -#define SOUND_MIXER_RECSRC	0xff	/* Arg contains a bit for each recording source */ -#define SOUND_MIXER_DEVMASK	0xfe	/* Arg contains a bit for each supported device */ -#define SOUND_MIXER_RECMASK	0xfd	/* Arg contains a bit for each supported recording source */ -#define SOUND_MIXER_CAPS	0xfc -#	define SOUND_CAP_EXCL_INPUT	0x00000001	/* Only one recording source at a time */ -#define SOUND_MIXER_STEREODEVS	0xfb	/* Mixer channels supporting stereo */ -#define SOUND_MIXER_OUTSRC	0xfa	/* Arg contains a bit for each input source to output */ -#define SOUND_MIXER_OUTMASK	0xf9	/* Arg contains a bit for each supported input source to output */ - -/*	Device mask bits	*/ - -#define SOUND_MASK_VOLUME	(1 << SOUND_MIXER_VOLUME) -#define SOUND_MASK_BASS		(1 << SOUND_MIXER_BASS) -#define SOUND_MASK_TREBLE	(1 << SOUND_MIXER_TREBLE) -#define SOUND_MASK_SYNTH	(1 << SOUND_MIXER_SYNTH) -#define SOUND_MASK_PCM		(1 << SOUND_MIXER_PCM) -#define SOUND_MASK_SPEAKER	(1 << SOUND_MIXER_SPEAKER) -#define SOUND_MASK_LINE		(1 << SOUND_MIXER_LINE) -#define SOUND_MASK_MIC		(1 << SOUND_MIXER_MIC) -#define SOUND_MASK_CD		(1 << SOUND_MIXER_CD) -#define SOUND_MASK_IMIX		(1 << SOUND_MIXER_IMIX) -#define SOUND_MASK_ALTPCM	(1 << SOUND_MIXER_ALTPCM) -#define SOUND_MASK_RECLEV	(1 << SOUND_MIXER_RECLEV) -#define SOUND_MASK_IGAIN	(1 << SOUND_MIXER_IGAIN) -#define SOUND_MASK_OGAIN	(1 << SOUND_MIXER_OGAIN) -#define SOUND_MASK_LINE1	(1 << SOUND_MIXER_LINE1) -#define SOUND_MASK_LINE2	(1 << SOUND_MIXER_LINE2) -#define SOUND_MASK_LINE3	(1 << SOUND_MIXER_LINE3) -#define SOUND_MASK_DIGITAL1	(1 << SOUND_MIXER_DIGITAL1) -#define SOUND_MASK_DIGITAL2	(1 << SOUND_MIXER_DIGITAL2) -#define SOUND_MASK_DIGITAL3	(1 << SOUND_MIXER_DIGITAL3) -#define SOUND_MASK_PHONEIN	(1 << SOUND_MIXER_PHONEIN) -#define SOUND_MASK_PHONEOUT	(1 << SOUND_MIXER_PHONEOUT) -#define SOUND_MASK_RADIO	(1 << SOUND_MIXER_RADIO) -#define SOUND_MASK_VIDEO	(1 << SOUND_MIXER_VIDEO) -#define SOUND_MASK_MONITOR	(1 << SOUND_MIXER_MONITOR) - -/* Obsolete macros */ -#define SOUND_MASK_MUTE		(1 << SOUND_MIXER_MUTE) -#define SOUND_MASK_ENHANCE	(1 << SOUND_MIXER_ENHANCE) -#define SOUND_MASK_LOUD		(1 << SOUND_MIXER_LOUD) - -#define MIXER_READ(dev)		_SIOR('M', dev, int) -#define SOUND_MIXER_READ_VOLUME		MIXER_READ(SOUND_MIXER_VOLUME) -#define SOUND_MIXER_READ_BASS		MIXER_READ(SOUND_MIXER_BASS) -#define SOUND_MIXER_READ_TREBLE		MIXER_READ(SOUND_MIXER_TREBLE) -#define SOUND_MIXER_READ_SYNTH		MIXER_READ(SOUND_MIXER_SYNTH) -#define SOUND_MIXER_READ_PCM		MIXER_READ(SOUND_MIXER_PCM) -#define SOUND_MIXER_READ_SPEAKER	MIXER_READ(SOUND_MIXER_SPEAKER) -#define SOUND_MIXER_READ_LINE		MIXER_READ(SOUND_MIXER_LINE) -#define SOUND_MIXER_READ_MIC		MIXER_READ(SOUND_MIXER_MIC) -#define SOUND_MIXER_READ_CD		MIXER_READ(SOUND_MIXER_CD) -#define SOUND_MIXER_READ_IMIX		MIXER_READ(SOUND_MIXER_IMIX) -#define SOUND_MIXER_READ_ALTPCM		MIXER_READ(SOUND_MIXER_ALTPCM) -#define SOUND_MIXER_READ_RECLEV		MIXER_READ(SOUND_MIXER_RECLEV) -#define SOUND_MIXER_READ_IGAIN		MIXER_READ(SOUND_MIXER_IGAIN) -#define SOUND_MIXER_READ_OGAIN		MIXER_READ(SOUND_MIXER_OGAIN) -#define SOUND_MIXER_READ_LINE1		MIXER_READ(SOUND_MIXER_LINE1) -#define SOUND_MIXER_READ_LINE2		MIXER_READ(SOUND_MIXER_LINE2) -#define SOUND_MIXER_READ_LINE3		MIXER_READ(SOUND_MIXER_LINE3) - -/* Obsolete macros */ -#define SOUND_MIXER_READ_MUTE		MIXER_READ(SOUND_MIXER_MUTE) -#define SOUND_MIXER_READ_ENHANCE	MIXER_READ(SOUND_MIXER_ENHANCE) -#define SOUND_MIXER_READ_LOUD		MIXER_READ(SOUND_MIXER_LOUD) - -#define SOUND_MIXER_READ_RECSRC		MIXER_READ(SOUND_MIXER_RECSRC) -#define SOUND_MIXER_READ_DEVMASK	MIXER_READ(SOUND_MIXER_DEVMASK) -#define SOUND_MIXER_READ_RECMASK	MIXER_READ(SOUND_MIXER_RECMASK) -#define SOUND_MIXER_READ_STEREODEVS	MIXER_READ(SOUND_MIXER_STEREODEVS) -#define SOUND_MIXER_READ_CAPS		MIXER_READ(SOUND_MIXER_CAPS) - -#define MIXER_WRITE(dev)		_SIOWR('M', dev, int) -#define SOUND_MIXER_WRITE_VOLUME	MIXER_WRITE(SOUND_MIXER_VOLUME) -#define SOUND_MIXER_WRITE_BASS		MIXER_WRITE(SOUND_MIXER_BASS) -#define SOUND_MIXER_WRITE_TREBLE	MIXER_WRITE(SOUND_MIXER_TREBLE) -#define SOUND_MIXER_WRITE_SYNTH		MIXER_WRITE(SOUND_MIXER_SYNTH) -#define SOUND_MIXER_WRITE_PCM		MIXER_WRITE(SOUND_MIXER_PCM) -#define SOUND_MIXER_WRITE_SPEAKER	MIXER_WRITE(SOUND_MIXER_SPEAKER) -#define SOUND_MIXER_WRITE_LINE		MIXER_WRITE(SOUND_MIXER_LINE) -#define SOUND_MIXER_WRITE_MIC		MIXER_WRITE(SOUND_MIXER_MIC) -#define SOUND_MIXER_WRITE_CD		MIXER_WRITE(SOUND_MIXER_CD) -#define SOUND_MIXER_WRITE_IMIX		MIXER_WRITE(SOUND_MIXER_IMIX) -#define SOUND_MIXER_WRITE_ALTPCM	MIXER_WRITE(SOUND_MIXER_ALTPCM) -#define SOUND_MIXER_WRITE_RECLEV	MIXER_WRITE(SOUND_MIXER_RECLEV) -#define SOUND_MIXER_WRITE_IGAIN		MIXER_WRITE(SOUND_MIXER_IGAIN) -#define SOUND_MIXER_WRITE_OGAIN		MIXER_WRITE(SOUND_MIXER_OGAIN) -#define SOUND_MIXER_WRITE_LINE1		MIXER_WRITE(SOUND_MIXER_LINE1) -#define SOUND_MIXER_WRITE_LINE2		MIXER_WRITE(SOUND_MIXER_LINE2) -#define SOUND_MIXER_WRITE_LINE3		MIXER_WRITE(SOUND_MIXER_LINE3) - -/* Obsolete macros */ -#define SOUND_MIXER_WRITE_MUTE		MIXER_WRITE(SOUND_MIXER_MUTE) -#define SOUND_MIXER_WRITE_ENHANCE	MIXER_WRITE(SOUND_MIXER_ENHANCE) -#define SOUND_MIXER_WRITE_LOUD		MIXER_WRITE(SOUND_MIXER_LOUD) - -#define SOUND_MIXER_WRITE_RECSRC	MIXER_WRITE(SOUND_MIXER_RECSRC) - -typedef struct mixer_info -{ -  char id[16]; -  char name[32]; -  int  modify_counter; -  int fillers[10]; -} mixer_info; - -typedef struct _old_mixer_info /* Obsolete */ -{ -  char id[16]; -  char name[32]; -} _old_mixer_info; - -#define SOUND_MIXER_INFO		_SIOR ('M', 101, mixer_info) -#define SOUND_OLD_MIXER_INFO		_SIOR ('M', 101, _old_mixer_info) - -/* - * A mechanism for accessing "proprietary" mixer features. This method - * permits passing 128 bytes of arbitrary data between a mixer application - * and the mixer driver. Interpretation of the record is defined by - * the particular mixer driver. - */ -typedef unsigned char mixer_record[128]; - -#define SOUND_MIXER_ACCESS		_SIOWR('M', 102, mixer_record) - -/* - * Two ioctls for special souncard function - */ -#define SOUND_MIXER_AGC  _SIOWR('M', 103, int) -#define SOUND_MIXER_3DSE  _SIOWR('M', 104, int) - -/* - * The SOUND_MIXER_PRIVATE# commands can be redefined by low level drivers. - * These features can be used when accessing device specific features. - */ -#define SOUND_MIXER_PRIVATE1		_SIOWR('M', 111, int) -#define SOUND_MIXER_PRIVATE2		_SIOWR('M', 112, int) -#define SOUND_MIXER_PRIVATE3		_SIOWR('M', 113, int) -#define SOUND_MIXER_PRIVATE4		_SIOWR('M', 114, int) -#define SOUND_MIXER_PRIVATE5		_SIOWR('M', 115, int) - -/* - * SOUND_MIXER_GETLEVELS and SOUND_MIXER_SETLEVELS calls can be used - * for querying current mixer settings from the driver and for loading - * default volume settings _prior_ activating the mixer (loading - * doesn't affect current state of the mixer hardware). These calls - * are for internal use only. - */ - -typedef struct mixer_vol_table { -  int num;	/* Index to volume table */ -  char name[32]; -  int levels[32]; -} mixer_vol_table; - -#define SOUND_MIXER_GETLEVELS		_SIOWR('M', 116, mixer_vol_table) -#define SOUND_MIXER_SETLEVELS		_SIOWR('M', 117, mixer_vol_table) - -/*  - * An ioctl for identifying the driver version. It will return value - * of the SOUND_VERSION macro used when compiling the driver. - * This call was introduced in OSS version 3.6 and it will not work - * with earlier versions (returns EINVAL). - */ -#define OSS_GETVERSION			_SIOR ('M', 118, int) - -/* - * Level 2 event types for /dev/sequencer - */ - -/* - * The 4 most significant bits of byte 0 specify the class of - * the event:  - * - *	0x8X = system level events, - *	0x9X = device/port specific events, event[1] = device/port, - *		The last 4 bits give the subtype: - *			0x02	= Channel event (event[3] = chn). - *			0x01	= note event (event[4] = note). - *			(0x01 is not used alone but always with bit 0x02). - *	       event[2] = MIDI message code (0x80=note off etc.) - * - */ - -#define EV_SEQ_LOCAL		0x80 -#define EV_TIMING		0x81 -#define EV_CHN_COMMON		0x92 -#define EV_CHN_VOICE		0x93 -#define EV_SYSEX		0x94 -/* - * Event types 200 to 220 are reserved for application use. - * These numbers will not be used by the driver. - */ - -/* - * Events for event type EV_CHN_VOICE - */ - -#define MIDI_NOTEOFF		0x80 -#define MIDI_NOTEON		0x90 -#define MIDI_KEY_PRESSURE	0xA0 - -/* - * Events for event type EV_CHN_COMMON - */ - -#define MIDI_CTL_CHANGE		0xB0 -#define MIDI_PGM_CHANGE		0xC0 -#define MIDI_CHN_PRESSURE	0xD0 -#define MIDI_PITCH_BEND		0xE0 - -#define MIDI_SYSTEM_PREFIX	0xF0 - -/* - * Timer event types - */ -#define TMR_WAIT_REL		1	/* Time relative to the prev time */ -#define TMR_WAIT_ABS		2	/* Absolute time since TMR_START */ -#define TMR_STOP		3 -#define TMR_START		4 -#define TMR_CONTINUE		5 -#define TMR_TEMPO		6 -#define TMR_ECHO		8 -#define TMR_CLOCK		9	/* MIDI clock */ -#define TMR_SPP			10	/* Song position pointer */ -#define TMR_TIMESIG		11	/* Time signature */ - -/* - *	Local event types - */ -#define LOCL_STARTAUDIO		1 - -#if !defined(__KERNEL__) || defined(USE_SEQ_MACROS) -/* - *	Some convenience macros to simplify programming of the - *	/dev/sequencer interface - * - *	This is a legacy interface for applications written against - *	the OSSlib-3.8 style interface. It is no longer possible - *	to actually link against OSSlib with this header, but we - *	still provide these macros for programs using them. - * - *	If you want to use OSSlib, it is recommended that you get - *	the GPL version of OSS-4.x and build against that version - *	of the header. - * - *	We redefine the extern keyword so that make headers_check - *	does not complain about SEQ_USE_EXTBUF. - */ -#define SEQ_DECLAREBUF()		SEQ_USE_EXTBUF() - -void seqbuf_dump(void);	/* This function must be provided by programs */ - -#define SEQ_PM_DEFINES int __foo_bar___ - -#define SEQ_LOAD_GMINSTR(dev, instr) -#define SEQ_LOAD_GMDRUM(dev, drum) - -#define _SEQ_EXTERN extern -#define SEQ_USE_EXTBUF() \ -		_SEQ_EXTERN unsigned char _seqbuf[]; \ -		_SEQ_EXTERN int _seqbuflen; _SEQ_EXTERN int _seqbufptr - -#ifndef USE_SIMPLE_MACROS -/* Sample seqbuf_dump() implementation: - * - *	SEQ_DEFINEBUF (2048);	-- Defines a buffer for 2048 bytes - * - *	int seqfd;		-- The file descriptor for /dev/sequencer. - * - *	void - *	seqbuf_dump () - *	{ - *	  if (_seqbufptr) - *	    if (write (seqfd, _seqbuf, _seqbufptr) == -1) - *	      { - *		perror ("write /dev/sequencer"); - *		exit (-1); - *	      } - *	  _seqbufptr = 0; - *	} - */ - -#define SEQ_DEFINEBUF(len)		unsigned char _seqbuf[len]; int _seqbuflen = len;int _seqbufptr = 0 -#define _SEQ_NEEDBUF(len)		if ((_seqbufptr+(len)) > _seqbuflen) seqbuf_dump() -#define _SEQ_ADVBUF(len)		_seqbufptr += len -#define SEQ_DUMPBUF			seqbuf_dump -#else -/* - * This variation of the sequencer macros is used just to format one event - * using fixed buffer. - *  - * The program using the macro library must define the following macros before - * using this library. - * - * #define _seqbuf 		 name of the buffer (unsigned char[])  - * #define _SEQ_ADVBUF(len)	 If the applic needs to know the exact - *				 size of the event, this macro can be used. - *				 Otherwise this must be defined as empty. - * #define _seqbufptr		 Define the name of index variable or 0 if - *				 not required.  - */ -#define _SEQ_NEEDBUF(len)	/* empty */ -#endif - -#define SEQ_VOLUME_MODE(dev, mode)	{_SEQ_NEEDBUF(8);\ -					_seqbuf[_seqbufptr] = SEQ_EXTENDED;\ -					_seqbuf[_seqbufptr+1] = SEQ_VOLMODE;\ -					_seqbuf[_seqbufptr+2] = (dev);\ -					_seqbuf[_seqbufptr+3] = (mode);\ -					_seqbuf[_seqbufptr+4] = 0;\ -					_seqbuf[_seqbufptr+5] = 0;\ -					_seqbuf[_seqbufptr+6] = 0;\ -					_seqbuf[_seqbufptr+7] = 0;\ -					_SEQ_ADVBUF(8);} - -/* - * Midi voice messages - */ - -#define _CHN_VOICE(dev, event, chn, note, parm) \ -					{_SEQ_NEEDBUF(8);\ -					_seqbuf[_seqbufptr] = EV_CHN_VOICE;\ -					_seqbuf[_seqbufptr+1] = (dev);\ -					_seqbuf[_seqbufptr+2] = (event);\ -					_seqbuf[_seqbufptr+3] = (chn);\ -					_seqbuf[_seqbufptr+4] = (note);\ -					_seqbuf[_seqbufptr+5] = (parm);\ -					_seqbuf[_seqbufptr+6] = (0);\ -					_seqbuf[_seqbufptr+7] = 0;\ -					_SEQ_ADVBUF(8);} - -#define SEQ_START_NOTE(dev, chn, note, vol) \ -		_CHN_VOICE(dev, MIDI_NOTEON, chn, note, vol) - -#define SEQ_STOP_NOTE(dev, chn, note, vol) \ -		_CHN_VOICE(dev, MIDI_NOTEOFF, chn, note, vol) - -#define SEQ_KEY_PRESSURE(dev, chn, note, pressure) \ -		_CHN_VOICE(dev, MIDI_KEY_PRESSURE, chn, note, pressure) - -/* - * Midi channel messages - */ - -#define _CHN_COMMON(dev, event, chn, p1, p2, w14) \ -					{_SEQ_NEEDBUF(8);\ -					_seqbuf[_seqbufptr] = EV_CHN_COMMON;\ -					_seqbuf[_seqbufptr+1] = (dev);\ -					_seqbuf[_seqbufptr+2] = (event);\ -					_seqbuf[_seqbufptr+3] = (chn);\ -					_seqbuf[_seqbufptr+4] = (p1);\ -					_seqbuf[_seqbufptr+5] = (p2);\ -					*(short *)&_seqbuf[_seqbufptr+6] = (w14);\ -					_SEQ_ADVBUF(8);} -/* - * SEQ_SYSEX permits sending of sysex messages. (It may look that it permits - * sending any MIDI bytes but it's absolutely not possible. Trying to do - * so _will_ cause problems with MPU401 intelligent mode). - * - * Sysex messages are sent in blocks of 1 to 6 bytes. Longer messages must be  - * sent by calling SEQ_SYSEX() several times (there must be no other events - * between them). First sysex fragment must have 0xf0 in the first byte - * and the last byte (buf[len-1] of the last fragment must be 0xf7. No byte - * between these sysex start and end markers cannot be larger than 0x7f. Also - * lengths of each fragments (except the last one) must be 6. - * - * Breaking the above rules may work with some MIDI ports but is likely to - * cause fatal problems with some other devices (such as MPU401). - */ -#define SEQ_SYSEX(dev, buf, len) \ -					{int ii, ll=(len); \ -					 unsigned char *bufp=buf;\ -					 if (ll>6)ll=6;\ -					_SEQ_NEEDBUF(8);\ -					_seqbuf[_seqbufptr] = EV_SYSEX;\ -					_seqbuf[_seqbufptr+1] = (dev);\ -					for(ii=0;ii<ll;ii++)\ -					   _seqbuf[_seqbufptr+ii+2] = bufp[ii];\ -					for(ii=ll;ii<6;ii++)\ -					   _seqbuf[_seqbufptr+ii+2] = 0xff;\ -					_SEQ_ADVBUF(8);} - -#define SEQ_CHN_PRESSURE(dev, chn, pressure) \ -		_CHN_COMMON(dev, MIDI_CHN_PRESSURE, chn, pressure, 0, 0) - -#define SEQ_SET_PATCH SEQ_PGM_CHANGE -#define SEQ_PGM_CHANGE(dev, chn, patch) \ -		_CHN_COMMON(dev, MIDI_PGM_CHANGE, chn, patch, 0, 0) - -#define SEQ_CONTROL(dev, chn, controller, value) \ -		_CHN_COMMON(dev, MIDI_CTL_CHANGE, chn, controller, 0, value) - -#define SEQ_BENDER(dev, chn, value) \ -		_CHN_COMMON(dev, MIDI_PITCH_BEND, chn, 0, 0, value) - - -#define SEQ_V2_X_CONTROL(dev, voice, controller, value)	{_SEQ_NEEDBUF(8);\ -					_seqbuf[_seqbufptr] = SEQ_EXTENDED;\ -					_seqbuf[_seqbufptr+1] = SEQ_CONTROLLER;\ -					_seqbuf[_seqbufptr+2] = (dev);\ -					_seqbuf[_seqbufptr+3] = (voice);\ -					_seqbuf[_seqbufptr+4] = (controller);\ -					_seqbuf[_seqbufptr+5] = ((value)&0xff);\ -					_seqbuf[_seqbufptr+6] = ((value>>8)&0xff);\ -					_seqbuf[_seqbufptr+7] = 0;\ -					_SEQ_ADVBUF(8);} -/* - * The following 5 macros are incorrectly implemented and obsolete. - * Use SEQ_BENDER and SEQ_CONTROL (with proper controller) instead. - */ -#define SEQ_PITCHBEND(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER, value) -#define SEQ_BENDER_RANGE(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER_RANGE, value) -#define SEQ_EXPRESSION(dev, voice, value) SEQ_CONTROL(dev, voice, CTL_EXPRESSION, value*128) -#define SEQ_MAIN_VOLUME(dev, voice, value) SEQ_CONTROL(dev, voice, CTL_MAIN_VOLUME, (value*16383)/100) -#define SEQ_PANNING(dev, voice, pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos+128) / 2) - -/* - * Timing and synchronization macros - */ - -#define _TIMER_EVENT(ev, parm)		{_SEQ_NEEDBUF(8);\ -				 	_seqbuf[_seqbufptr+0] = EV_TIMING; \ -				 	_seqbuf[_seqbufptr+1] = (ev); \ -					_seqbuf[_seqbufptr+2] = 0;\ -					_seqbuf[_seqbufptr+3] = 0;\ -				 	*(unsigned int *)&_seqbuf[_seqbufptr+4] = (parm); \ -					_SEQ_ADVBUF(8);} - -#define SEQ_START_TIMER()		_TIMER_EVENT(TMR_START, 0) -#define SEQ_STOP_TIMER()		_TIMER_EVENT(TMR_STOP, 0) -#define SEQ_CONTINUE_TIMER()		_TIMER_EVENT(TMR_CONTINUE, 0) -#define SEQ_WAIT_TIME(ticks)		_TIMER_EVENT(TMR_WAIT_ABS, ticks) -#define SEQ_DELTA_TIME(ticks)		_TIMER_EVENT(TMR_WAIT_REL, ticks) -#define SEQ_ECHO_BACK(key)		_TIMER_EVENT(TMR_ECHO, key) -#define SEQ_SET_TEMPO(value)		_TIMER_EVENT(TMR_TEMPO, value) -#define SEQ_SONGPOS(pos)		_TIMER_EVENT(TMR_SPP, pos) -#define SEQ_TIME_SIGNATURE(sig)		_TIMER_EVENT(TMR_TIMESIG, sig) - -/* - * Local control events - */ - -#define _LOCAL_EVENT(ev, parm)		{_SEQ_NEEDBUF(8);\ -				 	_seqbuf[_seqbufptr+0] = EV_SEQ_LOCAL; \ -				 	_seqbuf[_seqbufptr+1] = (ev); \ -					_seqbuf[_seqbufptr+2] = 0;\ -					_seqbuf[_seqbufptr+3] = 0;\ -				 	*(unsigned int *)&_seqbuf[_seqbufptr+4] = (parm); \ -					_SEQ_ADVBUF(8);} - -#define SEQ_PLAYAUDIO(devmask)		_LOCAL_EVENT(LOCL_STARTAUDIO, devmask) -/* - * Events for the level 1 interface only  - */ - -#define SEQ_MIDIOUT(device, byte)	{_SEQ_NEEDBUF(4);\ -					_seqbuf[_seqbufptr] = SEQ_MIDIPUTC;\ -					_seqbuf[_seqbufptr+1] = (byte);\ -					_seqbuf[_seqbufptr+2] = (device);\ -					_seqbuf[_seqbufptr+3] = 0;\ -					_SEQ_ADVBUF(4);} - -/* - * Patch loading. - */ -#define SEQ_WRPATCH(patchx, len) \ -		{if (_seqbufptr) SEQ_DUMPBUF();\ -		 if (write(seqfd, (char*)(patchx), len)==-1) \ -		    perror("Write patch: /dev/sequencer");} -#define SEQ_WRPATCH2(patchx, len) \ -		(SEQ_DUMPBUF(), write(seqfd, (char*)(patchx), len)) - -#endif  #endif diff --git a/include/linux/stat.h b/include/linux/stat.h index 46132409a3f..075cb0c7eb2 100644 --- a/include/linux/stat.h +++ b/include/linux/stat.h @@ -1,52 +1,10 @@  #ifndef _LINUX_STAT_H  #define _LINUX_STAT_H -#ifdef __KERNEL__  #include <asm/stat.h> +#include <uapi/linux/stat.h> -#endif - -#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) - -#define S_IFMT  00170000 -#define S_IFSOCK 0140000 -#define S_IFLNK	 0120000 -#define S_IFREG  0100000 -#define S_IFBLK  0060000 -#define S_IFDIR  0040000 -#define S_IFCHR  0020000 -#define S_IFIFO  0010000 -#define S_ISUID  0004000 -#define S_ISGID  0002000 -#define S_ISVTX  0001000 - -#define S_ISLNK(m)	(((m) & S_IFMT) == S_IFLNK) -#define S_ISREG(m)	(((m) & S_IFMT) == S_IFREG) -#define S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR) -#define S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR) -#define S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK) -#define S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO) -#define S_ISSOCK(m)	(((m) & S_IFMT) == S_IFSOCK) - -#define S_IRWXU 00700 -#define S_IRUSR 00400 -#define S_IWUSR 00200 -#define S_IXUSR 00100 - -#define S_IRWXG 00070 -#define S_IRGRP 00040 -#define S_IWGRP 00020 -#define S_IXGRP 00010 - -#define S_IRWXO 00007 -#define S_IROTH 00004 -#define S_IWOTH 00002 -#define S_IXOTH 00001 - -#endif - -#ifdef __KERNEL__  #define S_IRWXUGO	(S_IRWXU|S_IRWXG|S_IRWXO)  #define S_IALLUGO	(S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)  #define S_IRUGO		(S_IRUSR|S_IRGRP|S_IROTH) @@ -77,5 +35,3 @@ struct kstat {  };  #endif - -#endif diff --git a/include/linux/stddef.h b/include/linux/stddef.h index 1747b6787b9..f4aec0e75c3 100644 --- a/include/linux/stddef.h +++ b/include/linux/stddef.h @@ -1,9 +1,8 @@  #ifndef _LINUX_STDDEF_H  #define _LINUX_STDDEF_H -#include <linux/compiler.h> +#include <uapi/linux/stddef.h> -#ifdef __KERNEL__  #undef NULL  #define NULL ((void *)0) @@ -19,6 +18,4 @@ enum {  #else  #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)  #endif -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/string.h b/include/linux/string.h index b9178812d9d..630125818ca 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -1,16 +1,12 @@  #ifndef _LINUX_STRING_H_  #define _LINUX_STRING_H_ -/* We don't want strings.h stuff being used by user stuff by accident */ - -#ifndef __KERNEL__ -#include <string.h> -#else  #include <linux/compiler.h>	/* for inline */  #include <linux/types.h>	/* for size_t */  #include <linux/stddef.h>	/* for NULL */  #include <stdarg.h> +#include <uapi/linux/string.h>  extern char *strndup_user(const char __user *, long);  extern void *memdup_user(const void __user *, size_t); @@ -147,5 +143,4 @@ static inline bool strstarts(const char *str, const char *prefix)  extern size_t memweight(const void *ptr, size_t bytes); -#endif /* __KERNEL__ */  #endif /* _LINUX_STRING_H_ */ diff --git a/include/linux/suspend_ioctls.h b/include/linux/suspend_ioctls.h deleted file mode 100644 index 0b30382984f..00000000000 --- a/include/linux/suspend_ioctls.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _LINUX_SUSPEND_IOCTLS_H -#define _LINUX_SUSPEND_IOCTLS_H - -#include <linux/types.h> -/* - * This structure is used to pass the values needed for the identification - * of the resume swap area from a user space to the kernel via the - * SNAPSHOT_SET_SWAP_AREA ioctl - */ -struct resume_swap_area { -	__kernel_loff_t offset; -	__u32 dev; -} __attribute__((packed)); - -#define SNAPSHOT_IOC_MAGIC	'3' -#define SNAPSHOT_FREEZE			_IO(SNAPSHOT_IOC_MAGIC, 1) -#define SNAPSHOT_UNFREEZE		_IO(SNAPSHOT_IOC_MAGIC, 2) -#define SNAPSHOT_ATOMIC_RESTORE		_IO(SNAPSHOT_IOC_MAGIC, 4) -#define SNAPSHOT_FREE			_IO(SNAPSHOT_IOC_MAGIC, 5) -#define SNAPSHOT_FREE_SWAP_PAGES	_IO(SNAPSHOT_IOC_MAGIC, 9) -#define SNAPSHOT_S2RAM			_IO(SNAPSHOT_IOC_MAGIC, 11) -#define SNAPSHOT_SET_SWAP_AREA		_IOW(SNAPSHOT_IOC_MAGIC, 13, \ -							struct resume_swap_area) -#define SNAPSHOT_GET_IMAGE_SIZE		_IOR(SNAPSHOT_IOC_MAGIC, 14, __kernel_loff_t) -#define SNAPSHOT_PLATFORM_SUPPORT	_IO(SNAPSHOT_IOC_MAGIC, 15) -#define SNAPSHOT_POWER_OFF		_IO(SNAPSHOT_IOC_MAGIC, 16) -#define SNAPSHOT_CREATE_IMAGE		_IOW(SNAPSHOT_IOC_MAGIC, 17, int) -#define SNAPSHOT_PREF_IMAGE_SIZE	_IO(SNAPSHOT_IOC_MAGIC, 18) -#define SNAPSHOT_AVAIL_SWAP_SIZE	_IOR(SNAPSHOT_IOC_MAGIC, 19, __kernel_loff_t) -#define SNAPSHOT_ALLOC_SWAP_PAGE	_IOR(SNAPSHOT_IOC_MAGIC, 20, __kernel_loff_t) -#define SNAPSHOT_IOC_MAXNR	20 - -#endif /* _LINUX_SUSPEND_IOCTLS_H */ diff --git a/include/linux/swab.h b/include/linux/swab.h index ea0c02fd516..9ad3c60f6ca 100644 --- a/include/linux/swab.h +++ b/include/linux/swab.h @@ -1,284 +1,8 @@  #ifndef _LINUX_SWAB_H  #define _LINUX_SWAB_H -#include <linux/types.h> -#include <linux/compiler.h> -#include <asm/swab.h> +#include <uapi/linux/swab.h> -/* - * casts are necessary for constants, because we never know how for sure - * how U/UL/ULL map to __u16, __u32, __u64. At least not in a portable way. - */ -#define ___constant_swab16(x) ((__u16)(				\ -	(((__u16)(x) & (__u16)0x00ffU) << 8) |			\ -	(((__u16)(x) & (__u16)0xff00U) >> 8))) - -#define ___constant_swab32(x) ((__u32)(				\ -	(((__u32)(x) & (__u32)0x000000ffUL) << 24) |		\ -	(((__u32)(x) & (__u32)0x0000ff00UL) <<  8) |		\ -	(((__u32)(x) & (__u32)0x00ff0000UL) >>  8) |		\ -	(((__u32)(x) & (__u32)0xff000000UL) >> 24))) - -#define ___constant_swab64(x) ((__u64)(				\ -	(((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) |	\ -	(((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) |	\ -	(((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) |	\ -	(((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) |	\ -	(((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) |	\ -	(((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) |	\ -	(((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) |	\ -	(((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56))) - -#define ___constant_swahw32(x) ((__u32)(			\ -	(((__u32)(x) & (__u32)0x0000ffffUL) << 16) |		\ -	(((__u32)(x) & (__u32)0xffff0000UL) >> 16))) - -#define ___constant_swahb32(x) ((__u32)(			\ -	(((__u32)(x) & (__u32)0x00ff00ffUL) << 8) |		\ -	(((__u32)(x) & (__u32)0xff00ff00UL) >> 8))) - -/* - * Implement the following as inlines, but define the interface using - * macros to allow constant folding when possible: - * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32 - */ - -static inline __attribute_const__ __u16 __fswab16(__u16 val) -{ -#ifdef __arch_swab16 -	return __arch_swab16(val); -#else -	return ___constant_swab16(val); -#endif -} - -static inline __attribute_const__ __u32 __fswab32(__u32 val) -{ -#ifdef __arch_swab32 -	return __arch_swab32(val); -#else -	return ___constant_swab32(val); -#endif -} - -static inline __attribute_const__ __u64 __fswab64(__u64 val) -{ -#ifdef __arch_swab64 -	return __arch_swab64(val); -#elif defined(__SWAB_64_THRU_32__) -	__u32 h = val >> 32; -	__u32 l = val & ((1ULL << 32) - 1); -	return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h))); -#else -	return ___constant_swab64(val); -#endif -} - -static inline __attribute_const__ __u32 __fswahw32(__u32 val) -{ -#ifdef __arch_swahw32 -	return __arch_swahw32(val); -#else -	return ___constant_swahw32(val); -#endif -} - -static inline __attribute_const__ __u32 __fswahb32(__u32 val) -{ -#ifdef __arch_swahb32 -	return __arch_swahb32(val); -#else -	return ___constant_swahb32(val); -#endif -} - -/** - * __swab16 - return a byteswapped 16-bit value - * @x: value to byteswap - */ -#define __swab16(x)				\ -	(__builtin_constant_p((__u16)(x)) ?	\ -	___constant_swab16(x) :			\ -	__fswab16(x)) - -/** - * __swab32 - return a byteswapped 32-bit value - * @x: value to byteswap - */ -#define __swab32(x)				\ -	(__builtin_constant_p((__u32)(x)) ?	\ -	___constant_swab32(x) :			\ -	__fswab32(x)) - -/** - * __swab64 - return a byteswapped 64-bit value - * @x: value to byteswap - */ -#define __swab64(x)				\ -	(__builtin_constant_p((__u64)(x)) ?	\ -	___constant_swab64(x) :			\ -	__fswab64(x)) - -/** - * __swahw32 - return a word-swapped 32-bit value - * @x: value to wordswap - * - * __swahw32(0x12340000) is 0x00001234 - */ -#define __swahw32(x)				\ -	(__builtin_constant_p((__u32)(x)) ?	\ -	___constant_swahw32(x) :		\ -	__fswahw32(x)) - -/** - * __swahb32 - return a high and low byte-swapped 32-bit value - * @x: value to byteswap - * - * __swahb32(0x12345678) is 0x34127856 - */ -#define __swahb32(x)				\ -	(__builtin_constant_p((__u32)(x)) ?	\ -	___constant_swahb32(x) :		\ -	__fswahb32(x)) - -/** - * __swab16p - return a byteswapped 16-bit value from a pointer - * @p: pointer to a naturally-aligned 16-bit value - */ -static inline __u16 __swab16p(const __u16 *p) -{ -#ifdef __arch_swab16p -	return __arch_swab16p(p); -#else -	return __swab16(*p); -#endif -} - -/** - * __swab32p - return a byteswapped 32-bit value from a pointer - * @p: pointer to a naturally-aligned 32-bit value - */ -static inline __u32 __swab32p(const __u32 *p) -{ -#ifdef __arch_swab32p -	return __arch_swab32p(p); -#else -	return __swab32(*p); -#endif -} - -/** - * __swab64p - return a byteswapped 64-bit value from a pointer - * @p: pointer to a naturally-aligned 64-bit value - */ -static inline __u64 __swab64p(const __u64 *p) -{ -#ifdef __arch_swab64p -	return __arch_swab64p(p); -#else -	return __swab64(*p); -#endif -} - -/** - * __swahw32p - return a wordswapped 32-bit value from a pointer - * @p: pointer to a naturally-aligned 32-bit value - * - * See __swahw32() for details of wordswapping. - */ -static inline __u32 __swahw32p(const __u32 *p) -{ -#ifdef __arch_swahw32p -	return __arch_swahw32p(p); -#else -	return __swahw32(*p); -#endif -} - -/** - * __swahb32p - return a high and low byteswapped 32-bit value from a pointer - * @p: pointer to a naturally-aligned 32-bit value - * - * See __swahb32() for details of high/low byteswapping. - */ -static inline __u32 __swahb32p(const __u32 *p) -{ -#ifdef __arch_swahb32p -	return __arch_swahb32p(p); -#else -	return __swahb32(*p); -#endif -} - -/** - * __swab16s - byteswap a 16-bit value in-place - * @p: pointer to a naturally-aligned 16-bit value - */ -static inline void __swab16s(__u16 *p) -{ -#ifdef __arch_swab16s -	__arch_swab16s(p); -#else -	*p = __swab16p(p); -#endif -} -/** - * __swab32s - byteswap a 32-bit value in-place - * @p: pointer to a naturally-aligned 32-bit value - */ -static inline void __swab32s(__u32 *p) -{ -#ifdef __arch_swab32s -	__arch_swab32s(p); -#else -	*p = __swab32p(p); -#endif -} - -/** - * __swab64s - byteswap a 64-bit value in-place - * @p: pointer to a naturally-aligned 64-bit value - */ -static inline void __swab64s(__u64 *p) -{ -#ifdef __arch_swab64s -	__arch_swab64s(p); -#else -	*p = __swab64p(p); -#endif -} - -/** - * __swahw32s - wordswap a 32-bit value in-place - * @p: pointer to a naturally-aligned 32-bit value - * - * See __swahw32() for details of wordswapping - */ -static inline void __swahw32s(__u32 *p) -{ -#ifdef __arch_swahw32s -	__arch_swahw32s(p); -#else -	*p = __swahw32p(p); -#endif -} - -/** - * __swahb32s - high and low byteswap a 32-bit value in-place - * @p: pointer to a naturally-aligned 32-bit value - * - * See __swahb32() for details of high and low byte swapping - */ -static inline void __swahb32s(__u32 *p) -{ -#ifdef __arch_swahb32s -	__arch_swahb32s(p); -#else -	*p = __swahb32p(p); -#endif -} - -#ifdef __KERNEL__  # define swab16 __swab16  # define swab32 __swab32  # define swab64 __swab64 @@ -294,6 +18,4 @@ static inline void __swahb32s(__u32 *p)  # define swab64s __swab64s  # define swahw32s __swahw32s  # define swahb32s __swahb32s -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SWAB_H */ diff --git a/include/linux/synclink.h b/include/linux/synclink.h index 2e7d81c4e5a..f1405b1c71b 100644 --- a/include/linux/synclink.h +++ b/include/linux/synclink.h @@ -8,295 +8,11 @@   * Redistribution of this file is permitted under   * the terms of the GNU Public License (GPL)   */ -  #ifndef _SYNCLINK_H_  #define _SYNCLINK_H_ -#define SYNCLINK_H_VERSION 3.6 - -#include <linux/types.h> - -#define BIT0	0x0001 -#define BIT1	0x0002 -#define BIT2	0x0004 -#define BIT3	0x0008 -#define BIT4	0x0010 -#define BIT5	0x0020 -#define BIT6	0x0040 -#define BIT7	0x0080 -#define BIT8	0x0100 -#define BIT9	0x0200 -#define BIT10	0x0400 -#define BIT11	0x0800 -#define BIT12	0x1000 -#define BIT13	0x2000 -#define BIT14	0x4000 -#define BIT15	0x8000 -#define BIT16	0x00010000 -#define BIT17	0x00020000 -#define BIT18	0x00040000 -#define BIT19	0x00080000 -#define BIT20	0x00100000 -#define BIT21	0x00200000 -#define BIT22	0x00400000 -#define BIT23	0x00800000 -#define BIT24	0x01000000 -#define BIT25	0x02000000 -#define BIT26	0x04000000 -#define BIT27	0x08000000 -#define BIT28	0x10000000 -#define BIT29	0x20000000 -#define BIT30	0x40000000 -#define BIT31	0x80000000 - - -#define HDLC_MAX_FRAME_SIZE	65535 -#define MAX_ASYNC_TRANSMIT	4096 -#define MAX_ASYNC_BUFFER_SIZE	4096 - -#define ASYNC_PARITY_NONE		0 -#define ASYNC_PARITY_EVEN		1 -#define ASYNC_PARITY_ODD		2 -#define ASYNC_PARITY_SPACE		3 - -#define HDLC_FLAG_UNDERRUN_ABORT7	0x0000 -#define HDLC_FLAG_UNDERRUN_ABORT15	0x0001 -#define HDLC_FLAG_UNDERRUN_FLAG		0x0002 -#define HDLC_FLAG_UNDERRUN_CRC		0x0004 -#define HDLC_FLAG_SHARE_ZERO		0x0010 -#define HDLC_FLAG_AUTO_CTS		0x0020 -#define HDLC_FLAG_AUTO_DCD		0x0040 -#define HDLC_FLAG_AUTO_RTS		0x0080 -#define HDLC_FLAG_RXC_DPLL		0x0100 -#define HDLC_FLAG_RXC_BRG		0x0200 -#define HDLC_FLAG_RXC_TXCPIN		0x8000 -#define HDLC_FLAG_RXC_RXCPIN		0x0000 -#define HDLC_FLAG_TXC_DPLL		0x0400 -#define HDLC_FLAG_TXC_BRG		0x0800 -#define HDLC_FLAG_TXC_TXCPIN		0x0000 -#define HDLC_FLAG_TXC_RXCPIN		0x0008 -#define HDLC_FLAG_DPLL_DIV8		0x1000 -#define HDLC_FLAG_DPLL_DIV16		0x2000 -#define HDLC_FLAG_DPLL_DIV32		0x0000 -#define HDLC_FLAG_HDLC_LOOPMODE		0x4000 - -#define HDLC_CRC_NONE			0 -#define HDLC_CRC_16_CCITT		1 -#define HDLC_CRC_32_CCITT		2 -#define HDLC_CRC_MASK			0x00ff -#define HDLC_CRC_RETURN_EX		0x8000 - -#define RX_OK				0 -#define RX_CRC_ERROR			1 - -#define HDLC_TXIDLE_FLAGS		0 -#define HDLC_TXIDLE_ALT_ZEROS_ONES	1 -#define HDLC_TXIDLE_ZEROS		2 -#define HDLC_TXIDLE_ONES		3 -#define HDLC_TXIDLE_ALT_MARK_SPACE	4 -#define HDLC_TXIDLE_SPACE		5 -#define HDLC_TXIDLE_MARK		6 -#define HDLC_TXIDLE_CUSTOM_8            0x10000000 -#define HDLC_TXIDLE_CUSTOM_16           0x20000000 - -#define HDLC_ENCODING_NRZ			0 -#define HDLC_ENCODING_NRZB			1 -#define HDLC_ENCODING_NRZI_MARK			2 -#define HDLC_ENCODING_NRZI_SPACE		3 -#define HDLC_ENCODING_NRZI			HDLC_ENCODING_NRZI_SPACE -#define HDLC_ENCODING_BIPHASE_MARK		4 -#define HDLC_ENCODING_BIPHASE_SPACE		5 -#define HDLC_ENCODING_BIPHASE_LEVEL		6 -#define HDLC_ENCODING_DIFF_BIPHASE_LEVEL	7 - -#define HDLC_PREAMBLE_LENGTH_8BITS	0 -#define HDLC_PREAMBLE_LENGTH_16BITS	1 -#define HDLC_PREAMBLE_LENGTH_32BITS	2 -#define HDLC_PREAMBLE_LENGTH_64BITS	3 - -#define HDLC_PREAMBLE_PATTERN_NONE	0 -#define HDLC_PREAMBLE_PATTERN_ZEROS	1 -#define HDLC_PREAMBLE_PATTERN_FLAGS	2 -#define HDLC_PREAMBLE_PATTERN_10	3 -#define HDLC_PREAMBLE_PATTERN_01	4 -#define HDLC_PREAMBLE_PATTERN_ONES	5 - -#define MGSL_MODE_ASYNC		1 -#define MGSL_MODE_HDLC		2 -#define MGSL_MODE_MONOSYNC	3 -#define MGSL_MODE_BISYNC	4 -#define MGSL_MODE_RAW		6 -#define MGSL_MODE_BASE_CLOCK    7 -#define MGSL_MODE_XSYNC         8 - -#define MGSL_BUS_TYPE_ISA	1 -#define MGSL_BUS_TYPE_EISA	2 -#define MGSL_BUS_TYPE_PCI	5 - -#define MGSL_INTERFACE_MASK     0xf -#define MGSL_INTERFACE_DISABLE  0 -#define MGSL_INTERFACE_RS232    1 -#define MGSL_INTERFACE_V35      2 -#define MGSL_INTERFACE_RS422    3 -#define MGSL_INTERFACE_RTS_EN   0x10 -#define MGSL_INTERFACE_LL       0x20 -#define MGSL_INTERFACE_RL       0x40 -#define MGSL_INTERFACE_MSB_FIRST 0x80 - -typedef struct _MGSL_PARAMS -{ -	/* Common */ - -	unsigned long	mode;		/* Asynchronous or HDLC */ -	unsigned char	loopback;	/* internal loopback mode */ - -	/* HDLC Only */ - -	unsigned short	flags; -	unsigned char	encoding;	/* NRZ, NRZI, etc. */ -	unsigned long	clock_speed;	/* external clock speed in bits per second */ -	unsigned char	addr_filter;	/* receive HDLC address filter, 0xFF = disable */ -	unsigned short	crc_type;	/* None, CRC16-CCITT, or CRC32-CCITT */ -	unsigned char	preamble_length; -	unsigned char	preamble; -	/* Async Only */ +#include <uapi/linux/synclink.h> -	unsigned long	data_rate;	/* bits per second */ -	unsigned char	data_bits;	/* 7 or 8 data bits */ -	unsigned char	stop_bits;	/* 1 or 2 stop bits */ -	unsigned char	parity;		/* none, even, or odd */ - -} MGSL_PARAMS, *PMGSL_PARAMS; - -#define MICROGATE_VENDOR_ID 0x13c0 -#define SYNCLINK_DEVICE_ID 0x0010 -#define MGSCC_DEVICE_ID 0x0020 -#define SYNCLINK_SCA_DEVICE_ID 0x0030 -#define SYNCLINK_GT_DEVICE_ID 0x0070 -#define SYNCLINK_GT4_DEVICE_ID 0x0080 -#define SYNCLINK_AC_DEVICE_ID  0x0090 -#define SYNCLINK_GT2_DEVICE_ID 0x00A0 -#define MGSL_MAX_SERIAL_NUMBER 30 - -/* -** device diagnostics status -*/ - -#define DiagStatus_OK				0 -#define DiagStatus_AddressFailure		1 -#define DiagStatus_AddressConflict		2 -#define DiagStatus_IrqFailure			3 -#define DiagStatus_IrqConflict			4 -#define DiagStatus_DmaFailure			5 -#define DiagStatus_DmaConflict			6 -#define DiagStatus_PciAdapterNotFound		7 -#define DiagStatus_CantAssignPciResources	8 -#define DiagStatus_CantAssignPciMemAddr		9 -#define DiagStatus_CantAssignPciIoAddr		10 -#define DiagStatus_CantAssignPciIrq		11 -#define DiagStatus_MemoryError			12 - -#define SerialSignal_DCD            0x01     /* Data Carrier Detect */ -#define SerialSignal_TXD            0x02     /* Transmit Data */ -#define SerialSignal_RI             0x04     /* Ring Indicator */ -#define SerialSignal_RXD            0x08     /* Receive Data */ -#define SerialSignal_CTS            0x10     /* Clear to Send */ -#define SerialSignal_RTS            0x20     /* Request to Send */ -#define SerialSignal_DSR            0x40     /* Data Set Ready */ -#define SerialSignal_DTR            0x80     /* Data Terminal Ready */ - - -/* - * Counters of the input lines (CTS, DSR, RI, CD) interrupts - */ -struct mgsl_icount { -	__u32	cts, dsr, rng, dcd, tx, rx; -	__u32	frame, parity, overrun, brk; -	__u32	buf_overrun; -	__u32	txok; -	__u32	txunder; -	__u32	txabort; -	__u32	txtimeout; -	__u32	rxshort; -	__u32	rxlong; -	__u32	rxabort; -	__u32	rxover; -	__u32	rxcrc; -	__u32	rxok; -	__u32	exithunt; -	__u32	rxidle; -}; - -struct gpio_desc { -	__u32 state; -	__u32 smask; -	__u32 dir; -	__u32 dmask; -}; - -#define DEBUG_LEVEL_DATA	1 -#define DEBUG_LEVEL_ERROR 	2 -#define DEBUG_LEVEL_INFO  	3 -#define DEBUG_LEVEL_BH    	4 -#define DEBUG_LEVEL_ISR		5 - -/* -** Event bit flags for use with MgslWaitEvent -*/ - -#define MgslEvent_DsrActive	0x0001 -#define MgslEvent_DsrInactive	0x0002 -#define MgslEvent_Dsr		0x0003 -#define MgslEvent_CtsActive	0x0004 -#define MgslEvent_CtsInactive	0x0008 -#define MgslEvent_Cts		0x000c -#define MgslEvent_DcdActive	0x0010 -#define MgslEvent_DcdInactive	0x0020 -#define MgslEvent_Dcd		0x0030 -#define MgslEvent_RiActive	0x0040 -#define MgslEvent_RiInactive	0x0080 -#define MgslEvent_Ri		0x00c0 -#define MgslEvent_ExitHuntMode	0x0100 -#define MgslEvent_IdleReceived	0x0200 - -/* Private IOCTL codes: - * - * MGSL_IOCSPARAMS	set MGSL_PARAMS structure values - * MGSL_IOCGPARAMS	get current MGSL_PARAMS structure values - * MGSL_IOCSTXIDLE	set current transmit idle mode - * MGSL_IOCGTXIDLE	get current transmit idle mode - * MGSL_IOCTXENABLE	enable or disable transmitter - * MGSL_IOCRXENABLE	enable or disable receiver - * MGSL_IOCTXABORT	abort transmitting frame (HDLC) - * MGSL_IOCGSTATS	return current statistics - * MGSL_IOCWAITEVENT	wait for specified event to occur - * MGSL_LOOPTXDONE	transmit in HDLC LoopMode done - * MGSL_IOCSIF          set the serial interface type - * MGSL_IOCGIF          get the serial interface type - */ -#define MGSL_MAGIC_IOC	'm' -#define MGSL_IOCSPARAMS		_IOW(MGSL_MAGIC_IOC,0,struct _MGSL_PARAMS) -#define MGSL_IOCGPARAMS		_IOR(MGSL_MAGIC_IOC,1,struct _MGSL_PARAMS) -#define MGSL_IOCSTXIDLE		_IO(MGSL_MAGIC_IOC,2) -#define MGSL_IOCGTXIDLE		_IO(MGSL_MAGIC_IOC,3) -#define MGSL_IOCTXENABLE	_IO(MGSL_MAGIC_IOC,4) -#define MGSL_IOCRXENABLE	_IO(MGSL_MAGIC_IOC,5) -#define MGSL_IOCTXABORT		_IO(MGSL_MAGIC_IOC,6) -#define MGSL_IOCGSTATS		_IO(MGSL_MAGIC_IOC,7) -#define MGSL_IOCWAITEVENT	_IOWR(MGSL_MAGIC_IOC,8,int) -#define MGSL_IOCCLRMODCOUNT	_IO(MGSL_MAGIC_IOC,15) -#define MGSL_IOCLOOPTXDONE	_IO(MGSL_MAGIC_IOC,9) -#define MGSL_IOCSIF		_IO(MGSL_MAGIC_IOC,10) -#define MGSL_IOCGIF		_IO(MGSL_MAGIC_IOC,11) -#define MGSL_IOCSGPIO		_IOW(MGSL_MAGIC_IOC,16,struct gpio_desc) -#define MGSL_IOCGGPIO		_IOR(MGSL_MAGIC_IOC,17,struct gpio_desc) -#define MGSL_IOCWAITGPIO	_IOWR(MGSL_MAGIC_IOC,18,struct gpio_desc) -#define MGSL_IOCSXSYNC		_IO(MGSL_MAGIC_IOC, 19) -#define MGSL_IOCGXSYNC		_IO(MGSL_MAGIC_IOC, 20) -#define MGSL_IOCSXCTRL		_IO(MGSL_MAGIC_IOC, 21) -#define MGSL_IOCGXCTRL		_IO(MGSL_MAGIC_IOC, 22) - -#ifdef __KERNEL__  /* provide 32 bit ioctl compatibility on 64 bit systems */  #ifdef CONFIG_COMPAT  #include <linux/compat.h> @@ -318,6 +34,4 @@ struct MGSL_PARAMS32 {  #define MGSL_IOCSPARAMS32 _IOW(MGSL_MAGIC_IOC,0,struct MGSL_PARAMS32)  #define MGSL_IOCGPARAMS32 _IOR(MGSL_MAGIC_IOC,1,struct MGSL_PARAMS32)  #endif -#endif -  #endif /* _SYNCLINK_H_ */ diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index c34b4c82b0d..cd844a6a8d5 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -18,921 +18,14 @@   ****************************************************************   ****************************************************************   */ -  #ifndef _LINUX_SYSCTL_H  #define _LINUX_SYSCTL_H -#include <linux/kernel.h> -#include <linux/types.h> -#include <linux/compiler.h> - -struct completion; - -#define CTL_MAXNAME 10		/* how many path components do we allow in a -				   call to sysctl?   In other words, what is -				   the largest acceptable value for the nlen -				   member of a struct __sysctl_args to have? */ - -struct __sysctl_args { -	int __user *name; -	int nlen; -	void __user *oldval; -	size_t __user *oldlenp; -	void __user *newval; -	size_t newlen; -	unsigned long __unused[4]; -}; - -/* Define sysctl names first */ - -/* Top-level names: */ - -enum -{ -	CTL_KERN=1,		/* General kernel info and control */ -	CTL_VM=2,		/* VM management */ -	CTL_NET=3,		/* Networking */ -	CTL_PROC=4,		/* removal breaks strace(1) compilation */ -	CTL_FS=5,		/* Filesystems */ -	CTL_DEBUG=6,		/* Debugging */ -	CTL_DEV=7,		/* Devices */ -	CTL_BUS=8,		/* Busses */ -	CTL_ABI=9,		/* Binary emulation */ -	CTL_CPU=10,		/* CPU stuff (speed scaling, etc) */ -	CTL_ARLAN=254,		/* arlan wireless driver */ -	CTL_S390DBF=5677,	/* s390 debug */ -	CTL_SUNRPC=7249,	/* sunrpc debug */ -	CTL_PM=9899,		/* frv power management */ -	CTL_FRV=9898,		/* frv specific sysctls */ -}; - -/* CTL_BUS names: */ -enum -{ -	CTL_BUS_ISA=1		/* ISA */ -}; - -/* /proc/sys/fs/inotify/ */ -enum -{ -	INOTIFY_MAX_USER_INSTANCES=1,	/* max instances per user */ -	INOTIFY_MAX_USER_WATCHES=2,	/* max watches per user */ -	INOTIFY_MAX_QUEUED_EVENTS=3	/* max queued events per instance */ -}; - -/* CTL_KERN names: */ -enum -{ -	KERN_OSTYPE=1,		/* string: system version */ -	KERN_OSRELEASE=2,	/* string: system release */ -	KERN_OSREV=3,		/* int: system revision */ -	KERN_VERSION=4,		/* string: compile time info */ -	KERN_SECUREMASK=5,	/* struct: maximum rights mask */ -	KERN_PROF=6,		/* table: profiling information */ -	KERN_NODENAME=7,	/* string: hostname */ -	KERN_DOMAINNAME=8,	/* string: domainname */ - -	KERN_PANIC=15,		/* int: panic timeout */ -	KERN_REALROOTDEV=16,	/* real root device to mount after initrd */ - -	KERN_SPARC_REBOOT=21,	/* reboot command on Sparc */ -	KERN_CTLALTDEL=22,	/* int: allow ctl-alt-del to reboot */ -	KERN_PRINTK=23,		/* struct: control printk logging parameters */ -	KERN_NAMETRANS=24,	/* Name translation */ -	KERN_PPC_HTABRECLAIM=25, /* turn htab reclaimation on/off on PPC */ -	KERN_PPC_ZEROPAGED=26,	/* turn idle page zeroing on/off on PPC */ -	KERN_PPC_POWERSAVE_NAP=27, /* use nap mode for power saving */ -	KERN_MODPROBE=28,	/* string: modprobe path */ -	KERN_SG_BIG_BUFF=29,	/* int: sg driver reserved buffer size */ -	KERN_ACCT=30,		/* BSD process accounting parameters */ -	KERN_PPC_L2CR=31,	/* l2cr register on PPC */ - -	KERN_RTSIGNR=32,	/* Number of rt sigs queued */ -	KERN_RTSIGMAX=33,	/* Max queuable */ -	 -	KERN_SHMMAX=34,         /* long: Maximum shared memory segment */ -	KERN_MSGMAX=35,         /* int: Maximum size of a messege */ -	KERN_MSGMNB=36,         /* int: Maximum message queue size */ -	KERN_MSGPOOL=37,        /* int: Maximum system message pool size */ -	KERN_SYSRQ=38,		/* int: Sysreq enable */ -	KERN_MAX_THREADS=39,	/* int: Maximum nr of threads in the system */ - 	KERN_RANDOM=40,		/* Random driver */ - 	KERN_SHMALL=41,		/* int: Maximum size of shared memory */ - 	KERN_MSGMNI=42,		/* int: msg queue identifiers */ - 	KERN_SEM=43,		/* struct: sysv semaphore limits */ - 	KERN_SPARC_STOP_A=44,	/* int: Sparc Stop-A enable */ - 	KERN_SHMMNI=45,		/* int: shm array identifiers */ -	KERN_OVERFLOWUID=46,	/* int: overflow UID */ -	KERN_OVERFLOWGID=47,	/* int: overflow GID */ -	KERN_SHMPATH=48,	/* string: path to shm fs */ -	KERN_HOTPLUG=49,	/* string: path to uevent helper (deprecated) */ -	KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ -	KERN_S390_USER_DEBUG_LOGGING=51,  /* int: dumps of user faults */ -	KERN_CORE_USES_PID=52,		/* int: use core or core.%pid */ -	KERN_TAINTED=53,	/* int: various kernel tainted flags */ -	KERN_CADPID=54,		/* int: PID of the process to notify on CAD */ -	KERN_PIDMAX=55,		/* int: PID # limit */ -  	KERN_CORE_PATTERN=56,	/* string: pattern for core-file names */ -	KERN_PANIC_ON_OOPS=57,  /* int: whether we will panic on an oops */ -	KERN_HPPA_PWRSW=58,	/* int: hppa soft-power enable */ -	KERN_HPPA_UNALIGNED=59,	/* int: hppa unaligned-trap enable */ -	KERN_PRINTK_RATELIMIT=60, /* int: tune printk ratelimiting */ -	KERN_PRINTK_RATELIMIT_BURST=61,	/* int: tune printk ratelimiting */ -	KERN_PTY=62,		/* dir: pty driver */ -	KERN_NGROUPS_MAX=63,	/* int: NGROUPS_MAX */ -	KERN_SPARC_SCONS_PWROFF=64, /* int: serial console power-off halt */ -	KERN_HZ_TIMER=65,	/* int: hz timer on or off */ -	KERN_UNKNOWN_NMI_PANIC=66, /* int: unknown nmi panic flag */ -	KERN_BOOTLOADER_TYPE=67, /* int: boot loader type */ -	KERN_RANDOMIZE=68, /* int: randomize virtual address space */ -	KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ -	KERN_SPIN_RETRY=70,	/* int: number of spinlock retries */ -	KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ -	KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */ -	KERN_COMPAT_LOG=73,	/* int: print compat layer  messages */ -	KERN_MAX_LOCK_DEPTH=74, /* int: rtmutex's maximum lock depth */ -	KERN_NMI_WATCHDOG=75, /* int: enable/disable nmi watchdog */ -	KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ -}; - - - -/* CTL_VM names: */ -enum -{ -	VM_UNUSED1=1,		/* was: struct: Set vm swapping control */ -	VM_UNUSED2=2,		/* was; int: Linear or sqrt() swapout for hogs */ -	VM_UNUSED3=3,		/* was: struct: Set free page thresholds */ -	VM_UNUSED4=4,		/* Spare */ -	VM_OVERCOMMIT_MEMORY=5,	/* Turn off the virtual memory safety limit */ -	VM_UNUSED5=6,		/* was: struct: Set buffer memory thresholds */ -	VM_UNUSED7=7,		/* was: struct: Set cache memory thresholds */ -	VM_UNUSED8=8,		/* was: struct: Control kswapd behaviour */ -	VM_UNUSED9=9,		/* was: struct: Set page table cache parameters */ -	VM_PAGE_CLUSTER=10,	/* int: set number of pages to swap together */ -	VM_DIRTY_BACKGROUND=11,	/* dirty_background_ratio */ -	VM_DIRTY_RATIO=12,	/* dirty_ratio */ -	VM_DIRTY_WB_CS=13,	/* dirty_writeback_centisecs */ -	VM_DIRTY_EXPIRE_CS=14,	/* dirty_expire_centisecs */ -	VM_NR_PDFLUSH_THREADS=15, /* nr_pdflush_threads */ -	VM_OVERCOMMIT_RATIO=16, /* percent of RAM to allow overcommit in */ -	VM_PAGEBUF=17,		/* struct: Control pagebuf parameters */ -	VM_HUGETLB_PAGES=18,	/* int: Number of available Huge Pages */ -	VM_SWAPPINESS=19,	/* Tendency to steal mapped memory */ -	VM_LOWMEM_RESERVE_RATIO=20,/* reservation ratio for lower memory zones */ -	VM_MIN_FREE_KBYTES=21,	/* Minimum free kilobytes to maintain */ -	VM_MAX_MAP_COUNT=22,	/* int: Maximum number of mmaps/address-space */ -	VM_LAPTOP_MODE=23,	/* vm laptop mode */ -	VM_BLOCK_DUMP=24,	/* block dump mode */ -	VM_HUGETLB_GROUP=25,	/* permitted hugetlb group */ -	VM_VFS_CACHE_PRESSURE=26, /* dcache/icache reclaim pressure */ -	VM_LEGACY_VA_LAYOUT=27, /* legacy/compatibility virtual address space layout */ -	VM_SWAP_TOKEN_TIMEOUT=28, /* default time for token time out */ -	VM_DROP_PAGECACHE=29,	/* int: nuke lots of pagecache */ -	VM_PERCPU_PAGELIST_FRACTION=30,/* int: fraction of pages in each percpu_pagelist */ -	VM_ZONE_RECLAIM_MODE=31, /* reclaim local zone memory before going off node */ -	VM_MIN_UNMAPPED=32,	/* Set min percent of unmapped pages */ -	VM_PANIC_ON_OOM=33,	/* panic at out-of-memory */ -	VM_VDSO_ENABLED=34,	/* map VDSO into new processes? */ -	VM_MIN_SLAB=35,		 /* Percent pages ignored by zone reclaim */ -}; - - -/* CTL_NET names: */ -enum -{ -	NET_CORE=1, -	NET_ETHER=2, -	NET_802=3, -	NET_UNIX=4, -	NET_IPV4=5, -	NET_IPX=6, -	NET_ATALK=7, -	NET_NETROM=8, -	NET_AX25=9, -	NET_BRIDGE=10, -	NET_ROSE=11, -	NET_IPV6=12, -	NET_X25=13, -	NET_TR=14, -	NET_DECNET=15, -	NET_ECONET=16, -	NET_SCTP=17, -	NET_LLC=18, -	NET_NETFILTER=19, -	NET_DCCP=20, -	NET_IRDA=412, -}; - -/* /proc/sys/kernel/random */ -enum -{ -	RANDOM_POOLSIZE=1, -	RANDOM_ENTROPY_COUNT=2, -	RANDOM_READ_THRESH=3, -	RANDOM_WRITE_THRESH=4, -	RANDOM_BOOT_ID=5, -	RANDOM_UUID=6 -}; - -/* /proc/sys/kernel/pty */ -enum -{ -	PTY_MAX=1, -	PTY_NR=2 -}; - -/* /proc/sys/bus/isa */ -enum -{ -	BUS_ISA_MEM_BASE=1, -	BUS_ISA_PORT_BASE=2, -	BUS_ISA_PORT_SHIFT=3 -}; - -/* /proc/sys/net/core */ -enum -{ -	NET_CORE_WMEM_MAX=1, -	NET_CORE_RMEM_MAX=2, -	NET_CORE_WMEM_DEFAULT=3, -	NET_CORE_RMEM_DEFAULT=4, -/* was	NET_CORE_DESTROY_DELAY */ -	NET_CORE_MAX_BACKLOG=6, -	NET_CORE_FASTROUTE=7, -	NET_CORE_MSG_COST=8, -	NET_CORE_MSG_BURST=9, -	NET_CORE_OPTMEM_MAX=10, -	NET_CORE_HOT_LIST_LENGTH=11, -	NET_CORE_DIVERT_VERSION=12, -	NET_CORE_NO_CONG_THRESH=13, -	NET_CORE_NO_CONG=14, -	NET_CORE_LO_CONG=15, -	NET_CORE_MOD_CONG=16, -	NET_CORE_DEV_WEIGHT=17, -	NET_CORE_SOMAXCONN=18, -	NET_CORE_BUDGET=19, -	NET_CORE_AEVENT_ETIME=20, -	NET_CORE_AEVENT_RSEQTH=21, -	NET_CORE_WARNINGS=22, -}; - -/* /proc/sys/net/ethernet */ - -/* /proc/sys/net/802 */ - -/* /proc/sys/net/unix */ - -enum -{ -	NET_UNIX_DESTROY_DELAY=1, -	NET_UNIX_DELETE_DELAY=2, -	NET_UNIX_MAX_DGRAM_QLEN=3, -}; - -/* /proc/sys/net/netfilter */ -enum -{ -	NET_NF_CONNTRACK_MAX=1, -	NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, -	NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, -	NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, -	NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, -	NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, -	NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, -	NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, -	NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, -	NET_NF_CONNTRACK_UDP_TIMEOUT=10, -	NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, -	NET_NF_CONNTRACK_ICMP_TIMEOUT=12, -	NET_NF_CONNTRACK_GENERIC_TIMEOUT=13, -	NET_NF_CONNTRACK_BUCKETS=14, -	NET_NF_CONNTRACK_LOG_INVALID=15, -	NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, -	NET_NF_CONNTRACK_TCP_LOOSE=17, -	NET_NF_CONNTRACK_TCP_BE_LIBERAL=18, -	NET_NF_CONNTRACK_TCP_MAX_RETRANS=19, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, -	NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, -	NET_NF_CONNTRACK_COUNT=27, -	NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28, -	NET_NF_CONNTRACK_FRAG6_TIMEOUT=29, -	NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30, -	NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31, -	NET_NF_CONNTRACK_CHECKSUM=32, -}; - -/* /proc/sys/net/ipv4 */ -enum -{ -	/* v2.0 compatibile variables */ -	NET_IPV4_FORWARD=8, -	NET_IPV4_DYNADDR=9, - -	NET_IPV4_CONF=16, -	NET_IPV4_NEIGH=17, -	NET_IPV4_ROUTE=18, -	NET_IPV4_FIB_HASH=19, -	NET_IPV4_NETFILTER=20, - -	NET_IPV4_TCP_TIMESTAMPS=33, -	NET_IPV4_TCP_WINDOW_SCALING=34, -	NET_IPV4_TCP_SACK=35, -	NET_IPV4_TCP_RETRANS_COLLAPSE=36, -	NET_IPV4_DEFAULT_TTL=37, -	NET_IPV4_AUTOCONFIG=38, -	NET_IPV4_NO_PMTU_DISC=39, -	NET_IPV4_TCP_SYN_RETRIES=40, -	NET_IPV4_IPFRAG_HIGH_THRESH=41, -	NET_IPV4_IPFRAG_LOW_THRESH=42, -	NET_IPV4_IPFRAG_TIME=43, -	NET_IPV4_TCP_MAX_KA_PROBES=44, -	NET_IPV4_TCP_KEEPALIVE_TIME=45, -	NET_IPV4_TCP_KEEPALIVE_PROBES=46, -	NET_IPV4_TCP_RETRIES1=47, -	NET_IPV4_TCP_RETRIES2=48, -	NET_IPV4_TCP_FIN_TIMEOUT=49, -	NET_IPV4_IP_MASQ_DEBUG=50, -	NET_TCP_SYNCOOKIES=51, -	NET_TCP_STDURG=52, -	NET_TCP_RFC1337=53, -	NET_TCP_SYN_TAILDROP=54, -	NET_TCP_MAX_SYN_BACKLOG=55, -	NET_IPV4_LOCAL_PORT_RANGE=56, -	NET_IPV4_ICMP_ECHO_IGNORE_ALL=57, -	NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58, -	NET_IPV4_ICMP_SOURCEQUENCH_RATE=59, -	NET_IPV4_ICMP_DESTUNREACH_RATE=60, -	NET_IPV4_ICMP_TIMEEXCEED_RATE=61, -	NET_IPV4_ICMP_PARAMPROB_RATE=62, -	NET_IPV4_ICMP_ECHOREPLY_RATE=63, -	NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64, -	NET_IPV4_IGMP_MAX_MEMBERSHIPS=65, -	NET_TCP_TW_RECYCLE=66, -	NET_IPV4_ALWAYS_DEFRAG=67, -	NET_IPV4_TCP_KEEPALIVE_INTVL=68, -	NET_IPV4_INET_PEER_THRESHOLD=69, -	NET_IPV4_INET_PEER_MINTTL=70, -	NET_IPV4_INET_PEER_MAXTTL=71, -	NET_IPV4_INET_PEER_GC_MINTIME=72, -	NET_IPV4_INET_PEER_GC_MAXTIME=73, -	NET_TCP_ORPHAN_RETRIES=74, -	NET_TCP_ABORT_ON_OVERFLOW=75, -	NET_TCP_SYNACK_RETRIES=76, -	NET_TCP_MAX_ORPHANS=77, -	NET_TCP_MAX_TW_BUCKETS=78, -	NET_TCP_FACK=79, -	NET_TCP_REORDERING=80, -	NET_TCP_ECN=81, -	NET_TCP_DSACK=82, -	NET_TCP_MEM=83, -	NET_TCP_WMEM=84, -	NET_TCP_RMEM=85, -	NET_TCP_APP_WIN=86, -	NET_TCP_ADV_WIN_SCALE=87, -	NET_IPV4_NONLOCAL_BIND=88, -	NET_IPV4_ICMP_RATELIMIT=89, -	NET_IPV4_ICMP_RATEMASK=90, -	NET_TCP_TW_REUSE=91, -	NET_TCP_FRTO=92, -	NET_TCP_LOW_LATENCY=93, -	NET_IPV4_IPFRAG_SECRET_INTERVAL=94, -	NET_IPV4_IGMP_MAX_MSF=96, -	NET_TCP_NO_METRICS_SAVE=97, -	NET_TCP_DEFAULT_WIN_SCALE=105, -	NET_TCP_MODERATE_RCVBUF=106, -	NET_TCP_TSO_WIN_DIVISOR=107, -	NET_TCP_BIC_BETA=108, -	NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, -	NET_TCP_CONG_CONTROL=110, -	NET_TCP_ABC=111, -	NET_IPV4_IPFRAG_MAX_DIST=112, - 	NET_TCP_MTU_PROBING=113, -	NET_TCP_BASE_MSS=114, -	NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115, -	NET_TCP_DMA_COPYBREAK=116, -	NET_TCP_SLOW_START_AFTER_IDLE=117, -	NET_CIPSOV4_CACHE_ENABLE=118, -	NET_CIPSOV4_CACHE_BUCKET_SIZE=119, -	NET_CIPSOV4_RBM_OPTFMT=120, -	NET_CIPSOV4_RBM_STRICTVALID=121, -	NET_TCP_AVAIL_CONG_CONTROL=122, -	NET_TCP_ALLOWED_CONG_CONTROL=123, -	NET_TCP_MAX_SSTHRESH=124, -	NET_TCP_FRTO_RESPONSE=125, -}; - -enum { -	NET_IPV4_ROUTE_FLUSH=1, -	NET_IPV4_ROUTE_MIN_DELAY=2, /* obsolete since 2.6.25 */ -	NET_IPV4_ROUTE_MAX_DELAY=3, /* obsolete since 2.6.25 */ -	NET_IPV4_ROUTE_GC_THRESH=4, -	NET_IPV4_ROUTE_MAX_SIZE=5, -	NET_IPV4_ROUTE_GC_MIN_INTERVAL=6, -	NET_IPV4_ROUTE_GC_TIMEOUT=7, -	NET_IPV4_ROUTE_GC_INTERVAL=8, /* obsolete since 2.6.38 */ -	NET_IPV4_ROUTE_REDIRECT_LOAD=9, -	NET_IPV4_ROUTE_REDIRECT_NUMBER=10, -	NET_IPV4_ROUTE_REDIRECT_SILENCE=11, -	NET_IPV4_ROUTE_ERROR_COST=12, -	NET_IPV4_ROUTE_ERROR_BURST=13, -	NET_IPV4_ROUTE_GC_ELASTICITY=14, -	NET_IPV4_ROUTE_MTU_EXPIRES=15, -	NET_IPV4_ROUTE_MIN_PMTU=16, -	NET_IPV4_ROUTE_MIN_ADVMSS=17, -	NET_IPV4_ROUTE_SECRET_INTERVAL=18, -	NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19, -}; - -enum -{ -	NET_PROTO_CONF_ALL=-2, -	NET_PROTO_CONF_DEFAULT=-3 - -	/* And device ifindices ... */ -}; - -enum -{ -	NET_IPV4_CONF_FORWARDING=1, -	NET_IPV4_CONF_MC_FORWARDING=2, -	NET_IPV4_CONF_PROXY_ARP=3, -	NET_IPV4_CONF_ACCEPT_REDIRECTS=4, -	NET_IPV4_CONF_SECURE_REDIRECTS=5, -	NET_IPV4_CONF_SEND_REDIRECTS=6, -	NET_IPV4_CONF_SHARED_MEDIA=7, -	NET_IPV4_CONF_RP_FILTER=8, -	NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9, -	NET_IPV4_CONF_BOOTP_RELAY=10, -	NET_IPV4_CONF_LOG_MARTIANS=11, -	NET_IPV4_CONF_TAG=12, -	NET_IPV4_CONF_ARPFILTER=13, -	NET_IPV4_CONF_MEDIUM_ID=14, -	NET_IPV4_CONF_NOXFRM=15, -	NET_IPV4_CONF_NOPOLICY=16, -	NET_IPV4_CONF_FORCE_IGMP_VERSION=17, -	NET_IPV4_CONF_ARP_ANNOUNCE=18, -	NET_IPV4_CONF_ARP_IGNORE=19, -	NET_IPV4_CONF_PROMOTE_SECONDARIES=20, -	NET_IPV4_CONF_ARP_ACCEPT=21, -	NET_IPV4_CONF_ARP_NOTIFY=22, -}; - -/* /proc/sys/net/ipv4/netfilter */ -enum -{ -	NET_IPV4_NF_CONNTRACK_MAX=1, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, -	NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10, -	NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, -	NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12, -	NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13, -	NET_IPV4_NF_CONNTRACK_BUCKETS=14, -	NET_IPV4_NF_CONNTRACK_LOG_INVALID=15, -	NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, -	NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17, -	NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18, -	NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, - 	NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, -	NET_IPV4_NF_CONNTRACK_COUNT=27, -	NET_IPV4_NF_CONNTRACK_CHECKSUM=28, -}; -  -/* /proc/sys/net/ipv6 */ -enum { -	NET_IPV6_CONF=16, -	NET_IPV6_NEIGH=17, -	NET_IPV6_ROUTE=18, -	NET_IPV6_ICMP=19, -	NET_IPV6_BINDV6ONLY=20, -	NET_IPV6_IP6FRAG_HIGH_THRESH=21, -	NET_IPV6_IP6FRAG_LOW_THRESH=22, -	NET_IPV6_IP6FRAG_TIME=23, -	NET_IPV6_IP6FRAG_SECRET_INTERVAL=24, -	NET_IPV6_MLD_MAX_MSF=25, -}; - -enum { -	NET_IPV6_ROUTE_FLUSH=1, -	NET_IPV6_ROUTE_GC_THRESH=2, -	NET_IPV6_ROUTE_MAX_SIZE=3, -	NET_IPV6_ROUTE_GC_MIN_INTERVAL=4, -	NET_IPV6_ROUTE_GC_TIMEOUT=5, -	NET_IPV6_ROUTE_GC_INTERVAL=6, -	NET_IPV6_ROUTE_GC_ELASTICITY=7, -	NET_IPV6_ROUTE_MTU_EXPIRES=8, -	NET_IPV6_ROUTE_MIN_ADVMSS=9, -	NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10 -}; - -enum { -	NET_IPV6_FORWARDING=1, -	NET_IPV6_HOP_LIMIT=2, -	NET_IPV6_MTU=3, -	NET_IPV6_ACCEPT_RA=4, -	NET_IPV6_ACCEPT_REDIRECTS=5, -	NET_IPV6_AUTOCONF=6, -	NET_IPV6_DAD_TRANSMITS=7, -	NET_IPV6_RTR_SOLICITS=8, -	NET_IPV6_RTR_SOLICIT_INTERVAL=9, -	NET_IPV6_RTR_SOLICIT_DELAY=10, -	NET_IPV6_USE_TEMPADDR=11, -	NET_IPV6_TEMP_VALID_LFT=12, -	NET_IPV6_TEMP_PREFERED_LFT=13, -	NET_IPV6_REGEN_MAX_RETRY=14, -	NET_IPV6_MAX_DESYNC_FACTOR=15, -	NET_IPV6_MAX_ADDRESSES=16, -	NET_IPV6_FORCE_MLD_VERSION=17, -	NET_IPV6_ACCEPT_RA_DEFRTR=18, -	NET_IPV6_ACCEPT_RA_PINFO=19, -	NET_IPV6_ACCEPT_RA_RTR_PREF=20, -	NET_IPV6_RTR_PROBE_INTERVAL=21, -	NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, -	NET_IPV6_PROXY_NDP=23, -	NET_IPV6_ACCEPT_SOURCE_ROUTE=25, -	__NET_IPV6_MAX -}; - -/* /proc/sys/net/ipv6/icmp */ -enum { -	NET_IPV6_ICMP_RATELIMIT=1 -}; - -/* /proc/sys/net/<protocol>/neigh/<dev> */ -enum { -	NET_NEIGH_MCAST_SOLICIT=1, -	NET_NEIGH_UCAST_SOLICIT=2, -	NET_NEIGH_APP_SOLICIT=3, -	NET_NEIGH_RETRANS_TIME=4, -	NET_NEIGH_REACHABLE_TIME=5, -	NET_NEIGH_DELAY_PROBE_TIME=6, -	NET_NEIGH_GC_STALE_TIME=7, -	NET_NEIGH_UNRES_QLEN=8, -	NET_NEIGH_PROXY_QLEN=9, -	NET_NEIGH_ANYCAST_DELAY=10, -	NET_NEIGH_PROXY_DELAY=11, -	NET_NEIGH_LOCKTIME=12, -	NET_NEIGH_GC_INTERVAL=13, -	NET_NEIGH_GC_THRESH1=14, -	NET_NEIGH_GC_THRESH2=15, -	NET_NEIGH_GC_THRESH3=16, -	NET_NEIGH_RETRANS_TIME_MS=17, -	NET_NEIGH_REACHABLE_TIME_MS=18, -}; - -/* /proc/sys/net/dccp */ -enum { -	NET_DCCP_DEFAULT=1, -}; - -/* /proc/sys/net/ipx */ -enum { -	NET_IPX_PPROP_BROADCASTING=1, -	NET_IPX_FORWARDING=2 -}; - -/* /proc/sys/net/llc */ -enum { -	NET_LLC2=1, -	NET_LLC_STATION=2, -}; - -/* /proc/sys/net/llc/llc2 */ -enum { -	NET_LLC2_TIMEOUT=1, -}; - -/* /proc/sys/net/llc/station */ -enum { -	NET_LLC_STATION_ACK_TIMEOUT=1, -}; - -/* /proc/sys/net/llc/llc2/timeout */ -enum { -	NET_LLC2_ACK_TIMEOUT=1, -	NET_LLC2_P_TIMEOUT=2, -	NET_LLC2_REJ_TIMEOUT=3, -	NET_LLC2_BUSY_TIMEOUT=4, -}; - -/* /proc/sys/net/appletalk */ -enum { -	NET_ATALK_AARP_EXPIRY_TIME=1, -	NET_ATALK_AARP_TICK_TIME=2, -	NET_ATALK_AARP_RETRANSMIT_LIMIT=3, -	NET_ATALK_AARP_RESOLVE_TIME=4 -}; - - -/* /proc/sys/net/netrom */ -enum { -	NET_NETROM_DEFAULT_PATH_QUALITY=1, -	NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2, -	NET_NETROM_NETWORK_TTL_INITIALISER=3, -	NET_NETROM_TRANSPORT_TIMEOUT=4, -	NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5, -	NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6, -	NET_NETROM_TRANSPORT_BUSY_DELAY=7, -	NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8, -	NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9, -	NET_NETROM_ROUTING_CONTROL=10, -	NET_NETROM_LINK_FAILS_COUNT=11, -	NET_NETROM_RESET=12 -}; - -/* /proc/sys/net/ax25 */ -enum { -	NET_AX25_IP_DEFAULT_MODE=1, -	NET_AX25_DEFAULT_MODE=2, -	NET_AX25_BACKOFF_TYPE=3, -	NET_AX25_CONNECT_MODE=4, -	NET_AX25_STANDARD_WINDOW=5, -	NET_AX25_EXTENDED_WINDOW=6, -	NET_AX25_T1_TIMEOUT=7, -	NET_AX25_T2_TIMEOUT=8, -	NET_AX25_T3_TIMEOUT=9, -	NET_AX25_IDLE_TIMEOUT=10, -	NET_AX25_N2=11, -	NET_AX25_PACLEN=12, -	NET_AX25_PROTOCOL=13, -	NET_AX25_DAMA_SLAVE_TIMEOUT=14 -}; - -/* /proc/sys/net/rose */ -enum { -	NET_ROSE_RESTART_REQUEST_TIMEOUT=1, -	NET_ROSE_CALL_REQUEST_TIMEOUT=2, -	NET_ROSE_RESET_REQUEST_TIMEOUT=3, -	NET_ROSE_CLEAR_REQUEST_TIMEOUT=4, -	NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5, -	NET_ROSE_ROUTING_CONTROL=6, -	NET_ROSE_LINK_FAIL_TIMEOUT=7, -	NET_ROSE_MAX_VCS=8, -	NET_ROSE_WINDOW_SIZE=9, -	NET_ROSE_NO_ACTIVITY_TIMEOUT=10 -}; - -/* /proc/sys/net/x25 */ -enum { -	NET_X25_RESTART_REQUEST_TIMEOUT=1, -	NET_X25_CALL_REQUEST_TIMEOUT=2, -	NET_X25_RESET_REQUEST_TIMEOUT=3, -	NET_X25_CLEAR_REQUEST_TIMEOUT=4, -	NET_X25_ACK_HOLD_BACK_TIMEOUT=5, -	NET_X25_FORWARD=6 -}; - -/* /proc/sys/net/token-ring */ -enum -{ -	NET_TR_RIF_TIMEOUT=1 -}; - -/* /proc/sys/net/decnet/ */ -enum { -	NET_DECNET_NODE_TYPE = 1, -	NET_DECNET_NODE_ADDRESS = 2, -	NET_DECNET_NODE_NAME = 3, -	NET_DECNET_DEFAULT_DEVICE = 4, -	NET_DECNET_TIME_WAIT = 5, -	NET_DECNET_DN_COUNT = 6, -	NET_DECNET_DI_COUNT = 7, -	NET_DECNET_DR_COUNT = 8, -	NET_DECNET_DST_GC_INTERVAL = 9, -	NET_DECNET_CONF = 10, -	NET_DECNET_NO_FC_MAX_CWND = 11, -	NET_DECNET_MEM = 12, -	NET_DECNET_RMEM = 13, -	NET_DECNET_WMEM = 14, -	NET_DECNET_DEBUG_LEVEL = 255 -}; - -/* /proc/sys/net/decnet/conf/<dev> */ -enum { -	NET_DECNET_CONF_LOOPBACK = -2, -	NET_DECNET_CONF_DDCMP = -3, -	NET_DECNET_CONF_PPP = -4, -	NET_DECNET_CONF_X25 = -5, -	NET_DECNET_CONF_GRE = -6, -	NET_DECNET_CONF_ETHER = -7 - -	/* ... and ifindex of devices */ -}; - -/* /proc/sys/net/decnet/conf/<dev>/ */ -enum { -	NET_DECNET_CONF_DEV_PRIORITY = 1, -	NET_DECNET_CONF_DEV_T1 = 2, -	NET_DECNET_CONF_DEV_T2 = 3, -	NET_DECNET_CONF_DEV_T3 = 4, -	NET_DECNET_CONF_DEV_FORWARDING = 5, -	NET_DECNET_CONF_DEV_BLKSIZE = 6, -	NET_DECNET_CONF_DEV_STATE = 7 -}; - -/* /proc/sys/net/sctp */ -enum { -	NET_SCTP_RTO_INITIAL = 1, -	NET_SCTP_RTO_MIN     = 2, -	NET_SCTP_RTO_MAX     = 3, -	NET_SCTP_RTO_ALPHA   = 4, -	NET_SCTP_RTO_BETA    = 5, -	NET_SCTP_VALID_COOKIE_LIFE       =  6, -	NET_SCTP_ASSOCIATION_MAX_RETRANS =  7, -	NET_SCTP_PATH_MAX_RETRANS        =  8, -	NET_SCTP_MAX_INIT_RETRANSMITS    =  9, -	NET_SCTP_HB_INTERVAL             = 10, -	NET_SCTP_PRESERVE_ENABLE         = 11, -	NET_SCTP_MAX_BURST               = 12, -	NET_SCTP_ADDIP_ENABLE		 = 13, -	NET_SCTP_PRSCTP_ENABLE		 = 14, -	NET_SCTP_SNDBUF_POLICY		 = 15, -	NET_SCTP_SACK_TIMEOUT		 = 16, -	NET_SCTP_RCVBUF_POLICY		 = 17, -}; - -/* /proc/sys/net/bridge */ -enum { -	NET_BRIDGE_NF_CALL_ARPTABLES = 1, -	NET_BRIDGE_NF_CALL_IPTABLES = 2, -	NET_BRIDGE_NF_CALL_IP6TABLES = 3, -	NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4, -	NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5, -}; - -/* proc/sys/net/irda */ -enum { -	NET_IRDA_DISCOVERY=1, -	NET_IRDA_DEVNAME=2, -	NET_IRDA_DEBUG=3, -	NET_IRDA_FAST_POLL=4, -	NET_IRDA_DISCOVERY_SLOTS=5, -	NET_IRDA_DISCOVERY_TIMEOUT=6, -	NET_IRDA_SLOT_TIMEOUT=7, -	NET_IRDA_MAX_BAUD_RATE=8, -	NET_IRDA_MIN_TX_TURN_TIME=9, -	NET_IRDA_MAX_TX_DATA_SIZE=10, -	NET_IRDA_MAX_TX_WINDOW=11, -	NET_IRDA_MAX_NOREPLY_TIME=12, -	NET_IRDA_WARN_NOREPLY_TIME=13, -	NET_IRDA_LAP_KEEPALIVE_TIME=14, -}; - - -/* CTL_FS names: */ -enum -{ -	FS_NRINODE=1,	/* int:current number of allocated inodes */ -	FS_STATINODE=2, -	FS_MAXINODE=3,	/* int:maximum number of inodes that can be allocated */ -	FS_NRDQUOT=4,	/* int:current number of allocated dquots */ -	FS_MAXDQUOT=5,	/* int:maximum number of dquots that can be allocated */ -	FS_NRFILE=6,	/* int:current number of allocated filedescriptors */ -	FS_MAXFILE=7,	/* int:maximum number of filedescriptors that can be allocated */ -	FS_DENTRY=8, -	FS_NRSUPER=9,	/* int:current number of allocated super_blocks */ -	FS_MAXSUPER=10,	/* int:maximum number of super_blocks that can be allocated */ -	FS_OVERFLOWUID=11,	/* int: overflow UID */ -	FS_OVERFLOWGID=12,	/* int: overflow GID */ -	FS_LEASES=13,	/* int: leases enabled */ -	FS_DIR_NOTIFY=14,	/* int: directory notification enabled */ -	FS_LEASE_TIME=15,	/* int: maximum time to wait for a lease break */ -	FS_DQSTATS=16,	/* disc quota usage statistics and control */ -	FS_XFS=17,	/* struct: control xfs parameters */ -	FS_AIO_NR=18,	/* current system-wide number of aio requests */ -	FS_AIO_MAX_NR=19,	/* system-wide maximum number of aio requests */ -	FS_INOTIFY=20,	/* inotify submenu */ -	FS_OCFS2=988,	/* ocfs2 */ -}; - -/* /proc/sys/fs/quota/ */ -enum { -	FS_DQ_LOOKUPS = 1, -	FS_DQ_DROPS = 2, -	FS_DQ_READS = 3, -	FS_DQ_WRITES = 4, -	FS_DQ_CACHE_HITS = 5, -	FS_DQ_ALLOCATED = 6, -	FS_DQ_FREE = 7, -	FS_DQ_SYNCS = 8, -	FS_DQ_WARNINGS = 9, -}; - -/* CTL_DEBUG names: */ - -/* CTL_DEV names: */ -enum { -	DEV_CDROM=1, -	DEV_HWMON=2, -	DEV_PARPORT=3, -	DEV_RAID=4, -	DEV_MAC_HID=5, -	DEV_SCSI=6, -	DEV_IPMI=7, -}; - -/* /proc/sys/dev/cdrom */ -enum { -	DEV_CDROM_INFO=1, -	DEV_CDROM_AUTOCLOSE=2, -	DEV_CDROM_AUTOEJECT=3, -	DEV_CDROM_DEBUG=4, -	DEV_CDROM_LOCK=5, -	DEV_CDROM_CHECK_MEDIA=6 -}; - -/* /proc/sys/dev/parport */ -enum { -	DEV_PARPORT_DEFAULT=-3 -}; - -/* /proc/sys/dev/raid */ -enum { -	DEV_RAID_SPEED_LIMIT_MIN=1, -	DEV_RAID_SPEED_LIMIT_MAX=2 -}; - -/* /proc/sys/dev/parport/default */ -enum { -	DEV_PARPORT_DEFAULT_TIMESLICE=1, -	DEV_PARPORT_DEFAULT_SPINTIME=2 -}; - -/* /proc/sys/dev/parport/parport n */ -enum { -	DEV_PARPORT_SPINTIME=1, -	DEV_PARPORT_BASE_ADDR=2, -	DEV_PARPORT_IRQ=3, -	DEV_PARPORT_DMA=4, -	DEV_PARPORT_MODES=5, -	DEV_PARPORT_DEVICES=6, -	DEV_PARPORT_AUTOPROBE=16 -}; - -/* /proc/sys/dev/parport/parport n/devices/ */ -enum { -	DEV_PARPORT_DEVICES_ACTIVE=-3, -}; - -/* /proc/sys/dev/parport/parport n/devices/device n */ -enum { -	DEV_PARPORT_DEVICE_TIMESLICE=1, -}; - -/* /proc/sys/dev/mac_hid */ -enum { -	DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1, -	DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2, -	DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, -	DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, -	DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, -	DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 -}; - -/* /proc/sys/dev/scsi */ -enum { -	DEV_SCSI_LOGGING_LEVEL=1, -}; - -/* /proc/sys/dev/ipmi */ -enum { -	DEV_IPMI_POWEROFF_POWERCYCLE=1, -}; - -/* /proc/sys/abi */ -enum -{ -	ABI_DEFHANDLER_COFF=1,	/* default handler for coff binaries */ -	ABI_DEFHANDLER_ELF=2, 	/* default handler for ELF binaries */ -	ABI_DEFHANDLER_LCALL7=3,/* default handler for procs using lcall7 */ -	ABI_DEFHANDLER_LIBCSO=4,/* default handler for an libc.so ELF interp */ -	ABI_TRACE=5,		/* tracing flags */ -	ABI_FAKE_UTSNAME=6,	/* fake target utsname information */ -}; - -#ifdef __KERNEL__  #include <linux/list.h>  #include <linux/rcupdate.h>  #include <linux/wait.h>  #include <linux/rbtree.h> +#include <uapi/linux/sysctl.h>  /* For the /proc/sys support */  struct ctl_table; @@ -1122,6 +215,4 @@ static inline void setup_sysctl_set(struct ctl_table_set *p,  #endif /* CONFIG_SYSCTL */ -#endif /* __KERNEL__ */ -  #endif /* _LINUX_SYSCTL_H */ diff --git a/include/linux/sysinfo.h b/include/linux/sysinfo.h deleted file mode 100644 index 934335a2252..00000000000 --- a/include/linux/sysinfo.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _LINUX_SYSINFO_H -#define _LINUX_SYSINFO_H - -#include <linux/types.h> - -#define SI_LOAD_SHIFT	16 -struct sysinfo { -	__kernel_long_t uptime;		/* Seconds since boot */ -	__kernel_ulong_t loads[3];	/* 1, 5, and 15 minute load averages */ -	__kernel_ulong_t totalram;	/* Total usable main memory size */ -	__kernel_ulong_t freeram;	/* Available memory size */ -	__kernel_ulong_t sharedram;	/* Amount of shared memory */ -	__kernel_ulong_t bufferram;	/* Memory used by buffers */ -	__kernel_ulong_t totalswap;	/* Total swap space size */ -	__kernel_ulong_t freeswap;	/* swap space still available */ -	__u16 procs;		   	/* Number of current processes */ -	__u16 pad;		   	/* Explicit padding for m68k */ -	__kernel_ulong_t totalhigh;	/* Total high memory size */ -	__kernel_ulong_t freehigh;	/* Available high memory size */ -	__u32 mem_unit;			/* Memory unit size in bytes */ -	char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)];	/* Padding: libc5 uses this.. */ -}; - -#endif /* _LINUX_SYSINFO_H */ diff --git a/include/linux/taskstats.h b/include/linux/taskstats.h deleted file mode 100644 index 2466e550a41..00000000000 --- a/include/linux/taskstats.h +++ /dev/null @@ -1,213 +0,0 @@ -/* taskstats.h - exporting per-task statistics - * - * Copyright (C) Shailabh Nagar, IBM Corp. 2006 - *           (C) Balbir Singh,   IBM Corp. 2006 - *           (C) Jay Lan,        SGI, 2006 - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2.1 of the GNU Lesser General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef _LINUX_TASKSTATS_H -#define _LINUX_TASKSTATS_H - -#include <linux/types.h> - -/* Format for per-task data returned to userland when - *	- a task exits - *	- listener requests stats for a task - * - * The struct is versioned. Newer versions should only add fields to - * the bottom of the struct to maintain backward compatibility. - * - * - * To add new fields - *	a) bump up TASKSTATS_VERSION - *	b) add comment indicating new version number at end of struct - *	c) add new fields after version comment; maintain 64-bit alignment - */ - - -#define TASKSTATS_VERSION	8 -#define TS_COMM_LEN		32	/* should be >= TASK_COMM_LEN -					 * in linux/sched.h */ - -struct taskstats { - -	/* The version number of this struct. This field is always set to -	 * TAKSTATS_VERSION, which is defined in <linux/taskstats.h>. -	 * Each time the struct is changed, the value should be incremented. -	 */ -	__u16	version; -	__u32	ac_exitcode;		/* Exit status */ - -	/* The accounting flags of a task as defined in <linux/acct.h> -	 * Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG. -	 */ -	__u8	ac_flag;		/* Record flags */ -	__u8	ac_nice;		/* task_nice */ - -	/* Delay accounting fields start -	 * -	 * All values, until comment "Delay accounting fields end" are -	 * available only if delay accounting is enabled, even though the last -	 * few fields are not delays -	 * -	 * xxx_count is the number of delay values recorded -	 * xxx_delay_total is the corresponding cumulative delay in nanoseconds -	 * -	 * xxx_delay_total wraps around to zero on overflow -	 * xxx_count incremented regardless of overflow -	 */ - -	/* Delay waiting for cpu, while runnable -	 * count, delay_total NOT updated atomically -	 */ -	__u64	cpu_count __attribute__((aligned(8))); -	__u64	cpu_delay_total; - -	/* Following four fields atomically updated using task->delays->lock */ - -	/* Delay waiting for synchronous block I/O to complete -	 * does not account for delays in I/O submission -	 */ -	__u64	blkio_count; -	__u64	blkio_delay_total; - -	/* Delay waiting for page fault I/O (swap in only) */ -	__u64	swapin_count; -	__u64	swapin_delay_total; - -	/* cpu "wall-clock" running time -	 * On some architectures, value will adjust for cpu time stolen -	 * from the kernel in involuntary waits due to virtualization. -	 * Value is cumulative, in nanoseconds, without a corresponding count -	 * and wraps around to zero silently on overflow -	 */ -	__u64	cpu_run_real_total; - -	/* cpu "virtual" running time -	 * Uses time intervals seen by the kernel i.e. no adjustment -	 * for kernel's involuntary waits due to virtualization. -	 * Value is cumulative, in nanoseconds, without a corresponding count -	 * and wraps around to zero silently on overflow -	 */ -	__u64	cpu_run_virtual_total; -	/* Delay accounting fields end */ -	/* version 1 ends here */ - -	/* Basic Accounting Fields start */ -	char	ac_comm[TS_COMM_LEN];	/* Command name */ -	__u8	ac_sched __attribute__((aligned(8))); -					/* Scheduling discipline */ -	__u8	ac_pad[3]; -	__u32	ac_uid __attribute__((aligned(8))); -					/* User ID */ -	__u32	ac_gid;			/* Group ID */ -	__u32	ac_pid;			/* Process ID */ -	__u32	ac_ppid;		/* Parent process ID */ -	__u32	ac_btime;		/* Begin time [sec since 1970] */ -	__u64	ac_etime __attribute__((aligned(8))); -					/* Elapsed time [usec] */ -	__u64	ac_utime;		/* User CPU time [usec] */ -	__u64	ac_stime;		/* SYstem CPU time [usec] */ -	__u64	ac_minflt;		/* Minor Page Fault Count */ -	__u64	ac_majflt;		/* Major Page Fault Count */ -	/* Basic Accounting Fields end */ - -	/* Extended accounting fields start */ -	/* Accumulated RSS usage in duration of a task, in MBytes-usecs. -	 * The current rss usage is added to this counter every time -	 * a tick is charged to a task's system time. So, at the end we -	 * will have memory usage multiplied by system time. Thus an -	 * average usage per system time unit can be calculated. -	 */ -	__u64	coremem;		/* accumulated RSS usage in MB-usec */ -	/* Accumulated virtual memory usage in duration of a task. -	 * Same as acct_rss_mem1 above except that we keep track of VM usage. -	 */ -	__u64	virtmem;		/* accumulated VM  usage in MB-usec */ - -	/* High watermark of RSS and virtual memory usage in duration of -	 * a task, in KBytes. -	 */ -	__u64	hiwater_rss;		/* High-watermark of RSS usage, in KB */ -	__u64	hiwater_vm;		/* High-water VM usage, in KB */ - -	/* The following four fields are I/O statistics of a task. */ -	__u64	read_char;		/* bytes read */ -	__u64	write_char;		/* bytes written */ -	__u64	read_syscalls;		/* read syscalls */ -	__u64	write_syscalls;		/* write syscalls */ -	/* Extended accounting fields end */ - -#define TASKSTATS_HAS_IO_ACCOUNTING -	/* Per-task storage I/O accounting starts */ -	__u64	read_bytes;		/* bytes of read I/O */ -	__u64	write_bytes;		/* bytes of write I/O */ -	__u64	cancelled_write_bytes;	/* bytes of cancelled write I/O */ - -	__u64  nvcsw;			/* voluntary_ctxt_switches */ -	__u64  nivcsw;			/* nonvoluntary_ctxt_switches */ - -	/* time accounting for SMT machines */ -	__u64	ac_utimescaled;		/* utime scaled on frequency etc */ -	__u64	ac_stimescaled;		/* stime scaled on frequency etc */ -	__u64	cpu_scaled_run_real_total; /* scaled cpu_run_real_total */ - -	/* Delay waiting for memory reclaim */ -	__u64	freepages_count; -	__u64	freepages_delay_total; -}; - - -/* - * Commands sent from userspace - * Not versioned. New commands should only be inserted at the enum's end - * prior to __TASKSTATS_CMD_MAX - */ - -enum { -	TASKSTATS_CMD_UNSPEC = 0,	/* Reserved */ -	TASKSTATS_CMD_GET,		/* user->kernel request/get-response */ -	TASKSTATS_CMD_NEW,		/* kernel->user event */ -	__TASKSTATS_CMD_MAX, -}; - -#define TASKSTATS_CMD_MAX (__TASKSTATS_CMD_MAX - 1) - -enum { -	TASKSTATS_TYPE_UNSPEC = 0,	/* Reserved */ -	TASKSTATS_TYPE_PID,		/* Process id */ -	TASKSTATS_TYPE_TGID,		/* Thread group id */ -	TASKSTATS_TYPE_STATS,		/* taskstats structure */ -	TASKSTATS_TYPE_AGGR_PID,	/* contains pid + stats */ -	TASKSTATS_TYPE_AGGR_TGID,	/* contains tgid + stats */ -	TASKSTATS_TYPE_NULL,		/* contains nothing */ -	__TASKSTATS_TYPE_MAX, -}; - -#define TASKSTATS_TYPE_MAX (__TASKSTATS_TYPE_MAX - 1) - -enum { -	TASKSTATS_CMD_ATTR_UNSPEC = 0, -	TASKSTATS_CMD_ATTR_PID, -	TASKSTATS_CMD_ATTR_TGID, -	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK, -	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK, -	__TASKSTATS_CMD_ATTR_MAX, -}; - -#define TASKSTATS_CMD_ATTR_MAX (__TASKSTATS_CMD_ATTR_MAX - 1) - -/* NETLINK_GENERIC related info */ - -#define TASKSTATS_GENL_NAME	"TASKSTATS" -#define TASKSTATS_GENL_VERSION	0x1 - -#endif /* _LINUX_TASKSTATS_H */ diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 67c789ae719..8a7fc4be2d7 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h @@ -17,217 +17,13 @@  #ifndef _LINUX_TCP_H  #define _LINUX_TCP_H -#include <linux/types.h> -#include <asm/byteorder.h> -#include <linux/socket.h> - -struct tcphdr { -	__be16	source; -	__be16	dest; -	__be32	seq; -	__be32	ack_seq; -#if defined(__LITTLE_ENDIAN_BITFIELD) -	__u16	res1:4, -		doff:4, -		fin:1, -		syn:1, -		rst:1, -		psh:1, -		ack:1, -		urg:1, -		ece:1, -		cwr:1; -#elif defined(__BIG_ENDIAN_BITFIELD) -	__u16	doff:4, -		res1:4, -		cwr:1, -		ece:1, -		urg:1, -		ack:1, -		psh:1, -		rst:1, -		syn:1, -		fin:1; -#else -#error	"Adjust your <asm/byteorder.h> defines" -#endif	 -	__be16	window; -	__sum16	check; -	__be16	urg_ptr; -}; - -/* - *	The union cast uses a gcc extension to avoid aliasing problems - *  (union is compatible to any of its members) - *  This means this part of the code is -fstrict-aliasing safe now. - */ -union tcp_word_hdr {  -	struct tcphdr hdr; -	__be32 		  words[5]; -};  - -#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3])  - -enum {  -	TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), -	TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), -	TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), -	TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000), -	TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000), -	TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), -	TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), -	TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), -	TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000), -	TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) -};  - -/* - * TCP general constants - */ -#define TCP_MSS_DEFAULT		 536U	/* IPv4 (RFC1122, RFC2581) */ -#define TCP_MSS_DESIRED		1220U	/* IPv6 (tunneled), EDNS0 (RFC3226) */ - -/* TCP socket options */ -#define TCP_NODELAY		1	/* Turn off Nagle's algorithm. */ -#define TCP_MAXSEG		2	/* Limit MSS */ -#define TCP_CORK		3	/* Never send partially complete segments */ -#define TCP_KEEPIDLE		4	/* Start keeplives after this period */ -#define TCP_KEEPINTVL		5	/* Interval between keepalives */ -#define TCP_KEEPCNT		6	/* Number of keepalives before death */ -#define TCP_SYNCNT		7	/* Number of SYN retransmits */ -#define TCP_LINGER2		8	/* Life time of orphaned FIN-WAIT-2 state */ -#define TCP_DEFER_ACCEPT	9	/* Wake up listener only when data arrive */ -#define TCP_WINDOW_CLAMP	10	/* Bound advertised window */ -#define TCP_INFO		11	/* Information about this connection. */ -#define TCP_QUICKACK		12	/* Block/reenable quick acks */ -#define TCP_CONGESTION		13	/* Congestion control algorithm */ -#define TCP_MD5SIG		14	/* TCP MD5 Signature (RFC2385) */ -#define TCP_COOKIE_TRANSACTIONS	15	/* TCP Cookie Transactions */ -#define TCP_THIN_LINEAR_TIMEOUTS 16      /* Use linear timeouts for thin streams*/ -#define TCP_THIN_DUPACK         17      /* Fast retrans. after 1 dupack */ -#define TCP_USER_TIMEOUT	18	/* How long for loss retry before timeout */ -#define TCP_REPAIR		19	/* TCP sock is under repair right now */ -#define TCP_REPAIR_QUEUE	20 -#define TCP_QUEUE_SEQ		21 -#define TCP_REPAIR_OPTIONS	22 -#define TCP_FASTOPEN		23	/* Enable FastOpen on listeners */ - -struct tcp_repair_opt { -	__u32	opt_code; -	__u32	opt_val; -}; - -enum { -	TCP_NO_QUEUE, -	TCP_RECV_QUEUE, -	TCP_SEND_QUEUE, -	TCP_QUEUES_NR, -}; - -/* for TCP_INFO socket option */ -#define TCPI_OPT_TIMESTAMPS	1 -#define TCPI_OPT_SACK		2 -#define TCPI_OPT_WSCALE		4 -#define TCPI_OPT_ECN		8 /* ECN was negociated at TCP session init */ -#define TCPI_OPT_ECN_SEEN	16 /* we received at least one packet with ECT */ - -enum tcp_ca_state { -	TCP_CA_Open = 0, -#define TCPF_CA_Open	(1<<TCP_CA_Open) -	TCP_CA_Disorder = 1, -#define TCPF_CA_Disorder (1<<TCP_CA_Disorder) -	TCP_CA_CWR = 2, -#define TCPF_CA_CWR	(1<<TCP_CA_CWR) -	TCP_CA_Recovery = 3, -#define TCPF_CA_Recovery (1<<TCP_CA_Recovery) -	TCP_CA_Loss = 4 -#define TCPF_CA_Loss	(1<<TCP_CA_Loss) -}; - -struct tcp_info { -	__u8	tcpi_state; -	__u8	tcpi_ca_state; -	__u8	tcpi_retransmits; -	__u8	tcpi_probes; -	__u8	tcpi_backoff; -	__u8	tcpi_options; -	__u8	tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; - -	__u32	tcpi_rto; -	__u32	tcpi_ato; -	__u32	tcpi_snd_mss; -	__u32	tcpi_rcv_mss; - -	__u32	tcpi_unacked; -	__u32	tcpi_sacked; -	__u32	tcpi_lost; -	__u32	tcpi_retrans; -	__u32	tcpi_fackets; - -	/* Times. */ -	__u32	tcpi_last_data_sent; -	__u32	tcpi_last_ack_sent;     /* Not remembered, sorry. */ -	__u32	tcpi_last_data_recv; -	__u32	tcpi_last_ack_recv; - -	/* Metrics. */ -	__u32	tcpi_pmtu; -	__u32	tcpi_rcv_ssthresh; -	__u32	tcpi_rtt; -	__u32	tcpi_rttvar; -	__u32	tcpi_snd_ssthresh; -	__u32	tcpi_snd_cwnd; -	__u32	tcpi_advmss; -	__u32	tcpi_reordering; - -	__u32	tcpi_rcv_rtt; -	__u32	tcpi_rcv_space; - -	__u32	tcpi_total_retrans; -}; - -/* for TCP_MD5SIG socket option */ -#define TCP_MD5SIG_MAXKEYLEN	80 - -struct tcp_md5sig { -	struct __kernel_sockaddr_storage tcpm_addr;	/* address associated */ -	__u16	__tcpm_pad1;				/* zero */ -	__u16	tcpm_keylen;				/* key length */ -	__u32	__tcpm_pad2;				/* zero */ -	__u8	tcpm_key[TCP_MD5SIG_MAXKEYLEN];		/* key (binary) */ -}; - -/* for TCP_COOKIE_TRANSACTIONS (TCPCT) socket option */ -#define TCP_COOKIE_MIN		 8		/*  64-bits */ -#define TCP_COOKIE_MAX		16		/* 128-bits */ -#define TCP_COOKIE_PAIR_SIZE	(2*TCP_COOKIE_MAX) - -/* Flags for both getsockopt and setsockopt */ -#define TCP_COOKIE_IN_ALWAYS	(1 << 0)	/* Discard SYN without cookie */ -#define TCP_COOKIE_OUT_NEVER	(1 << 1)	/* Prohibit outgoing cookies, -						 * supercedes everything. */ - -/* Flags for getsockopt */ -#define TCP_S_DATA_IN		(1 << 2)	/* Was data received? */ -#define TCP_S_DATA_OUT		(1 << 3)	/* Was data sent? */ - -/* TCP_COOKIE_TRANSACTIONS data */ -struct tcp_cookie_transactions { -	__u16	tcpct_flags;			/* see above */ -	__u8	__tcpct_pad1;			/* zero */ -	__u8	tcpct_cookie_desired;		/* bytes */ -	__u16	tcpct_s_data_desired;		/* bytes of variable data */ -	__u16	tcpct_used;			/* bytes in value */ -	__u8	tcpct_value[TCP_MSS_DEFAULT]; -}; - -#ifdef __KERNEL__  #include <linux/skbuff.h>  #include <linux/dmaengine.h>  #include <net/sock.h>  #include <net/inet_connection_sock.h>  #include <net/inet_timewait_sock.h> +#include <uapi/linux/tcp.h>  static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb)  { @@ -595,6 +391,4 @@ static inline int fastopen_init_queue(struct sock *sk, int backlog)  	return 0;  } -#endif	/* __KERNEL__ */ -  #endif	/* _LINUX_TCP_H */ diff --git a/include/linux/tcp_metrics.h b/include/linux/tcp_metrics.h deleted file mode 100644 index cb5157b55f3..00000000000 --- a/include/linux/tcp_metrics.h +++ /dev/null @@ -1,54 +0,0 @@ -/* tcp_metrics.h - TCP Metrics Interface */ - -#ifndef _LINUX_TCP_METRICS_H -#define _LINUX_TCP_METRICS_H - -#include <linux/types.h> - -/* NETLINK_GENERIC related info - */ -#define TCP_METRICS_GENL_NAME		"tcp_metrics" -#define TCP_METRICS_GENL_VERSION	0x1 - -enum tcp_metric_index { -	TCP_METRIC_RTT, -	TCP_METRIC_RTTVAR, -	TCP_METRIC_SSTHRESH, -	TCP_METRIC_CWND, -	TCP_METRIC_REORDERING, - -	/* Always last.  */ -	__TCP_METRIC_MAX, -}; - -#define TCP_METRIC_MAX	(__TCP_METRIC_MAX - 1) - -enum { -	TCP_METRICS_ATTR_UNSPEC, -	TCP_METRICS_ATTR_ADDR_IPV4,		/* u32 */ -	TCP_METRICS_ATTR_ADDR_IPV6,		/* binary */ -	TCP_METRICS_ATTR_AGE,			/* msecs */ -	TCP_METRICS_ATTR_TW_TSVAL,		/* u32, raw, rcv tsval */ -	TCP_METRICS_ATTR_TW_TS_STAMP,		/* s32, sec age */ -	TCP_METRICS_ATTR_VALS,			/* nested +1, u32 */ -	TCP_METRICS_ATTR_FOPEN_MSS,		/* u16 */ -	TCP_METRICS_ATTR_FOPEN_SYN_DROPS,	/* u16, count of drops */ -	TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS,	/* msecs age */ -	TCP_METRICS_ATTR_FOPEN_COOKIE,		/* binary */ - -	__TCP_METRICS_ATTR_MAX, -}; - -#define TCP_METRICS_ATTR_MAX	(__TCP_METRICS_ATTR_MAX - 1) - -enum { -	TCP_METRICS_CMD_UNSPEC, -	TCP_METRICS_CMD_GET, -	TCP_METRICS_CMD_DEL, - -	__TCP_METRICS_CMD_MAX, -}; - -#define TCP_METRICS_CMD_MAX	(__TCP_METRICS_CMD_MAX - 1) - -#endif /* _LINUX_TCP_METRICS_H */ diff --git a/include/linux/telephony.h b/include/linux/telephony.h deleted file mode 100644 index f63afe330ad..00000000000 --- a/include/linux/telephony.h +++ /dev/null @@ -1,262 +0,0 @@ -/****************************************************************************** - * - *		telephony.h - * - *		Basic Linux Telephony Interface - * - *		(c) Copyright 1999-2001 Quicknet Technologies, Inc. - * - *		This program is free software; you can redistribute it and/or - *		modify it under the terms of the GNU General Public License - *		as published by the Free Software Foundation; either version - *		2 of the License, or (at your option) any later version. - * - *    Authors:       Ed Okerson, <eokerson@quicknet.net> - *                   Greg Herlein, <gherlein@quicknet.net> - * - *    Contributors:  Alan Cox, <alan@lxorguk.ukuu.org.uk> - *                   David W. Erhart, <derhart@quicknet.net> - * - * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT - * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET - * TECHNOLOGIES, INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION - * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - *****************************************************************************/ - -#ifndef TELEPHONY_H -#define TELEPHONY_H - -#define TELEPHONY_VERSION 3013 - -#define PHONE_VENDOR_IXJ          1 -#define PHONE_VENDOR_QUICKNET	  PHONE_VENDOR_IXJ -#define PHONE_VENDOR_VOICETRONIX  2 -#define PHONE_VENDOR_ACULAB       3 -#define PHONE_VENDOR_DIGI         4 -#define PHONE_VENDOR_FRANKLIN     5 - -/****************************************************************************** - *  Vendor Summary Information Area - * - *  Quicknet Technologies, Inc. - makes low density analog telephony cards - *    with audio compression, POTS and PSTN interfaces (www.quicknet.net) - * - *  (other vendors following this API shuld add a short description of - *  the telephony products they support under Linux) - * - *****************************************************************************/ -#define QTI_PHONEJACK		100 -#define QTI_LINEJACK		300 -#define QTI_PHONEJACK_LITE	400 -#define QTI_PHONEJACK_PCI	500 -#define QTI_PHONECARD		600 - -/****************************************************************************** -* -* The capabilities ioctls can inform you of the capabilities of each phone -* device installed in your system.  The PHONECTL_CAPABILITIES ioctl -* returns an integer value indicating the number of capabilities the    -* device has.  The PHONECTL_CAPABILITIES_LIST will fill an array of  -* capability structs with all of its capabilities.  The -* PHONECTL_CAPABILITIES_CHECK takes a single capability struct and returns -* a TRUE if the device has that capability, otherwise it returns false. -*  -******************************************************************************/ -typedef enum { -	vendor = 0, -	device, -	port, -	codec, -	dsp -} phone_cap; - -struct phone_capability { -	char desc[80]; -	phone_cap captype; -	int cap; -	int handle; -}; - -typedef enum { -	pots = 0, -	pstn, -	handset, -	speaker -} phone_ports; - -#define PHONE_CAPABILITIES              _IO  ('q', 0x80) -#define PHONE_CAPABILITIES_LIST         _IOR ('q', 0x81, struct phone_capability *) -#define PHONE_CAPABILITIES_CHECK        _IOW ('q', 0x82, struct phone_capability *) - -typedef struct { -        char month[3]; -        char day[3]; -        char hour[3]; -        char min[3]; -        int numlen; -        char number[11]; -        int namelen; -        char name[80]; -} PHONE_CID; -  -#define PHONE_RING			_IO  ('q', 0x83) -#define PHONE_HOOKSTATE			_IO  ('q', 0x84) -#define PHONE_MAXRINGS			_IOW ('q', 0x85, char) -#define PHONE_RING_CADENCE		_IOW ('q', 0x86, short) -#define OLD_PHONE_RING_START            _IO  ('q', 0x87) -#define PHONE_RING_START		_IOW ('q', 0x87, PHONE_CID *) -#define PHONE_RING_STOP			_IO  ('q', 0x88) - -#define USA_RING_CADENCE	 0xC0C0 - -#define PHONE_REC_CODEC			_IOW ('q', 0x89, int) -#define PHONE_REC_START			_IO  ('q', 0x8A) -#define PHONE_REC_STOP			_IO  ('q', 0x8B) -#define PHONE_REC_DEPTH			_IOW ('q', 0x8C, int) -#define PHONE_FRAME			_IOW ('q', 0x8D, int) -#define PHONE_REC_VOLUME		_IOW ('q', 0x8E, int) -#define PHONE_REC_VOLUME_LINEAR		_IOW ('q', 0xDB, int) -#define PHONE_REC_LEVEL			_IO  ('q', 0x8F) - -#define PHONE_PLAY_CODEC		_IOW ('q', 0x90, int) -#define PHONE_PLAY_START		_IO  ('q', 0x91) -#define PHONE_PLAY_STOP			_IO  ('q', 0x92) -#define PHONE_PLAY_DEPTH		_IOW ('q', 0x93, int) -#define PHONE_PLAY_VOLUME		_IOW ('q', 0x94, int) -#define PHONE_PLAY_VOLUME_LINEAR	_IOW ('q', 0xDC, int) -#define PHONE_PLAY_LEVEL		_IO  ('q', 0x95) -#define PHONE_DTMF_READY		_IOR ('q', 0x96, int) -#define PHONE_GET_DTMF			_IOR ('q', 0x97, int) -#define PHONE_GET_DTMF_ASCII		_IOR ('q', 0x98, int) -#define PHONE_DTMF_OOB			_IOW ('q', 0x99, int) -#define PHONE_EXCEPTION			_IOR ('q', 0x9A, int) -#define PHONE_PLAY_TONE			_IOW ('q', 0x9B, char) -#define PHONE_SET_TONE_ON_TIME		_IOW ('q', 0x9C, int) -#define PHONE_SET_TONE_OFF_TIME		_IOW ('q', 0x9D, int) -#define PHONE_GET_TONE_ON_TIME		_IO  ('q', 0x9E) -#define PHONE_GET_TONE_OFF_TIME		_IO  ('q', 0x9F) -#define PHONE_GET_TONE_STATE		_IO  ('q', 0xA0) -#define PHONE_BUSY			_IO  ('q', 0xA1) -#define PHONE_RINGBACK			_IO  ('q', 0xA2) -#define PHONE_DIALTONE			_IO  ('q', 0xA3) -#define PHONE_CPT_STOP			_IO  ('q', 0xA4) - -#define PHONE_PSTN_SET_STATE		_IOW ('q', 0xA4, int) -#define PHONE_PSTN_GET_STATE		_IO  ('q', 0xA5) - -#define PSTN_ON_HOOK		0 -#define PSTN_RINGING		1 -#define PSTN_OFF_HOOK		2 -#define PSTN_PULSE_DIAL		3 - -/****************************************************************************** -*  -* The wink duration is tunable with this ioctl.  The default wink duration   -* is 320ms.  You do not need to use this ioctl if you do not require a -* different wink duration. -*  -******************************************************************************/ -#define PHONE_WINK_DURATION		_IOW ('q', 0xA6, int) -#define PHONE_WINK			_IOW ('q', 0xAA, int) - -/****************************************************************************** -*  -*  Codec Definitions -*  -******************************************************************************/ -typedef enum { -	G723_63 = 1, -	G723_53 = 2, -	TS85 = 3, -	TS48 = 4, -	TS41 = 5, -	G728 = 6, -	G729 = 7, -	ULAW = 8, -	ALAW = 9, -	LINEAR16 = 10, -	LINEAR8 = 11, -	WSS = 12, -	G729B = 13 -} phone_codec; - -struct phone_codec_data -{ -        phone_codec type; -        unsigned short buf_min, buf_opt, buf_max; -}; - -#define PHONE_QUERY_CODEC               _IOWR ('q', 0xA7, struct phone_codec_data *) -#define PHONE_PSTN_LINETEST             _IO ('q', 0xA8) - -/****************************************************************************** -*  -* This controls the VAD/CNG functionality of G.723.1.  The driver will -* always pass full size frames, any unused bytes will be padded with zeros, -* and frames passed to the driver should also be padded with zeros.  The -* frame type is encoded in the least significant two bits of the first -* WORD of the frame as follows: -* -* bits 1-0	Frame Type	Data Rate		Significant Words -* 00		0		G.723.1 6.3		12 -* 01		1		G.723.1 5.3		10 -* 10		2		VAD/CNG			 2 -* 11		3		Repeat last CNG		 2 bits -*  -******************************************************************************/ -#define PHONE_VAD			_IOW ('q', 0xA9, int) - - -/****************************************************************************** -* -* The exception structure allows us to multiplex multiple events onto the -* select() exception set.  If any of these flags are set select() will -* return with a positive indication on the exception set.  The dtmf_ready -* bit indicates if there is data waiting in the DTMF buffer.  The -* hookstate bit is set if there is a change in hookstate status, it does not -* indicate the current state of the hookswitch.  The pstn_ring bit -* indicates that the DAA on a LineJACK card has detected ring voltage on -* the PSTN port.  The caller_id bit indicates that caller_id data has been -* received and is available.  The pstn_wink bit indicates that the DAA on -* the LineJACK has received a wink from the telco switch.  The f0, f1, f2 -* and f3 bits indicate that the filter has been triggered by detecting the -* frequency programmed into that filter. -* -* The remaining bits should be set to zero. They will become defined over time -* for other interface cards and their needs. -* -******************************************************************************/ -struct phone_except -{ -	unsigned int dtmf_ready:1; -	unsigned int hookstate:1; -	unsigned int pstn_ring:1; -	unsigned int caller_id:1; -	unsigned int pstn_wink:1; -	unsigned int f0:1; -	unsigned int f1:1; -	unsigned int f2:1; -	unsigned int f3:1; -	unsigned int flash:1; -	unsigned int fc0:1; -	unsigned int fc1:1; -	unsigned int fc2:1; -	unsigned int fc3:1; -	unsigned int reserved:18; -}; - -union telephony_exception { -	struct phone_except bits; -	unsigned int bytes; -}; - - -#endif		/* TELEPHONY_H */ - diff --git a/include/linux/termios.h b/include/linux/termios.h deleted file mode 100644 index 2acd0c1f8a2..00000000000 --- a/include/linux/termios.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _LINUX_TERMIOS_H -#define _LINUX_TERMIOS_H - -#include <linux/types.h> -#include <asm/termios.h> - -#define NFF	5 - -struct termiox -{ -	__u16	x_hflag; -	__u16	x_cflag; -	__u16	x_rflag[NFF]; -	__u16	x_sflag; -}; - -#define	RTSXOFF		0x0001		/* RTS flow control on input */ -#define	CTSXON		0x0002		/* CTS flow control on output */ -#define	DTRXOFF		0x0004		/* DTR flow control on input */ -#define DSRXON		0x0008		/* DCD flow control on output */ - -#endif diff --git a/include/linux/time.h b/include/linux/time.h index b51e664c83e..4d358e9d10f 100644 --- a/include/linux/time.h +++ b/include/linux/time.h @@ -1,33 +1,10 @@  #ifndef _LINUX_TIME_H  #define _LINUX_TIME_H -#include <linux/types.h> - -#ifdef __KERNEL__  # include <linux/cache.h>  # include <linux/seqlock.h>  # include <linux/math64.h> -#endif - -#ifndef _STRUCT_TIMESPEC -#define _STRUCT_TIMESPEC -struct timespec { -	__kernel_time_t	tv_sec;			/* seconds */ -	long		tv_nsec;		/* nanoseconds */ -}; -#endif - -struct timeval { -	__kernel_time_t		tv_sec;		/* seconds */ -	__kernel_suseconds_t	tv_usec;	/* microseconds */ -}; - -struct timezone { -	int	tz_minuteswest;	/* minutes west of Greenwich */ -	int	tz_dsttime;	/* type of dst correction */ -}; - -#ifdef __KERNEL__ +#include <uapi/linux/time.h>  extern struct timezone sys_tz; @@ -280,51 +257,4 @@ static __always_inline void timespec_add_ns(struct timespec *a, u64 ns)  	a->tv_nsec = ns;  } -#endif /* __KERNEL__ */ - -/* - * Names of the interval timers, and structure - * defining a timer setting: - */ -#define	ITIMER_REAL		0 -#define	ITIMER_VIRTUAL		1 -#define	ITIMER_PROF		2 - -struct itimerspec { -	struct timespec it_interval;	/* timer period */ -	struct timespec it_value;	/* timer expiration */ -}; - -struct itimerval { -	struct timeval it_interval;	/* timer interval */ -	struct timeval it_value;	/* current value */ -}; - -/* - * The IDs of the various system clocks (for POSIX.1b interval timers): - */ -#define CLOCK_REALTIME			0 -#define CLOCK_MONOTONIC			1 -#define CLOCK_PROCESS_CPUTIME_ID	2 -#define CLOCK_THREAD_CPUTIME_ID		3 -#define CLOCK_MONOTONIC_RAW		4 -#define CLOCK_REALTIME_COARSE		5 -#define CLOCK_MONOTONIC_COARSE		6 -#define CLOCK_BOOTTIME			7 -#define CLOCK_REALTIME_ALARM		8 -#define CLOCK_BOOTTIME_ALARM		9 - -/* - * The IDs of various hardware clocks: - */ -#define CLOCK_SGI_CYCLE			10 -#define MAX_CLOCKS			16 -#define CLOCKS_MASK			(CLOCK_REALTIME | CLOCK_MONOTONIC) -#define CLOCKS_MONO			CLOCK_MONOTONIC - -/* - * The various flags for setting POSIX.1b interval timers: - */ -#define TIMER_ABSTIME			0x01 -  #endif diff --git a/include/linux/times.h b/include/linux/times.h deleted file mode 100644 index 87b62615ced..00000000000 --- a/include/linux/times.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _LINUX_TIMES_H -#define _LINUX_TIMES_H - -#include <linux/types.h> - -struct tms { -	__kernel_clock_t tms_utime; -	__kernel_clock_t tms_stime; -	__kernel_clock_t tms_cutime; -	__kernel_clock_t tms_cstime; -}; - -#endif diff --git a/include/linux/timex.h b/include/linux/timex.h index 7c5ceb20e03..5ec87c60b97 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h @@ -53,120 +53,11 @@  #ifndef _LINUX_TIMEX_H  #define _LINUX_TIMEX_H -#include <linux/time.h> +#include <uapi/linux/timex.h> -#define NTP_API		4	/* NTP API version */ - -/* - * syscall interface - used (mainly by NTP daemon) - * to discipline kernel clock oscillator - */ -struct timex { -	unsigned int modes;	/* mode selector */ -	long offset;		/* time offset (usec) */ -	long freq;		/* frequency offset (scaled ppm) */ -	long maxerror;		/* maximum error (usec) */ -	long esterror;		/* estimated error (usec) */ -	int status;		/* clock command/status */ -	long constant;		/* pll time constant */ -	long precision;		/* clock precision (usec) (read only) */ -	long tolerance;		/* clock frequency tolerance (ppm) -				 * (read only) -				 */ -	struct timeval time;	/* (read only, except for ADJ_SETOFFSET) */ -	long tick;		/* (modified) usecs between clock ticks */ - -	long ppsfreq;           /* pps frequency (scaled ppm) (ro) */ -	long jitter;            /* pps jitter (us) (ro) */ -	int shift;              /* interval duration (s) (shift) (ro) */ -	long stabil;            /* pps stability (scaled ppm) (ro) */ -	long jitcnt;            /* jitter limit exceeded (ro) */ -	long calcnt;            /* calibration intervals (ro) */ -	long errcnt;            /* calibration errors (ro) */ -	long stbcnt;            /* stability limit exceeded (ro) */ - -	int tai;		/* TAI offset (ro) */ - -	int  :32; int  :32; int  :32; int  :32; -	int  :32; int  :32; int  :32; int  :32; -	int  :32; int  :32; int  :32; -}; - -/* - * Mode codes (timex.mode) - */ -#define ADJ_OFFSET		0x0001	/* time offset */ -#define ADJ_FREQUENCY		0x0002	/* frequency offset */ -#define ADJ_MAXERROR		0x0004	/* maximum time error */ -#define ADJ_ESTERROR		0x0008	/* estimated time error */ -#define ADJ_STATUS		0x0010	/* clock status */ -#define ADJ_TIMECONST		0x0020	/* pll time constant */ -#define ADJ_TAI			0x0080	/* set TAI offset */ -#define ADJ_SETOFFSET		0x0100  /* add 'time' to current time */ -#define ADJ_MICRO		0x1000	/* select microsecond resolution */ -#define ADJ_NANO		0x2000	/* select nanosecond resolution */ -#define ADJ_TICK		0x4000	/* tick value */ - -#ifdef __KERNEL__  #define ADJ_ADJTIME		0x8000	/* switch between adjtime/adjtimex modes */  #define ADJ_OFFSET_SINGLESHOT	0x0001	/* old-fashioned adjtime */  #define ADJ_OFFSET_READONLY	0x2000	/* read-only adjtime */ -#else -#define ADJ_OFFSET_SINGLESHOT	0x8001	/* old-fashioned adjtime */ -#define ADJ_OFFSET_SS_READ	0xa001	/* read-only adjtime */ -#endif - -/* NTP userland likes the MOD_ prefix better */ -#define MOD_OFFSET	ADJ_OFFSET -#define MOD_FREQUENCY	ADJ_FREQUENCY -#define MOD_MAXERROR	ADJ_MAXERROR -#define MOD_ESTERROR	ADJ_ESTERROR -#define MOD_STATUS	ADJ_STATUS -#define MOD_TIMECONST	ADJ_TIMECONST -#define MOD_TAI	ADJ_TAI -#define MOD_MICRO	ADJ_MICRO -#define MOD_NANO	ADJ_NANO - - -/* - * Status codes (timex.status) - */ -#define STA_PLL		0x0001	/* enable PLL updates (rw) */ -#define STA_PPSFREQ	0x0002	/* enable PPS freq discipline (rw) */ -#define STA_PPSTIME	0x0004	/* enable PPS time discipline (rw) */ -#define STA_FLL		0x0008	/* select frequency-lock mode (rw) */ - -#define STA_INS		0x0010	/* insert leap (rw) */ -#define STA_DEL		0x0020	/* delete leap (rw) */ -#define STA_UNSYNC	0x0040	/* clock unsynchronized (rw) */ -#define STA_FREQHOLD	0x0080	/* hold frequency (rw) */ - -#define STA_PPSSIGNAL	0x0100	/* PPS signal present (ro) */ -#define STA_PPSJITTER	0x0200	/* PPS signal jitter exceeded (ro) */ -#define STA_PPSWANDER	0x0400	/* PPS signal wander exceeded (ro) */ -#define STA_PPSERROR	0x0800	/* PPS signal calibration error (ro) */ - -#define STA_CLOCKERR	0x1000	/* clock hardware fault (ro) */ -#define STA_NANO	0x2000	/* resolution (0 = us, 1 = ns) (ro) */ -#define STA_MODE	0x4000	/* mode (0 = PLL, 1 = FLL) (ro) */ -#define STA_CLK		0x8000	/* clock source (0 = A, 1 = B) (ro) */ - -/* read-only bits */ -#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ -	STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) - -/* - * Clock states (time_state) - */ -#define TIME_OK		0	/* clock synchronized, no leap second */ -#define TIME_INS	1	/* insert leap second */ -#define TIME_DEL	2	/* delete leap second */ -#define TIME_OOP	3	/* leap second in progress */ -#define TIME_WAIT	4	/* leap second has occurred */ -#define TIME_ERROR	5	/* clock not synchronized */ -#define TIME_BAD	TIME_ERROR /* bw compat */ - -#ifdef __KERNEL__  #include <linux/compiler.h>  #include <linux/types.h>  #include <linux/param.h> @@ -261,6 +152,4 @@ int read_current_timer(unsigned long *timer_val);  /* The clock frequency of the i8253/i8254 PIT */  #define PIT_TICK_RATE 1193182ul -#endif /* KERNEL */ -  #endif /* LINUX_TIMEX_H */ diff --git a/include/linux/tiocl.h b/include/linux/tiocl.h deleted file mode 100644 index 4756862c4ed..00000000000 --- a/include/linux/tiocl.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _LINUX_TIOCL_H -#define _LINUX_TIOCL_H - -#define TIOCL_SETSEL	2	/* set a selection */ -#define 	TIOCL_SELCHAR	0	/* select characters */ -#define 	TIOCL_SELWORD	1	/* select whole words */ -#define 	TIOCL_SELLINE	2	/* select whole lines */ -#define 	TIOCL_SELPOINTER	3	/* show the pointer */ -#define 	TIOCL_SELCLEAR	4	/* clear visibility of selection */ -#define 	TIOCL_SELMOUSEREPORT	16	/* report beginning of selection */ -#define 	TIOCL_SELBUTTONMASK	15	/* button mask for report */ -/* selection extent */ -struct tiocl_selection { -	unsigned short xs;	/* X start */ -	unsigned short ys;	/* Y start */ -	unsigned short xe;	/* X end */ -	unsigned short ye;	/* Y end */ -	unsigned short sel_mode;	/* selection mode */ -}; - -#define TIOCL_PASTESEL	3	/* paste previous selection */ -#define TIOCL_UNBLANKSCREEN	4	/* unblank screen */ - -#define TIOCL_SELLOADLUT	5 -	/* set characters to be considered alphabetic when selecting */ -	/* u32[8] bit array, 4 bytes-aligned with type */ - -/* these two don't return a value: they write it back in the type */ -#define TIOCL_GETSHIFTSTATE	6	/* write shift state */ -#define TIOCL_GETMOUSEREPORTING	7	/* write whether mouse event are reported */ -#define TIOCL_SETVESABLANK	10	/* set vesa blanking mode */ -#define TIOCL_SETKMSGREDIRECT	11	/* restrict kernel messages to a vt */ -#define TIOCL_GETFGCONSOLE	12	/* get foreground vt */ -#define TIOCL_SCROLLCONSOLE	13	/* scroll console */ -#define TIOCL_BLANKSCREEN	14	/* keep screen blank even if a key is pressed */ -#define TIOCL_BLANKEDSCREEN	15	/* return which vt was blanked */ -#define TIOCL_GETKMSGREDIRECT	17	/* get the vt the kernel messages are restricted to */ - -#endif /* _LINUX_TIOCL_H */ diff --git a/include/linux/tipc.h b/include/linux/tipc.h deleted file mode 100644 index f2d90091cc2..00000000000 --- a/include/linux/tipc.h +++ /dev/null @@ -1,209 +0,0 @@ -/* - * include/linux/tipc.h: Include file for TIPC socket interface - * - * Copyright (c) 2003-2006, Ericsson AB - * Copyright (c) 2005, 2010-2011, Wind River Systems - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the names of the copyright holders nor the names of its - *    contributors may be used to endorse or promote products derived from - *    this software without specific prior written permission. - * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _LINUX_TIPC_H_ -#define _LINUX_TIPC_H_ - -#include <linux/types.h> - -/* - * TIPC addressing primitives - */ - -struct tipc_portid { -	__u32 ref; -	__u32 node; -}; - -struct tipc_name { -	__u32 type; -	__u32 instance; -}; - -struct tipc_name_seq { -	__u32 type; -	__u32 lower; -	__u32 upper; -}; - -static inline __u32 tipc_addr(unsigned int zone, -			      unsigned int cluster, -			      unsigned int node) -{ -	return (zone << 24) | (cluster << 12) | node; -} - -static inline unsigned int tipc_zone(__u32 addr) -{ -	return addr >> 24; -} - -static inline unsigned int tipc_cluster(__u32 addr) -{ -	return (addr >> 12) & 0xfff; -} - -static inline unsigned int tipc_node(__u32 addr) -{ -	return addr & 0xfff; -} - -/* - * Application-accessible port name types - */ - -#define TIPC_CFG_SRV		0	/* configuration service name type */ -#define TIPC_TOP_SRV		1	/* topology service name type */ -#define TIPC_RESERVED_TYPES	64	/* lowest user-publishable name type */ - -/* - * Publication scopes when binding port names and port name sequences - */ - -#define TIPC_ZONE_SCOPE		1 -#define TIPC_CLUSTER_SCOPE	2 -#define TIPC_NODE_SCOPE		3 - -/* - * Limiting values for messages - */ - -#define TIPC_MAX_USER_MSG_SIZE	66000U - -/* - * Message importance levels - */ - -#define TIPC_LOW_IMPORTANCE		0 -#define TIPC_MEDIUM_IMPORTANCE		1 -#define TIPC_HIGH_IMPORTANCE		2 -#define TIPC_CRITICAL_IMPORTANCE	3 - -/* - * Msg rejection/connection shutdown reasons - */ - -#define TIPC_OK			0 -#define TIPC_ERR_NO_NAME	1 -#define TIPC_ERR_NO_PORT	2 -#define TIPC_ERR_NO_NODE	3 -#define TIPC_ERR_OVERLOAD	4 -#define TIPC_CONN_SHUTDOWN	5 - -/* - * TIPC topology subscription service definitions - */ - -#define TIPC_SUB_PORTS		0x01	/* filter for port availability */ -#define TIPC_SUB_SERVICE	0x02	/* filter for service availability */ -#define TIPC_SUB_CANCEL		0x04	/* cancel a subscription */ - -#define TIPC_WAIT_FOREVER	(~0)	/* timeout for permanent subscription */ - -struct tipc_subscr { -	struct tipc_name_seq seq;	/* name sequence of interest */ -	__u32 timeout;			/* subscription duration (in ms) */ -	__u32 filter;			/* bitmask of filter options */ -	char usr_handle[8];		/* available for subscriber use */ -}; - -#define TIPC_PUBLISHED		1	/* publication event */ -#define TIPC_WITHDRAWN		2	/* withdraw event */ -#define TIPC_SUBSCR_TIMEOUT	3	/* subscription timeout event */ - -struct tipc_event { -	__u32 event;			/* event type */ -	__u32 found_lower;		/* matching name seq instances */ -	__u32 found_upper;		/*    "      "    "     "      */ -	struct tipc_portid port;	/* associated port */ -	struct tipc_subscr s;		/* associated subscription */ -}; - -/* - * Socket API - */ - -#ifndef AF_TIPC -#define AF_TIPC		30 -#endif - -#ifndef PF_TIPC -#define PF_TIPC		AF_TIPC -#endif - -#ifndef SOL_TIPC -#define SOL_TIPC	271 -#endif - -#define TIPC_ADDR_NAMESEQ	1 -#define TIPC_ADDR_MCAST		1 -#define TIPC_ADDR_NAME		2 -#define TIPC_ADDR_ID		3 - -struct sockaddr_tipc { -	unsigned short family; -	unsigned char  addrtype; -	signed   char  scope; -	union { -		struct tipc_portid id; -		struct tipc_name_seq nameseq; -		struct { -			struct tipc_name name; -			__u32 domain; -		} name; -	} addr; -}; - -/* - * Ancillary data objects supported by recvmsg() - */ - -#define TIPC_ERRINFO	1	/* error info */ -#define TIPC_RETDATA	2	/* returned data */ -#define TIPC_DESTNAME	3	/* destination name */ - -/* - * TIPC-specific socket option values - */ - -#define TIPC_IMPORTANCE		127	/* Default: TIPC_LOW_IMPORTANCE */ -#define TIPC_SRC_DROPPABLE	128	/* Default: based on socket type */ -#define TIPC_DEST_DROPPABLE	129	/* Default: based on socket type */ -#define TIPC_CONN_TIMEOUT	130	/* Default: 8000 (ms)  */ -#define TIPC_NODE_RECVQ_DEPTH	131	/* Default: none (read only) */ -#define TIPC_SOCK_RECVQ_DEPTH	132	/* Default: none (read only) */ - -#endif diff --git a/include/linux/tipc_config.h b/include/linux/tipc_config.h deleted file mode 100644 index 0b1e3f218a3..00000000000 --- a/include/linux/tipc_config.h +++ /dev/null @@ -1,395 +0,0 @@ -/* - * include/linux/tipc_config.h: Include file for TIPC configuration interface - * - * Copyright (c) 2003-2006, Ericsson AB - * Copyright (c) 2005-2007, 2010-2011, Wind River Systems - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the names of the copyright holders nor the names of its - *    contributors may be used to endorse or promote products derived from - *    this software without specific prior written permission. - * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _LINUX_TIPC_CONFIG_H_ -#define _LINUX_TIPC_CONFIG_H_ - -#include <linux/types.h> -#include <linux/string.h> -#include <asm/byteorder.h> - -#ifndef __KERNEL__ -#include <arpa/inet.h> /* for ntohs etc. */ -#endif - -/* - * Configuration - * - * All configuration management messaging involves sending a request message - * to the TIPC configuration service on a node, which sends a reply message - * back.  (In the future multi-message replies may be supported.) - * - * Both request and reply messages consist of a transport header and payload. - * The transport header contains info about the desired operation; - * the payload consists of zero or more type/length/value (TLV) items - * which specify parameters or results for the operation. - * - * For many operations, the request and reply messages have a fixed number - * of TLVs (usually zero or one); however, some reply messages may return - * a variable number of TLVs.  A failed request is denoted by the presence - * of an "error string" TLV in the reply message instead of the TLV(s) the - * reply should contain if the request succeeds. - */ - -/* - * Public commands: - * May be issued by any process. - * Accepted by own node, or by remote node only if remote management enabled. - */ - -#define  TIPC_CMD_NOOP              0x0000    /* tx none, rx none */ -#define  TIPC_CMD_GET_NODES         0x0001    /* tx net_addr, rx node_info(s) */ -#define  TIPC_CMD_GET_MEDIA_NAMES   0x0002    /* tx none, rx media_name(s) */ -#define  TIPC_CMD_GET_BEARER_NAMES  0x0003    /* tx none, rx bearer_name(s) */ -#define  TIPC_CMD_GET_LINKS         0x0004    /* tx net_addr, rx link_info(s) */ -#define  TIPC_CMD_SHOW_NAME_TABLE   0x0005    /* tx name_tbl_query, rx ultra_string */ -#define  TIPC_CMD_SHOW_PORTS        0x0006    /* tx none, rx ultra_string */ -#define  TIPC_CMD_SHOW_LINK_STATS   0x000B    /* tx link_name, rx ultra_string */ -#define  TIPC_CMD_SHOW_STATS        0x000F    /* tx unsigned, rx ultra_string */ - -/* - * Protected commands: - * May only be issued by "network administration capable" process. - * Accepted by own node, or by remote node only if remote management enabled - * and this node is zone manager. - */ - -#define  TIPC_CMD_GET_REMOTE_MNG    0x4003    /* tx none, rx unsigned */ -#define  TIPC_CMD_GET_MAX_PORTS     0x4004    /* tx none, rx unsigned */ -#define  TIPC_CMD_GET_MAX_PUBL      0x4005    /* obsoleted */ -#define  TIPC_CMD_GET_MAX_SUBSCR    0x4006    /* obsoleted */ -#define  TIPC_CMD_GET_MAX_ZONES     0x4007    /* obsoleted */ -#define  TIPC_CMD_GET_MAX_CLUSTERS  0x4008    /* obsoleted */ -#define  TIPC_CMD_GET_MAX_NODES     0x4009    /* obsoleted */ -#define  TIPC_CMD_GET_MAX_SLAVES    0x400A    /* obsoleted */ -#define  TIPC_CMD_GET_NETID         0x400B    /* tx none, rx unsigned */ - -#define  TIPC_CMD_ENABLE_BEARER     0x4101    /* tx bearer_config, rx none */ -#define  TIPC_CMD_DISABLE_BEARER    0x4102    /* tx bearer_name, rx none */ -#define  TIPC_CMD_SET_LINK_TOL      0x4107    /* tx link_config, rx none */ -#define  TIPC_CMD_SET_LINK_PRI      0x4108    /* tx link_config, rx none */ -#define  TIPC_CMD_SET_LINK_WINDOW   0x4109    /* tx link_config, rx none */ -#define  TIPC_CMD_SET_LOG_SIZE      0x410A    /* obsoleted */ -#define  TIPC_CMD_DUMP_LOG          0x410B    /* obsoleted */ -#define  TIPC_CMD_RESET_LINK_STATS  0x410C    /* tx link_name, rx none */ - -/* - * Private commands: - * May only be issued by "network administration capable" process. - * Accepted by own node only; cannot be used on a remote node. - */ - -#define  TIPC_CMD_SET_NODE_ADDR     0x8001    /* tx net_addr, rx none */ -#define  TIPC_CMD_SET_REMOTE_MNG    0x8003    /* tx unsigned, rx none */ -#define  TIPC_CMD_SET_MAX_PORTS     0x8004    /* tx unsigned, rx none */ -#define  TIPC_CMD_SET_MAX_PUBL      0x8005    /* obsoleted */ -#define  TIPC_CMD_SET_MAX_SUBSCR    0x8006    /* obsoleted */ -#define  TIPC_CMD_SET_MAX_ZONES     0x8007    /* obsoleted */ -#define  TIPC_CMD_SET_MAX_CLUSTERS  0x8008    /* obsoleted */ -#define  TIPC_CMD_SET_MAX_NODES     0x8009    /* obsoleted */ -#define  TIPC_CMD_SET_MAX_SLAVES    0x800A    /* obsoleted */ -#define  TIPC_CMD_SET_NETID         0x800B    /* tx unsigned, rx none */ - -/* - * Reserved commands: - * May not be issued by any process. - * Used internally by TIPC. - */ - -#define  TIPC_CMD_NOT_NET_ADMIN     0xC001    /* tx none, rx none */ - -/* - * TLV types defined for TIPC - */ - -#define TIPC_TLV_NONE		0	/* no TLV present */ -#define TIPC_TLV_VOID		1	/* empty TLV (0 data bytes)*/ -#define TIPC_TLV_UNSIGNED	2	/* 32-bit integer */ -#define TIPC_TLV_STRING		3	/* char[128] (max) */ -#define TIPC_TLV_LARGE_STRING	4	/* char[2048] (max) */ -#define TIPC_TLV_ULTRA_STRING	5	/* char[32768] (max) */ - -#define TIPC_TLV_ERROR_STRING	16	/* char[128] containing "error code" */ -#define TIPC_TLV_NET_ADDR	17	/* 32-bit integer denoting <Z.C.N> */ -#define TIPC_TLV_MEDIA_NAME	18	/* char[TIPC_MAX_MEDIA_NAME] */ -#define TIPC_TLV_BEARER_NAME	19	/* char[TIPC_MAX_BEARER_NAME] */ -#define TIPC_TLV_LINK_NAME	20	/* char[TIPC_MAX_LINK_NAME] */ -#define TIPC_TLV_NODE_INFO	21	/* struct tipc_node_info */ -#define TIPC_TLV_LINK_INFO	22	/* struct tipc_link_info */ -#define TIPC_TLV_BEARER_CONFIG	23	/* struct tipc_bearer_config */ -#define TIPC_TLV_LINK_CONFIG	24	/* struct tipc_link_config */ -#define TIPC_TLV_NAME_TBL_QUERY	25	/* struct tipc_name_table_query */ -#define TIPC_TLV_PORT_REF	26	/* 32-bit port reference */ - -/* - * Maximum sizes of TIPC bearer-related names (including terminating NUL) - */ - -#define TIPC_MAX_MEDIA_NAME	16	/* format = media */ -#define TIPC_MAX_IF_NAME	16	/* format = interface */ -#define TIPC_MAX_BEARER_NAME	32	/* format = media:interface */ -#define TIPC_MAX_LINK_NAME	60	/* format = Z.C.N:interface-Z.C.N:interface */ - -/* - * Link priority limits (min, default, max, media default) - */ - -#define TIPC_MIN_LINK_PRI	0 -#define TIPC_DEF_LINK_PRI	10 -#define TIPC_MAX_LINK_PRI	31 -#define TIPC_MEDIA_LINK_PRI	(TIPC_MAX_LINK_PRI + 1) - -/* - * Link tolerance limits (min, default, max), in ms - */ - -#define TIPC_MIN_LINK_TOL 50 -#define TIPC_DEF_LINK_TOL 1500 -#define TIPC_MAX_LINK_TOL 30000 - -#if (TIPC_MIN_LINK_TOL < 16) -#error "TIPC_MIN_LINK_TOL is too small (abort limit may be NaN)" -#endif - -/* - * Link window limits (min, default, max), in packets - */ - -#define TIPC_MIN_LINK_WIN 16 -#define TIPC_DEF_LINK_WIN 50 -#define TIPC_MAX_LINK_WIN 150 - - -struct tipc_node_info { -	__be32 addr;			/* network address of node */ -	__be32 up;			/* 0=down, 1= up */ -}; - -struct tipc_link_info { -	__be32 dest;			/* network address of peer node */ -	__be32 up;			/* 0=down, 1=up */ -	char str[TIPC_MAX_LINK_NAME];	/* link name */ -}; - -struct tipc_bearer_config { -	__be32 priority;		/* Range [1,31]. Override per link  */ -	__be32 disc_domain;		/* <Z.C.N> describing desired nodes */ -	char name[TIPC_MAX_BEARER_NAME]; -}; - -struct tipc_link_config { -	__be32 value; -	char name[TIPC_MAX_LINK_NAME]; -}; - -#define TIPC_NTQ_ALLTYPES 0x80000000 - -struct tipc_name_table_query { -	__be32 depth;	/* 1:type, 2:+name info, 3:+port info, 4+:+debug info */ -	__be32 type;	/* {t,l,u} info ignored if high bit of "depth" is set */ -	__be32 lowbound; /* (i.e. displays all entries of name table) */ -	__be32 upbound; -}; - -/* - * The error string TLV is a null-terminated string describing the cause - * of the request failure.  To simplify error processing (and to save space) - * the first character of the string can be a special error code character - * (lying by the range 0x80 to 0xFF) which represents a pre-defined reason. - */ - -#define TIPC_CFG_TLV_ERROR      "\x80"  /* request contains incorrect TLV(s) */ -#define TIPC_CFG_NOT_NET_ADMIN  "\x81"	/* must be network administrator */ -#define TIPC_CFG_NOT_ZONE_MSTR	"\x82"	/* must be zone master */ -#define TIPC_CFG_NO_REMOTE	"\x83"	/* remote management not enabled */ -#define TIPC_CFG_NOT_SUPPORTED  "\x84"	/* request is not supported by TIPC */ -#define TIPC_CFG_INVALID_VALUE  "\x85"  /* request has invalid argument value */ - -/* - * A TLV consists of a descriptor, followed by the TLV value. - * TLV descriptor fields are stored in network byte order; - * TLV values must also be stored in network byte order (where applicable). - * TLV descriptors must be aligned to addresses which are multiple of 4, - * so up to 3 bytes of padding may exist at the end of the TLV value area. - * There must not be any padding between the TLV descriptor and its value. - */ - -struct tlv_desc { -	__be16 tlv_len;		/* TLV length (descriptor + value) */ -	__be16 tlv_type;		/* TLV identifier */ -}; - -#define TLV_ALIGNTO 4 - -#define TLV_ALIGN(datalen) (((datalen)+(TLV_ALIGNTO-1)) & ~(TLV_ALIGNTO-1)) -#define TLV_LENGTH(datalen) (sizeof(struct tlv_desc) + (datalen)) -#define TLV_SPACE(datalen) (TLV_ALIGN(TLV_LENGTH(datalen))) -#define TLV_DATA(tlv) ((void *)((char *)(tlv) + TLV_LENGTH(0))) - -static inline int TLV_OK(const void *tlv, __u16 space) -{ -	/* -	 * Would also like to check that "tlv" is a multiple of 4, -	 * but don't know how to do this in a portable way. -	 * - Tried doing (!(tlv & (TLV_ALIGNTO-1))), but GCC compiler -	 *   won't allow binary "&" with a pointer. -	 * - Tried casting "tlv" to integer type, but causes warning about size -	 *   mismatch when pointer is bigger than chosen type (int, long, ...). -	 */ - -	return (space >= TLV_SPACE(0)) && -		(ntohs(((struct tlv_desc *)tlv)->tlv_len) <= space); -} - -static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type) -{ -	return TLV_OK(tlv, space) && -		(ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type); -} - -static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) -{ -	struct tlv_desc *tlv_ptr; -	int tlv_len; - -	tlv_len = TLV_LENGTH(len); -	tlv_ptr = (struct tlv_desc *)tlv; -	tlv_ptr->tlv_type = htons(type); -	tlv_ptr->tlv_len  = htons(tlv_len); -	if (len && data) -		memcpy(TLV_DATA(tlv_ptr), data, tlv_len); -	return TLV_SPACE(len); -} - -/* - * A TLV list descriptor simplifies processing of messages - * containing multiple TLVs. - */ - -struct tlv_list_desc { -	struct tlv_desc *tlv_ptr;	/* ptr to current TLV */ -	__u32 tlv_space;		/* # bytes from curr TLV to list end */ -}; - -static inline void TLV_LIST_INIT(struct tlv_list_desc *list, -				 void *data, __u32 space) -{ -	list->tlv_ptr = (struct tlv_desc *)data; -	list->tlv_space = space; -} - -static inline int TLV_LIST_EMPTY(struct tlv_list_desc *list) -{ -	return (list->tlv_space == 0); -} - -static inline int TLV_LIST_CHECK(struct tlv_list_desc *list, __u16 exp_type) -{ -	return TLV_CHECK(list->tlv_ptr, list->tlv_space, exp_type); -} - -static inline void *TLV_LIST_DATA(struct tlv_list_desc *list) -{ -	return TLV_DATA(list->tlv_ptr); -} - -static inline void TLV_LIST_STEP(struct tlv_list_desc *list) -{ -	__u16 tlv_space = TLV_ALIGN(ntohs(list->tlv_ptr->tlv_len)); - -	list->tlv_ptr = (struct tlv_desc *)((char *)list->tlv_ptr + tlv_space); -	list->tlv_space -= tlv_space; -} - -/* - * Configuration messages exchanged via NETLINK_GENERIC use the following - * family id, name, version and command. - */ -#define TIPC_GENL_NAME		"TIPC" -#define TIPC_GENL_VERSION	0x1 -#define TIPC_GENL_CMD		0x1 - -/* - * TIPC specific header used in NETLINK_GENERIC requests. - */ -struct tipc_genlmsghdr { -	__u32 dest;		/* Destination address */ -	__u16 cmd;		/* Command */ -	__u16 reserved;		/* Unused */ -}; - -#define TIPC_GENL_HDRLEN	NLMSG_ALIGN(sizeof(struct tipc_genlmsghdr)) - -/* - * Configuration messages exchanged via TIPC sockets use the TIPC configuration - * message header, which is defined below.  This structure is analogous - * to the Netlink message header, but fields are stored in network byte order - * and no padding is permitted between the header and the message data - * that follows. - */ - -struct tipc_cfg_msg_hdr { -	__be32 tcm_len;		/* Message length (including header) */ -	__be16 tcm_type;	/* Command type */ -	__be16 tcm_flags;	/* Additional flags */ -	char  tcm_reserved[8];	/* Unused */ -}; - -#define TCM_F_REQUEST	0x1	/* Flag: Request message */ -#define TCM_F_MORE	0x2	/* Flag: Message to be continued */ - -#define TCM_ALIGN(datalen)  (((datalen)+3) & ~3) -#define TCM_LENGTH(datalen) (sizeof(struct tipc_cfg_msg_hdr) + datalen) -#define TCM_SPACE(datalen)  (TCM_ALIGN(TCM_LENGTH(datalen))) -#define TCM_DATA(tcm_hdr)   ((void *)((char *)(tcm_hdr) + TCM_LENGTH(0))) - -static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags, -			  void *data, __u16 data_len) -{ -	struct tipc_cfg_msg_hdr *tcm_hdr; -	int msg_len; - -	msg_len = TCM_LENGTH(data_len); -	tcm_hdr = (struct tipc_cfg_msg_hdr *)msg; -	tcm_hdr->tcm_len   = htonl(msg_len); -	tcm_hdr->tcm_type  = htons(cmd); -	tcm_hdr->tcm_flags = htons(flags); -	if (data_len && data) -		memcpy(TCM_DATA(msg), data, data_len); -	return TCM_SPACE(data_len); -} - -#endif diff --git a/include/linux/toshiba.h b/include/linux/toshiba.h index 772dedbc3a2..915c3bb164a 100644 --- a/include/linux/toshiba.h +++ b/include/linux/toshiba.h @@ -16,25 +16,10 @@   * General Public License for more details.   *   */ -  #ifndef _LINUX_TOSHIBA_H  #define _LINUX_TOSHIBA_H -#define TOSH_PROC "/proc/toshiba" -#define TOSH_DEVICE "/dev/toshiba" -#define TOSH_SMM _IOWR('t', 0x90, int)	/* broken: meant 24 bytes */ - -typedef struct { -	unsigned int eax; -	unsigned int ebx __attribute__ ((packed)); -	unsigned int ecx __attribute__ ((packed)); -	unsigned int edx __attribute__ ((packed)); -	unsigned int esi __attribute__ ((packed)); -	unsigned int edi __attribute__ ((packed)); -} SMMRegisters; +#include <uapi/linux/toshiba.h> -#ifdef __KERNEL__  int tosh_smm(SMMRegisters *regs); -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/tty.h b/include/linux/tty.h index 4f6c59a5fb7..f0b4eb47297 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -1,41 +1,6 @@  #ifndef _LINUX_TTY_H  #define _LINUX_TTY_H -/* - * 'tty.h' defines some structures used by tty_io.c and some defines. - */ - -#define NR_LDISCS		30 - -/* line disciplines */ -#define N_TTY		0 -#define N_SLIP		1 -#define N_MOUSE		2 -#define N_PPP		3 -#define N_STRIP		4 -#define N_AX25		5 -#define N_X25		6	/* X.25 async */ -#define N_6PACK		7 -#define N_MASC		8	/* Reserved for Mobitex module <kaz@cafe.net> */ -#define N_R3964		9	/* Reserved for Simatic R3964 module */ -#define N_PROFIBUS_FDL	10	/* Reserved for Profibus */ -#define N_IRDA		11	/* Linux IrDa - http://irda.sourceforge.net/ */ -#define N_SMSBLOCK	12	/* SMS block mode - for talking to GSM data */ -				/* cards about SMS messages */ -#define N_HDLC		13	/* synchronous HDLC */ -#define N_SYNC_PPP	14	/* synchronous PPP */ -#define N_HCI		15	/* Bluetooth HCI UART */ -#define N_GIGASET_M101	16	/* Siemens Gigaset M101 serial DECT adapter */ -#define N_SLCAN		17	/* Serial / USB serial CAN Adaptors */ -#define N_PPS		18	/* Pulse per Second */ -#define N_V253		19	/* Codec control over voice modem */ -#define N_CAIF		20      /* CAIF protocol for talking to modems */ -#define N_GSM0710	21	/* GSM 0710 Mux */ -#define N_TI_WL		22	/* for TI's WL BT, FM, GPS combo chips */ -#define N_TRACESINK	23	/* Trace data routing for MIPI P1149.7 */ -#define N_TRACEROUTER	24	/* Trace data routing for MIPI P1149.7 */ - -#ifdef __KERNEL__  #include <linux/fs.h>  #include <linux/major.h>  #include <linux/termios.h> @@ -44,6 +9,7 @@  #include <linux/tty_ldisc.h>  #include <linux/mutex.h>  #include <linux/tty_flags.h> +#include <uapi/linux/tty.h> @@ -694,5 +660,4 @@ do {									\  } while (0) -#endif /* __KERNEL__ */  #endif diff --git a/include/linux/tty_flags.h b/include/linux/tty_flags.h deleted file mode 100644 index eefcb483a2c..00000000000 --- a/include/linux/tty_flags.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _LINUX_TTY_FLAGS_H -#define _LINUX_TTY_FLAGS_H - -/* - * Definitions for async_struct (and serial_struct) flags field also - * shared by the tty_port flags structures. - * - * Define ASYNCB_* for convenient use with {test,set,clear}_bit. - */ -#define ASYNCB_HUP_NOTIFY	 0 /* Notify getty on hangups and closes -				    * on the callout port */ -#define ASYNCB_FOURPORT		 1 /* Set OU1, OUT2 per AST Fourport settings */ -#define ASYNCB_SAK		 2 /* Secure Attention Key (Orange book) */ -#define ASYNCB_SPLIT_TERMIOS	 3 /* Separate termios for dialin/callout */ -#define ASYNCB_SPD_HI		 4 /* Use 56000 instead of 38400 bps */ -#define ASYNCB_SPD_VHI		 5 /* Use 115200 instead of 38400 bps */ -#define ASYNCB_SKIP_TEST	 6 /* Skip UART test during autoconfiguration */ -#define ASYNCB_AUTO_IRQ		 7 /* Do automatic IRQ during -				    * autoconfiguration */ -#define ASYNCB_SESSION_LOCKOUT	 8 /* Lock out cua opens based on session */ -#define ASYNCB_PGRP_LOCKOUT	 9 /* Lock out cua opens based on pgrp */ -#define ASYNCB_CALLOUT_NOHUP	10 /* Don't do hangups for cua device */ -#define ASYNCB_HARDPPS_CD	11 /* Call hardpps when CD goes high  */ -#define ASYNCB_SPD_SHI		12 /* Use 230400 instead of 38400 bps */ -#define ASYNCB_LOW_LATENCY	13 /* Request low latency behaviour */ -#define ASYNCB_BUGGY_UART	14 /* This is a buggy UART, skip some safety -				    * checks.  Note: can be dangerous! */ -#define ASYNCB_AUTOPROBE	15 /* Port was autoprobed by PCI or PNP code */ -#define ASYNCB_LAST_USER	15 - -/* Internal flags used only by kernel */ -#define ASYNCB_INITIALIZED	31 /* Serial port was initialized */ -#define ASYNCB_SUSPENDED	30 /* Serial port is suspended */ -#define ASYNCB_NORMAL_ACTIVE	29 /* Normal device is active */ -#define ASYNCB_BOOT_AUTOCONF	28 /* Autoconfigure port on bootup */ -#define ASYNCB_CLOSING		27 /* Serial port is closing */ -#define ASYNCB_CTS_FLOW		26 /* Do CTS flow control */ -#define ASYNCB_CHECK_CD		25 /* i.e., CLOCAL */ -#define ASYNCB_SHARE_IRQ	24 /* for multifunction cards, no longer used */ -#define ASYNCB_CONS_FLOW	23 /* flow control for console  */ -#define ASYNCB_FIRST_KERNEL	22 - -#define ASYNC_HUP_NOTIFY	(1U << ASYNCB_HUP_NOTIFY) -#define ASYNC_SUSPENDED		(1U << ASYNCB_SUSPENDED) -#define ASYNC_FOURPORT		(1U << ASYNCB_FOURPORT) -#define ASYNC_SAK		(1U << ASYNCB_SAK) -#define ASYNC_SPLIT_TERMIOS	(1U << ASYNCB_SPLIT_TERMIOS) -#define ASYNC_SPD_HI		(1U << ASYNCB_SPD_HI) -#define ASYNC_SPD_VHI		(1U << ASYNCB_SPD_VHI) -#define ASYNC_SKIP_TEST		(1U << ASYNCB_SKIP_TEST) -#define ASYNC_AUTO_IRQ		(1U << ASYNCB_AUTO_IRQ) -#define ASYNC_SESSION_LOCKOUT	(1U << ASYNCB_SESSION_LOCKOUT) -#define ASYNC_PGRP_LOCKOUT	(1U << ASYNCB_PGRP_LOCKOUT) -#define ASYNC_CALLOUT_NOHUP	(1U << ASYNCB_CALLOUT_NOHUP) -#define ASYNC_HARDPPS_CD	(1U << ASYNCB_HARDPPS_CD) -#define ASYNC_SPD_SHI		(1U << ASYNCB_SPD_SHI) -#define ASYNC_LOW_LATENCY	(1U << ASYNCB_LOW_LATENCY) -#define ASYNC_BUGGY_UART	(1U << ASYNCB_BUGGY_UART) -#define ASYNC_AUTOPROBE		(1U << ASYNCB_AUTOPROBE) - -#define ASYNC_FLAGS		((1U << (ASYNCB_LAST_USER + 1)) - 1) -#define ASYNC_USR_MASK		(ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \ -		ASYNC_LOW_LATENCY) -#define ASYNC_SPD_CUST		(ASYNC_SPD_HI|ASYNC_SPD_VHI) -#define ASYNC_SPD_WARP		(ASYNC_SPD_HI|ASYNC_SPD_SHI) -#define ASYNC_SPD_MASK		(ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI) - -#define ASYNC_INITIALIZED	(1U << ASYNCB_INITIALIZED) -#define ASYNC_NORMAL_ACTIVE	(1U << ASYNCB_NORMAL_ACTIVE) -#define ASYNC_BOOT_AUTOCONF	(1U << ASYNCB_BOOT_AUTOCONF) -#define ASYNC_CLOSING		(1U << ASYNCB_CLOSING) -#define ASYNC_CTS_FLOW		(1U << ASYNCB_CTS_FLOW) -#define ASYNC_CHECK_CD		(1U << ASYNCB_CHECK_CD) -#define ASYNC_SHARE_IRQ		(1U << ASYNCB_SHARE_IRQ) -#define ASYNC_CONS_FLOW		(1U << ASYNCB_CONS_FLOW) -#define ASYNC_INTERNAL_FLAGS	(~((1U << ASYNCB_FIRST_KERNEL) - 1)) - -#endif diff --git a/include/linux/types.h b/include/linux/types.h index bf0dd7524b2..1cc0e4b9a04 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -1,22 +1,13 @@  #ifndef _LINUX_TYPES_H  #define _LINUX_TYPES_H -#include <asm/types.h> +#define __EXPORTED_HEADERS__ +#include <uapi/linux/types.h>  #ifndef __ASSEMBLY__ -#ifdef	__KERNEL__  #define DECLARE_BITMAP(name,bits) \  	unsigned long name[BITS_TO_LONGS(bits)] -#else -#ifndef __EXPORTED_HEADERS__ -#warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" -#endif /* __EXPORTED_HEADERS__ */ -#endif - -#include <linux/posix_types.h> - -#ifdef __KERNEL__  typedef __u32 __kernel_dev_t; @@ -157,48 +148,12 @@ typedef u64 dma_addr_t;  typedef u32 dma_addr_t;  #endif /* dma_addr_t */ -#endif /* __KERNEL__ */ - -/* - * Below are truly Linux-specific types that should never collide with - * any application/library that wants linux/types.h. - */ -  #ifdef __CHECKER__ -#define __bitwise__ __attribute__((bitwise))  #else -#define __bitwise__  #endif  #ifdef __CHECK_ENDIAN__ -#define __bitwise __bitwise__  #else -#define __bitwise  #endif - -typedef __u16 __bitwise __le16; -typedef __u16 __bitwise __be16; -typedef __u32 __bitwise __le32; -typedef __u32 __bitwise __be32; -typedef __u64 __bitwise __le64; -typedef __u64 __bitwise __be64; - -typedef __u16 __bitwise __sum16; -typedef __u32 __bitwise __wsum; - -/* - * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid - * common 32/64-bit compat problems. - * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other - * architectures) and to 8-byte boundaries on 64-bit architectures.  The new - * aligned_64 type enforces 8-byte alignment so that structs containing - * aligned_64 values have the same alignment on 32-bit and 64-bit architectures. - * No conversions are necessary between 32-bit user-space and a 64-bit kernel. - */ -#define __aligned_u64 __u64 __attribute__((aligned(8))) -#define __aligned_be64 __be64 __attribute__((aligned(8))) -#define __aligned_le64 __le64 __attribute__((aligned(8))) - -#ifdef __KERNEL__  typedef unsigned __bitwise__ gfp_t;  typedef unsigned __bitwise__ fmode_t; @@ -256,6 +211,5 @@ struct callback_head {  };  #define rcu_head callback_head -#endif	/* __KERNEL__ */  #endif /*  __ASSEMBLY__ */  #endif /* _LINUX_TYPES_H */ diff --git a/include/linux/udf_fs_i.h b/include/linux/udf_fs_i.h deleted file mode 100644 index 3536965913b..00000000000 --- a/include/linux/udf_fs_i.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * udf_fs_i.h - * - * This file is intended for the Linux kernel/module.  - * - * COPYRIGHT - *	This file is distributed under the terms of the GNU General Public - *	License (GPL). Copies of the GPL can be obtained from: - *		ftp://prep.ai.mit.edu/pub/gnu/GPL - *	Each contributing author retains all rights to their own work. - */ -#ifndef _UDF_FS_I_H -#define _UDF_FS_I_H 1 - -/* exported IOCTLs, we have 'l', 0x40-0x7f */ -#define UDF_GETEASIZE   _IOR('l', 0x40, int) -#define UDF_GETEABLOCK  _IOR('l', 0x41, void *) -#define UDF_GETVOLIDENT _IOR('l', 0x42, void *) -#define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long) - -#endif /* _UDF_FS_I_H */ diff --git a/include/linux/udp.h b/include/linux/udp.h index 03f72a2ba02..0b67d779352 100644 --- a/include/linux/udp.h +++ b/include/linux/udp.h @@ -17,28 +17,10 @@  #ifndef _LINUX_UDP_H  #define _LINUX_UDP_H -#include <linux/types.h> - -struct udphdr { -	__be16	source; -	__be16	dest; -	__be16	len; -	__sum16	check; -}; - -/* UDP socket options */ -#define UDP_CORK	1	/* Never send partially complete segments */ -#define UDP_ENCAP	100	/* Set the socket to accept encapsulated packets */ - -/* UDP encapsulation types */ -#define UDP_ENCAP_ESPINUDP_NON_IKE	1 /* draft-ietf-ipsec-nat-t-ike-00/01 */ -#define UDP_ENCAP_ESPINUDP	2 /* draft-ietf-ipsec-udp-encaps-06 */ -#define UDP_ENCAP_L2TPINUDP	3 /* rfc2661 */ - -#ifdef __KERNEL__  #include <net/inet_sock.h>  #include <linux/skbuff.h>  #include <net/netns/hash.h> +#include <uapi/linux/udp.h>  static inline struct udphdr *udp_hdr(const struct sk_buff *skb)  { @@ -96,6 +78,4 @@ static inline struct udp_sock *udp_sk(const struct sock *sk)  #define IS_UDPLITE(__sk) (udp_sk(__sk)->pcflag) -#endif -  #endif	/* _LINUX_UDP_H */ diff --git a/include/linux/uhid.h b/include/linux/uhid.h deleted file mode 100644 index 9c6974f1696..00000000000 --- a/include/linux/uhid.h +++ /dev/null @@ -1,104 +0,0 @@ -#ifndef __UHID_H_ -#define __UHID_H_ - -/* - * User-space I/O driver support for HID subsystem - * Copyright (c) 2012 David Herrmann - */ - -/* - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - */ - -/* - * Public header for user-space communication. We try to keep every structure - * aligned but to be safe we also use __attribute__((__packed__)). Therefore, - * the communication should be ABI compatible even between architectures. - */ - -#include <linux/input.h> -#include <linux/types.h> - -enum uhid_event_type { -	UHID_CREATE, -	UHID_DESTROY, -	UHID_START, -	UHID_STOP, -	UHID_OPEN, -	UHID_CLOSE, -	UHID_OUTPUT, -	UHID_OUTPUT_EV, -	UHID_INPUT, -	UHID_FEATURE, -	UHID_FEATURE_ANSWER, -}; - -struct uhid_create_req { -	__u8 name[128]; -	__u8 phys[64]; -	__u8 uniq[64]; -	__u8 __user *rd_data; -	__u16 rd_size; - -	__u16 bus; -	__u32 vendor; -	__u32 product; -	__u32 version; -	__u32 country; -} __attribute__((__packed__)); - -#define UHID_DATA_MAX 4096 - -enum uhid_report_type { -	UHID_FEATURE_REPORT, -	UHID_OUTPUT_REPORT, -	UHID_INPUT_REPORT, -}; - -struct uhid_input_req { -	__u8 data[UHID_DATA_MAX]; -	__u16 size; -} __attribute__((__packed__)); - -struct uhid_output_req { -	__u8 data[UHID_DATA_MAX]; -	__u16 size; -	__u8 rtype; -} __attribute__((__packed__)); - -struct uhid_output_ev_req { -	__u16 type; -	__u16 code; -	__s32 value; -} __attribute__((__packed__)); - -struct uhid_feature_req { -	__u32 id; -	__u8 rnum; -	__u8 rtype; -} __attribute__((__packed__)); - -struct uhid_feature_answer_req { -	__u32 id; -	__u16 err; -	__u16 size; -	__u8 data[UHID_DATA_MAX]; -}; - -struct uhid_event { -	__u32 type; - -	union { -		struct uhid_create_req create; -		struct uhid_input_req input; -		struct uhid_output_req output; -		struct uhid_output_ev_req output_ev; -		struct uhid_feature_req feature; -		struct uhid_feature_answer_req feature_answer; -	} u; -} __attribute__((__packed__)); - -#endif /* __UHID_H_ */ diff --git a/include/linux/uinput.h b/include/linux/uinput.h index c454bbe39ee..0a4487d3fb1 100644 --- a/include/linux/uinput.h +++ b/include/linux/uinput.h @@ -1,5 +1,3 @@ -#ifndef __UINPUT_H_ -#define __UINPUT_H_  /*   *  User level driver support for input subsystem   * @@ -31,13 +29,11 @@   *	0.1	20/06/2002   *		- first public version   */ +#ifndef __UINPUT_H_ +#define __UINPUT_H_ -#include <linux/types.h> -#include <linux/input.h> - -#define UINPUT_VERSION		3 +#include <uapi/linux/uinput.h> -#ifdef __KERNEL__  #define UINPUT_NAME		"uinput"  #define UINPUT_BUFFER_SIZE	16  #define UINPUT_NUM_REQUESTS	16 @@ -75,103 +71,4 @@ struct uinput_device {  	wait_queue_head_t	requests_waitq;  	spinlock_t		requests_lock;  }; -#endif	/* __KERNEL__ */ - -struct uinput_ff_upload { -	__u32			request_id; -	__s32			retval; -	struct ff_effect	effect; -	struct ff_effect	old; -}; - -struct uinput_ff_erase { -	__u32			request_id; -	__s32			retval; -	__u32			effect_id; -}; - -/* ioctl */ -#define UINPUT_IOCTL_BASE	'U' -#define UI_DEV_CREATE		_IO(UINPUT_IOCTL_BASE, 1) -#define UI_DEV_DESTROY		_IO(UINPUT_IOCTL_BASE, 2) - -#define UI_SET_EVBIT		_IOW(UINPUT_IOCTL_BASE, 100, int) -#define UI_SET_KEYBIT		_IOW(UINPUT_IOCTL_BASE, 101, int) -#define UI_SET_RELBIT		_IOW(UINPUT_IOCTL_BASE, 102, int) -#define UI_SET_ABSBIT		_IOW(UINPUT_IOCTL_BASE, 103, int) -#define UI_SET_MSCBIT		_IOW(UINPUT_IOCTL_BASE, 104, int) -#define UI_SET_LEDBIT		_IOW(UINPUT_IOCTL_BASE, 105, int) -#define UI_SET_SNDBIT		_IOW(UINPUT_IOCTL_BASE, 106, int) -#define UI_SET_FFBIT		_IOW(UINPUT_IOCTL_BASE, 107, int) -#define UI_SET_PHYS		_IOW(UINPUT_IOCTL_BASE, 108, char*) -#define UI_SET_SWBIT		_IOW(UINPUT_IOCTL_BASE, 109, int) -#define UI_SET_PROPBIT		_IOW(UINPUT_IOCTL_BASE, 110, int) - -#define UI_BEGIN_FF_UPLOAD	_IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload) -#define UI_END_FF_UPLOAD	_IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload) -#define UI_BEGIN_FF_ERASE	_IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase) -#define UI_END_FF_ERASE		_IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase) - -/* - * To write a force-feedback-capable driver, the upload_effect - * and erase_effect callbacks in input_dev must be implemented. - * The uinput driver will generate a fake input event when one of - * these callbacks are invoked. The userspace code then uses - * ioctls to retrieve additional parameters and send the return code. - * The callback blocks until this return code is sent. - * - * The described callback mechanism is only used if ff_effects_max - * is set. - * - * To implement upload_effect(): - *   1. Wait for an event with type == EV_UINPUT and code == UI_FF_UPLOAD. - *      A request ID will be given in 'value'. - *   2. Allocate a uinput_ff_upload struct, fill in request_id with - *      the 'value' from the EV_UINPUT event. - *   3. Issue a UI_BEGIN_FF_UPLOAD ioctl, giving it the - *      uinput_ff_upload struct. It will be filled in with the - *      ff_effects passed to upload_effect(). - *   4. Perform the effect upload, and place a return code back into -        the uinput_ff_upload struct. - *   5. Issue a UI_END_FF_UPLOAD ioctl, also giving it the - *      uinput_ff_upload_effect struct. This will complete execution - *      of our upload_effect() handler. - * - * To implement erase_effect(): - *   1. Wait for an event with type == EV_UINPUT and code == UI_FF_ERASE. - *      A request ID will be given in 'value'. - *   2. Allocate a uinput_ff_erase struct, fill in request_id with - *      the 'value' from the EV_UINPUT event. - *   3. Issue a UI_BEGIN_FF_ERASE ioctl, giving it the - *      uinput_ff_erase struct. It will be filled in with the - *      effect ID passed to erase_effect(). - *   4. Perform the effect erasure, and place a return code back - *      into the uinput_ff_erase struct. - *   5. Issue a UI_END_FF_ERASE ioctl, also giving it the - *      uinput_ff_erase_effect struct. This will complete execution - *      of our erase_effect() handler. - */ - -/* - * This is the new event type, used only by uinput. - * 'code' is UI_FF_UPLOAD or UI_FF_ERASE, and 'value' - * is the unique request ID. This number was picked - * arbitrarily, above EV_MAX (since the input system - * never sees it) but in the range of a 16-bit int. - */ -#define EV_UINPUT		0x0101 -#define UI_FF_UPLOAD		1 -#define UI_FF_ERASE		2 - -#define UINPUT_MAX_NAME_SIZE	80 -struct uinput_user_dev { -	char name[UINPUT_MAX_NAME_SIZE]; -	struct input_id id; -	__u32 ff_effects_max; -	__s32 absmax[ABS_CNT]; -	__s32 absmin[ABS_CNT]; -	__s32 absfuzz[ABS_CNT]; -	__s32 absflat[ABS_CNT]; -};  #endif	/* __UINPUT_H_ */ - diff --git a/include/linux/uio.h b/include/linux/uio.h index 98c114323a8..629aaf51f30 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -1,9 +1,3 @@ -#ifndef __LINUX_UIO_H -#define __LINUX_UIO_H - -#include <linux/compiler.h> -#include <linux/types.h> -  /*   *	Berkeley style UIO structures	-	Alan Cox 1994.   * @@ -12,21 +6,11 @@   *		as published by the Free Software Foundation; either version   *		2 of the License, or (at your option) any later version.   */ +#ifndef __LINUX_UIO_H +#define __LINUX_UIO_H -struct iovec -{ -	void __user *iov_base;	/* BSD uses caddr_t (1003.1g requires void *) */ -	__kernel_size_t iov_len; /* Must be size_t (1003.1g) */ -}; - -/* - *	UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) - */ -  -#define UIO_FASTIOV	8 -#define UIO_MAXIOV	1024 +#include <uapi/linux/uio.h> -#ifdef __KERNEL__  struct kvec {  	void *iov_base; /* and that should *never* hold a userland pointer */ @@ -52,5 +36,3 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs)  unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to);  #endif - -#endif diff --git a/include/linux/ultrasound.h b/include/linux/ultrasound.h deleted file mode 100644 index 71339dc531c..00000000000 --- a/include/linux/ultrasound.h +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef _ULTRASOUND_H_ -#define _ULTRASOUND_H_ -/* - *	ultrasound.h - Macros for programming the Gravis Ultrasound - *			These macros are extremely device dependent - *			and not portable. - */ -/* - * Copyright (C) by Hannu Savolainen 1993-1997 - * - * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL) - * Version 2 (June 1991). See the "COPYING" file distributed with this software - * for more info. - */ - - -/* - *	Private events for Gravis Ultrasound (GUS) - * - *	Format: - *		byte 0 		- SEQ_PRIVATE (0xfe) - *		byte 1 		- Synthesizer device number (0-N) - *		byte 2 		- Command (see below) - *		byte 3 		- Voice number (0-31) - *		bytes 4 and 5	- parameter P1 (unsigned short) - *		bytes 6 and 7	- parameter P2 (unsigned short) - * - *	Commands: - *		Each command affects one voice defined in byte 3. - *		Unused parameters (P1 and/or P2 *MUST* be initialized to zero). - *		_GUS_NUMVOICES	- Sets max. number of concurrent voices (P1=14-31, default 16) - *		_GUS_VOICESAMPLE- ************ OBSOLETE ************* - *		_GUS_VOICEON	- Starts voice (P1=voice mode) - *		_GUS_VOICEOFF	- Stops voice (no parameters) - *		_GUS_VOICEFADE	- Stops the voice smoothly. - *		_GUS_VOICEMODE	- Alters the voice mode, don't start or stop voice (P1=voice mode) - *		_GUS_VOICEBALA	- Sets voice balance (P1, 0=left, 7=middle and 15=right, default 7) - *		_GUS_VOICEFREQ	- Sets voice (sample) playback frequency (P1=Hz) - *		_GUS_VOICEVOL	- Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off) - *		_GUS_VOICEVOL2	- Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off) - *				  (Like GUS_VOICEVOL but doesn't change the hw - *				  volume. It just updates volume in the voice table). - * - *		_GUS_RAMPRANGE	- Sets limits for volume ramping (P1=low volume, P2=high volume) - *		_GUS_RAMPRATE	- Sets the speed for volume ramping (P1=scale, P2=rate) - *		_GUS_RAMPMODE	- Sets the volume ramping mode (P1=ramping mode) - *		_GUS_RAMPON	- Starts volume ramping (no parameters) - *		_GUS_RAMPOFF	- Stops volume ramping (no parameters) - *		_GUS_VOLUME_SCALE - Changes the volume calculation constants - *				  for all voices. - */ - -#define _GUS_NUMVOICES		0x00 -#define _GUS_VOICESAMPLE	0x01	/* OBSOLETE */ -#define _GUS_VOICEON		0x02 -#define _GUS_VOICEOFF		0x03 -#define _GUS_VOICEMODE		0x04 -#define _GUS_VOICEBALA		0x05 -#define _GUS_VOICEFREQ		0x06 -#define _GUS_VOICEVOL		0x07 -#define _GUS_RAMPRANGE		0x08 -#define _GUS_RAMPRATE		0x09 -#define _GUS_RAMPMODE		0x0a -#define _GUS_RAMPON		0x0b -#define _GUS_RAMPOFF		0x0c -#define _GUS_VOICEFADE		0x0d -#define _GUS_VOLUME_SCALE	0x0e -#define _GUS_VOICEVOL2		0x0f -#define _GUS_VOICE_POS		0x10 - -/* - *	GUS API macros - */ - -#define _GUS_CMD(chn, voice, cmd, p1, p2) \ -					{_SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_PRIVATE;\ -					_seqbuf[_seqbufptr+1] = (chn); _seqbuf[_seqbufptr+2] = cmd;\ -					_seqbuf[_seqbufptr+3] = voice;\ -					*(unsigned short*)&_seqbuf[_seqbufptr+4] = p1;\ -					*(unsigned short*)&_seqbuf[_seqbufptr+6] = p2;\ -					_SEQ_ADVBUF(8);} - -#define GUS_NUMVOICES(chn, p1)			_GUS_CMD(chn, 0, _GUS_NUMVOICES, (p1), 0) -#define GUS_VOICESAMPLE(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0)	/* OBSOLETE */ -#define GUS_VOICEON(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0) -#define GUS_VOICEOFF(chn, voice)		_GUS_CMD(chn, voice, _GUS_VOICEOFF, 0, 0) -#define GUS_VOICEFADE(chn, voice)		_GUS_CMD(chn, voice, _GUS_VOICEFADE, 0, 0) -#define GUS_VOICEMODE(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0) -#define GUS_VOICEBALA(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0) -#define GUS_VOICEFREQ(chn, voice, p)		_GUS_CMD(chn, voice, _GUS_VOICEFREQ, \ -							(p) & 0xffff, ((p) >> 16) & 0xffff) -#define GUS_VOICEVOL(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0) -#define GUS_VOICEVOL2(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0) -#define GUS_RAMPRANGE(chn, voice, low, high)	_GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high)) -#define GUS_RAMPRATE(chn, voice, p1, p2)	_GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2)) -#define GUS_RAMPMODE(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0) -#define GUS_RAMPON(chn, voice, p1)		_GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0) -#define GUS_RAMPOFF(chn, voice)			_GUS_CMD(chn, voice, _GUS_RAMPOFF, 0, 0) -#define GUS_VOLUME_SCALE(chn, voice, p1, p2)	_GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2)) -#define GUS_VOICE_POS(chn, voice, p)		_GUS_CMD(chn, voice, _GUS_VOICE_POS, \ -							(p) & 0xffff, ((p) >> 16) & 0xffff) - -#endif diff --git a/include/linux/un.h b/include/linux/un.h deleted file mode 100644 index 3ed3e46c1b1..00000000000 --- a/include/linux/un.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _LINUX_UN_H -#define _LINUX_UN_H - -#include <linux/socket.h> - -#define UNIX_PATH_MAX	108 - -struct sockaddr_un { -	__kernel_sa_family_t sun_family; /* AF_UNIX */ -	char sun_path[UNIX_PATH_MAX];	/* pathname */ -}; - -#endif /* _LINUX_UN_H */ diff --git a/include/linux/unistd.h b/include/linux/unistd.h deleted file mode 100644 index aa8d5b5e2e3..00000000000 --- a/include/linux/unistd.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _LINUX_UNISTD_H_ -#define _LINUX_UNISTD_H_ - -/* - * Include machine specific syscall numbers - */ -#include <asm/unistd.h> - -#endif /* _LINUX_UNISTD_H_ */ diff --git a/include/linux/unix_diag.h b/include/linux/unix_diag.h deleted file mode 100644 index b1d2bf16b33..00000000000 --- a/include/linux/unix_diag.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef __UNIX_DIAG_H__ -#define __UNIX_DIAG_H__ - -#include <linux/types.h> - -struct unix_diag_req { -	__u8	sdiag_family; -	__u8	sdiag_protocol; -	__u16	pad; -	__u32	udiag_states; -	__u32	udiag_ino; -	__u32	udiag_show; -	__u32	udiag_cookie[2]; -}; - -#define UDIAG_SHOW_NAME		0x00000001	/* show name (not path) */ -#define UDIAG_SHOW_VFS		0x00000002	/* show VFS inode info */ -#define UDIAG_SHOW_PEER		0x00000004	/* show peer socket info */ -#define UDIAG_SHOW_ICONS	0x00000008	/* show pending connections */ -#define UDIAG_SHOW_RQLEN	0x00000010	/* show skb receive queue len */ -#define UDIAG_SHOW_MEMINFO	0x00000020	/* show memory info of a socket */ - -struct unix_diag_msg { -	__u8	udiag_family; -	__u8	udiag_type; -	__u8	udiag_state; -	__u8	pad; - -	__u32	udiag_ino; -	__u32	udiag_cookie[2]; -}; - -enum { -	UNIX_DIAG_NAME, -	UNIX_DIAG_VFS, -	UNIX_DIAG_PEER, -	UNIX_DIAG_ICONS, -	UNIX_DIAG_RQLEN, -	UNIX_DIAG_MEMINFO, - -	UNIX_DIAG_MAX, -}; - -struct unix_diag_vfs { -	__u32	udiag_vfs_ino; -	__u32	udiag_vfs_dev; -}; - -struct unix_diag_rqlen { -	__u32	udiag_rqueue; -	__u32	udiag_wqueue; -}; - -#endif diff --git a/include/linux/usbdevice_fs.h b/include/linux/usbdevice_fs.h index 4abe28e41cb..04a26285416 100644 --- a/include/linux/usbdevice_fs.h +++ b/include/linux/usbdevice_fs.h @@ -25,126 +25,11 @@   */  /*****************************************************************************/ -  #ifndef _LINUX_USBDEVICE_FS_H  #define _LINUX_USBDEVICE_FS_H -#include <linux/types.h> -#include <linux/magic.h> - -/* --------------------------------------------------------------------- */ - -/* usbdevfs ioctl codes */ - -struct usbdevfs_ctrltransfer { -	__u8 bRequestType; -	__u8 bRequest; -	__u16 wValue; -	__u16 wIndex; -	__u16 wLength; -	__u32 timeout;  /* in milliseconds */ - 	void __user *data; -}; - -struct usbdevfs_bulktransfer { -	unsigned int ep; -	unsigned int len; -	unsigned int timeout; /* in milliseconds */ -	void __user *data; -}; - -struct usbdevfs_setinterface { -	unsigned int interface; -	unsigned int altsetting; -}; - -struct usbdevfs_disconnectsignal { -	unsigned int signr; -	void __user *context; -}; - -#define USBDEVFS_MAXDRIVERNAME 255 - -struct usbdevfs_getdriver { -	unsigned int interface; -	char driver[USBDEVFS_MAXDRIVERNAME + 1]; -}; - -struct usbdevfs_connectinfo { -	unsigned int devnum; -	unsigned char slow; -}; - -#define USBDEVFS_URB_SHORT_NOT_OK	0x01 -#define USBDEVFS_URB_ISO_ASAP		0x02 -#define USBDEVFS_URB_BULK_CONTINUATION	0x04 -#define USBDEVFS_URB_NO_FSBR		0x20 -#define USBDEVFS_URB_ZERO_PACKET	0x40 -#define USBDEVFS_URB_NO_INTERRUPT	0x80 - -#define USBDEVFS_URB_TYPE_ISO		   0 -#define USBDEVFS_URB_TYPE_INTERRUPT	   1 -#define USBDEVFS_URB_TYPE_CONTROL	   2 -#define USBDEVFS_URB_TYPE_BULK		   3 +#include <uapi/linux/usbdevice_fs.h> -struct usbdevfs_iso_packet_desc { -	unsigned int length; -	unsigned int actual_length; -	unsigned int status; -}; - -struct usbdevfs_urb { -	unsigned char type; -	unsigned char endpoint; -	int status; -	unsigned int flags; -	void __user *buffer; -	int buffer_length; -	int actual_length; -	int start_frame; -	int number_of_packets; -	int error_count; -	unsigned int signr;	/* signal to be sent on completion, -				  or 0 if none should be sent. */ -	void __user *usercontext; -	struct usbdevfs_iso_packet_desc iso_frame_desc[0]; -}; - -/* ioctls for talking directly to drivers */ -struct usbdevfs_ioctl { -	int	ifno;		/* interface 0..N ; negative numbers reserved */ -	int	ioctl_code;	/* MUST encode size + direction of data so the -				 * macros in <asm/ioctl.h> give correct values */ -	void __user *data;	/* param buffer (in, or out) */ -}; - -/* You can do most things with hubs just through control messages, - * except find out what device connects to what port. */ -struct usbdevfs_hub_portinfo { -	char nports;		/* number of downstream ports in this hub */ -	char port [127];	/* e.g. port 3 connects to device 27 */ -}; - -/* Device capability flags */ -#define USBDEVFS_CAP_ZERO_PACKET		0x01 -#define USBDEVFS_CAP_BULK_CONTINUATION		0x02 -#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM		0x04 -#define USBDEVFS_CAP_BULK_SCATTER_GATHER	0x08 - -/* USBDEVFS_DISCONNECT_CLAIM flags & struct */ - -/* disconnect-and-claim if the driver matches the driver field */ -#define USBDEVFS_DISCONNECT_CLAIM_IF_DRIVER	0x01 -/* disconnect-and-claim except when the driver matches the driver field */ -#define USBDEVFS_DISCONNECT_CLAIM_EXCEPT_DRIVER	0x02 - -struct usbdevfs_disconnect_claim { -	unsigned int interface; -	unsigned int flags; -	char driver[USBDEVFS_MAXDRIVERNAME + 1]; -}; - -#ifdef __KERNEL__  #ifdef CONFIG_COMPAT  #include <linux/compat.h> @@ -192,38 +77,4 @@ struct usbdevfs_ioctl32 {  	compat_caddr_t data;  };  #endif -#endif /* __KERNEL__ */ - -#define USBDEVFS_CONTROL           _IOWR('U', 0, struct usbdevfs_ctrltransfer) -#define USBDEVFS_CONTROL32           _IOWR('U', 0, struct usbdevfs_ctrltransfer32) -#define USBDEVFS_BULK              _IOWR('U', 2, struct usbdevfs_bulktransfer) -#define USBDEVFS_BULK32              _IOWR('U', 2, struct usbdevfs_bulktransfer32) -#define USBDEVFS_RESETEP           _IOR('U', 3, unsigned int) -#define USBDEVFS_SETINTERFACE      _IOR('U', 4, struct usbdevfs_setinterface) -#define USBDEVFS_SETCONFIGURATION  _IOR('U', 5, unsigned int) -#define USBDEVFS_GETDRIVER         _IOW('U', 8, struct usbdevfs_getdriver) -#define USBDEVFS_SUBMITURB         _IOR('U', 10, struct usbdevfs_urb) -#define USBDEVFS_SUBMITURB32       _IOR('U', 10, struct usbdevfs_urb32) -#define USBDEVFS_DISCARDURB        _IO('U', 11) -#define USBDEVFS_REAPURB           _IOW('U', 12, void *) -#define USBDEVFS_REAPURB32         _IOW('U', 12, __u32) -#define USBDEVFS_REAPURBNDELAY     _IOW('U', 13, void *) -#define USBDEVFS_REAPURBNDELAY32   _IOW('U', 13, __u32) -#define USBDEVFS_DISCSIGNAL        _IOR('U', 14, struct usbdevfs_disconnectsignal) -#define USBDEVFS_DISCSIGNAL32      _IOR('U', 14, struct usbdevfs_disconnectsignal32) -#define USBDEVFS_CLAIMINTERFACE    _IOR('U', 15, unsigned int) -#define USBDEVFS_RELEASEINTERFACE  _IOR('U', 16, unsigned int) -#define USBDEVFS_CONNECTINFO       _IOW('U', 17, struct usbdevfs_connectinfo) -#define USBDEVFS_IOCTL             _IOWR('U', 18, struct usbdevfs_ioctl) -#define USBDEVFS_IOCTL32           _IOWR('U', 18, struct usbdevfs_ioctl32) -#define USBDEVFS_HUB_PORTINFO      _IOR('U', 19, struct usbdevfs_hub_portinfo) -#define USBDEVFS_RESET             _IO('U', 20) -#define USBDEVFS_CLEAR_HALT        _IOR('U', 21, unsigned int) -#define USBDEVFS_DISCONNECT        _IO('U', 22) -#define USBDEVFS_CONNECT           _IO('U', 23) -#define USBDEVFS_CLAIM_PORT        _IOR('U', 24, unsigned int) -#define USBDEVFS_RELEASE_PORT      _IOR('U', 25, unsigned int) -#define USBDEVFS_GET_CAPABILITIES  _IOR('U', 26, __u32) -#define USBDEVFS_DISCONNECT_CLAIM  _IOR('U', 27, struct usbdevfs_disconnect_claim) -  #endif /* _LINUX_USBDEVICE_FS_H */ diff --git a/include/linux/utime.h b/include/linux/utime.h deleted file mode 100644 index 5cdf673afbd..00000000000 --- a/include/linux/utime.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _LINUX_UTIME_H -#define _LINUX_UTIME_H - -#include <linux/types.h> - -struct utimbuf { -	__kernel_time_t actime; -	__kernel_time_t modtime; -}; - -#endif diff --git a/include/linux/utsname.h b/include/linux/utsname.h index c714ed75eae..2b345206722 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h @@ -1,41 +1,12 @@  #ifndef _LINUX_UTSNAME_H  #define _LINUX_UTSNAME_H -#define __OLD_UTS_LEN 8 - -struct oldold_utsname { -	char sysname[9]; -	char nodename[9]; -	char release[9]; -	char version[9]; -	char machine[9]; -}; - -#define __NEW_UTS_LEN 64 - -struct old_utsname { -	char sysname[65]; -	char nodename[65]; -	char release[65]; -	char version[65]; -	char machine[65]; -}; - -struct new_utsname { -	char sysname[__NEW_UTS_LEN + 1]; -	char nodename[__NEW_UTS_LEN + 1]; -	char release[__NEW_UTS_LEN + 1]; -	char version[__NEW_UTS_LEN + 1]; -	char machine[__NEW_UTS_LEN + 1]; -	char domainname[__NEW_UTS_LEN + 1]; -}; - -#ifdef __KERNEL__  #include <linux/sched.h>  #include <linux/kref.h>  #include <linux/nsproxy.h>  #include <linux/err.h> +#include <uapi/linux/utsname.h>  enum uts_proc {  	UTS_PROC_OSTYPE, @@ -108,6 +79,4 @@ static inline struct new_utsname *init_utsname(void)  extern struct rw_semaphore uts_sem; -#endif /* __KERNEL__ */ -  #endif /* _LINUX_UTSNAME_H */ diff --git a/include/linux/uuid.h b/include/linux/uuid.h index f86c37bfd4a..6df2509033d 100644 --- a/include/linux/uuid.h +++ b/include/linux/uuid.h @@ -17,44 +17,11 @@   * along with this program; if not, write to the Free Software   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   */ -  #ifndef _LINUX_UUID_H_  #define _LINUX_UUID_H_ -#include <linux/types.h> -#include <linux/string.h> - -typedef struct { -	__u8 b[16]; -} uuid_le; - -typedef struct { -	__u8 b[16]; -} uuid_be; - -#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)		\ -((uuid_le)								\ -{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ -   (b) & 0xff, ((b) >> 8) & 0xff,					\ -   (c) & 0xff, ((c) >> 8) & 0xff,					\ -   (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) +#include <uapi/linux/uuid.h> -#define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)		\ -((uuid_be)								\ -{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ -   ((b) >> 8) & 0xff, (b) & 0xff,					\ -   ((c) >> 8) & 0xff, (c) & 0xff,					\ -   (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) - -#define NULL_UUID_LE							\ -	UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,	\ -		0x00, 0x00, 0x00, 0x00) - -#define NULL_UUID_BE							\ -	UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,	\ -		0x00, 0x00, 0x00, 0x00) - -#ifdef __KERNEL__  static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2)  { @@ -69,6 +36,4 @@ static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2)  extern void uuid_le_gen(uuid_le *u);  extern void uuid_be_gen(uuid_be *u); -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/uvcvideo.h b/include/linux/uvcvideo.h deleted file mode 100644 index 3b081862b9e..00000000000 --- a/include/linux/uvcvideo.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __LINUX_UVCVIDEO_H_ -#define __LINUX_UVCVIDEO_H_ - -#include <linux/ioctl.h> -#include <linux/types.h> - -/* - * Dynamic controls - */ - -/* Data types for UVC control data */ -#define UVC_CTRL_DATA_TYPE_RAW		0 -#define UVC_CTRL_DATA_TYPE_SIGNED	1 -#define UVC_CTRL_DATA_TYPE_UNSIGNED	2 -#define UVC_CTRL_DATA_TYPE_BOOLEAN	3 -#define UVC_CTRL_DATA_TYPE_ENUM		4 -#define UVC_CTRL_DATA_TYPE_BITMASK	5 - -/* Control flags */ -#define UVC_CTRL_FLAG_SET_CUR		(1 << 0) -#define UVC_CTRL_FLAG_GET_CUR		(1 << 1) -#define UVC_CTRL_FLAG_GET_MIN		(1 << 2) -#define UVC_CTRL_FLAG_GET_MAX		(1 << 3) -#define UVC_CTRL_FLAG_GET_RES		(1 << 4) -#define UVC_CTRL_FLAG_GET_DEF		(1 << 5) -/* Control should be saved at suspend and restored at resume. */ -#define UVC_CTRL_FLAG_RESTORE		(1 << 6) -/* Control can be updated by the camera. */ -#define UVC_CTRL_FLAG_AUTO_UPDATE	(1 << 7) - -#define UVC_CTRL_FLAG_GET_RANGE \ -	(UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ -	 UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | \ -	 UVC_CTRL_FLAG_GET_DEF) - -struct uvc_menu_info { -	__u32 value; -	__u8 name[32]; -}; - -struct uvc_xu_control_mapping { -	__u32 id; -	__u8 name[32]; -	__u8 entity[16]; -	__u8 selector; - -	__u8 size; -	__u8 offset; -	__u32 v4l2_type; -	__u32 data_type; - -	struct uvc_menu_info __user *menu_info; -	__u32 menu_count; - -	__u32 reserved[4]; -}; - -struct uvc_xu_control_query { -	__u8 unit; -	__u8 selector; -	__u8 query;		/* Video Class-Specific Request Code, */ -				/* defined in linux/usb/video.h A.8.  */ -	__u16 size; -	__u8 __user *data; -}; - -#define UVCIOC_CTRL_MAP		_IOWR('u', 0x20, struct uvc_xu_control_mapping) -#define UVCIOC_CTRL_QUERY	_IOWR('u', 0x21, struct uvc_xu_control_query) - -#endif diff --git a/include/linux/v4l2-common.h b/include/linux/v4l2-common.h deleted file mode 100644 index 4f0667e010d..00000000000 --- a/include/linux/v4l2-common.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * include/linux/v4l2-common.h - * - * Common V4L2 and V4L2 subdev definitions. - * - * Users are advised to #include this file either through videodev2.h - * (V4L2) or through v4l2-subdev.h (V4L2 subdev) rather than to refer - * to this file directly. - * - * Copyright (C) 2012 Nokia Corporation - * Contact: Sakari Ailus <sakari.ailus@iki.fi> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * version 2 as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * - */ - -#ifndef __V4L2_COMMON__ -#define __V4L2_COMMON__ - -/* - * - * Selection interface definitions - * - */ - -/* Current cropping area */ -#define V4L2_SEL_TGT_CROP		0x0000 -/* Default cropping area */ -#define V4L2_SEL_TGT_CROP_DEFAULT	0x0001 -/* Cropping bounds */ -#define V4L2_SEL_TGT_CROP_BOUNDS	0x0002 -/* Current composing area */ -#define V4L2_SEL_TGT_COMPOSE		0x0100 -/* Default composing area */ -#define V4L2_SEL_TGT_COMPOSE_DEFAULT	0x0101 -/* Composing bounds */ -#define V4L2_SEL_TGT_COMPOSE_BOUNDS	0x0102 -/* Current composing area plus all padding pixels */ -#define V4L2_SEL_TGT_COMPOSE_PADDED	0x0103 - -/* Backward compatibility target definitions --- to be removed. */ -#define V4L2_SEL_TGT_CROP_ACTIVE	V4L2_SEL_TGT_CROP -#define V4L2_SEL_TGT_COMPOSE_ACTIVE	V4L2_SEL_TGT_COMPOSE -#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL	V4L2_SEL_TGT_CROP -#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL V4L2_SEL_TGT_COMPOSE -#define V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS	V4L2_SEL_TGT_CROP_BOUNDS -#define V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS V4L2_SEL_TGT_COMPOSE_BOUNDS - -/* Selection flags */ -#define V4L2_SEL_FLAG_GE		(1 << 0) -#define V4L2_SEL_FLAG_LE		(1 << 1) -#define V4L2_SEL_FLAG_KEEP_CONFIG	(1 << 2) - -/* Backward compatibility flag definitions --- to be removed. */ -#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE	V4L2_SEL_FLAG_GE -#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE	V4L2_SEL_FLAG_LE -#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG - -#endif /* __V4L2_COMMON__ */ diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h deleted file mode 100644 index f56c945cecd..00000000000 --- a/include/linux/v4l2-controls.h +++ /dev/null @@ -1,803 +0,0 @@ -/* - *  Video for Linux Two controls header file - * - *  Copyright (C) 1999-2012 the contributors - * - *  This program is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  This program is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  Alternatively you can redistribute this file under the terms of the - *  BSD license as stated below: - * - *  Redistribution and use in source and binary forms, with or without - *  modification, are permitted provided that the following conditions - *  are met: - *  1. Redistributions of source code must retain the above copyright - *     notice, this list of conditions and the following disclaimer. - *  2. Redistributions in binary form must reproduce the above copyright - *     notice, this list of conditions and the following disclaimer in - *     the documentation and/or other materials provided with the - *     distribution. - *  3. The names of its contributors may not be used to endorse or promote - *     products derived from this software without specific prior written - *     permission. - * - *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - *  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *  The contents of this header was split off from videodev2.h. All control - *  definitions should be added to this header, which is included by - *  videodev2.h. - */ - -#ifndef __LINUX_V4L2_CONTROLS_H -#define __LINUX_V4L2_CONTROLS_H - -/* Control classes */ -#define V4L2_CTRL_CLASS_USER		0x00980000	/* Old-style 'user' controls */ -#define V4L2_CTRL_CLASS_MPEG		0x00990000	/* MPEG-compression controls */ -#define V4L2_CTRL_CLASS_CAMERA		0x009a0000	/* Camera class controls */ -#define V4L2_CTRL_CLASS_FM_TX		0x009b0000	/* FM Modulator control class */ -#define V4L2_CTRL_CLASS_FLASH		0x009c0000	/* Camera flash controls */ -#define V4L2_CTRL_CLASS_JPEG		0x009d0000	/* JPEG-compression controls */ -#define V4L2_CTRL_CLASS_IMAGE_SOURCE	0x009e0000	/* Image source controls */ -#define V4L2_CTRL_CLASS_IMAGE_PROC	0x009f0000	/* Image processing controls */ -#define V4L2_CTRL_CLASS_DV		0x00a00000	/* Digital Video controls */ - -/* User-class control IDs */ - -#define V4L2_CID_BASE			(V4L2_CTRL_CLASS_USER | 0x900) -#define V4L2_CID_USER_BASE 		V4L2_CID_BASE -#define V4L2_CID_USER_CLASS 		(V4L2_CTRL_CLASS_USER | 1) -#define V4L2_CID_BRIGHTNESS		(V4L2_CID_BASE+0) -#define V4L2_CID_CONTRAST		(V4L2_CID_BASE+1) -#define V4L2_CID_SATURATION		(V4L2_CID_BASE+2) -#define V4L2_CID_HUE			(V4L2_CID_BASE+3) -#define V4L2_CID_AUDIO_VOLUME		(V4L2_CID_BASE+5) -#define V4L2_CID_AUDIO_BALANCE		(V4L2_CID_BASE+6) -#define V4L2_CID_AUDIO_BASS		(V4L2_CID_BASE+7) -#define V4L2_CID_AUDIO_TREBLE		(V4L2_CID_BASE+8) -#define V4L2_CID_AUDIO_MUTE		(V4L2_CID_BASE+9) -#define V4L2_CID_AUDIO_LOUDNESS		(V4L2_CID_BASE+10) -#define V4L2_CID_BLACK_LEVEL		(V4L2_CID_BASE+11) /* Deprecated */ -#define V4L2_CID_AUTO_WHITE_BALANCE	(V4L2_CID_BASE+12) -#define V4L2_CID_DO_WHITE_BALANCE	(V4L2_CID_BASE+13) -#define V4L2_CID_RED_BALANCE		(V4L2_CID_BASE+14) -#define V4L2_CID_BLUE_BALANCE		(V4L2_CID_BASE+15) -#define V4L2_CID_GAMMA			(V4L2_CID_BASE+16) -#define V4L2_CID_WHITENESS		(V4L2_CID_GAMMA) /* Deprecated */ -#define V4L2_CID_EXPOSURE		(V4L2_CID_BASE+17) -#define V4L2_CID_AUTOGAIN		(V4L2_CID_BASE+18) -#define V4L2_CID_GAIN			(V4L2_CID_BASE+19) -#define V4L2_CID_HFLIP			(V4L2_CID_BASE+20) -#define V4L2_CID_VFLIP			(V4L2_CID_BASE+21) - -/* Deprecated; use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */ -#define V4L2_CID_HCENTER		(V4L2_CID_BASE+22) -#define V4L2_CID_VCENTER		(V4L2_CID_BASE+23) - -#define V4L2_CID_POWER_LINE_FREQUENCY	(V4L2_CID_BASE+24) -enum v4l2_power_line_frequency { -	V4L2_CID_POWER_LINE_FREQUENCY_DISABLED	= 0, -	V4L2_CID_POWER_LINE_FREQUENCY_50HZ	= 1, -	V4L2_CID_POWER_LINE_FREQUENCY_60HZ	= 2, -	V4L2_CID_POWER_LINE_FREQUENCY_AUTO	= 3, -}; -#define V4L2_CID_HUE_AUTO			(V4L2_CID_BASE+25) -#define V4L2_CID_WHITE_BALANCE_TEMPERATURE	(V4L2_CID_BASE+26) -#define V4L2_CID_SHARPNESS			(V4L2_CID_BASE+27) -#define V4L2_CID_BACKLIGHT_COMPENSATION 	(V4L2_CID_BASE+28) -#define V4L2_CID_CHROMA_AGC                     (V4L2_CID_BASE+29) -#define V4L2_CID_COLOR_KILLER                   (V4L2_CID_BASE+30) -#define V4L2_CID_COLORFX			(V4L2_CID_BASE+31) -enum v4l2_colorfx { -	V4L2_COLORFX_NONE			= 0, -	V4L2_COLORFX_BW				= 1, -	V4L2_COLORFX_SEPIA			= 2, -	V4L2_COLORFX_NEGATIVE			= 3, -	V4L2_COLORFX_EMBOSS			= 4, -	V4L2_COLORFX_SKETCH			= 5, -	V4L2_COLORFX_SKY_BLUE			= 6, -	V4L2_COLORFX_GRASS_GREEN		= 7, -	V4L2_COLORFX_SKIN_WHITEN		= 8, -	V4L2_COLORFX_VIVID			= 9, -	V4L2_COLORFX_AQUA			= 10, -	V4L2_COLORFX_ART_FREEZE			= 11, -	V4L2_COLORFX_SILHOUETTE			= 12, -	V4L2_COLORFX_SOLARIZATION		= 13, -	V4L2_COLORFX_ANTIQUE			= 14, -	V4L2_COLORFX_SET_CBCR			= 15, -}; -#define V4L2_CID_AUTOBRIGHTNESS			(V4L2_CID_BASE+32) -#define V4L2_CID_BAND_STOP_FILTER		(V4L2_CID_BASE+33) - -#define V4L2_CID_ROTATE				(V4L2_CID_BASE+34) -#define V4L2_CID_BG_COLOR			(V4L2_CID_BASE+35) - -#define V4L2_CID_CHROMA_GAIN                    (V4L2_CID_BASE+36) - -#define V4L2_CID_ILLUMINATORS_1			(V4L2_CID_BASE+37) -#define V4L2_CID_ILLUMINATORS_2			(V4L2_CID_BASE+38) - -#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE	(V4L2_CID_BASE+39) -#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT		(V4L2_CID_BASE+40) - -#define V4L2_CID_ALPHA_COMPONENT		(V4L2_CID_BASE+41) -#define V4L2_CID_COLORFX_CBCR			(V4L2_CID_BASE+42) - -/* last CID + 1 */ -#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+43) - - -/* MPEG-class control IDs */ - -#define V4L2_CID_MPEG_BASE 			(V4L2_CTRL_CLASS_MPEG | 0x900) -#define V4L2_CID_MPEG_CLASS 			(V4L2_CTRL_CLASS_MPEG | 1) - -/*  MPEG streams, specific to multiplexed streams */ -#define V4L2_CID_MPEG_STREAM_TYPE 		(V4L2_CID_MPEG_BASE+0) -enum v4l2_mpeg_stream_type { -	V4L2_MPEG_STREAM_TYPE_MPEG2_PS   = 0, /* MPEG-2 program stream */ -	V4L2_MPEG_STREAM_TYPE_MPEG2_TS   = 1, /* MPEG-2 transport stream */ -	V4L2_MPEG_STREAM_TYPE_MPEG1_SS   = 2, /* MPEG-1 system stream */ -	V4L2_MPEG_STREAM_TYPE_MPEG2_DVD  = 3, /* MPEG-2 DVD-compatible stream */ -	V4L2_MPEG_STREAM_TYPE_MPEG1_VCD  = 4, /* MPEG-1 VCD-compatible stream */ -	V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ -}; -#define V4L2_CID_MPEG_STREAM_PID_PMT 		(V4L2_CID_MPEG_BASE+1) -#define V4L2_CID_MPEG_STREAM_PID_AUDIO 		(V4L2_CID_MPEG_BASE+2) -#define V4L2_CID_MPEG_STREAM_PID_VIDEO 		(V4L2_CID_MPEG_BASE+3) -#define V4L2_CID_MPEG_STREAM_PID_PCR 		(V4L2_CID_MPEG_BASE+4) -#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO 	(V4L2_CID_MPEG_BASE+5) -#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO 	(V4L2_CID_MPEG_BASE+6) -#define V4L2_CID_MPEG_STREAM_VBI_FMT 		(V4L2_CID_MPEG_BASE+7) -enum v4l2_mpeg_stream_vbi_fmt { -	V4L2_MPEG_STREAM_VBI_FMT_NONE = 0,  /* No VBI in the MPEG stream */ -	V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1,  /* VBI in private packets, IVTV format */ -}; - -/*  MPEG audio controls specific to multiplexed streams  */ -#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ 	(V4L2_CID_MPEG_BASE+100) -enum v4l2_mpeg_audio_sampling_freq { -	V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, -	V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, -	V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, -}; -#define V4L2_CID_MPEG_AUDIO_ENCODING 		(V4L2_CID_MPEG_BASE+101) -enum v4l2_mpeg_audio_encoding { -	V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, -	V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, -	V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2, -	V4L2_MPEG_AUDIO_ENCODING_AAC     = 3, -	V4L2_MPEG_AUDIO_ENCODING_AC3     = 4, -}; -#define V4L2_CID_MPEG_AUDIO_L1_BITRATE 		(V4L2_CID_MPEG_BASE+102) -enum v4l2_mpeg_audio_l1_bitrate { -	V4L2_MPEG_AUDIO_L1_BITRATE_32K  = 0, -	V4L2_MPEG_AUDIO_L1_BITRATE_64K  = 1, -	V4L2_MPEG_AUDIO_L1_BITRATE_96K  = 2, -	V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3, -	V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4, -	V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5, -	V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6, -	V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, -	V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, -	V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, -	V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, -	V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, -	V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, -	V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, -}; -#define V4L2_CID_MPEG_AUDIO_L2_BITRATE 		(V4L2_CID_MPEG_BASE+103) -enum v4l2_mpeg_audio_l2_bitrate { -	V4L2_MPEG_AUDIO_L2_BITRATE_32K  = 0, -	V4L2_MPEG_AUDIO_L2_BITRATE_48K  = 1, -	V4L2_MPEG_AUDIO_L2_BITRATE_56K  = 2, -	V4L2_MPEG_AUDIO_L2_BITRATE_64K  = 3, -	V4L2_MPEG_AUDIO_L2_BITRATE_80K  = 4, -	V4L2_MPEG_AUDIO_L2_BITRATE_96K  = 5, -	V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, -	V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, -	V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, -	V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, -	V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, -	V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, -	V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, -	V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, -}; -#define V4L2_CID_MPEG_AUDIO_L3_BITRATE 		(V4L2_CID_MPEG_BASE+104) -enum v4l2_mpeg_audio_l3_bitrate { -	V4L2_MPEG_AUDIO_L3_BITRATE_32K  = 0, -	V4L2_MPEG_AUDIO_L3_BITRATE_40K  = 1, -	V4L2_MPEG_AUDIO_L3_BITRATE_48K  = 2, -	V4L2_MPEG_AUDIO_L3_BITRATE_56K  = 3, -	V4L2_MPEG_AUDIO_L3_BITRATE_64K  = 4, -	V4L2_MPEG_AUDIO_L3_BITRATE_80K  = 5, -	V4L2_MPEG_AUDIO_L3_BITRATE_96K  = 6, -	V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, -	V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, -	V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, -	V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, -	V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, -	V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, -	V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, -}; -#define V4L2_CID_MPEG_AUDIO_MODE 		(V4L2_CID_MPEG_BASE+105) -enum v4l2_mpeg_audio_mode { -	V4L2_MPEG_AUDIO_MODE_STEREO       = 0, -	V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, -	V4L2_MPEG_AUDIO_MODE_DUAL         = 2, -	V4L2_MPEG_AUDIO_MODE_MONO         = 3, -}; -#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION 	(V4L2_CID_MPEG_BASE+106) -enum v4l2_mpeg_audio_mode_extension { -	V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4  = 0, -	V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8  = 1, -	V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, -	V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, -}; -#define V4L2_CID_MPEG_AUDIO_EMPHASIS 		(V4L2_CID_MPEG_BASE+107) -enum v4l2_mpeg_audio_emphasis { -	V4L2_MPEG_AUDIO_EMPHASIS_NONE         = 0, -	V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, -	V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17    = 2, -}; -#define V4L2_CID_MPEG_AUDIO_CRC 		(V4L2_CID_MPEG_BASE+108) -enum v4l2_mpeg_audio_crc { -	V4L2_MPEG_AUDIO_CRC_NONE  = 0, -	V4L2_MPEG_AUDIO_CRC_CRC16 = 1, -}; -#define V4L2_CID_MPEG_AUDIO_MUTE 		(V4L2_CID_MPEG_BASE+109) -#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE		(V4L2_CID_MPEG_BASE+110) -#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE		(V4L2_CID_MPEG_BASE+111) -enum v4l2_mpeg_audio_ac3_bitrate { -	V4L2_MPEG_AUDIO_AC3_BITRATE_32K  = 0, -	V4L2_MPEG_AUDIO_AC3_BITRATE_40K  = 1, -	V4L2_MPEG_AUDIO_AC3_BITRATE_48K  = 2, -	V4L2_MPEG_AUDIO_AC3_BITRATE_56K  = 3, -	V4L2_MPEG_AUDIO_AC3_BITRATE_64K  = 4, -	V4L2_MPEG_AUDIO_AC3_BITRATE_80K  = 5, -	V4L2_MPEG_AUDIO_AC3_BITRATE_96K  = 6, -	V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7, -	V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8, -	V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9, -	V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10, -	V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11, -	V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12, -	V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13, -	V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14, -	V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15, -	V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16, -	V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17, -	V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, -}; -#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK	(V4L2_CID_MPEG_BASE+112) -enum v4l2_mpeg_audio_dec_playback { -	V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO	    = 0, -	V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO	    = 1, -	V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT	    = 2, -	V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT	    = 3, -	V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO	    = 4, -	V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5, -}; -#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) - -/*  MPEG video controls specific to multiplexed streams */ -#define V4L2_CID_MPEG_VIDEO_ENCODING 		(V4L2_CID_MPEG_BASE+200) -enum v4l2_mpeg_video_encoding { -	V4L2_MPEG_VIDEO_ENCODING_MPEG_1     = 0, -	V4L2_MPEG_VIDEO_ENCODING_MPEG_2     = 1, -	V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, -}; -#define V4L2_CID_MPEG_VIDEO_ASPECT 		(V4L2_CID_MPEG_BASE+201) -enum v4l2_mpeg_video_aspect { -	V4L2_MPEG_VIDEO_ASPECT_1x1     = 0, -	V4L2_MPEG_VIDEO_ASPECT_4x3     = 1, -	V4L2_MPEG_VIDEO_ASPECT_16x9    = 2, -	V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, -}; -#define V4L2_CID_MPEG_VIDEO_B_FRAMES 		(V4L2_CID_MPEG_BASE+202) -#define V4L2_CID_MPEG_VIDEO_GOP_SIZE 		(V4L2_CID_MPEG_BASE+203) -#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE 	(V4L2_CID_MPEG_BASE+204) -#define V4L2_CID_MPEG_VIDEO_PULLDOWN 		(V4L2_CID_MPEG_BASE+205) -#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE 	(V4L2_CID_MPEG_BASE+206) -enum v4l2_mpeg_video_bitrate_mode { -	V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, -	V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, -}; -#define V4L2_CID_MPEG_VIDEO_BITRATE 		(V4L2_CID_MPEG_BASE+207) -#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK 	(V4L2_CID_MPEG_BASE+208) -#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) -#define V4L2_CID_MPEG_VIDEO_MUTE 		(V4L2_CID_MPEG_BASE+210) -#define V4L2_CID_MPEG_VIDEO_MUTE_YUV 		(V4L2_CID_MPEG_BASE+211) -#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE		(V4L2_CID_MPEG_BASE+212) -#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER	(V4L2_CID_MPEG_BASE+213) -#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB		(V4L2_CID_MPEG_BASE+214) -#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE			(V4L2_CID_MPEG_BASE+215) -#define V4L2_CID_MPEG_VIDEO_HEADER_MODE				(V4L2_CID_MPEG_BASE+216) -enum v4l2_mpeg_video_header_mode { -	V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE			= 0, -	V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME	= 1, - -}; -#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC			(V4L2_CID_MPEG_BASE+217) -#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE		(V4L2_CID_MPEG_BASE+218) -#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES	(V4L2_CID_MPEG_BASE+219) -#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB		(V4L2_CID_MPEG_BASE+220) -#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE		(V4L2_CID_MPEG_BASE+221) -enum v4l2_mpeg_video_multi_slice_mode { -	V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE		= 0, -	V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB		= 1, -	V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES	= 2, -}; -#define V4L2_CID_MPEG_VIDEO_VBV_SIZE			(V4L2_CID_MPEG_BASE+222) -#define V4L2_CID_MPEG_VIDEO_DEC_PTS			(V4L2_CID_MPEG_BASE+223) -#define V4L2_CID_MPEG_VIDEO_DEC_FRAME			(V4L2_CID_MPEG_BASE+224) -#define V4L2_CID_MPEG_VIDEO_VBV_DELAY			(V4L2_CID_MPEG_BASE+225) - -#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP		(V4L2_CID_MPEG_BASE+300) -#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP		(V4L2_CID_MPEG_BASE+301) -#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP		(V4L2_CID_MPEG_BASE+302) -#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP			(V4L2_CID_MPEG_BASE+303) -#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP			(V4L2_CID_MPEG_BASE+304) -#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP		(V4L2_CID_MPEG_BASE+350) -#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP		(V4L2_CID_MPEG_BASE+351) -#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP		(V4L2_CID_MPEG_BASE+352) -#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP			(V4L2_CID_MPEG_BASE+353) -#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP			(V4L2_CID_MPEG_BASE+354) -#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM		(V4L2_CID_MPEG_BASE+355) -#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE		(V4L2_CID_MPEG_BASE+356) -#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE		(V4L2_CID_MPEG_BASE+357) -enum v4l2_mpeg_video_h264_entropy_mode { -	V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC	= 0, -	V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC	= 1, -}; -#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD		(V4L2_CID_MPEG_BASE+358) -#define V4L2_CID_MPEG_VIDEO_H264_LEVEL			(V4L2_CID_MPEG_BASE+359) -enum v4l2_mpeg_video_h264_level { -	V4L2_MPEG_VIDEO_H264_LEVEL_1_0	= 0, -	V4L2_MPEG_VIDEO_H264_LEVEL_1B	= 1, -	V4L2_MPEG_VIDEO_H264_LEVEL_1_1	= 2, -	V4L2_MPEG_VIDEO_H264_LEVEL_1_2	= 3, -	V4L2_MPEG_VIDEO_H264_LEVEL_1_3	= 4, -	V4L2_MPEG_VIDEO_H264_LEVEL_2_0	= 5, -	V4L2_MPEG_VIDEO_H264_LEVEL_2_1	= 6, -	V4L2_MPEG_VIDEO_H264_LEVEL_2_2	= 7, -	V4L2_MPEG_VIDEO_H264_LEVEL_3_0	= 8, -	V4L2_MPEG_VIDEO_H264_LEVEL_3_1	= 9, -	V4L2_MPEG_VIDEO_H264_LEVEL_3_2	= 10, -	V4L2_MPEG_VIDEO_H264_LEVEL_4_0	= 11, -	V4L2_MPEG_VIDEO_H264_LEVEL_4_1	= 12, -	V4L2_MPEG_VIDEO_H264_LEVEL_4_2	= 13, -	V4L2_MPEG_VIDEO_H264_LEVEL_5_0	= 14, -	V4L2_MPEG_VIDEO_H264_LEVEL_5_1	= 15, -}; -#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA	(V4L2_CID_MPEG_BASE+360) -#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA	(V4L2_CID_MPEG_BASE+361) -#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE	(V4L2_CID_MPEG_BASE+362) -enum v4l2_mpeg_video_h264_loop_filter_mode { -	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED				= 0, -	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED				= 1, -	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY	= 2, -}; -#define V4L2_CID_MPEG_VIDEO_H264_PROFILE		(V4L2_CID_MPEG_BASE+363) -enum v4l2_mpeg_video_h264_profile { -	V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE			= 0, -	V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE	= 1, -	V4L2_MPEG_VIDEO_H264_PROFILE_MAIN			= 2, -	V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED			= 3, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH			= 4, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10			= 5, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422			= 6, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE	= 7, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA		= 8, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA		= 9, -	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA		= 10, -	V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA		= 11, -	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE		= 12, -	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH		= 13, -	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA	= 14, -	V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH		= 15, -	V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH		= 16, -}; -#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT	(V4L2_CID_MPEG_BASE+364) -#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH	(V4L2_CID_MPEG_BASE+365) -#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE		(V4L2_CID_MPEG_BASE+366) -#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC		(V4L2_CID_MPEG_BASE+367) -enum v4l2_mpeg_video_h264_vui_sar_idc { -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED	= 0, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1		= 1, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11		= 2, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11		= 3, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11		= 4, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33		= 5, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11		= 6, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11		= 7, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11		= 8, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33		= 9, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11		= 10, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11		= 11, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33		= 12, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99		= 13, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3		= 14, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2		= 15, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1		= 16, -	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED	= 17, -}; -#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING		(V4L2_CID_MPEG_BASE+368) -#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0		(V4L2_CID_MPEG_BASE+369) -#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE	(V4L2_CID_MPEG_BASE+370) -enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { -	V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD	= 0, -	V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN		= 1, -	V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW		= 2, -	V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE	= 3, -	V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM		= 4, -	V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL		= 5, -}; -#define V4L2_CID_MPEG_VIDEO_H264_FMO			(V4L2_CID_MPEG_BASE+371) -#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE		(V4L2_CID_MPEG_BASE+372) -enum v4l2_mpeg_video_h264_fmo_map_type { -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES		= 0, -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES		= 1, -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER	= 2, -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT			= 3, -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN			= 4, -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN			= 5, -	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT			= 6, -}; -#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP	(V4L2_CID_MPEG_BASE+373) -#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION	(V4L2_CID_MPEG_BASE+374) -enum v4l2_mpeg_video_h264_fmo_change_dir { -	V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT	= 0, -	V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT	= 1, -}; -#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE	(V4L2_CID_MPEG_BASE+375) -#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH		(V4L2_CID_MPEG_BASE+376) -#define V4L2_CID_MPEG_VIDEO_H264_ASO			(V4L2_CID_MPEG_BASE+377) -#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER	(V4L2_CID_MPEG_BASE+378) -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING		(V4L2_CID_MPEG_BASE+379) -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE	(V4L2_CID_MPEG_BASE+380) -enum v4l2_mpeg_video_h264_hierarchical_coding_type { -	V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B	= 0, -	V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P	= 1, -}; -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER	(V4L2_CID_MPEG_BASE+381) -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP	(V4L2_CID_MPEG_BASE+382) -#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP	(V4L2_CID_MPEG_BASE+400) -#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP	(V4L2_CID_MPEG_BASE+401) -#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP	(V4L2_CID_MPEG_BASE+402) -#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP	(V4L2_CID_MPEG_BASE+403) -#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP	(V4L2_CID_MPEG_BASE+404) -#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL		(V4L2_CID_MPEG_BASE+405) -enum v4l2_mpeg_video_mpeg4_level { -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_0	= 0, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B	= 1, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_1	= 2, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_2	= 3, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_3	= 4, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B	= 5, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_4	= 6, -	V4L2_MPEG_VIDEO_MPEG4_LEVEL_5	= 7, -}; -#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE	(V4L2_CID_MPEG_BASE+406) -enum v4l2_mpeg_video_mpeg4_profile { -	V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE				= 0, -	V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE			= 1, -	V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE				= 2, -	V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE			= 3, -	V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY	= 4, -}; -#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL		(V4L2_CID_MPEG_BASE+407) - -/*  MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ -#define V4L2_CID_MPEG_CX2341X_BASE 				(V4L2_CTRL_CLASS_MPEG | 0x1000) -#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE 	(V4L2_CID_MPEG_CX2341X_BASE+0) -enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { -	V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, -	V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO   = 1, -}; -#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER 		(V4L2_CID_MPEG_CX2341X_BASE+1) -#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE 	(V4L2_CID_MPEG_CX2341X_BASE+2) -enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { -	V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF                  = 0, -	V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR               = 1, -	V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT              = 2, -	V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE      = 3, -	V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, -}; -#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE 	(V4L2_CID_MPEG_CX2341X_BASE+3) -enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { -	V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF    = 0, -	V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, -}; -#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE 	(V4L2_CID_MPEG_CX2341X_BASE+4) -enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { -	V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, -	V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO   = 1, -}; -#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER 		(V4L2_CID_MPEG_CX2341X_BASE+5) -#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE 		(V4L2_CID_MPEG_CX2341X_BASE+6) -enum v4l2_mpeg_cx2341x_video_median_filter_type { -	V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF      = 0, -	V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR      = 1, -	V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT     = 2, -	V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, -	V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG     = 4, -}; -#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM 	(V4L2_CID_MPEG_CX2341X_BASE+7) -#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP 	(V4L2_CID_MPEG_CX2341X_BASE+8) -#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM	(V4L2_CID_MPEG_CX2341X_BASE+9) -#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP 	(V4L2_CID_MPEG_CX2341X_BASE+10) -#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS 	(V4L2_CID_MPEG_CX2341X_BASE+11) - -/*  MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ -#define V4L2_CID_MPEG_MFC51_BASE				(V4L2_CTRL_CLASS_MPEG | 0x1100) - -#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY		(V4L2_CID_MPEG_MFC51_BASE+0) -#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE	(V4L2_CID_MPEG_MFC51_BASE+1) -#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE			(V4L2_CID_MPEG_MFC51_BASE+2) -enum v4l2_mpeg_mfc51_video_frame_skip_mode { -	V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED		= 0, -	V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT	= 1, -	V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT		= 2, -}; -#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE			(V4L2_CID_MPEG_MFC51_BASE+3) -enum v4l2_mpeg_mfc51_video_force_frame_type { -	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED		= 0, -	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME		= 1, -	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED	= 2, -}; -#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING				(V4L2_CID_MPEG_MFC51_BASE+4) -#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV				(V4L2_CID_MPEG_MFC51_BASE+5) -#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT			(V4L2_CID_MPEG_MFC51_BASE+6) -#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF			(V4L2_CID_MPEG_MFC51_BASE+7) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY		(V4L2_CID_MPEG_MFC51_BASE+50) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK			(V4L2_CID_MPEG_MFC51_BASE+51) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH		(V4L2_CID_MPEG_MFC51_BASE+52) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC		(V4L2_CID_MPEG_MFC51_BASE+53) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P		(V4L2_CID_MPEG_MFC51_BASE+54) - - -/*  Camera class control IDs */ - -#define V4L2_CID_CAMERA_CLASS_BASE 	(V4L2_CTRL_CLASS_CAMERA | 0x900) -#define V4L2_CID_CAMERA_CLASS 		(V4L2_CTRL_CLASS_CAMERA | 1) - -#define V4L2_CID_EXPOSURE_AUTO			(V4L2_CID_CAMERA_CLASS_BASE+1) -enum  v4l2_exposure_auto_type { -	V4L2_EXPOSURE_AUTO = 0, -	V4L2_EXPOSURE_MANUAL = 1, -	V4L2_EXPOSURE_SHUTTER_PRIORITY = 2, -	V4L2_EXPOSURE_APERTURE_PRIORITY = 3 -}; -#define V4L2_CID_EXPOSURE_ABSOLUTE		(V4L2_CID_CAMERA_CLASS_BASE+2) -#define V4L2_CID_EXPOSURE_AUTO_PRIORITY		(V4L2_CID_CAMERA_CLASS_BASE+3) - -#define V4L2_CID_PAN_RELATIVE			(V4L2_CID_CAMERA_CLASS_BASE+4) -#define V4L2_CID_TILT_RELATIVE			(V4L2_CID_CAMERA_CLASS_BASE+5) -#define V4L2_CID_PAN_RESET			(V4L2_CID_CAMERA_CLASS_BASE+6) -#define V4L2_CID_TILT_RESET			(V4L2_CID_CAMERA_CLASS_BASE+7) - -#define V4L2_CID_PAN_ABSOLUTE			(V4L2_CID_CAMERA_CLASS_BASE+8) -#define V4L2_CID_TILT_ABSOLUTE			(V4L2_CID_CAMERA_CLASS_BASE+9) - -#define V4L2_CID_FOCUS_ABSOLUTE			(V4L2_CID_CAMERA_CLASS_BASE+10) -#define V4L2_CID_FOCUS_RELATIVE			(V4L2_CID_CAMERA_CLASS_BASE+11) -#define V4L2_CID_FOCUS_AUTO			(V4L2_CID_CAMERA_CLASS_BASE+12) - -#define V4L2_CID_ZOOM_ABSOLUTE			(V4L2_CID_CAMERA_CLASS_BASE+13) -#define V4L2_CID_ZOOM_RELATIVE			(V4L2_CID_CAMERA_CLASS_BASE+14) -#define V4L2_CID_ZOOM_CONTINUOUS		(V4L2_CID_CAMERA_CLASS_BASE+15) - -#define V4L2_CID_PRIVACY			(V4L2_CID_CAMERA_CLASS_BASE+16) - -#define V4L2_CID_IRIS_ABSOLUTE			(V4L2_CID_CAMERA_CLASS_BASE+17) -#define V4L2_CID_IRIS_RELATIVE			(V4L2_CID_CAMERA_CLASS_BASE+18) - -#define V4L2_CID_AUTO_EXPOSURE_BIAS		(V4L2_CID_CAMERA_CLASS_BASE+19) - -#define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE	(V4L2_CID_CAMERA_CLASS_BASE+20) -enum v4l2_auto_n_preset_white_balance { -	V4L2_WHITE_BALANCE_MANUAL		= 0, -	V4L2_WHITE_BALANCE_AUTO			= 1, -	V4L2_WHITE_BALANCE_INCANDESCENT		= 2, -	V4L2_WHITE_BALANCE_FLUORESCENT		= 3, -	V4L2_WHITE_BALANCE_FLUORESCENT_H	= 4, -	V4L2_WHITE_BALANCE_HORIZON		= 5, -	V4L2_WHITE_BALANCE_DAYLIGHT		= 6, -	V4L2_WHITE_BALANCE_FLASH		= 7, -	V4L2_WHITE_BALANCE_CLOUDY		= 8, -	V4L2_WHITE_BALANCE_SHADE		= 9, -}; - -#define V4L2_CID_WIDE_DYNAMIC_RANGE		(V4L2_CID_CAMERA_CLASS_BASE+21) -#define V4L2_CID_IMAGE_STABILIZATION		(V4L2_CID_CAMERA_CLASS_BASE+22) - -#define V4L2_CID_ISO_SENSITIVITY		(V4L2_CID_CAMERA_CLASS_BASE+23) -#define V4L2_CID_ISO_SENSITIVITY_AUTO		(V4L2_CID_CAMERA_CLASS_BASE+24) -enum v4l2_iso_sensitivity_auto_type { -	V4L2_ISO_SENSITIVITY_MANUAL		= 0, -	V4L2_ISO_SENSITIVITY_AUTO		= 1, -}; - -#define V4L2_CID_EXPOSURE_METERING		(V4L2_CID_CAMERA_CLASS_BASE+25) -enum v4l2_exposure_metering { -	V4L2_EXPOSURE_METERING_AVERAGE		= 0, -	V4L2_EXPOSURE_METERING_CENTER_WEIGHTED	= 1, -	V4L2_EXPOSURE_METERING_SPOT		= 2, -}; - -#define V4L2_CID_SCENE_MODE			(V4L2_CID_CAMERA_CLASS_BASE+26) -enum v4l2_scene_mode { -	V4L2_SCENE_MODE_NONE			= 0, -	V4L2_SCENE_MODE_BACKLIGHT		= 1, -	V4L2_SCENE_MODE_BEACH_SNOW		= 2, -	V4L2_SCENE_MODE_CANDLE_LIGHT		= 3, -	V4L2_SCENE_MODE_DAWN_DUSK		= 4, -	V4L2_SCENE_MODE_FALL_COLORS		= 5, -	V4L2_SCENE_MODE_FIREWORKS		= 6, -	V4L2_SCENE_MODE_LANDSCAPE		= 7, -	V4L2_SCENE_MODE_NIGHT			= 8, -	V4L2_SCENE_MODE_PARTY_INDOOR		= 9, -	V4L2_SCENE_MODE_PORTRAIT		= 10, -	V4L2_SCENE_MODE_SPORTS			= 11, -	V4L2_SCENE_MODE_SUNSET			= 12, -	V4L2_SCENE_MODE_TEXT			= 13, -}; - -#define V4L2_CID_3A_LOCK			(V4L2_CID_CAMERA_CLASS_BASE+27) -#define V4L2_LOCK_EXPOSURE			(1 << 0) -#define V4L2_LOCK_WHITE_BALANCE			(1 << 1) -#define V4L2_LOCK_FOCUS				(1 << 2) - -#define V4L2_CID_AUTO_FOCUS_START		(V4L2_CID_CAMERA_CLASS_BASE+28) -#define V4L2_CID_AUTO_FOCUS_STOP		(V4L2_CID_CAMERA_CLASS_BASE+29) -#define V4L2_CID_AUTO_FOCUS_STATUS		(V4L2_CID_CAMERA_CLASS_BASE+30) -#define V4L2_AUTO_FOCUS_STATUS_IDLE		(0 << 0) -#define V4L2_AUTO_FOCUS_STATUS_BUSY		(1 << 0) -#define V4L2_AUTO_FOCUS_STATUS_REACHED		(1 << 1) -#define V4L2_AUTO_FOCUS_STATUS_FAILED		(1 << 2) - -#define V4L2_CID_AUTO_FOCUS_RANGE		(V4L2_CID_CAMERA_CLASS_BASE+31) -enum v4l2_auto_focus_range { -	V4L2_AUTO_FOCUS_RANGE_AUTO		= 0, -	V4L2_AUTO_FOCUS_RANGE_NORMAL		= 1, -	V4L2_AUTO_FOCUS_RANGE_MACRO		= 2, -	V4L2_AUTO_FOCUS_RANGE_INFINITY		= 3, -}; - - -/* FM Modulator class control IDs */ - -#define V4L2_CID_FM_TX_CLASS_BASE		(V4L2_CTRL_CLASS_FM_TX | 0x900) -#define V4L2_CID_FM_TX_CLASS			(V4L2_CTRL_CLASS_FM_TX | 1) - -#define V4L2_CID_RDS_TX_DEVIATION		(V4L2_CID_FM_TX_CLASS_BASE + 1) -#define V4L2_CID_RDS_TX_PI			(V4L2_CID_FM_TX_CLASS_BASE + 2) -#define V4L2_CID_RDS_TX_PTY			(V4L2_CID_FM_TX_CLASS_BASE + 3) -#define V4L2_CID_RDS_TX_PS_NAME			(V4L2_CID_FM_TX_CLASS_BASE + 5) -#define V4L2_CID_RDS_TX_RADIO_TEXT		(V4L2_CID_FM_TX_CLASS_BASE + 6) - -#define V4L2_CID_AUDIO_LIMITER_ENABLED		(V4L2_CID_FM_TX_CLASS_BASE + 64) -#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME	(V4L2_CID_FM_TX_CLASS_BASE + 65) -#define V4L2_CID_AUDIO_LIMITER_DEVIATION	(V4L2_CID_FM_TX_CLASS_BASE + 66) - -#define V4L2_CID_AUDIO_COMPRESSION_ENABLED	(V4L2_CID_FM_TX_CLASS_BASE + 80) -#define V4L2_CID_AUDIO_COMPRESSION_GAIN		(V4L2_CID_FM_TX_CLASS_BASE + 81) -#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD	(V4L2_CID_FM_TX_CLASS_BASE + 82) -#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME	(V4L2_CID_FM_TX_CLASS_BASE + 83) -#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME	(V4L2_CID_FM_TX_CLASS_BASE + 84) - -#define V4L2_CID_PILOT_TONE_ENABLED		(V4L2_CID_FM_TX_CLASS_BASE + 96) -#define V4L2_CID_PILOT_TONE_DEVIATION		(V4L2_CID_FM_TX_CLASS_BASE + 97) -#define V4L2_CID_PILOT_TONE_FREQUENCY		(V4L2_CID_FM_TX_CLASS_BASE + 98) - -#define V4L2_CID_TUNE_PREEMPHASIS		(V4L2_CID_FM_TX_CLASS_BASE + 112) -enum v4l2_preemphasis { -	V4L2_PREEMPHASIS_DISABLED	= 0, -	V4L2_PREEMPHASIS_50_uS		= 1, -	V4L2_PREEMPHASIS_75_uS		= 2, -}; -#define V4L2_CID_TUNE_POWER_LEVEL		(V4L2_CID_FM_TX_CLASS_BASE + 113) -#define V4L2_CID_TUNE_ANTENNA_CAPACITOR		(V4L2_CID_FM_TX_CLASS_BASE + 114) - - -/* Flash and privacy (indicator) light controls */ - -#define V4L2_CID_FLASH_CLASS_BASE		(V4L2_CTRL_CLASS_FLASH | 0x900) -#define V4L2_CID_FLASH_CLASS			(V4L2_CTRL_CLASS_FLASH | 1) - -#define V4L2_CID_FLASH_LED_MODE			(V4L2_CID_FLASH_CLASS_BASE + 1) -enum v4l2_flash_led_mode { -	V4L2_FLASH_LED_MODE_NONE, -	V4L2_FLASH_LED_MODE_FLASH, -	V4L2_FLASH_LED_MODE_TORCH, -}; - -#define V4L2_CID_FLASH_STROBE_SOURCE		(V4L2_CID_FLASH_CLASS_BASE + 2) -enum v4l2_flash_strobe_source { -	V4L2_FLASH_STROBE_SOURCE_SOFTWARE, -	V4L2_FLASH_STROBE_SOURCE_EXTERNAL, -}; - -#define V4L2_CID_FLASH_STROBE			(V4L2_CID_FLASH_CLASS_BASE + 3) -#define V4L2_CID_FLASH_STROBE_STOP		(V4L2_CID_FLASH_CLASS_BASE + 4) -#define V4L2_CID_FLASH_STROBE_STATUS		(V4L2_CID_FLASH_CLASS_BASE + 5) - -#define V4L2_CID_FLASH_TIMEOUT			(V4L2_CID_FLASH_CLASS_BASE + 6) -#define V4L2_CID_FLASH_INTENSITY		(V4L2_CID_FLASH_CLASS_BASE + 7) -#define V4L2_CID_FLASH_TORCH_INTENSITY		(V4L2_CID_FLASH_CLASS_BASE + 8) -#define V4L2_CID_FLASH_INDICATOR_INTENSITY	(V4L2_CID_FLASH_CLASS_BASE + 9) - -#define V4L2_CID_FLASH_FAULT			(V4L2_CID_FLASH_CLASS_BASE + 10) -#define V4L2_FLASH_FAULT_OVER_VOLTAGE		(1 << 0) -#define V4L2_FLASH_FAULT_TIMEOUT		(1 << 1) -#define V4L2_FLASH_FAULT_OVER_TEMPERATURE	(1 << 2) -#define V4L2_FLASH_FAULT_SHORT_CIRCUIT		(1 << 3) -#define V4L2_FLASH_FAULT_OVER_CURRENT		(1 << 4) -#define V4L2_FLASH_FAULT_INDICATOR		(1 << 5) - -#define V4L2_CID_FLASH_CHARGE			(V4L2_CID_FLASH_CLASS_BASE + 11) -#define V4L2_CID_FLASH_READY			(V4L2_CID_FLASH_CLASS_BASE + 12) - - -/* JPEG-class control IDs */ - -#define V4L2_CID_JPEG_CLASS_BASE		(V4L2_CTRL_CLASS_JPEG | 0x900) -#define V4L2_CID_JPEG_CLASS			(V4L2_CTRL_CLASS_JPEG | 1) - -#define	V4L2_CID_JPEG_CHROMA_SUBSAMPLING	(V4L2_CID_JPEG_CLASS_BASE + 1) -enum v4l2_jpeg_chroma_subsampling { -	V4L2_JPEG_CHROMA_SUBSAMPLING_444	= 0, -	V4L2_JPEG_CHROMA_SUBSAMPLING_422	= 1, -	V4L2_JPEG_CHROMA_SUBSAMPLING_420	= 2, -	V4L2_JPEG_CHROMA_SUBSAMPLING_411	= 3, -	V4L2_JPEG_CHROMA_SUBSAMPLING_410	= 4, -	V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY	= 5, -}; -#define	V4L2_CID_JPEG_RESTART_INTERVAL		(V4L2_CID_JPEG_CLASS_BASE + 2) -#define	V4L2_CID_JPEG_COMPRESSION_QUALITY	(V4L2_CID_JPEG_CLASS_BASE + 3) - -#define	V4L2_CID_JPEG_ACTIVE_MARKER		(V4L2_CID_JPEG_CLASS_BASE + 4) -#define	V4L2_JPEG_ACTIVE_MARKER_APP0		(1 << 0) -#define	V4L2_JPEG_ACTIVE_MARKER_APP1		(1 << 1) -#define	V4L2_JPEG_ACTIVE_MARKER_COM		(1 << 16) -#define	V4L2_JPEG_ACTIVE_MARKER_DQT		(1 << 17) -#define	V4L2_JPEG_ACTIVE_MARKER_DHT		(1 << 18) - -/* Image source controls */ -#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE	(V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) -#define V4L2_CID_IMAGE_SOURCE_CLASS		(V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) - -#define V4L2_CID_VBLANK				(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1) -#define V4L2_CID_HBLANK				(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2) -#define V4L2_CID_ANALOGUE_GAIN			(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3) - - -/* Image processing controls */ - -#define V4L2_CID_IMAGE_PROC_CLASS_BASE		(V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) -#define V4L2_CID_IMAGE_PROC_CLASS		(V4L2_CTRL_CLASS_IMAGE_PROC | 1) - -#define V4L2_CID_LINK_FREQ			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 1) -#define V4L2_CID_PIXEL_RATE			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) -#define V4L2_CID_TEST_PATTERN			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) - -#endif diff --git a/include/linux/v4l2-dv-timings.h b/include/linux/v4l2-dv-timings.h deleted file mode 100644 index 9ef8172e5ed..00000000000 --- a/include/linux/v4l2-dv-timings.h +++ /dev/null @@ -1,816 +0,0 @@ -/* - * V4L2 DV timings header. - * - * Copyright (C) 2012  Hans Verkuil <hans.verkuil@cisco.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * version 2 as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - -#ifndef _V4L2_DV_TIMINGS_H -#define _V4L2_DV_TIMINGS_H - -#if __GNUC__ < 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ < 6)) -/* Sadly gcc versions older than 4.6 have a bug in how they initialize -   anonymous unions where they require additional curly brackets. -   This violates the C1x standard. This workaround adds the curly brackets -   if needed. */ -#define V4L2_INIT_BT_TIMINGS(_width, args...) \ -	{ .bt = { _width , ## args } } -#else -#define V4L2_INIT_BT_TIMINGS(_width, args...) \ -	.bt = { _width , ## args } -#endif - -/* CEA-861-E timings (i.e. standard HDTV timings) */ - -#define V4L2_DV_BT_CEA_640X480P59_94 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ -		25175000, 16, 96, 48, 10, 2, 33, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_720X480P59_94 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(720, 480, 0, 0, \ -		27000000, 16, 62, 60, 9, 6, 30, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_720X576P50 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(720, 576, 0, 0, \ -		27000000, 12, 64, 68, 5, 5, 39, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_1280X720P24 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		59400000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ -		V4L2_DV_FL_CAN_REDUCE_FPS) \ -} - -#define V4L2_DV_BT_CEA_1280X720P25 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 2420, 40, 220, 5, 5, 20, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_1280X720P30 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ -} - -#define V4L2_DV_BT_CEA_1280X720P50 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 440, 40, 220, 5, 5, 20, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_1280X720P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 720, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 110, 40, 220, 5, 5, 20, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ -} - -#define V4L2_DV_BT_CEA_1920X1080P24 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 638, 44, 148, 4, 5, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ -} - -#define V4L2_DV_BT_CEA_1920X1080P25 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_1920X1080P30 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_CAN_REDUCE_FPS) \ -} - -#define V4L2_DV_BT_CEA_1920X1080I50 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 528, 44, 148, 2, 5, 15, 2, 5, 16, \ -		V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_HALF_LINE) \ -} - -#define V4L2_DV_BT_CEA_1920X1080P50 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		148500000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_CEA861, 0) \ -} - -#define V4L2_DV_BT_CEA_1920X1080I60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 1, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		74250000, 88, 44, 148, 2, 5, 15, 2, 5, 16, \ -		V4L2_DV_BT_STD_CEA861, \ -		V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_HALF_LINE) \ -} - -#define V4L2_DV_BT_CEA_1920X1080P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		148500000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \ -		V4L2_DV_FL_CAN_REDUCE_FPS) \ -} - - -/* VESA Discrete Monitor Timings as per version 1.0, revision 12 */ - -#define V4L2_DV_BT_DMT_640X350P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(640, 350, 0, V4L2_DV_HSYNC_POS_POL, \ -		31500000, 32, 64, 96, 32, 3, 60, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_640X400P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(640, 400, 0, V4L2_DV_VSYNC_POS_POL, \ -		31500000, 32, 64, 96, 1, 3, 41, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_720X400P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(720, 400, 0, V4L2_DV_VSYNC_POS_POL, \ -		35500000, 36, 72, 108, 1, 3, 42, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -/* VGA resolutions */ -#define V4L2_DV_BT_DMT_640X480P60 V4L2_DV_BT_CEA_640X480P59_94 - -#define V4L2_DV_BT_DMT_640X480P72 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ -		31500000, 24, 40, 128, 9, 3, 28, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_640X480P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ -		31500000, 16, 64, 120, 1, 3, 16, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_640X480P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \ -		36000000, 56, 56, 80, 1, 3, 25, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -/* SVGA resolutions */ -#define V4L2_DV_BT_DMT_800X600P56 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(800, 600, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		36000000, 24, 72, 128, 1, 2, 22, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_800X600P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(800, 600, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		40000000, 40, 128, 88, 1, 4, 23, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_800X600P72 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(800, 600, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		50000000, 56, 120, 64, 37, 6, 23, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_800X600P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(800, 600, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		49500000, 16, 80, 160, 1, 3, 21, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_800X600P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(800, 600, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		56250000, 32, 64, 152, 1, 3, 27, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_800X600P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(800, 600, 0, V4L2_DV_HSYNC_POS_POL, \ -		73250000, 48, 32, 80, 3, 4, 29, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_848X480P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(848, 480, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		33750000, 16, 112, 112, 6, 8, 23, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1024X768I43 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1024, 768, 1, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		44900000, 8, 176, 56, 0, 4, 20, 0, 4, 21, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -/* XGA resolutions */ -#define V4L2_DV_BT_DMT_1024X768P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \ -		65000000, 24, 136, 160, 3, 6, 29, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1024X768P70 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1024, 768, 0, 0, \ -		75000000, 24, 136, 144, 3, 6, 29, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1024X768P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1024, 768, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		78750000, 16, 96, 176, 1, 3, 28, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1024X768P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1024, 768, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		94500000, 48, 96, 208, 1, 3, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1024X768P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1024, 768, 0, V4L2_DV_HSYNC_POS_POL, \ -		115500000, 48, 32, 80, 3, 4, 38, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* XGA+ resolution */ -#define V4L2_DV_BT_DMT_1152X864P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1152, 864, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		108000000, 64, 128, 256, 1, 3, 32, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X720P60 V4L2_DV_BT_CEA_1280X720P60 - -/* WXGA resolutions */ -#define V4L2_DV_BT_DMT_1280X768P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \ -		68250000, 48, 32, 80, 3, 7, 12, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1280X768P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ -		79500000, 64, 128, 192, 3, 7, 20, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X768P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ -		102250000, 80, 128, 208, 3, 7, 27, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X768P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_VSYNC_POS_POL, \ -		117500000, 80, 136, 216, 3, 7, 31, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X768P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 768, 0, V4L2_DV_HSYNC_POS_POL, \ -		140250000, 48, 32, 80, 3, 7, 35, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1280X800P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \ -		71000000, 48, 32, 80, 3, 6, 14, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1280X800P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ -		83500000, 72, 128, 200, 3, 6, 22, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X800P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ -		106500000, 80, 128, 208, 3, 6, 29, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X800P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_VSYNC_POS_POL, \ -		122500000, 80, 136, 216, 3, 6, 34, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X800P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 800, 0, V4L2_DV_HSYNC_POS_POL, \ -		146250000, 48, 32, 80, 3, 6, 38, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1280X960P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 960, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		108000000, 96, 112, 312, 1, 3, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X960P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 960, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		148500000, 64, 160, 224, 1, 3, 47, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X960P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 960, 0, V4L2_DV_HSYNC_POS_POL, \ -		175500000, 48, 32, 80, 3, 4, 50, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* SXGA resolutions */ -#define V4L2_DV_BT_DMT_1280X1024P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		108000000, 48, 112, 248, 1, 3, 38, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X1024P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		135000000, 16, 144, 248, 1, 3, 38, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X1024P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		157500000, 64, 160, 224, 1, 3, 44, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1280X1024P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1280, 1024, 0, V4L2_DV_HSYNC_POS_POL, \ -		187250000, 48, 32, 80, 3, 7, 50, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1360X768P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1360, 768, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		85500000, 64, 112, 256, 3, 6, 18, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1360X768P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1360, 768, 0, V4L2_DV_HSYNC_POS_POL, \ -		148250000, 48, 32, 80, 3, 5, 37, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1366X768P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		85500000, 70, 143, 213, 3, 3, 24, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1366X768P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		72000000, 14, 56, 64, 1, 3, 28, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* SXGA+ resolutions */ -#define V4L2_DV_BT_DMT_1400X1050P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ -		101000000, 48, 32, 80, 3, 4, 23, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1400X1050P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ -		121750000, 88, 144, 232, 3, 4, 32, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1400X1050P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ -		156000000, 104, 144, 248, 3, 4, 42, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1400X1050P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ -		179500000, 104, 152, 256, 3, 4, 48, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1400X1050P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1400, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ -		208000000, 48, 32, 80, 3, 4, 55, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* WXGA+ resolutions */ -#define V4L2_DV_BT_DMT_1440X900P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \ -		88750000, 48, 32, 80, 3, 6, 17, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1440X900P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ -		106500000, 80, 152, 232, 3, 6, 25, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1440X900P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ -		136750000, 96, 152, 248, 3, 6, 33, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1440X900P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_VSYNC_POS_POL, \ -		157000000, 104, 152, 256, 3, 6, 39, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1440X900P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1440, 900, 0, V4L2_DV_HSYNC_POS_POL, \ -		182750000, 48, 32, 80, 3, 6, 44, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1600X900P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 900, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		108000000, 24, 80, 96, 1, 3, 96, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* UXGA resolutions */ -#define V4L2_DV_BT_DMT_1600X1200P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		162000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1600X1200P65 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		175500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1600X1200P70 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		189000000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1600X1200P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		202500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1600X1200P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		229500000, 64, 192, 304, 1, 3, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1600X1200P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1600, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ -		268250000, 48, 32, 80, 3, 4, 64, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* WSXGA+ resolutions */ -#define V4L2_DV_BT_DMT_1680X1050P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ -		119000000, 48, 32, 80, 3, 6, 21, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1680X1050P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ -		146250000, 104, 176, 280, 3, 6, 30, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1680X1050P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ -		187000000, 120, 176, 296, 3, 6, 40, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1680X1050P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_VSYNC_POS_POL, \ -		214750000, 128, 176, 304, 3, 6, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1680X1050P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1680, 1050, 0, V4L2_DV_HSYNC_POS_POL, \ -		245500000, 48, 32, 80, 3, 6, 53, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1792X1344P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \ -		204750000, 128, 200, 328, 1, 3, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1792X1344P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_VSYNC_POS_POL, \ -		261000000, 96, 216, 352, 1, 3, 69, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1792X1344P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1792, 1344, 0, V4L2_DV_HSYNC_POS_POL, \ -		333250000, 48, 32, 80, 3, 4, 72, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1856X1392P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \ -		218250000, 96, 224, 352, 1, 3, 43, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1856X1392P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_VSYNC_POS_POL, \ -		288000000, 128, 224, 352, 1, 3, 104, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1856X1392P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1856, 1392, 0, V4L2_DV_HSYNC_POS_POL, \ -		356500000, 48, 32, 80, 3, 4, 75, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1920X1080P60 V4L2_DV_BT_CEA_1920X1080P60 - -/* WUXGA resolutions */ -#define V4L2_DV_BT_DMT_1920X1200P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ -		154000000, 48, 32, 80, 3, 6, 26, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1920X1200P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ -		193250000, 136, 200, 336, 3, 6, 36, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1920X1200P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ -		245250000, 136, 208, 344, 3, 6, 46, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1920X1200P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_VSYNC_POS_POL, \ -		281250000, 144, 208, 352, 3, 6, 53, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_1920X1200P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1200, 0, V4L2_DV_HSYNC_POS_POL, \ -		317000000, 48, 32, 80, 3, 6, 62, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1920X1440P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \ -		234000000, 128, 208, 344, 1, 3, 56, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1920X1440P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_VSYNC_POS_POL, \ -		297000000, 144, 224, 352, 1, 3, 56, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#define V4L2_DV_BT_DMT_1920X1440P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1920, 1440, 0, V4L2_DV_HSYNC_POS_POL, \ -		380500000, 48, 32, 80, 3, 4, 78, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_2048X1152P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(2048, 1152, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		162000000, 26, 80, 96, 1, 3, 44, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, V4L2_DV_FL_REDUCED_BLANKING) \ -} - -/* WQXGA resolutions */ -#define V4L2_DV_BT_DMT_2560X1600P60_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \ -		268500000, 48, 32, 80, 3, 6, 37, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_2560X1600P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ -		348500000, 192, 280, 472, 3, 6, 49, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_2560X1600P75 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ -		443250000, 208, 280, 488, 3, 6, 63, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_2560X1600P85 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_VSYNC_POS_POL, \ -		505250000, 208, 280, 488, 3, 6, 73, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, 0) \ -} - -#define V4L2_DV_BT_DMT_2560X1600P120_RB { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(2560, 1600, 0, V4L2_DV_HSYNC_POS_POL, \ -		552750000, 48, 32, 80, 3, 6, 85, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ -		V4L2_DV_FL_REDUCED_BLANKING) \ -} - -#define V4L2_DV_BT_DMT_1366X768P60 { \ -	.type = V4L2_DV_BT_656_1120, \ -	V4L2_INIT_BT_TIMINGS(1366, 768, 0, \ -		V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \ -		85500000, 70, 143, 213, 3, 3, 24, 0, 0, 0, \ -		V4L2_DV_BT_STD_DMT, 0) \ -} - -#endif diff --git a/include/linux/v4l2-mediabus.h b/include/linux/v4l2-mediabus.h deleted file mode 100644 index 7d64e0e1a18..00000000000 --- a/include/linux/v4l2-mediabus.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Media Bus API header - * - * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#ifndef __LINUX_V4L2_MEDIABUS_H -#define __LINUX_V4L2_MEDIABUS_H - -#include <linux/types.h> -#include <linux/videodev2.h> - -/* - * These pixel codes uniquely identify data formats on the media bus. Mostly - * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is - * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the - * data format is fixed. Additionally, "2X8" means that one pixel is transferred - * in two 8-bit samples, "BE" or "LE" specify in which order those samples are - * transferred over the bus: "LE" means that the least significant bits are - * transferred first, "BE" means that the most significant bits are transferred - * first, and "PADHI" and "PADLO" define which bits - low or high, in the - * incomplete high byte, are filled with padding bits. - * - * The pixel codes are grouped by type, bus_width, bits per component, samples - * per pixel and order of subsamples. Numerical values are sorted using generic - * numerical sort order (8 thus comes before 10). - * - * As their value can't change when a new pixel code is inserted in the - * enumeration, the pixel codes are explicitly given a numerical value. The next - * free values for each category are listed below, update them when inserting - * new pixel codes. - */ -enum v4l2_mbus_pixelcode { -	V4L2_MBUS_FMT_FIXED = 0x0001, - -	/* RGB - next is 0x1009 */ -	V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001, -	V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002, -	V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003, -	V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004, -	V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005, -	V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006, -	V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, -	V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, - -	/* YUV (including grey) - next is 0x2014 */ -	V4L2_MBUS_FMT_Y8_1X8 = 0x2001, -	V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, -	V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, -	V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, -	V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005, -	V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006, -	V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007, -	V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008, -	V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009, -	V4L2_MBUS_FMT_Y10_1X10 = 0x200a, -	V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b, -	V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c, -	V4L2_MBUS_FMT_Y12_1X12 = 0x2013, -	V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f, -	V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, -	V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, -	V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, -	V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, -	V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, - -	/* Bayer - next is 0x3015 */ -	V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, -	V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, -	V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, -	V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, -	V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, -	V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, -	V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, -	V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8 = 0x300d, -	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 0x3003, -	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 0x3004, -	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 0x3005, -	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 0x3006, -	V4L2_MBUS_FMT_SBGGR10_1X10 = 0x3007, -	V4L2_MBUS_FMT_SGBRG10_1X10 = 0x300e, -	V4L2_MBUS_FMT_SGRBG10_1X10 = 0x300a, -	V4L2_MBUS_FMT_SRGGB10_1X10 = 0x300f, -	V4L2_MBUS_FMT_SBGGR12_1X12 = 0x3008, -	V4L2_MBUS_FMT_SGBRG12_1X12 = 0x3010, -	V4L2_MBUS_FMT_SGRBG12_1X12 = 0x3011, -	V4L2_MBUS_FMT_SRGGB12_1X12 = 0x3012, - -	/* JPEG compressed formats - next is 0x4002 */ -	V4L2_MBUS_FMT_JPEG_1X8 = 0x4001, - -	/* Vendor specific formats - next is 0x5002 */ - -	/* S5C73M3 sensor specific interleaved UYVY and JPEG */ -	V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001, -}; - -/** - * struct v4l2_mbus_framefmt - frame format on the media bus - * @width:	frame width - * @height:	frame height - * @code:	data format code (from enum v4l2_mbus_pixelcode) - * @field:	used interlacing type (from enum v4l2_field) - * @colorspace:	colorspace of the data (from enum v4l2_colorspace) - */ -struct v4l2_mbus_framefmt { -	__u32			width; -	__u32			height; -	__u32			code; -	__u32			field; -	__u32			colorspace; -	__u32			reserved[7]; -}; - -#endif diff --git a/include/linux/v4l2-subdev.h b/include/linux/v4l2-subdev.h deleted file mode 100644 index a33c4daadce..00000000000 --- a/include/linux/v4l2-subdev.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * V4L2 subdev userspace API - * - * Copyright (C) 2010 Nokia Corporation - * - * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com> - *	     Sakari Ailus <sakari.ailus@iki.fi> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - */ - -#ifndef __LINUX_V4L2_SUBDEV_H -#define __LINUX_V4L2_SUBDEV_H - -#include <linux/ioctl.h> -#include <linux/types.h> -#include <linux/v4l2-common.h> -#include <linux/v4l2-mediabus.h> - -/** - * enum v4l2_subdev_format_whence - Media bus format type - * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only - * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device - */ -enum v4l2_subdev_format_whence { -	V4L2_SUBDEV_FORMAT_TRY = 0, -	V4L2_SUBDEV_FORMAT_ACTIVE = 1, -}; - -/** - * struct v4l2_subdev_format - Pad-level media bus format - * @which: format type (from enum v4l2_subdev_format_whence) - * @pad: pad number, as reported by the media API - * @format: media bus format (format code and frame size) - */ -struct v4l2_subdev_format { -	__u32 which; -	__u32 pad; -	struct v4l2_mbus_framefmt format; -	__u32 reserved[8]; -}; - -/** - * struct v4l2_subdev_crop - Pad-level crop settings - * @which: format type (from enum v4l2_subdev_format_whence) - * @pad: pad number, as reported by the media API - * @rect: pad crop rectangle boundaries - */ -struct v4l2_subdev_crop { -	__u32 which; -	__u32 pad; -	struct v4l2_rect rect; -	__u32 reserved[8]; -}; - -/** - * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration - * @pad: pad number, as reported by the media API - * @index: format index during enumeration - * @code: format code (from enum v4l2_mbus_pixelcode) - */ -struct v4l2_subdev_mbus_code_enum { -	__u32 pad; -	__u32 index; -	__u32 code; -	__u32 reserved[9]; -}; - -/** - * struct v4l2_subdev_frame_size_enum - Media bus format enumeration - * @pad: pad number, as reported by the media API - * @index: format index during enumeration - * @code: format code (from enum v4l2_mbus_pixelcode) - */ -struct v4l2_subdev_frame_size_enum { -	__u32 index; -	__u32 pad; -	__u32 code; -	__u32 min_width; -	__u32 max_width; -	__u32 min_height; -	__u32 max_height; -	__u32 reserved[9]; -}; - -/** - * struct v4l2_subdev_frame_interval - Pad-level frame rate - * @pad: pad number, as reported by the media API - * @interval: frame interval in seconds - */ -struct v4l2_subdev_frame_interval { -	__u32 pad; -	struct v4l2_fract interval; -	__u32 reserved[9]; -}; - -/** - * struct v4l2_subdev_frame_interval_enum - Frame interval enumeration - * @pad: pad number, as reported by the media API - * @index: frame interval index during enumeration - * @code: format code (from enum v4l2_mbus_pixelcode) - * @width: frame width in pixels - * @height: frame height in pixels - * @interval: frame interval in seconds - */ -struct v4l2_subdev_frame_interval_enum { -	__u32 index; -	__u32 pad; -	__u32 code; -	__u32 width; -	__u32 height; -	struct v4l2_fract interval; -	__u32 reserved[9]; -}; - -/** - * struct v4l2_subdev_selection - selection info - * - * @which: either V4L2_SUBDEV_FORMAT_ACTIVE or V4L2_SUBDEV_FORMAT_TRY - * @pad: pad number, as reported by the media API - * @target: Selection target, used to choose one of possible rectangles, - *	    defined in v4l2-common.h; V4L2_SEL_TGT_* . - * @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. - * @r: coordinates of the selection window - * @reserved: for future use, set to zero for now - * - * Hardware may use multiple helper windows to process a video stream. - * The structure is used to exchange this selection areas between - * an application and a driver. - */ -struct v4l2_subdev_selection { -	__u32 which; -	__u32 pad; -	__u32 target; -	__u32 flags; -	struct v4l2_rect r; -	__u32 reserved[8]; -}; - -struct v4l2_subdev_edid { -	__u32 pad; -	__u32 start_block; -	__u32 blocks; -	__u32 reserved[5]; -	__u8 __user *edid; -}; - -#define VIDIOC_SUBDEV_G_FMT	_IOWR('V',  4, struct v4l2_subdev_format) -#define VIDIOC_SUBDEV_S_FMT	_IOWR('V',  5, struct v4l2_subdev_format) -#define VIDIOC_SUBDEV_G_FRAME_INTERVAL \ -			_IOWR('V', 21, struct v4l2_subdev_frame_interval) -#define VIDIOC_SUBDEV_S_FRAME_INTERVAL \ -			_IOWR('V', 22, struct v4l2_subdev_frame_interval) -#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \ -			_IOWR('V',  2, struct v4l2_subdev_mbus_code_enum) -#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \ -			_IOWR('V', 74, struct v4l2_subdev_frame_size_enum) -#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \ -			_IOWR('V', 75, struct v4l2_subdev_frame_interval_enum) -#define VIDIOC_SUBDEV_G_CROP	_IOWR('V', 59, struct v4l2_subdev_crop) -#define VIDIOC_SUBDEV_S_CROP	_IOWR('V', 60, struct v4l2_subdev_crop) -#define VIDIOC_SUBDEV_G_SELECTION \ -	_IOWR('V', 61, struct v4l2_subdev_selection) -#define VIDIOC_SUBDEV_S_SELECTION \ -	_IOWR('V', 62, struct v4l2_subdev_selection) -#define VIDIOC_SUBDEV_G_EDID	_IOWR('V', 40, struct v4l2_subdev_edid) -#define VIDIOC_SUBDEV_S_EDID	_IOWR('V', 41, struct v4l2_subdev_edid) - -#endif diff --git a/include/linux/veth.h b/include/linux/veth.h deleted file mode 100644 index 3354c1eb424..00000000000 --- a/include/linux/veth.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef __NET_VETH_H_ -#define __NET_VETH_H_ - -enum { -	VETH_INFO_UNSPEC, -	VETH_INFO_PEER, - -	__VETH_INFO_MAX -#define VETH_INFO_MAX	(__VETH_INFO_MAX - 1) -}; - -#endif diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 0a4f180a11d..ab9e86224c5 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -11,15 +11,10 @@  #ifndef VFIO_H  #define VFIO_H -#include <linux/types.h> -#include <linux/ioctl.h> - -#define VFIO_API_VERSION	0 - -#ifdef __KERNEL__	/* Internal VFIO-core/bus driver API */  #include <linux/iommu.h>  #include <linux/mm.h> +#include <uapi/linux/vfio.h>  /**   * struct vfio_device_ops - VFIO bus driver device callbacks @@ -92,354 +87,4 @@ extern void vfio_unregister_iommu_driver(  	TYPE tmp;						\  	offsetof(TYPE, MEMBER) + sizeof(tmp.MEMBER); })		\ -#endif /* __KERNEL__ */ - -/* Kernel & User level defines for VFIO IOCTLs. */ - -/* Extensions */ - -#define VFIO_TYPE1_IOMMU		1 - -/* - * The IOCTL interface is designed for extensibility by embedding the - * structure length (argsz) and flags into structures passed between - * kernel and userspace.  We therefore use the _IO() macro for these - * defines to avoid implicitly embedding a size into the ioctl request. - * As structure fields are added, argsz will increase to match and flag - * bits will be defined to indicate additional fields with valid data. - * It's *always* the caller's responsibility to indicate the size of - * the structure passed by setting argsz appropriately. - */ - -#define VFIO_TYPE	(';') -#define VFIO_BASE	100 - -/* -------- IOCTLs for VFIO file descriptor (/dev/vfio/vfio) -------- */ - -/** - * VFIO_GET_API_VERSION - _IO(VFIO_TYPE, VFIO_BASE + 0) - * - * Report the version of the VFIO API.  This allows us to bump the entire - * API version should we later need to add or change features in incompatible - * ways. - * Return: VFIO_API_VERSION - * Availability: Always - */ -#define VFIO_GET_API_VERSION		_IO(VFIO_TYPE, VFIO_BASE + 0) - -/** - * VFIO_CHECK_EXTENSION - _IOW(VFIO_TYPE, VFIO_BASE + 1, __u32) - * - * Check whether an extension is supported. - * Return: 0 if not supported, 1 (or some other positive integer) if supported. - * Availability: Always - */ -#define VFIO_CHECK_EXTENSION		_IO(VFIO_TYPE, VFIO_BASE + 1) - -/** - * VFIO_SET_IOMMU - _IOW(VFIO_TYPE, VFIO_BASE + 2, __s32) - * - * Set the iommu to the given type.  The type must be supported by an - * iommu driver as verified by calling CHECK_EXTENSION using the same - * type.  A group must be set to this file descriptor before this - * ioctl is available.  The IOMMU interfaces enabled by this call are - * specific to the value set. - * Return: 0 on success, -errno on failure - * Availability: When VFIO group attached - */ -#define VFIO_SET_IOMMU			_IO(VFIO_TYPE, VFIO_BASE + 2) - -/* -------- IOCTLs for GROUP file descriptors (/dev/vfio/$GROUP) -------- */ - -/** - * VFIO_GROUP_GET_STATUS - _IOR(VFIO_TYPE, VFIO_BASE + 3, - *						struct vfio_group_status) - * - * Retrieve information about the group.  Fills in provided - * struct vfio_group_info.  Caller sets argsz. - * Return: 0 on succes, -errno on failure. - * Availability: Always - */ -struct vfio_group_status { -	__u32	argsz; -	__u32	flags; -#define VFIO_GROUP_FLAGS_VIABLE		(1 << 0) -#define VFIO_GROUP_FLAGS_CONTAINER_SET	(1 << 1) -}; -#define VFIO_GROUP_GET_STATUS		_IO(VFIO_TYPE, VFIO_BASE + 3) - -/** - * VFIO_GROUP_SET_CONTAINER - _IOW(VFIO_TYPE, VFIO_BASE + 4, __s32) - * - * Set the container for the VFIO group to the open VFIO file - * descriptor provided.  Groups may only belong to a single - * container.  Containers may, at their discretion, support multiple - * groups.  Only when a container is set are all of the interfaces - * of the VFIO file descriptor and the VFIO group file descriptor - * available to the user. - * Return: 0 on success, -errno on failure. - * Availability: Always - */ -#define VFIO_GROUP_SET_CONTAINER	_IO(VFIO_TYPE, VFIO_BASE + 4) - -/** - * VFIO_GROUP_UNSET_CONTAINER - _IO(VFIO_TYPE, VFIO_BASE + 5) - * - * Remove the group from the attached container.  This is the - * opposite of the SET_CONTAINER call and returns the group to - * an initial state.  All device file descriptors must be released - * prior to calling this interface.  When removing the last group - * from a container, the IOMMU will be disabled and all state lost, - * effectively also returning the VFIO file descriptor to an initial - * state. - * Return: 0 on success, -errno on failure. - * Availability: When attached to container - */ -#define VFIO_GROUP_UNSET_CONTAINER	_IO(VFIO_TYPE, VFIO_BASE + 5) - -/** - * VFIO_GROUP_GET_DEVICE_FD - _IOW(VFIO_TYPE, VFIO_BASE + 6, char) - * - * Return a new file descriptor for the device object described by - * the provided string.  The string should match a device listed in - * the devices subdirectory of the IOMMU group sysfs entry.  The - * group containing the device must already be added to this context. - * Return: new file descriptor on success, -errno on failure. - * Availability: When attached to container - */ -#define VFIO_GROUP_GET_DEVICE_FD	_IO(VFIO_TYPE, VFIO_BASE + 6) - -/* --------------- IOCTLs for DEVICE file descriptors --------------- */ - -/** - * VFIO_DEVICE_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 7, - *						struct vfio_device_info) - * - * Retrieve information about the device.  Fills in provided - * struct vfio_device_info.  Caller sets argsz. - * Return: 0 on success, -errno on failure. - */ -struct vfio_device_info { -	__u32	argsz; -	__u32	flags; -#define VFIO_DEVICE_FLAGS_RESET	(1 << 0)	/* Device supports reset */ -#define VFIO_DEVICE_FLAGS_PCI	(1 << 1)	/* vfio-pci device */ -	__u32	num_regions;	/* Max region index + 1 */ -	__u32	num_irqs;	/* Max IRQ index + 1 */ -}; -#define VFIO_DEVICE_GET_INFO		_IO(VFIO_TYPE, VFIO_BASE + 7) - -/** - * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, - *				       struct vfio_region_info) - * - * Retrieve information about a device region.  Caller provides - * struct vfio_region_info with index value set.  Caller sets argsz. - * Implementation of region mapping is bus driver specific.  This is - * intended to describe MMIO, I/O port, as well as bus specific - * regions (ex. PCI config space).  Zero sized regions may be used - * to describe unimplemented regions (ex. unimplemented PCI BARs). - * Return: 0 on success, -errno on failure. - */ -struct vfio_region_info { -	__u32	argsz; -	__u32	flags; -#define VFIO_REGION_INFO_FLAG_READ	(1 << 0) /* Region supports read */ -#define VFIO_REGION_INFO_FLAG_WRITE	(1 << 1) /* Region supports write */ -#define VFIO_REGION_INFO_FLAG_MMAP	(1 << 2) /* Region supports mmap */ -	__u32	index;		/* Region index */ -	__u32	resv;		/* Reserved for alignment */ -	__u64	size;		/* Region size (bytes) */ -	__u64	offset;		/* Region offset from start of device fd */ -}; -#define VFIO_DEVICE_GET_REGION_INFO	_IO(VFIO_TYPE, VFIO_BASE + 8) - -/** - * VFIO_DEVICE_GET_IRQ_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 9, - *				    struct vfio_irq_info) - * - * Retrieve information about a device IRQ.  Caller provides - * struct vfio_irq_info with index value set.  Caller sets argsz. - * Implementation of IRQ mapping is bus driver specific.  Indexes - * using multiple IRQs are primarily intended to support MSI-like - * interrupt blocks.  Zero count irq blocks may be used to describe - * unimplemented interrupt types. - * - * The EVENTFD flag indicates the interrupt index supports eventfd based - * signaling. - * - * The MASKABLE flags indicates the index supports MASK and UNMASK - * actions described below. - * - * AUTOMASKED indicates that after signaling, the interrupt line is - * automatically masked by VFIO and the user needs to unmask the line - * to receive new interrupts.  This is primarily intended to distinguish - * level triggered interrupts. - * - * The NORESIZE flag indicates that the interrupt lines within the index - * are setup as a set and new subindexes cannot be enabled without first - * disabling the entire index.  This is used for interrupts like PCI MSI - * and MSI-X where the driver may only use a subset of the available - * indexes, but VFIO needs to enable a specific number of vectors - * upfront.  In the case of MSI-X, where the user can enable MSI-X and - * then add and unmask vectors, it's up to userspace to make the decision - * whether to allocate the maximum supported number of vectors or tear - * down setup and incrementally increase the vectors as each is enabled. - */ -struct vfio_irq_info { -	__u32	argsz; -	__u32	flags; -#define VFIO_IRQ_INFO_EVENTFD		(1 << 0) -#define VFIO_IRQ_INFO_MASKABLE		(1 << 1) -#define VFIO_IRQ_INFO_AUTOMASKED	(1 << 2) -#define VFIO_IRQ_INFO_NORESIZE		(1 << 3) -	__u32	index;		/* IRQ index */ -	__u32	count;		/* Number of IRQs within this index */ -}; -#define VFIO_DEVICE_GET_IRQ_INFO	_IO(VFIO_TYPE, VFIO_BASE + 9) - -/** - * VFIO_DEVICE_SET_IRQS - _IOW(VFIO_TYPE, VFIO_BASE + 10, struct vfio_irq_set) - * - * Set signaling, masking, and unmasking of interrupts.  Caller provides - * struct vfio_irq_set with all fields set.  'start' and 'count' indicate - * the range of subindexes being specified. - * - * The DATA flags specify the type of data provided.  If DATA_NONE, the - * operation performs the specified action immediately on the specified - * interrupt(s).  For example, to unmask AUTOMASKED interrupt [0,0]: - * flags = (DATA_NONE|ACTION_UNMASK), index = 0, start = 0, count = 1. - * - * DATA_BOOL allows sparse support for the same on arrays of interrupts. - * For example, to mask interrupts [0,1] and [0,3] (but not [0,2]): - * flags = (DATA_BOOL|ACTION_MASK), index = 0, start = 1, count = 3, - * data = {1,0,1} - * - * DATA_EVENTFD binds the specified ACTION to the provided __s32 eventfd. - * A value of -1 can be used to either de-assign interrupts if already - * assigned or skip un-assigned interrupts.  For example, to set an eventfd - * to be trigger for interrupts [0,0] and [0,2]: - * flags = (DATA_EVENTFD|ACTION_TRIGGER), index = 0, start = 0, count = 3, - * data = {fd1, -1, fd2} - * If index [0,1] is previously set, two count = 1 ioctls calls would be - * required to set [0,0] and [0,2] without changing [0,1]. - * - * Once a signaling mechanism is set, DATA_BOOL or DATA_NONE can be used - * with ACTION_TRIGGER to perform kernel level interrupt loopback testing - * from userspace (ie. simulate hardware triggering). - * - * Setting of an event triggering mechanism to userspace for ACTION_TRIGGER - * enables the interrupt index for the device.  Individual subindex interrupts - * can be disabled using the -1 value for DATA_EVENTFD or the index can be - * disabled as a whole with: flags = (DATA_NONE|ACTION_TRIGGER), count = 0. - * - * Note that ACTION_[UN]MASK specify user->kernel signaling (irqfds) while - * ACTION_TRIGGER specifies kernel->user signaling. - */ -struct vfio_irq_set { -	__u32	argsz; -	__u32	flags; -#define VFIO_IRQ_SET_DATA_NONE		(1 << 0) /* Data not present */ -#define VFIO_IRQ_SET_DATA_BOOL		(1 << 1) /* Data is bool (u8) */ -#define VFIO_IRQ_SET_DATA_EVENTFD	(1 << 2) /* Data is eventfd (s32) */ -#define VFIO_IRQ_SET_ACTION_MASK	(1 << 3) /* Mask interrupt */ -#define VFIO_IRQ_SET_ACTION_UNMASK	(1 << 4) /* Unmask interrupt */ -#define VFIO_IRQ_SET_ACTION_TRIGGER	(1 << 5) /* Trigger interrupt */ -	__u32	index; -	__u32	start; -	__u32	count; -	__u8	data[]; -}; -#define VFIO_DEVICE_SET_IRQS		_IO(VFIO_TYPE, VFIO_BASE + 10) - -#define VFIO_IRQ_SET_DATA_TYPE_MASK	(VFIO_IRQ_SET_DATA_NONE | \ -					 VFIO_IRQ_SET_DATA_BOOL | \ -					 VFIO_IRQ_SET_DATA_EVENTFD) -#define VFIO_IRQ_SET_ACTION_TYPE_MASK	(VFIO_IRQ_SET_ACTION_MASK | \ -					 VFIO_IRQ_SET_ACTION_UNMASK | \ -					 VFIO_IRQ_SET_ACTION_TRIGGER) -/** - * VFIO_DEVICE_RESET - _IO(VFIO_TYPE, VFIO_BASE + 11) - * - * Reset a device. - */ -#define VFIO_DEVICE_RESET		_IO(VFIO_TYPE, VFIO_BASE + 11) - -/* - * The VFIO-PCI bus driver makes use of the following fixed region and - * IRQ index mapping.  Unimplemented regions return a size of zero. - * Unimplemented IRQ types return a count of zero. - */ - -enum { -	VFIO_PCI_BAR0_REGION_INDEX, -	VFIO_PCI_BAR1_REGION_INDEX, -	VFIO_PCI_BAR2_REGION_INDEX, -	VFIO_PCI_BAR3_REGION_INDEX, -	VFIO_PCI_BAR4_REGION_INDEX, -	VFIO_PCI_BAR5_REGION_INDEX, -	VFIO_PCI_ROM_REGION_INDEX, -	VFIO_PCI_CONFIG_REGION_INDEX, -	VFIO_PCI_NUM_REGIONS -}; - -enum { -	VFIO_PCI_INTX_IRQ_INDEX, -	VFIO_PCI_MSI_IRQ_INDEX, -	VFIO_PCI_MSIX_IRQ_INDEX, -	VFIO_PCI_NUM_IRQS -}; - -/* -------- API for Type1 VFIO IOMMU -------- */ - -/** - * VFIO_IOMMU_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 12, struct vfio_iommu_info) - * - * Retrieve information about the IOMMU object. Fills in provided - * struct vfio_iommu_info. Caller sets argsz. - * - * XXX Should we do these by CHECK_EXTENSION too? - */ -struct vfio_iommu_type1_info { -	__u32	argsz; -	__u32	flags; -#define VFIO_IOMMU_INFO_PGSIZES (1 << 0)	/* supported page sizes info */ -	__u64	iova_pgsizes;		/* Bitmap of supported page sizes */ -}; - -#define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) - -/** - * VFIO_IOMMU_MAP_DMA - _IOW(VFIO_TYPE, VFIO_BASE + 13, struct vfio_dma_map) - * - * Map process virtual addresses to IO virtual addresses using the - * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required. - */ -struct vfio_iommu_type1_dma_map { -	__u32	argsz; -	__u32	flags; -#define VFIO_DMA_MAP_FLAG_READ (1 << 0)		/* readable from device */ -#define VFIO_DMA_MAP_FLAG_WRITE (1 << 1)	/* writable from device */ -	__u64	vaddr;				/* Process virtual address */ -	__u64	iova;				/* IO virtual address */ -	__u64	size;				/* Size of mapping (bytes) */ -}; - -#define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13) - -/** - * VFIO_IOMMU_UNMAP_DMA - _IOW(VFIO_TYPE, VFIO_BASE + 14, struct vfio_dma_unmap) - * - * Unmap IO virtual addresses using the provided struct vfio_dma_unmap. - * Caller sets argsz. - */ -struct vfio_iommu_type1_dma_unmap { -	__u32	argsz; -	__u32	flags; -	__u64	iova;				/* IO virtual address */ -	__u64	size;				/* Size of mapping (bytes) */ -}; - -#define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14) -  #endif /* VFIO_H */ diff --git a/include/linux/vhost.h b/include/linux/vhost.h deleted file mode 100644 index e847f1e3075..00000000000 --- a/include/linux/vhost.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef _LINUX_VHOST_H -#define _LINUX_VHOST_H -/* Userspace interface for in-kernel virtio accelerators. */ - -/* vhost is used to reduce the number of system calls involved in virtio. - * - * Existing virtio net code is used in the guest without modification. - * - * This header includes interface used by userspace hypervisor for - * device configuration. - */ - -#include <linux/types.h> -#include <linux/compiler.h> -#include <linux/ioctl.h> -#include <linux/virtio_config.h> -#include <linux/virtio_ring.h> - -struct vhost_vring_state { -	unsigned int index; -	unsigned int num; -}; - -struct vhost_vring_file { -	unsigned int index; -	int fd; /* Pass -1 to unbind from file. */ - -}; - -struct vhost_vring_addr { -	unsigned int index; -	/* Option flags. */ -	unsigned int flags; -	/* Flag values: */ -	/* Whether log address is valid. If set enables logging. */ -#define VHOST_VRING_F_LOG 0 - -	/* Start of array of descriptors (virtually contiguous) */ -	__u64 desc_user_addr; -	/* Used structure address. Must be 32 bit aligned */ -	__u64 used_user_addr; -	/* Available structure address. Must be 16 bit aligned */ -	__u64 avail_user_addr; -	/* Logging support. */ -	/* Log writes to used structure, at offset calculated from specified -	 * address. Address must be 32 bit aligned. */ -	__u64 log_guest_addr; -}; - -struct vhost_memory_region { -	__u64 guest_phys_addr; -	__u64 memory_size; /* bytes */ -	__u64 userspace_addr; -	__u64 flags_padding; /* No flags are currently specified. */ -}; - -/* All region addresses and sizes must be 4K aligned. */ -#define VHOST_PAGE_SIZE 0x1000 - -struct vhost_memory { -	__u32 nregions; -	__u32 padding; -	struct vhost_memory_region regions[0]; -}; - -/* ioctls */ - -#define VHOST_VIRTIO 0xAF - -/* Features bitmask for forward compatibility.  Transport bits are used for - * vhost specific features. */ -#define VHOST_GET_FEATURES	_IOR(VHOST_VIRTIO, 0x00, __u64) -#define VHOST_SET_FEATURES	_IOW(VHOST_VIRTIO, 0x00, __u64) - -/* Set current process as the (exclusive) owner of this file descriptor.  This - * must be called before any other vhost command.  Further calls to - * VHOST_OWNER_SET fail until VHOST_OWNER_RESET is called. */ -#define VHOST_SET_OWNER _IO(VHOST_VIRTIO, 0x01) -/* Give up ownership, and reset the device to default values. - * Allows subsequent call to VHOST_OWNER_SET to succeed. */ -#define VHOST_RESET_OWNER _IO(VHOST_VIRTIO, 0x02) - -/* Set up/modify memory layout */ -#define VHOST_SET_MEM_TABLE	_IOW(VHOST_VIRTIO, 0x03, struct vhost_memory) - -/* Write logging setup. */ -/* Memory writes can optionally be logged by setting bit at an offset - * (calculated from the physical address) from specified log base. - * The bit is set using an atomic 32 bit operation. */ -/* Set base address for logging. */ -#define VHOST_SET_LOG_BASE _IOW(VHOST_VIRTIO, 0x04, __u64) -/* Specify an eventfd file descriptor to signal on log write. */ -#define VHOST_SET_LOG_FD _IOW(VHOST_VIRTIO, 0x07, int) - -/* Ring setup. */ -/* Set number of descriptors in ring. This parameter can not - * be modified while ring is running (bound to a device). */ -#define VHOST_SET_VRING_NUM _IOW(VHOST_VIRTIO, 0x10, struct vhost_vring_state) -/* Set addresses for the ring. */ -#define VHOST_SET_VRING_ADDR _IOW(VHOST_VIRTIO, 0x11, struct vhost_vring_addr) -/* Base value where queue looks for available descriptors */ -#define VHOST_SET_VRING_BASE _IOW(VHOST_VIRTIO, 0x12, struct vhost_vring_state) -/* Get accessor: reads index, writes value in num */ -#define VHOST_GET_VRING_BASE _IOWR(VHOST_VIRTIO, 0x12, struct vhost_vring_state) - -/* The following ioctls use eventfd file descriptors to signal and poll - * for events. */ - -/* Set eventfd to poll for added buffers */ -#define VHOST_SET_VRING_KICK _IOW(VHOST_VIRTIO, 0x20, struct vhost_vring_file) -/* Set eventfd to signal when buffers have beed used */ -#define VHOST_SET_VRING_CALL _IOW(VHOST_VIRTIO, 0x21, struct vhost_vring_file) -/* Set eventfd to signal an error */ -#define VHOST_SET_VRING_ERR _IOW(VHOST_VIRTIO, 0x22, struct vhost_vring_file) - -/* VHOST_NET specific defines */ - -/* Attach virtio net ring to a raw socket, or tap device. - * The socket must be already bound to an ethernet device, this device will be - * used for transmit.  Pass fd -1 to unbind from the socket and the transmit - * device.  This can be used to stop the ring (e.g. for migration). */ -#define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file) - -/* Feature bits */ -/* Log all write descriptors. Can be changed while device is active. */ -#define VHOST_F_LOG_ALL 26 -/* vhost-net should add virtio_net_hdr for RX, and strip for TX packets. */ -#define VHOST_NET_F_VIRTIO_NET_HDR 27 - -#endif diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 873adbe8298..73ea2fb0473 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -56,1945 +56,7 @@  #ifndef __LINUX_VIDEODEV2_H  #define __LINUX_VIDEODEV2_H -#ifdef __KERNEL__  #include <linux/time.h>     /* need struct timeval */ -#else -#include <sys/time.h> -#endif -#include <linux/compiler.h> -#include <linux/ioctl.h> -#include <linux/types.h> -#include <linux/v4l2-common.h> -#include <linux/v4l2-controls.h> - -/* - * Common stuff for both V4L1 and V4L2 - * Moved from videodev.h - */ -#define VIDEO_MAX_FRAME               32 -#define VIDEO_MAX_PLANES               8 - -#ifndef __KERNEL__ - -/* These defines are V4L1 specific and should not be used with the V4L2 API! -   They will be removed from this header in the future. */ - -#define VID_TYPE_CAPTURE	1	/* Can capture */ -#define VID_TYPE_TUNER		2	/* Can tune */ -#define VID_TYPE_TELETEXT	4	/* Does teletext */ -#define VID_TYPE_OVERLAY	8	/* Overlay onto frame buffer */ -#define VID_TYPE_CHROMAKEY	16	/* Overlay by chromakey */ -#define VID_TYPE_CLIPPING	32	/* Can clip */ -#define VID_TYPE_FRAMERAM	64	/* Uses the frame buffer memory */ -#define VID_TYPE_SCALES		128	/* Scalable */ -#define VID_TYPE_MONOCHROME	256	/* Monochrome only */ -#define VID_TYPE_SUBCAPTURE	512	/* Can capture subareas of the image */ -#define VID_TYPE_MPEG_DECODER	1024	/* Can decode MPEG streams */ -#define VID_TYPE_MPEG_ENCODER	2048	/* Can encode MPEG streams */ -#define VID_TYPE_MJPEG_DECODER	4096	/* Can decode MJPEG streams */ -#define VID_TYPE_MJPEG_ENCODER	8192	/* Can encode MJPEG streams */ -#endif - -/* - *	M I S C E L L A N E O U S - */ - -/*  Four-character-code (FOURCC) */ -#define v4l2_fourcc(a, b, c, d)\ -	((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24)) - -/* - *	E N U M S - */ -enum v4l2_field { -	V4L2_FIELD_ANY           = 0, /* driver can choose from none, -					 top, bottom, interlaced -					 depending on whatever it thinks -					 is approximate ... */ -	V4L2_FIELD_NONE          = 1, /* this device has no fields ... */ -	V4L2_FIELD_TOP           = 2, /* top field only */ -	V4L2_FIELD_BOTTOM        = 3, /* bottom field only */ -	V4L2_FIELD_INTERLACED    = 4, /* both fields interlaced */ -	V4L2_FIELD_SEQ_TB        = 5, /* both fields sequential into one -					 buffer, top-bottom order */ -	V4L2_FIELD_SEQ_BT        = 6, /* same as above + bottom-top order */ -	V4L2_FIELD_ALTERNATE     = 7, /* both fields alternating into -					 separate buffers */ -	V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field -					 first and the top field is -					 transmitted first */ -	V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field -					 first and the bottom field is -					 transmitted first */ -}; -#define V4L2_FIELD_HAS_TOP(field)	\ -	((field) == V4L2_FIELD_TOP 	||\ -	 (field) == V4L2_FIELD_INTERLACED ||\ -	 (field) == V4L2_FIELD_INTERLACED_TB ||\ -	 (field) == V4L2_FIELD_INTERLACED_BT ||\ -	 (field) == V4L2_FIELD_SEQ_TB	||\ -	 (field) == V4L2_FIELD_SEQ_BT) -#define V4L2_FIELD_HAS_BOTTOM(field)	\ -	((field) == V4L2_FIELD_BOTTOM 	||\ -	 (field) == V4L2_FIELD_INTERLACED ||\ -	 (field) == V4L2_FIELD_INTERLACED_TB ||\ -	 (field) == V4L2_FIELD_INTERLACED_BT ||\ -	 (field) == V4L2_FIELD_SEQ_TB	||\ -	 (field) == V4L2_FIELD_SEQ_BT) -#define V4L2_FIELD_HAS_BOTH(field)	\ -	((field) == V4L2_FIELD_INTERLACED ||\ -	 (field) == V4L2_FIELD_INTERLACED_TB ||\ -	 (field) == V4L2_FIELD_INTERLACED_BT ||\ -	 (field) == V4L2_FIELD_SEQ_TB ||\ -	 (field) == V4L2_FIELD_SEQ_BT) - -enum v4l2_buf_type { -	V4L2_BUF_TYPE_VIDEO_CAPTURE        = 1, -	V4L2_BUF_TYPE_VIDEO_OUTPUT         = 2, -	V4L2_BUF_TYPE_VIDEO_OVERLAY        = 3, -	V4L2_BUF_TYPE_VBI_CAPTURE          = 4, -	V4L2_BUF_TYPE_VBI_OUTPUT           = 5, -	V4L2_BUF_TYPE_SLICED_VBI_CAPTURE   = 6, -	V4L2_BUF_TYPE_SLICED_VBI_OUTPUT    = 7, -#if 1 -	/* Experimental */ -	V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8, -#endif -	V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, -	V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE  = 10, -	/* Deprecated, do not use */ -	V4L2_BUF_TYPE_PRIVATE              = 0x80, -}; - -#define V4L2_TYPE_IS_MULTIPLANAR(type)			\ -	((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE	\ -	 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) - -#define V4L2_TYPE_IS_OUTPUT(type)				\ -	((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT			\ -	 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE		\ -	 || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY		\ -	 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY	\ -	 || (type) == V4L2_BUF_TYPE_VBI_OUTPUT			\ -	 || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) - -enum v4l2_tuner_type { -	V4L2_TUNER_RADIO	     = 1, -	V4L2_TUNER_ANALOG_TV	     = 2, -	V4L2_TUNER_DIGITAL_TV	     = 3, -}; - -enum v4l2_memory { -	V4L2_MEMORY_MMAP             = 1, -	V4L2_MEMORY_USERPTR          = 2, -	V4L2_MEMORY_OVERLAY          = 3, -}; - -/* see also http://vektor.theorem.ca/graphics/ycbcr/ */ -enum v4l2_colorspace { -	/* ITU-R 601 -- broadcast NTSC/PAL */ -	V4L2_COLORSPACE_SMPTE170M     = 1, - -	/* 1125-Line (US) HDTV */ -	V4L2_COLORSPACE_SMPTE240M     = 2, - -	/* HD and modern captures. */ -	V4L2_COLORSPACE_REC709        = 3, - -	/* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ -	V4L2_COLORSPACE_BT878         = 4, - -	/* These should be useful.  Assume 601 extents. */ -	V4L2_COLORSPACE_470_SYSTEM_M  = 5, -	V4L2_COLORSPACE_470_SYSTEM_BG = 6, - -	/* I know there will be cameras that send this.  So, this is -	 * unspecified chromaticities and full 0-255 on each of the -	 * Y'CbCr components -	 */ -	V4L2_COLORSPACE_JPEG          = 7, - -	/* For RGB colourspaces, this is probably a good start. */ -	V4L2_COLORSPACE_SRGB          = 8, -}; - -enum v4l2_priority { -	V4L2_PRIORITY_UNSET       = 0,  /* not initialized */ -	V4L2_PRIORITY_BACKGROUND  = 1, -	V4L2_PRIORITY_INTERACTIVE = 2, -	V4L2_PRIORITY_RECORD      = 3, -	V4L2_PRIORITY_DEFAULT     = V4L2_PRIORITY_INTERACTIVE, -}; - -struct v4l2_rect { -	__s32   left; -	__s32   top; -	__s32   width; -	__s32   height; -}; - -struct v4l2_fract { -	__u32   numerator; -	__u32   denominator; -}; - -/** -  * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP -  * -  * @driver:	   name of the driver module (e.g. "bttv") -  * @card:	   name of the card (e.g. "Hauppauge WinTV") -  * @bus_info:	   name of the bus (e.g. "PCI:" + pci_name(pci_dev) ) -  * @version:	   KERNEL_VERSION -  * @capabilities: capabilities of the physical device as a whole -  * @device_caps:  capabilities accessed via this particular device (node) -  * @reserved:	   reserved fields for future extensions -  */ -struct v4l2_capability { -	__u8	driver[16]; -	__u8	card[32]; -	__u8	bus_info[32]; -	__u32   version; -	__u32	capabilities; -	__u32	device_caps; -	__u32	reserved[3]; -}; - -/* Values for 'capabilities' field */ -#define V4L2_CAP_VIDEO_CAPTURE		0x00000001  /* Is a video capture device */ -#define V4L2_CAP_VIDEO_OUTPUT		0x00000002  /* Is a video output device */ -#define V4L2_CAP_VIDEO_OVERLAY		0x00000004  /* Can do video overlay */ -#define V4L2_CAP_VBI_CAPTURE		0x00000010  /* Is a raw VBI capture device */ -#define V4L2_CAP_VBI_OUTPUT		0x00000020  /* Is a raw VBI output device */ -#define V4L2_CAP_SLICED_VBI_CAPTURE	0x00000040  /* Is a sliced VBI capture device */ -#define V4L2_CAP_SLICED_VBI_OUTPUT	0x00000080  /* Is a sliced VBI output device */ -#define V4L2_CAP_RDS_CAPTURE		0x00000100  /* RDS data capture */ -#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY	0x00000200  /* Can do video output overlay */ -#define V4L2_CAP_HW_FREQ_SEEK		0x00000400  /* Can do hardware frequency seek  */ -#define V4L2_CAP_RDS_OUTPUT		0x00000800  /* Is an RDS encoder */ - -/* Is a video capture device that supports multiplanar formats */ -#define V4L2_CAP_VIDEO_CAPTURE_MPLANE	0x00001000 -/* Is a video output device that supports multiplanar formats */ -#define V4L2_CAP_VIDEO_OUTPUT_MPLANE	0x00002000 -/* Is a video mem-to-mem device that supports multiplanar formats */ -#define V4L2_CAP_VIDEO_M2M_MPLANE	0x00004000 -/* Is a video mem-to-mem device */ -#define V4L2_CAP_VIDEO_M2M		0x00008000 - -#define V4L2_CAP_TUNER			0x00010000  /* has a tuner */ -#define V4L2_CAP_AUDIO			0x00020000  /* has audio support */ -#define V4L2_CAP_RADIO			0x00040000  /* is a radio device */ -#define V4L2_CAP_MODULATOR		0x00080000  /* has a modulator */ - -#define V4L2_CAP_READWRITE              0x01000000  /* read/write systemcalls */ -#define V4L2_CAP_ASYNCIO                0x02000000  /* async I/O */ -#define V4L2_CAP_STREAMING              0x04000000  /* streaming I/O ioctls */ - -#define V4L2_CAP_DEVICE_CAPS            0x80000000  /* sets device capabilities field */ - -/* - *	V I D E O   I M A G E   F O R M A T - */ -struct v4l2_pix_format { -	__u32         		width; -	__u32			height; -	__u32			pixelformat; -	__u32			field;		/* enum v4l2_field */ -	__u32            	bytesperline;	/* for padding, zero if unused */ -	__u32          		sizeimage; -	__u32			colorspace;	/* enum v4l2_colorspace */ -	__u32			priv;		/* private data, depends on pixelformat */ -}; - -/*      Pixel format         FOURCC                          depth  Description  */ - -/* RGB formats */ -#define V4L2_PIX_FMT_RGB332  v4l2_fourcc('R', 'G', 'B', '1') /*  8  RGB-3-3-2     */ -#define V4L2_PIX_FMT_RGB444  v4l2_fourcc('R', '4', '4', '4') /* 16  xxxxrrrr ggggbbbb */ -#define V4L2_PIX_FMT_RGB555  v4l2_fourcc('R', 'G', 'B', 'O') /* 16  RGB-5-5-5     */ -#define V4L2_PIX_FMT_RGB565  v4l2_fourcc('R', 'G', 'B', 'P') /* 16  RGB-5-6-5     */ -#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16  RGB-5-5-5 BE  */ -#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16  RGB-5-6-5 BE  */ -#define V4L2_PIX_FMT_BGR666  v4l2_fourcc('B', 'G', 'R', 'H') /* 18  BGR-6-6-6	  */ -#define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */ -#define V4L2_PIX_FMT_RGB24   v4l2_fourcc('R', 'G', 'B', '3') /* 24  RGB-8-8-8     */ -#define V4L2_PIX_FMT_BGR32   v4l2_fourcc('B', 'G', 'R', '4') /* 32  BGR-8-8-8-8   */ -#define V4L2_PIX_FMT_RGB32   v4l2_fourcc('R', 'G', 'B', '4') /* 32  RGB-8-8-8-8   */ - -/* Grey formats */ -#define V4L2_PIX_FMT_GREY    v4l2_fourcc('G', 'R', 'E', 'Y') /*  8  Greyscale     */ -#define V4L2_PIX_FMT_Y4      v4l2_fourcc('Y', '0', '4', ' ') /*  4  Greyscale     */ -#define V4L2_PIX_FMT_Y6      v4l2_fourcc('Y', '0', '6', ' ') /*  6  Greyscale     */ -#define V4L2_PIX_FMT_Y10     v4l2_fourcc('Y', '1', '0', ' ') /* 10  Greyscale     */ -#define V4L2_PIX_FMT_Y12     v4l2_fourcc('Y', '1', '2', ' ') /* 12  Greyscale     */ -#define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale     */ - -/* Grey bit-packed formats */ -#define V4L2_PIX_FMT_Y10BPACK    v4l2_fourcc('Y', '1', '0', 'B') /* 10  Greyscale bit-packed */ - -/* Palette formats */ -#define V4L2_PIX_FMT_PAL8    v4l2_fourcc('P', 'A', 'L', '8') /*  8  8-bit palette */ - -/* Luminance+Chrominance formats */ -#define V4L2_PIX_FMT_YVU410  v4l2_fourcc('Y', 'V', 'U', '9') /*  9  YVU 4:1:0     */ -#define V4L2_PIX_FMT_YVU420  v4l2_fourcc('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */ -#define V4L2_PIX_FMT_YUYV    v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */ -#define V4L2_PIX_FMT_YYUV    v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16  YUV 4:2:2     */ -#define V4L2_PIX_FMT_YVYU    v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */ -#define V4L2_PIX_FMT_UYVY    v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16  YUV 4:2:2     */ -#define V4L2_PIX_FMT_VYUY    v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16  YUV 4:2:2     */ -#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16  YVU422 planar */ -#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16  YVU411 planar */ -#define V4L2_PIX_FMT_Y41P    v4l2_fourcc('Y', '4', '1', 'P') /* 12  YUV 4:1:1     */ -#define V4L2_PIX_FMT_YUV444  v4l2_fourcc('Y', '4', '4', '4') /* 16  xxxxyyyy uuuuvvvv */ -#define V4L2_PIX_FMT_YUV555  v4l2_fourcc('Y', 'U', 'V', 'O') /* 16  YUV-5-5-5     */ -#define V4L2_PIX_FMT_YUV565  v4l2_fourcc('Y', 'U', 'V', 'P') /* 16  YUV-5-6-5     */ -#define V4L2_PIX_FMT_YUV32   v4l2_fourcc('Y', 'U', 'V', '4') /* 32  YUV-8-8-8-8   */ -#define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */ -#define V4L2_PIX_FMT_YUV420  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */ -#define V4L2_PIX_FMT_HI240   v4l2_fourcc('H', 'I', '2', '4') /*  8  8-bit color   */ -#define V4L2_PIX_FMT_HM12    v4l2_fourcc('H', 'M', '1', '2') /*  8  YUV 4:2:0 16x16 macroblocks */ -#define V4L2_PIX_FMT_M420    v4l2_fourcc('M', '4', '2', '0') /* 12  YUV 4:2:0 2 lines y, 1 line uv interleaved */ - -/* two planes -- one Y, one Cr + Cb interleaved  */ -#define V4L2_PIX_FMT_NV12    v4l2_fourcc('N', 'V', '1', '2') /* 12  Y/CbCr 4:2:0  */ -#define V4L2_PIX_FMT_NV21    v4l2_fourcc('N', 'V', '2', '1') /* 12  Y/CrCb 4:2:0  */ -#define V4L2_PIX_FMT_NV16    v4l2_fourcc('N', 'V', '1', '6') /* 16  Y/CbCr 4:2:2  */ -#define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 4:2:2  */ -#define V4L2_PIX_FMT_NV24    v4l2_fourcc('N', 'V', '2', '4') /* 24  Y/CbCr 4:4:4  */ -#define V4L2_PIX_FMT_NV42    v4l2_fourcc('N', 'V', '4', '2') /* 24  Y/CrCb 4:4:4  */ - -/* two non contiguous planes - one Y, one Cr + Cb interleaved  */ -#define V4L2_PIX_FMT_NV12M   v4l2_fourcc('N', 'M', '1', '2') /* 12  Y/CbCr 4:2:0  */ -#define V4L2_PIX_FMT_NV21M   v4l2_fourcc('N', 'M', '2', '1') /* 21  Y/CrCb 4:2:0  */ -#define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 macroblocks */ -#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 macroblocks */ - -/* three non contiguous planes - Y, Cb, Cr */ -#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12  YUV420 planar */ -#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12  YVU420 planar */ - -/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ -#define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */ -#define V4L2_PIX_FMT_SGBRG8  v4l2_fourcc('G', 'B', 'R', 'G') /*  8  GBGB.. RGRG.. */ -#define V4L2_PIX_FMT_SGRBG8  v4l2_fourcc('G', 'R', 'B', 'G') /*  8  GRGR.. BGBG.. */ -#define V4L2_PIX_FMT_SRGGB8  v4l2_fourcc('R', 'G', 'G', 'B') /*  8  RGRG.. GBGB.. */ -#define V4L2_PIX_FMT_SBGGR10 v4l2_fourcc('B', 'G', '1', '0') /* 10  BGBG.. GRGR.. */ -#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10  GBGB.. RGRG.. */ -#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10  GRGR.. BGBG.. */ -#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10  RGRG.. GBGB.. */ -#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12  BGBG.. GRGR.. */ -#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12  GBGB.. RGRG.. */ -#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12  GRGR.. BGBG.. */ -#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12  RGRG.. GBGB.. */ -	/* 10bit raw bayer DPCM compressed to 8 bits */ -#define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') -#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') -#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0') -#define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8') -	/* -	 * 10bit raw bayer, expanded to 16 bits -	 * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb... -	 */ -#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16  BGBG.. GRGR.. */ - -/* compressed formats */ -#define V4L2_PIX_FMT_MJPEG    v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG   */ -#define V4L2_PIX_FMT_JPEG     v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG     */ -#define V4L2_PIX_FMT_DV       v4l2_fourcc('d', 'v', 's', 'd') /* 1394          */ -#define V4L2_PIX_FMT_MPEG     v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 Multiplexed */ -#define V4L2_PIX_FMT_H264     v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */ -#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start codes */ -#define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */ -#define V4L2_PIX_FMT_H263     v4l2_fourcc('H', '2', '6', '3') /* H263          */ -#define V4L2_PIX_FMT_MPEG1    v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES     */ -#define V4L2_PIX_FMT_MPEG2    v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES     */ -#define V4L2_PIX_FMT_MPEG4    v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 ES     */ -#define V4L2_PIX_FMT_XVID     v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid           */ -#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ -#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ -#define V4L2_PIX_FMT_VP8      v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ - -/*  Vendor-specific formats   */ -#define V4L2_PIX_FMT_CPIA1    v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ -#define V4L2_PIX_FMT_WNVA     v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ -#define V4L2_PIX_FMT_SN9C10X  v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ -#define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0') /* SN9C20x YUV 4:2:0 */ -#define V4L2_PIX_FMT_PWC1     v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ -#define V4L2_PIX_FMT_PWC2     v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ -#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ -#define V4L2_PIX_FMT_SPCA501  v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */ -#define V4L2_PIX_FMT_SPCA505  v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */ -#define V4L2_PIX_FMT_SPCA508  v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ -#define V4L2_PIX_FMT_SPCA561  v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ -#define V4L2_PIX_FMT_PAC207   v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ -#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ -#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */ -#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */ -#define V4L2_PIX_FMT_SQ905C   v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ -#define V4L2_PIX_FMT_PJPG     v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ -#define V4L2_PIX_FMT_OV511    v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */ -#define V4L2_PIX_FMT_OV518    v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */ -#define V4L2_PIX_FMT_STV0680  v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */ -#define V4L2_PIX_FMT_TM6000   v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */ -#define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */ -#define V4L2_PIX_FMT_KONICA420  v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */ -#define V4L2_PIX_FMT_JPGL	v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ -#define V4L2_PIX_FMT_SE401      v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ -#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ - -/* - *	F O R M A T   E N U M E R A T I O N - */ -struct v4l2_fmtdesc { -	__u32		    index;             /* Format number      */ -	__u32		    type;              /* enum v4l2_buf_type */ -	__u32               flags; -	__u8		    description[32];   /* Description string */ -	__u32		    pixelformat;       /* Format fourcc      */ -	__u32		    reserved[4]; -}; - -#define V4L2_FMT_FLAG_COMPRESSED 0x0001 -#define V4L2_FMT_FLAG_EMULATED   0x0002 - -#if 1 -	/* Experimental Frame Size and frame rate enumeration */ -/* - *	F R A M E   S I Z E   E N U M E R A T I O N - */ -enum v4l2_frmsizetypes { -	V4L2_FRMSIZE_TYPE_DISCRETE	= 1, -	V4L2_FRMSIZE_TYPE_CONTINUOUS	= 2, -	V4L2_FRMSIZE_TYPE_STEPWISE	= 3, -}; - -struct v4l2_frmsize_discrete { -	__u32			width;		/* Frame width [pixel] */ -	__u32			height;		/* Frame height [pixel] */ -}; - -struct v4l2_frmsize_stepwise { -	__u32			min_width;	/* Minimum frame width [pixel] */ -	__u32			max_width;	/* Maximum frame width [pixel] */ -	__u32			step_width;	/* Frame width step size [pixel] */ -	__u32			min_height;	/* Minimum frame height [pixel] */ -	__u32			max_height;	/* Maximum frame height [pixel] */ -	__u32			step_height;	/* Frame height step size [pixel] */ -}; - -struct v4l2_frmsizeenum { -	__u32			index;		/* Frame size number */ -	__u32			pixel_format;	/* Pixel format */ -	__u32			type;		/* Frame size type the device supports. */ - -	union {					/* Frame size */ -		struct v4l2_frmsize_discrete	discrete; -		struct v4l2_frmsize_stepwise	stepwise; -	}; - -	__u32   reserved[2];			/* Reserved space for future use */ -}; - -/* - *	F R A M E   R A T E   E N U M E R A T I O N - */ -enum v4l2_frmivaltypes { -	V4L2_FRMIVAL_TYPE_DISCRETE	= 1, -	V4L2_FRMIVAL_TYPE_CONTINUOUS	= 2, -	V4L2_FRMIVAL_TYPE_STEPWISE	= 3, -}; - -struct v4l2_frmival_stepwise { -	struct v4l2_fract	min;		/* Minimum frame interval [s] */ -	struct v4l2_fract	max;		/* Maximum frame interval [s] */ -	struct v4l2_fract	step;		/* Frame interval step size [s] */ -}; - -struct v4l2_frmivalenum { -	__u32			index;		/* Frame format index */ -	__u32			pixel_format;	/* Pixel format */ -	__u32			width;		/* Frame width */ -	__u32			height;		/* Frame height */ -	__u32			type;		/* Frame interval type the device supports. */ - -	union {					/* Frame interval */ -		struct v4l2_fract		discrete; -		struct v4l2_frmival_stepwise	stepwise; -	}; - -	__u32	reserved[2];			/* Reserved space for future use */ -}; -#endif - -/* - *	T I M E C O D E - */ -struct v4l2_timecode { -	__u32	type; -	__u32	flags; -	__u8	frames; -	__u8	seconds; -	__u8	minutes; -	__u8	hours; -	__u8	userbits[4]; -}; - -/*  Type  */ -#define V4L2_TC_TYPE_24FPS		1 -#define V4L2_TC_TYPE_25FPS		2 -#define V4L2_TC_TYPE_30FPS		3 -#define V4L2_TC_TYPE_50FPS		4 -#define V4L2_TC_TYPE_60FPS		5 - -/*  Flags  */ -#define V4L2_TC_FLAG_DROPFRAME		0x0001 /* "drop-frame" mode */ -#define V4L2_TC_FLAG_COLORFRAME		0x0002 -#define V4L2_TC_USERBITS_field		0x000C -#define V4L2_TC_USERBITS_USERDEFINED	0x0000 -#define V4L2_TC_USERBITS_8BITCHARS	0x0008 -/* The above is based on SMPTE timecodes */ - -struct v4l2_jpegcompression { -	int quality; - -	int  APPn;              /* Number of APP segment to be written, -				 * must be 0..15 */ -	int  APP_len;           /* Length of data in JPEG APPn segment */ -	char APP_data[60];      /* Data in the JPEG APPn segment. */ - -	int  COM_len;           /* Length of data in JPEG COM segment */ -	char COM_data[60];      /* Data in JPEG COM segment */ - -	__u32 jpeg_markers;     /* Which markers should go into the JPEG -				 * output. Unless you exactly know what -				 * you do, leave them untouched. -				 * Inluding less markers will make the -				 * resulting code smaller, but there will -				 * be fewer applications which can read it. -				 * The presence of the APP and COM marker -				 * is influenced by APP_len and COM_len -				 * ONLY, not by this property! */ - -#define V4L2_JPEG_MARKER_DHT (1<<3)    /* Define Huffman Tables */ -#define V4L2_JPEG_MARKER_DQT (1<<4)    /* Define Quantization Tables */ -#define V4L2_JPEG_MARKER_DRI (1<<5)    /* Define Restart Interval */ -#define V4L2_JPEG_MARKER_COM (1<<6)    /* Comment segment */ -#define V4L2_JPEG_MARKER_APP (1<<7)    /* App segment, driver will -					* allways use APP0 */ -}; - -/* - *	M E M O R Y - M A P P I N G   B U F F E R S - */ -struct v4l2_requestbuffers { -	__u32			count; -	__u32			type;		/* enum v4l2_buf_type */ -	__u32			memory;		/* enum v4l2_memory */ -	__u32			reserved[2]; -}; - -/** - * struct v4l2_plane - plane info for multi-planar buffers - * @bytesused:		number of bytes occupied by data in the plane (payload) - * @length:		size of this plane (NOT the payload) in bytes - * @mem_offset:		when memory in the associated struct v4l2_buffer is - *			V4L2_MEMORY_MMAP, equals the offset from the start of - *			the device memory for this plane (or is a "cookie" that - *			should be passed to mmap() called on the video node) - * @userptr:		when memory is V4L2_MEMORY_USERPTR, a userspace pointer - *			pointing to this plane - * @data_offset:	offset in the plane to the start of data; usually 0, - *			unless there is a header in front of the data - * - * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer - * with two planes can have one plane for Y, and another for interleaved CbCr - * components. Each plane can reside in a separate memory buffer, or even in - * a completely separate memory node (e.g. in embedded devices). - */ -struct v4l2_plane { -	__u32			bytesused; -	__u32			length; -	union { -		__u32		mem_offset; -		unsigned long	userptr; -	} m; -	__u32			data_offset; -	__u32			reserved[11]; -}; - -/** - * struct v4l2_buffer - video buffer info - * @index:	id number of the buffer - * @type:	enum v4l2_buf_type; buffer type (type == *_MPLANE for - *		multiplanar buffers); - * @bytesused:	number of bytes occupied by data in the buffer (payload); - *		unused (set to 0) for multiplanar buffers - * @flags:	buffer informational flags - * @field:	enum v4l2_field; field order of the image in the buffer - * @timestamp:	frame timestamp - * @timecode:	frame timecode - * @sequence:	sequence count of this frame - * @memory:	enum v4l2_memory; the method, in which the actual video data is - *		passed - * @offset:	for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP; - *		offset from the start of the device memory for this plane, - *		(or a "cookie" that should be passed to mmap() as offset) - * @userptr:	for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR; - *		a userspace pointer pointing to this buffer - * @planes:	for multiplanar buffers; userspace pointer to the array of plane - *		info structs for this buffer - * @length:	size in bytes of the buffer (NOT its payload) for single-plane - *		buffers (when type != *_MPLANE); number of elements in the - *		planes array for multi-plane buffers - * @input:	input number from which the video data has has been captured - * - * Contains data exchanged by application and driver using one of the Streaming - * I/O methods. - */ -struct v4l2_buffer { -	__u32			index; -	__u32			type; -	__u32			bytesused; -	__u32			flags; -	__u32			field; -	struct timeval		timestamp; -	struct v4l2_timecode	timecode; -	__u32			sequence; - -	/* memory location */ -	__u32			memory; -	union { -		__u32           offset; -		unsigned long   userptr; -		struct v4l2_plane *planes; -	} m; -	__u32			length; -	__u32			reserved2; -	__u32			reserved; -}; - -/*  Flags for 'flags' field */ -#define V4L2_BUF_FLAG_MAPPED	0x0001  /* Buffer is mapped (flag) */ -#define V4L2_BUF_FLAG_QUEUED	0x0002	/* Buffer is queued for processing */ -#define V4L2_BUF_FLAG_DONE	0x0004	/* Buffer is ready */ -#define V4L2_BUF_FLAG_KEYFRAME	0x0008	/* Image is a keyframe (I-frame) */ -#define V4L2_BUF_FLAG_PFRAME	0x0010	/* Image is a P-frame */ -#define V4L2_BUF_FLAG_BFRAME	0x0020	/* Image is a B-frame */ -/* Buffer is ready, but the data contained within is corrupted. */ -#define V4L2_BUF_FLAG_ERROR	0x0040 -#define V4L2_BUF_FLAG_TIMECODE	0x0100	/* timecode field is valid */ -#define V4L2_BUF_FLAG_PREPARED	0x0400	/* Buffer is prepared for queuing */ -/* Cache handling flags */ -#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE	0x0800 -#define V4L2_BUF_FLAG_NO_CACHE_CLEAN		0x1000 - -/* - *	O V E R L A Y   P R E V I E W - */ -struct v4l2_framebuffer { -	__u32			capability; -	__u32			flags; -/* FIXME: in theory we should pass something like PCI device + memory - * region + offset instead of some physical address */ -	void                    *base; -	struct v4l2_pix_format	fmt; -}; -/*  Flags for the 'capability' field. Read only */ -#define V4L2_FBUF_CAP_EXTERNOVERLAY	0x0001 -#define V4L2_FBUF_CAP_CHROMAKEY		0x0002 -#define V4L2_FBUF_CAP_LIST_CLIPPING     0x0004 -#define V4L2_FBUF_CAP_BITMAP_CLIPPING	0x0008 -#define V4L2_FBUF_CAP_LOCAL_ALPHA	0x0010 -#define V4L2_FBUF_CAP_GLOBAL_ALPHA	0x0020 -#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA	0x0040 -#define V4L2_FBUF_CAP_SRC_CHROMAKEY	0x0080 -/*  Flags for the 'flags' field. */ -#define V4L2_FBUF_FLAG_PRIMARY		0x0001 -#define V4L2_FBUF_FLAG_OVERLAY		0x0002 -#define V4L2_FBUF_FLAG_CHROMAKEY	0x0004 -#define V4L2_FBUF_FLAG_LOCAL_ALPHA	0x0008 -#define V4L2_FBUF_FLAG_GLOBAL_ALPHA	0x0010 -#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA	0x0020 -#define V4L2_FBUF_FLAG_SRC_CHROMAKEY	0x0040 - -struct v4l2_clip { -	struct v4l2_rect        c; -	struct v4l2_clip	__user *next; -}; - -struct v4l2_window { -	struct v4l2_rect        w; -	__u32			field;	 /* enum v4l2_field */ -	__u32			chromakey; -	struct v4l2_clip	__user *clips; -	__u32			clipcount; -	void			__user *bitmap; -	__u8                    global_alpha; -}; - -/* - *	C A P T U R E   P A R A M E T E R S - */ -struct v4l2_captureparm { -	__u32		   capability;	  /*  Supported modes */ -	__u32		   capturemode;	  /*  Current mode */ -	struct v4l2_fract  timeperframe;  /*  Time per frame in .1us units */ -	__u32		   extendedmode;  /*  Driver-specific extensions */ -	__u32              readbuffers;   /*  # of buffers for read */ -	__u32		   reserved[4]; -}; - -/*  Flags for 'capability' and 'capturemode' fields */ -#define V4L2_MODE_HIGHQUALITY	0x0001	/*  High quality imaging mode */ -#define V4L2_CAP_TIMEPERFRAME	0x1000	/*  timeperframe field is supported */ - -struct v4l2_outputparm { -	__u32		   capability;	 /*  Supported modes */ -	__u32		   outputmode;	 /*  Current mode */ -	struct v4l2_fract  timeperframe; /*  Time per frame in seconds */ -	__u32		   extendedmode; /*  Driver-specific extensions */ -	__u32              writebuffers; /*  # of buffers for write */ -	__u32		   reserved[4]; -}; - -/* - *	I N P U T   I M A G E   C R O P P I N G - */ -struct v4l2_cropcap { -	__u32			type;	/* enum v4l2_buf_type */ -	struct v4l2_rect        bounds; -	struct v4l2_rect        defrect; -	struct v4l2_fract       pixelaspect; -}; - -struct v4l2_crop { -	__u32			type;	/* enum v4l2_buf_type */ -	struct v4l2_rect        c; -}; - -/** - * struct v4l2_selection - selection info - * @type:	buffer type (do not use *_MPLANE types) - * @target:	Selection target, used to choose one of possible rectangles; - *		defined in v4l2-common.h; V4L2_SEL_TGT_* . - * @flags:	constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. - * @r:		coordinates of selection window - * @reserved:	for future use, rounds structure size to 64 bytes, set to zero - * - * Hardware may use multiple helper windows to process a video stream. - * The structure is used to exchange this selection areas between - * an application and a driver. - */ -struct v4l2_selection { -	__u32			type; -	__u32			target; -	__u32                   flags; -	struct v4l2_rect        r; -	__u32                   reserved[9]; -}; - - -/* - *      A N A L O G   V I D E O   S T A N D A R D - */ - -typedef __u64 v4l2_std_id; - -/* one bit for each */ -#define V4L2_STD_PAL_B          ((v4l2_std_id)0x00000001) -#define V4L2_STD_PAL_B1         ((v4l2_std_id)0x00000002) -#define V4L2_STD_PAL_G          ((v4l2_std_id)0x00000004) -#define V4L2_STD_PAL_H          ((v4l2_std_id)0x00000008) -#define V4L2_STD_PAL_I          ((v4l2_std_id)0x00000010) -#define V4L2_STD_PAL_D          ((v4l2_std_id)0x00000020) -#define V4L2_STD_PAL_D1         ((v4l2_std_id)0x00000040) -#define V4L2_STD_PAL_K          ((v4l2_std_id)0x00000080) - -#define V4L2_STD_PAL_M          ((v4l2_std_id)0x00000100) -#define V4L2_STD_PAL_N          ((v4l2_std_id)0x00000200) -#define V4L2_STD_PAL_Nc         ((v4l2_std_id)0x00000400) -#define V4L2_STD_PAL_60         ((v4l2_std_id)0x00000800) - -#define V4L2_STD_NTSC_M         ((v4l2_std_id)0x00001000)	/* BTSC */ -#define V4L2_STD_NTSC_M_JP      ((v4l2_std_id)0x00002000)	/* EIA-J */ -#define V4L2_STD_NTSC_443       ((v4l2_std_id)0x00004000) -#define V4L2_STD_NTSC_M_KR      ((v4l2_std_id)0x00008000)	/* FM A2 */ - -#define V4L2_STD_SECAM_B        ((v4l2_std_id)0x00010000) -#define V4L2_STD_SECAM_D        ((v4l2_std_id)0x00020000) -#define V4L2_STD_SECAM_G        ((v4l2_std_id)0x00040000) -#define V4L2_STD_SECAM_H        ((v4l2_std_id)0x00080000) -#define V4L2_STD_SECAM_K        ((v4l2_std_id)0x00100000) -#define V4L2_STD_SECAM_K1       ((v4l2_std_id)0x00200000) -#define V4L2_STD_SECAM_L        ((v4l2_std_id)0x00400000) -#define V4L2_STD_SECAM_LC       ((v4l2_std_id)0x00800000) - -/* ATSC/HDTV */ -#define V4L2_STD_ATSC_8_VSB     ((v4l2_std_id)0x01000000) -#define V4L2_STD_ATSC_16_VSB    ((v4l2_std_id)0x02000000) - -/* FIXME: -   Although std_id is 64 bits, there is an issue on PPC32 architecture that -   makes switch(__u64) to break. So, there's a hack on v4l2-common.c rounding -   this value to 32 bits. -   As, currently, the max value is for V4L2_STD_ATSC_16_VSB (30 bits wide), -   it should work fine. However, if needed to add more than two standards, -   v4l2-common.c should be fixed. - */ - -/* - * Some macros to merge video standards in order to make live easier for the - * drivers and V4L2 applications - */ - -/* - * "Common" NTSC/M - It should be noticed that V4L2_STD_NTSC_443 is - * Missing here. - */ -#define V4L2_STD_NTSC           (V4L2_STD_NTSC_M	|\ -				 V4L2_STD_NTSC_M_JP     |\ -				 V4L2_STD_NTSC_M_KR) -/* Secam macros */ -#define V4L2_STD_SECAM_DK      	(V4L2_STD_SECAM_D	|\ -				 V4L2_STD_SECAM_K	|\ -				 V4L2_STD_SECAM_K1) -/* All Secam Standards */ -#define V4L2_STD_SECAM		(V4L2_STD_SECAM_B	|\ -				 V4L2_STD_SECAM_G	|\ -				 V4L2_STD_SECAM_H	|\ -				 V4L2_STD_SECAM_DK	|\ -				 V4L2_STD_SECAM_L       |\ -				 V4L2_STD_SECAM_LC) -/* PAL macros */ -#define V4L2_STD_PAL_BG		(V4L2_STD_PAL_B		|\ -				 V4L2_STD_PAL_B1	|\ -				 V4L2_STD_PAL_G) -#define V4L2_STD_PAL_DK		(V4L2_STD_PAL_D		|\ -				 V4L2_STD_PAL_D1	|\ -				 V4L2_STD_PAL_K) -/* - * "Common" PAL - This macro is there to be compatible with the old - * V4L1 concept of "PAL": /BGDKHI. - * Several PAL standards are mising here: /M, /N and /Nc - */ -#define V4L2_STD_PAL		(V4L2_STD_PAL_BG	|\ -				 V4L2_STD_PAL_DK	|\ -				 V4L2_STD_PAL_H		|\ -				 V4L2_STD_PAL_I) -/* Chroma "agnostic" standards */ -#define V4L2_STD_B		(V4L2_STD_PAL_B		|\ -				 V4L2_STD_PAL_B1	|\ -				 V4L2_STD_SECAM_B) -#define V4L2_STD_G		(V4L2_STD_PAL_G		|\ -				 V4L2_STD_SECAM_G) -#define V4L2_STD_H		(V4L2_STD_PAL_H		|\ -				 V4L2_STD_SECAM_H) -#define V4L2_STD_L		(V4L2_STD_SECAM_L	|\ -				 V4L2_STD_SECAM_LC) -#define V4L2_STD_GH		(V4L2_STD_G		|\ -				 V4L2_STD_H) -#define V4L2_STD_DK		(V4L2_STD_PAL_DK	|\ -				 V4L2_STD_SECAM_DK) -#define V4L2_STD_BG		(V4L2_STD_B		|\ -				 V4L2_STD_G) -#define V4L2_STD_MN		(V4L2_STD_PAL_M		|\ -				 V4L2_STD_PAL_N		|\ -				 V4L2_STD_PAL_Nc	|\ -				 V4L2_STD_NTSC) - -/* Standards where MTS/BTSC stereo could be found */ -#define V4L2_STD_MTS		(V4L2_STD_NTSC_M	|\ -				 V4L2_STD_PAL_M		|\ -				 V4L2_STD_PAL_N		|\ -				 V4L2_STD_PAL_Nc) - -/* Standards for Countries with 60Hz Line frequency */ -#define V4L2_STD_525_60		(V4L2_STD_PAL_M		|\ -				 V4L2_STD_PAL_60	|\ -				 V4L2_STD_NTSC		|\ -				 V4L2_STD_NTSC_443) -/* Standards for Countries with 50Hz Line frequency */ -#define V4L2_STD_625_50		(V4L2_STD_PAL		|\ -				 V4L2_STD_PAL_N		|\ -				 V4L2_STD_PAL_Nc	|\ -				 V4L2_STD_SECAM) - -#define V4L2_STD_ATSC           (V4L2_STD_ATSC_8_VSB    |\ -				 V4L2_STD_ATSC_16_VSB) -/* Macros with none and all analog standards */ -#define V4L2_STD_UNKNOWN        0 -#define V4L2_STD_ALL            (V4L2_STD_525_60	|\ -				 V4L2_STD_625_50) - -struct v4l2_standard { -	__u32		     index; -	v4l2_std_id          id; -	__u8		     name[24]; -	struct v4l2_fract    frameperiod; /* Frames, not fields */ -	__u32		     framelines; -	__u32		     reserved[4]; -}; - -/* The DV Preset API is deprecated in favor of the DV Timings API. -   New drivers shouldn't use this anymore! */ - -/* - *	V I D E O	T I M I N G S	D V	P R E S E T - */ -struct v4l2_dv_preset { -	__u32	preset; -	__u32	reserved[4]; -}; - -/* - *	D V	P R E S E T S	E N U M E R A T I O N - */ -struct v4l2_dv_enum_preset { -	__u32	index; -	__u32	preset; -	__u8	name[32]; /* Name of the preset timing */ -	__u32	width; -	__u32	height; -	__u32	reserved[4]; -}; - -/* - * 	D V	P R E S E T	V A L U E S - */ -#define		V4L2_DV_INVALID		0 -#define		V4L2_DV_480P59_94	1 /* BT.1362 */ -#define		V4L2_DV_576P50		2 /* BT.1362 */ -#define		V4L2_DV_720P24		3 /* SMPTE 296M */ -#define		V4L2_DV_720P25		4 /* SMPTE 296M */ -#define		V4L2_DV_720P30		5 /* SMPTE 296M */ -#define		V4L2_DV_720P50		6 /* SMPTE 296M */ -#define		V4L2_DV_720P59_94	7 /* SMPTE 274M */ -#define		V4L2_DV_720P60		8 /* SMPTE 274M/296M */ -#define		V4L2_DV_1080I29_97	9 /* BT.1120/ SMPTE 274M */ -#define		V4L2_DV_1080I30		10 /* BT.1120/ SMPTE 274M */ -#define		V4L2_DV_1080I25		11 /* BT.1120 */ -#define		V4L2_DV_1080I50		12 /* SMPTE 296M */ -#define		V4L2_DV_1080I60		13 /* SMPTE 296M */ -#define		V4L2_DV_1080P24		14 /* SMPTE 296M */ -#define		V4L2_DV_1080P25		15 /* SMPTE 296M */ -#define		V4L2_DV_1080P30		16 /* SMPTE 296M */ -#define		V4L2_DV_1080P50		17 /* BT.1120 */ -#define		V4L2_DV_1080P60		18 /* BT.1120 */ - -/* - *	D V 	B T	T I M I N G S - */ - -/** struct v4l2_bt_timings - BT.656/BT.1120 timing data - * @width:	total width of the active video in pixels - * @height:	total height of the active video in lines - * @interlaced:	Interlaced or progressive - * @polarities:	Positive or negative polarities - * @pixelclock:	Pixel clock in HZ. Ex. 74.25MHz->74250000 - * @hfrontporch:Horizontal front porch in pixels - * @hsync:	Horizontal Sync length in pixels - * @hbackporch:	Horizontal back porch in pixels - * @vfrontporch:Vertical front porch in lines - * @vsync:	Vertical Sync length in lines - * @vbackporch:	Vertical back porch in lines - * @il_vfrontporch:Vertical front porch for the even field - *		(aka field 2) of interlaced field formats - * @il_vsync:	Vertical Sync length for the even field - *		(aka field 2) of interlaced field formats - * @il_vbackporch:Vertical back porch for the even field - *		(aka field 2) of interlaced field formats - * @standards:	Standards the timing belongs to - * @flags:	Flags - * @reserved:	Reserved fields, must be zeroed. - * - * A note regarding vertical interlaced timings: height refers to the total - * height of the active video frame (= two fields). The blanking timings refer - * to the blanking of each field. So the height of the total frame is - * calculated as follows: - * - * tot_height = height + vfrontporch + vsync + vbackporch + - *                       il_vfrontporch + il_vsync + il_vbackporch - * - * The active height of each field is height / 2. - */ -struct v4l2_bt_timings { -	__u32	width; -	__u32	height; -	__u32	interlaced; -	__u32	polarities; -	__u64	pixelclock; -	__u32	hfrontporch; -	__u32	hsync; -	__u32	hbackporch; -	__u32	vfrontporch; -	__u32	vsync; -	__u32	vbackporch; -	__u32	il_vfrontporch; -	__u32	il_vsync; -	__u32	il_vbackporch; -	__u32	standards; -	__u32	flags; -	__u32	reserved[14]; -} __attribute__ ((packed)); - -/* Interlaced or progressive format */ -#define	V4L2_DV_PROGRESSIVE	0 -#define	V4L2_DV_INTERLACED	1 - -/* Polarities. If bit is not set, it is assumed to be negative polarity */ -#define V4L2_DV_VSYNC_POS_POL	0x00000001 -#define V4L2_DV_HSYNC_POS_POL	0x00000002 - -/* Timings standards */ -#define V4L2_DV_BT_STD_CEA861	(1 << 0)  /* CEA-861 Digital TV Profile */ -#define V4L2_DV_BT_STD_DMT	(1 << 1)  /* VESA Discrete Monitor Timings */ -#define V4L2_DV_BT_STD_CVT	(1 << 2)  /* VESA Coordinated Video Timings */ -#define V4L2_DV_BT_STD_GTF	(1 << 3)  /* VESA Generalized Timings Formula */ - -/* Flags */ - -/* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary -   GTF' curve (GTF). In both cases the horizontal and/or vertical blanking -   intervals are reduced, allowing a higher resolution over the same -   bandwidth. This is a read-only flag. */ -#define V4L2_DV_FL_REDUCED_BLANKING		(1 << 0) -/* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple -   of six. These formats can be optionally played at 1 / 1.001 speed. -   This is a read-only flag. */ -#define V4L2_DV_FL_CAN_REDUCE_FPS		(1 << 1) -/* CEA-861 specific: only valid for video transmitters, the flag is cleared -   by receivers. -   If the framerate of the format is a multiple of six, then the pixelclock -   used to set up the transmitter is divided by 1.001 to make it compatible -   with 60 Hz based standards such as NTSC and PAL-M that use a framerate of -   29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate -   such frequencies, then the flag will also be cleared. */ -#define V4L2_DV_FL_REDUCED_FPS			(1 << 2) -/* Specific to interlaced formats: if set, then field 1 is really one half-line -   longer and field 2 is really one half-line shorter, so each field has -   exactly the same number of half-lines. Whether half-lines can be detected -   or used depends on the hardware. */ -#define V4L2_DV_FL_HALF_LINE			(1 << 0) - - -/** struct v4l2_dv_timings - DV timings - * @type:	the type of the timings - * @bt:	BT656/1120 timings - */ -struct v4l2_dv_timings { -	__u32 type; -	union { -		struct v4l2_bt_timings	bt; -		__u32	reserved[32]; -	}; -} __attribute__ ((packed)); - -/* Values for the type field */ -#define V4L2_DV_BT_656_1120	0	/* BT.656/1120 timing type */ - - -/** struct v4l2_enum_dv_timings - DV timings enumeration - * @index:	enumeration index - * @reserved:	must be zeroed - * @timings:	the timings for the given index - */ -struct v4l2_enum_dv_timings { -	__u32 index; -	__u32 reserved[3]; -	struct v4l2_dv_timings timings; -}; - -/** struct v4l2_bt_timings_cap - BT.656/BT.1120 timing capabilities - * @min_width:		width in pixels - * @max_width:		width in pixels - * @min_height:		height in lines - * @max_height:		height in lines - * @min_pixelclock:	Pixel clock in HZ. Ex. 74.25MHz->74250000 - * @max_pixelclock:	Pixel clock in HZ. Ex. 74.25MHz->74250000 - * @standards:		Supported standards - * @capabilities:	Supported capabilities - * @reserved:		Must be zeroed - */ -struct v4l2_bt_timings_cap { -	__u32	min_width; -	__u32	max_width; -	__u32	min_height; -	__u32	max_height; -	__u64	min_pixelclock; -	__u64	max_pixelclock; -	__u32	standards; -	__u32	capabilities; -	__u32	reserved[16]; -} __attribute__ ((packed)); - -/* Supports interlaced formats */ -#define V4L2_DV_BT_CAP_INTERLACED	(1 << 0) -/* Supports progressive formats */ -#define V4L2_DV_BT_CAP_PROGRESSIVE	(1 << 1) -/* Supports CVT/GTF reduced blanking */ -#define V4L2_DV_BT_CAP_REDUCED_BLANKING	(1 << 2) -/* Supports custom formats */ -#define V4L2_DV_BT_CAP_CUSTOM		(1 << 3) - -/** struct v4l2_dv_timings_cap - DV timings capabilities - * @type:	the type of the timings (same as in struct v4l2_dv_timings) - * @bt:		the BT656/1120 timings capabilities - */ -struct v4l2_dv_timings_cap { -	__u32 type; -	__u32 reserved[3]; -	union { -		struct v4l2_bt_timings_cap bt; -		__u32 raw_data[32]; -	}; -}; - - -/* - *	V I D E O   I N P U T S - */ -struct v4l2_input { -	__u32	     index;		/*  Which input */ -	__u8	     name[32];		/*  Label */ -	__u32	     type;		/*  Type of input */ -	__u32	     audioset;		/*  Associated audios (bitfield) */ -	__u32        tuner;             /*  enum v4l2_tuner_type */ -	v4l2_std_id  std; -	__u32	     status; -	__u32	     capabilities; -	__u32	     reserved[3]; -}; - -/*  Values for the 'type' field */ -#define V4L2_INPUT_TYPE_TUNER		1 -#define V4L2_INPUT_TYPE_CAMERA		2 - -/* field 'status' - general */ -#define V4L2_IN_ST_NO_POWER    0x00000001  /* Attached device is off */ -#define V4L2_IN_ST_NO_SIGNAL   0x00000002 -#define V4L2_IN_ST_NO_COLOR    0x00000004 - -/* field 'status' - sensor orientation */ -/* If sensor is mounted upside down set both bits */ -#define V4L2_IN_ST_HFLIP       0x00000010 /* Frames are flipped horizontally */ -#define V4L2_IN_ST_VFLIP       0x00000020 /* Frames are flipped vertically */ - -/* field 'status' - analog */ -#define V4L2_IN_ST_NO_H_LOCK   0x00000100  /* No horizontal sync lock */ -#define V4L2_IN_ST_COLOR_KILL  0x00000200  /* Color killer is active */ - -/* field 'status' - digital */ -#define V4L2_IN_ST_NO_SYNC     0x00010000  /* No synchronization lock */ -#define V4L2_IN_ST_NO_EQU      0x00020000  /* No equalizer lock */ -#define V4L2_IN_ST_NO_CARRIER  0x00040000  /* Carrier recovery failed */ - -/* field 'status' - VCR and set-top box */ -#define V4L2_IN_ST_MACROVISION 0x01000000  /* Macrovision detected */ -#define V4L2_IN_ST_NO_ACCESS   0x02000000  /* Conditional access denied */ -#define V4L2_IN_ST_VTR         0x04000000  /* VTR time constant */ - -/* capabilities flags */ -#define V4L2_IN_CAP_PRESETS		0x00000001 /* Supports S_DV_PRESET */ -#define V4L2_IN_CAP_DV_TIMINGS		0x00000002 /* Supports S_DV_TIMINGS */ -#define V4L2_IN_CAP_CUSTOM_TIMINGS	V4L2_IN_CAP_DV_TIMINGS /* For compatibility */ -#define V4L2_IN_CAP_STD			0x00000004 /* Supports S_STD */ - -/* - *	V I D E O   O U T P U T S - */ -struct v4l2_output { -	__u32	     index;		/*  Which output */ -	__u8	     name[32];		/*  Label */ -	__u32	     type;		/*  Type of output */ -	__u32	     audioset;		/*  Associated audios (bitfield) */ -	__u32	     modulator;         /*  Associated modulator */ -	v4l2_std_id  std; -	__u32	     capabilities; -	__u32	     reserved[3]; -}; -/*  Values for the 'type' field */ -#define V4L2_OUTPUT_TYPE_MODULATOR		1 -#define V4L2_OUTPUT_TYPE_ANALOG			2 -#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY	3 - -/* capabilities flags */ -#define V4L2_OUT_CAP_PRESETS		0x00000001 /* Supports S_DV_PRESET */ -#define V4L2_OUT_CAP_DV_TIMINGS		0x00000002 /* Supports S_DV_TIMINGS */ -#define V4L2_OUT_CAP_CUSTOM_TIMINGS	V4L2_OUT_CAP_DV_TIMINGS /* For compatibility */ -#define V4L2_OUT_CAP_STD		0x00000004 /* Supports S_STD */ - -/* - *	C O N T R O L S - */ -struct v4l2_control { -	__u32		     id; -	__s32		     value; -}; - -struct v4l2_ext_control { -	__u32 id; -	__u32 size; -	__u32 reserved2[1]; -	union { -		__s32 value; -		__s64 value64; -		char *string; -	}; -} __attribute__ ((packed)); - -struct v4l2_ext_controls { -	__u32 ctrl_class; -	__u32 count; -	__u32 error_idx; -	__u32 reserved[2]; -	struct v4l2_ext_control *controls; -}; - -#define V4L2_CTRL_ID_MASK      	  (0x0fffffff) -#define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL) -#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) - -enum v4l2_ctrl_type { -	V4L2_CTRL_TYPE_INTEGER	     = 1, -	V4L2_CTRL_TYPE_BOOLEAN	     = 2, -	V4L2_CTRL_TYPE_MENU	     = 3, -	V4L2_CTRL_TYPE_BUTTON	     = 4, -	V4L2_CTRL_TYPE_INTEGER64     = 5, -	V4L2_CTRL_TYPE_CTRL_CLASS    = 6, -	V4L2_CTRL_TYPE_STRING        = 7, -	V4L2_CTRL_TYPE_BITMASK       = 8, -	V4L2_CTRL_TYPE_INTEGER_MENU = 9, -}; - -/*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ -struct v4l2_queryctrl { -	__u32		     id; -	__u32		     type;	/* enum v4l2_ctrl_type */ -	__u8		     name[32];	/* Whatever */ -	__s32		     minimum;	/* Note signedness */ -	__s32		     maximum; -	__s32		     step; -	__s32		     default_value; -	__u32                flags; -	__u32		     reserved[2]; -}; - -/*  Used in the VIDIOC_QUERYMENU ioctl for querying menu items */ -struct v4l2_querymenu { -	__u32		id; -	__u32		index; -	union { -		__u8	name[32];	/* Whatever */ -		__s64	value; -	}; -	__u32		reserved; -} __attribute__ ((packed)); - -/*  Control flags  */ -#define V4L2_CTRL_FLAG_DISABLED		0x0001 -#define V4L2_CTRL_FLAG_GRABBED		0x0002 -#define V4L2_CTRL_FLAG_READ_ONLY 	0x0004 -#define V4L2_CTRL_FLAG_UPDATE 		0x0008 -#define V4L2_CTRL_FLAG_INACTIVE 	0x0010 -#define V4L2_CTRL_FLAG_SLIDER 		0x0020 -#define V4L2_CTRL_FLAG_WRITE_ONLY 	0x0040 -#define V4L2_CTRL_FLAG_VOLATILE		0x0080 - -/*  Query flag, to be ORed with the control ID */ -#define V4L2_CTRL_FLAG_NEXT_CTRL	0x80000000 - -/*  User-class control IDs defined by V4L2 */ -#define V4L2_CID_MAX_CTRLS		1024 -/*  IDs reserved for driver specific controls */ -#define V4L2_CID_PRIVATE_BASE		0x08000000 - - -/*  DV-class control IDs defined by V4L2 */ -#define V4L2_CID_DV_CLASS_BASE			(V4L2_CTRL_CLASS_DV | 0x900) -#define V4L2_CID_DV_CLASS			(V4L2_CTRL_CLASS_DV | 1) - -#define	V4L2_CID_DV_TX_HOTPLUG			(V4L2_CID_DV_CLASS_BASE + 1) -#define	V4L2_CID_DV_TX_RXSENSE			(V4L2_CID_DV_CLASS_BASE + 2) -#define	V4L2_CID_DV_TX_EDID_PRESENT		(V4L2_CID_DV_CLASS_BASE + 3) -#define	V4L2_CID_DV_TX_MODE			(V4L2_CID_DV_CLASS_BASE + 4) -enum v4l2_dv_tx_mode { -	V4L2_DV_TX_MODE_DVI_D	= 0, -	V4L2_DV_TX_MODE_HDMI	= 1, -}; -#define V4L2_CID_DV_TX_RGB_RANGE		(V4L2_CID_DV_CLASS_BASE + 5) -enum v4l2_dv_rgb_range { -	V4L2_DV_RGB_RANGE_AUTO	  = 0, -	V4L2_DV_RGB_RANGE_LIMITED = 1, -	V4L2_DV_RGB_RANGE_FULL	  = 2, -}; - -#define	V4L2_CID_DV_RX_POWER_PRESENT		(V4L2_CID_DV_CLASS_BASE + 100) -#define V4L2_CID_DV_RX_RGB_RANGE		(V4L2_CID_DV_CLASS_BASE + 101) - -/* - *	T U N I N G - */ -struct v4l2_tuner { -	__u32                   index; -	__u8			name[32]; -	__u32			type;	/* enum v4l2_tuner_type */ -	__u32			capability; -	__u32			rangelow; -	__u32			rangehigh; -	__u32			rxsubchans; -	__u32			audmode; -	__s32			signal; -	__s32			afc; -	__u32			reserved[4]; -}; - -struct v4l2_modulator { -	__u32			index; -	__u8			name[32]; -	__u32			capability; -	__u32			rangelow; -	__u32			rangehigh; -	__u32			txsubchans; -	__u32			reserved[4]; -}; - -/*  Flags for the 'capability' field */ -#define V4L2_TUNER_CAP_LOW		0x0001 -#define V4L2_TUNER_CAP_NORM		0x0002 -#define V4L2_TUNER_CAP_HWSEEK_BOUNDED	0x0004 -#define V4L2_TUNER_CAP_HWSEEK_WRAP	0x0008 -#define V4L2_TUNER_CAP_STEREO		0x0010 -#define V4L2_TUNER_CAP_LANG2		0x0020 -#define V4L2_TUNER_CAP_SAP		0x0020 -#define V4L2_TUNER_CAP_LANG1		0x0040 -#define V4L2_TUNER_CAP_RDS		0x0080 -#define V4L2_TUNER_CAP_RDS_BLOCK_IO	0x0100 -#define V4L2_TUNER_CAP_RDS_CONTROLS	0x0200 -#define V4L2_TUNER_CAP_FREQ_BANDS	0x0400 -#define V4L2_TUNER_CAP_HWSEEK_PROG_LIM	0x0800 - -/*  Flags for the 'rxsubchans' field */ -#define V4L2_TUNER_SUB_MONO		0x0001 -#define V4L2_TUNER_SUB_STEREO		0x0002 -#define V4L2_TUNER_SUB_LANG2		0x0004 -#define V4L2_TUNER_SUB_SAP		0x0004 -#define V4L2_TUNER_SUB_LANG1		0x0008 -#define V4L2_TUNER_SUB_RDS		0x0010 - -/*  Values for the 'audmode' field */ -#define V4L2_TUNER_MODE_MONO		0x0000 -#define V4L2_TUNER_MODE_STEREO		0x0001 -#define V4L2_TUNER_MODE_LANG2		0x0002 -#define V4L2_TUNER_MODE_SAP		0x0002 -#define V4L2_TUNER_MODE_LANG1		0x0003 -#define V4L2_TUNER_MODE_LANG1_LANG2	0x0004 - -struct v4l2_frequency { -	__u32	tuner; -	__u32	type;	/* enum v4l2_tuner_type */ -	__u32	frequency; -	__u32	reserved[8]; -}; - -#define V4L2_BAND_MODULATION_VSB	(1 << 1) -#define V4L2_BAND_MODULATION_FM		(1 << 2) -#define V4L2_BAND_MODULATION_AM		(1 << 3) - -struct v4l2_frequency_band { -	__u32	tuner; -	__u32	type;	/* enum v4l2_tuner_type */ -	__u32	index; -	__u32	capability; -	__u32	rangelow; -	__u32	rangehigh; -	__u32	modulation; -	__u32	reserved[9]; -}; - -struct v4l2_hw_freq_seek { -	__u32	tuner; -	__u32	type;	/* enum v4l2_tuner_type */ -	__u32	seek_upward; -	__u32	wrap_around; -	__u32	spacing; -	__u32	rangelow; -	__u32	rangehigh; -	__u32	reserved[5]; -}; - -/* - *	R D S - */ - -struct v4l2_rds_data { -	__u8 	lsb; -	__u8 	msb; -	__u8 	block; -} __attribute__ ((packed)); - -#define V4L2_RDS_BLOCK_MSK 	 0x7 -#define V4L2_RDS_BLOCK_A 	 0 -#define V4L2_RDS_BLOCK_B 	 1 -#define V4L2_RDS_BLOCK_C 	 2 -#define V4L2_RDS_BLOCK_D 	 3 -#define V4L2_RDS_BLOCK_C_ALT 	 4 -#define V4L2_RDS_BLOCK_INVALID 	 7 - -#define V4L2_RDS_BLOCK_CORRECTED 0x40 -#define V4L2_RDS_BLOCK_ERROR 	 0x80 - -/* - *	A U D I O - */ -struct v4l2_audio { -	__u32	index; -	__u8	name[32]; -	__u32	capability; -	__u32	mode; -	__u32	reserved[2]; -}; - -/*  Flags for the 'capability' field */ -#define V4L2_AUDCAP_STEREO		0x00001 -#define V4L2_AUDCAP_AVL			0x00002 - -/*  Flags for the 'mode' field */ -#define V4L2_AUDMODE_AVL		0x00001 - -struct v4l2_audioout { -	__u32	index; -	__u8	name[32]; -	__u32	capability; -	__u32	mode; -	__u32	reserved[2]; -}; - -/* - *	M P E G   S E R V I C E S - * - *	NOTE: EXPERIMENTAL API - */ -#if 1 -#define V4L2_ENC_IDX_FRAME_I    (0) -#define V4L2_ENC_IDX_FRAME_P    (1) -#define V4L2_ENC_IDX_FRAME_B    (2) -#define V4L2_ENC_IDX_FRAME_MASK (0xf) - -struct v4l2_enc_idx_entry { -	__u64 offset; -	__u64 pts; -	__u32 length; -	__u32 flags; -	__u32 reserved[2]; -}; - -#define V4L2_ENC_IDX_ENTRIES (64) -struct v4l2_enc_idx { -	__u32 entries; -	__u32 entries_cap; -	__u32 reserved[4]; -	struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES]; -}; - - -#define V4L2_ENC_CMD_START      (0) -#define V4L2_ENC_CMD_STOP       (1) -#define V4L2_ENC_CMD_PAUSE      (2) -#define V4L2_ENC_CMD_RESUME     (3) - -/* Flags for V4L2_ENC_CMD_STOP */ -#define V4L2_ENC_CMD_STOP_AT_GOP_END    (1 << 0) - -struct v4l2_encoder_cmd { -	__u32 cmd; -	__u32 flags; -	union { -		struct { -			__u32 data[8]; -		} raw; -	}; -}; - -/* Decoder commands */ -#define V4L2_DEC_CMD_START       (0) -#define V4L2_DEC_CMD_STOP        (1) -#define V4L2_DEC_CMD_PAUSE       (2) -#define V4L2_DEC_CMD_RESUME      (3) - -/* Flags for V4L2_DEC_CMD_START */ -#define V4L2_DEC_CMD_START_MUTE_AUDIO	(1 << 0) - -/* Flags for V4L2_DEC_CMD_PAUSE */ -#define V4L2_DEC_CMD_PAUSE_TO_BLACK	(1 << 0) - -/* Flags for V4L2_DEC_CMD_STOP */ -#define V4L2_DEC_CMD_STOP_TO_BLACK	(1 << 0) -#define V4L2_DEC_CMD_STOP_IMMEDIATELY	(1 << 1) - -/* Play format requirements (returned by the driver): */ - -/* The decoder has no special format requirements */ -#define V4L2_DEC_START_FMT_NONE		(0) -/* The decoder requires full GOPs */ -#define V4L2_DEC_START_FMT_GOP		(1) - -/* The structure must be zeroed before use by the application -   This ensures it can be extended safely in the future. */ -struct v4l2_decoder_cmd { -	__u32 cmd; -	__u32 flags; -	union { -		struct { -			__u64 pts; -		} stop; - -		struct { -			/* 0 or 1000 specifies normal speed, -			   1 specifies forward single stepping, -			   -1 specifies backward single stepping, -			   >1: playback at speed/1000 of the normal speed, -			   <-1: reverse playback at (-speed/1000) of the normal speed. */ -			__s32 speed; -			__u32 format; -		} start; - -		struct { -			__u32 data[16]; -		} raw; -	}; -}; -#endif - - -/* - *	D A T A   S E R V I C E S   ( V B I ) - * - *	Data services API by Michael Schimek - */ - -/* Raw VBI */ -struct v4l2_vbi_format { -	__u32	sampling_rate;		/* in 1 Hz */ -	__u32	offset; -	__u32	samples_per_line; -	__u32	sample_format;		/* V4L2_PIX_FMT_* */ -	__s32	start[2]; -	__u32	count[2]; -	__u32	flags;			/* V4L2_VBI_* */ -	__u32	reserved[2];		/* must be zero */ -}; - -/*  VBI flags  */ -#define V4L2_VBI_UNSYNC		(1 << 0) -#define V4L2_VBI_INTERLACED	(1 << 1) - -/* Sliced VBI - * - *    This implements is a proposal V4L2 API to allow SLICED VBI - * required for some hardware encoders. It should change without - * notice in the definitive implementation. - */ - -struct v4l2_sliced_vbi_format { -	__u16   service_set; -	/* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field -	   service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field -				 (equals frame lines 313-336 for 625 line video -				  standards, 263-286 for 525 line standards) */ -	__u16   service_lines[2][24]; -	__u32   io_size; -	__u32   reserved[2];            /* must be zero */ -}; - -/* Teletext World System Teletext -   (WST), defined on ITU-R BT.653-2 */ -#define V4L2_SLICED_TELETEXT_B          (0x0001) -/* Video Program System, defined on ETS 300 231*/ -#define V4L2_SLICED_VPS                 (0x0400) -/* Closed Caption, defined on EIA-608 */ -#define V4L2_SLICED_CAPTION_525         (0x1000) -/* Wide Screen System, defined on ITU-R BT1119.1 */ -#define V4L2_SLICED_WSS_625             (0x4000) - -#define V4L2_SLICED_VBI_525             (V4L2_SLICED_CAPTION_525) -#define V4L2_SLICED_VBI_625             (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) - -struct v4l2_sliced_vbi_cap { -	__u16   service_set; -	/* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field -	   service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field -				 (equals frame lines 313-336 for 625 line video -				  standards, 263-286 for 525 line standards) */ -	__u16   service_lines[2][24]; -	__u32	type;		/* enum v4l2_buf_type */ -	__u32   reserved[3];    /* must be 0 */ -}; - -struct v4l2_sliced_vbi_data { -	__u32   id; -	__u32   field;          /* 0: first field, 1: second field */ -	__u32   line;           /* 1-23 */ -	__u32   reserved;       /* must be 0 */ -	__u8    data[48]; -}; - -/* - * Sliced VBI data inserted into MPEG Streams - */ - -/* - * V4L2_MPEG_STREAM_VBI_FMT_IVTV: - * - * Structure of payload contained in an MPEG 2 Private Stream 1 PES Packet in an - * MPEG-2 Program Pack that contains V4L2_MPEG_STREAM_VBI_FMT_IVTV Sliced VBI - * data - * - * Note, the MPEG-2 Program Pack and Private Stream 1 PES packet header - * definitions are not included here.  See the MPEG-2 specifications for details - * on these headers. - */ - -/* Line type IDs */ -#define V4L2_MPEG_VBI_IVTV_TELETEXT_B     (1) -#define V4L2_MPEG_VBI_IVTV_CAPTION_525    (4) -#define V4L2_MPEG_VBI_IVTV_WSS_625        (5) -#define V4L2_MPEG_VBI_IVTV_VPS            (7) - -struct v4l2_mpeg_vbi_itv0_line { -	__u8 id;	/* One of V4L2_MPEG_VBI_IVTV_* above */ -	__u8 data[42];	/* Sliced VBI data for the line */ -} __attribute__ ((packed)); - -struct v4l2_mpeg_vbi_itv0 { -	__le32 linemask[2]; /* Bitmasks of VBI service lines present */ -	struct v4l2_mpeg_vbi_itv0_line line[35]; -} __attribute__ ((packed)); - -struct v4l2_mpeg_vbi_ITV0 { -	struct v4l2_mpeg_vbi_itv0_line line[36]; -} __attribute__ ((packed)); - -#define V4L2_MPEG_VBI_IVTV_MAGIC0	"itv0" -#define V4L2_MPEG_VBI_IVTV_MAGIC1	"ITV0" - -struct v4l2_mpeg_vbi_fmt_ivtv { -	__u8 magic[4]; -	union { -		struct v4l2_mpeg_vbi_itv0 itv0; -		struct v4l2_mpeg_vbi_ITV0 ITV0; -	}; -} __attribute__ ((packed)); - -/* - *	A G G R E G A T E   S T R U C T U R E S - */ - -/** - * struct v4l2_plane_pix_format - additional, per-plane format definition - * @sizeimage:		maximum size in bytes required for data, for which - *			this plane will be used - * @bytesperline:	distance in bytes between the leftmost pixels in two - *			adjacent lines - */ -struct v4l2_plane_pix_format { -	__u32		sizeimage; -	__u16		bytesperline; -	__u16		reserved[7]; -} __attribute__ ((packed)); - -/** - * struct v4l2_pix_format_mplane - multiplanar format definition - * @width:		image width in pixels - * @height:		image height in pixels - * @pixelformat:	little endian four character code (fourcc) - * @field:		enum v4l2_field; field order (for interlaced video) - * @colorspace:		enum v4l2_colorspace; supplemental to pixelformat - * @plane_fmt:		per-plane information - * @num_planes:		number of planes for this format - */ -struct v4l2_pix_format_mplane { -	__u32				width; -	__u32				height; -	__u32				pixelformat; -	__u32				field; -	__u32				colorspace; - -	struct v4l2_plane_pix_format	plane_fmt[VIDEO_MAX_PLANES]; -	__u8				num_planes; -	__u8				reserved[11]; -} __attribute__ ((packed)); - -/** - * struct v4l2_format - stream data format - * @type:	enum v4l2_buf_type; type of the data stream - * @pix:	definition of an image format - * @pix_mp:	definition of a multiplanar image format - * @win:	definition of an overlaid image - * @vbi:	raw VBI capture or output parameters - * @sliced:	sliced VBI capture or output parameters - * @raw_data:	placeholder for future extensions and custom formats - */ -struct v4l2_format { -	__u32	 type; -	union { -		struct v4l2_pix_format		pix;     /* V4L2_BUF_TYPE_VIDEO_CAPTURE */ -		struct v4l2_pix_format_mplane	pix_mp;  /* V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE */ -		struct v4l2_window		win;     /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ -		struct v4l2_vbi_format		vbi;     /* V4L2_BUF_TYPE_VBI_CAPTURE */ -		struct v4l2_sliced_vbi_format	sliced;  /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ -		__u8	raw_data[200];                   /* user-defined */ -	} fmt; -}; - -/*	Stream type-dependent parameters - */ -struct v4l2_streamparm { -	__u32	 type;			/* enum v4l2_buf_type */ -	union { -		struct v4l2_captureparm	capture; -		struct v4l2_outputparm	output; -		__u8	raw_data[200];  /* user-defined */ -	} parm; -}; - -/* - *	E V E N T S - */ - -#define V4L2_EVENT_ALL				0 -#define V4L2_EVENT_VSYNC			1 -#define V4L2_EVENT_EOS				2 -#define V4L2_EVENT_CTRL				3 -#define V4L2_EVENT_FRAME_SYNC			4 -#define V4L2_EVENT_PRIVATE_START		0x08000000 - -/* Payload for V4L2_EVENT_VSYNC */ -struct v4l2_event_vsync { -	/* Can be V4L2_FIELD_ANY, _NONE, _TOP or _BOTTOM */ -	__u8 field; -} __attribute__ ((packed)); - -/* Payload for V4L2_EVENT_CTRL */ -#define V4L2_EVENT_CTRL_CH_VALUE		(1 << 0) -#define V4L2_EVENT_CTRL_CH_FLAGS		(1 << 1) - -struct v4l2_event_ctrl { -	__u32 changes; -	__u32 type; -	union { -		__s32 value; -		__s64 value64; -	}; -	__u32 flags; -	__s32 minimum; -	__s32 maximum; -	__s32 step; -	__s32 default_value; -}; - -struct v4l2_event_frame_sync { -	__u32 frame_sequence; -}; - -struct v4l2_event { -	__u32				type; -	union { -		struct v4l2_event_vsync		vsync; -		struct v4l2_event_ctrl		ctrl; -		struct v4l2_event_frame_sync	frame_sync; -		__u8				data[64]; -	} u; -	__u32				pending; -	__u32				sequence; -	struct timespec			timestamp; -	__u32				id; -	__u32				reserved[8]; -}; - -#define V4L2_EVENT_SUB_FL_SEND_INITIAL		(1 << 0) -#define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK	(1 << 1) - -struct v4l2_event_subscription { -	__u32				type; -	__u32				id; -	__u32				flags; -	__u32				reserved[5]; -}; - -/* - *	A D V A N C E D   D E B U G G I N G - * - *	NOTE: EXPERIMENTAL API, NEVER RELY ON THIS IN APPLICATIONS! - *	FOR DEBUGGING, TESTING AND INTERNAL USE ONLY! - */ - -/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */ - -#define V4L2_CHIP_MATCH_HOST       0  /* Match against chip ID on host (0 for the host) */ -#define V4L2_CHIP_MATCH_I2C_DRIVER 1  /* Match against I2C driver name */ -#define V4L2_CHIP_MATCH_I2C_ADDR   2  /* Match against I2C 7-bit address */ -#define V4L2_CHIP_MATCH_AC97       3  /* Match against anciliary AC97 chip */ - -struct v4l2_dbg_match { -	__u32 type; /* Match type */ -	union {     /* Match this chip, meaning determined by type */ -		__u32 addr; -		char name[32]; -	}; -} __attribute__ ((packed)); - -struct v4l2_dbg_register { -	struct v4l2_dbg_match match; -	__u32 size;	/* register size in bytes */ -	__u64 reg; -	__u64 val; -} __attribute__ ((packed)); - -/* VIDIOC_DBG_G_CHIP_IDENT */ -struct v4l2_dbg_chip_ident { -	struct v4l2_dbg_match match; -	__u32 ident;       /* chip identifier as specified in <media/v4l2-chip-ident.h> */ -	__u32 revision;    /* chip revision, chip specific */ -} __attribute__ ((packed)); - -/** - * struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument - * @index:	on return, index of the first created buffer - * @count:	entry: number of requested buffers, - *		return: number of created buffers - * @memory:	enum v4l2_memory; buffer memory type - * @format:	frame format, for which buffers are requested - * @reserved:	future extensions - */ -struct v4l2_create_buffers { -	__u32			index; -	__u32			count; -	__u32			memory; -	struct v4l2_format	format; -	__u32			reserved[8]; -}; - -/* - *	I O C T L   C O D E S   F O R   V I D E O   D E V I C E S - * - */ -#define VIDIOC_QUERYCAP		 _IOR('V',  0, struct v4l2_capability) -#define VIDIOC_RESERVED		  _IO('V',  1) -#define VIDIOC_ENUM_FMT         _IOWR('V',  2, struct v4l2_fmtdesc) -#define VIDIOC_G_FMT		_IOWR('V',  4, struct v4l2_format) -#define VIDIOC_S_FMT		_IOWR('V',  5, struct v4l2_format) -#define VIDIOC_REQBUFS		_IOWR('V',  8, struct v4l2_requestbuffers) -#define VIDIOC_QUERYBUF		_IOWR('V',  9, struct v4l2_buffer) -#define VIDIOC_G_FBUF		 _IOR('V', 10, struct v4l2_framebuffer) -#define VIDIOC_S_FBUF		 _IOW('V', 11, struct v4l2_framebuffer) -#define VIDIOC_OVERLAY		 _IOW('V', 14, int) -#define VIDIOC_QBUF		_IOWR('V', 15, struct v4l2_buffer) -#define VIDIOC_DQBUF		_IOWR('V', 17, struct v4l2_buffer) -#define VIDIOC_STREAMON		 _IOW('V', 18, int) -#define VIDIOC_STREAMOFF	 _IOW('V', 19, int) -#define VIDIOC_G_PARM		_IOWR('V', 21, struct v4l2_streamparm) -#define VIDIOC_S_PARM		_IOWR('V', 22, struct v4l2_streamparm) -#define VIDIOC_G_STD		 _IOR('V', 23, v4l2_std_id) -#define VIDIOC_S_STD		 _IOW('V', 24, v4l2_std_id) -#define VIDIOC_ENUMSTD		_IOWR('V', 25, struct v4l2_standard) -#define VIDIOC_ENUMINPUT	_IOWR('V', 26, struct v4l2_input) -#define VIDIOC_G_CTRL		_IOWR('V', 27, struct v4l2_control) -#define VIDIOC_S_CTRL		_IOWR('V', 28, struct v4l2_control) -#define VIDIOC_G_TUNER		_IOWR('V', 29, struct v4l2_tuner) -#define VIDIOC_S_TUNER		 _IOW('V', 30, struct v4l2_tuner) -#define VIDIOC_G_AUDIO		 _IOR('V', 33, struct v4l2_audio) -#define VIDIOC_S_AUDIO		 _IOW('V', 34, struct v4l2_audio) -#define VIDIOC_QUERYCTRL	_IOWR('V', 36, struct v4l2_queryctrl) -#define VIDIOC_QUERYMENU	_IOWR('V', 37, struct v4l2_querymenu) -#define VIDIOC_G_INPUT		 _IOR('V', 38, int) -#define VIDIOC_S_INPUT		_IOWR('V', 39, int) -#define VIDIOC_G_OUTPUT		 _IOR('V', 46, int) -#define VIDIOC_S_OUTPUT		_IOWR('V', 47, int) -#define VIDIOC_ENUMOUTPUT	_IOWR('V', 48, struct v4l2_output) -#define VIDIOC_G_AUDOUT		 _IOR('V', 49, struct v4l2_audioout) -#define VIDIOC_S_AUDOUT		 _IOW('V', 50, struct v4l2_audioout) -#define VIDIOC_G_MODULATOR	_IOWR('V', 54, struct v4l2_modulator) -#define VIDIOC_S_MODULATOR	 _IOW('V', 55, struct v4l2_modulator) -#define VIDIOC_G_FREQUENCY	_IOWR('V', 56, struct v4l2_frequency) -#define VIDIOC_S_FREQUENCY	 _IOW('V', 57, struct v4l2_frequency) -#define VIDIOC_CROPCAP		_IOWR('V', 58, struct v4l2_cropcap) -#define VIDIOC_G_CROP		_IOWR('V', 59, struct v4l2_crop) -#define VIDIOC_S_CROP		 _IOW('V', 60, struct v4l2_crop) -#define VIDIOC_G_JPEGCOMP	 _IOR('V', 61, struct v4l2_jpegcompression) -#define VIDIOC_S_JPEGCOMP	 _IOW('V', 62, struct v4l2_jpegcompression) -#define VIDIOC_QUERYSTD      	 _IOR('V', 63, v4l2_std_id) -#define VIDIOC_TRY_FMT      	_IOWR('V', 64, struct v4l2_format) -#define VIDIOC_ENUMAUDIO	_IOWR('V', 65, struct v4l2_audio) -#define VIDIOC_ENUMAUDOUT	_IOWR('V', 66, struct v4l2_audioout) -#define VIDIOC_G_PRIORITY	 _IOR('V', 67, __u32) /* enum v4l2_priority */ -#define VIDIOC_S_PRIORITY	 _IOW('V', 68, __u32) /* enum v4l2_priority */ -#define VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct v4l2_sliced_vbi_cap) -#define VIDIOC_LOG_STATUS         _IO('V', 70) -#define VIDIOC_G_EXT_CTRLS	_IOWR('V', 71, struct v4l2_ext_controls) -#define VIDIOC_S_EXT_CTRLS	_IOWR('V', 72, struct v4l2_ext_controls) -#define VIDIOC_TRY_EXT_CTRLS	_IOWR('V', 73, struct v4l2_ext_controls) -#if 1 -#define VIDIOC_ENUM_FRAMESIZES	_IOWR('V', 74, struct v4l2_frmsizeenum) -#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum) -#define VIDIOC_G_ENC_INDEX       _IOR('V', 76, struct v4l2_enc_idx) -#define VIDIOC_ENCODER_CMD      _IOWR('V', 77, struct v4l2_encoder_cmd) -#define VIDIOC_TRY_ENCODER_CMD  _IOWR('V', 78, struct v4l2_encoder_cmd) -#endif - -#if 1 -/* Experimental, meant for debugging, testing and internal use. -   Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined. -   You must be root to use these ioctls. Never use these in applications! */ -#define	VIDIOC_DBG_S_REGISTER 	 _IOW('V', 79, struct v4l2_dbg_register) -#define	VIDIOC_DBG_G_REGISTER 	_IOWR('V', 80, struct v4l2_dbg_register) - -/* Experimental, meant for debugging, testing and internal use. -   Never use this ioctl in applications! */ -#define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident) -#endif - -#define VIDIOC_S_HW_FREQ_SEEK	 _IOW('V', 82, struct v4l2_hw_freq_seek) - -/* These four DV Preset ioctls are deprecated in favor of the DV Timings -   ioctls. */ -#define	VIDIOC_ENUM_DV_PRESETS	_IOWR('V', 83, struct v4l2_dv_enum_preset) -#define	VIDIOC_S_DV_PRESET	_IOWR('V', 84, struct v4l2_dv_preset) -#define	VIDIOC_G_DV_PRESET	_IOWR('V', 85, struct v4l2_dv_preset) -#define	VIDIOC_QUERY_DV_PRESET	_IOR('V',  86, struct v4l2_dv_preset) -#define	VIDIOC_S_DV_TIMINGS	_IOWR('V', 87, struct v4l2_dv_timings) -#define	VIDIOC_G_DV_TIMINGS	_IOWR('V', 88, struct v4l2_dv_timings) -#define	VIDIOC_DQEVENT		 _IOR('V', 89, struct v4l2_event) -#define	VIDIOC_SUBSCRIBE_EVENT	 _IOW('V', 90, struct v4l2_event_subscription) -#define	VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) - -/* Experimental, the below two ioctls may change over the next couple of kernel -   versions */ -#define VIDIOC_CREATE_BUFS	_IOWR('V', 92, struct v4l2_create_buffers) -#define VIDIOC_PREPARE_BUF	_IOWR('V', 93, struct v4l2_buffer) - -/* Experimental selection API */ -#define VIDIOC_G_SELECTION	_IOWR('V', 94, struct v4l2_selection) -#define VIDIOC_S_SELECTION	_IOWR('V', 95, struct v4l2_selection) - -/* Experimental, these two ioctls may change over the next couple of kernel -   versions. */ -#define VIDIOC_DECODER_CMD	_IOWR('V', 96, struct v4l2_decoder_cmd) -#define VIDIOC_TRY_DECODER_CMD	_IOWR('V', 97, struct v4l2_decoder_cmd) - -/* Experimental, these three ioctls may change over the next couple of kernel -   versions. */ -#define VIDIOC_ENUM_DV_TIMINGS  _IOWR('V', 98, struct v4l2_enum_dv_timings) -#define VIDIOC_QUERY_DV_TIMINGS  _IOR('V', 99, struct v4l2_dv_timings) -#define VIDIOC_DV_TIMINGS_CAP   _IOWR('V', 100, struct v4l2_dv_timings_cap) - -/* Experimental, this ioctl may change over the next couple of kernel -   versions. */ -#define VIDIOC_ENUM_FREQ_BANDS	_IOWR('V', 101, struct v4l2_frequency_band) - -/* Reminder: when adding new ioctls please add support for them to -   drivers/media/video/v4l2-compat-ioctl32.c as well! */ - -#define BASE_VIDIOC_PRIVATE	192		/* 192-255 are private */ +#include <uapi/linux/videodev2.h>  #endif /* __LINUX_VIDEODEV2_H */ diff --git a/include/linux/virtio_9p.h b/include/linux/virtio_9p.h deleted file mode 100644 index 277c4ad44e8..00000000000 --- a/include/linux/virtio_9p.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _LINUX_VIRTIO_9P_H -#define _LINUX_VIRTIO_9P_H -/* This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ -#include <linux/types.h> -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h> - -/* The feature bitmap for virtio 9P */ - -/* The mount point is specified in a config variable */ -#define VIRTIO_9P_MOUNT_TAG 0 - -struct virtio_9p_config { -	/* length of the tag name */ -	__u16 tag_len; -	/* non-NULL terminated tag name */ -	__u8 tag[0]; -} __attribute__((packed)); - -#endif /* _LINUX_VIRTIO_9P_H */ diff --git a/include/linux/virtio_balloon.h b/include/linux/virtio_balloon.h deleted file mode 100644 index 652dc8bea92..00000000000 --- a/include/linux/virtio_balloon.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _LINUX_VIRTIO_BALLOON_H -#define _LINUX_VIRTIO_BALLOON_H -/* This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h> - -/* The feature bitmap for virtio balloon */ -#define VIRTIO_BALLOON_F_MUST_TELL_HOST	0 /* Tell before reclaiming pages */ -#define VIRTIO_BALLOON_F_STATS_VQ	1 /* Memory Stats virtqueue */ - -/* Size of a PFN in the balloon interface. */ -#define VIRTIO_BALLOON_PFN_SHIFT 12 - -struct virtio_balloon_config -{ -	/* Number of pages host wants Guest to give up. */ -	__le32 num_pages; -	/* Number of pages we've actually got in balloon. */ -	__le32 actual; -}; - -#define VIRTIO_BALLOON_S_SWAP_IN  0   /* Amount of memory swapped in */ -#define VIRTIO_BALLOON_S_SWAP_OUT 1   /* Amount of memory swapped out */ -#define VIRTIO_BALLOON_S_MAJFLT   2   /* Number of major faults */ -#define VIRTIO_BALLOON_S_MINFLT   3   /* Number of minor faults */ -#define VIRTIO_BALLOON_S_MEMFREE  4   /* Total amount of free memory */ -#define VIRTIO_BALLOON_S_MEMTOT   5   /* Total amount of memory */ -#define VIRTIO_BALLOON_S_NR       6 - -struct virtio_balloon_stat { -	u16 tag; -	u64 val; -} __attribute__((packed)); - -#endif /* _LINUX_VIRTIO_BALLOON_H */ diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h deleted file mode 100644 index 6d8e61c4856..00000000000 --- a/include/linux/virtio_blk.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef _LINUX_VIRTIO_BLK_H -#define _LINUX_VIRTIO_BLK_H -/* This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ -#include <linux/types.h> -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h> - -/* Feature bits */ -#define VIRTIO_BLK_F_BARRIER	0	/* Does host support barriers? */ -#define VIRTIO_BLK_F_SIZE_MAX	1	/* Indicates maximum segment size */ -#define VIRTIO_BLK_F_SEG_MAX	2	/* Indicates maximum # of segments */ -#define VIRTIO_BLK_F_GEOMETRY	4	/* Legacy geometry available  */ -#define VIRTIO_BLK_F_RO		5	/* Disk is read-only */ -#define VIRTIO_BLK_F_BLK_SIZE	6	/* Block size of disk is available*/ -#define VIRTIO_BLK_F_SCSI	7	/* Supports scsi command passthru */ -#define VIRTIO_BLK_F_WCE	9	/* Writeback mode enabled after reset */ -#define VIRTIO_BLK_F_TOPOLOGY	10	/* Topology information is available */ -#define VIRTIO_BLK_F_CONFIG_WCE	11	/* Writeback mode available in config */ - -#ifndef __KERNEL__ -/* Old (deprecated) name for VIRTIO_BLK_F_WCE. */ -#define VIRTIO_BLK_F_FLUSH VIRTIO_BLK_F_WCE -#endif - -#define VIRTIO_BLK_ID_BYTES	20	/* ID string length */ - -struct virtio_blk_config { -	/* The capacity (in 512-byte sectors). */ -	__u64 capacity; -	/* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ -	__u32 size_max; -	/* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ -	__u32 seg_max; -	/* geometry the device (if VIRTIO_BLK_F_GEOMETRY) */ -	struct virtio_blk_geometry { -		__u16 cylinders; -		__u8 heads; -		__u8 sectors; -	} geometry; - -	/* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ -	__u32 blk_size; - -	/* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY  */ -	/* exponent for physical block per logical block. */ -	__u8 physical_block_exp; -	/* alignment offset in logical blocks. */ -	__u8 alignment_offset; -	/* minimum I/O size without performance penalty in logical blocks. */ -	__u16 min_io_size; -	/* optimal sustained I/O size in logical blocks. */ -	__u32 opt_io_size; - -	/* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */ -	__u8 wce; -} __attribute__((packed)); - -/* - * Command types - * - * Usage is a bit tricky as some bits are used as flags and some are not. - * - * Rules: - *   VIRTIO_BLK_T_OUT may be combined with VIRTIO_BLK_T_SCSI_CMD or - *   VIRTIO_BLK_T_BARRIER.  VIRTIO_BLK_T_FLUSH is a command of its own - *   and may not be combined with any of the other flags. - */ - -/* These two define direction. */ -#define VIRTIO_BLK_T_IN		0 -#define VIRTIO_BLK_T_OUT	1 - -/* This bit says it's a scsi command, not an actual read or write. */ -#define VIRTIO_BLK_T_SCSI_CMD	2 - -/* Cache flush command */ -#define VIRTIO_BLK_T_FLUSH	4 - -/* Get device ID command */ -#define VIRTIO_BLK_T_GET_ID    8 - -/* Barrier before this op. */ -#define VIRTIO_BLK_T_BARRIER	0x80000000 - -/* This is the first element of the read scatter-gather list. */ -struct virtio_blk_outhdr { -	/* VIRTIO_BLK_T* */ -	__u32 type; -	/* io priority. */ -	__u32 ioprio; -	/* Sector (ie. 512 byte offset) */ -	__u64 sector; -}; - -struct virtio_scsi_inhdr { -	__u32 errors; -	__u32 data_len; -	__u32 sense_len; -	__u32 residual; -}; - -/* And this is the final byte of the write scatter-gather list. */ -#define VIRTIO_BLK_S_OK		0 -#define VIRTIO_BLK_S_IOERR	1 -#define VIRTIO_BLK_S_UNSUPP	2 -#endif /* _LINUX_VIRTIO_BLK_H */ diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index e2850a7ea27..29b9104232b 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -1,60 +1,10 @@  #ifndef _LINUX_VIRTIO_CONFIG_H  #define _LINUX_VIRTIO_CONFIG_H -/* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so - * anyone can use the definitions to implement compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ - -/* Virtio devices use a standardized configuration space to define their - * features and pass configuration information, but each implementation can - * store and access that space differently. */ -#include <linux/types.h> - -/* Status byte for guest to report progress, and synchronize features. */ -/* We have seen device and processed generic fields (VIRTIO_CONFIG_F_VIRTIO) */ -#define VIRTIO_CONFIG_S_ACKNOWLEDGE	1 -/* We have found a driver for the device. */ -#define VIRTIO_CONFIG_S_DRIVER		2 -/* Driver has used its parts of the config, and is happy */ -#define VIRTIO_CONFIG_S_DRIVER_OK	4 -/* We've given up on this device. */ -#define VIRTIO_CONFIG_S_FAILED		0x80 - -/* Some virtio feature bits (currently bits 28 through 31) are reserved for the - * transport being used (eg. virtio_ring), the rest are per-device feature - * bits. */ -#define VIRTIO_TRANSPORT_F_START	28 -#define VIRTIO_TRANSPORT_F_END		32 - -/* Do we get callbacks when the ring is completely used, even if we've - * suppressed them? */ -#define VIRTIO_F_NOTIFY_ON_EMPTY	24 -#ifdef __KERNEL__  #include <linux/err.h>  #include <linux/bug.h>  #include <linux/virtio.h> +#include <uapi/linux/virtio_config.h>  /**   * virtio_config_ops - operations for configuring a virtio device @@ -213,5 +163,4 @@ int virtqueue_set_affinity(struct virtqueue *vq, int cpu)  } -#endif /* __KERNEL__ */  #endif /* _LINUX_VIRTIO_CONFIG_H */ diff --git a/include/linux/virtio_console.h b/include/linux/virtio_console.h index bdf4b003473..d2e2785af60 100644 --- a/include/linux/virtio_console.h +++ b/include/linux/virtio_console.h @@ -1,8 +1,3 @@ -#ifndef _LINUX_VIRTIO_CONSOLE_H -#define _LINUX_VIRTIO_CONSOLE_H -#include <linux/types.h> -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h>  /*   * This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so   * anyone can use the definitions to implement compatible drivers/servers: @@ -34,44 +29,10 @@   * Copyright (C) Red Hat, Inc., 2009, 2010, 2011   * Copyright (C) Amit Shah <amit.shah@redhat.com>, 2009, 2010, 2011   */ +#ifndef _LINUX_VIRTIO_CONSOLE_H +#define _LINUX_VIRTIO_CONSOLE_H -/* Feature bits */ -#define VIRTIO_CONSOLE_F_SIZE	0	/* Does host provide console size? */ -#define VIRTIO_CONSOLE_F_MULTIPORT 1	/* Does host provide multiple ports? */ - -#define VIRTIO_CONSOLE_BAD_ID		(~(u32)0) - -struct virtio_console_config { -	/* colums of the screens */ -	__u16 cols; -	/* rows of the screens */ -	__u16 rows; -	/* max. number of ports this device can hold */ -	__u32 max_nr_ports; -} __attribute__((packed)); - -/* - * A message that's passed between the Host and the Guest for a - * particular port. - */ -struct virtio_console_control { -	__u32 id;		/* Port number */ -	__u16 event;		/* The kind of control event (see below) */ -	__u16 value;		/* Extra information for the key */ -}; - -/* Some events for control messages */ -#define VIRTIO_CONSOLE_DEVICE_READY	0 -#define VIRTIO_CONSOLE_PORT_ADD		1 -#define VIRTIO_CONSOLE_PORT_REMOVE	2 -#define VIRTIO_CONSOLE_PORT_READY	3 -#define VIRTIO_CONSOLE_CONSOLE_PORT	4 -#define VIRTIO_CONSOLE_RESIZE		5 -#define VIRTIO_CONSOLE_PORT_OPEN	6 -#define VIRTIO_CONSOLE_PORT_NAME	7 +#include <uapi/linux/virtio_console.h> -#ifdef __KERNEL__  int __init virtio_cons_early_init(int (*put_chars)(u32, const char *, int)); -#endif /* __KERNEL__ */ -  #endif /* _LINUX_VIRTIO_CONSOLE_H */ diff --git a/include/linux/virtio_ids.h b/include/linux/virtio_ids.h deleted file mode 100644 index 270fb22c581..00000000000 --- a/include/linux/virtio_ids.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef _LINUX_VIRTIO_IDS_H -#define _LINUX_VIRTIO_IDS_H -/* - * Virtio IDs - * - * This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ - -#define VIRTIO_ID_NET		1 /* virtio net */ -#define VIRTIO_ID_BLOCK		2 /* virtio block */ -#define VIRTIO_ID_CONSOLE	3 /* virtio console */ -#define VIRTIO_ID_RNG		4 /* virtio rng */ -#define VIRTIO_ID_BALLOON	5 /* virtio balloon */ -#define VIRTIO_ID_RPMSG		7 /* virtio remote processor messaging */ -#define VIRTIO_ID_SCSI		8 /* virtio scsi */ -#define VIRTIO_ID_9P		9 /* 9p virtio console */ - -#endif /* _LINUX_VIRTIO_IDS_H */ diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h deleted file mode 100644 index 2470f541af5..00000000000 --- a/include/linux/virtio_net.h +++ /dev/null @@ -1,169 +0,0 @@ -#ifndef _LINUX_VIRTIO_NET_H -#define _LINUX_VIRTIO_NET_H -/* This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ -#include <linux/types.h> -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h> -#include <linux/if_ether.h> - -/* The feature bitmap for virtio net */ -#define VIRTIO_NET_F_CSUM	0	/* Host handles pkts w/ partial csum */ -#define VIRTIO_NET_F_GUEST_CSUM	1	/* Guest handles pkts w/ partial csum */ -#define VIRTIO_NET_F_MAC	5	/* Host has given MAC address. */ -#define VIRTIO_NET_F_GSO	6	/* Host handles pkts w/ any GSO type */ -#define VIRTIO_NET_F_GUEST_TSO4	7	/* Guest can handle TSOv4 in. */ -#define VIRTIO_NET_F_GUEST_TSO6	8	/* Guest can handle TSOv6 in. */ -#define VIRTIO_NET_F_GUEST_ECN	9	/* Guest can handle TSO[6] w/ ECN in. */ -#define VIRTIO_NET_F_GUEST_UFO	10	/* Guest can handle UFO in. */ -#define VIRTIO_NET_F_HOST_TSO4	11	/* Host can handle TSOv4 in. */ -#define VIRTIO_NET_F_HOST_TSO6	12	/* Host can handle TSOv6 in. */ -#define VIRTIO_NET_F_HOST_ECN	13	/* Host can handle TSO[6] w/ ECN in. */ -#define VIRTIO_NET_F_HOST_UFO	14	/* Host can handle UFO in. */ -#define VIRTIO_NET_F_MRG_RXBUF	15	/* Host can merge receive buffers. */ -#define VIRTIO_NET_F_STATUS	16	/* virtio_net_config.status available */ -#define VIRTIO_NET_F_CTRL_VQ	17	/* Control channel available */ -#define VIRTIO_NET_F_CTRL_RX	18	/* Control channel RX mode support */ -#define VIRTIO_NET_F_CTRL_VLAN	19	/* Control channel VLAN filtering */ -#define VIRTIO_NET_F_CTRL_RX_EXTRA 20	/* Extra RX mode control support */ -#define VIRTIO_NET_F_GUEST_ANNOUNCE 21	/* Guest can announce device on the -					 * network */ - -#define VIRTIO_NET_S_LINK_UP	1	/* Link is up */ -#define VIRTIO_NET_S_ANNOUNCE	2	/* Announcement is needed */ - -struct virtio_net_config { -	/* The config defining mac address (if VIRTIO_NET_F_MAC) */ -	__u8 mac[6]; -	/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ -	__u16 status; -} __attribute__((packed)); - -/* This is the first element of the scatter-gather list.  If you don't - * specify GSO or CSUM features, you can simply ignore the header. */ -struct virtio_net_hdr { -#define VIRTIO_NET_HDR_F_NEEDS_CSUM	1	// Use csum_start, csum_offset -#define VIRTIO_NET_HDR_F_DATA_VALID	2	// Csum is valid -	__u8 flags; -#define VIRTIO_NET_HDR_GSO_NONE		0	// Not a GSO frame -#define VIRTIO_NET_HDR_GSO_TCPV4	1	// GSO frame, IPv4 TCP (TSO) -#define VIRTIO_NET_HDR_GSO_UDP		3	// GSO frame, IPv4 UDP (UFO) -#define VIRTIO_NET_HDR_GSO_TCPV6	4	// GSO frame, IPv6 TCP -#define VIRTIO_NET_HDR_GSO_ECN		0x80	// TCP has ECN set -	__u8 gso_type; -	__u16 hdr_len;		/* Ethernet + IP + tcp/udp hdrs */ -	__u16 gso_size;		/* Bytes to append to hdr_len per frame */ -	__u16 csum_start;	/* Position to start checksumming from */ -	__u16 csum_offset;	/* Offset after that to place checksum */ -}; - -/* This is the version of the header to use when the MRG_RXBUF - * feature has been negotiated. */ -struct virtio_net_hdr_mrg_rxbuf { -	struct virtio_net_hdr hdr; -	__u16 num_buffers;	/* Number of merged rx buffers */ -}; - -/* - * Control virtqueue data structures - * - * The control virtqueue expects a header in the first sg entry - * and an ack/status response in the last entry.  Data for the - * command goes in between. - */ -struct virtio_net_ctrl_hdr { -	__u8 class; -	__u8 cmd; -} __attribute__((packed)); - -typedef __u8 virtio_net_ctrl_ack; - -#define VIRTIO_NET_OK     0 -#define VIRTIO_NET_ERR    1 - -/* - * Control the RX mode, ie. promisucous, allmulti, etc... - * All commands require an "out" sg entry containing a 1 byte - * state value, zero = disable, non-zero = enable.  Commands - * 0 and 1 are supported with the VIRTIO_NET_F_CTRL_RX feature. - * Commands 2-5 are added with VIRTIO_NET_F_CTRL_RX_EXTRA. - */ -#define VIRTIO_NET_CTRL_RX    0 - #define VIRTIO_NET_CTRL_RX_PROMISC      0 - #define VIRTIO_NET_CTRL_RX_ALLMULTI     1 - #define VIRTIO_NET_CTRL_RX_ALLUNI       2 - #define VIRTIO_NET_CTRL_RX_NOMULTI      3 - #define VIRTIO_NET_CTRL_RX_NOUNI        4 - #define VIRTIO_NET_CTRL_RX_NOBCAST      5 - -/* - * Control the MAC filter table. - * - * The MAC filter table is managed by the hypervisor, the guest should - * assume the size is infinite.  Filtering should be considered - * non-perfect, ie. based on hypervisor resources, the guest may - * received packets from sources not specified in the filter list. - * - * In addition to the class/cmd header, the TABLE_SET command requires - * two out scatterlists.  Each contains a 4 byte count of entries followed - * by a concatenated byte stream of the ETH_ALEN MAC addresses.  The - * first sg list contains unicast addresses, the second is for multicast. - * This functionality is present if the VIRTIO_NET_F_CTRL_RX feature - * is available. - */ -struct virtio_net_ctrl_mac { -	__u32 entries; -	__u8 macs[][ETH_ALEN]; -} __attribute__((packed)); - -#define VIRTIO_NET_CTRL_MAC    1 - #define VIRTIO_NET_CTRL_MAC_TABLE_SET        0 - -/* - * Control VLAN filtering - * - * The VLAN filter table is controlled via a simple ADD/DEL interface. - * VLAN IDs not added may be filterd by the hypervisor.  Del is the - * opposite of add.  Both commands expect an out entry containing a 2 - * byte VLAN ID.  VLAN filterting is available with the - * VIRTIO_NET_F_CTRL_VLAN feature bit. - */ -#define VIRTIO_NET_CTRL_VLAN       2 - #define VIRTIO_NET_CTRL_VLAN_ADD             0 - #define VIRTIO_NET_CTRL_VLAN_DEL             1 - -/* - * Control link announce acknowledgement - * - * The command VIRTIO_NET_CTRL_ANNOUNCE_ACK is used to indicate that - * driver has recevied the notification; device would clear the - * VIRTIO_NET_S_ANNOUNCE bit in the status field after it receives - * this command. - */ -#define VIRTIO_NET_CTRL_ANNOUNCE       3 - #define VIRTIO_NET_CTRL_ANNOUNCE_ACK         0 - -#endif /* _LINUX_VIRTIO_NET_H */ diff --git a/include/linux/virtio_pci.h b/include/linux/virtio_pci.h deleted file mode 100644 index ea66f3f60d6..00000000000 --- a/include/linux/virtio_pci.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Virtio PCI driver - * - * This module allows virtio devices to be used over a virtual PCI device. - * This can be used with QEMU based VMMs like KVM or Xen. - * - * Copyright IBM Corp. 2007 - * - * Authors: - *  Anthony Liguori  <aliguori@us.ibm.com> - * - * This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _LINUX_VIRTIO_PCI_H -#define _LINUX_VIRTIO_PCI_H - -#include <linux/virtio_config.h> - -/* A 32-bit r/o bitmask of the features supported by the host */ -#define VIRTIO_PCI_HOST_FEATURES	0 - -/* A 32-bit r/w bitmask of features activated by the guest */ -#define VIRTIO_PCI_GUEST_FEATURES	4 - -/* A 32-bit r/w PFN for the currently selected queue */ -#define VIRTIO_PCI_QUEUE_PFN		8 - -/* A 16-bit r/o queue size for the currently selected queue */ -#define VIRTIO_PCI_QUEUE_NUM		12 - -/* A 16-bit r/w queue selector */ -#define VIRTIO_PCI_QUEUE_SEL		14 - -/* A 16-bit r/w queue notifier */ -#define VIRTIO_PCI_QUEUE_NOTIFY		16 - -/* An 8-bit device status register.  */ -#define VIRTIO_PCI_STATUS		18 - -/* An 8-bit r/o interrupt status register.  Reading the value will return the - * current contents of the ISR and will also clear it.  This is effectively - * a read-and-acknowledge. */ -#define VIRTIO_PCI_ISR			19 - -/* The bit of the ISR which indicates a device configuration change. */ -#define VIRTIO_PCI_ISR_CONFIG		0x2 - -/* MSI-X registers: only enabled if MSI-X is enabled. */ -/* A 16-bit vector for configuration changes. */ -#define VIRTIO_MSI_CONFIG_VECTOR        20 -/* A 16-bit vector for selected queue notifications. */ -#define VIRTIO_MSI_QUEUE_VECTOR         22 -/* Vector value used to disable MSI for queue */ -#define VIRTIO_MSI_NO_VECTOR            0xffff - -/* The remaining space is defined by each driver as the per-driver - * configuration space */ -#define VIRTIO_PCI_CONFIG(dev)		((dev)->msix_enabled ? 24 : 20) - -/* Virtio ABI version, this must match exactly */ -#define VIRTIO_PCI_ABI_VERSION		0 - -/* How many bits to shift physical queue address written to QUEUE_PFN. - * 12 is historical, and due to x86 page size. */ -#define VIRTIO_PCI_QUEUE_ADDR_SHIFT	12 - -/* The alignment to use between consumer and producer parts of vring. - * x86 pagesize again. */ -#define VIRTIO_PCI_VRING_ALIGN		4096 -#endif diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h index c2d793a06ad..63c6ea19951 100644 --- a/include/linux/virtio_ring.h +++ b/include/linux/virtio_ring.h @@ -1,167 +1,9 @@  #ifndef _LINUX_VIRTIO_RING_H  #define _LINUX_VIRTIO_RING_H -/* An interface for efficient virtio implementation, currently for use by KVM - * and lguest, but hopefully others soon.  Do NOT change this since it will - * break existing servers and clients. - * - * This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Copyright Rusty Russell IBM Corporation 2007. */ -#include <linux/types.h> -/* This marks a buffer as continuing via the next field. */ -#define VRING_DESC_F_NEXT	1 -/* This marks a buffer as write-only (otherwise read-only). */ -#define VRING_DESC_F_WRITE	2 -/* This means the buffer contains a list of buffer descriptors. */ -#define VRING_DESC_F_INDIRECT	4 - -/* The Host uses this in used->flags to advise the Guest: don't kick me when - * you add a buffer.  It's unreliable, so it's simply an optimization.  Guest - * will still kick if it's out of buffers. */ -#define VRING_USED_F_NO_NOTIFY	1 -/* The Guest uses this in avail->flags to advise the Host: don't interrupt me - * when you consume a buffer.  It's unreliable, so it's simply an - * optimization.  */ -#define VRING_AVAIL_F_NO_INTERRUPT	1 - -/* We support indirect buffer descriptors */ -#define VIRTIO_RING_F_INDIRECT_DESC	28 - -/* The Guest publishes the used index for which it expects an interrupt - * at the end of the avail ring. Host should ignore the avail->flags field. */ -/* The Host publishes the avail index for which it expects a kick - * at the end of the used ring. Guest should ignore the used->flags field. */ -#define VIRTIO_RING_F_EVENT_IDX		29 - -/* Virtio ring descriptors: 16 bytes.  These can chain together via "next". */ -struct vring_desc { -	/* Address (guest-physical). */ -	__u64 addr; -	/* Length. */ -	__u32 len; -	/* The flags as indicated above. */ -	__u16 flags; -	/* We chain unused descriptors via this, too */ -	__u16 next; -}; - -struct vring_avail { -	__u16 flags; -	__u16 idx; -	__u16 ring[]; -}; - -/* u32 is used here for ids for padding reasons. */ -struct vring_used_elem { -	/* Index of start of used descriptor chain. */ -	__u32 id; -	/* Total length of the descriptor chain which was used (written to) */ -	__u32 len; -}; - -struct vring_used { -	__u16 flags; -	__u16 idx; -	struct vring_used_elem ring[]; -}; - -struct vring { -	unsigned int num; - -	struct vring_desc *desc; - -	struct vring_avail *avail; - -	struct vring_used *used; -}; - -/* The standard layout for the ring is a continuous chunk of memory which looks - * like this.  We assume num is a power of 2. - * - * struct vring - * { - *	// The actual descriptors (16 bytes each) - *	struct vring_desc desc[num]; - * - *	// A ring of available descriptor heads with free-running index. - *	__u16 avail_flags; - *	__u16 avail_idx; - *	__u16 available[num]; - *	__u16 used_event_idx; - * - *	// Padding to the next align boundary. - *	char pad[]; - * - *	// A ring of used descriptor heads with free-running index. - *	__u16 used_flags; - *	__u16 used_idx; - *	struct vring_used_elem used[num]; - *	__u16 avail_event_idx; - * }; - */ -/* We publish the used event index at the end of the available ring, and vice - * versa. They are at the end for backwards compatibility. */ -#define vring_used_event(vr) ((vr)->avail->ring[(vr)->num]) -#define vring_avail_event(vr) (*(__u16 *)&(vr)->used->ring[(vr)->num]) - -static inline void vring_init(struct vring *vr, unsigned int num, void *p, -			      unsigned long align) -{ -	vr->num = num; -	vr->desc = p; -	vr->avail = p + num*sizeof(struct vring_desc); -	vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + sizeof(__u16) -		+ align-1) & ~(align - 1)); -} - -static inline unsigned vring_size(unsigned int num, unsigned long align) -{ -	return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (3 + num) -		 + align - 1) & ~(align - 1)) -		+ sizeof(__u16) * 3 + sizeof(struct vring_used_elem) * num; -} - -/* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */ -/* Assuming a given event_idx value from the other size, if - * we have just incremented index from old to new_idx, - * should we trigger an event? */ -static inline int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old) -{ -	/* Note: Xen has similar logic for notification hold-off -	 * in include/xen/interface/io/ring.h with req_event and req_prod -	 * corresponding to event_idx + 1 and new_idx respectively. -	 * Note also that req_event and req_prod in Xen start at 1, -	 * event indexes in virtio start at 0. */ -	return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old); -} - -#ifdef __KERNEL__  #include <linux/irqreturn.h> +#include <uapi/linux/virtio_ring.h> +  struct virtio_device;  struct virtqueue; @@ -179,5 +21,4 @@ void vring_del_virtqueue(struct virtqueue *vq);  void vring_transport_features(struct virtio_device *vdev);  irqreturn_t vring_interrupt(int irq, void *_vq); -#endif /* __KERNEL__ */  #endif /* _LINUX_VIRTIO_RING_H */ diff --git a/include/linux/virtio_rng.h b/include/linux/virtio_rng.h deleted file mode 100644 index c4d5de896f0..00000000000 --- a/include/linux/virtio_rng.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _LINUX_VIRTIO_RNG_H -#define _LINUX_VIRTIO_RNG_H -/* This header is BSD licensed so anyone can use the definitions to implement - * compatible drivers/servers. */ -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h> - -#endif /* _LINUX_VIRTIO_RNG_H */ diff --git a/include/linux/vt.h b/include/linux/vt.h index 30a8dd9c83f..b186e043523 100644 --- a/include/linux/vt.h +++ b/include/linux/vt.h @@ -1,90 +1,8 @@  #ifndef _LINUX_VT_H  #define _LINUX_VT_H +#include <uapi/linux/vt.h> -/* - * These constants are also useful for user-level apps (e.g., VC - * resizing). - */ -#define MIN_NR_CONSOLES 1       /* must be at least 1 */ -#define MAX_NR_CONSOLES	63	/* serial lines start at 64 */ -#define MAX_NR_USER_CONSOLES 63	/* must be root to allocate above this */ -		/* Note: the ioctl VT_GETSTATE does not work for -		   consoles 16 and higher (since it returns a short) */ - -/* 0x56 is 'V', to avoid collision with termios and kd */ - -#define VT_OPENQRY	0x5600	/* find available vt */ - -struct vt_mode { -	char mode;		/* vt mode */ -	char waitv;		/* if set, hang on writes if not active */ -	short relsig;		/* signal to raise on release req */ -	short acqsig;		/* signal to raise on acquisition */ -	short frsig;		/* unused (set to 0) */ -}; -#define VT_GETMODE	0x5601	/* get mode of active vt */ -#define VT_SETMODE	0x5602	/* set mode of active vt */ -#define		VT_AUTO		0x00	/* auto vt switching */ -#define		VT_PROCESS	0x01	/* process controls switching */ -#define		VT_ACKACQ	0x02	/* acknowledge switch */ - -struct vt_stat { -	unsigned short v_active;	/* active vt */ -	unsigned short v_signal;	/* signal to send */ -	unsigned short v_state;		/* vt bitmask */ -}; -#define VT_GETSTATE	0x5603	/* get global vt state info */ -#define VT_SENDSIG	0x5604	/* signal to send to bitmask of vts */ - -#define VT_RELDISP	0x5605	/* release display */ - -#define VT_ACTIVATE	0x5606	/* make vt active */ -#define VT_WAITACTIVE	0x5607	/* wait for vt active */ -#define VT_DISALLOCATE	0x5608  /* free memory associated to vt */ - -struct vt_sizes { -	unsigned short v_rows;		/* number of rows */ -	unsigned short v_cols;		/* number of columns */ -	unsigned short v_scrollsize;	/* number of lines of scrollback */ -}; -#define VT_RESIZE	0x5609	/* set kernel's idea of screensize */ - -struct vt_consize { -	unsigned short v_rows;	/* number of rows */ -	unsigned short v_cols;	/* number of columns */ -	unsigned short v_vlin;	/* number of pixel rows on screen */ -	unsigned short v_clin;	/* number of pixel rows per character */ -	unsigned short v_vcol;	/* number of pixel columns on screen */ -	unsigned short v_ccol;	/* number of pixel columns per character */ -}; -#define VT_RESIZEX      0x560A  /* set kernel's idea of screensize + more */ -#define VT_LOCKSWITCH   0x560B  /* disallow vt switching */ -#define VT_UNLOCKSWITCH 0x560C  /* allow vt switching */ -#define VT_GETHIFONTMASK 0x560D  /* return hi font mask */ - -struct vt_event { -	unsigned int event; -#define VT_EVENT_SWITCH		0x0001	/* Console switch */ -#define VT_EVENT_BLANK		0x0002	/* Screen blank */ -#define VT_EVENT_UNBLANK	0x0004	/* Screen unblank */ -#define VT_EVENT_RESIZE		0x0008	/* Resize display */ -#define VT_MAX_EVENT		0x000F -	unsigned int oldev;		/* Old console */ -	unsigned int newev;		/* New console (if changing) */ -	unsigned int pad[4];		/* Padding for expansion */ -}; - -#define VT_WAITEVENT	0x560E	/* Wait for an event */ - -struct vt_setactivate { -	unsigned int console; -	struct vt_mode mode; -}; - -#define VT_SETACTIVATE	0x560F	/* Activate and set the mode of a console */ - -#ifdef __KERNEL__  /* Virtual Terminal events. */  #define VT_ALLOCATE		0x0001 /* Console got allocated */ @@ -106,8 +24,4 @@ static inline int vt_kmsg_redirect(int new)  #endif -#endif /* __KERNEL__ */ - -#define vt_get_kmsg_redirect() vt_kmsg_redirect(-1) -  #endif /* _LINUX_VT_H */ diff --git a/include/linux/wait.h b/include/linux/wait.h index 1dee81c41ff..168dfe122dd 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -1,28 +1,12 @@  #ifndef _LINUX_WAIT_H  #define _LINUX_WAIT_H -#define WNOHANG		0x00000001 -#define WUNTRACED	0x00000002 -#define WSTOPPED	WUNTRACED -#define WEXITED		0x00000004 -#define WCONTINUED	0x00000008 -#define WNOWAIT		0x01000000	/* Don't reap, just poll status.  */ - -#define __WNOTHREAD	0x20000000	/* Don't wait on children of other threads in this group */ -#define __WALL		0x40000000	/* Wait on all children, regardless of type */ -#define __WCLONE	0x80000000	/* Wait only on non-SIGCHLD children */ - -/* First argument to waitid: */ -#define P_ALL		0 -#define P_PID		1 -#define P_PGID		2 - -#ifdef __KERNEL__  #include <linux/list.h>  #include <linux/stddef.h>  #include <linux/spinlock.h>  #include <asm/current.h> +#include <uapi/linux/wait.h>  typedef struct __wait_queue wait_queue_t;  typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key); @@ -663,6 +647,4 @@ static inline int wait_on_bit_lock(void *word, int bit,  	return out_of_line_wait_on_bit_lock(word, bit, action, mode);  } -#endif /* __KERNEL__ */ -  #endif diff --git a/include/linux/wanrouter.h b/include/linux/wanrouter.h index 3157cc1fada..cec4b415976 100644 --- a/include/linux/wanrouter.h +++ b/include/linux/wanrouter.h @@ -43,413 +43,11 @@  * Jan 16, 1997	Gene Kozin	router_devlist made public  * Jan 02, 1997	Gene Kozin	Initial version (based on wanpipe.h).  *****************************************************************************/ -  #ifndef	_ROUTER_H  #define	_ROUTER_H -#define	ROUTER_NAME	"wanrouter"	/* in case we ever change it */ -#define	ROUTER_VERSION	1		/* version number */ -#define	ROUTER_RELEASE	1		/* release (minor version) number */ -#define	ROUTER_IOCTL	'W'		/* for IOCTL calls */ -#define	ROUTER_MAGIC	0x524D4157L	/* signature: 'WANR' reversed */ - -/* IOCTL codes for /proc/router/<device> entries (up to 255) */ -enum router_ioctls -{ -	ROUTER_SETUP	= ROUTER_IOCTL<<8,	/* configure device */ -	ROUTER_DOWN,				/* shut down device */ -	ROUTER_STAT,				/* get device status */ -	ROUTER_IFNEW,				/* add interface */ -	ROUTER_IFDEL,				/* delete interface */ -	ROUTER_IFSTAT,				/* get interface status */ -	ROUTER_USER	= (ROUTER_IOCTL<<8)+16,	/* driver-specific calls */ -	ROUTER_USER_MAX	= (ROUTER_IOCTL<<8)+31 -}; - -/* identifiers for displaying proc file data for dual port adapters */ -#define PROC_DATA_PORT_0 0x8000	/* the data is for port 0 */ -#define PROC_DATA_PORT_1 0x8001	/* the data is for port 1 */ - -/* NLPID for packet encapsulation (ISO/IEC TR 9577) */ -#define	NLPID_IP	0xCC	/* Internet Protocol Datagram */ -#define	NLPID_SNAP	0x80	/* IEEE Subnetwork Access Protocol */ -#define	NLPID_CLNP	0x81	/* ISO/IEC 8473 */ -#define	NLPID_ESIS	0x82	/* ISO/IEC 9542 */ -#define	NLPID_ISIS	0x83	/* ISO/IEC ISIS */ -#define	NLPID_Q933	0x08	/* CCITT Q.933 */ - -/* Miscellaneous */ -#define	WAN_IFNAME_SZ	15	/* max length of the interface name */ -#define	WAN_DRVNAME_SZ	15	/* max length of the link driver name */ -#define	WAN_ADDRESS_SZ	31	/* max length of the WAN media address */ -#define USED_BY_FIELD	8	/* max length of the used by field */ - -/* Defines for UDP PACKET TYPE */ -#define UDP_PTPIPE_TYPE 	0x01 -#define UDP_FPIPE_TYPE		0x02 -#define UDP_CPIPE_TYPE		0x03 -#define UDP_DRVSTATS_TYPE 	0x04 -#define UDP_INVALID_TYPE  	0x05 - -/* Command return code */ -#define CMD_OK		0		/* normal firmware return code */ -#define CMD_TIMEOUT	0xFF		/* firmware command timed out */ - -/* UDP Packet Management */ -#define UDP_PKT_FRM_STACK	0x00 -#define UDP_PKT_FRM_NETWORK	0x01 - -/* Maximum interrupt test counter */ -#define MAX_INTR_TEST_COUNTER	100 - -/* Critical Values for RACE conditions*/ -#define CRITICAL_IN_ISR		0xA1 -#define CRITICAL_INTR_HANDLED	0xB1 - -/****** Data Types **********************************************************/ - -/*---------------------------------------------------------------------------- - * X.25-specific link-level configuration. - */ -typedef struct wan_x25_conf -{ -	unsigned lo_pvc;	/* lowest permanent circuit number */ -	unsigned hi_pvc;	/* highest permanent circuit number */ -	unsigned lo_svc;	/* lowest switched circuit number */ -	unsigned hi_svc;	/* highest switched circuit number */ -	unsigned hdlc_window;	/* HDLC window size (1..7) */ -	unsigned pkt_window;	/* X.25 packet window size (1..7) */ -	unsigned t1;		/* HDLC timer T1, sec (1..30) */ -	unsigned t2;		/* HDLC timer T2, sec (0..29) */ -	unsigned t4;		/* HDLC supervisory frame timer = T4 * T1 */ -	unsigned n2;		/* HDLC retransmission limit (1..30) */ -	unsigned t10_t20;	/* X.25 RESTART timeout, sec (1..255) */ -	unsigned t11_t21;	/* X.25 CALL timeout, sec (1..255) */ -	unsigned t12_t22;	/* X.25 RESET timeout, sec (1..255) */ -	unsigned t13_t23;	/* X.25 CLEAR timeout, sec (1..255) */ -	unsigned t16_t26;	/* X.25 INTERRUPT timeout, sec (1..255) */ -	unsigned t28;		/* X.25 REGISTRATION timeout, sec (1..255) */ -	unsigned r10_r20;	/* RESTART retransmission limit (0..250) */ -	unsigned r12_r22;	/* RESET retransmission limit (0..250) */ -	unsigned r13_r23;	/* CLEAR retransmission limit (0..250) */ -	unsigned ccitt_compat;	/* compatibility mode: 1988/1984/1980 */ -	unsigned x25_conf_opt;   /* User defined x25 config optoins */ -	unsigned char LAPB_hdlc_only; /* Run in HDLC only mode */ -	unsigned char logging;   /* Control connection logging */   -	unsigned char oob_on_modem; /* Whether to send modem status to the user app */ -} wan_x25_conf_t; - -/*---------------------------------------------------------------------------- - * Frame relay specific link-level configuration. - */ -typedef struct wan_fr_conf -{ -	unsigned signalling;	/* local in-channel signalling type */ -	unsigned t391;		/* link integrity verification timer */ -	unsigned t392;		/* polling verification timer */ -	unsigned n391;		/* full status polling cycle counter */ -	unsigned n392;		/* error threshold counter */ -	unsigned n393;		/* monitored events counter */ -	unsigned dlci_num;	/* number of DLCs (access node) */ -	unsigned  dlci[100];    /* List of all DLCIs */ -} wan_fr_conf_t; - -/*---------------------------------------------------------------------------- - * PPP-specific link-level configuration. - */ -typedef struct wan_ppp_conf -{ -	unsigned restart_tmr;	/* restart timer */ -	unsigned auth_rsrt_tmr;	/* authentication timer */ -	unsigned auth_wait_tmr;	/* authentication timer */ -	unsigned mdm_fail_tmr;	/* modem failure timer */ -	unsigned dtr_drop_tmr;	/* DTR drop timer */ -	unsigned connect_tmout;	/* connection timeout */ -	unsigned conf_retry;	/* max. retry */ -	unsigned term_retry;	/* max. retry */ -	unsigned fail_retry;	/* max. retry */ -	unsigned auth_retry;	/* max. retry */ -	unsigned auth_options;	/* authentication opt. */ -	unsigned ip_options;	/* IP options */ -	char	authenticator;	/* AUTHENTICATOR or not */ -	char	ip_mode;	/* Static/Host/Peer */ -} wan_ppp_conf_t; - -/*---------------------------------------------------------------------------- - * CHDLC-specific link-level configuration. - */ -typedef struct wan_chdlc_conf -{ -	unsigned char ignore_dcd;	/* Protocol options:		*/ -	unsigned char ignore_cts;	/*  Ignore these to determine	*/ -	unsigned char ignore_keepalive;	/*  link status (Yes or No)	*/ -	unsigned char hdlc_streaming;	/*  hdlc_streaming mode (Y/N) */ -	unsigned char receive_only;	/*  no transmit buffering (Y/N) */ -	unsigned keepalive_tx_tmr;	/* transmit keepalive timer */ -	unsigned keepalive_rx_tmr;	/* receive  keepalive timer */ -	unsigned keepalive_err_margin;	/* keepalive_error_tolerance */ -	unsigned slarp_timer;		/* SLARP request timer */ -} wan_chdlc_conf_t; - - -/*---------------------------------------------------------------------------- - * WAN device configuration. Passed to ROUTER_SETUP IOCTL. - */ -typedef struct wandev_conf -{ -	unsigned magic;		/* magic number (for verification) */ -	unsigned config_id;	/* configuration structure identifier */ -				/****** hardware configuration ******/ -	unsigned ioport;	/* adapter I/O port base */ -	unsigned long maddr;	/* dual-port memory address */ -	unsigned msize;		/* dual-port memory size */ -	int irq;		/* interrupt request level */ -	int dma;		/* DMA request level */ -        char S514_CPU_no[1];	/* S514 PCI adapter CPU number ('A' or 'B') */ -        unsigned PCI_slot_no;	/* S514 PCI adapter slot number */ -	char auto_pci_cfg;	/* S515 PCI automatic slot detection */ -	char comm_port;		/* Communication Port (PRI=0, SEC=1) */  -	unsigned bps;		/* data transfer rate */ -	unsigned mtu;		/* maximum transmit unit size */ -        unsigned udp_port;      /* UDP port for management */ -	unsigned char ttl;	/* Time To Live for UDP security */ -	unsigned char ft1;	/* FT1 Configurator Option */ -        char interface;		/* RS-232/V.35, etc. */ -	char clocking;		/* external/internal */ -	char line_coding;	/* NRZ/NRZI/FM0/FM1, etc. */ -	char station;		/* DTE/DCE, primary/secondary, etc. */ -	char connection;	/* permanent/switched/on-demand */ -	char read_mode;		/* read mode: Polling or interrupt */ -	char receive_only;	/* disable tx buffers */ -	char tty;		/* Create a fake tty device */ -	unsigned tty_major;	/* Major number for wanpipe tty device */ -	unsigned tty_minor; 	/* Minor number for wanpipe tty device */ -	unsigned tty_mode;	/* TTY operation mode SYNC or ASYNC */ -	char backup;		/* Backup Mode */ -	unsigned hw_opt[4];	/* other hardware options */ -	unsigned reserved[4]; -				/****** arbitrary data ***************/ -	unsigned data_size;	/* data buffer size */ -	void* data;		/* data buffer, e.g. firmware */ -	union			/****** protocol-specific ************/ -	{ -		wan_x25_conf_t x25;	/* X.25 configuration */ -		wan_ppp_conf_t ppp;	/* PPP configuration */ -		wan_fr_conf_t fr;	/* frame relay configuration */ -		wan_chdlc_conf_t chdlc;	/* Cisco HDLC configuration */ -	} u; -} wandev_conf_t; - -/* 'config_id' definitions */ -#define	WANCONFIG_X25	101	/* X.25 link */ -#define	WANCONFIG_FR	102	/* frame relay link */ -#define	WANCONFIG_PPP	103	/* synchronous PPP link */ -#define WANCONFIG_CHDLC	104	/* Cisco HDLC Link */ -#define WANCONFIG_BSC	105	/* BiSync Streaming */ -#define WANCONFIG_HDLC	106	/* HDLC Support */ -#define WANCONFIG_MPPP  107	/* Multi Port PPP over RAW CHDLC */ - -/* - * Configuration options defines. - */ -/* general options */ -#define	WANOPT_OFF	0 -#define	WANOPT_ON	1 -#define	WANOPT_NO	0 -#define	WANOPT_YES	1 - -/* intercace options */ -#define	WANOPT_RS232	0 -#define	WANOPT_V35	1 - -/* data encoding options */ -#define	WANOPT_NRZ	0 -#define	WANOPT_NRZI	1 -#define	WANOPT_FM0	2 -#define	WANOPT_FM1	3 - -/* link type options */ -#define	WANOPT_POINTTOPOINT	0	/* RTS always active */ -#define	WANOPT_MULTIDROP	1	/* RTS is active when transmitting */ - -/* clocking options */ -#define	WANOPT_EXTERNAL	0 -#define	WANOPT_INTERNAL	1 - -/* station options */ -#define	WANOPT_DTE		0 -#define	WANOPT_DCE		1 -#define	WANOPT_CPE		0 -#define	WANOPT_NODE		1 -#define	WANOPT_SECONDARY	0 -#define	WANOPT_PRIMARY		1 - -/* connection options */ -#define	WANOPT_PERMANENT	0	/* DTR always active */ -#define	WANOPT_SWITCHED		1	/* use DTR to setup link (dial-up) */ -#define	WANOPT_ONDEMAND		2	/* activate DTR only before sending */ - -/* frame relay in-channel signalling */ -#define	WANOPT_FR_ANSI		1	/* ANSI T1.617 Annex D */ -#define	WANOPT_FR_Q933		2	/* ITU Q.933A */ -#define	WANOPT_FR_LMI		3	/* LMI */ - -/* PPP IP Mode Options */ -#define	WANOPT_PPP_STATIC	0 -#define	WANOPT_PPP_HOST		1 -#define	WANOPT_PPP_PEER		2 - -/* ASY Mode Options */ -#define WANOPT_ONE 		1 -#define WANOPT_TWO		2 -#define WANOPT_ONE_AND_HALF	3 - -#define WANOPT_NONE	0 -#define WANOPT_ODD      1 -#define WANOPT_EVEN	2 - -/* CHDLC Protocol Options */ -/* DF Commented out for now. - -#define WANOPT_CHDLC_NO_DCD		IGNORE_DCD_FOR_LINK_STAT -#define WANOPT_CHDLC_NO_CTS		IGNORE_CTS_FOR_LINK_STAT -#define WANOPT_CHDLC_NO_KEEPALIVE	IGNORE_KPALV_FOR_LINK_STAT -*/ - -/* Port options */ -#define WANOPT_PRI 0 -#define WANOPT_SEC 1 -/* read mode */ -#define	WANOPT_INTR	0 -#define WANOPT_POLL	1 - - -#define WANOPT_TTY_SYNC  0 -#define WANOPT_TTY_ASYNC 1 -/*---------------------------------------------------------------------------- - * WAN Link Status Info (for ROUTER_STAT IOCTL). - */ -typedef struct wandev_stat -{ -	unsigned state;		/* link state */ -	unsigned ndev;		/* number of configured interfaces */ - -	/* link/interface configuration */ -	unsigned connection;	/* permanent/switched/on-demand */ -	unsigned media_type;	/* Frame relay/PPP/X.25/SDLC, etc. */ -	unsigned mtu;		/* max. transmit unit for this device */ - -	/* physical level statistics */ -	unsigned modem_status;	/* modem status */ -	unsigned rx_frames;	/* received frames count */ -	unsigned rx_overruns;	/* receiver overrun error count */ -	unsigned rx_crc_err;	/* receive CRC error count */ -	unsigned rx_aborts;	/* received aborted frames count */ -	unsigned rx_bad_length;	/* unexpetedly long/short frames count */ -	unsigned rx_dropped;	/* frames discarded at device level */ -	unsigned tx_frames;	/* transmitted frames count */ -	unsigned tx_underruns;	/* aborted transmissions (underruns) count */ -	unsigned tx_timeouts;	/* transmission timeouts */ -	unsigned tx_rejects;	/* other transmit errors */ - -	/* media level statistics */ -	unsigned rx_bad_format;	/* frames with invalid format */ -	unsigned rx_bad_addr;	/* frames with invalid media address */ -	unsigned tx_retries;	/* frames re-transmitted */ -	unsigned reserved[16];	/* reserved for future use */ -} wandev_stat_t; - -/* 'state' defines */ -enum wan_states -{ -	WAN_UNCONFIGURED,	/* link/channel is not configured */ -	WAN_DISCONNECTED,	/* link/channel is disconnected */ -	WAN_CONNECTING,		/* connection is in progress */ -	WAN_CONNECTED,		/* link/channel is operational */ -	WAN_LIMIT,		/* for verification only */ -	WAN_DUALPORT,		/* for Dual Port cards */ -	WAN_DISCONNECTING, -	WAN_FT1_READY		/* FT1 Configurator Ready */ -}; - -enum { -	WAN_LOCAL_IP, -	WAN_POINTOPOINT_IP, -	WAN_NETMASK_IP, -	WAN_BROADCAST_IP -}; - -/* 'modem_status' masks */ -#define	WAN_MODEM_CTS	0x0001	/* CTS line active */ -#define	WAN_MODEM_DCD	0x0002	/* DCD line active */ -#define	WAN_MODEM_DTR	0x0010	/* DTR line active */ -#define	WAN_MODEM_RTS	0x0020	/* RTS line active */ - -/*---------------------------------------------------------------------------- - * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL). - */ -typedef struct wanif_conf -{ -	unsigned magic;			/* magic number */ -	unsigned config_id;		/* configuration identifier */ -	char name[WAN_IFNAME_SZ+1];	/* interface name, ASCIIZ */ -	char addr[WAN_ADDRESS_SZ+1];	/* media address, ASCIIZ */ -	char usedby[USED_BY_FIELD];	/* used by API or WANPIPE */ -	unsigned idle_timeout;		/* sec, before disconnecting */ -	unsigned hold_timeout;		/* sec, before re-connecting */ -	unsigned cir;			/* Committed Information Rate fwd,bwd*/ -	unsigned bc;			/* Committed Burst Size fwd, bwd */ -	unsigned be;			/* Excess Burst Size fwd, bwd */  -	unsigned char enable_IPX;	/* Enable or Disable IPX */ -	unsigned char inarp;		/* Send Inverse ARP requests Y/N */ -	unsigned inarp_interval;	/* sec, between InARP requests */ -	unsigned long network_number;	/* Network Number for IPX */ -	char mc;			/* Multicast on or off */ -	char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */ -	unsigned char port;		/* board port */ -	unsigned char protocol;		/* prococol used in this channel (TCPOX25 or X25) */ -	char pap;			/* PAP enabled or disabled */ -	char chap;			/* CHAP enabled or disabled */ -	unsigned char userid[511];	/* List of User Id */ -	unsigned char passwd[511];	/* List of passwords */ -	unsigned char sysname[31];	/* Name of the system */ -	unsigned char ignore_dcd;	/* Protocol options: */ -	unsigned char ignore_cts;	/*  Ignore these to determine */ -	unsigned char ignore_keepalive;	/*  link status (Yes or No) */ -	unsigned char hdlc_streaming;	/*  Hdlc streaming mode (Y/N) */ -	unsigned keepalive_tx_tmr;	/* transmit keepalive timer */ -	unsigned keepalive_rx_tmr;	/* receive  keepalive timer */ -	unsigned keepalive_err_margin;	/* keepalive_error_tolerance */ -	unsigned slarp_timer;		/* SLARP request timer */ -	unsigned char ttl;		/* Time To Live for UDP security */ -	char interface;			/* RS-232/V.35, etc. */ -	char clocking;			/* external/internal */ -	unsigned bps;			/* data transfer rate */ -	unsigned mtu;			/* maximum transmit unit size */ -	unsigned char if_down;		/* brind down interface when disconnected */ -	unsigned char gateway;		/* Is this interface a gateway */ -	unsigned char true_if_encoding;	/* Set the dev->type to true board protocol */ - -	unsigned char asy_data_trans;     /* async API options */ -        unsigned char rts_hs_for_receive; /* async Protocol options */ -        unsigned char xon_xoff_hs_for_receive; -	unsigned char xon_xoff_hs_for_transmit; -	unsigned char dcd_hs_for_transmit; -	unsigned char cts_hs_for_transmit; -	unsigned char async_mode; -	unsigned tx_bits_per_char; -	unsigned rx_bits_per_char; -	unsigned stop_bits;   -	unsigned char parity; - 	unsigned break_timer; -        unsigned inter_char_timer; -	unsigned rx_complete_length; -	unsigned xon_char; -	unsigned xoff_char; -	unsigned char receive_only;	/*  no transmit buffering (Y/N) */ -} wanif_conf_t; +#include <uapi/linux/wanrouter.h> -#ifdef	__KERNEL__  /****** Kernel Interface ****************************************************/  #include <linux/fs.h>		/* support for device drivers */ @@ -528,5 +126,4 @@ extern long wanrouter_ioctl(struct file *file, unsigned int cmd, unsigned long a  /* list of registered devices */  extern struct wan_device *wanrouter_router_devlist; -#endif	/* __KERNEL__ */  #endif	/* _ROUTER_H */ diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index da70f0facd2..b7f45d48b2d 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h @@ -5,59 +5,14 @@   * by Ken Hollis <khollis@bitgate.com>   *   */ -  #ifndef _LINUX_WATCHDOG_H  #define _LINUX_WATCHDOG_H -#include <linux/ioctl.h> -#include <linux/types.h> - -#define	WATCHDOG_IOCTL_BASE	'W' - -struct watchdog_info { -	__u32 options;		/* Options the card/driver supports */ -	__u32 firmware_version;	/* Firmware version of the card */ -	__u8  identity[32];	/* Identity of the board */ -}; - -#define	WDIOC_GETSUPPORT	_IOR(WATCHDOG_IOCTL_BASE, 0, struct watchdog_info) -#define	WDIOC_GETSTATUS		_IOR(WATCHDOG_IOCTL_BASE, 1, int) -#define	WDIOC_GETBOOTSTATUS	_IOR(WATCHDOG_IOCTL_BASE, 2, int) -#define	WDIOC_GETTEMP		_IOR(WATCHDOG_IOCTL_BASE, 3, int) -#define	WDIOC_SETOPTIONS	_IOR(WATCHDOG_IOCTL_BASE, 4, int) -#define	WDIOC_KEEPALIVE		_IOR(WATCHDOG_IOCTL_BASE, 5, int) -#define	WDIOC_SETTIMEOUT        _IOWR(WATCHDOG_IOCTL_BASE, 6, int) -#define	WDIOC_GETTIMEOUT        _IOR(WATCHDOG_IOCTL_BASE, 7, int) -#define	WDIOC_SETPRETIMEOUT	_IOWR(WATCHDOG_IOCTL_BASE, 8, int) -#define	WDIOC_GETPRETIMEOUT	_IOR(WATCHDOG_IOCTL_BASE, 9, int) -#define	WDIOC_GETTIMELEFT	_IOR(WATCHDOG_IOCTL_BASE, 10, int) - -#define	WDIOF_UNKNOWN		-1	/* Unknown flag error */ -#define	WDIOS_UNKNOWN		-1	/* Unknown status error */ - -#define	WDIOF_OVERHEAT		0x0001	/* Reset due to CPU overheat */ -#define	WDIOF_FANFAULT		0x0002	/* Fan failed */ -#define	WDIOF_EXTERN1		0x0004	/* External relay 1 */ -#define	WDIOF_EXTERN2		0x0008	/* External relay 2 */ -#define	WDIOF_POWERUNDER	0x0010	/* Power bad/power fault */ -#define	WDIOF_CARDRESET		0x0020	/* Card previously reset the CPU */ -#define	WDIOF_POWEROVER		0x0040	/* Power over voltage */ -#define	WDIOF_SETTIMEOUT	0x0080  /* Set timeout (in seconds) */ -#define	WDIOF_MAGICCLOSE	0x0100	/* Supports magic close char */ -#define	WDIOF_PRETIMEOUT	0x0200  /* Pretimeout (in seconds), get/set */ -#define	WDIOF_ALARMONLY		0x0400	/* Watchdog triggers a management or -					   other external alarm not a reboot */ -#define	WDIOF_KEEPALIVEPING	0x8000	/* Keep alive ping reply */ - -#define	WDIOS_DISABLECARD	0x0001	/* Turn off the watchdog timer */ -#define	WDIOS_ENABLECARD	0x0002	/* Turn on the watchdog timer */ -#define	WDIOS_TEMPPANIC		0x0004	/* Kernel panic on temperature trip */ - -#ifdef __KERNEL__  #include <linux/bitops.h>  #include <linux/device.h>  #include <linux/cdev.h> +#include <uapi/linux/watchdog.h>  struct watchdog_ops;  struct watchdog_device; @@ -178,6 +133,4 @@ static inline void *watchdog_get_drvdata(struct watchdog_device *wdd)  extern int watchdog_register_device(struct watchdog_device *);  extern void watchdog_unregister_device(struct watchdog_device *); -#endif	/* __KERNEL__ */ -  #endif  /* ifndef _LINUX_WATCHDOG_H */ diff --git a/include/linux/wimax.h b/include/linux/wimax.h deleted file mode 100644 index 9f6b77af2f6..00000000000 --- a/include/linux/wimax.h +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Linux WiMax - * API for user space - * - * - * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - *   * Redistributions of source code must retain the above copyright - *     notice, this list of conditions and the following disclaimer. - *   * Redistributions in binary form must reproduce the above copyright - *     notice, this list of conditions and the following disclaimer in - *     the documentation and/or other materials provided with the - *     distribution. - *   * Neither the name of Intel Corporation nor the names of its - *     contributors may be used to endorse or promote products derived - *     from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * Intel Corporation <linux-wimax@intel.com> - * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> - *  - Initial implementation - * - * - * This file declares the user/kernel protocol that is spoken over - * Generic Netlink, as well as any type declaration that is to be used - * by kernel and user space. - * - * It is intended for user space to clone it verbatim to use it as a - * primary reference for definitions. - * - * Stuff intended for kernel usage as well as full protocol and stack - * documentation is rooted in include/net/wimax.h. - */ - -#ifndef __LINUX__WIMAX_H__ -#define __LINUX__WIMAX_H__ - -#include <linux/types.h> - -enum { -	/** -	 * Version of the interface (unsigned decimal, MMm, max 25.5) -	 * M - Major: change if removing or modifying an existing call. -	 * m - minor: change when adding a new call -	 */ -	WIMAX_GNL_VERSION = 01, -	/* Generic NetLink attributes */ -	WIMAX_GNL_ATTR_INVALID = 0x00, -	WIMAX_GNL_ATTR_MAX = 10, -}; - - -/* - * Generic NetLink operations - * - * Most of these map to an API call; _OP_ stands for operation, _RP_ - * for reply and _RE_ for report (aka: signal). - */ -enum { -	WIMAX_GNL_OP_MSG_FROM_USER,	/* User to kernel message */ -	WIMAX_GNL_OP_MSG_TO_USER,	/* Kernel to user message */ -	WIMAX_GNL_OP_RFKILL,	/* Run wimax_rfkill() */ -	WIMAX_GNL_OP_RESET,	/* Run wimax_rfkill() */ -	WIMAX_GNL_RE_STATE_CHANGE,	/* Report: status change */ -	WIMAX_GNL_OP_STATE_GET,		/* Request for current state */ -}; - - -/* Message from user / to user */ -enum { -	WIMAX_GNL_MSG_IFIDX = 1, -	WIMAX_GNL_MSG_PIPE_NAME, -	WIMAX_GNL_MSG_DATA, -}; - - -/* - * wimax_rfkill() - * - * The state of the radio (ON/OFF) is mapped to the rfkill subsystem's - * switch state (DISABLED/ENABLED). - */ -enum wimax_rf_state { -	WIMAX_RF_OFF = 0,	/* Radio is off, rfkill on/enabled */ -	WIMAX_RF_ON = 1,	/* Radio is on, rfkill off/disabled */ -	WIMAX_RF_QUERY = 2, -}; - -/* Attributes */ -enum { -	WIMAX_GNL_RFKILL_IFIDX = 1, -	WIMAX_GNL_RFKILL_STATE, -}; - - -/* Attributes for wimax_reset() */ -enum { -	WIMAX_GNL_RESET_IFIDX = 1, -}; - -/* Attributes for wimax_state_get() */ -enum { -	WIMAX_GNL_STGET_IFIDX = 1, -}; - -/* - * Attributes for the Report State Change - * - * For now we just have the old and new states; new attributes might - * be added later on. - */ -enum { -	WIMAX_GNL_STCH_IFIDX = 1, -	WIMAX_GNL_STCH_STATE_OLD, -	WIMAX_GNL_STCH_STATE_NEW, -}; - - -/** - * enum wimax_st - The different states of a WiMAX device - * @__WIMAX_ST_NULL: The device structure has been allocated and zeroed, - *     but still wimax_dev_add() hasn't been called. There is no state. - * - * @WIMAX_ST_DOWN: The device has been registered with the WiMAX and - *     networking stacks, but it is not initialized (normally that is - *     done with 'ifconfig DEV up' [or equivalent], which can upload - *     firmware and enable communications with the device). - *     In this state, the device is powered down and using as less - *     power as possible. - *     This state is the default after a call to wimax_dev_add(). It - *     is ok to have drivers move directly to %WIMAX_ST_UNINITIALIZED - *     or %WIMAX_ST_RADIO_OFF in _probe() after the call to - *     wimax_dev_add(). - *     It is recommended that the driver leaves this state when - *     calling 'ifconfig DEV up' and enters it back on 'ifconfig DEV - *     down'. - * - * @__WIMAX_ST_QUIESCING: The device is being torn down, so no API - *     operations are allowed to proceed except the ones needed to - *     complete the device clean up process. - * - * @WIMAX_ST_UNINITIALIZED: [optional] Communication with the device - *     is setup, but the device still requires some configuration - *     before being operational. - *     Some WiMAX API calls might work. - * - * @WIMAX_ST_RADIO_OFF: The device is fully up; radio is off (wether - *     by hardware or software switches). - *     It is recommended to always leave the device in this state - *     after initialization. - * - * @WIMAX_ST_READY: The device is fully up and radio is on. - * - * @WIMAX_ST_SCANNING: [optional] The device has been instructed to - *     scan. In this state, the device cannot be actively connected to - *     a network. - * - * @WIMAX_ST_CONNECTING: The device is connecting to a network. This - *     state exists because in some devices, the connect process can - *     include a number of negotiations between user space, kernel - *     space and the device. User space needs to know what the device - *     is doing. If the connect sequence in a device is atomic and - *     fast, the device can transition directly to CONNECTED - * - * @WIMAX_ST_CONNECTED: The device is connected to a network. - * - * @__WIMAX_ST_INVALID: This is an invalid state used to mark the - *     maximum numeric value of states. - * - * Description: - * - * Transitions from one state to another one are atomic and can only - * be caused in kernel space with wimax_state_change(). To read the - * state, use wimax_state_get(). - * - * States starting with __ are internal and shall not be used or - * referred to by drivers or userspace. They look ugly, but that's the - * point -- if any use is made non-internal to the stack, it is easier - * to catch on review. - * - * All API operations [with well defined exceptions] will take the - * device mutex before starting and then check the state. If the state - * is %__WIMAX_ST_NULL, %WIMAX_ST_DOWN, %WIMAX_ST_UNINITIALIZED or - * %__WIMAX_ST_QUIESCING, it will drop the lock and quit with - * -%EINVAL, -%ENOMEDIUM, -%ENOTCONN or -%ESHUTDOWN. - * - * The order of the definitions is important, so we can do numerical - * comparisons (eg: < %WIMAX_ST_RADIO_OFF means the device is not ready - * to operate). - */ -/* - * The allowed state transitions are described in the table below - * (states in rows can go to states in columns where there is an X): - * - *                                  UNINI   RADIO READY SCAN CONNEC CONNEC - *             NULL DOWN QUIESCING TIALIZED  OFF        NING  TING   TED - * NULL         -    x - * DOWN              -      x        x       x - * QUIESCING         x      - - * UNINITIALIZED            x        -       x - * RADIO_OFF                x                -     x - * READY                    x                x     -     x     x      x - * SCANNING                 x                x     x     -     x      x - * CONNECTING               x                x     x     x     -      x - * CONNECTED                x                x     x                  - - * - * This table not available in kernel-doc because the formatting messes it up. - */ - enum wimax_st { -	__WIMAX_ST_NULL = 0, -	WIMAX_ST_DOWN, -	__WIMAX_ST_QUIESCING, -	WIMAX_ST_UNINITIALIZED, -	WIMAX_ST_RADIO_OFF, -	WIMAX_ST_READY, -	WIMAX_ST_SCANNING, -	WIMAX_ST_CONNECTING, -	WIMAX_ST_CONNECTED, -	__WIMAX_ST_INVALID			/* Always keep last */ -}; - - -#endif /* #ifndef __LINUX__WIMAX_H__ */ diff --git a/include/linux/wireless.h b/include/linux/wireless.h index 4395b28bb86..4ea4c6e2383 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h @@ -6,690 +6,11 @@   * Authors :	Jean Tourrilhes - HPL - <jt@hpl.hp.com>   * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved.   */ -  #ifndef _LINUX_WIRELESS_H  #define _LINUX_WIRELESS_H -/************************** DOCUMENTATION **************************/ -/* - * Initial APIs (1996 -> onward) : - * ----------------------------- - * Basically, the wireless extensions are for now a set of standard ioctl - * call + /proc/net/wireless - * - * The entry /proc/net/wireless give statistics and information on the - * driver. - * This is better than having each driver having its entry because - * its centralised and we may remove the driver module safely. - * - * Ioctl are used to configure the driver and issue commands.  This is - * better than command line options of insmod because we may want to - * change dynamically (while the driver is running) some parameters. - * - * The ioctl mechanimsm are copied from standard devices ioctl. - * We have the list of command plus a structure descibing the - * data exchanged... - * Note that to add these ioctl, I was obliged to modify : - *	# net/core/dev.c (two place + add include) - *	# net/ipv4/af_inet.c (one place + add include) - * - * /proc/net/wireless is a copy of /proc/net/dev. - * We have a structure for data passed from the driver to /proc/net/wireless - * Too add this, I've modified : - *	# net/core/dev.c (two other places) - *	# include/linux/netdevice.h (one place) - *	# include/linux/proc_fs.h (one place) - * - * New driver API (2002 -> onward) : - * ------------------------------- - * This file is only concerned with the user space API and common definitions. - * The new driver API is defined and documented in : - *	# include/net/iw_handler.h - * - * Note as well that /proc/net/wireless implementation has now moved in : - *	# net/core/wireless.c - * - * Wireless Events (2002 -> onward) : - * -------------------------------- - * Events are defined at the end of this file, and implemented in : - *	# net/core/wireless.c - * - * Other comments : - * -------------- - * Do not add here things that are redundant with other mechanisms - * (drivers init, ifconfig, /proc/net/dev, ...) and with are not - * wireless specific. - * - * These wireless extensions are not magic : each driver has to provide - * support for them... - * - * IMPORTANT NOTE : As everything in the kernel, this is very much a - * work in progress. Contact me if you have ideas of improvements... - */ - -/***************************** INCLUDES *****************************/ - -#include <linux/types.h>		/* for __u* and __s* typedefs */ -#include <linux/socket.h>		/* for "struct sockaddr" et al	*/ -#include <linux/if.h>			/* for IFNAMSIZ and co... */ - -/***************************** VERSION *****************************/ -/* - * This constant is used to know the availability of the wireless - * extensions and to know which version of wireless extensions it is - * (there is some stuff that will be added in the future...) - * I just plan to increment with each new version. - */ -#define WIRELESS_EXT	22 - -/* - * Changes : - * - * V2 to V3 - * -------- - *	Alan Cox start some incompatibles changes. I've integrated a bit more. - *	- Encryption renamed to Encode to avoid US regulation problems - *	- Frequency changed from float to struct to avoid problems on old 386 - * - * V3 to V4 - * -------- - *	- Add sensitivity - * - * V4 to V5 - * -------- - *	- Missing encoding definitions in range - *	- Access points stuff - * - * V5 to V6 - * -------- - *	- 802.11 support (ESSID ioctls) - * - * V6 to V7 - * -------- - *	- define IW_ESSID_MAX_SIZE and IW_MAX_AP - * - * V7 to V8 - * -------- - *	- Changed my e-mail address - *	- More 802.11 support (nickname, rate, rts, frag) - *	- List index in frequencies - * - * V8 to V9 - * -------- - *	- Support for 'mode of operation' (ad-hoc, managed...) - *	- Support for unicast and multicast power saving - *	- Change encoding to support larger tokens (>64 bits) - *	- Updated iw_params (disable, flags) and use it for NWID - *	- Extracted iw_point from iwreq for clarity - * - * V9 to V10 - * --------- - *	- Add PM capability to range structure - *	- Add PM modifier : MAX/MIN/RELATIVE - *	- Add encoding option : IW_ENCODE_NOKEY - *	- Add TxPower ioctls (work like TxRate) - * - * V10 to V11 - * ---------- - *	- Add WE version in range (help backward/forward compatibility) - *	- Add retry ioctls (work like PM) - * - * V11 to V12 - * ---------- - *	- Add SIOCSIWSTATS to get /proc/net/wireless programatically - *	- Add DEV PRIVATE IOCTL to avoid collisions in SIOCDEVPRIVATE space - *	- Add new statistics (frag, retry, beacon) - *	- Add average quality (for user space calibration) - * - * V12 to V13 - * ---------- - *	- Document creation of new driver API. - *	- Extract union iwreq_data from struct iwreq (for new driver API). - *	- Rename SIOCSIWNAME as SIOCSIWCOMMIT - * - * V13 to V14 - * ---------- - *	- Wireless Events support : define struct iw_event - *	- Define additional specific event numbers - *	- Add "addr" and "param" fields in union iwreq_data - *	- AP scanning stuff (SIOCSIWSCAN and friends) - * - * V14 to V15 - * ---------- - *	- Add IW_PRIV_TYPE_ADDR for struct sockaddr private arg - *	- Make struct iw_freq signed (both m & e), add explicit padding - *	- Add IWEVCUSTOM for driver specific event/scanning token - *	- Add IW_MAX_GET_SPY for driver returning a lot of addresses - *	- Add IW_TXPOW_RANGE for range of Tx Powers - *	- Add IWEVREGISTERED & IWEVEXPIRED events for Access Points - *	- Add IW_MODE_MONITOR for passive monitor - * - * V15 to V16 - * ---------- - *	- Increase the number of bitrates in iw_range to 32 (for 802.11g) - *	- Increase the number of frequencies in iw_range to 32 (for 802.11b+a) - *	- Reshuffle struct iw_range for increases, add filler - *	- Increase IW_MAX_AP to 64 for driver returning a lot of addresses - *	- Remove IW_MAX_GET_SPY because conflict with enhanced spy support - *	- Add SIOCSIWTHRSPY/SIOCGIWTHRSPY and "struct iw_thrspy" - *	- Add IW_ENCODE_TEMP and iw_range->encoding_login_index - * - * V16 to V17 - * ---------- - *	- Add flags to frequency -> auto/fixed - *	- Document (struct iw_quality *)->updated, add new flags (INVALID) - *	- Wireless Event capability in struct iw_range - *	- Add support for relative TxPower (yick !) - * - * V17 to V18 (From Jouni Malinen <j@w1.fi>) - * ---------- - *	- Add support for WPA/WPA2 - *	- Add extended encoding configuration (SIOCSIWENCODEEXT and - *	  SIOCGIWENCODEEXT) - *	- Add SIOCSIWGENIE/SIOCGIWGENIE - *	- Add SIOCSIWMLME - *	- Add SIOCSIWPMKSA - *	- Add struct iw_range bit field for supported encoding capabilities - *	- Add optional scan request parameters for SIOCSIWSCAN - *	- Add SIOCSIWAUTH/SIOCGIWAUTH for setting authentication and WPA - *	  related parameters (extensible up to 4096 parameter values) - *	- Add wireless events: IWEVGENIE, IWEVMICHAELMICFAILURE, - *	  IWEVASSOCREQIE, IWEVASSOCRESPIE, IWEVPMKIDCAND - * - * V18 to V19 - * ---------- - *	- Remove (struct iw_point *)->pointer from events and streams - *	- Remove header includes to help user space - *	- Increase IW_ENCODING_TOKEN_MAX from 32 to 64 - *	- Add IW_QUAL_ALL_UPDATED and IW_QUAL_ALL_INVALID macros - *	- Add explicit flag to tell stats are in dBm : IW_QUAL_DBM - *	- Add IW_IOCTL_IDX() and IW_EVENT_IDX() macros - * - * V19 to V20 - * ---------- - *	- RtNetlink requests support (SET/GET) - * - * V20 to V21 - * ---------- - *	- Remove (struct net_device *)->get_wireless_stats() - *	- Change length in ESSID and NICK to strlen() instead of strlen()+1 - *	- Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers - *	- Power/Retry relative values no longer * 100000 - *	- Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI - * - * V21 to V22 - * ---------- - *	- Prevent leaking of kernel space in stream on 64 bits. - */ - -/**************************** CONSTANTS ****************************/ - -/* -------------------------- IOCTL LIST -------------------------- */ - -/* Wireless Identification */ -#define SIOCSIWCOMMIT	0x8B00		/* Commit pending changes to driver */ -#define SIOCGIWNAME	0x8B01		/* get name == wireless protocol */ -/* SIOCGIWNAME is used to verify the presence of Wireless Extensions. - * Common values : "IEEE 802.11-DS", "IEEE 802.11-FH", "IEEE 802.11b"... - * Don't put the name of your driver there, it's useless. */ - -/* Basic operations */ -#define SIOCSIWNWID	0x8B02		/* set network id (pre-802.11) */ -#define SIOCGIWNWID	0x8B03		/* get network id (the cell) */ -#define SIOCSIWFREQ	0x8B04		/* set channel/frequency (Hz) */ -#define SIOCGIWFREQ	0x8B05		/* get channel/frequency (Hz) */ -#define SIOCSIWMODE	0x8B06		/* set operation mode */ -#define SIOCGIWMODE	0x8B07		/* get operation mode */ -#define SIOCSIWSENS	0x8B08		/* set sensitivity (dBm) */ -#define SIOCGIWSENS	0x8B09		/* get sensitivity (dBm) */ - -/* Informative stuff */ -#define SIOCSIWRANGE	0x8B0A		/* Unused */ -#define SIOCGIWRANGE	0x8B0B		/* Get range of parameters */ -#define SIOCSIWPRIV	0x8B0C		/* Unused */ -#define SIOCGIWPRIV	0x8B0D		/* get private ioctl interface info */ -#define SIOCSIWSTATS	0x8B0E		/* Unused */ -#define SIOCGIWSTATS	0x8B0F		/* Get /proc/net/wireless stats */ -/* SIOCGIWSTATS is strictly used between user space and the kernel, and - * is never passed to the driver (i.e. the driver will never see it). */ - -/* Spy support (statistics per MAC address - used for Mobile IP support) */ -#define SIOCSIWSPY	0x8B10		/* set spy addresses */ -#define SIOCGIWSPY	0x8B11		/* get spy info (quality of link) */ -#define SIOCSIWTHRSPY	0x8B12		/* set spy threshold (spy event) */ -#define SIOCGIWTHRSPY	0x8B13		/* get spy threshold */ - -/* Access Point manipulation */ -#define SIOCSIWAP	0x8B14		/* set access point MAC addresses */ -#define SIOCGIWAP	0x8B15		/* get access point MAC addresses */ -#define SIOCGIWAPLIST	0x8B17		/* Deprecated in favor of scanning */ -#define SIOCSIWSCAN	0x8B18		/* trigger scanning (list cells) */ -#define SIOCGIWSCAN	0x8B19		/* get scanning results */ - -/* 802.11 specific support */ -#define SIOCSIWESSID	0x8B1A		/* set ESSID (network name) */ -#define SIOCGIWESSID	0x8B1B		/* get ESSID */ -#define SIOCSIWNICKN	0x8B1C		/* set node name/nickname */ -#define SIOCGIWNICKN	0x8B1D		/* get node name/nickname */ -/* As the ESSID and NICKN are strings up to 32 bytes long, it doesn't fit - * within the 'iwreq' structure, so we need to use the 'data' member to - * point to a string in user space, like it is done for RANGE... */ - -/* Other parameters useful in 802.11 and some other devices */ -#define SIOCSIWRATE	0x8B20		/* set default bit rate (bps) */ -#define SIOCGIWRATE	0x8B21		/* get default bit rate (bps) */ -#define SIOCSIWRTS	0x8B22		/* set RTS/CTS threshold (bytes) */ -#define SIOCGIWRTS	0x8B23		/* get RTS/CTS threshold (bytes) */ -#define SIOCSIWFRAG	0x8B24		/* set fragmentation thr (bytes) */ -#define SIOCGIWFRAG	0x8B25		/* get fragmentation thr (bytes) */ -#define SIOCSIWTXPOW	0x8B26		/* set transmit power (dBm) */ -#define SIOCGIWTXPOW	0x8B27		/* get transmit power (dBm) */ -#define SIOCSIWRETRY	0x8B28		/* set retry limits and lifetime */ -#define SIOCGIWRETRY	0x8B29		/* get retry limits and lifetime */ - -/* Encoding stuff (scrambling, hardware security, WEP...) */ -#define SIOCSIWENCODE	0x8B2A		/* set encoding token & mode */ -#define SIOCGIWENCODE	0x8B2B		/* get encoding token & mode */ -/* Power saving stuff (power management, unicast and multicast) */ -#define SIOCSIWPOWER	0x8B2C		/* set Power Management settings */ -#define SIOCGIWPOWER	0x8B2D		/* get Power Management settings */ - -/* WPA : Generic IEEE 802.11 informatiom element (e.g., for WPA/RSN/WMM). - * This ioctl uses struct iw_point and data buffer that includes IE id and len - * fields. More than one IE may be included in the request. Setting the generic - * IE to empty buffer (len=0) removes the generic IE from the driver. Drivers - * are allowed to generate their own WPA/RSN IEs, but in these cases, drivers - * are required to report the used IE as a wireless event, e.g., when - * associating with an AP. */ -#define SIOCSIWGENIE	0x8B30		/* set generic IE */ -#define SIOCGIWGENIE	0x8B31		/* get generic IE */ - -/* WPA : IEEE 802.11 MLME requests */ -#define SIOCSIWMLME	0x8B16		/* request MLME operation; uses -					 * struct iw_mlme */ -/* WPA : Authentication mode parameters */ -#define SIOCSIWAUTH	0x8B32		/* set authentication mode params */ -#define SIOCGIWAUTH	0x8B33		/* get authentication mode params */ - -/* WPA : Extended version of encoding configuration */ -#define SIOCSIWENCODEEXT 0x8B34		/* set encoding token & mode */ -#define SIOCGIWENCODEEXT 0x8B35		/* get encoding token & mode */ - -/* WPA2 : PMKSA cache management */ -#define SIOCSIWPMKSA	0x8B36		/* PMKSA cache operation */ - -/* -------------------- DEV PRIVATE IOCTL LIST -------------------- */ - -/* These 32 ioctl are wireless device private, for 16 commands. - * Each driver is free to use them for whatever purpose it chooses, - * however the driver *must* export the description of those ioctls - * with SIOCGIWPRIV and *must* use arguments as defined below. - * If you don't follow those rules, DaveM is going to hate you (reason : - * it make mixed 32/64bit operation impossible). - */ -#define SIOCIWFIRSTPRIV	0x8BE0 -#define SIOCIWLASTPRIV	0x8BFF -/* Previously, we were using SIOCDEVPRIVATE, but we now have our - * separate range because of collisions with other tools such as - * 'mii-tool'. - * We now have 32 commands, so a bit more space ;-). - * Also, all 'even' commands are only usable by root and don't return the - * content of ifr/iwr to user (but you are not obliged to use the set/get - * convention, just use every other two command). More details in iwpriv.c. - * And I repeat : you are not forced to use them with iwpriv, but you - * must be compliant with it. - */ - -/* ------------------------- IOCTL STUFF ------------------------- */ - -/* The first and the last (range) */ -#define SIOCIWFIRST	0x8B00 -#define SIOCIWLAST	SIOCIWLASTPRIV		/* 0x8BFF */ -#define IW_IOCTL_IDX(cmd)	((cmd) - SIOCIWFIRST) -#define IW_HANDLER(id, func)			\ -	[IW_IOCTL_IDX(id)] = func - -/* Odd : get (world access), even : set (root access) */ -#define IW_IS_SET(cmd)	(!((cmd) & 0x1)) -#define IW_IS_GET(cmd)	((cmd) & 0x1) - -/* ----------------------- WIRELESS EVENTS ----------------------- */ -/* Those are *NOT* ioctls, do not issue request on them !!! */ -/* Most events use the same identifier as ioctl requests */ - -#define IWEVTXDROP	0x8C00		/* Packet dropped to excessive retry */ -#define IWEVQUAL	0x8C01		/* Quality part of statistics (scan) */ -#define IWEVCUSTOM	0x8C02		/* Driver specific ascii string */ -#define IWEVREGISTERED	0x8C03		/* Discovered a new node (AP mode) */ -#define IWEVEXPIRED	0x8C04		/* Expired a node (AP mode) */ -#define IWEVGENIE	0x8C05		/* Generic IE (WPA, RSN, WMM, ..) -					 * (scan results); This includes id and -					 * length fields. One IWEVGENIE may -					 * contain more than one IE. Scan -					 * results may contain one or more -					 * IWEVGENIE events. */ -#define IWEVMICHAELMICFAILURE 0x8C06	/* Michael MIC failure -					 * (struct iw_michaelmicfailure) -					 */ -#define IWEVASSOCREQIE	0x8C07		/* IEs used in (Re)Association Request. -					 * The data includes id and length -					 * fields and may contain more than one -					 * IE. This event is required in -					 * Managed mode if the driver -					 * generates its own WPA/RSN IE. This -					 * should be sent just before -					 * IWEVREGISTERED event for the -					 * association. */ -#define IWEVASSOCRESPIE	0x8C08		/* IEs used in (Re)Association -					 * Response. The data includes id and -					 * length fields and may contain more -					 * than one IE. This may be sent -					 * between IWEVASSOCREQIE and -					 * IWEVREGISTERED events for the -					 * association. */ -#define IWEVPMKIDCAND	0x8C09		/* PMKID candidate for RSN -					 * pre-authentication -					 * (struct iw_pmkid_cand) */ - -#define IWEVFIRST	0x8C00 -#define IW_EVENT_IDX(cmd)	((cmd) - IWEVFIRST) - -/* ------------------------- PRIVATE INFO ------------------------- */ -/* - * The following is used with SIOCGIWPRIV. It allow a driver to define - * the interface (name, type of data) for its private ioctl. - * Privates ioctl are SIOCIWFIRSTPRIV -> SIOCIWLASTPRIV - */ - -#define IW_PRIV_TYPE_MASK	0x7000	/* Type of arguments */ -#define IW_PRIV_TYPE_NONE	0x0000 -#define IW_PRIV_TYPE_BYTE	0x1000	/* Char as number */ -#define IW_PRIV_TYPE_CHAR	0x2000	/* Char as character */ -#define IW_PRIV_TYPE_INT	0x4000	/* 32 bits int */ -#define IW_PRIV_TYPE_FLOAT	0x5000	/* struct iw_freq */ -#define IW_PRIV_TYPE_ADDR	0x6000	/* struct sockaddr */ - -#define IW_PRIV_SIZE_FIXED	0x0800	/* Variable or fixed number of args */ - -#define IW_PRIV_SIZE_MASK	0x07FF	/* Max number of those args */ - -/* - * Note : if the number of args is fixed and the size < 16 octets, - * instead of passing a pointer we will put args in the iwreq struct... - */ - -/* ----------------------- OTHER CONSTANTS ----------------------- */ - -/* Maximum frequencies in the range struct */ -#define IW_MAX_FREQUENCIES	32 -/* Note : if you have something like 80 frequencies, - * don't increase this constant and don't fill the frequency list. - * The user will be able to set by channel anyway... */ - -/* Maximum bit rates in the range struct */ -#define IW_MAX_BITRATES		32 - -/* Maximum tx powers in the range struct */ -#define IW_MAX_TXPOWER		8 -/* Note : if you more than 8 TXPowers, just set the max and min or - * a few of them in the struct iw_range. */ - -/* Maximum of address that you may set with SPY */ -#define IW_MAX_SPY		8 - -/* Maximum of address that you may get in the -   list of access points in range */ -#define IW_MAX_AP		64 - -/* Maximum size of the ESSID and NICKN strings */ -#define IW_ESSID_MAX_SIZE	32 - -/* Modes of operation */ -#define IW_MODE_AUTO	0	/* Let the driver decides */ -#define IW_MODE_ADHOC	1	/* Single cell network */ -#define IW_MODE_INFRA	2	/* Multi cell network, roaming, ... */ -#define IW_MODE_MASTER	3	/* Synchronisation master or Access Point */ -#define IW_MODE_REPEAT	4	/* Wireless Repeater (forwarder) */ -#define IW_MODE_SECOND	5	/* Secondary master/repeater (backup) */ -#define IW_MODE_MONITOR	6	/* Passive monitor (listen only) */ -#define IW_MODE_MESH	7	/* Mesh (IEEE 802.11s) network */ - -/* Statistics flags (bitmask in updated) */ -#define IW_QUAL_QUAL_UPDATED	0x01	/* Value was updated since last read */ -#define IW_QUAL_LEVEL_UPDATED	0x02 -#define IW_QUAL_NOISE_UPDATED	0x04 -#define IW_QUAL_ALL_UPDATED	0x07 -#define IW_QUAL_DBM		0x08	/* Level + Noise are dBm */ -#define IW_QUAL_QUAL_INVALID	0x10	/* Driver doesn't provide value */ -#define IW_QUAL_LEVEL_INVALID	0x20 -#define IW_QUAL_NOISE_INVALID	0x40 -#define IW_QUAL_RCPI		0x80	/* Level + Noise are 802.11k RCPI */ -#define IW_QUAL_ALL_INVALID	0x70 - -/* Frequency flags */ -#define IW_FREQ_AUTO		0x00	/* Let the driver decides */ -#define IW_FREQ_FIXED		0x01	/* Force a specific value */ - -/* Maximum number of size of encoding token available - * they are listed in the range structure */ -#define IW_MAX_ENCODING_SIZES	8 - -/* Maximum size of the encoding token in bytes */ -#define IW_ENCODING_TOKEN_MAX	64	/* 512 bits (for now) */ - -/* Flags for encoding (along with the token) */ -#define IW_ENCODE_INDEX		0x00FF	/* Token index (if needed) */ -#define IW_ENCODE_FLAGS		0xFF00	/* Flags defined below */ -#define IW_ENCODE_MODE		0xF000	/* Modes defined below */ -#define IW_ENCODE_DISABLED	0x8000	/* Encoding disabled */ -#define IW_ENCODE_ENABLED	0x0000	/* Encoding enabled */ -#define IW_ENCODE_RESTRICTED	0x4000	/* Refuse non-encoded packets */ -#define IW_ENCODE_OPEN		0x2000	/* Accept non-encoded packets */ -#define IW_ENCODE_NOKEY		0x0800  /* Key is write only, so not present */ -#define IW_ENCODE_TEMP		0x0400  /* Temporary key */ - -/* Power management flags available (along with the value, if any) */ -#define IW_POWER_ON		0x0000	/* No details... */ -#define IW_POWER_TYPE		0xF000	/* Type of parameter */ -#define IW_POWER_PERIOD		0x1000	/* Value is a period/duration of  */ -#define IW_POWER_TIMEOUT	0x2000	/* Value is a timeout (to go asleep) */ -#define IW_POWER_MODE		0x0F00	/* Power Management mode */ -#define IW_POWER_UNICAST_R	0x0100	/* Receive only unicast messages */ -#define IW_POWER_MULTICAST_R	0x0200	/* Receive only multicast messages */ -#define IW_POWER_ALL_R		0x0300	/* Receive all messages though PM */ -#define IW_POWER_FORCE_S	0x0400	/* Force PM procedure for sending unicast */ -#define IW_POWER_REPEATER	0x0800	/* Repeat broadcast messages in PM period */ -#define IW_POWER_MODIFIER	0x000F	/* Modify a parameter */ -#define IW_POWER_MIN		0x0001	/* Value is a minimum  */ -#define IW_POWER_MAX		0x0002	/* Value is a maximum */ -#define IW_POWER_RELATIVE	0x0004	/* Value is not in seconds/ms/us */ - -/* Transmit Power flags available */ -#define IW_TXPOW_TYPE		0x00FF	/* Type of value */ -#define IW_TXPOW_DBM		0x0000	/* Value is in dBm */ -#define IW_TXPOW_MWATT		0x0001	/* Value is in mW */ -#define IW_TXPOW_RELATIVE	0x0002	/* Value is in arbitrary units */ -#define IW_TXPOW_RANGE		0x1000	/* Range of value between min/max */ - -/* Retry limits and lifetime flags available */ -#define IW_RETRY_ON		0x0000	/* No details... */ -#define IW_RETRY_TYPE		0xF000	/* Type of parameter */ -#define IW_RETRY_LIMIT		0x1000	/* Maximum number of retries*/ -#define IW_RETRY_LIFETIME	0x2000	/* Maximum duration of retries in us */ -#define IW_RETRY_MODIFIER	0x00FF	/* Modify a parameter */ -#define IW_RETRY_MIN		0x0001	/* Value is a minimum  */ -#define IW_RETRY_MAX		0x0002	/* Value is a maximum */ -#define IW_RETRY_RELATIVE	0x0004	/* Value is not in seconds/ms/us */ -#define IW_RETRY_SHORT		0x0010	/* Value is for short packets  */ -#define IW_RETRY_LONG		0x0020	/* Value is for long packets */ - -/* Scanning request flags */ -#define IW_SCAN_DEFAULT		0x0000	/* Default scan of the driver */ -#define IW_SCAN_ALL_ESSID	0x0001	/* Scan all ESSIDs */ -#define IW_SCAN_THIS_ESSID	0x0002	/* Scan only this ESSID */ -#define IW_SCAN_ALL_FREQ	0x0004	/* Scan all Frequencies */ -#define IW_SCAN_THIS_FREQ	0x0008	/* Scan only this Frequency */ -#define IW_SCAN_ALL_MODE	0x0010	/* Scan all Modes */ -#define IW_SCAN_THIS_MODE	0x0020	/* Scan only this Mode */ -#define IW_SCAN_ALL_RATE	0x0040	/* Scan all Bit-Rates */ -#define IW_SCAN_THIS_RATE	0x0080	/* Scan only this Bit-Rate */ -/* struct iw_scan_req scan_type */ -#define IW_SCAN_TYPE_ACTIVE 0 -#define IW_SCAN_TYPE_PASSIVE 1 -/* Maximum size of returned data */ -#define IW_SCAN_MAX_DATA	4096	/* In bytes */ - -/* Scan capability flags - in (struct iw_range *)->scan_capa */ -#define IW_SCAN_CAPA_NONE		0x00 -#define IW_SCAN_CAPA_ESSID		0x01 -#define IW_SCAN_CAPA_BSSID		0x02 -#define IW_SCAN_CAPA_CHANNEL	0x04 -#define IW_SCAN_CAPA_MODE		0x08 -#define IW_SCAN_CAPA_RATE		0x10 -#define IW_SCAN_CAPA_TYPE		0x20 -#define IW_SCAN_CAPA_TIME		0x40 - -/* Max number of char in custom event - use multiple of them if needed */ -#define IW_CUSTOM_MAX		256	/* In bytes */ - -/* Generic information element */ -#define IW_GENERIC_IE_MAX	1024 - -/* MLME requests (SIOCSIWMLME / struct iw_mlme) */ -#define IW_MLME_DEAUTH		0 -#define IW_MLME_DISASSOC	1 -#define IW_MLME_AUTH		2 -#define IW_MLME_ASSOC		3 - -/* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */ -#define IW_AUTH_INDEX		0x0FFF -#define IW_AUTH_FLAGS		0xF000 -/* SIOCSIWAUTH/SIOCGIWAUTH parameters (0 .. 4095) - * (IW_AUTH_INDEX mask in struct iw_param flags; this is the index of the - * parameter that is being set/get to; value will be read/written to - * struct iw_param value field) */ -#define IW_AUTH_WPA_VERSION		0 -#define IW_AUTH_CIPHER_PAIRWISE		1 -#define IW_AUTH_CIPHER_GROUP		2 -#define IW_AUTH_KEY_MGMT		3 -#define IW_AUTH_TKIP_COUNTERMEASURES	4 -#define IW_AUTH_DROP_UNENCRYPTED	5 -#define IW_AUTH_80211_AUTH_ALG		6 -#define IW_AUTH_WPA_ENABLED		7 -#define IW_AUTH_RX_UNENCRYPTED_EAPOL	8 -#define IW_AUTH_ROAMING_CONTROL		9 -#define IW_AUTH_PRIVACY_INVOKED		10 -#define IW_AUTH_CIPHER_GROUP_MGMT	11 -#define IW_AUTH_MFP			12 - -/* IW_AUTH_WPA_VERSION values (bit field) */ -#define IW_AUTH_WPA_VERSION_DISABLED	0x00000001 -#define IW_AUTH_WPA_VERSION_WPA		0x00000002 -#define IW_AUTH_WPA_VERSION_WPA2	0x00000004 - -/* IW_AUTH_PAIRWISE_CIPHER, IW_AUTH_GROUP_CIPHER, and IW_AUTH_CIPHER_GROUP_MGMT - * values (bit field) */ -#define IW_AUTH_CIPHER_NONE	0x00000001 -#define IW_AUTH_CIPHER_WEP40	0x00000002 -#define IW_AUTH_CIPHER_TKIP	0x00000004 -#define IW_AUTH_CIPHER_CCMP	0x00000008 -#define IW_AUTH_CIPHER_WEP104	0x00000010 -#define IW_AUTH_CIPHER_AES_CMAC	0x00000020 - -/* IW_AUTH_KEY_MGMT values (bit field) */ -#define IW_AUTH_KEY_MGMT_802_1X	1 -#define IW_AUTH_KEY_MGMT_PSK	2 - -/* IW_AUTH_80211_AUTH_ALG values (bit field) */ -#define IW_AUTH_ALG_OPEN_SYSTEM	0x00000001 -#define IW_AUTH_ALG_SHARED_KEY	0x00000002 -#define IW_AUTH_ALG_LEAP	0x00000004 - -/* IW_AUTH_ROAMING_CONTROL values */ -#define IW_AUTH_ROAMING_ENABLE	0	/* driver/firmware based roaming */ -#define IW_AUTH_ROAMING_DISABLE	1	/* user space program used for roaming -					 * control */ - -/* IW_AUTH_MFP (management frame protection) values */ -#define IW_AUTH_MFP_DISABLED	0	/* MFP disabled */ -#define IW_AUTH_MFP_OPTIONAL	1	/* MFP optional */ -#define IW_AUTH_MFP_REQUIRED	2	/* MFP required */ - -/* SIOCSIWENCODEEXT definitions */ -#define IW_ENCODE_SEQ_MAX_SIZE	8 -/* struct iw_encode_ext ->alg */ -#define IW_ENCODE_ALG_NONE	0 -#define IW_ENCODE_ALG_WEP	1 -#define IW_ENCODE_ALG_TKIP	2 -#define IW_ENCODE_ALG_CCMP	3 -#define IW_ENCODE_ALG_PMK	4 -#define IW_ENCODE_ALG_AES_CMAC	5 -/* struct iw_encode_ext ->ext_flags */ -#define IW_ENCODE_EXT_TX_SEQ_VALID	0x00000001 -#define IW_ENCODE_EXT_RX_SEQ_VALID	0x00000002 -#define IW_ENCODE_EXT_GROUP_KEY		0x00000004 -#define IW_ENCODE_EXT_SET_TX_KEY	0x00000008 - -/* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */ -#define IW_MICFAILURE_KEY_ID	0x00000003 /* Key ID 0..3 */ -#define IW_MICFAILURE_GROUP	0x00000004 -#define IW_MICFAILURE_PAIRWISE	0x00000008 -#define IW_MICFAILURE_STAKEY	0x00000010 -#define IW_MICFAILURE_COUNT	0x00000060 /* 1 or 2 (0 = count not supported) -					    */ - -/* Bit field values for enc_capa in struct iw_range */ -#define IW_ENC_CAPA_WPA		0x00000001 -#define IW_ENC_CAPA_WPA2	0x00000002 -#define IW_ENC_CAPA_CIPHER_TKIP	0x00000004 -#define IW_ENC_CAPA_CIPHER_CCMP	0x00000008 -#define IW_ENC_CAPA_4WAY_HANDSHAKE	0x00000010 - -/* Event capability macros - in (struct iw_range *)->event_capa - * Because we have more than 32 possible events, we use an array of - * 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */ -#define IW_EVENT_CAPA_BASE(cmd)		((cmd >= SIOCIWFIRSTPRIV) ? \ -					 (cmd - SIOCIWFIRSTPRIV + 0x60) : \ -					 (cmd - SIOCIWFIRST)) -#define IW_EVENT_CAPA_INDEX(cmd)	(IW_EVENT_CAPA_BASE(cmd) >> 5) -#define IW_EVENT_CAPA_MASK(cmd)		(1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F)) -/* Event capability constants - event autogenerated by the kernel - * This list is valid for most 802.11 devices, customise as needed... */ -#define IW_EVENT_CAPA_K_0	(IW_EVENT_CAPA_MASK(0x8B04) | \ -				 IW_EVENT_CAPA_MASK(0x8B06) | \ -				 IW_EVENT_CAPA_MASK(0x8B1A)) -#define IW_EVENT_CAPA_K_1	(IW_EVENT_CAPA_MASK(0x8B2A)) -/* "Easy" macro to set events in iw_range (less efficient) */ -#define IW_EVENT_CAPA_SET(event_capa, cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd)) -#define IW_EVENT_CAPA_SET_KERNEL(event_capa) {event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; } - - -/****************************** TYPES ******************************/ - -/* --------------------------- SUBTYPES --------------------------- */ -/* - *	Generic format for most parameters that fit in an int - */ -struct	iw_param -{ -  __s32		value;		/* The value of the parameter itself */ -  __u8		fixed;		/* Hardware should not use auto select */ -  __u8		disabled;	/* Disable the feature */ -  __u16		flags;		/* Various specifc flags (if any) */ -}; - -/* - *	For all data larger than 16 octets, we need to use a - *	pointer to memory allocated in user space. - */ -struct	iw_point -{ -  void __user	*pointer;	/* Pointer to the data  (in user space) */ -  __u16		length;		/* number of fields or size in bytes */ -  __u16		flags;		/* Optional params */ -}; +#include <uapi/linux/wireless.h> -#ifdef __KERNEL__  #ifdef CONFIG_COMPAT  #include <linux/compat.h> @@ -700,432 +21,6 @@ struct compat_iw_point {  	__u16 flags;  };  #endif -#endif - -/* - *	A frequency - *	For numbers lower than 10^9, we encode the number in 'm' and - *	set 'e' to 0 - *	For number greater than 10^9, we divide it by the lowest power - *	of 10 to get 'm' lower than 10^9, with 'm'= f / (10^'e')... - *	The power of 10 is in 'e', the result of the division is in 'm'. - */ -struct	iw_freq -{ -	__s32		m;		/* Mantissa */ -	__s16		e;		/* Exponent */ -	__u8		i;		/* List index (when in range struct) */ -	__u8		flags;		/* Flags (fixed/auto) */ -}; - -/* - *	Quality of the link - */ -struct	iw_quality -{ -	__u8		qual;		/* link quality (%retries, SNR, -					   %missed beacons or better...) */ -	__u8		level;		/* signal level (dBm) */ -	__u8		noise;		/* noise level (dBm) */ -	__u8		updated;	/* Flags to know if updated */ -}; - -/* - *	Packet discarded in the wireless adapter due to - *	"wireless" specific problems... - *	Note : the list of counter and statistics in net_device_stats - *	is already pretty exhaustive, and you should use that first. - *	This is only additional stats... - */ -struct	iw_discarded -{ -	__u32		nwid;		/* Rx : Wrong nwid/essid */ -	__u32		code;		/* Rx : Unable to code/decode (WEP) */ -	__u32		fragment;	/* Rx : Can't perform MAC reassembly */ -	__u32		retries;	/* Tx : Max MAC retries num reached */ -	__u32		misc;		/* Others cases */ -}; - -/* - *	Packet/Time period missed in the wireless adapter due to - *	"wireless" specific problems... - */ -struct	iw_missed -{ -	__u32		beacon;		/* Missed beacons/superframe */ -}; - -/* - *	Quality range (for spy threshold) - */ -struct	iw_thrspy -{ -	struct sockaddr		addr;		/* Source address (hw/mac) */ -	struct iw_quality	qual;		/* Quality of the link */ -	struct iw_quality	low;		/* Low threshold */ -	struct iw_quality	high;		/* High threshold */ -}; - -/* - *	Optional data for scan request - * - *	Note: these optional parameters are controlling parameters for the - *	scanning behavior, these do not apply to getting scan results - *	(SIOCGIWSCAN). Drivers are expected to keep a local BSS table and - *	provide a merged results with all BSSes even if the previous scan - *	request limited scanning to a subset, e.g., by specifying an SSID. - *	Especially, scan results are required to include an entry for the - *	current BSS if the driver is in Managed mode and associated with an AP. - */ -struct	iw_scan_req -{ -	__u8		scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */ -	__u8		essid_len; -	__u8		num_channels; /* num entries in channel_list; -				       * 0 = scan all allowed channels */ -	__u8		flags; /* reserved as padding; use zero, this may -				* be used in the future for adding flags -				* to request different scan behavior */ -	struct sockaddr	bssid; /* ff:ff:ff:ff:ff:ff for broadcast BSSID or -				* individual address of a specific BSS */ - -	/* -	 * Use this ESSID if IW_SCAN_THIS_ESSID flag is used instead of using -	 * the current ESSID. This allows scan requests for specific ESSID -	 * without having to change the current ESSID and potentially breaking -	 * the current association. -	 */ -	__u8		essid[IW_ESSID_MAX_SIZE]; - -	/* -	 * Optional parameters for changing the default scanning behavior. -	 * These are based on the MLME-SCAN.request from IEEE Std 802.11. -	 * TU is 1.024 ms. If these are set to 0, driver is expected to use -	 * reasonable default values. min_channel_time defines the time that -	 * will be used to wait for the first reply on each channel. If no -	 * replies are received, next channel will be scanned after this. If -	 * replies are received, total time waited on the channel is defined by -	 * max_channel_time. -	 */ -	__u32		min_channel_time; /* in TU */ -	__u32		max_channel_time; /* in TU */ - -	struct iw_freq	channel_list[IW_MAX_FREQUENCIES]; -}; - -/* ------------------------- WPA SUPPORT ------------------------- */ - -/* - *	Extended data structure for get/set encoding (this is used with - *	SIOCSIWENCODEEXT/SIOCGIWENCODEEXT. struct iw_point and IW_ENCODE_* - *	flags are used in the same way as with SIOCSIWENCODE/SIOCGIWENCODE and - *	only the data contents changes (key data -> this structure, including - *	key data). - * - *	If the new key is the first group key, it will be set as the default - *	TX key. Otherwise, default TX key index is only changed if - *	IW_ENCODE_EXT_SET_TX_KEY flag is set. - * - *	Key will be changed with SIOCSIWENCODEEXT in all cases except for - *	special "change TX key index" operation which is indicated by setting - *	key_len = 0 and ext_flags |= IW_ENCODE_EXT_SET_TX_KEY. - * - *	tx_seq/rx_seq are only used when respective - *	IW_ENCODE_EXT_{TX,RX}_SEQ_VALID flag is set in ext_flags. Normal - *	TKIP/CCMP operation is to set RX seq with SIOCSIWENCODEEXT and start - *	TX seq from zero whenever key is changed. SIOCGIWENCODEEXT is normally - *	used only by an Authenticator (AP or an IBSS station) to get the - *	current TX sequence number. Using TX_SEQ_VALID for SIOCSIWENCODEEXT and - *	RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for - *	debugging/testing. - */ -struct	iw_encode_ext -{ -	__u32		ext_flags; /* IW_ENCODE_EXT_* */ -	__u8		tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -	__u8		rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -	struct sockaddr	addr; /* ff:ff:ff:ff:ff:ff for broadcast/multicast -			       * (group) keys or unicast address for -			       * individual keys */ -	__u16		alg; /* IW_ENCODE_ALG_* */ -	__u16		key_len; -	__u8		key[0]; -}; - -/* SIOCSIWMLME data */ -struct	iw_mlme -{ -	__u16		cmd; /* IW_MLME_* */ -	__u16		reason_code; -	struct sockaddr	addr; -}; - -/* SIOCSIWPMKSA data */ -#define IW_PMKSA_ADD		1 -#define IW_PMKSA_REMOVE		2 -#define IW_PMKSA_FLUSH		3 - -#define IW_PMKID_LEN	16 - -struct	iw_pmksa -{ -	__u32		cmd; /* IW_PMKSA_* */ -	struct sockaddr	bssid; -	__u8		pmkid[IW_PMKID_LEN]; -}; - -/* IWEVMICHAELMICFAILURE data */ -struct	iw_michaelmicfailure -{ -	__u32		flags; -	struct sockaddr	src_addr; -	__u8		tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -}; - -/* IWEVPMKIDCAND data */ -#define IW_PMKID_CAND_PREAUTH	0x00000001 /* RNS pre-authentication enabled */ -struct	iw_pmkid_cand -{ -	__u32		flags; /* IW_PMKID_CAND_* */ -	__u32		index; /* the smaller the index, the higher the -				* priority */ -	struct sockaddr	bssid; -}; - -/* ------------------------ WIRELESS STATS ------------------------ */ -/* - * Wireless statistics (used for /proc/net/wireless) - */ -struct	iw_statistics -{ -	__u16		status;		/* Status -					 * - device dependent for now */ - -	struct iw_quality	qual;		/* Quality of the link -						 * (instant/mean/max) */ -	struct iw_discarded	discard;	/* Packet discarded counts */ -	struct iw_missed	miss;		/* Packet missed counts */ -}; - -/* ------------------------ IOCTL REQUEST ------------------------ */ -/* - * This structure defines the payload of an ioctl, and is used  - * below. - * - * Note that this structure should fit on the memory footprint - * of iwreq (which is the same as ifreq), which mean a max size of - * 16 octets = 128 bits. Warning, pointers might be 64 bits wide... - * You should check this when increasing the structures defined - * above in this file... - */ -union	iwreq_data -{ -	/* Config - generic */ -	char		name[IFNAMSIZ]; -	/* Name : used to verify the presence of  wireless extensions. -	 * Name of the protocol/provider... */ - -	struct iw_point	essid;		/* Extended network name */ -	struct iw_param	nwid;		/* network id (or domain - the cell) */ -	struct iw_freq	freq;		/* frequency or channel : -					 * 0-1000 = channel -					 * > 1000 = frequency in Hz */ - -	struct iw_param	sens;		/* signal level threshold */ -	struct iw_param	bitrate;	/* default bit rate */ -	struct iw_param	txpower;	/* default transmit power */ -	struct iw_param	rts;		/* RTS threshold threshold */ -	struct iw_param	frag;		/* Fragmentation threshold */ -	__u32		mode;		/* Operation mode */ -	struct iw_param	retry;		/* Retry limits & lifetime */ - -	struct iw_point	encoding;	/* Encoding stuff : tokens */ -	struct iw_param	power;		/* PM duration/timeout */ -	struct iw_quality qual;		/* Quality part of statistics */ - -	struct sockaddr	ap_addr;	/* Access point address */ -	struct sockaddr	addr;		/* Destination address (hw/mac) */ - -	struct iw_param	param;		/* Other small parameters */ -	struct iw_point	data;		/* Other large parameters */ -}; - -/* - * The structure to exchange data for ioctl. - * This structure is the same as 'struct ifreq', but (re)defined for - * convenience... - * Do I need to remind you about structure size (32 octets) ? - */ -struct	iwreq  -{ -	union -	{ -		char	ifrn_name[IFNAMSIZ];	/* if name, e.g. "eth0" */ -	} ifr_ifrn; - -	/* Data part (defined just above) */ -	union	iwreq_data	u; -}; - -/* -------------------------- IOCTL DATA -------------------------- */ -/* - *	For those ioctl which want to exchange mode data that what could - *	fit in the above structure... - */ - -/* - *	Range of parameters - */ - -struct	iw_range -{ -	/* Informative stuff (to choose between different interface) */ -	__u32		throughput;	/* To give an idea... */ -	/* In theory this value should be the maximum benchmarked -	 * TCP/IP throughput, because with most of these devices the -	 * bit rate is meaningless (overhead an co) to estimate how -	 * fast the connection will go and pick the fastest one. -	 * I suggest people to play with Netperf or any benchmark... -	 */ - -	/* NWID (or domain id) */ -	__u32		min_nwid;	/* Minimal NWID we are able to set */ -	__u32		max_nwid;	/* Maximal NWID we are able to set */ - -	/* Old Frequency (backward compat - moved lower ) */ -	__u16		old_num_channels; -	__u8		old_num_frequency; - -	/* Scan capabilities */ -	__u8		scan_capa; 	/* IW_SCAN_CAPA_* bit field */ - -	/* Wireless event capability bitmasks */ -	__u32		event_capa[6]; - -	/* signal level threshold range */ -	__s32		sensitivity; - -	/* Quality of link & SNR stuff */ -	/* Quality range (link, level, noise) -	 * If the quality is absolute, it will be in the range [0 ; max_qual], -	 * if the quality is dBm, it will be in the range [max_qual ; 0]. -	 * Don't forget that we use 8 bit arithmetics... */ -	struct iw_quality	max_qual;	/* Quality of the link */ -	/* This should contain the average/typical values of the quality -	 * indicator. This should be the threshold between a "good" and -	 * a "bad" link (example : monitor going from green to orange). -	 * Currently, user space apps like quality monitors don't have any -	 * way to calibrate the measurement. With this, they can split -	 * the range between 0 and max_qual in different quality level -	 * (using a geometric subdivision centered on the average). -	 * I expect that people doing the user space apps will feedback -	 * us on which value we need to put in each driver... */ -	struct iw_quality	avg_qual;	/* Quality of the link */ - -	/* Rates */ -	__u8		num_bitrates;	/* Number of entries in the list */ -	__s32		bitrate[IW_MAX_BITRATES];	/* list, in bps */ - -	/* RTS threshold */ -	__s32		min_rts;	/* Minimal RTS threshold */ -	__s32		max_rts;	/* Maximal RTS threshold */ - -	/* Frag threshold */ -	__s32		min_frag;	/* Minimal frag threshold */ -	__s32		max_frag;	/* Maximal frag threshold */ - -	/* Power Management duration & timeout */ -	__s32		min_pmp;	/* Minimal PM period */ -	__s32		max_pmp;	/* Maximal PM period */ -	__s32		min_pmt;	/* Minimal PM timeout */ -	__s32		max_pmt;	/* Maximal PM timeout */ -	__u16		pmp_flags;	/* How to decode max/min PM period */ -	__u16		pmt_flags;	/* How to decode max/min PM timeout */ -	__u16		pm_capa;	/* What PM options are supported */ - -	/* Encoder stuff */ -	__u16	encoding_size[IW_MAX_ENCODING_SIZES];	/* Different token sizes */ -	__u8	num_encoding_sizes;	/* Number of entry in the list */ -	__u8	max_encoding_tokens;	/* Max number of tokens */ -	/* For drivers that need a "login/passwd" form */ -	__u8	encoding_login_index;	/* token index for login token */ - -	/* Transmit power */ -	__u16		txpower_capa;	/* What options are supported */ -	__u8		num_txpower;	/* Number of entries in the list */ -	__s32		txpower[IW_MAX_TXPOWER];	/* list, in bps */ - -	/* Wireless Extension version info */ -	__u8		we_version_compiled;	/* Must be WIRELESS_EXT */ -	__u8		we_version_source;	/* Last update of source */ - -	/* Retry limits and lifetime */ -	__u16		retry_capa;	/* What retry options are supported */ -	__u16		retry_flags;	/* How to decode max/min retry limit */ -	__u16		r_time_flags;	/* How to decode max/min retry life */ -	__s32		min_retry;	/* Minimal number of retries */ -	__s32		max_retry;	/* Maximal number of retries */ -	__s32		min_r_time;	/* Minimal retry lifetime */ -	__s32		max_r_time;	/* Maximal retry lifetime */ - -	/* Frequency */ -	__u16		num_channels;	/* Number of channels [0; num - 1] */ -	__u8		num_frequency;	/* Number of entry in the list */ -	struct iw_freq	freq[IW_MAX_FREQUENCIES];	/* list */ -	/* Note : this frequency list doesn't need to fit channel numbers, -	 * because each entry contain its channel index */ - -	__u32		enc_capa;	/* IW_ENC_CAPA_* bit field */ -}; - -/* - * Private ioctl interface information - */ -  -struct	iw_priv_args -{ -	__u32		cmd;		/* Number of the ioctl to issue */ -	__u16		set_args;	/* Type and number of args */ -	__u16		get_args;	/* Type and number of args */ -	char		name[IFNAMSIZ];	/* Name of the extension */ -}; - -/* ----------------------- WIRELESS EVENTS ----------------------- */ -/* - * Wireless events are carried through the rtnetlink socket to user - * space. They are encapsulated in the IFLA_WIRELESS field of - * a RTM_NEWLINK message. - */ - -/* - * A Wireless Event. Contains basically the same data as the ioctl... - */ -struct iw_event -{ -	__u16		len;			/* Real length of this stuff */ -	__u16		cmd;			/* Wireless IOCTL */ -	union iwreq_data	u;		/* IOCTL fixed payload */ -}; - -/* Size of the Event prefix (including padding and alignement junk) */ -#define IW_EV_LCP_LEN	(sizeof(struct iw_event) - sizeof(union iwreq_data)) -/* Size of the various events */ -#define IW_EV_CHAR_LEN	(IW_EV_LCP_LEN + IFNAMSIZ) -#define IW_EV_UINT_LEN	(IW_EV_LCP_LEN + sizeof(__u32)) -#define IW_EV_FREQ_LEN	(IW_EV_LCP_LEN + sizeof(struct iw_freq)) -#define IW_EV_PARAM_LEN	(IW_EV_LCP_LEN + sizeof(struct iw_param)) -#define IW_EV_ADDR_LEN	(IW_EV_LCP_LEN + sizeof(struct sockaddr)) -#define IW_EV_QUAL_LEN	(IW_EV_LCP_LEN + sizeof(struct iw_quality)) - -/* iw_point events are special. First, the payload (extra data) come at - * the end of the event, so they are bigger than IW_EV_POINT_LEN. Second, - * we omit the pointer, so start at an offset. */ -#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \ -			  (char *) NULL) -#define IW_EV_POINT_LEN	(IW_EV_LCP_LEN + sizeof(struct iw_point) - \ -			 IW_EV_POINT_OFF) - -#ifdef __KERNEL__  #ifdef CONFIG_COMPAT  struct __compat_iw_event {  	__u16		len;			/* Real length of this stuff */ @@ -1146,17 +41,4 @@ struct __compat_iw_event {  	(IW_EV_COMPAT_LCP_LEN + sizeof(struct compat_iw_point) - \  	 IW_EV_COMPAT_POINT_OFF)  #endif -#endif - -/* Size of the Event prefix when packed in stream */ -#define IW_EV_LCP_PK_LEN	(4) -/* Size of the various events when packed in stream */ -#define IW_EV_CHAR_PK_LEN	(IW_EV_LCP_PK_LEN + IFNAMSIZ) -#define IW_EV_UINT_PK_LEN	(IW_EV_LCP_PK_LEN + sizeof(__u32)) -#define IW_EV_FREQ_PK_LEN	(IW_EV_LCP_PK_LEN + sizeof(struct iw_freq)) -#define IW_EV_PARAM_PK_LEN	(IW_EV_LCP_PK_LEN + sizeof(struct iw_param)) -#define IW_EV_ADDR_PK_LEN	(IW_EV_LCP_PK_LEN + sizeof(struct sockaddr)) -#define IW_EV_QUAL_PK_LEN	(IW_EV_LCP_PK_LEN + sizeof(struct iw_quality)) -#define IW_EV_POINT_PK_LEN	(IW_EV_LCP_PK_LEN + 4) -  #endif	/* _LINUX_WIRELESS_H */ diff --git a/include/linux/x25.h b/include/linux/x25.h deleted file mode 100644 index 810cce6737e..00000000000 --- a/include/linux/x25.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * These are the public elements of the Linux kernel X.25 implementation. - * - * 	History - *	mar/20/00	Daniela Squassoni Disabling/enabling of facilities  - *					  negotiation. - *	apr/02/05	Shaun Pereira Selective sub address matching with - *					call user data - */ - -#ifndef	X25_KERNEL_H -#define	X25_KERNEL_H - -#include <linux/types.h> -#include <linux/socket.h> - -#define	SIOCX25GSUBSCRIP	(SIOCPROTOPRIVATE + 0) -#define	SIOCX25SSUBSCRIP	(SIOCPROTOPRIVATE + 1) -#define	SIOCX25GFACILITIES	(SIOCPROTOPRIVATE + 2) -#define	SIOCX25SFACILITIES	(SIOCPROTOPRIVATE + 3) -#define	SIOCX25GCALLUSERDATA	(SIOCPROTOPRIVATE + 4) -#define	SIOCX25SCALLUSERDATA	(SIOCPROTOPRIVATE + 5) -#define	SIOCX25GCAUSEDIAG	(SIOCPROTOPRIVATE + 6) -#define SIOCX25SCUDMATCHLEN	(SIOCPROTOPRIVATE + 7) -#define SIOCX25CALLACCPTAPPRV   (SIOCPROTOPRIVATE + 8) -#define SIOCX25SENDCALLACCPT    (SIOCPROTOPRIVATE + 9) -#define SIOCX25GDTEFACILITIES (SIOCPROTOPRIVATE + 10) -#define SIOCX25SDTEFACILITIES (SIOCPROTOPRIVATE + 11) -#define SIOCX25SCAUSEDIAG	(SIOCPROTOPRIVATE + 12) - -/* - *	Values for {get,set}sockopt. - */ -#define	X25_QBITINCL		1 - -/* - *	X.25 Packet Size values. - */ -#define	X25_PS16		4 -#define	X25_PS32		5 -#define	X25_PS64		6 -#define	X25_PS128		7 -#define	X25_PS256		8 -#define	X25_PS512		9 -#define	X25_PS1024		10 -#define	X25_PS2048		11 -#define	X25_PS4096		12 - -/* - * An X.121 address, it is held as ASCII text, null terminated, up to 15 - * digits and a null terminator. - */ -struct x25_address { -	char x25_addr[16]; -}; - -/* - *	Linux X.25 Address structure, used for bind, and connect mostly. - */ -struct sockaddr_x25 { -	__kernel_sa_family_t sx25_family;	/* Must be AF_X25 */ -	struct x25_address sx25_addr;		/* X.121 Address */ -}; - -/* - *	DTE/DCE subscription options. - * - *      As this is missing lots of options, user should expect major - *	changes of this structure in 2.5.x which might break compatibilty. - *      The somewhat ugly dimension 200-sizeof() is needed to maintain - *	backward compatibility. - */ -struct x25_subscrip_struct { -	char device[200-sizeof(unsigned long)]; -	unsigned long	global_facil_mask;	/* 0 to disable negotiation */ -	unsigned int	extended; -}; - -/* values for above global_facil_mask */ - -#define	X25_MASK_REVERSE	0x01	 -#define	X25_MASK_THROUGHPUT	0x02 -#define	X25_MASK_PACKET_SIZE	0x04 -#define	X25_MASK_WINDOW_SIZE	0x08 - -#define X25_MASK_CALLING_AE 0x10 -#define X25_MASK_CALLED_AE 0x20 - - -/* - *	Routing table control structure. - */ -struct x25_route_struct { -	struct x25_address address; -	unsigned int	   sigdigits; -	char		   device[200]; -}; - -/* - *	Facilities structure. - */ -struct x25_facilities { -	unsigned int	winsize_in, winsize_out; -	unsigned int	pacsize_in, pacsize_out; -	unsigned int	throughput; -	unsigned int	reverse; -}; - -/* -* ITU DTE facilities -* Only the called and calling address -* extension are currently implemented. -* The rest are in place to avoid the struct -* changing size if someone needs them later -*/ - -struct x25_dte_facilities { -	__u16 delay_cumul; -	__u16 delay_target; -	__u16 delay_max; -	__u8 min_throughput; -	__u8 expedited; -	__u8 calling_len; -	__u8 called_len; -	__u8 calling_ae[20]; -	__u8 called_ae[20]; -}; - -/* - *	Call User Data structure. - */ -struct x25_calluserdata { -	unsigned int	cudlength; -	unsigned char	cuddata[128]; -}; - -/* - *	Call clearing Cause and Diagnostic structure. - */ -struct x25_causediag { -	unsigned char	cause; -	unsigned char	diagnostic; -}; - -/* - *	Further optional call user data match length selection - */ -struct x25_subaddr { -	unsigned int cudmatchlength; -}; - -#endif diff --git a/include/linux/xattr.h b/include/linux/xattr.h index cc13e111597..fdbafc6841c 100644 --- a/include/linux/xattr.h +++ b/include/linux/xattr.h @@ -10,61 +10,11 @@  #ifndef _LINUX_XATTR_H  #define _LINUX_XATTR_H -#define XATTR_CREATE	0x1	/* set value, fail if attr already exists */ -#define XATTR_REPLACE	0x2	/* set value, fail if attr does not exist */ - -/* Namespaces */ -#define XATTR_OS2_PREFIX "os2." -#define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1) - -#define XATTR_SECURITY_PREFIX	"security." -#define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1) - -#define XATTR_SYSTEM_PREFIX "system." -#define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1) - -#define XATTR_TRUSTED_PREFIX "trusted." -#define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1) - -#define XATTR_USER_PREFIX "user." -#define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1) - -/* Security namespace */ -#define XATTR_EVM_SUFFIX "evm" -#define XATTR_NAME_EVM XATTR_SECURITY_PREFIX XATTR_EVM_SUFFIX - -#define XATTR_IMA_SUFFIX "ima" -#define XATTR_NAME_IMA XATTR_SECURITY_PREFIX XATTR_IMA_SUFFIX - -#define XATTR_SELINUX_SUFFIX "selinux" -#define XATTR_NAME_SELINUX XATTR_SECURITY_PREFIX XATTR_SELINUX_SUFFIX - -#define XATTR_SMACK_SUFFIX "SMACK64" -#define XATTR_SMACK_IPIN "SMACK64IPIN" -#define XATTR_SMACK_IPOUT "SMACK64IPOUT" -#define XATTR_SMACK_EXEC "SMACK64EXEC" -#define XATTR_SMACK_TRANSMUTE "SMACK64TRANSMUTE" -#define XATTR_SMACK_MMAP "SMACK64MMAP" -#define XATTR_NAME_SMACK XATTR_SECURITY_PREFIX XATTR_SMACK_SUFFIX -#define XATTR_NAME_SMACKIPIN	XATTR_SECURITY_PREFIX XATTR_SMACK_IPIN -#define XATTR_NAME_SMACKIPOUT	XATTR_SECURITY_PREFIX XATTR_SMACK_IPOUT -#define XATTR_NAME_SMACKEXEC	XATTR_SECURITY_PREFIX XATTR_SMACK_EXEC -#define XATTR_NAME_SMACKTRANSMUTE XATTR_SECURITY_PREFIX XATTR_SMACK_TRANSMUTE -#define XATTR_NAME_SMACKMMAP XATTR_SECURITY_PREFIX XATTR_SMACK_MMAP - -#define XATTR_CAPS_SUFFIX "capability" -#define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX - -#define XATTR_POSIX_ACL_ACCESS  "posix_acl_access" -#define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS -#define XATTR_POSIX_ACL_DEFAULT  "posix_acl_default" -#define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT - -#ifdef  __KERNEL__  #include <linux/slab.h>  #include <linux/types.h>  #include <linux/spinlock.h> +#include <uapi/linux/xattr.h>  struct inode;  struct dentry; @@ -147,6 +97,4 @@ ssize_t simple_xattr_list(struct simple_xattrs *xattrs, char *buffer,  void simple_xattr_list_add(struct simple_xattrs *xattrs,  			   struct simple_xattr *new_xattr); -#endif  /*  __KERNEL__  */ -  #endif	/* _LINUX_XATTR_H */ diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h deleted file mode 100644 index 28e493b5b94..00000000000 --- a/include/linux/xfrm.h +++ /dev/null @@ -1,506 +0,0 @@ -#ifndef _LINUX_XFRM_H -#define _LINUX_XFRM_H - -#include <linux/types.h> - -/* All of the structures in this file may not change size as they are - * passed into the kernel from userspace via netlink sockets. - */ - -/* Structure to encapsulate addresses. I do not want to use - * "standard" structure. My apologies. - */ -typedef union { -	__be32		a4; -	__be32		a6[4]; -} xfrm_address_t; - -/* Ident of a specific xfrm_state. It is used on input to lookup - * the state by (spi,daddr,ah/esp) or to store information about - * spi, protocol and tunnel address on output. - */ -struct xfrm_id { -	xfrm_address_t	daddr; -	__be32		spi; -	__u8		proto; -}; - -struct xfrm_sec_ctx { -	__u8	ctx_doi; -	__u8	ctx_alg; -	__u16	ctx_len; -	__u32	ctx_sid; -	char	ctx_str[0]; -}; - -/* Security Context Domains of Interpretation */ -#define XFRM_SC_DOI_RESERVED 0 -#define XFRM_SC_DOI_LSM 1 - -/* Security Context Algorithms */ -#define XFRM_SC_ALG_RESERVED 0 -#define XFRM_SC_ALG_SELINUX 1 - -/* Selector, used as selector both on policy rules (SPD) and SAs. */ - -struct xfrm_selector { -	xfrm_address_t	daddr; -	xfrm_address_t	saddr; -	__be16	dport; -	__be16	dport_mask; -	__be16	sport; -	__be16	sport_mask; -	__u16	family; -	__u8	prefixlen_d; -	__u8	prefixlen_s; -	__u8	proto; -	int	ifindex; -	__kernel_uid32_t	user; -}; - -#define XFRM_INF (~(__u64)0) - -struct xfrm_lifetime_cfg { -	__u64	soft_byte_limit; -	__u64	hard_byte_limit; -	__u64	soft_packet_limit; -	__u64	hard_packet_limit; -	__u64	soft_add_expires_seconds; -	__u64	hard_add_expires_seconds; -	__u64	soft_use_expires_seconds; -	__u64	hard_use_expires_seconds; -}; - -struct xfrm_lifetime_cur { -	__u64	bytes; -	__u64	packets; -	__u64	add_time; -	__u64	use_time; -}; - -struct xfrm_replay_state { -	__u32	oseq; -	__u32	seq; -	__u32	bitmap; -}; - -#define XFRMA_REPLAY_ESN_MAX	4096 - -struct xfrm_replay_state_esn { -	unsigned int	bmp_len; -	__u32		oseq; -	__u32		seq; -	__u32		oseq_hi; -	__u32		seq_hi; -	__u32		replay_window; -	__u32		bmp[0]; -}; - -struct xfrm_algo { -	char		alg_name[64]; -	unsigned int	alg_key_len;    /* in bits */ -	char		alg_key[0]; -}; - -struct xfrm_algo_auth { -	char		alg_name[64]; -	unsigned int	alg_key_len;    /* in bits */ -	unsigned int	alg_trunc_len;  /* in bits */ -	char		alg_key[0]; -}; - -struct xfrm_algo_aead { -	char		alg_name[64]; -	unsigned int	alg_key_len;	/* in bits */ -	unsigned int	alg_icv_len;	/* in bits */ -	char		alg_key[0]; -}; - -struct xfrm_stats { -	__u32	replay_window; -	__u32	replay; -	__u32	integrity_failed; -}; - -enum { -	XFRM_POLICY_TYPE_MAIN	= 0, -	XFRM_POLICY_TYPE_SUB	= 1, -	XFRM_POLICY_TYPE_MAX	= 2, -	XFRM_POLICY_TYPE_ANY	= 255 -}; - -enum { -	XFRM_POLICY_IN	= 0, -	XFRM_POLICY_OUT	= 1, -	XFRM_POLICY_FWD	= 2, -	XFRM_POLICY_MASK = 3, -	XFRM_POLICY_MAX	= 3 -}; - -enum { -	XFRM_SHARE_ANY,		/* No limitations */ -	XFRM_SHARE_SESSION,	/* For this session only */ -	XFRM_SHARE_USER,	/* For this user only */ -	XFRM_SHARE_UNIQUE	/* Use once */ -}; - -#define XFRM_MODE_TRANSPORT 0 -#define XFRM_MODE_TUNNEL 1 -#define XFRM_MODE_ROUTEOPTIMIZATION 2 -#define XFRM_MODE_IN_TRIGGER 3 -#define XFRM_MODE_BEET 4 -#define XFRM_MODE_MAX 5 - -/* Netlink configuration messages.  */ -enum { -	XFRM_MSG_BASE = 0x10, - -	XFRM_MSG_NEWSA = 0x10, -#define XFRM_MSG_NEWSA XFRM_MSG_NEWSA -	XFRM_MSG_DELSA, -#define XFRM_MSG_DELSA XFRM_MSG_DELSA -	XFRM_MSG_GETSA, -#define XFRM_MSG_GETSA XFRM_MSG_GETSA - -	XFRM_MSG_NEWPOLICY, -#define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY -	XFRM_MSG_DELPOLICY, -#define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY -	XFRM_MSG_GETPOLICY, -#define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY - -	XFRM_MSG_ALLOCSPI, -#define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI -	XFRM_MSG_ACQUIRE, -#define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE -	XFRM_MSG_EXPIRE, -#define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE - -	XFRM_MSG_UPDPOLICY, -#define XFRM_MSG_UPDPOLICY XFRM_MSG_UPDPOLICY -	XFRM_MSG_UPDSA, -#define XFRM_MSG_UPDSA XFRM_MSG_UPDSA - -	XFRM_MSG_POLEXPIRE, -#define XFRM_MSG_POLEXPIRE XFRM_MSG_POLEXPIRE - -	XFRM_MSG_FLUSHSA, -#define XFRM_MSG_FLUSHSA XFRM_MSG_FLUSHSA -	XFRM_MSG_FLUSHPOLICY, -#define XFRM_MSG_FLUSHPOLICY XFRM_MSG_FLUSHPOLICY - -	XFRM_MSG_NEWAE, -#define XFRM_MSG_NEWAE XFRM_MSG_NEWAE -	XFRM_MSG_GETAE, -#define XFRM_MSG_GETAE XFRM_MSG_GETAE - -	XFRM_MSG_REPORT, -#define XFRM_MSG_REPORT XFRM_MSG_REPORT - -	XFRM_MSG_MIGRATE, -#define XFRM_MSG_MIGRATE XFRM_MSG_MIGRATE - -	XFRM_MSG_NEWSADINFO, -#define XFRM_MSG_NEWSADINFO XFRM_MSG_NEWSADINFO -	XFRM_MSG_GETSADINFO, -#define XFRM_MSG_GETSADINFO XFRM_MSG_GETSADINFO - -	XFRM_MSG_NEWSPDINFO, -#define XFRM_MSG_NEWSPDINFO XFRM_MSG_NEWSPDINFO -	XFRM_MSG_GETSPDINFO, -#define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO - -	XFRM_MSG_MAPPING, -#define XFRM_MSG_MAPPING XFRM_MSG_MAPPING -	__XFRM_MSG_MAX -}; -#define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1) - -#define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE) - -/* - * Generic LSM security context for comunicating to user space - * NOTE: Same format as sadb_x_sec_ctx - */ -struct xfrm_user_sec_ctx { -	__u16			len; -	__u16			exttype; -	__u8			ctx_alg;  /* LSMs: e.g., selinux == 1 */ -	__u8			ctx_doi; -	__u16			ctx_len; -}; - -struct xfrm_user_tmpl { -	struct xfrm_id		id; -	__u16			family; -	xfrm_address_t		saddr; -	__u32			reqid; -	__u8			mode; -	__u8			share; -	__u8			optional; -	__u32			aalgos; -	__u32			ealgos; -	__u32			calgos; -}; - -struct xfrm_encap_tmpl { -	__u16		encap_type; -	__be16		encap_sport; -	__be16		encap_dport; -	xfrm_address_t	encap_oa; -}; - -/* AEVENT flags  */ -enum xfrm_ae_ftype_t { -	XFRM_AE_UNSPEC, -	XFRM_AE_RTHR=1,	/* replay threshold*/ -	XFRM_AE_RVAL=2, /* replay value */ -	XFRM_AE_LVAL=4, /* lifetime value */ -	XFRM_AE_ETHR=8, /* expiry timer threshold */ -	XFRM_AE_CR=16, /* Event cause is replay update */ -	XFRM_AE_CE=32, /* Event cause is timer expiry */ -	XFRM_AE_CU=64, /* Event cause is policy update */ -	__XFRM_AE_MAX - -#define XFRM_AE_MAX (__XFRM_AE_MAX - 1) -}; - -struct xfrm_userpolicy_type { -	__u8		type; -	__u16		reserved1; -	__u8		reserved2; -}; - -/* Netlink message attributes.  */ -enum xfrm_attr_type_t { -	XFRMA_UNSPEC, -	XFRMA_ALG_AUTH,		/* struct xfrm_algo */ -	XFRMA_ALG_CRYPT,	/* struct xfrm_algo */ -	XFRMA_ALG_COMP,		/* struct xfrm_algo */ -	XFRMA_ENCAP,		/* struct xfrm_algo + struct xfrm_encap_tmpl */ -	XFRMA_TMPL,		/* 1 or more struct xfrm_user_tmpl */ -	XFRMA_SA,		/* struct xfrm_usersa_info  */ -	XFRMA_POLICY,		/*struct xfrm_userpolicy_info */ -	XFRMA_SEC_CTX,		/* struct xfrm_sec_ctx */ -	XFRMA_LTIME_VAL, -	XFRMA_REPLAY_VAL, -	XFRMA_REPLAY_THRESH, -	XFRMA_ETIMER_THRESH, -	XFRMA_SRCADDR,		/* xfrm_address_t */ -	XFRMA_COADDR,		/* xfrm_address_t */ -	XFRMA_LASTUSED,		/* unsigned long  */ -	XFRMA_POLICY_TYPE,	/* struct xfrm_userpolicy_type */ -	XFRMA_MIGRATE, -	XFRMA_ALG_AEAD,		/* struct xfrm_algo_aead */ -	XFRMA_KMADDRESS,        /* struct xfrm_user_kmaddress */ -	XFRMA_ALG_AUTH_TRUNC,	/* struct xfrm_algo_auth */ -	XFRMA_MARK,		/* struct xfrm_mark */ -	XFRMA_TFCPAD,		/* __u32 */ -	XFRMA_REPLAY_ESN_VAL,	/* struct xfrm_replay_esn */ -	__XFRMA_MAX - -#define XFRMA_MAX (__XFRMA_MAX - 1) -}; - -struct xfrm_mark { -	__u32           v; /* value */ -	__u32           m; /* mask */ -}; - -enum xfrm_sadattr_type_t { -	XFRMA_SAD_UNSPEC, -	XFRMA_SAD_CNT, -	XFRMA_SAD_HINFO, -	__XFRMA_SAD_MAX - -#define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1) -}; - -struct xfrmu_sadhinfo { -	__u32 sadhcnt; /* current hash bkts */ -	__u32 sadhmcnt; /* max allowed hash bkts */ -}; - -enum xfrm_spdattr_type_t { -	XFRMA_SPD_UNSPEC, -	XFRMA_SPD_INFO, -	XFRMA_SPD_HINFO, -	__XFRMA_SPD_MAX - -#define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1) -}; - -struct xfrmu_spdinfo { -	__u32 incnt; -	__u32 outcnt; -	__u32 fwdcnt; -	__u32 inscnt; -	__u32 outscnt; -	__u32 fwdscnt; -}; - -struct xfrmu_spdhinfo { -	__u32 spdhcnt; -	__u32 spdhmcnt; -}; - -struct xfrm_usersa_info { -	struct xfrm_selector		sel; -	struct xfrm_id			id; -	xfrm_address_t			saddr; -	struct xfrm_lifetime_cfg	lft; -	struct xfrm_lifetime_cur	curlft; -	struct xfrm_stats		stats; -	__u32				seq; -	__u32				reqid; -	__u16				family; -	__u8				mode;		/* XFRM_MODE_xxx */ -	__u8				replay_window; -	__u8				flags; -#define XFRM_STATE_NOECN	1 -#define XFRM_STATE_DECAP_DSCP	2 -#define XFRM_STATE_NOPMTUDISC	4 -#define XFRM_STATE_WILDRECV	8 -#define XFRM_STATE_ICMP		16 -#define XFRM_STATE_AF_UNSPEC	32 -#define XFRM_STATE_ALIGN4	64 -#define XFRM_STATE_ESN		128 -}; - -struct xfrm_usersa_id { -	xfrm_address_t			daddr; -	__be32				spi; -	__u16				family; -	__u8				proto; -}; - -struct xfrm_aevent_id { -	struct xfrm_usersa_id		sa_id; -	xfrm_address_t			saddr; -	__u32				flags; -	__u32				reqid; -}; - -struct xfrm_userspi_info { -	struct xfrm_usersa_info		info; -	__u32				min; -	__u32				max; -}; - -struct xfrm_userpolicy_info { -	struct xfrm_selector		sel; -	struct xfrm_lifetime_cfg	lft; -	struct xfrm_lifetime_cur	curlft; -	__u32				priority; -	__u32				index; -	__u8				dir; -	__u8				action; -#define XFRM_POLICY_ALLOW	0 -#define XFRM_POLICY_BLOCK	1 -	__u8				flags; -#define XFRM_POLICY_LOCALOK	1	/* Allow user to override global policy */ -	/* Automatically expand selector to include matching ICMP payloads. */ -#define XFRM_POLICY_ICMP	2 -	__u8				share; -}; - -struct xfrm_userpolicy_id { -	struct xfrm_selector		sel; -	__u32				index; -	__u8				dir; -}; - -struct xfrm_user_acquire { -	struct xfrm_id			id; -	xfrm_address_t			saddr; -	struct xfrm_selector		sel; -	struct xfrm_userpolicy_info	policy; -	__u32				aalgos; -	__u32				ealgos; -	__u32				calgos; -	__u32				seq; -}; - -struct xfrm_user_expire { -	struct xfrm_usersa_info		state; -	__u8				hard; -}; - -struct xfrm_user_polexpire { -	struct xfrm_userpolicy_info	pol; -	__u8				hard; -}; - -struct xfrm_usersa_flush { -	__u8				proto; -}; - -struct xfrm_user_report { -	__u8				proto; -	struct xfrm_selector		sel; -}; - -/* Used by MIGRATE to pass addresses IKE should use to perform - * SA negotiation with the peer */ -struct xfrm_user_kmaddress { -	xfrm_address_t                  local; -	xfrm_address_t                  remote; -	__u32				reserved; -	__u16				family; -}; - -struct xfrm_user_migrate { -	xfrm_address_t			old_daddr; -	xfrm_address_t			old_saddr; -	xfrm_address_t			new_daddr; -	xfrm_address_t			new_saddr; -	__u8				proto; -	__u8				mode; -	__u16				reserved; -	__u32				reqid; -	__u16				old_family; -	__u16				new_family; -}; - -struct xfrm_user_mapping { -	struct xfrm_usersa_id		id; -	__u32				reqid; -	xfrm_address_t			old_saddr; -	xfrm_address_t			new_saddr; -	__be16				old_sport; -	__be16				new_sport; -}; - -#ifndef __KERNEL__ -/* backwards compatibility for userspace */ -#define XFRMGRP_ACQUIRE		1 -#define XFRMGRP_EXPIRE		2 -#define XFRMGRP_SA		4 -#define XFRMGRP_POLICY		8 -#define XFRMGRP_REPORT		0x20 -#endif - -enum xfrm_nlgroups { -	XFRMNLGRP_NONE, -#define XFRMNLGRP_NONE		XFRMNLGRP_NONE -	XFRMNLGRP_ACQUIRE, -#define XFRMNLGRP_ACQUIRE	XFRMNLGRP_ACQUIRE -	XFRMNLGRP_EXPIRE, -#define XFRMNLGRP_EXPIRE	XFRMNLGRP_EXPIRE -	XFRMNLGRP_SA, -#define XFRMNLGRP_SA		XFRMNLGRP_SA -	XFRMNLGRP_POLICY, -#define XFRMNLGRP_POLICY	XFRMNLGRP_POLICY -	XFRMNLGRP_AEVENTS, -#define XFRMNLGRP_AEVENTS	XFRMNLGRP_AEVENTS -	XFRMNLGRP_REPORT, -#define XFRMNLGRP_REPORT	XFRMNLGRP_REPORT -	XFRMNLGRP_MIGRATE, -#define XFRMNLGRP_MIGRATE	XFRMNLGRP_MIGRATE -	XFRMNLGRP_MAPPING, -#define XFRMNLGRP_MAPPING	XFRMNLGRP_MAPPING -	__XFRMNLGRP_MAX -}; -#define XFRMNLGRP_MAX	(__XFRMNLGRP_MAX - 1) - -#endif /* _LINUX_XFRM_H */  |