mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
Merge by hand (whitespace conflicts in libata.h)
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
commit
8a87a0b631
744 changed files with 49188 additions and 16612 deletions
|
|
@ -10,6 +10,10 @@
|
|||
#define ULONG_IOCTL(cmd) HANDLE_IOCTL((cmd),(ioctl_trans_handler_t)sys_ioctl)
|
||||
#endif
|
||||
|
||||
|
||||
COMPATIBLE_IOCTL(0x4B50) /* KDGHWCLK - not in the kernel, but don't complain */
|
||||
COMPATIBLE_IOCTL(0x4B51) /* KDSHWCLK - not in the kernel, but don't complain */
|
||||
|
||||
/* Big T */
|
||||
COMPATIBLE_IOCTL(TCGETA)
|
||||
COMPATIBLE_IOCTL(TCSETA)
|
||||
|
|
@ -52,13 +56,6 @@ ULONG_IOCTL(TIOCSCTTY)
|
|||
COMPATIBLE_IOCTL(TIOCGPTN)
|
||||
COMPATIBLE_IOCTL(TIOCSPTLCK)
|
||||
COMPATIBLE_IOCTL(TIOCSERGETLSR)
|
||||
/* Big F */
|
||||
COMPATIBLE_IOCTL(FBIOBLANK)
|
||||
COMPATIBLE_IOCTL(FBIOGET_VSCREENINFO)
|
||||
COMPATIBLE_IOCTL(FBIOPUT_VSCREENINFO)
|
||||
COMPATIBLE_IOCTL(FBIOPAN_DISPLAY)
|
||||
COMPATIBLE_IOCTL(FBIOGET_CON2FBMAP)
|
||||
COMPATIBLE_IOCTL(FBIOPUT_CON2FBMAP)
|
||||
/* Little f */
|
||||
COMPATIBLE_IOCTL(FIOCLEX)
|
||||
COMPATIBLE_IOCTL(FIONCLEX)
|
||||
|
|
@ -81,6 +78,8 @@ COMPATIBLE_IOCTL(HDIO_DRIVE_CMD)
|
|||
COMPATIBLE_IOCTL(HDIO_DRIVE_TASK)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_PIO_MODE)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_NICE)
|
||||
COMPATIBLE_IOCTL(HDIO_SET_KEEPSETTINGS)
|
||||
COMPATIBLE_IOCTL(HDIO_SCAN_HWIF)
|
||||
/* 0x02 -- Floppy ioctls */
|
||||
COMPATIBLE_IOCTL(FDMSGON)
|
||||
COMPATIBLE_IOCTL(FDMSGOFF)
|
||||
|
|
@ -99,6 +98,7 @@ COMPATIBLE_IOCTL(FDTWADDLE)
|
|||
COMPATIBLE_IOCTL(FDFMTTRK)
|
||||
COMPATIBLE_IOCTL(FDRAWCMD)
|
||||
/* 0x12 */
|
||||
COMPATIBLE_IOCTL(BLKRASET)
|
||||
COMPATIBLE_IOCTL(BLKROSET)
|
||||
COMPATIBLE_IOCTL(BLKROGET)
|
||||
COMPATIBLE_IOCTL(BLKRRPART)
|
||||
|
|
@ -262,6 +262,7 @@ COMPATIBLE_IOCTL(RTC_WKALM_RD)
|
|||
/* Little m */
|
||||
COMPATIBLE_IOCTL(MTIOCTOP)
|
||||
/* Socket level stuff */
|
||||
COMPATIBLE_IOCTL(FIOQSIZE)
|
||||
COMPATIBLE_IOCTL(FIOSETOWN)
|
||||
COMPATIBLE_IOCTL(SIOCSPGRP)
|
||||
COMPATIBLE_IOCTL(FIOGETOWN)
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ struct notifier_block;
|
|||
/* Need to know about CPUs going up/down? */
|
||||
extern int register_cpu_notifier(struct notifier_block *nb);
|
||||
extern void unregister_cpu_notifier(struct notifier_block *nb);
|
||||
extern int current_in_cpu_hotplug(void);
|
||||
|
||||
int cpu_up(unsigned int cpu);
|
||||
|
||||
|
|
@ -54,6 +55,10 @@ static inline int register_cpu_notifier(struct notifier_block *nb)
|
|||
static inline void unregister_cpu_notifier(struct notifier_block *nb)
|
||||
{
|
||||
}
|
||||
static inline int current_in_cpu_hotplug(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
extern struct sysdev_class cpu_sysdev_class;
|
||||
|
|
|
|||
|
|
@ -1,136 +0,0 @@
|
|||
/* credit winbond-840.c
|
||||
*/
|
||||
#include <asm/io.h>
|
||||
struct eeprom_ops {
|
||||
void (*set_cs)(void *ee);
|
||||
void (*clear_cs)(void *ee);
|
||||
};
|
||||
|
||||
#define EEPOL_EEDI 0x01
|
||||
#define EEPOL_EEDO 0x02
|
||||
#define EEPOL_EECLK 0x04
|
||||
#define EEPOL_EESEL 0x08
|
||||
|
||||
struct eeprom {
|
||||
void *dev;
|
||||
struct eeprom_ops *ops;
|
||||
|
||||
void __iomem * addr;
|
||||
|
||||
unsigned ee_addr_bits;
|
||||
|
||||
unsigned eesel;
|
||||
unsigned eeclk;
|
||||
unsigned eedo;
|
||||
unsigned eedi;
|
||||
unsigned polarity;
|
||||
unsigned ee_state;
|
||||
|
||||
spinlock_t *lock;
|
||||
u32 *cache;
|
||||
};
|
||||
|
||||
|
||||
u8 eeprom_readb(struct eeprom *ee, unsigned address);
|
||||
void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes,
|
||||
unsigned count);
|
||||
void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data);
|
||||
void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes,
|
||||
unsigned count);
|
||||
|
||||
/* The EEPROM commands include the alway-set leading bit. */
|
||||
enum EEPROM_Cmds {
|
||||
EE_WriteCmd=(5 << 6), EE_ReadCmd=(6 << 6), EE_EraseCmd=(7 << 6),
|
||||
};
|
||||
|
||||
void setup_ee_mem_bitbanger(struct eeprom *ee, void __iomem *memaddr, int eesel_bit, int eeclk_bit, int eedo_bit, int eedi_bit, unsigned polarity)
|
||||
{
|
||||
ee->addr = memaddr;
|
||||
ee->eesel = 1 << eesel_bit;
|
||||
ee->eeclk = 1 << eeclk_bit;
|
||||
ee->eedo = 1 << eedo_bit;
|
||||
ee->eedi = 1 << eedi_bit;
|
||||
|
||||
ee->polarity = polarity;
|
||||
|
||||
*ee->cache = readl(ee->addr);
|
||||
}
|
||||
|
||||
/* foo. put this in a .c file */
|
||||
static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol)
|
||||
{
|
||||
unsigned long flags;
|
||||
u32 data;
|
||||
|
||||
spin_lock_irqsave(ee->lock, flags);
|
||||
data = *ee->cache;
|
||||
|
||||
data &= ~mask;
|
||||
if (pol)
|
||||
data |= mask;
|
||||
|
||||
*ee->cache = data;
|
||||
//printk("update: %08x\n", data);
|
||||
writel(data, ee->addr);
|
||||
spin_unlock_irqrestore(ee->lock, flags);
|
||||
}
|
||||
|
||||
void eeprom_clk_lo(struct eeprom *ee)
|
||||
{
|
||||
int pol = !!(ee->polarity & EEPOL_EECLK);
|
||||
|
||||
eeprom_update(ee, ee->eeclk, pol);
|
||||
udelay(2);
|
||||
}
|
||||
|
||||
void eeprom_clk_hi(struct eeprom *ee)
|
||||
{
|
||||
int pol = !!(ee->polarity & EEPOL_EECLK);
|
||||
|
||||
eeprom_update(ee, ee->eeclk, !pol);
|
||||
udelay(2);
|
||||
}
|
||||
|
||||
void eeprom_send_addr(struct eeprom *ee, unsigned address)
|
||||
{
|
||||
int pol = !!(ee->polarity & EEPOL_EEDI);
|
||||
unsigned i;
|
||||
address |= 6 << 6;
|
||||
|
||||
/* Shift the read command bits out. */
|
||||
for (i=0; i<11; i++) {
|
||||
eeprom_update(ee, ee->eedi, ((address >> 10) & 1) ^ pol);
|
||||
address <<= 1;
|
||||
eeprom_clk_hi(ee);
|
||||
eeprom_clk_lo(ee);
|
||||
}
|
||||
eeprom_update(ee, ee->eedi, pol);
|
||||
}
|
||||
|
||||
u16 eeprom_readw(struct eeprom *ee, unsigned address)
|
||||
{
|
||||
unsigned i;
|
||||
u16 res = 0;
|
||||
|
||||
eeprom_clk_lo(ee);
|
||||
eeprom_update(ee, ee->eesel, 1 ^ !!(ee->polarity & EEPOL_EESEL));
|
||||
eeprom_send_addr(ee, address);
|
||||
|
||||
for (i=0; i<16; i++) {
|
||||
u32 data;
|
||||
eeprom_clk_hi(ee);
|
||||
res <<= 1;
|
||||
data = readl(ee->addr);
|
||||
//printk("eeprom_readw: %08x\n", data);
|
||||
res |= !!(data & ee->eedo) ^ !!(ee->polarity & EEPOL_EEDO);
|
||||
eeprom_clk_lo(ee);
|
||||
}
|
||||
eeprom_update(ee, ee->eesel, 0 ^ !!(ee->polarity & EEPOL_EESEL));
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data)
|
||||
{
|
||||
}
|
||||
|
|
@ -201,6 +201,14 @@ struct fb_bitfield {
|
|||
#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))
|
||||
|
||||
|
|
@ -489,9 +497,9 @@ struct fb_cursor_user {
|
|||
#define FB_EVENT_MODE_DELETE 0x04
|
||||
/* A driver registered itself */
|
||||
#define FB_EVENT_FB_REGISTERED 0x05
|
||||
/* get console to framebuffer mapping */
|
||||
/* CONSOLE-SPECIFIC: get console to framebuffer mapping */
|
||||
#define FB_EVENT_GET_CONSOLE_MAP 0x06
|
||||
/* set console to framebuffer mapping */
|
||||
/* CONSOLE-SPECIFIC: set console to framebuffer mapping */
|
||||
#define FB_EVENT_SET_CONSOLE_MAP 0x07
|
||||
/* A display blank is requested */
|
||||
#define FB_EVENT_BLANK 0x08
|
||||
|
|
@ -500,6 +508,12 @@ struct fb_cursor_user {
|
|||
/* The resolution of the passed in fb_info about to change and
|
||||
all vc's should be changed */
|
||||
#define FB_EVENT_MODE_CHANGE_ALL 0x0A
|
||||
/* CONSOLE-SPECIFIC: set console rotation */
|
||||
#define FB_EVENT_SET_CON_ROTATE 0x0B
|
||||
/* CONSOLE-SPECIFIC: get console rotation */
|
||||
#define FB_EVENT_GET_CON_ROTATE 0x0C
|
||||
/* CONSOLE-SPECIFIC: rotate all consoles */
|
||||
#define FB_EVENT_SET_CON_ROTATE_ALL 0x0D
|
||||
|
||||
struct fb_event {
|
||||
struct fb_info *info;
|
||||
|
|
@ -817,8 +831,8 @@ extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image);
|
|||
/* drivers/video/fbmem.c */
|
||||
extern int register_framebuffer(struct fb_info *fb_info);
|
||||
extern int unregister_framebuffer(struct fb_info *fb_info);
|
||||
extern int fb_prepare_logo(struct fb_info *fb_info);
|
||||
extern int fb_show_logo(struct fb_info *fb_info);
|
||||
extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);
|
||||
extern int fb_show_logo(struct fb_info *fb_info, int rotate);
|
||||
extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size);
|
||||
extern void fb_pad_unaligned_buffer(u8 *dst, u32 d_pitch, u8 *src, u32 idx,
|
||||
u32 height, u32 shift_high, u32 shift_low, u32 mod);
|
||||
|
|
@ -828,6 +842,7 @@ extern int fb_get_color_depth(struct fb_var_screeninfo *var,
|
|||
struct fb_fix_screeninfo *fix);
|
||||
extern int fb_get_options(char *name, char **option);
|
||||
extern int fb_new_modelist(struct fb_info *info);
|
||||
extern int fb_con_duit(struct fb_info *info, int event, void *data);
|
||||
|
||||
extern struct fb_info *registered_fb[FB_MAX];
|
||||
extern int num_registered_fb;
|
||||
|
|
|
|||
|
|
@ -874,6 +874,7 @@ static inline void unlock_super(struct super_block * sb)
|
|||
/*
|
||||
* VFS helper functions..
|
||||
*/
|
||||
extern int vfs_permission(struct nameidata *, int);
|
||||
extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
|
||||
extern int vfs_mkdir(struct inode *, struct dentry *, int);
|
||||
extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
|
||||
|
|
@ -888,6 +889,11 @@ extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct de
|
|||
*/
|
||||
extern void dentry_unhash(struct dentry *dentry);
|
||||
|
||||
/*
|
||||
* VFS file helper functions.
|
||||
*/
|
||||
extern int file_permission(struct file *, int);
|
||||
|
||||
/*
|
||||
* File types
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@
|
|||
#ifndef FS_ENET_PD_H
|
||||
#define FS_ENET_PD_H
|
||||
|
||||
#include <linux/version.h>
|
||||
#include <asm/types.h>
|
||||
|
||||
#define FS_ENET_NAME "fs_enet"
|
||||
|
|
|
|||
51
include/linux/genetlink.h
Normal file
51
include/linux/genetlink.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef __LINUX_GENERIC_NETLINK_H
|
||||
#define __LINUX_GENERIC_NETLINK_H
|
||||
|
||||
#include <linux/netlink.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))
|
||||
|
||||
/*
|
||||
* 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_MAX,
|
||||
};
|
||||
|
||||
#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
|
||||
|
||||
enum {
|
||||
CTRL_ATTR_UNSPEC,
|
||||
CTRL_ATTR_FAMILY_ID,
|
||||
CTRL_ATTR_FAMILY_NAME,
|
||||
__CTRL_ATTR_MAX,
|
||||
};
|
||||
|
||||
#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
|
||||
|
||||
#endif /* __LINUX_GENERIC_NETLINK_H */
|
||||
|
|
@ -27,10 +27,10 @@
|
|||
* ---- Driver types -----------------------------------------------------
|
||||
* device id name + number function description, i2c address(es)
|
||||
*
|
||||
* Range 1000-1999 range is defined in sensors/sensors.h
|
||||
* Range 0x100 - 0x1ff is for V4L2 Common Components
|
||||
* Range 1000-1999 range is defined in sensors/sensors.h
|
||||
* Range 0x100 - 0x1ff is for V4L2 Common Components
|
||||
* Range 0xf000 - 0xffff is reserved for local experimentation, and should
|
||||
* never be used in official drivers
|
||||
* never be used in official drivers
|
||||
*/
|
||||
|
||||
#define I2C_DRIVERID_MSP3400 1
|
||||
|
|
@ -99,7 +99,14 @@
|
|||
#define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */
|
||||
#define I2C_DRIVERID_SAA7114H 64 /* video decoder */
|
||||
#define I2C_DRIVERID_DS1374 65 /* DS1374 real time clock */
|
||||
|
||||
#define I2C_DRIVERID_TDA9874 66 /* TV sound decoder */
|
||||
#define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */
|
||||
#define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */
|
||||
#define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */
|
||||
#define I2C_DRIVERID_CS53L32A 70 /* cs53l32a audio processor */
|
||||
#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */
|
||||
#define I2C_DRIVERID_SAA7127 72 /* saa7124 video encoder */
|
||||
#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */
|
||||
|
||||
#define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */
|
||||
#define I2C_DRIVERID_EXP1 0xF1
|
||||
|
|
@ -111,7 +118,7 @@
|
|||
#define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */
|
||||
#define I2C_DRIVERID_ALERT 903 /* SMBus Alert Responder Client */
|
||||
|
||||
/* IDs -- Use DRIVERIDs 1000-1999 for sensors.
|
||||
/* IDs -- Use DRIVERIDs 1000-1999 for sensors.
|
||||
These were originally in sensors.h in the lm_sensors package */
|
||||
#define I2C_DRIVERID_LM78 1002
|
||||
#define I2C_DRIVERID_LM75 1003
|
||||
|
|
@ -190,6 +197,7 @@
|
|||
#define I2C_HW_B_NVIDIA 0x01001c /* nvidia framebuffer driver */
|
||||
#define I2C_HW_B_SAVAGE 0x01001d /* savage framebuffer driver */
|
||||
#define I2C_HW_B_RADEON 0x01001e /* radeon framebuffer driver */
|
||||
#define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */
|
||||
|
||||
/* --- PCF 8584 based algorithms */
|
||||
#define I2C_HW_P_LP 0x020000 /* Parallel port interface */
|
||||
|
|
|
|||
|
|
@ -230,6 +230,7 @@ typedef struct hw_regs_s {
|
|||
int dma; /* our dma entry */
|
||||
ide_ack_intr_t *ack_intr; /* acknowledge interrupt */
|
||||
hwif_chipset_t chipset;
|
||||
struct device *dev;
|
||||
} hw_regs_t;
|
||||
|
||||
/*
|
||||
|
|
@ -266,6 +267,10 @@ static inline void ide_std_init_ports(hw_regs_t *hw,
|
|||
|
||||
#include <asm/ide.h>
|
||||
|
||||
#ifndef MAX_HWIFS
|
||||
#define MAX_HWIFS CONFIG_IDE_MAX_HWIFS
|
||||
#endif
|
||||
|
||||
/* needed on alpha, x86/x86_64, ia64, mips, ppc32 and sh */
|
||||
#ifndef IDE_ARCH_OBSOLETE_DEFAULTS
|
||||
# define ide_default_io_base(index) (0)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* ==FILEVERSION 20000724==
|
||||
* ==FILEVERSION 20050812==
|
||||
*
|
||||
* NOTE TO MAINTAINERS:
|
||||
* If you modify this file at all, please set the above date.
|
||||
|
|
@ -35,6 +35,8 @@
|
|||
#ifndef _IF_PPP_H_
|
||||
#define _IF_PPP_H_
|
||||
|
||||
#include <linux/compiler.h>
|
||||
|
||||
/*
|
||||
* Packet sizes
|
||||
*/
|
||||
|
|
@ -70,7 +72,8 @@
|
|||
#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_MASK 0x0f200fff /* bits that user can change */
|
||||
#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?) */
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@
|
|||
#ifndef _WANPIPE_SOCK_DRIVER_COMMON_H
|
||||
#define _WANPIPE_SOCK_DRIVER_COMMON_H
|
||||
|
||||
#include <linux/version.h>
|
||||
|
||||
typedef struct {
|
||||
struct net_device *slave;
|
||||
atomic_t packet_sent;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <linux/version.h>
|
||||
|
||||
/*****************************************************************************/
|
||||
#ifndef _ISTALLION_H
|
||||
#define _ISTALLION_H
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#define __MTD_CFI_H__
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
#endif
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/uio.h>
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
|
|||
extern void release_open_intent(struct nameidata *);
|
||||
|
||||
extern struct dentry * lookup_one_len(const char *, struct dentry *, int);
|
||||
extern struct dentry * lookup_hash(struct qstr *, struct dentry *);
|
||||
extern struct dentry * lookup_hash(struct nameidata *);
|
||||
|
||||
extern int follow_down(struct vfsmount **, struct dentry **);
|
||||
extern int follow_up(struct vfsmount **, struct dentry **);
|
||||
|
|
|
|||
159
include/linux/netfilter/nf_conntrack_common.h
Normal file
159
include/linux/netfilter/nf_conntrack_common.h
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
#ifndef _NF_CONNTRACK_COMMON_H
|
||||
#define _NF_CONNTRACK_COMMON_H
|
||||
/* Connection state tracking for netfilter. This is separated from,
|
||||
but required by, the NAT layer; it can also be used by an iptables
|
||||
extension. */
|
||||
enum ip_conntrack_info
|
||||
{
|
||||
/* Part of an established connection (either direction). */
|
||||
IP_CT_ESTABLISHED,
|
||||
|
||||
/* Like NEW, but related to an existing connection, or ICMP error
|
||||
(in either direction). */
|
||||
IP_CT_RELATED,
|
||||
|
||||
/* Started a new connection to track (only
|
||||
IP_CT_DIR_ORIGINAL); may be a retransmission. */
|
||||
IP_CT_NEW,
|
||||
|
||||
/* >= this indicates reply direction */
|
||||
IP_CT_IS_REPLY,
|
||||
|
||||
/* Number of distinct IP_CT types (no NEW in reply dirn). */
|
||||
IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1
|
||||
};
|
||||
|
||||
/* Bitset representing status of connection. */
|
||||
enum ip_conntrack_status {
|
||||
/* It's an expected connection: bit 0 set. This bit never changed */
|
||||
IPS_EXPECTED_BIT = 0,
|
||||
IPS_EXPECTED = (1 << IPS_EXPECTED_BIT),
|
||||
|
||||
/* We've seen packets both ways: bit 1 set. Can be set, not unset. */
|
||||
IPS_SEEN_REPLY_BIT = 1,
|
||||
IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT),
|
||||
|
||||
/* Conntrack should never be early-expired. */
|
||||
IPS_ASSURED_BIT = 2,
|
||||
IPS_ASSURED = (1 << IPS_ASSURED_BIT),
|
||||
|
||||
/* Connection is confirmed: originating packet has left box */
|
||||
IPS_CONFIRMED_BIT = 3,
|
||||
IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT),
|
||||
|
||||
/* Connection needs src nat in orig dir. This bit never changed. */
|
||||
IPS_SRC_NAT_BIT = 4,
|
||||
IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT),
|
||||
|
||||
/* Connection needs dst nat in orig dir. This bit never changed. */
|
||||
IPS_DST_NAT_BIT = 5,
|
||||
IPS_DST_NAT = (1 << IPS_DST_NAT_BIT),
|
||||
|
||||
/* Both together. */
|
||||
IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT),
|
||||
|
||||
/* Connection needs TCP sequence adjusted. */
|
||||
IPS_SEQ_ADJUST_BIT = 6,
|
||||
IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT),
|
||||
|
||||
/* NAT initialization bits. */
|
||||
IPS_SRC_NAT_DONE_BIT = 7,
|
||||
IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT),
|
||||
|
||||
IPS_DST_NAT_DONE_BIT = 8,
|
||||
IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT),
|
||||
|
||||
/* Both together */
|
||||
IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE),
|
||||
|
||||
/* Connection is dying (removed from lists), can not be unset. */
|
||||
IPS_DYING_BIT = 9,
|
||||
IPS_DYING = (1 << IPS_DYING_BIT),
|
||||
};
|
||||
|
||||
/* Connection tracking event bits */
|
||||
enum ip_conntrack_events
|
||||
{
|
||||
/* New conntrack */
|
||||
IPCT_NEW_BIT = 0,
|
||||
IPCT_NEW = (1 << IPCT_NEW_BIT),
|
||||
|
||||
/* Expected connection */
|
||||
IPCT_RELATED_BIT = 1,
|
||||
IPCT_RELATED = (1 << IPCT_RELATED_BIT),
|
||||
|
||||
/* Destroyed conntrack */
|
||||
IPCT_DESTROY_BIT = 2,
|
||||
IPCT_DESTROY = (1 << IPCT_DESTROY_BIT),
|
||||
|
||||
/* Timer has been refreshed */
|
||||
IPCT_REFRESH_BIT = 3,
|
||||
IPCT_REFRESH = (1 << IPCT_REFRESH_BIT),
|
||||
|
||||
/* Status has changed */
|
||||
IPCT_STATUS_BIT = 4,
|
||||
IPCT_STATUS = (1 << IPCT_STATUS_BIT),
|
||||
|
||||
/* Update of protocol info */
|
||||
IPCT_PROTOINFO_BIT = 5,
|
||||
IPCT_PROTOINFO = (1 << IPCT_PROTOINFO_BIT),
|
||||
|
||||
/* Volatile protocol info */
|
||||
IPCT_PROTOINFO_VOLATILE_BIT = 6,
|
||||
IPCT_PROTOINFO_VOLATILE = (1 << IPCT_PROTOINFO_VOLATILE_BIT),
|
||||
|
||||
/* New helper for conntrack */
|
||||
IPCT_HELPER_BIT = 7,
|
||||
IPCT_HELPER = (1 << IPCT_HELPER_BIT),
|
||||
|
||||
/* Update of helper info */
|
||||
IPCT_HELPINFO_BIT = 8,
|
||||
IPCT_HELPINFO = (1 << IPCT_HELPINFO_BIT),
|
||||
|
||||
/* Volatile helper info */
|
||||
IPCT_HELPINFO_VOLATILE_BIT = 9,
|
||||
IPCT_HELPINFO_VOLATILE = (1 << IPCT_HELPINFO_VOLATILE_BIT),
|
||||
|
||||
/* NAT info */
|
||||
IPCT_NATINFO_BIT = 10,
|
||||
IPCT_NATINFO = (1 << IPCT_NATINFO_BIT),
|
||||
|
||||
/* Counter highest bit has been set */
|
||||
IPCT_COUNTER_FILLING_BIT = 11,
|
||||
IPCT_COUNTER_FILLING = (1 << IPCT_COUNTER_FILLING_BIT),
|
||||
};
|
||||
|
||||
enum ip_conntrack_expect_events {
|
||||
IPEXP_NEW_BIT = 0,
|
||||
IPEXP_NEW = (1 << IPEXP_NEW_BIT),
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
struct ip_conntrack_counter
|
||||
{
|
||||
u_int32_t packets;
|
||||
u_int32_t bytes;
|
||||
};
|
||||
|
||||
struct ip_conntrack_stat
|
||||
{
|
||||
unsigned int searched;
|
||||
unsigned int found;
|
||||
unsigned int new;
|
||||
unsigned int invalid;
|
||||
unsigned int ignore;
|
||||
unsigned int delete;
|
||||
unsigned int delete_list;
|
||||
unsigned int insert;
|
||||
unsigned int insert_failed;
|
||||
unsigned int drop;
|
||||
unsigned int early_drop;
|
||||
unsigned int error;
|
||||
unsigned int expect_new;
|
||||
unsigned int expect_create;
|
||||
unsigned int expect_delete;
|
||||
};
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _NF_CONNTRACK_COMMON_H */
|
||||
44
include/linux/netfilter/nf_conntrack_ftp.h
Normal file
44
include/linux/netfilter/nf_conntrack_ftp.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#ifndef _NF_CONNTRACK_FTP_H
|
||||
#define _NF_CONNTRACK_FTP_H
|
||||
/* FTP tracking. */
|
||||
|
||||
/* This enum is exposed to userspace */
|
||||
enum ip_ct_ftp_type
|
||||
{
|
||||
/* PORT command from client */
|
||||
IP_CT_FTP_PORT,
|
||||
/* PASV response from server */
|
||||
IP_CT_FTP_PASV,
|
||||
/* EPRT command from client */
|
||||
IP_CT_FTP_EPRT,
|
||||
/* EPSV response from server */
|
||||
IP_CT_FTP_EPSV,
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define FTP_PORT 21
|
||||
|
||||
#define NUM_SEQ_TO_REMEMBER 2
|
||||
/* This structure exists only once per master */
|
||||
struct ip_ct_ftp_master {
|
||||
/* Valid seq positions for cmd matching after newline */
|
||||
u_int32_t seq_aft_nl[IP_CT_DIR_MAX][NUM_SEQ_TO_REMEMBER];
|
||||
/* 0 means seq_match_aft_nl not set */
|
||||
int seq_aft_nl_num[IP_CT_DIR_MAX];
|
||||
};
|
||||
|
||||
struct ip_conntrack_expect;
|
||||
|
||||
/* For NAT to hook in when we find a packet which describes what other
|
||||
* connection we should expect. */
|
||||
extern unsigned int (*ip_nat_ftp_hook)(struct sk_buff **pskb,
|
||||
enum ip_conntrack_info ctinfo,
|
||||
enum ip_ct_ftp_type type,
|
||||
unsigned int matchoff,
|
||||
unsigned int matchlen,
|
||||
struct ip_conntrack_expect *exp,
|
||||
u32 *seq);
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _NF_CONNTRACK_FTP_H */
|
||||
27
include/linux/netfilter/nf_conntrack_sctp.h
Normal file
27
include/linux/netfilter/nf_conntrack_sctp.h
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef _NF_CONNTRACK_SCTP_H
|
||||
#define _NF_CONNTRACK_SCTP_H
|
||||
/* SCTP tracking. */
|
||||
|
||||
#include <linux/netfilter/nf_conntrack_tuple_common.h>
|
||||
|
||||
enum sctp_conntrack {
|
||||
SCTP_CONNTRACK_NONE,
|
||||
SCTP_CONNTRACK_CLOSED,
|
||||
SCTP_CONNTRACK_COOKIE_WAIT,
|
||||
SCTP_CONNTRACK_COOKIE_ECHOED,
|
||||
SCTP_CONNTRACK_ESTABLISHED,
|
||||
SCTP_CONNTRACK_SHUTDOWN_SENT,
|
||||
SCTP_CONNTRACK_SHUTDOWN_RECD,
|
||||
SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
|
||||
SCTP_CONNTRACK_MAX
|
||||
};
|
||||
|
||||
struct ip_ct_sctp
|
||||
{
|
||||
enum sctp_conntrack state;
|
||||
|
||||
u_int32_t vtag[IP_CT_DIR_MAX];
|
||||
u_int32_t ttag[IP_CT_DIR_MAX];
|
||||
};
|
||||
|
||||
#endif /* _NF_CONNTRACK_SCTP_H */
|
||||
56
include/linux/netfilter/nf_conntrack_tcp.h
Normal file
56
include/linux/netfilter/nf_conntrack_tcp.h
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#ifndef _NF_CONNTRACK_TCP_H
|
||||
#define _NF_CONNTRACK_TCP_H
|
||||
/* TCP tracking. */
|
||||
|
||||
/* This is exposed to userspace (ctnetlink) */
|
||||
enum tcp_conntrack {
|
||||
TCP_CONNTRACK_NONE,
|
||||
TCP_CONNTRACK_SYN_SENT,
|
||||
TCP_CONNTRACK_SYN_RECV,
|
||||
TCP_CONNTRACK_ESTABLISHED,
|
||||
TCP_CONNTRACK_FIN_WAIT,
|
||||
TCP_CONNTRACK_CLOSE_WAIT,
|
||||
TCP_CONNTRACK_LAST_ACK,
|
||||
TCP_CONNTRACK_TIME_WAIT,
|
||||
TCP_CONNTRACK_CLOSE,
|
||||
TCP_CONNTRACK_LISTEN,
|
||||
TCP_CONNTRACK_MAX,
|
||||
TCP_CONNTRACK_IGNORE
|
||||
};
|
||||
|
||||
/* Window scaling is advertised by the sender */
|
||||
#define IP_CT_TCP_FLAG_WINDOW_SCALE 0x01
|
||||
|
||||
/* SACK is permitted by the sender */
|
||||
#define IP_CT_TCP_FLAG_SACK_PERM 0x02
|
||||
|
||||
/* This sender sent FIN first */
|
||||
#define IP_CT_TCP_FLAG_CLOSE_INIT 0x03
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
struct ip_ct_tcp_state {
|
||||
u_int32_t td_end; /* max of seq + len */
|
||||
u_int32_t td_maxend; /* max of ack + max(win, 1) */
|
||||
u_int32_t td_maxwin; /* max(win) */
|
||||
u_int8_t td_scale; /* window scale factor */
|
||||
u_int8_t loose; /* used when connection picked up from the middle */
|
||||
u_int8_t flags; /* per direction options */
|
||||
};
|
||||
|
||||
struct ip_ct_tcp
|
||||
{
|
||||
struct ip_ct_tcp_state seen[2]; /* connection parameters per direction */
|
||||
u_int8_t state; /* state of the connection (enum tcp_conntrack) */
|
||||
/* For detecting stale connections */
|
||||
u_int8_t last_dir; /* Direction of the last packet (enum ip_conntrack_dir) */
|
||||
u_int8_t retrans; /* Number of retransmitted packets */
|
||||
u_int8_t last_index; /* Index of the last packet */
|
||||
u_int32_t last_seq; /* Last sequence number seen in dir */
|
||||
u_int32_t last_ack; /* Last sequence number seen in opposite dir */
|
||||
u_int32_t last_end; /* Last seq + len */
|
||||
};
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _NF_CONNTRACK_TCP_H */
|
||||
13
include/linux/netfilter/nf_conntrack_tuple_common.h
Normal file
13
include/linux/netfilter/nf_conntrack_tuple_common.h
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
|
||||
#define _NF_CONNTRACK_TUPLE_COMMON_H
|
||||
|
||||
enum ip_conntrack_dir
|
||||
{
|
||||
IP_CT_DIR_ORIGINAL,
|
||||
IP_CT_DIR_REPLY,
|
||||
IP_CT_DIR_MAX
|
||||
};
|
||||
|
||||
#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
|
||||
|
||||
#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */
|
||||
|
|
@ -146,7 +146,7 @@ extern void nfnl_unlock(void);
|
|||
extern int nfnetlink_subsys_register(struct nfnetlink_subsystem *n);
|
||||
extern int nfnetlink_subsys_unregister(struct nfnetlink_subsystem *n);
|
||||
|
||||
extern int nfattr_parse(struct nfattr *tb[], int maxattr,
|
||||
extern void nfattr_parse(struct nfattr *tb[], int maxattr,
|
||||
struct nfattr *nfa, int len);
|
||||
|
||||
#define nfattr_parse_nested(tb, max, nfa) \
|
||||
|
|
|
|||
|
|
@ -1,132 +1,7 @@
|
|||
#ifndef _IP_CONNTRACK_H
|
||||
#define _IP_CONNTRACK_H
|
||||
/* Connection state tracking for netfilter. This is separated from,
|
||||
but required by, the NAT layer; it can also be used by an iptables
|
||||
extension. */
|
||||
enum ip_conntrack_info
|
||||
{
|
||||
/* Part of an established connection (either direction). */
|
||||
IP_CT_ESTABLISHED,
|
||||
|
||||
/* Like NEW, but related to an existing connection, or ICMP error
|
||||
(in either direction). */
|
||||
IP_CT_RELATED,
|
||||
|
||||
/* Started a new connection to track (only
|
||||
IP_CT_DIR_ORIGINAL); may be a retransmission. */
|
||||
IP_CT_NEW,
|
||||
|
||||
/* >= this indicates reply direction */
|
||||
IP_CT_IS_REPLY,
|
||||
|
||||
/* Number of distinct IP_CT types (no NEW in reply dirn). */
|
||||
IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1
|
||||
};
|
||||
|
||||
/* Bitset representing status of connection. */
|
||||
enum ip_conntrack_status {
|
||||
/* It's an expected connection: bit 0 set. This bit never changed */
|
||||
IPS_EXPECTED_BIT = 0,
|
||||
IPS_EXPECTED = (1 << IPS_EXPECTED_BIT),
|
||||
|
||||
/* We've seen packets both ways: bit 1 set. Can be set, not unset. */
|
||||
IPS_SEEN_REPLY_BIT = 1,
|
||||
IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT),
|
||||
|
||||
/* Conntrack should never be early-expired. */
|
||||
IPS_ASSURED_BIT = 2,
|
||||
IPS_ASSURED = (1 << IPS_ASSURED_BIT),
|
||||
|
||||
/* Connection is confirmed: originating packet has left box */
|
||||
IPS_CONFIRMED_BIT = 3,
|
||||
IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT),
|
||||
|
||||
/* Connection needs src nat in orig dir. This bit never changed. */
|
||||
IPS_SRC_NAT_BIT = 4,
|
||||
IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT),
|
||||
|
||||
/* Connection needs dst nat in orig dir. This bit never changed. */
|
||||
IPS_DST_NAT_BIT = 5,
|
||||
IPS_DST_NAT = (1 << IPS_DST_NAT_BIT),
|
||||
|
||||
/* Both together. */
|
||||
IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT),
|
||||
|
||||
/* Connection needs TCP sequence adjusted. */
|
||||
IPS_SEQ_ADJUST_BIT = 6,
|
||||
IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT),
|
||||
|
||||
/* NAT initialization bits. */
|
||||
IPS_SRC_NAT_DONE_BIT = 7,
|
||||
IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT),
|
||||
|
||||
IPS_DST_NAT_DONE_BIT = 8,
|
||||
IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT),
|
||||
|
||||
/* Both together */
|
||||
IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE),
|
||||
|
||||
/* Connection is dying (removed from lists), can not be unset. */
|
||||
IPS_DYING_BIT = 9,
|
||||
IPS_DYING = (1 << IPS_DYING_BIT),
|
||||
};
|
||||
|
||||
/* Connection tracking event bits */
|
||||
enum ip_conntrack_events
|
||||
{
|
||||
/* New conntrack */
|
||||
IPCT_NEW_BIT = 0,
|
||||
IPCT_NEW = (1 << IPCT_NEW_BIT),
|
||||
|
||||
/* Expected connection */
|
||||
IPCT_RELATED_BIT = 1,
|
||||
IPCT_RELATED = (1 << IPCT_RELATED_BIT),
|
||||
|
||||
/* Destroyed conntrack */
|
||||
IPCT_DESTROY_BIT = 2,
|
||||
IPCT_DESTROY = (1 << IPCT_DESTROY_BIT),
|
||||
|
||||
/* Timer has been refreshed */
|
||||
IPCT_REFRESH_BIT = 3,
|
||||
IPCT_REFRESH = (1 << IPCT_REFRESH_BIT),
|
||||
|
||||
/* Status has changed */
|
||||
IPCT_STATUS_BIT = 4,
|
||||
IPCT_STATUS = (1 << IPCT_STATUS_BIT),
|
||||
|
||||
/* Update of protocol info */
|
||||
IPCT_PROTOINFO_BIT = 5,
|
||||
IPCT_PROTOINFO = (1 << IPCT_PROTOINFO_BIT),
|
||||
|
||||
/* Volatile protocol info */
|
||||
IPCT_PROTOINFO_VOLATILE_BIT = 6,
|
||||
IPCT_PROTOINFO_VOLATILE = (1 << IPCT_PROTOINFO_VOLATILE_BIT),
|
||||
|
||||
/* New helper for conntrack */
|
||||
IPCT_HELPER_BIT = 7,
|
||||
IPCT_HELPER = (1 << IPCT_HELPER_BIT),
|
||||
|
||||
/* Update of helper info */
|
||||
IPCT_HELPINFO_BIT = 8,
|
||||
IPCT_HELPINFO = (1 << IPCT_HELPINFO_BIT),
|
||||
|
||||
/* Volatile helper info */
|
||||
IPCT_HELPINFO_VOLATILE_BIT = 9,
|
||||
IPCT_HELPINFO_VOLATILE = (1 << IPCT_HELPINFO_VOLATILE_BIT),
|
||||
|
||||
/* NAT info */
|
||||
IPCT_NATINFO_BIT = 10,
|
||||
IPCT_NATINFO = (1 << IPCT_NATINFO_BIT),
|
||||
|
||||
/* Counter highest bit has been set */
|
||||
IPCT_COUNTER_FILLING_BIT = 11,
|
||||
IPCT_COUNTER_FILLING = (1 << IPCT_COUNTER_FILLING_BIT),
|
||||
};
|
||||
|
||||
enum ip_conntrack_expect_events {
|
||||
IPEXP_NEW_BIT = 0,
|
||||
IPEXP_NEW = (1 << IPEXP_NEW_BIT),
|
||||
};
|
||||
#include <linux/netfilter/nf_conntrack_common.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/config.h>
|
||||
|
|
@ -194,12 +69,6 @@ do { \
|
|||
#define IP_NF_ASSERT(x)
|
||||
#endif
|
||||
|
||||
struct ip_conntrack_counter
|
||||
{
|
||||
u_int32_t packets;
|
||||
u_int32_t bytes;
|
||||
};
|
||||
|
||||
struct ip_conntrack_helper;
|
||||
|
||||
struct ip_conntrack
|
||||
|
|
@ -426,25 +295,6 @@ static inline int is_dying(struct ip_conntrack *ct)
|
|||
|
||||
extern unsigned int ip_conntrack_htable_size;
|
||||
|
||||
struct ip_conntrack_stat
|
||||
{
|
||||
unsigned int searched;
|
||||
unsigned int found;
|
||||
unsigned int new;
|
||||
unsigned int invalid;
|
||||
unsigned int ignore;
|
||||
unsigned int delete;
|
||||
unsigned int delete_list;
|
||||
unsigned int insert;
|
||||
unsigned int insert_failed;
|
||||
unsigned int drop;
|
||||
unsigned int early_drop;
|
||||
unsigned int error;
|
||||
unsigned int expect_new;
|
||||
unsigned int expect_create;
|
||||
unsigned int expect_delete;
|
||||
};
|
||||
|
||||
#define CONNTRACK_STAT_INC(count) (__get_cpu_var(ip_conntrack_stat).count++)
|
||||
|
||||
#ifdef CONFIG_IP_NF_CONNTRACK_EVENTS
|
||||
|
|
|
|||
|
|
@ -1,43 +1,6 @@
|
|||
#ifndef _IP_CONNTRACK_FTP_H
|
||||
#define _IP_CONNTRACK_FTP_H
|
||||
/* FTP tracking. */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/netfilter/nf_conntrack_ftp.h>
|
||||
|
||||
#define FTP_PORT 21
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
enum ip_ct_ftp_type
|
||||
{
|
||||
/* PORT command from client */
|
||||
IP_CT_FTP_PORT,
|
||||
/* PASV response from server */
|
||||
IP_CT_FTP_PASV,
|
||||
/* EPRT command from client */
|
||||
IP_CT_FTP_EPRT,
|
||||
/* EPSV response from server */
|
||||
IP_CT_FTP_EPSV,
|
||||
};
|
||||
|
||||
#define NUM_SEQ_TO_REMEMBER 2
|
||||
/* This structure exists only once per master */
|
||||
struct ip_ct_ftp_master {
|
||||
/* Valid seq positions for cmd matching after newline */
|
||||
u_int32_t seq_aft_nl[IP_CT_DIR_MAX][NUM_SEQ_TO_REMEMBER];
|
||||
/* 0 means seq_match_aft_nl not set */
|
||||
int seq_aft_nl_num[IP_CT_DIR_MAX];
|
||||
};
|
||||
|
||||
struct ip_conntrack_expect;
|
||||
|
||||
/* For NAT to hook in when we find a packet which describes what other
|
||||
* connection we should expect. */
|
||||
extern unsigned int (*ip_nat_ftp_hook)(struct sk_buff **pskb,
|
||||
enum ip_conntrack_info ctinfo,
|
||||
enum ip_ct_ftp_type type,
|
||||
unsigned int matchoff,
|
||||
unsigned int matchlen,
|
||||
struct ip_conntrack_expect *exp,
|
||||
u32 *seq);
|
||||
#endif /* _IP_CONNTRACK_FTP_H */
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
#ifndef _IP_CONNTRACK_ICMP_H
|
||||
#define _IP_CONNTRACK_ICMP_H
|
||||
/* ICMP tracking. */
|
||||
#include <asm/atomic.h>
|
||||
|
||||
struct ip_ct_icmp
|
||||
{
|
||||
/* Optimization: when number in == number out, forget immediately. */
|
||||
atomic_t count;
|
||||
};
|
||||
#include <net/netfilter/ipv4/nf_conntrack_icmp.h>
|
||||
|
||||
#endif /* _IP_CONNTRACK_ICMP_H */
|
||||
|
|
|
|||
|
|
@ -1,25 +1,6 @@
|
|||
#ifndef _IP_CONNTRACK_SCTP_H
|
||||
#define _IP_CONNTRACK_SCTP_H
|
||||
/* SCTP tracking. */
|
||||
|
||||
enum sctp_conntrack {
|
||||
SCTP_CONNTRACK_NONE,
|
||||
SCTP_CONNTRACK_CLOSED,
|
||||
SCTP_CONNTRACK_COOKIE_WAIT,
|
||||
SCTP_CONNTRACK_COOKIE_ECHOED,
|
||||
SCTP_CONNTRACK_ESTABLISHED,
|
||||
SCTP_CONNTRACK_SHUTDOWN_SENT,
|
||||
SCTP_CONNTRACK_SHUTDOWN_RECD,
|
||||
SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
|
||||
SCTP_CONNTRACK_MAX
|
||||
};
|
||||
|
||||
struct ip_ct_sctp
|
||||
{
|
||||
enum sctp_conntrack state;
|
||||
|
||||
u_int32_t vtag[IP_CT_DIR_MAX];
|
||||
u_int32_t ttag[IP_CT_DIR_MAX];
|
||||
};
|
||||
#include <linux/netfilter/nf_conntrack_sctp.h>
|
||||
|
||||
#endif /* _IP_CONNTRACK_SCTP_H */
|
||||
|
|
|
|||
|
|
@ -1,51 +1,6 @@
|
|||
#ifndef _IP_CONNTRACK_TCP_H
|
||||
#define _IP_CONNTRACK_TCP_H
|
||||
/* TCP tracking. */
|
||||
|
||||
enum tcp_conntrack {
|
||||
TCP_CONNTRACK_NONE,
|
||||
TCP_CONNTRACK_SYN_SENT,
|
||||
TCP_CONNTRACK_SYN_RECV,
|
||||
TCP_CONNTRACK_ESTABLISHED,
|
||||
TCP_CONNTRACK_FIN_WAIT,
|
||||
TCP_CONNTRACK_CLOSE_WAIT,
|
||||
TCP_CONNTRACK_LAST_ACK,
|
||||
TCP_CONNTRACK_TIME_WAIT,
|
||||
TCP_CONNTRACK_CLOSE,
|
||||
TCP_CONNTRACK_LISTEN,
|
||||
TCP_CONNTRACK_MAX,
|
||||
TCP_CONNTRACK_IGNORE
|
||||
};
|
||||
|
||||
/* Window scaling is advertised by the sender */
|
||||
#define IP_CT_TCP_FLAG_WINDOW_SCALE 0x01
|
||||
|
||||
/* SACK is permitted by the sender */
|
||||
#define IP_CT_TCP_FLAG_SACK_PERM 0x02
|
||||
|
||||
/* This sender sent FIN first */
|
||||
#define IP_CT_TCP_FLAG_CLOSE_INIT 0x03
|
||||
|
||||
struct ip_ct_tcp_state {
|
||||
u_int32_t td_end; /* max of seq + len */
|
||||
u_int32_t td_maxend; /* max of ack + max(win, 1) */
|
||||
u_int32_t td_maxwin; /* max(win) */
|
||||
u_int8_t td_scale; /* window scale factor */
|
||||
u_int8_t loose; /* used when connection picked up from the middle */
|
||||
u_int8_t flags; /* per direction options */
|
||||
};
|
||||
|
||||
struct ip_ct_tcp
|
||||
{
|
||||
struct ip_ct_tcp_state seen[2]; /* connection parameters per direction */
|
||||
u_int8_t state; /* state of the connection (enum tcp_conntrack) */
|
||||
/* For detecting stale connections */
|
||||
u_int8_t last_dir; /* Direction of the last packet (enum ip_conntrack_dir) */
|
||||
u_int8_t retrans; /* Number of retransmitted packets */
|
||||
u_int8_t last_index; /* Index of the last packet */
|
||||
u_int32_t last_seq; /* Last sequence number seen in dir */
|
||||
u_int32_t last_ack; /* Last sequence number seen in opposite dir */
|
||||
u_int32_t last_end; /* Last seq + len */
|
||||
};
|
||||
#include <linux/netfilter/nf_conntrack_tcp.h>
|
||||
|
||||
#endif /* _IP_CONNTRACK_TCP_H */
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define _IP_CONNTRACK_TUPLE_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/netfilter/nf_conntrack_tuple_common.h>
|
||||
|
||||
/* A `tuple' is a structure containing the information to uniquely
|
||||
identify a connection. ie. if two packets have the same tuple, they
|
||||
|
|
@ -88,13 +89,6 @@ struct ip_conntrack_tuple
|
|||
(tuple)->dst.u.all = 0; \
|
||||
} while (0)
|
||||
|
||||
enum ip_conntrack_dir
|
||||
{
|
||||
IP_CT_DIR_ORIGINAL,
|
||||
IP_CT_DIR_REPLY,
|
||||
IP_CT_DIR_MAX
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define DUMP_TUPLE(tp) \
|
||||
|
|
@ -103,8 +97,6 @@ DEBUGP("tuple %p: %u %u.%u.%u.%u:%hu -> %u.%u.%u.%u:%hu\n", \
|
|||
NIPQUAD((tp)->src.ip), ntohs((tp)->src.u.all), \
|
||||
NIPQUAD((tp)->dst.ip), ntohs((tp)->dst.u.all))
|
||||
|
||||
#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
|
||||
|
||||
/* If we're the first tuple, it's the original dir. */
|
||||
#define DIRECTION(h) ((enum ip_conntrack_dir)(h)->tuple.dst.dir)
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
|
||||
enum nf_ip6_hook_priorities {
|
||||
NF_IP6_PRI_FIRST = INT_MIN,
|
||||
NF_IP6_PRI_CONNTRACK_DEFRAG = -400,
|
||||
NF_IP6_PRI_SELINUX_FIRST = -225,
|
||||
NF_IP6_PRI_CONNTRACK = -200,
|
||||
NF_IP6_PRI_BRIDGE_SABOTAGE_FORWARD = -175,
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ struct nlmsghdr
|
|||
|
||||
#define NLMSG_ALIGNTO 4
|
||||
#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
|
||||
#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
||||
#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), \
|
||||
|
|
@ -86,6 +87,8 @@ struct nlmsghdr
|
|||
#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;
|
||||
|
|
@ -108,6 +111,25 @@ enum {
|
|||
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;
|
||||
};
|
||||
|
||||
#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>
|
||||
|
|
|
|||
|
|
@ -387,6 +387,7 @@
|
|||
#define PCI_DEVICE_ID_NS_SC1100_SMI 0x0511
|
||||
#define PCI_DEVICE_ID_NS_SC1100_XBUS 0x0515
|
||||
#define PCI_DEVICE_ID_NS_87410 0xd001
|
||||
#define PCI_DEVICE_ID_NS_CS5535_IDE 0x002d
|
||||
|
||||
#define PCI_VENDOR_ID_TSENG 0x100c
|
||||
#define PCI_DEVICE_ID_TSENG_W32P_2 0x3202
|
||||
|
|
@ -488,6 +489,8 @@
|
|||
#define PCI_DEVICE_ID_AMD_8151_0 0x7454
|
||||
#define PCI_DEVICE_ID_AMD_8131_APIC 0x7450
|
||||
|
||||
#define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A
|
||||
|
||||
#define PCI_VENDOR_ID_TRIDENT 0x1023
|
||||
#define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000
|
||||
#define PCI_DEVICE_ID_TRIDENT_4DWAVE_NX 0x2001
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
#define __LINUX_PHONEDEV_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
|
|
|||
|
|
@ -111,6 +111,8 @@ struct compressor {
|
|||
|
||||
/* Used in locking compressor modules */
|
||||
struct module *owner;
|
||||
/* Extra skb space needed by the compressor algorithm */
|
||||
unsigned int comp_extra;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -190,6 +192,13 @@ struct compressor {
|
|||
#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.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ struct proc_dir_entry {
|
|||
write_proc_t *write_proc;
|
||||
atomic_t count; /* use count */
|
||||
int deleted; /* delete flag */
|
||||
void *set;
|
||||
};
|
||||
|
||||
struct kcore_list {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,13 @@
|
|||
#ifndef BITMAP_H
|
||||
#define BITMAP_H 1
|
||||
|
||||
#define BITMAP_MAJOR 3
|
||||
#define BITMAP_MAJOR_LO 3
|
||||
/* version 4 insists the bitmap is in little-endian order
|
||||
* with version 3, it is host-endian which is non-portable
|
||||
*/
|
||||
#define BITMAP_MAJOR_HI 4
|
||||
#define BITMAP_MAJOR_HOSTENDIAN 3
|
||||
|
||||
#define BITMAP_MINOR 39
|
||||
|
||||
/*
|
||||
|
|
@ -133,7 +139,8 @@ typedef __u16 bitmap_counter_t;
|
|||
/* use these for bitmap->flags and bitmap->sb->state bit-fields */
|
||||
enum bitmap_state {
|
||||
BITMAP_ACTIVE = 0x001, /* the bitmap is in use */
|
||||
BITMAP_STALE = 0x002 /* the bitmap file is out of date or had -EIO */
|
||||
BITMAP_STALE = 0x002, /* the bitmap file is out of date or had -EIO */
|
||||
BITMAP_HOSTENDIAN = 0x8000,
|
||||
};
|
||||
|
||||
/* the superblock at the front of the bitmap file -- little endian */
|
||||
|
|
|
|||
|
|
@ -66,8 +66,10 @@
|
|||
* and major_version/minor_version accordingly
|
||||
* >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT
|
||||
* in the super status byte
|
||||
* >=3 means that bitmap superblock version 4 is supported, which uses
|
||||
* little-ending representation rather than host-endian
|
||||
*/
|
||||
#define MD_PATCHLEVEL_VERSION 2
|
||||
#define MD_PATCHLEVEL_VERSION 3
|
||||
|
||||
extern int register_md_personality (int p_num, mdk_personality_t *p);
|
||||
extern int unregister_md_personality (int p_num);
|
||||
|
|
@ -87,6 +89,7 @@ extern void md_print_devices (void);
|
|||
|
||||
extern void md_super_write(mddev_t *mddev, mdk_rdev_t *rdev,
|
||||
sector_t sector, int size, struct page *page);
|
||||
extern void md_super_wait(mddev_t *mddev);
|
||||
extern int sync_page_io(struct block_device *bdev, sector_t sector, int size,
|
||||
struct page *page, int rw);
|
||||
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ struct mdk_rdev_s
|
|||
int sb_size; /* bytes in the superblock */
|
||||
int preferred_minor; /* autorun support */
|
||||
|
||||
struct kobject kobj;
|
||||
|
||||
/* A device can be in one of three states based on two flags:
|
||||
* Not working: faulty==1 in_sync==0
|
||||
* Fully working: faulty==0 in_sync==1
|
||||
|
|
@ -115,11 +117,12 @@ struct mdk_rdev_s
|
|||
* It can never have faulty==1, in_sync==1
|
||||
* This reduces the burden of testing multiple flags in many cases
|
||||
*/
|
||||
int faulty; /* if faulty do not issue IO requests */
|
||||
int in_sync; /* device is a full member of the array */
|
||||
|
||||
unsigned long flags; /* Should include faulty and in_sync here. */
|
||||
unsigned long flags;
|
||||
#define Faulty 1 /* device is known to have a fault */
|
||||
#define In_sync 2 /* device is in_sync with rest of array */
|
||||
#define WriteMostly 4 /* Avoid reading if at all possible */
|
||||
#define BarriersNotsupp 5 /* BIO_RW_BARRIER is not supported */
|
||||
|
||||
int desc_nr; /* descriptor index in the superblock */
|
||||
int raid_disk; /* role of device in array */
|
||||
|
|
@ -132,6 +135,9 @@ struct mdk_rdev_s
|
|||
* only maintained for arrays that
|
||||
* support hot removal
|
||||
*/
|
||||
atomic_t read_errors; /* number of consecutive read errors that
|
||||
* we have tried to ignore.
|
||||
*/
|
||||
};
|
||||
|
||||
typedef struct mdk_personality_s mdk_personality_t;
|
||||
|
|
@ -148,6 +154,8 @@ struct mddev_s
|
|||
|
||||
struct gendisk *gendisk;
|
||||
|
||||
struct kobject kobj;
|
||||
|
||||
/* Superblock information */
|
||||
int major_version,
|
||||
minor_version,
|
||||
|
|
@ -171,6 +179,10 @@ struct mddev_s
|
|||
sector_t resync_mark_cnt;/* blocks written at resync_mark */
|
||||
|
||||
sector_t resync_max_sectors; /* may be set by personality */
|
||||
|
||||
sector_t resync_mismatches; /* count of sectors where
|
||||
* parity/replica mismatch found
|
||||
*/
|
||||
/* recovery/resync flags
|
||||
* NEEDED: we might need to start a resync/recover
|
||||
* RUNNING: a thread is running, or about to be started
|
||||
|
|
@ -178,6 +190,8 @@ struct mddev_s
|
|||
* ERR: and IO error was detected - abort the resync/recovery
|
||||
* INTR: someone requested a (clean) early abort.
|
||||
* DONE: thread is done and is waiting to be reaped
|
||||
* REQUEST: user-space has requested a sync (used with SYNC)
|
||||
* CHECK: user-space request for for check-only, no repair
|
||||
*/
|
||||
#define MD_RECOVERY_RUNNING 0
|
||||
#define MD_RECOVERY_SYNC 1
|
||||
|
|
@ -185,6 +199,8 @@ struct mddev_s
|
|||
#define MD_RECOVERY_INTR 3
|
||||
#define MD_RECOVERY_DONE 4
|
||||
#define MD_RECOVERY_NEEDED 5
|
||||
#define MD_RECOVERY_REQUESTED 6
|
||||
#define MD_RECOVERY_CHECK 7
|
||||
unsigned long recovery;
|
||||
|
||||
int in_sync; /* know to not need resync */
|
||||
|
|
@ -195,6 +211,13 @@ struct mddev_s
|
|||
int degraded; /* whether md should consider
|
||||
* adding a spare
|
||||
*/
|
||||
int barriers_work; /* initialised to true, cleared as soon
|
||||
* as a barrier request to slave
|
||||
* fails. Only supported
|
||||
*/
|
||||
struct bio *biolist; /* bios that need to be retried
|
||||
* because BIO_RW_BARRIER is not supported
|
||||
*/
|
||||
|
||||
atomic_t recovery_active; /* blocks scheduled, but not written */
|
||||
wait_queue_head_t recovery_wait;
|
||||
|
|
@ -232,7 +255,7 @@ struct mddev_s
|
|||
|
||||
static inline void rdev_dec_pending(mdk_rdev_t *rdev, mddev_t *mddev)
|
||||
{
|
||||
int faulty = rdev->faulty;
|
||||
int faulty = test_bit(Faulty, &rdev->flags);
|
||||
if (atomic_dec_and_test(&rdev->nr_pending) && faulty)
|
||||
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
|
||||
}
|
||||
|
|
@ -270,6 +293,13 @@ struct mdk_personality_s
|
|||
};
|
||||
|
||||
|
||||
struct md_sysfs_entry {
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(mddev_t *, char *);
|
||||
ssize_t (*store)(mddev_t *, const char *, size_t);
|
||||
};
|
||||
|
||||
|
||||
static inline char * mdname (mddev_t * mddev)
|
||||
{
|
||||
return mddev->gendisk ? mddev->gendisk->disk_name : "mdX";
|
||||
|
|
@ -304,10 +334,8 @@ typedef struct mdk_thread_s {
|
|||
mddev_t *mddev;
|
||||
wait_queue_head_t wqueue;
|
||||
unsigned long flags;
|
||||
struct completion *event;
|
||||
struct task_struct *tsk;
|
||||
unsigned long timeout;
|
||||
const char *name;
|
||||
} mdk_thread_t;
|
||||
|
||||
#define THREAD_WAKEUP 0
|
||||
|
|
|
|||
|
|
@ -110,7 +110,9 @@ struct r1bio_s {
|
|||
#define R1BIO_Uptodate 0
|
||||
#define R1BIO_IsSync 1
|
||||
#define R1BIO_Degraded 2
|
||||
#define R1BIO_BehindIO 3
|
||||
#define R1BIO_BehindIO 3
|
||||
#define R1BIO_Barrier 4
|
||||
#define R1BIO_BarrierRetry 5
|
||||
/* For write-behind requests, we call bi_end_io when
|
||||
* the last non-write-behind device completes, providing
|
||||
* any write was successful. Otherwise we call when
|
||||
|
|
|
|||
|
|
@ -154,6 +154,8 @@ struct stripe_head {
|
|||
#define R5_Wantwrite 5
|
||||
#define R5_Syncio 6 /* this io need to be accounted as resync io */
|
||||
#define R5_Overlap 7 /* There is a pending overlapping request on this block */
|
||||
#define R5_ReadError 8 /* seen a read error here recently */
|
||||
#define R5_ReWrite 9 /* have tried to over-write the readerror */
|
||||
|
||||
/*
|
||||
* Write method
|
||||
|
|
|
|||
|
|
@ -909,6 +909,7 @@ do { if (atomic_dec_and_test(&(tsk)->usage)) __put_task_struct(tsk); } while(0)
|
|||
#define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */
|
||||
#define PF_BORROWED_MM 0x00400000 /* I am a kthread doing use_mm */
|
||||
#define PF_RANDOMIZE 0x00800000 /* randomize virtual address space */
|
||||
#define PF_HOTPLUG_CPU 0x01000000 /* Currently performing CPU hotplug */
|
||||
|
||||
/*
|
||||
* Only the _current_ task can read/write to tsk->flags, but other
|
||||
|
|
|
|||
|
|
@ -274,6 +274,9 @@ struct sk_buff {
|
|||
#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
|
||||
__u8 ipvs_property:1;
|
||||
#endif
|
||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||
struct sk_buff *nfct_reasm;
|
||||
#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
struct nf_bridge_info *nf_bridge;
|
||||
#endif
|
||||
|
|
@ -1313,10 +1316,26 @@ static inline void nf_conntrack_get(struct nf_conntrack *nfct)
|
|||
if (nfct)
|
||||
atomic_inc(&nfct->use);
|
||||
}
|
||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||
static inline void nf_conntrack_get_reasm(struct sk_buff *skb)
|
||||
{
|
||||
if (skb)
|
||||
atomic_inc(&skb->users);
|
||||
}
|
||||
static inline void nf_conntrack_put_reasm(struct sk_buff *skb)
|
||||
{
|
||||
if (skb)
|
||||
kfree_skb(skb);
|
||||
}
|
||||
#endif
|
||||
static inline void nf_reset(struct sk_buff *skb)
|
||||
{
|
||||
nf_conntrack_put(skb->nfct);
|
||||
skb->nfct = NULL;
|
||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||
nf_conntrack_put_reasm(skb->nfct_reasm);
|
||||
skb->nfct_reasm = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <linux/version.h>
|
||||
|
||||
/*****************************************************************************/
|
||||
#ifndef _STALLION_H
|
||||
#define _STALLION_H
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/compiler.h>
|
||||
|
||||
struct file;
|
||||
struct completion;
|
||||
|
||||
#define CTL_MAXNAME 10 /* how many path components do we allow in a
|
||||
call to sysctl? In other words, what is
|
||||
|
|
@ -204,6 +205,7 @@ enum
|
|||
NET_ECONET=16,
|
||||
NET_SCTP=17,
|
||||
NET_LLC=18,
|
||||
NET_NETFILTER=19,
|
||||
};
|
||||
|
||||
/* /proc/sys/kernel/random */
|
||||
|
|
@ -269,6 +271,42 @@ enum
|
|||
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,
|
||||
};
|
||||
|
||||
/* /proc/sys/net/ipv4 */
|
||||
enum
|
||||
{
|
||||
|
|
@ -925,6 +963,8 @@ struct ctl_table_header
|
|||
{
|
||||
ctl_table *ctl_table;
|
||||
struct list_head ctl_entry;
|
||||
int used;
|
||||
struct completion *unregistering;
|
||||
};
|
||||
|
||||
struct ctl_table_header * register_sysctl_table(ctl_table * table,
|
||||
|
|
|
|||
|
|
@ -1,57 +1,16 @@
|
|||
#ifndef __LINUX_VIDEODEV_H
|
||||
#define __LINUX_VIDEODEV_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define HAVE_V4L2 1
|
||||
#define HAVE_V4L1 1
|
||||
|
||||
#include <linux/videodev2.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/poll.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/device.h>
|
||||
|
||||
struct video_device
|
||||
{
|
||||
/* device info */
|
||||
struct device *dev;
|
||||
char name[32];
|
||||
int type; /* v4l1 */
|
||||
int type2; /* v4l2 */
|
||||
int hardware;
|
||||
int minor;
|
||||
|
||||
/* device ops + callbacks */
|
||||
struct file_operations *fops;
|
||||
void (*release)(struct video_device *vfd);
|
||||
|
||||
|
||||
/* obsolete -- fops->owner is used instead */
|
||||
struct module *owner;
|
||||
/* dev->driver_data will be used instead some day.
|
||||
* Use the video_{get|set}_drvdata() helper functions,
|
||||
* so the switch over will be transparent for you.
|
||||
* Or use {pci|usb}_{get|set}_drvdata() directly. */
|
||||
void *priv;
|
||||
|
||||
/* for videodev.c intenal usage -- please don't touch */
|
||||
int users; /* video_exclusive_{open|close} ... */
|
||||
struct semaphore lock; /* ... helper function uses these */
|
||||
char devfs_name[64]; /* devfs */
|
||||
struct class_device class_dev; /* sysfs */
|
||||
};
|
||||
|
||||
#define VIDEO_MAJOR 81
|
||||
|
||||
#define VFL_TYPE_GRABBER 0
|
||||
#define VFL_TYPE_VBI 1
|
||||
#define VFL_TYPE_RADIO 2
|
||||
#define VFL_TYPE_VTX 3
|
||||
|
||||
extern int video_register_device(struct video_device *, int type, int nr);
|
||||
extern void video_unregister_device(struct video_device *);
|
||||
extern struct video_device* video_devdata(struct file*);
|
||||
|
||||
#define to_video_device(cd) container_of(cd, struct video_device, class_dev)
|
||||
|
|
@ -68,11 +27,7 @@ video_device_remove_file(struct video_device *vfd,
|
|||
class_device_remove_file(&vfd->class_dev, attr);
|
||||
}
|
||||
|
||||
/* helper functions to alloc / release struct video_device, the
|
||||
later can be used for video_device->release() */
|
||||
struct video_device *video_device_alloc(void);
|
||||
void video_device_release(struct video_device *vfd);
|
||||
|
||||
#if OBSOLETE_OWNER /* to be removed in 2.6.15 */
|
||||
/* helper functions to access driver private data. */
|
||||
static inline void *video_get_drvdata(struct video_device *dev)
|
||||
{
|
||||
|
|
@ -83,30 +38,12 @@ static inline void video_set_drvdata(struct video_device *dev, void *data)
|
|||
{
|
||||
dev->priv = data;
|
||||
}
|
||||
#endif
|
||||
|
||||
extern int video_exclusive_open(struct inode *inode, struct file *file);
|
||||
extern int video_exclusive_release(struct inode *inode, struct file *file);
|
||||
extern int video_usercopy(struct inode *inode, struct file *file,
|
||||
unsigned int cmd, unsigned long arg,
|
||||
int (*func)(struct inode *inode, struct file *file,
|
||||
unsigned int cmd, void *arg));
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#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 */
|
||||
|
||||
struct video_capability
|
||||
{
|
||||
char name[32];
|
||||
|
|
@ -202,9 +139,9 @@ struct video_audio
|
|||
#define VIDEO_SOUND_STEREO 2
|
||||
#define VIDEO_SOUND_LANG1 4
|
||||
#define VIDEO_SOUND_LANG2 8
|
||||
__u16 mode;
|
||||
__u16 balance; /* Stereo balance */
|
||||
__u16 step; /* Step actual volume uses */
|
||||
__u16 mode;
|
||||
__u16 balance; /* Stereo balance */
|
||||
__u16 step; /* Step actual volume uses */
|
||||
};
|
||||
|
||||
struct video_clip
|
||||
|
|
@ -260,9 +197,6 @@ struct video_key
|
|||
__u32 flags;
|
||||
};
|
||||
|
||||
|
||||
#define VIDEO_MAX_FRAME 32
|
||||
|
||||
struct video_mbuf
|
||||
{
|
||||
int size; /* Total memory to map */
|
||||
|
|
@ -270,10 +204,8 @@ struct video_mbuf
|
|||
int offsets[VIDEO_MAX_FRAME];
|
||||
};
|
||||
|
||||
|
||||
#define VIDEO_NO_UNIT (-1)
|
||||
|
||||
|
||||
struct video_unit
|
||||
{
|
||||
int video; /* Video minor */
|
||||
|
|
|
|||
|
|
@ -15,16 +15,99 @@
|
|||
*/
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/time.h> /* need struct timeval */
|
||||
#include <linux/poll.h>
|
||||
#include <linux/device.h>
|
||||
#endif
|
||||
#include <linux/compiler.h> /* need __user */
|
||||
|
||||
|
||||
#define OBSOLETE_OWNER 1 /* It will be removed for 2.6.15 */
|
||||
#define HAVE_V4L2 1
|
||||
|
||||
/*
|
||||
* Common stuff for both V4L1 and V4L2
|
||||
* Moved from videodev.h
|
||||
*/
|
||||
|
||||
#define VIDEO_MAX_FRAME 32
|
||||
|
||||
#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 */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define VFL_TYPE_GRABBER 0
|
||||
#define VFL_TYPE_VBI 1
|
||||
#define VFL_TYPE_RADIO 2
|
||||
#define VFL_TYPE_VTX 3
|
||||
|
||||
struct video_device
|
||||
{
|
||||
/* device info */
|
||||
struct device *dev;
|
||||
char name[32];
|
||||
int type; /* v4l1 */
|
||||
int type2; /* v4l2 */
|
||||
int hardware;
|
||||
int minor;
|
||||
|
||||
/* device ops + callbacks */
|
||||
struct file_operations *fops;
|
||||
void (*release)(struct video_device *vfd);
|
||||
|
||||
|
||||
#if OBSOLETE_OWNER /* to be removed in 2.6.15 */
|
||||
/* obsolete -- fops->owner is used instead */
|
||||
struct module *owner;
|
||||
/* dev->driver_data will be used instead some day.
|
||||
* Use the video_{get|set}_drvdata() helper functions,
|
||||
* so the switch over will be transparent for you.
|
||||
* Or use {pci|usb}_{get|set}_drvdata() directly. */
|
||||
void *priv;
|
||||
#endif
|
||||
|
||||
/* for videodev.c intenal usage -- please don't touch */
|
||||
int users; /* video_exclusive_{open|close} ... */
|
||||
struct semaphore lock; /* ... helper function uses these */
|
||||
char devfs_name[64]; /* devfs */
|
||||
struct class_device class_dev; /* sysfs */
|
||||
};
|
||||
|
||||
#define VIDEO_MAJOR 81
|
||||
|
||||
extern int video_register_device(struct video_device *, int type, int nr);
|
||||
extern void video_unregister_device(struct video_device *);
|
||||
extern int video_usercopy(struct inode *inode, struct file *file,
|
||||
unsigned int cmd, unsigned long arg,
|
||||
int (*func)(struct inode *inode, struct file *file,
|
||||
unsigned int cmd, void *arg));
|
||||
|
||||
/* helper functions to alloc / release struct video_device, the
|
||||
later can be used for video_device->release() */
|
||||
struct video_device *video_device_alloc(void);
|
||||
void video_device_release(struct video_device *vfd);
|
||||
|
||||
#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)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))
|
||||
(((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))
|
||||
|
||||
/*
|
||||
* E N U M S
|
||||
|
|
@ -154,20 +237,20 @@ struct v4l2_capability
|
|||
};
|
||||
|
||||
/* 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_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 */
|
||||
#if 1
|
||||
#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 */
|
||||
#endif
|
||||
#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
|
||||
#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
|
||||
|
||||
#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_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_READWRITE 0x01000000 /* read/write systemcalls */
|
||||
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
|
||||
|
|
@ -179,13 +262,13 @@ struct v4l2_capability
|
|||
|
||||
struct v4l2_pix_format
|
||||
{
|
||||
__u32 width;
|
||||
__u32 height;
|
||||
__u32 pixelformat;
|
||||
__u32 width;
|
||||
__u32 height;
|
||||
__u32 pixelformat;
|
||||
enum v4l2_field field;
|
||||
__u32 bytesperline; /* for padding, zero if unused */
|
||||
__u32 sizeimage;
|
||||
enum v4l2_colorspace colorspace;
|
||||
__u32 sizeimage;
|
||||
enum v4l2_colorspace colorspace;
|
||||
__u32 priv; /* private data, depends on pixelformat */
|
||||
};
|
||||
|
||||
|
|
@ -238,12 +321,12 @@ struct v4l2_pix_format
|
|||
*/
|
||||
struct v4l2_fmtdesc
|
||||
{
|
||||
__u32 index; /* Format number */
|
||||
__u32 index; /* Format number */
|
||||
enum v4l2_buf_type type; /* buffer type */
|
||||
__u32 flags;
|
||||
__u8 description[32]; /* Description string */
|
||||
__u32 pixelformat; /* Format fourcc */
|
||||
__u32 reserved[4];
|
||||
__u8 description[32]; /* Description string */
|
||||
__u32 pixelformat; /* Format fourcc */
|
||||
__u32 reserved[4];
|
||||
};
|
||||
|
||||
#define V4L2_FMT_FLAG_COMPRESSED 0x0001
|
||||
|
|
@ -393,7 +476,7 @@ struct v4l2_jpegcompression
|
|||
#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 */
|
||||
* allways use APP0 */
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -402,10 +485,10 @@ struct v4l2_jpegcompression
|
|||
*/
|
||||
struct v4l2_requestbuffers
|
||||
{
|
||||
__u32 count;
|
||||
__u32 count;
|
||||
enum v4l2_buf_type type;
|
||||
enum v4l2_memory memory;
|
||||
__u32 reserved[2];
|
||||
__u32 reserved[2];
|
||||
};
|
||||
|
||||
struct v4l2_buffer
|
||||
|
|
@ -511,9 +594,9 @@ struct v4l2_outputparm
|
|||
|
||||
struct v4l2_cropcap {
|
||||
enum v4l2_buf_type type;
|
||||
struct v4l2_rect bounds;
|
||||
struct v4l2_rect defrect;
|
||||
struct v4l2_fract pixelaspect;
|
||||
struct v4l2_rect bounds;
|
||||
struct v4l2_rect defrect;
|
||||
struct v4l2_fract pixelaspect;
|
||||
};
|
||||
|
||||
struct v4l2_crop {
|
||||
|
|
@ -544,6 +627,7 @@ typedef __u64 v4l2_std_id;
|
|||
|
||||
#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000)
|
||||
#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000)
|
||||
#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000)
|
||||
|
||||
#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
|
||||
#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
|
||||
|
|
@ -581,13 +665,14 @@ typedef __u64 v4l2_std_id;
|
|||
|
||||
#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\
|
||||
V4L2_STD_PAL_60 |\
|
||||
V4L2_STD_NTSC)
|
||||
V4L2_STD_NTSC |\
|
||||
V4L2_STD_NTSC_443)
|
||||
#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)
|
||||
V4L2_STD_ATSC_16_VSB)
|
||||
|
||||
#define V4L2_STD_UNKNOWN 0
|
||||
#define V4L2_STD_ALL (V4L2_STD_525_60 |\
|
||||
|
|
@ -595,7 +680,7 @@ typedef __u64 v4l2_std_id;
|
|||
|
||||
struct v4l2_standard
|
||||
{
|
||||
__u32 index;
|
||||
__u32 index;
|
||||
v4l2_std_id id;
|
||||
__u8 name[24];
|
||||
struct v4l2_fract frameperiod; /* Frames, not fields */
|
||||
|
|
@ -610,9 +695,9 @@ struct v4l2_standard
|
|||
struct v4l2_input
|
||||
{
|
||||
__u32 index; /* Which input */
|
||||
__u8 name[32]; /* Label */
|
||||
__u8 name[32]; /* Label */
|
||||
__u32 type; /* Type of input */
|
||||
__u32 audioset; /* Associated audios (bitfield) */
|
||||
__u32 audioset; /* Associated audios (bitfield) */
|
||||
__u32 tuner; /* Associated tuner */
|
||||
v4l2_std_id std;
|
||||
__u32 status;
|
||||
|
|
@ -647,9 +732,9 @@ struct v4l2_input
|
|||
struct v4l2_output
|
||||
{
|
||||
__u32 index; /* Which output */
|
||||
__u8 name[32]; /* Label */
|
||||
__u8 name[32]; /* Label */
|
||||
__u32 type; /* Type of output */
|
||||
__u32 audioset; /* Associated audios (bitfield) */
|
||||
__u32 audioset; /* Associated audios (bitfield) */
|
||||
__u32 modulator; /* Associated modulator */
|
||||
v4l2_std_id std;
|
||||
__u32 reserved[4];
|
||||
|
|
@ -671,12 +756,12 @@ struct v4l2_control
|
|||
/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
|
||||
struct v4l2_queryctrl
|
||||
{
|
||||
__u32 id;
|
||||
__u32 id;
|
||||
enum v4l2_ctrl_type type;
|
||||
__u8 name[32]; /* Whatever */
|
||||
__s32 minimum; /* Note signedness */
|
||||
__s32 maximum;
|
||||
__s32 step;
|
||||
__s32 step;
|
||||
__s32 default_value;
|
||||
__u32 flags;
|
||||
__u32 reserved[2];
|
||||
|
|
@ -779,10 +864,10 @@ struct v4l2_modulator
|
|||
|
||||
struct v4l2_frequency
|
||||
{
|
||||
__u32 tuner;
|
||||
__u32 tuner;
|
||||
enum v4l2_tuner_type type;
|
||||
__u32 frequency;
|
||||
__u32 reserved[8];
|
||||
__u32 frequency;
|
||||
__u32 reserved[8];
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -802,6 +887,7 @@ struct v4l2_audio
|
|||
|
||||
/* Flags for the 'mode' field */
|
||||
#define V4L2_AUDMODE_AVL 0x00001
|
||||
#define V4L2_AUDMODE_32BITS 0x00002
|
||||
|
||||
struct v4l2_audioout
|
||||
{
|
||||
|
|
@ -846,14 +932,14 @@ struct v4l2_vbi_format
|
|||
|
||||
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 */
|
||||
__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 */
|
||||
};
|
||||
|
||||
#define V4L2_SLICED_TELETEXT_B (0x0001)
|
||||
|
|
@ -866,22 +952,22 @@ struct v4l2_sliced_vbi_format
|
|||
|
||||
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 reserved[4]; /* must be 0 */
|
||||
__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 reserved[4]; /* 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];
|
||||
__u32 id;
|
||||
__u32 field; /* 0: first field, 1: second field */
|
||||
__u32 line; /* 1-23 */
|
||||
__u32 reserved; /* must be 0 */
|
||||
__u8 data[48];
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
@ -896,9 +982,9 @@ struct v4l2_format
|
|||
enum v4l2_buf_type type;
|
||||
union
|
||||
{
|
||||
struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
|
||||
struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
|
||||
struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
|
||||
struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
|
||||
struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
|
||||
struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
|
||||
#if 1
|
||||
struct v4l2_sliced_vbi_format sliced; // V4L2_BUF_TYPE_SLICED_VBI_CAPTURE
|
||||
#endif
|
||||
|
|
@ -981,6 +1067,7 @@ struct v4l2_streamparm
|
|||
#if 1
|
||||
#define VIDIOC_G_SLICED_VBI_CAP _IOR ('V', 69, struct v4l2_sliced_vbi_cap)
|
||||
#endif
|
||||
#define VIDIOC_LOG_STATUS _IO ('V', 70)
|
||||
|
||||
/* for compatibility, will go away some day */
|
||||
#define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int)
|
||||
|
|
|
|||
Loading…
Reference in a new issue