Merge branch 'upstream'
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
#define CN_PROC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/connector.h>
|
||||
|
||||
/*
|
||||
@@ -65,6 +66,7 @@ struct proc_event {
|
||||
PROC_EVENT_EXIT = 0x80000000
|
||||
} what;
|
||||
__u32 cpu;
|
||||
struct timespec timestamp;
|
||||
union { /* must be last field of proc_event struct */
|
||||
struct {
|
||||
__u32 err;
|
||||
|
@@ -32,39 +32,39 @@
|
||||
|
||||
|
||||
typedef enum {
|
||||
AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
|
||||
AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
|
||||
AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */
|
||||
} audio_stream_source_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
AUDIO_STOPPED, /* Device is stopped */
|
||||
AUDIO_PLAYING, /* Device is currently playing */
|
||||
AUDIO_PLAYING, /* Device is currently playing */
|
||||
AUDIO_PAUSED /* Device is paused */
|
||||
} audio_play_state_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
AUDIO_STEREO,
|
||||
AUDIO_MONO_LEFT,
|
||||
AUDIO_STEREO,
|
||||
AUDIO_MONO_LEFT,
|
||||
AUDIO_MONO_RIGHT
|
||||
} audio_channel_select_t;
|
||||
|
||||
|
||||
typedef struct audio_mixer {
|
||||
unsigned int volume_left;
|
||||
unsigned int volume_right;
|
||||
unsigned int volume_left;
|
||||
unsigned int volume_right;
|
||||
// what else do we need? bass, pass-through, ...
|
||||
} audio_mixer_t;
|
||||
|
||||
|
||||
typedef struct audio_status {
|
||||
int AV_sync_state; /* sync audio and video? */
|
||||
int mute_state; /* audio is muted */
|
||||
audio_play_state_t play_state; /* current playback state */
|
||||
audio_stream_source_t stream_source; /* current stream source */
|
||||
audio_channel_select_t channel_select; /* currently selected channel */
|
||||
int bypass_mode; /* pass on audio data to */
|
||||
int AV_sync_state; /* sync audio and video? */
|
||||
int mute_state; /* audio is muted */
|
||||
audio_play_state_t play_state; /* current playback state */
|
||||
audio_stream_source_t stream_source; /* current stream source */
|
||||
audio_channel_select_t channel_select; /* currently selected channel */
|
||||
int bypass_mode; /* pass on audio data to */
|
||||
audio_mixer_t mixer_state; /* current mixer state */
|
||||
} audio_status_t; /* separate decoder hardware */
|
||||
|
||||
@@ -74,8 +74,8 @@ struct audio_karaoke{ /* if Vocal1 or Vocal2 are non-zero, they get mixed */
|
||||
int vocal1; /* into left and right t at 70% each */
|
||||
int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
|
||||
int melody; /* mixed into the left channel and */
|
||||
/* Vocal2 into the right channel at 100% each. */
|
||||
/* if Melody is non-zero, the melody channel gets mixed*/
|
||||
/* Vocal2 into the right channel at 100% each. */
|
||||
/* if Melody is non-zero, the melody channel gets mixed*/
|
||||
} audio_karaoke_t; /* into left and right */
|
||||
|
||||
|
||||
|
@@ -27,16 +27,16 @@
|
||||
/* slot interface types and info */
|
||||
|
||||
typedef struct ca_slot_info {
|
||||
int num; /* slot number */
|
||||
int num; /* slot number */
|
||||
|
||||
int type; /* CA interface this slot supports */
|
||||
int type; /* CA interface this slot supports */
|
||||
#define CA_CI 1 /* CI high level interface */
|
||||
#define CA_CI_LINK 2 /* CI link layer level interface */
|
||||
#define CA_CI_PHYS 4 /* CI physical layer level interface */
|
||||
#define CA_DESCR 8 /* built-in descrambler */
|
||||
#define CA_SC 128 /* simple smart card interface */
|
||||
|
||||
unsigned int flags;
|
||||
unsigned int flags;
|
||||
#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
|
||||
#define CA_CI_MODULE_READY 2
|
||||
} ca_slot_info_t;
|
||||
@@ -45,37 +45,37 @@ typedef struct ca_slot_info {
|
||||
/* descrambler types and info */
|
||||
|
||||
typedef struct ca_descr_info {
|
||||
unsigned int num; /* number of available descramblers (keys) */
|
||||
unsigned int type; /* type of supported scrambling system */
|
||||
unsigned int num; /* number of available descramblers (keys) */
|
||||
unsigned int type; /* type of supported scrambling system */
|
||||
#define CA_ECD 1
|
||||
#define CA_NDS 2
|
||||
#define CA_DSS 4
|
||||
} ca_descr_info_t;
|
||||
|
||||
typedef struct ca_caps {
|
||||
unsigned int slot_num; /* total number of CA card and module slots */
|
||||
unsigned int slot_type; /* OR of all supported types */
|
||||
unsigned int descr_num; /* total number of descrambler slots (keys) */
|
||||
unsigned int descr_type; /* OR of all supported types */
|
||||
unsigned int slot_num; /* total number of CA card and module slots */
|
||||
unsigned int slot_type; /* OR of all supported types */
|
||||
unsigned int descr_num; /* total number of descrambler slots (keys) */
|
||||
unsigned int descr_type; /* OR of all supported types */
|
||||
} ca_caps_t;
|
||||
|
||||
/* a message to/from a CI-CAM */
|
||||
typedef struct ca_msg {
|
||||
unsigned int index;
|
||||
unsigned int type;
|
||||
unsigned int length;
|
||||
unsigned char msg[256];
|
||||
unsigned int index;
|
||||
unsigned int type;
|
||||
unsigned int length;
|
||||
unsigned char msg[256];
|
||||
} ca_msg_t;
|
||||
|
||||
typedef struct ca_descr {
|
||||
unsigned int index;
|
||||
unsigned int parity; /* 0 == even, 1 == odd */
|
||||
unsigned char cw[8];
|
||||
unsigned int index;
|
||||
unsigned int parity; /* 0 == even, 1 == odd */
|
||||
unsigned char cw[8];
|
||||
} ca_descr_t;
|
||||
|
||||
typedef struct ca_pid {
|
||||
unsigned int pid;
|
||||
int index; /* -1 == disable*/
|
||||
unsigned int pid;
|
||||
int index; /* -1 == disable*/
|
||||
} ca_pid_t;
|
||||
|
||||
#define CA_RESET _IO('o', 128)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* dmx.h
|
||||
*
|
||||
* Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
|
||||
@@ -38,10 +38,10 @@ typedef enum
|
||||
{
|
||||
DMX_OUT_DECODER, /* Streaming directly to decoder. */
|
||||
DMX_OUT_TAP, /* Output going to a memory buffer */
|
||||
/* (to be retrieved via the read command).*/
|
||||
/* (to be retrieved via the read command).*/
|
||||
DMX_OUT_TS_TAP /* Output multiplexed into a new TS */
|
||||
/* (to be retrieved by reading from the */
|
||||
/* logical DVR device). */
|
||||
/* (to be retrieved by reading from the */
|
||||
/* logical DVR device). */
|
||||
} dmx_output_t;
|
||||
|
||||
|
||||
@@ -54,25 +54,25 @@ typedef enum
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DMX_PES_AUDIO0,
|
||||
DMX_PES_AUDIO0,
|
||||
DMX_PES_VIDEO0,
|
||||
DMX_PES_TELETEXT0,
|
||||
DMX_PES_SUBTITLE0,
|
||||
DMX_PES_PCR0,
|
||||
|
||||
DMX_PES_AUDIO1,
|
||||
DMX_PES_AUDIO1,
|
||||
DMX_PES_VIDEO1,
|
||||
DMX_PES_TELETEXT1,
|
||||
DMX_PES_SUBTITLE1,
|
||||
DMX_PES_PCR1,
|
||||
|
||||
DMX_PES_AUDIO2,
|
||||
DMX_PES_AUDIO2,
|
||||
DMX_PES_VIDEO2,
|
||||
DMX_PES_TELETEXT2,
|
||||
DMX_PES_SUBTITLE2,
|
||||
DMX_PES_PCR2,
|
||||
|
||||
DMX_PES_AUDIO3,
|
||||
DMX_PES_AUDIO3,
|
||||
DMX_PES_VIDEO3,
|
||||
DMX_PES_TELETEXT3,
|
||||
DMX_PES_SUBTITLE3,
|
||||
@@ -90,8 +90,8 @@ typedef enum
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DMX_SCRAMBLING_EV,
|
||||
DMX_FRONTEND_EV
|
||||
DMX_SCRAMBLING_EV,
|
||||
DMX_FRONTEND_EV
|
||||
} dmx_event_t;
|
||||
|
||||
|
||||
|
@@ -98,43 +98,43 @@ typedef enum {
|
||||
} OSD_Command;
|
||||
|
||||
typedef struct osd_cmd_s {
|
||||
OSD_Command cmd;
|
||||
int x0;
|
||||
int y0;
|
||||
int x1;
|
||||
int y1;
|
||||
int color;
|
||||
void __user *data;
|
||||
OSD_Command cmd;
|
||||
int x0;
|
||||
int y0;
|
||||
int x1;
|
||||
int y1;
|
||||
int color;
|
||||
void __user *data;
|
||||
} osd_cmd_t;
|
||||
|
||||
/* OSD_OpenRaw: set 'color' to desired window type */
|
||||
typedef enum {
|
||||
OSD_BITMAP1, /* 1 bit bitmap */
|
||||
OSD_BITMAP2, /* 2 bit bitmap */
|
||||
OSD_BITMAP4, /* 4 bit bitmap */
|
||||
OSD_BITMAP8, /* 8 bit bitmap */
|
||||
OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */
|
||||
OSD_BITMAP2HR, /* 2 bit bitmap half resolution */
|
||||
OSD_BITMAP4HR, /* 4 bit bitmap half resolution */
|
||||
OSD_BITMAP8HR, /* 8 bit bitmap half resolution */
|
||||
OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */
|
||||
OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */
|
||||
OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */
|
||||
OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */
|
||||
OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */
|
||||
OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */
|
||||
OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */
|
||||
OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */
|
||||
OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/
|
||||
OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */
|
||||
OSD_VIDEONSIZE, /* Full Size MPEG Video Display */
|
||||
OSD_CURSOR /* Cursor */
|
||||
OSD_BITMAP1, /* 1 bit bitmap */
|
||||
OSD_BITMAP2, /* 2 bit bitmap */
|
||||
OSD_BITMAP4, /* 4 bit bitmap */
|
||||
OSD_BITMAP8, /* 8 bit bitmap */
|
||||
OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */
|
||||
OSD_BITMAP2HR, /* 2 bit bitmap half resolution */
|
||||
OSD_BITMAP4HR, /* 4 bit bitmap half resolution */
|
||||
OSD_BITMAP8HR, /* 8 bit bitmap half resolution */
|
||||
OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */
|
||||
OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */
|
||||
OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */
|
||||
OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */
|
||||
OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */
|
||||
OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */
|
||||
OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */
|
||||
OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */
|
||||
OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/
|
||||
OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */
|
||||
OSD_VIDEONSIZE, /* Full Size MPEG Video Display */
|
||||
OSD_CURSOR /* Cursor */
|
||||
} osd_raw_window_t;
|
||||
|
||||
typedef struct osd_cap_s {
|
||||
int cmd;
|
||||
int cmd;
|
||||
#define OSD_CAP_MEMSIZE 1 /* memory size */
|
||||
long val;
|
||||
long val;
|
||||
} osd_cap_t;
|
||||
|
||||
|
||||
|
@@ -36,7 +36,7 @@
|
||||
|
||||
typedef enum {
|
||||
VIDEO_FORMAT_4_3, /* Select 4:3 format */
|
||||
VIDEO_FORMAT_16_9, /* Select 16:9 format. */
|
||||
VIDEO_FORMAT_16_9, /* Select 16:9 format. */
|
||||
VIDEO_FORMAT_221_1 /* 2.21:1 */
|
||||
} video_format_t;
|
||||
|
||||
@@ -54,7 +54,7 @@ typedef enum {
|
||||
|
||||
|
||||
typedef enum {
|
||||
VIDEO_PAN_SCAN, /* use pan and scan format */
|
||||
VIDEO_PAN_SCAN, /* use pan and scan format */
|
||||
VIDEO_LETTER_BOX, /* use letterbox format */
|
||||
VIDEO_CENTER_CUT_OUT /* use center cut out format */
|
||||
} video_displayformat_t;
|
||||
@@ -66,7 +66,7 @@ typedef struct {
|
||||
} video_size_t;
|
||||
|
||||
typedef enum {
|
||||
VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
|
||||
VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
|
||||
VIDEO_SOURCE_MEMORY /* If this source is selected, the stream
|
||||
comes from the user through the write
|
||||
system call */
|
||||
@@ -75,35 +75,35 @@ typedef enum {
|
||||
|
||||
typedef enum {
|
||||
VIDEO_STOPPED, /* Video is stopped */
|
||||
VIDEO_PLAYING, /* Video is currently playing */
|
||||
VIDEO_PLAYING, /* Video is currently playing */
|
||||
VIDEO_FREEZED /* Video is freezed */
|
||||
} video_play_state_t;
|
||||
|
||||
|
||||
struct video_event {
|
||||
int32_t type;
|
||||
int32_t type;
|
||||
#define VIDEO_EVENT_SIZE_CHANGED 1
|
||||
#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
|
||||
time_t timestamp;
|
||||
time_t timestamp;
|
||||
union {
|
||||
video_size_t size;
|
||||
video_size_t size;
|
||||
unsigned int frame_rate; /* in frames per 1000sec */
|
||||
} u;
|
||||
};
|
||||
|
||||
|
||||
struct video_status {
|
||||
int video_blank; /* blank video on freeze? */
|
||||
video_play_state_t play_state; /* current state of playback */
|
||||
video_stream_source_t stream_source; /* current source (demux/memory) */
|
||||
video_format_t video_format; /* current aspect ratio of stream*/
|
||||
video_displayformat_t display_format;/* selected cropping mode */
|
||||
int video_blank; /* blank video on freeze? */
|
||||
video_play_state_t play_state; /* current state of playback */
|
||||
video_stream_source_t stream_source; /* current source (demux/memory) */
|
||||
video_format_t video_format; /* current aspect ratio of stream*/
|
||||
video_displayformat_t display_format;/* selected cropping mode */
|
||||
};
|
||||
|
||||
|
||||
struct video_still_picture {
|
||||
char __user *iFrame; /* pointer to a single iframe in memory */
|
||||
int32_t size;
|
||||
char __user *iFrame; /* pointer to a single iframe in memory */
|
||||
int32_t size;
|
||||
};
|
||||
|
||||
|
||||
@@ -111,19 +111,19 @@ typedef
|
||||
struct video_highlight {
|
||||
int active; /* 1=show highlight, 0=hide highlight */
|
||||
uint8_t contrast1; /* 7- 4 Pattern pixel contrast */
|
||||
/* 3- 0 Background pixel contrast */
|
||||
/* 3- 0 Background pixel contrast */
|
||||
uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */
|
||||
/* 3- 0 Emphasis pixel-1 contrast */
|
||||
/* 3- 0 Emphasis pixel-1 contrast */
|
||||
uint8_t color1; /* 7- 4 Pattern pixel color */
|
||||
/* 3- 0 Background pixel color */
|
||||
/* 3- 0 Background pixel color */
|
||||
uint8_t color2; /* 7- 4 Emphasis pixel-2 color */
|
||||
/* 3- 0 Emphasis pixel-1 color */
|
||||
/* 3- 0 Emphasis pixel-1 color */
|
||||
uint32_t ypos; /* 23-22 auto action mode */
|
||||
/* 21-12 start y */
|
||||
/* 9- 0 end y */
|
||||
/* 21-12 start y */
|
||||
/* 9- 0 end y */
|
||||
uint32_t xpos; /* 23-22 button color number */
|
||||
/* 21-12 start x */
|
||||
/* 9- 0 end x */
|
||||
/* 21-12 start x */
|
||||
/* 9- 0 end x */
|
||||
} video_highlight_t;
|
||||
|
||||
|
||||
|
@@ -617,6 +617,12 @@ struct fb_ops {
|
||||
|
||||
/* perform fb specific mmap */
|
||||
int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma);
|
||||
|
||||
/* save current hardware state */
|
||||
void (*fb_save_state)(struct fb_info *info);
|
||||
|
||||
/* restore saved state */
|
||||
void (*fb_restore_state)(struct fb_info *info);
|
||||
};
|
||||
|
||||
#ifdef CONFIG_FB_TILEBLITTING
|
||||
@@ -726,6 +732,18 @@ struct fb_tile_ops {
|
||||
from userspace */
|
||||
#define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */
|
||||
|
||||
/* A driver may set this flag to indicate that it does want a set_par to be
|
||||
* called every time when fbcon_switch is executed. The advantage is that with
|
||||
* this flag set you can really be shure that set_par is always called before
|
||||
* any of the functions dependant on the correct hardware state or altering
|
||||
* that state, even if you are using some broken X releases. The disadvantage
|
||||
* is that it introduces unwanted delays to every console switch if set_par
|
||||
* is slow. It is a good idea to try this flag in the drivers initialization
|
||||
* code whenever there is a bug report related to switching between X and the
|
||||
* framebuffer console.
|
||||
*/
|
||||
#define FBINFO_MISC_ALWAYS_SETPAR 0x40000
|
||||
|
||||
struct fb_info {
|
||||
int node;
|
||||
int flags;
|
||||
@@ -815,6 +833,18 @@ struct fb_info {
|
||||
#define fb_writeq(b,addr) (*(volatile u64 *) (addr) = (b))
|
||||
#define fb_memset memset
|
||||
|
||||
#endif
|
||||
|
||||
#if defined (__BIG_ENDIAN)
|
||||
#define FB_LEFT_POS(bpp) (32 - bpp)
|
||||
#define FB_SHIFT_HIGH(val, bits) ((val) >> (bits))
|
||||
#define FB_SHIFT_LOW(val, bits) ((val) << (bits))
|
||||
#define FB_BIT_NR(b) (7 - (b))
|
||||
#else
|
||||
#define FB_LEFT_POS(bpp) (0)
|
||||
#define FB_SHIFT_HIGH(val, bits) ((val) << (bits))
|
||||
#define FB_SHIFT_LOW(val, bits) ((val) >> (bits))
|
||||
#define FB_BIT_NR(b) (b)
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@@ -108,7 +108,7 @@
|
||||
#define I2C_DRIVERID_SAA7127 72 /* saa7124 video encoder */
|
||||
#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */
|
||||
#define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */
|
||||
#define I2C_DRIVERID_I2C_IR 75 /* I2C InfraRed on Video boards */
|
||||
#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */
|
||||
|
||||
#define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */
|
||||
#define I2C_DRIVERID_EXP1 0xF1
|
||||
|
@@ -47,6 +47,8 @@ struct inotify_event {
|
||||
#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_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 */
|
||||
|
@@ -37,6 +37,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
#ifdef CONFIG_KPROBES
|
||||
#include <asm/kprobes.h>
|
||||
|
||||
/* kprobe_status settings */
|
||||
@@ -147,7 +148,6 @@ struct kretprobe_instance {
|
||||
struct task_struct *task;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_KPROBES
|
||||
extern spinlock_t kretprobe_lock;
|
||||
extern int arch_prepare_kprobe(struct kprobe *p);
|
||||
extern void arch_copy_kprobe(struct kprobe *p);
|
||||
@@ -158,6 +158,7 @@ extern int arch_init_kprobes(void);
|
||||
extern void show_registers(struct pt_regs *regs);
|
||||
extern kprobe_opcode_t *get_insn_slot(void);
|
||||
extern void free_insn_slot(kprobe_opcode_t *slot);
|
||||
extern void kprobes_inc_nmissed_count(struct kprobe *p);
|
||||
|
||||
/* Get the kprobe at this addr (if any) - called with preemption disabled */
|
||||
struct kprobe *get_kprobe(void *addr);
|
||||
@@ -195,6 +196,11 @@ void add_rp_inst(struct kretprobe_instance *ri);
|
||||
void kprobe_flush_task(struct task_struct *tk);
|
||||
void recycle_rp_inst(struct kretprobe_instance *ri);
|
||||
#else /* CONFIG_KPROBES */
|
||||
|
||||
#define __kprobes /**/
|
||||
struct jprobe;
|
||||
struct kretprobe;
|
||||
|
||||
static inline struct kprobe *kprobe_running(void)
|
||||
{
|
||||
return NULL;
|
||||
|
@@ -135,6 +135,8 @@ enum {
|
||||
ATA_TMOUT_BOOT_QUICK = 7 * HZ, /* hueristic */
|
||||
ATA_TMOUT_CDB = 30 * HZ,
|
||||
ATA_TMOUT_CDB_QUICK = 5 * HZ,
|
||||
ATA_TMOUT_INTERNAL = 30 * HZ,
|
||||
ATA_TMOUT_INTERNAL_QUICK = 5 * HZ,
|
||||
|
||||
/* ATA bus states */
|
||||
BUS_UNKNOWN = 0,
|
||||
@@ -194,7 +196,7 @@ struct ata_port;
|
||||
struct ata_queued_cmd;
|
||||
|
||||
/* typedefs */
|
||||
typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, unsigned int err_mask);
|
||||
typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc);
|
||||
|
||||
struct ata_ioports {
|
||||
unsigned long cmd_addr;
|
||||
@@ -279,9 +281,9 @@ struct ata_queued_cmd {
|
||||
/* DO NOT iterate over __sg manually, use ata_for_each_sg() */
|
||||
struct scatterlist *__sg;
|
||||
|
||||
ata_qc_cb_t complete_fn;
|
||||
unsigned int err_mask;
|
||||
|
||||
struct completion *waiting;
|
||||
ata_qc_cb_t complete_fn;
|
||||
|
||||
void *private_data;
|
||||
};
|
||||
@@ -475,7 +477,7 @@ extern void ata_bmdma_start (struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
|
||||
extern u8 ata_bmdma_status(struct ata_port *ap);
|
||||
extern void ata_bmdma_irq_clear(struct ata_port *ap);
|
||||
extern void ata_qc_complete(struct ata_queued_cmd *qc, unsigned int err_mask);
|
||||
extern void ata_qc_complete(struct ata_queued_cmd *qc);
|
||||
extern void ata_eng_timeout(struct ata_port *ap);
|
||||
extern void ata_scsi_simulate(u16 *id, struct scsi_cmnd *cmd,
|
||||
void (*done)(struct scsi_cmnd *));
|
||||
@@ -667,6 +669,7 @@ static inline void ata_qc_reinit(struct ata_queued_cmd *qc)
|
||||
qc->cursect = qc->cursg = qc->cursg_ofs = 0;
|
||||
qc->nsect = 0;
|
||||
qc->nbytes = qc->curbytes = 0;
|
||||
qc->err_mask = 0;
|
||||
|
||||
ata_tf_init(qc->ap, &qc->tf, qc->dev->devno);
|
||||
}
|
||||
|
@@ -202,12 +202,15 @@ static inline void list_del_rcu(struct list_head *entry)
|
||||
*
|
||||
* The old entry will be replaced with the new entry atomically.
|
||||
*/
|
||||
static inline void list_replace_rcu(struct list_head *old, struct list_head *new){
|
||||
static inline void list_replace_rcu(struct list_head *old,
|
||||
struct list_head *new)
|
||||
{
|
||||
new->next = old->next;
|
||||
new->prev = old->prev;
|
||||
smp_wmb();
|
||||
new->next->prev = new;
|
||||
new->prev->next = new;
|
||||
old->prev = LIST_POISON2;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -578,6 +581,27 @@ static inline void hlist_del_init(struct hlist_node *n)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* hlist_replace_rcu - replace old entry by new one
|
||||
* @old : the element to be replaced
|
||||
* @new : the new element to insert
|
||||
*
|
||||
* The old entry will be replaced with the new entry atomically.
|
||||
*/
|
||||
static inline void hlist_replace_rcu(struct hlist_node *old,
|
||||
struct hlist_node *new)
|
||||
{
|
||||
struct hlist_node *next = old->next;
|
||||
|
||||
new->next = next;
|
||||
new->pprev = old->pprev;
|
||||
smp_wmb();
|
||||
if (next)
|
||||
new->next->pprev = &new->next;
|
||||
*new->pprev = new;
|
||||
old->pprev = LIST_POISON2;
|
||||
}
|
||||
|
||||
static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
|
||||
{
|
||||
struct hlist_node *first = h->first;
|
||||
|
@@ -163,7 +163,6 @@ extern unsigned int kobjsize(const void *objp);
|
||||
#define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
|
||||
#define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */
|
||||
#define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */
|
||||
#define VM_INCOMPLETE 0x02000000 /* Strange partial PFN mapping marker */
|
||||
|
||||
#ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */
|
||||
#define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS
|
||||
|
@@ -86,7 +86,7 @@ extern __inline__ void dump_parport_state (char *str, struct parport *p)
|
||||
unsigned char dcr = inb (CONTROL (p));
|
||||
unsigned char dsr = inb (STATUS (p));
|
||||
static char *ecr_modes[] = {"SPP", "PS2", "PPFIFO", "ECP", "xXx", "yYy", "TST", "CFG"};
|
||||
const struct parport_pc_private *priv = (parport_pc_private *)p->physport->private_data;
|
||||
const struct parport_pc_private *priv = p->physport->private_data;
|
||||
int i;
|
||||
|
||||
printk (KERN_DEBUG "*** parport state (%s): ecr=[%s", str, ecr_modes[(ecr & 0xe0) >> 5]);
|
||||
|
@@ -100,6 +100,7 @@ struct rcu_data {
|
||||
struct rcu_head *donelist;
|
||||
struct rcu_head **donetail;
|
||||
int cpu;
|
||||
struct rcu_head barrier;
|
||||
};
|
||||
|
||||
DECLARE_PER_CPU(struct rcu_data, rcu_data);
|
||||
@@ -285,6 +286,7 @@ extern void FASTCALL(call_rcu_bh(struct rcu_head *head,
|
||||
extern __deprecated_for_modules void synchronize_kernel(void);
|
||||
extern void synchronize_rcu(void);
|
||||
void synchronize_idle(void);
|
||||
extern void rcu_barrier(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_RCUPDATE_H */
|
||||
|
@@ -670,6 +670,9 @@ enum {
|
||||
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
|
||||
};
|
||||
|
||||
|
@@ -95,6 +95,7 @@ struct itimerval;
|
||||
extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue);
|
||||
extern int do_getitimer(int which, struct itimerval *value);
|
||||
extern void getnstimeofday (struct timespec *tv);
|
||||
extern void getnstimestamp(struct timespec *ts);
|
||||
|
||||
extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
|
||||
|
||||
|
Reference in New Issue
Block a user