diff options
| author | Dave Airlie <airlied@starflyer.(none)> | 2006-01-03 02:18:01 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@linux.ie> | 2006-01-03 02:18:01 -0500 |
| commit | 97f2aab6698f3ab2552c41c1024a65ffd0763a6d (patch) | |
| tree | bb6e3b2949459f54f884c710fc74d40eef00d834 /include/linux | |
| parent | d985c1088146607532093d9eaaaf99758f6a4d21 (diff) | |
| parent | 88026842b0a760145aa71d69e74fbc9ec118ca44 (diff) | |
drm: merge in Linus mainline
Diffstat (limited to 'include/linux')
80 files changed, 873 insertions, 520 deletions
diff --git a/include/linux/acct.h b/include/linux/acct.h index 93c5b3cdf951..9a66401073fc 100644 --- a/include/linux/acct.h +++ b/include/linux/acct.h | |||
| @@ -16,6 +16,8 @@ | |||
| 16 | #define _LINUX_ACCT_H | 16 | #define _LINUX_ACCT_H |
| 17 | 17 | ||
| 18 | #include <linux/types.h> | 18 | #include <linux/types.h> |
| 19 | #include <linux/jiffies.h> | ||
| 20 | |||
| 19 | #include <asm/param.h> | 21 | #include <asm/param.h> |
| 20 | #include <asm/byteorder.h> | 22 | #include <asm/byteorder.h> |
| 21 | 23 | ||
diff --git a/include/linux/aio.h b/include/linux/aio.h index 403d71dcb7c8..49fd37629ee4 100644 --- a/include/linux/aio.h +++ b/include/linux/aio.h | |||
| @@ -124,7 +124,7 @@ struct kiocb { | |||
| 124 | (x)->ki_users = 1; \ | 124 | (x)->ki_users = 1; \ |
| 125 | (x)->ki_key = KIOCB_SYNC_KEY; \ | 125 | (x)->ki_key = KIOCB_SYNC_KEY; \ |
| 126 | (x)->ki_filp = (filp); \ | 126 | (x)->ki_filp = (filp); \ |
| 127 | (x)->ki_ctx = &tsk->active_mm->default_kioctx; \ | 127 | (x)->ki_ctx = NULL; \ |
| 128 | (x)->ki_cancel = NULL; \ | 128 | (x)->ki_cancel = NULL; \ |
| 129 | (x)->ki_dtor = NULL; \ | 129 | (x)->ki_dtor = NULL; \ |
| 130 | (x)->ki_obj.tsk = tsk; \ | 130 | (x)->ki_obj.tsk = tsk; \ |
| @@ -210,8 +210,15 @@ struct kioctx *lookup_ioctx(unsigned long ctx_id); | |||
| 210 | int FASTCALL(io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, | 210 | int FASTCALL(io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, |
| 211 | struct iocb *iocb)); | 211 | struct iocb *iocb)); |
| 212 | 212 | ||
| 213 | #define get_ioctx(kioctx) do { if (unlikely(atomic_read(&(kioctx)->users) <= 0)) BUG(); atomic_inc(&(kioctx)->users); } while (0) | 213 | #define get_ioctx(kioctx) do { \ |
| 214 | #define put_ioctx(kioctx) do { if (unlikely(atomic_dec_and_test(&(kioctx)->users))) __put_ioctx(kioctx); else if (unlikely(atomic_read(&(kioctx)->users) < 0)) BUG(); } while (0) | 214 | BUG_ON(unlikely(atomic_read(&(kioctx)->users) <= 0)); \ |
| 215 | atomic_inc(&(kioctx)->users); \ | ||
| 216 | } while (0) | ||
| 217 | #define put_ioctx(kioctx) do { \ | ||
| 218 | BUG_ON(unlikely(atomic_read(&(kioctx)->users) <= 0)); \ | ||
| 219 | if (unlikely(atomic_dec_and_test(&(kioctx)->users))) \ | ||
| 220 | __put_ioctx(kioctx); \ | ||
| 221 | } while (0) | ||
| 215 | 222 | ||
| 216 | #define in_aio() !is_sync_wait(current->io_wait) | 223 | #define in_aio() !is_sync_wait(current->io_wait) |
| 217 | /* may be used for debugging */ | 224 | /* may be used for debugging */ |
diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h index e7d0593bb576..b203ea82a0a8 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | #define LINUX_ATMDEV_H | 7 | #define LINUX_ATMDEV_H |
| 8 | 8 | ||
| 9 | 9 | ||
| 10 | #include <linux/config.h> | ||
| 11 | #include <linux/atmapi.h> | 10 | #include <linux/atmapi.h> |
| 12 | #include <linux/atm.h> | 11 | #include <linux/atm.h> |
| 13 | #include <linux/atmioc.h> | 12 | #include <linux/atmioc.h> |
| @@ -210,6 +209,7 @@ struct atm_cirange { | |||
| 210 | 209 | ||
| 211 | #ifdef __KERNEL__ | 210 | #ifdef __KERNEL__ |
| 212 | 211 | ||
| 212 | #include <linux/config.h> | ||
| 213 | #include <linux/wait.h> /* wait_queue_head_t */ | 213 | #include <linux/wait.h> /* wait_queue_head_t */ |
| 214 | #include <linux/time.h> /* struct timeval */ | 214 | #include <linux/time.h> /* struct timeval */ |
| 215 | #include <linux/net.h> | 215 | #include <linux/net.h> |
| @@ -274,7 +274,7 @@ enum { | |||
| 274 | 274 | ||
| 275 | 275 | ||
| 276 | enum { | 276 | enum { |
| 277 | ATM_DF_CLOSE, /* close device when last VCC is closed */ | 277 | ATM_DF_REMOVED, /* device was removed from atm_devs list */ |
| 278 | }; | 278 | }; |
| 279 | 279 | ||
| 280 | 280 | ||
| @@ -415,7 +415,6 @@ struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops, | |||
| 415 | int number,unsigned long *flags); /* number == -1: pick first available */ | 415 | int number,unsigned long *flags); /* number == -1: pick first available */ |
| 416 | struct atm_dev *atm_dev_lookup(int number); | 416 | struct atm_dev *atm_dev_lookup(int number); |
| 417 | void atm_dev_deregister(struct atm_dev *dev); | 417 | void atm_dev_deregister(struct atm_dev *dev); |
| 418 | void shutdown_atm_dev(struct atm_dev *dev); | ||
| 419 | void vcc_insert_socket(struct sock *sk); | 418 | void vcc_insert_socket(struct sock *sk); |
| 420 | 419 | ||
| 421 | 420 | ||
| @@ -457,18 +456,19 @@ static inline void atm_dev_hold(struct atm_dev *dev) | |||
| 457 | 456 | ||
| 458 | static inline void atm_dev_put(struct atm_dev *dev) | 457 | static inline void atm_dev_put(struct atm_dev *dev) |
| 459 | { | 458 | { |
| 460 | atomic_dec(&dev->refcnt); | 459 | if (atomic_dec_and_test(&dev->refcnt)) { |
| 461 | 460 | BUG_ON(!test_bit(ATM_DF_REMOVED, &dev->flags)); | |
| 462 | if ((atomic_read(&dev->refcnt) == 1) && | 461 | if (dev->ops->dev_close) |
| 463 | test_bit(ATM_DF_CLOSE,&dev->flags)) | 462 | dev->ops->dev_close(dev); |
| 464 | shutdown_atm_dev(dev); | 463 | kfree(dev); |
| 464 | } | ||
| 465 | } | 465 | } |
| 466 | 466 | ||
| 467 | 467 | ||
| 468 | int atm_charge(struct atm_vcc *vcc,int truesize); | 468 | int atm_charge(struct atm_vcc *vcc,int truesize); |
| 469 | struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size, | 469 | struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size, |
| 470 | gfp_t gfp_flags); | 470 | gfp_t gfp_flags); |
| 471 | int atm_pcr_goal(struct atm_trafprm *tp); | 471 | int atm_pcr_goal(const struct atm_trafprm *tp); |
| 472 | 472 | ||
| 473 | void vcc_release_async(struct atm_vcc *vcc, int reply); | 473 | void vcc_release_async(struct atm_vcc *vcc, int reply); |
| 474 | 474 | ||
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index cb3c3ef50f50..38c2fb7ebe09 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h | |||
| @@ -84,6 +84,16 @@ static __inline__ int get_bitmask_order(unsigned int count) | |||
| 84 | return order; /* We could be slightly more clever with -1 here... */ | 84 | return order; /* We could be slightly more clever with -1 here... */ |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | static __inline__ int get_count_order(unsigned int count) | ||
| 88 | { | ||
| 89 | int order; | ||
| 90 | |||
| 91 | order = fls(count) - 1; | ||
| 92 | if (count & (count - 1)) | ||
| 93 | order++; | ||
| 94 | return order; | ||
| 95 | } | ||
| 96 | |||
| 87 | /* | 97 | /* |
| 88 | * hweightN: returns the hamming weight (i.e. the number | 98 | * hweightN: returns the hamming weight (i.e. the number |
| 89 | * of bits set) of a N-bit word | 99 | * of bits set) of a N-bit word |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 025a7f084dbd..a33a31e71bbc 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -406,6 +406,7 @@ struct request_queue | |||
| 406 | 406 | ||
| 407 | atomic_t refcnt; | 407 | atomic_t refcnt; |
| 408 | 408 | ||
| 409 | unsigned int nr_sorted; | ||
| 409 | unsigned int in_flight; | 410 | unsigned int in_flight; |
| 410 | 411 | ||
| 411 | /* | 412 | /* |
| @@ -631,6 +632,7 @@ static inline void elv_dispatch_add_tail(struct request_queue *q, | |||
| 631 | { | 632 | { |
| 632 | if (q->last_merge == rq) | 633 | if (q->last_merge == rq) |
| 633 | q->last_merge = NULL; | 634 | q->last_merge = NULL; |
| 635 | q->nr_sorted--; | ||
| 634 | 636 | ||
| 635 | q->end_sector = rq_end_sector(rq); | 637 | q->end_sector = rq_end_sector(rq); |
| 636 | q->boundary_rq = rq; | 638 | q->boundary_rq = rq; |
diff --git a/include/linux/cache.h b/include/linux/cache.h index f6b5a46c5f82..0b7ecf3af78a 100644 --- a/include/linux/cache.h +++ b/include/linux/cache.h | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES | 13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES |
| 14 | #endif | 14 | #endif |
| 15 | 15 | ||
| 16 | #if defined(CONFIG_X86) || defined(CONFIG_SPARC64) | 16 | #if defined(CONFIG_X86) || defined(CONFIG_SPARC64) || defined(CONFIG_IA64) |
| 17 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | 17 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) |
| 18 | #else | 18 | #else |
| 19 | #define __read_mostly | 19 | #define __read_mostly |
diff --git a/include/linux/cciss_ioctl.h b/include/linux/cciss_ioctl.h index 424d5e622b43..6e27f42e3a57 100644 --- a/include/linux/cciss_ioctl.h +++ b/include/linux/cciss_ioctl.h | |||
| @@ -10,8 +10,8 @@ | |||
| 10 | typedef struct _cciss_pci_info_struct | 10 | typedef struct _cciss_pci_info_struct |
| 11 | { | 11 | { |
| 12 | unsigned char bus; | 12 | unsigned char bus; |
| 13 | unsigned short domain; | ||
| 14 | unsigned char dev_fn; | 13 | unsigned char dev_fn; |
| 14 | unsigned short domain; | ||
| 15 | __u32 board_id; | 15 | __u32 board_id; |
| 16 | } cciss_pci_info_struct; | 16 | } cciss_pci_info_struct; |
| 17 | 17 | ||
diff --git a/include/linux/cm4000_cs.h b/include/linux/cm4000_cs.h new file mode 100644 index 000000000000..605ebe24bb2e --- /dev/null +++ b/include/linux/cm4000_cs.h | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | #ifndef _CM4000_H_ | ||
| 2 | #define _CM4000_H_ | ||
| 3 | |||
| 4 | #define MAX_ATR 33 | ||
| 5 | |||
| 6 | #define CM4000_MAX_DEV 4 | ||
| 7 | |||
| 8 | /* those two structures are passed via ioctl() from/to userspace. They are | ||
| 9 | * used by existing userspace programs, so I kepth the awkward "bIFSD" naming | ||
| 10 | * not to break compilation of userspace apps. -HW */ | ||
| 11 | |||
| 12 | typedef struct atreq { | ||
| 13 | int32_t atr_len; | ||
| 14 | unsigned char atr[64]; | ||
| 15 | int32_t power_act; | ||
| 16 | unsigned char bIFSD; | ||
| 17 | unsigned char bIFSC; | ||
| 18 | } atreq_t; | ||
| 19 | |||
| 20 | |||
| 21 | /* what is particularly stupid in the original driver is the arch-dependant | ||
| 22 | * member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace | ||
| 23 | * will lay out the structure members differently than the 64bit kernel. | ||
| 24 | * | ||
| 25 | * I've changed "ptsreq.protocol" from "unsigned long" to "u_int32_t". | ||
| 26 | * On 32bit this will make no difference. With 64bit kernels, it will make | ||
| 27 | * 32bit apps work, too. | ||
| 28 | */ | ||
| 29 | |||
| 30 | typedef struct ptsreq { | ||
| 31 | u_int32_t protocol; /*T=0: 2^0, T=1: 2^1*/ | ||
| 32 | unsigned char flags; | ||
| 33 | unsigned char pts1; | ||
| 34 | unsigned char pts2; | ||
| 35 | unsigned char pts3; | ||
| 36 | } ptsreq_t; | ||
| 37 | |||
| 38 | #define CM_IOC_MAGIC 'c' | ||
| 39 | #define CM_IOC_MAXNR 255 | ||
| 40 | |||
| 41 | #define CM_IOCGSTATUS _IOR (CM_IOC_MAGIC, 0, unsigned char *) | ||
| 42 | #define CM_IOCGATR _IOWR(CM_IOC_MAGIC, 1, atreq_t *) | ||
| 43 | #define CM_IOCSPTS _IOW (CM_IOC_MAGIC, 2, ptsreq_t *) | ||
| 44 | #define CM_IOCSRDR _IO (CM_IOC_MAGIC, 3) | ||
| 45 | #define CM_IOCARDOFF _IO (CM_IOC_MAGIC, 4) | ||
| 46 | |||
| 47 | #define CM_IOSDBGLVL _IOW(CM_IOC_MAGIC, 250, int*) | ||
| 48 | |||
| 49 | /* card and device states */ | ||
| 50 | #define CM_CARD_INSERTED 0x01 | ||
| 51 | #define CM_CARD_POWERED 0x02 | ||
| 52 | #define CM_ATR_PRESENT 0x04 | ||
| 53 | #define CM_ATR_VALID 0x08 | ||
| 54 | #define CM_STATE_VALID 0x0f | ||
| 55 | /* extra info only from CM4000 */ | ||
| 56 | #define CM_NO_READER 0x10 | ||
| 57 | #define CM_BAD_CARD 0x20 | ||
| 58 | |||
| 59 | |||
| 60 | #ifdef __KERNEL__ | ||
| 61 | |||
| 62 | #define DEVICE_NAME "cmm" | ||
| 63 | #define MODULE_NAME "cm4000_cs" | ||
| 64 | |||
| 65 | #endif /* __KERNEL__ */ | ||
| 66 | #endif /* _CM4000_H_ */ | ||
diff --git a/include/linux/cn_proc.h b/include/linux/cn_proc.h index 70ab56317380..1417de935057 100644 --- a/include/linux/cn_proc.h +++ b/include/linux/cn_proc.h | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #define CN_PROC_H | 26 | #define CN_PROC_H |
| 27 | 27 | ||
| 28 | #include <linux/types.h> | 28 | #include <linux/types.h> |
| 29 | #include <linux/time.h> | ||
| 29 | #include <linux/connector.h> | 30 | #include <linux/connector.h> |
| 30 | 31 | ||
| 31 | /* | 32 | /* |
| @@ -65,6 +66,7 @@ struct proc_event { | |||
| 65 | PROC_EVENT_EXIT = 0x80000000 | 66 | PROC_EVENT_EXIT = 0x80000000 |
| 66 | } what; | 67 | } what; |
| 67 | __u32 cpu; | 68 | __u32 cpu; |
| 69 | struct timespec timestamp; | ||
| 68 | union { /* must be last field of proc_event struct */ | 70 | union { /* must be last field of proc_event struct */ |
| 69 | struct { | 71 | struct { |
| 70 | __u32 err; | 72 | __u32 err; |
| @@ -86,12 +88,12 @@ struct proc_event { | |||
| 86 | pid_t process_pid; | 88 | pid_t process_pid; |
| 87 | pid_t process_tgid; | 89 | pid_t process_tgid; |
| 88 | union { | 90 | union { |
| 89 | uid_t ruid; /* current->uid */ | 91 | __u32 ruid; /* task uid */ |
| 90 | gid_t rgid; /* current->gid */ | 92 | __u32 rgid; /* task gid */ |
| 91 | } r; | 93 | } r; |
| 92 | union { | 94 | union { |
| 93 | uid_t euid; | 95 | __u32 euid; |
| 94 | gid_t egid; | 96 | __u32 egid; |
| 95 | } e; | 97 | } e; |
| 96 | } id; | 98 | } id; |
| 97 | 99 | ||
diff --git a/include/linux/compat_ioctl.h b/include/linux/compat_ioctl.h index 2209ad3499a3..119f9d064cc6 100644 --- a/include/linux/compat_ioctl.h +++ b/include/linux/compat_ioctl.h | |||
| @@ -259,6 +259,14 @@ COMPATIBLE_IOCTL(RTC_RD_TIME) | |||
| 259 | COMPATIBLE_IOCTL(RTC_SET_TIME) | 259 | COMPATIBLE_IOCTL(RTC_SET_TIME) |
| 260 | COMPATIBLE_IOCTL(RTC_WKALM_SET) | 260 | COMPATIBLE_IOCTL(RTC_WKALM_SET) |
| 261 | COMPATIBLE_IOCTL(RTC_WKALM_RD) | 261 | COMPATIBLE_IOCTL(RTC_WKALM_RD) |
| 262 | /* | ||
| 263 | * These two are only for the sbus rtc driver, but | ||
| 264 | * hwclock tries them on every rtc device first when | ||
| 265 | * running on sparc. On other architectures the entries | ||
| 266 | * are useless but harmless. | ||
| 267 | */ | ||
| 268 | COMPATIBLE_IOCTL(_IOR('p', 20, int[7])) /* RTCGET */ | ||
| 269 | COMPATIBLE_IOCTL(_IOW('p', 21, int[7])) /* RTCSET */ | ||
| 262 | /* Little m */ | 270 | /* Little m */ |
| 263 | COMPATIBLE_IOCTL(MTIOCTOP) | 271 | COMPATIBLE_IOCTL(MTIOCTOP) |
| 264 | /* Socket level stuff */ | 272 | /* Socket level stuff */ |
| @@ -787,3 +795,70 @@ COMPATIBLE_IOCTL(HIDIOCGFLAG) | |||
| 787 | COMPATIBLE_IOCTL(HIDIOCSFLAG) | 795 | COMPATIBLE_IOCTL(HIDIOCSFLAG) |
| 788 | COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINDEX) | 796 | COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINDEX) |
| 789 | COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINFO) | 797 | COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINFO) |
| 798 | /* dvb */ | ||
| 799 | COMPATIBLE_IOCTL(AUDIO_STOP) | ||
| 800 | COMPATIBLE_IOCTL(AUDIO_PLAY) | ||
| 801 | COMPATIBLE_IOCTL(AUDIO_PAUSE) | ||
| 802 | COMPATIBLE_IOCTL(AUDIO_CONTINUE) | ||
| 803 | COMPATIBLE_IOCTL(AUDIO_SELECT_SOURCE) | ||
| 804 | COMPATIBLE_IOCTL(AUDIO_SET_MUTE) | ||
| 805 | COMPATIBLE_IOCTL(AUDIO_SET_AV_SYNC) | ||
| 806 | COMPATIBLE_IOCTL(AUDIO_SET_BYPASS_MODE) | ||
| 807 | COMPATIBLE_IOCTL(AUDIO_CHANNEL_SELECT) | ||
| 808 | COMPATIBLE_IOCTL(AUDIO_GET_STATUS) | ||
| 809 | COMPATIBLE_IOCTL(AUDIO_GET_CAPABILITIES) | ||
| 810 | COMPATIBLE_IOCTL(AUDIO_CLEAR_BUFFER) | ||
| 811 | COMPATIBLE_IOCTL(AUDIO_SET_ID) | ||
| 812 | COMPATIBLE_IOCTL(AUDIO_SET_MIXER) | ||
| 813 | COMPATIBLE_IOCTL(AUDIO_SET_STREAMTYPE) | ||
| 814 | COMPATIBLE_IOCTL(AUDIO_SET_EXT_ID) | ||
| 815 | COMPATIBLE_IOCTL(AUDIO_SET_ATTRIBUTES) | ||
| 816 | COMPATIBLE_IOCTL(AUDIO_SET_KARAOKE) | ||
| 817 | COMPATIBLE_IOCTL(DMX_START) | ||
| 818 | COMPATIBLE_IOCTL(DMX_STOP) | ||
| 819 | COMPATIBLE_IOCTL(DMX_SET_FILTER) | ||
| 820 | COMPATIBLE_IOCTL(DMX_SET_PES_FILTER) | ||
| 821 | COMPATIBLE_IOCTL(DMX_SET_BUFFER_SIZE) | ||
| 822 | COMPATIBLE_IOCTL(DMX_GET_PES_PIDS) | ||
| 823 | COMPATIBLE_IOCTL(DMX_GET_CAPS) | ||
| 824 | COMPATIBLE_IOCTL(DMX_SET_SOURCE) | ||
| 825 | COMPATIBLE_IOCTL(DMX_GET_STC) | ||
| 826 | COMPATIBLE_IOCTL(FE_GET_INFO) | ||
| 827 | COMPATIBLE_IOCTL(FE_DISEQC_RESET_OVERLOAD) | ||
| 828 | COMPATIBLE_IOCTL(FE_DISEQC_SEND_MASTER_CMD) | ||
| 829 | COMPATIBLE_IOCTL(FE_DISEQC_RECV_SLAVE_REPLY) | ||
| 830 | COMPATIBLE_IOCTL(FE_DISEQC_SEND_BURST) | ||
| 831 | COMPATIBLE_IOCTL(FE_SET_TONE) | ||
| 832 | COMPATIBLE_IOCTL(FE_SET_VOLTAGE) | ||
| 833 | COMPATIBLE_IOCTL(FE_ENABLE_HIGH_LNB_VOLTAGE) | ||
| 834 | COMPATIBLE_IOCTL(FE_READ_STATUS) | ||
| 835 | COMPATIBLE_IOCTL(FE_READ_BER) | ||
| 836 | COMPATIBLE_IOCTL(FE_READ_SIGNAL_STRENGTH) | ||
| 837 | COMPATIBLE_IOCTL(FE_READ_SNR) | ||
| 838 | COMPATIBLE_IOCTL(FE_READ_UNCORRECTED_BLOCKS) | ||
| 839 | COMPATIBLE_IOCTL(FE_SET_FRONTEND) | ||
| 840 | COMPATIBLE_IOCTL(FE_GET_FRONTEND) | ||
| 841 | COMPATIBLE_IOCTL(FE_GET_EVENT) | ||
| 842 | COMPATIBLE_IOCTL(FE_DISHNETWORK_SEND_LEGACY_CMD) | ||
| 843 | COMPATIBLE_IOCTL(VIDEO_STOP) | ||
| 844 | COMPATIBLE_IOCTL(VIDEO_PLAY) | ||
| 845 | COMPATIBLE_IOCTL(VIDEO_FREEZE) | ||
| 846 | COMPATIBLE_IOCTL(VIDEO_CONTINUE) | ||
| 847 | COMPATIBLE_IOCTL(VIDEO_SELECT_SOURCE) | ||
| 848 | COMPATIBLE_IOCTL(VIDEO_SET_BLANK) | ||
| 849 | COMPATIBLE_IOCTL(VIDEO_GET_STATUS) | ||
| 850 | COMPATIBLE_IOCTL(VIDEO_SET_DISPLAY_FORMAT) | ||
| 851 | COMPATIBLE_IOCTL(VIDEO_FAST_FORWARD) | ||
| 852 | COMPATIBLE_IOCTL(VIDEO_SLOWMOTION) | ||
| 853 | COMPATIBLE_IOCTL(VIDEO_GET_CAPABILITIES) | ||
| 854 | COMPATIBLE_IOCTL(VIDEO_CLEAR_BUFFER) | ||
| 855 | COMPATIBLE_IOCTL(VIDEO_SET_ID) | ||
| 856 | COMPATIBLE_IOCTL(VIDEO_SET_STREAMTYPE) | ||
| 857 | COMPATIBLE_IOCTL(VIDEO_SET_FORMAT) | ||
| 858 | COMPATIBLE_IOCTL(VIDEO_SET_SYSTEM) | ||
| 859 | COMPATIBLE_IOCTL(VIDEO_SET_HIGHLIGHT) | ||
| 860 | COMPATIBLE_IOCTL(VIDEO_SET_SPU) | ||
| 861 | COMPATIBLE_IOCTL(VIDEO_GET_NAVI) | ||
| 862 | COMPATIBLE_IOCTL(VIDEO_SET_ATTRIBUTES) | ||
| 863 | COMPATIBLE_IOCTL(VIDEO_GET_SIZE) | ||
| 864 | COMPATIBLE_IOCTL(VIDEO_GET_FRAME_RATE) | ||
diff --git a/include/linux/connector.h b/include/linux/connector.h index c5769c6585f4..ad1a22c1c42e 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
| @@ -32,6 +32,8 @@ | |||
| 32 | */ | 32 | */ |
| 33 | #define CN_IDX_PROC 0x1 | 33 | #define CN_IDX_PROC 0x1 |
| 34 | #define CN_VAL_PROC 0x1 | 34 | #define CN_VAL_PROC 0x1 |
| 35 | #define CN_IDX_CIFS 0x2 | ||
| 36 | #define CN_VAL_CIFS 0x1 | ||
| 35 | 37 | ||
| 36 | #define CN_NETLINK_USERS 1 | 38 | #define CN_NETLINK_USERS 1 |
| 37 | 39 | ||
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 43c44530ef9d..0ed1d4853c69 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
| @@ -65,10 +65,9 @@ extern struct sysdev_class cpu_sysdev_class; | |||
| 65 | 65 | ||
| 66 | #ifdef CONFIG_HOTPLUG_CPU | 66 | #ifdef CONFIG_HOTPLUG_CPU |
| 67 | /* Stop CPUs going up and down. */ | 67 | /* Stop CPUs going up and down. */ |
| 68 | extern struct semaphore cpucontrol; | 68 | extern void lock_cpu_hotplug(void); |
| 69 | #define lock_cpu_hotplug() down(&cpucontrol) | 69 | extern void unlock_cpu_hotplug(void); |
| 70 | #define unlock_cpu_hotplug() up(&cpucontrol) | 70 | extern int lock_cpu_hotplug_interruptible(void); |
| 71 | #define lock_cpu_hotplug_interruptible() down_interruptible(&cpucontrol) | ||
| 72 | #define hotcpu_notifier(fn, pri) { \ | 71 | #define hotcpu_notifier(fn, pri) { \ |
| 73 | static struct notifier_block fn##_nb = \ | 72 | static struct notifier_block fn##_nb = \ |
| 74 | { .notifier_call = fn, .priority = pri }; \ | 73 | { .notifier_call = fn, .priority = pri }; \ |
diff --git a/include/linux/ds17287rtc.h b/include/linux/ds17287rtc.h new file mode 100644 index 000000000000..c281ba42e28f --- /dev/null +++ b/include/linux/ds17287rtc.h | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | /* | ||
| 2 | * ds17287rtc.h - register definitions for the ds1728[57] RTC / CMOS RAM | ||
| 3 | * | ||
| 4 | * This file is subject to the terms and conditions of the GNU General Public | ||
| 5 | * License. See the file "COPYING" in the main directory of this archive | ||
| 6 | * for more details. | ||
| 7 | * | ||
| 8 | * (C) 2003 Guido Guenther <agx@sigxcpu.org> | ||
| 9 | */ | ||
| 10 | #ifndef __LINUX_DS17287RTC_H | ||
| 11 | #define __LINUX_DS17287RTC_H | ||
| 12 | |||
| 13 | #include <linux/rtc.h> /* get the user-level API */ | ||
| 14 | #include <linux/spinlock.h> /* spinlock_t */ | ||
| 15 | #include <linux/mc146818rtc.h> | ||
| 16 | |||
| 17 | /* Register A */ | ||
| 18 | #define DS_REGA_DV2 0x40 /* countdown chain */ | ||
| 19 | #define DS_REGA_DV1 0x20 /* oscillator enable */ | ||
| 20 | #define DS_REGA_DV0 0x10 /* bank select */ | ||
| 21 | |||
| 22 | /* bank 1 registers */ | ||
| 23 | #define DS_B1_MODEL 0x40 /* model number byte */ | ||
| 24 | #define DS_B1_SN1 0x41 /* serial number byte 1 */ | ||
| 25 | #define DS_B1_SN2 0x42 /* serial number byte 2 */ | ||
| 26 | #define DS_B1_SN3 0x43 /* serial number byte 3 */ | ||
| 27 | #define DS_B1_SN4 0x44 /* serial number byte 4 */ | ||
| 28 | #define DS_B1_SN5 0x45 /* serial number byte 5 */ | ||
| 29 | #define DS_B1_SN6 0x46 /* serial number byte 6 */ | ||
| 30 | #define DS_B1_CRC 0x47 /* CRC byte */ | ||
| 31 | #define DS_B1_CENTURY 0x48 /* Century byte */ | ||
| 32 | #define DS_B1_DALARM 0x49 /* date alarm */ | ||
| 33 | #define DS_B1_XCTRL4A 0x4a /* extendec control register 4a */ | ||
| 34 | #define DS_B1_XCTRL4B 0x4b /* extendec control register 4b */ | ||
| 35 | #define DS_B1_RTCADDR2 0x4e /* rtc address 2 */ | ||
| 36 | #define DS_B1_RTCADDR3 0x4f /* rtc address 3 */ | ||
| 37 | #define DS_B1_RAMLSB 0x50 /* extended ram LSB */ | ||
| 38 | #define DS_B1_RAMMSB 0x51 /* extended ram MSB */ | ||
| 39 | #define DS_B1_RAMDPORT 0x53 /* extended ram data port */ | ||
| 40 | |||
| 41 | /* register details */ | ||
| 42 | /* extended control register 4a */ | ||
| 43 | #define DS_XCTRL4A_VRT2 0x80 /* valid ram and time */ | ||
| 44 | #define DS_XCTRL4A_INCR 0x40 /* increment progress status */ | ||
| 45 | #define DS_XCTRL4A_BME 0x20 /* burst mode enable */ | ||
| 46 | #define DS_XCTRL4A_PAB 0x08 /* power active bar ctrl */ | ||
| 47 | #define DS_XCTRL4A_RF 0x04 /* ram clear flag */ | ||
| 48 | #define DS_XCTRL4A_WF 0x02 /* wake up alarm flag */ | ||
| 49 | #define DS_XCTRL4A_KF 0x01 /* kickstart flag */ | ||
| 50 | |||
| 51 | /* interrupt causes */ | ||
| 52 | #define DS_XCTRL4A_IFS (DS_XCTRL4A_RF|DS_XCTRL4A_WF|DS_XCTRL4A_KF) | ||
| 53 | |||
| 54 | /* extended control register 4b */ | ||
| 55 | #define DS_XCTRL4B_ABE 0x80 /* auxiliary battery enable */ | ||
| 56 | #define DS_XCTRL4B_E32K 0x40 /* enable 32.768 kHz Output */ | ||
| 57 | #define DS_XCTRL4B_CS 0x20 /* crystal select */ | ||
| 58 | #define DS_XCTRL4B_RCE 0x10 /* ram clear enable */ | ||
| 59 | #define DS_XCTRL4B_PRS 0x08 /* PAB resec select */ | ||
| 60 | #define DS_XCTRL4B_RIE 0x04 /* ram clear interrupt enable */ | ||
| 61 | #define DS_XCTRL4B_WFE 0x02 /* wake up alarm interrupt enable */ | ||
| 62 | #define DS_XCTRL4B_KFE 0x01 /* kickstart interrupt enable */ | ||
| 63 | |||
| 64 | /* interrupt enable bits */ | ||
| 65 | #define DS_XCTRL4B_IFES (DS_XCTRL4B_RIE|DS_XCTRL4B_WFE|DS_XCTRL4B_KFE) | ||
| 66 | |||
| 67 | #endif /* __LINUX_DS17287RTC_H */ | ||
diff --git a/include/linux/ds1742rtc.h b/include/linux/ds1742rtc.h new file mode 100644 index 000000000000..a83cdd1cafc9 --- /dev/null +++ b/include/linux/ds1742rtc.h | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | /* | ||
| 2 | * ds1742rtc.h - register definitions for the Real-Time-Clock / CMOS RAM | ||
| 3 | * | ||
| 4 | * Copyright (C) 1999-2001 Toshiba Corporation | ||
| 5 | * Copyright (C) 2003 Ralf Baechle (ralf@linux-mips.org) | ||
| 6 | * | ||
| 7 | * Permission is hereby granted to copy, modify and redistribute this code | ||
| 8 | * in terms of the GNU Library General Public License, Version 2 or later, | ||
| 9 | * at your option. | ||
| 10 | */ | ||
| 11 | #ifndef __LINUX_DS1742RTC_H | ||
| 12 | #define __LINUX_DS1742RTC_H | ||
| 13 | |||
| 14 | #include <asm/ds1742.h> | ||
| 15 | |||
| 16 | #define RTC_BRAM_SIZE 0x800 | ||
| 17 | #define RTC_OFFSET 0x7f8 | ||
| 18 | |||
| 19 | /* | ||
| 20 | * Register summary | ||
| 21 | */ | ||
| 22 | #define RTC_CONTROL (RTC_OFFSET + 0) | ||
| 23 | #define RTC_CENTURY (RTC_OFFSET + 0) | ||
| 24 | #define RTC_SECONDS (RTC_OFFSET + 1) | ||
| 25 | #define RTC_MINUTES (RTC_OFFSET + 2) | ||
| 26 | #define RTC_HOURS (RTC_OFFSET + 3) | ||
| 27 | #define RTC_DAY (RTC_OFFSET + 4) | ||
| 28 | #define RTC_DATE (RTC_OFFSET + 5) | ||
| 29 | #define RTC_MONTH (RTC_OFFSET + 6) | ||
| 30 | #define RTC_YEAR (RTC_OFFSET + 7) | ||
| 31 | |||
| 32 | #define RTC_CENTURY_MASK 0x3f | ||
| 33 | #define RTC_SECONDS_MASK 0x7f | ||
| 34 | #define RTC_DAY_MASK 0x07 | ||
| 35 | |||
| 36 | /* | ||
| 37 | * Bits in the Control/Century register | ||
| 38 | */ | ||
| 39 | #define RTC_WRITE 0x80 | ||
| 40 | #define RTC_READ 0x40 | ||
| 41 | |||
| 42 | /* | ||
| 43 | * Bits in the Seconds register | ||
| 44 | */ | ||
| 45 | #define RTC_STOP 0x80 | ||
| 46 | |||
| 47 | /* | ||
| 48 | * Bits in the Day register | ||
| 49 | */ | ||
| 50 | #define RTC_BATT_FLAG 0x80 | ||
| 51 | #define RTC_FREQ_TEST 0x40 | ||
| 52 | |||
| 53 | #endif /* __LINUX_DS1742RTC_H */ | ||
diff --git a/include/linux/dvb/audio.h b/include/linux/dvb/audio.h index cc314443f1c4..2b8797084685 100644 --- a/include/linux/dvb/audio.h +++ b/include/linux/dvb/audio.h | |||
| @@ -32,39 +32,39 @@ | |||
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | typedef enum { | 34 | typedef enum { |
| 35 | AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ | 35 | AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ |
| 36 | AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ | 36 | AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ |
| 37 | } audio_stream_source_t; | 37 | } audio_stream_source_t; |
| 38 | 38 | ||
| 39 | 39 | ||
| 40 | typedef enum { | 40 | typedef enum { |
| 41 | AUDIO_STOPPED, /* Device is stopped */ | 41 | AUDIO_STOPPED, /* Device is stopped */ |
| 42 | AUDIO_PLAYING, /* Device is currently playing */ | 42 | AUDIO_PLAYING, /* Device is currently playing */ |
| 43 | AUDIO_PAUSED /* Device is paused */ | 43 | AUDIO_PAUSED /* Device is paused */ |
| 44 | } audio_play_state_t; | 44 | } audio_play_state_t; |
| 45 | 45 | ||
| 46 | 46 | ||
| 47 | typedef enum { | 47 | typedef enum { |
| 48 | AUDIO_STEREO, | 48 | AUDIO_STEREO, |
| 49 | AUDIO_MONO_LEFT, | 49 | AUDIO_MONO_LEFT, |
| 50 | AUDIO_MONO_RIGHT | 50 | AUDIO_MONO_RIGHT |
| 51 | } audio_channel_select_t; | 51 | } audio_channel_select_t; |
| 52 | 52 | ||
| 53 | 53 | ||
| 54 | typedef struct audio_mixer { | 54 | typedef struct audio_mixer { |
| 55 | unsigned int volume_left; | 55 | unsigned int volume_left; |
| 56 | unsigned int volume_right; | 56 | unsigned int volume_right; |
| 57 | // what else do we need? bass, pass-through, ... | 57 | // what else do we need? bass, pass-through, ... |
| 58 | } audio_mixer_t; | 58 | } audio_mixer_t; |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | typedef struct audio_status { | 61 | typedef struct audio_status { |
| 62 | int AV_sync_state; /* sync audio and video? */ | 62 | int AV_sync_state; /* sync audio and video? */ |
| 63 | int mute_state; /* audio is muted */ | 63 | int mute_state; /* audio is muted */ |
| 64 | audio_play_state_t play_state; /* current playback state */ | 64 | audio_play_state_t play_state; /* current playback state */ |
| 65 | audio_stream_source_t stream_source; /* current stream source */ | 65 | audio_stream_source_t stream_source; /* current stream source */ |
| 66 | audio_channel_select_t channel_select; /* currently selected channel */ | 66 | audio_channel_select_t channel_select; /* currently selected channel */ |
| 67 | int bypass_mode; /* pass on audio data to */ | 67 | int bypass_mode; /* pass on audio data to */ |
| 68 | audio_mixer_t mixer_state; /* current mixer state */ | 68 | audio_mixer_t mixer_state; /* current mixer state */ |
| 69 | } audio_status_t; /* separate decoder hardware */ | 69 | } audio_status_t; /* separate decoder hardware */ |
| 70 | 70 | ||
| @@ -74,8 +74,8 @@ struct audio_karaoke{ /* if Vocal1 or Vocal2 are non-zero, they get mixed */ | |||
| 74 | int vocal1; /* into left and right t at 70% each */ | 74 | int vocal1; /* into left and right t at 70% each */ |
| 75 | int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ | 75 | int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ |
| 76 | int melody; /* mixed into the left channel and */ | 76 | int melody; /* mixed into the left channel and */ |
| 77 | /* Vocal2 into the right channel at 100% each. */ | 77 | /* Vocal2 into the right channel at 100% each. */ |
| 78 | /* if Melody is non-zero, the melody channel gets mixed*/ | 78 | /* if Melody is non-zero, the melody channel gets mixed*/ |
| 79 | } audio_karaoke_t; /* into left and right */ | 79 | } audio_karaoke_t; /* into left and right */ |
| 80 | 80 | ||
| 81 | 81 | ||
diff --git a/include/linux/dvb/ca.h b/include/linux/dvb/ca.h index 558af0cc7692..c18537f3e449 100644 --- a/include/linux/dvb/ca.h +++ b/include/linux/dvb/ca.h | |||
| @@ -27,16 +27,16 @@ | |||
| 27 | /* slot interface types and info */ | 27 | /* slot interface types and info */ |
| 28 | 28 | ||
| 29 | typedef struct ca_slot_info { | 29 | typedef struct ca_slot_info { |
| 30 | int num; /* slot number */ | 30 | int num; /* slot number */ |
| 31 | 31 | ||
| 32 | int type; /* CA interface this slot supports */ | 32 | int type; /* CA interface this slot supports */ |
| 33 | #define CA_CI 1 /* CI high level interface */ | 33 | #define CA_CI 1 /* CI high level interface */ |
| 34 | #define CA_CI_LINK 2 /* CI link layer level interface */ | 34 | #define CA_CI_LINK 2 /* CI link layer level interface */ |
| 35 | #define CA_CI_PHYS 4 /* CI physical layer level interface */ | 35 | #define CA_CI_PHYS 4 /* CI physical layer level interface */ |
| 36 | #define CA_DESCR 8 /* built-in descrambler */ | 36 | #define CA_DESCR 8 /* built-in descrambler */ |
| 37 | #define CA_SC 128 /* simple smart card interface */ | 37 | #define CA_SC 128 /* simple smart card interface */ |
| 38 | 38 | ||
| 39 | unsigned int flags; | 39 | unsigned int flags; |
| 40 | #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ | 40 | #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ |
| 41 | #define CA_CI_MODULE_READY 2 | 41 | #define CA_CI_MODULE_READY 2 |
| 42 | } ca_slot_info_t; | 42 | } ca_slot_info_t; |
| @@ -45,37 +45,37 @@ typedef struct ca_slot_info { | |||
| 45 | /* descrambler types and info */ | 45 | /* descrambler types and info */ |
| 46 | 46 | ||
| 47 | typedef struct ca_descr_info { | 47 | typedef struct ca_descr_info { |
| 48 | unsigned int num; /* number of available descramblers (keys) */ | 48 | unsigned int num; /* number of available descramblers (keys) */ |
| 49 | unsigned int type; /* type of supported scrambling system */ | 49 | unsigned int type; /* type of supported scrambling system */ |
| 50 | #define CA_ECD 1 | 50 | #define CA_ECD 1 |
| 51 | #define CA_NDS 2 | 51 | #define CA_NDS 2 |
| 52 | #define CA_DSS 4 | 52 | #define CA_DSS 4 |
| 53 | } ca_descr_info_t; | 53 | } ca_descr_info_t; |
| 54 | 54 | ||
| 55 | typedef struct ca_caps { | 55 | typedef struct ca_caps { |
| 56 | unsigned int slot_num; /* total number of CA card and module slots */ | 56 | unsigned int slot_num; /* total number of CA card and module slots */ |
| 57 | unsigned int slot_type; /* OR of all supported types */ | 57 | unsigned int slot_type; /* OR of all supported types */ |
| 58 | unsigned int descr_num; /* total number of descrambler slots (keys) */ | 58 | unsigned int descr_num; /* total number of descrambler slots (keys) */ |
| 59 | unsigned int descr_type; /* OR of all supported types */ | 59 | unsigned int descr_type; /* OR of all supported types */ |
| 60 | } ca_caps_t; | 60 | } ca_caps_t; |
| 61 | 61 | ||
| 62 | /* a message to/from a CI-CAM */ | 62 | /* a message to/from a CI-CAM */ |
| 63 | typedef struct ca_msg { | 63 | typedef struct ca_msg { |
| 64 | unsigned int index; | 64 | unsigned int index; |
| 65 | unsigned int type; | 65 | unsigned int type; |
| 66 | unsigned int length; | 66 | unsigned int length; |
| 67 | unsigned char msg[256]; | 67 | unsigned char msg[256]; |
| 68 | } ca_msg_t; | 68 | } ca_msg_t; |
| 69 | 69 | ||
| 70 | typedef struct ca_descr { | 70 | typedef struct ca_descr { |
| 71 | unsigned int index; | 71 | unsigned int index; |
| 72 | unsigned int parity; /* 0 == even, 1 == odd */ | 72 | unsigned int parity; /* 0 == even, 1 == odd */ |
| 73 | unsigned char cw[8]; | 73 | unsigned char cw[8]; |
| 74 | } ca_descr_t; | 74 | } ca_descr_t; |
| 75 | 75 | ||
| 76 | typedef struct ca_pid { | 76 | typedef struct ca_pid { |
| 77 | unsigned int pid; | 77 | unsigned int pid; |
| 78 | int index; /* -1 == disable*/ | 78 | int index; /* -1 == disable*/ |
| 79 | } ca_pid_t; | 79 | } ca_pid_t; |
| 80 | 80 | ||
| 81 | #define CA_RESET _IO('o', 128) | 81 | #define CA_RESET _IO('o', 128) |
diff --git a/include/linux/dvb/dmx.h b/include/linux/dvb/dmx.h index ce3f829da82c..2787b8a22ff1 100644 --- a/include/linux/dvb/dmx.h +++ b/include/linux/dvb/dmx.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * dmx.h | 2 | * dmx.h |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | 4 | * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> |
| @@ -38,10 +38,10 @@ typedef enum | |||
| 38 | { | 38 | { |
| 39 | DMX_OUT_DECODER, /* Streaming directly to decoder. */ | 39 | DMX_OUT_DECODER, /* Streaming directly to decoder. */ |
| 40 | DMX_OUT_TAP, /* Output going to a memory buffer */ | 40 | DMX_OUT_TAP, /* Output going to a memory buffer */ |
| 41 | /* (to be retrieved via the read command).*/ | 41 | /* (to be retrieved via the read command).*/ |
| 42 | DMX_OUT_TS_TAP /* Output multiplexed into a new TS */ | 42 | DMX_OUT_TS_TAP /* Output multiplexed into a new TS */ |
| 43 | /* (to be retrieved by reading from the */ | 43 | /* (to be retrieved by reading from the */ |
| 44 | /* logical DVR device). */ | 44 | /* logical DVR device). */ |
| 45 | } dmx_output_t; | 45 | } dmx_output_t; |
| 46 | 46 | ||
| 47 | 47 | ||
| @@ -54,25 +54,25 @@ typedef enum | |||
| 54 | 54 | ||
| 55 | typedef enum | 55 | typedef enum |
| 56 | { | 56 | { |
| 57 | DMX_PES_AUDIO0, | 57 | DMX_PES_AUDIO0, |
| 58 | DMX_PES_VIDEO0, | 58 | DMX_PES_VIDEO0, |
| 59 | DMX_PES_TELETEXT0, | 59 | DMX_PES_TELETEXT0, |
| 60 | DMX_PES_SUBTITLE0, | 60 | DMX_PES_SUBTITLE0, |
| 61 | DMX_PES_PCR0, | 61 | DMX_PES_PCR0, |
| 62 | 62 | ||
| 63 | DMX_PES_AUDIO1, | 63 | DMX_PES_AUDIO1, |
| 64 | DMX_PES_VIDEO1, | 64 | DMX_PES_VIDEO1, |
| 65 | DMX_PES_TELETEXT1, | 65 | DMX_PES_TELETEXT1, |
| 66 | DMX_PES_SUBTITLE1, | 66 | DMX_PES_SUBTITLE1, |
| 67 | DMX_PES_PCR1, | 67 | DMX_PES_PCR1, |
| 68 | 68 | ||
| 69 | DMX_PES_AUDIO2, | 69 | DMX_PES_AUDIO2, |
| 70 | DMX_PES_VIDEO2, | 70 | DMX_PES_VIDEO2, |
| 71 | DMX_PES_TELETEXT2, | 71 | DMX_PES_TELETEXT2, |
| 72 | DMX_PES_SUBTITLE2, | 72 | DMX_PES_SUBTITLE2, |
| 73 | DMX_PES_PCR2, | 73 | DMX_PES_PCR2, |
| 74 | 74 | ||
| 75 | DMX_PES_AUDIO3, | 75 | DMX_PES_AUDIO3, |
| 76 | DMX_PES_VIDEO3, | 76 | DMX_PES_VIDEO3, |
| 77 | DMX_PES_TELETEXT3, | 77 | DMX_PES_TELETEXT3, |
| 78 | DMX_PES_SUBTITLE3, | 78 | DMX_PES_SUBTITLE3, |
| @@ -90,8 +90,8 @@ typedef enum | |||
| 90 | 90 | ||
| 91 | typedef enum | 91 | typedef enum |
| 92 | { | 92 | { |
| 93 | DMX_SCRAMBLING_EV, | 93 | DMX_SCRAMBLING_EV, |
| 94 | DMX_FRONTEND_EV | 94 | DMX_FRONTEND_EV |
| 95 | } dmx_event_t; | 95 | } dmx_event_t; |
| 96 | 96 | ||
| 97 | 97 | ||
diff --git a/include/linux/dvb/osd.h b/include/linux/dvb/osd.h index 0e1973d54a6b..880e68435832 100644 --- a/include/linux/dvb/osd.h +++ b/include/linux/dvb/osd.h | |||
| @@ -98,43 +98,43 @@ typedef enum { | |||
| 98 | } OSD_Command; | 98 | } OSD_Command; |
| 99 | 99 | ||
| 100 | typedef struct osd_cmd_s { | 100 | typedef struct osd_cmd_s { |
| 101 | OSD_Command cmd; | 101 | OSD_Command cmd; |
| 102 | int x0; | 102 | int x0; |
| 103 | int y0; | 103 | int y0; |
| 104 | int x1; | 104 | int x1; |
| 105 | int y1; | 105 | int y1; |
| 106 | int color; | 106 | int color; |
| 107 | void __user *data; | 107 | void __user *data; |
| 108 | } osd_cmd_t; | 108 | } osd_cmd_t; |
| 109 | 109 | ||
| 110 | /* OSD_OpenRaw: set 'color' to desired window type */ | 110 | /* OSD_OpenRaw: set 'color' to desired window type */ |
| 111 | typedef enum { | 111 | typedef enum { |
| 112 | OSD_BITMAP1, /* 1 bit bitmap */ | 112 | OSD_BITMAP1, /* 1 bit bitmap */ |
| 113 | OSD_BITMAP2, /* 2 bit bitmap */ | 113 | OSD_BITMAP2, /* 2 bit bitmap */ |
| 114 | OSD_BITMAP4, /* 4 bit bitmap */ | 114 | OSD_BITMAP4, /* 4 bit bitmap */ |
| 115 | OSD_BITMAP8, /* 8 bit bitmap */ | 115 | OSD_BITMAP8, /* 8 bit bitmap */ |
| 116 | OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */ | 116 | OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */ |
| 117 | OSD_BITMAP2HR, /* 2 bit bitmap half resolution */ | 117 | OSD_BITMAP2HR, /* 2 bit bitmap half resolution */ |
| 118 | OSD_BITMAP4HR, /* 4 bit bitmap half resolution */ | 118 | OSD_BITMAP4HR, /* 4 bit bitmap half resolution */ |
| 119 | OSD_BITMAP8HR, /* 8 bit bitmap half resolution */ | 119 | OSD_BITMAP8HR, /* 8 bit bitmap half resolution */ |
| 120 | OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */ | 120 | OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */ |
| 121 | OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */ | 121 | OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */ |
| 122 | OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */ | 122 | OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */ |
| 123 | OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */ | 123 | OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */ |
| 124 | OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */ | 124 | OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */ |
| 125 | OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */ | 125 | OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */ |
| 126 | OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */ | 126 | OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */ |
| 127 | OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */ | 127 | OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */ |
| 128 | OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/ | 128 | OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/ |
| 129 | OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */ | 129 | OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */ |
| 130 | OSD_VIDEONSIZE, /* Full Size MPEG Video Display */ | 130 | OSD_VIDEONSIZE, /* Full Size MPEG Video Display */ |
| 131 | OSD_CURSOR /* Cursor */ | 131 | OSD_CURSOR /* Cursor */ |
| 132 | } osd_raw_window_t; | 132 | } osd_raw_window_t; |
| 133 | 133 | ||
| 134 | typedef struct osd_cap_s { | 134 | typedef struct osd_cap_s { |
| 135 | int cmd; | 135 | int cmd; |
| 136 | #define OSD_CAP_MEMSIZE 1 /* memory size */ | 136 | #define OSD_CAP_MEMSIZE 1 /* memory size */ |
| 137 | long val; | 137 | long val; |
| 138 | } osd_cap_t; | 138 | } osd_cap_t; |
| 139 | 139 | ||
| 140 | 140 | ||
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h index 941045e9ab89..b1999bfeaa56 100644 --- a/include/linux/dvb/video.h +++ b/include/linux/dvb/video.h | |||
| @@ -36,7 +36,7 @@ | |||
| 36 | 36 | ||
| 37 | typedef enum { | 37 | typedef enum { |
| 38 | VIDEO_FORMAT_4_3, /* Select 4:3 format */ | 38 | VIDEO_FORMAT_4_3, /* Select 4:3 format */ |
| 39 | VIDEO_FORMAT_16_9, /* Select 16:9 format. */ | 39 | VIDEO_FORMAT_16_9, /* Select 16:9 format. */ |
| 40 | VIDEO_FORMAT_221_1 /* 2.21:1 */ | 40 | VIDEO_FORMAT_221_1 /* 2.21:1 */ |
| 41 | } video_format_t; | 41 | } video_format_t; |
| 42 | 42 | ||
| @@ -54,7 +54,7 @@ typedef enum { | |||
| 54 | 54 | ||
| 55 | 55 | ||
| 56 | typedef enum { | 56 | typedef enum { |
| 57 | VIDEO_PAN_SCAN, /* use pan and scan format */ | 57 | VIDEO_PAN_SCAN, /* use pan and scan format */ |
| 58 | VIDEO_LETTER_BOX, /* use letterbox format */ | 58 | VIDEO_LETTER_BOX, /* use letterbox format */ |
| 59 | VIDEO_CENTER_CUT_OUT /* use center cut out format */ | 59 | VIDEO_CENTER_CUT_OUT /* use center cut out format */ |
| 60 | } video_displayformat_t; | 60 | } video_displayformat_t; |
| @@ -66,7 +66,7 @@ typedef struct { | |||
| 66 | } video_size_t; | 66 | } video_size_t; |
| 67 | 67 | ||
| 68 | typedef enum { | 68 | typedef enum { |
| 69 | VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ | 69 | VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ |
| 70 | VIDEO_SOURCE_MEMORY /* If this source is selected, the stream | 70 | VIDEO_SOURCE_MEMORY /* If this source is selected, the stream |
| 71 | comes from the user through the write | 71 | comes from the user through the write |
| 72 | system call */ | 72 | system call */ |
| @@ -75,35 +75,35 @@ typedef enum { | |||
| 75 | 75 | ||
| 76 | typedef enum { | 76 | typedef enum { |
| 77 | VIDEO_STOPPED, /* Video is stopped */ | 77 | VIDEO_STOPPED, /* Video is stopped */ |
| 78 | VIDEO_PLAYING, /* Video is currently playing */ | 78 | VIDEO_PLAYING, /* Video is currently playing */ |
| 79 | VIDEO_FREEZED /* Video is freezed */ | 79 | VIDEO_FREEZED /* Video is freezed */ |
| 80 | } video_play_state_t; | 80 | } video_play_state_t; |
| 81 | 81 | ||
| 82 | 82 | ||
| 83 | struct video_event { | 83 | struct video_event { |
| 84 | int32_t type; | 84 | int32_t type; |
| 85 | #define VIDEO_EVENT_SIZE_CHANGED 1 | 85 | #define VIDEO_EVENT_SIZE_CHANGED 1 |
| 86 | #define VIDEO_EVENT_FRAME_RATE_CHANGED 2 | 86 | #define VIDEO_EVENT_FRAME_RATE_CHANGED 2 |
| 87 | time_t timestamp; | 87 | time_t timestamp; |
| 88 | union { | 88 | union { |
| 89 | video_size_t size; | 89 | video_size_t size; |
| 90 | unsigned int frame_rate; /* in frames per 1000sec */ | 90 | unsigned int frame_rate; /* in frames per 1000sec */ |
| 91 | } u; | 91 | } u; |
| 92 | }; | 92 | }; |
| 93 | 93 | ||
| 94 | 94 | ||
| 95 | struct video_status { | 95 | struct video_status { |
| 96 | int video_blank; /* blank video on freeze? */ | 96 | int video_blank; /* blank video on freeze? */ |
| 97 | video_play_state_t play_state; /* current state of playback */ | 97 | video_play_state_t play_state; /* current state of playback */ |
| 98 | video_stream_source_t stream_source; /* current source (demux/memory) */ | 98 | video_stream_source_t stream_source; /* current source (demux/memory) */ |
| 99 | video_format_t video_format; /* current aspect ratio of stream*/ | 99 | video_format_t video_format; /* current aspect ratio of stream*/ |
| 100 | video_displayformat_t display_format;/* selected cropping mode */ | 100 | video_displayformat_t display_format;/* selected cropping mode */ |
| 101 | }; | 101 | }; |
| 102 | 102 | ||
| 103 | 103 | ||
| 104 | struct video_still_picture { | 104 | struct video_still_picture { |
| 105 | char __user *iFrame; /* pointer to a single iframe in memory */ | 105 | char __user *iFrame; /* pointer to a single iframe in memory */ |
| 106 | int32_t size; | 106 | int32_t size; |
| 107 | }; | 107 | }; |
| 108 | 108 | ||
| 109 | 109 | ||
| @@ -111,19 +111,19 @@ typedef | |||
| 111 | struct video_highlight { | 111 | struct video_highlight { |
| 112 | int active; /* 1=show highlight, 0=hide highlight */ | 112 | int active; /* 1=show highlight, 0=hide highlight */ |
| 113 | uint8_t contrast1; /* 7- 4 Pattern pixel contrast */ | 113 | uint8_t contrast1; /* 7- 4 Pattern pixel contrast */ |
| 114 | /* 3- 0 Background pixel contrast */ | 114 | /* 3- 0 Background pixel contrast */ |
| 115 | uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */ | 115 | uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */ |
| 116 | /* 3- 0 Emphasis pixel-1 contrast */ | 116 | /* 3- 0 Emphasis pixel-1 contrast */ |
| 117 | uint8_t color1; /* 7- 4 Pattern pixel color */ | 117 | uint8_t color1; /* 7- 4 Pattern pixel color */ |
| 118 | /* 3- 0 Background pixel color */ | 118 | /* 3- 0 Background pixel color */ |
| 119 | uint8_t color2; /* 7- 4 Emphasis pixel-2 color */ | 119 | uint8_t color2; /* 7- 4 Emphasis pixel-2 color */ |
| 120 | /* 3- 0 Emphasis pixel-1 color */ | 120 | /* 3- 0 Emphasis pixel-1 color */ |
| 121 | uint32_t ypos; /* 23-22 auto action mode */ | 121 | uint32_t ypos; /* 23-22 auto action mode */ |
| 122 | /* 21-12 start y */ | 122 | /* 21-12 start y */ |
| 123 | /* 9- 0 end y */ | 123 | /* 9- 0 end y */ |
| 124 | uint32_t xpos; /* 23-22 button color number */ | 124 | uint32_t xpos; /* 23-22 button color number */ |
| 125 | /* 21-12 start x */ | 125 | /* 21-12 start x */ |
| 126 | /* 9- 0 end x */ | 126 | /* 9- 0 end x */ |
| 127 | } video_highlight_t; | 127 | } video_highlight_t; |
| 128 | 128 | ||
| 129 | 129 | ||
diff --git a/include/linux/fb.h b/include/linux/fb.h index 04a58f33ec53..a973be2cfe61 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
| @@ -617,6 +617,12 @@ struct fb_ops { | |||
| 617 | 617 | ||
| 618 | /* perform fb specific mmap */ | 618 | /* perform fb specific mmap */ |
| 619 | int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma); | 619 | int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma); |
| 620 | |||
| 621 | /* save current hardware state */ | ||
| 622 | void (*fb_save_state)(struct fb_info *info); | ||
| 623 | |||
| 624 | /* restore saved state */ | ||
| 625 | void (*fb_restore_state)(struct fb_info *info); | ||
| 620 | }; | 626 | }; |
| 621 | 627 | ||
| 622 | #ifdef CONFIG_FB_TILEBLITTING | 628 | #ifdef CONFIG_FB_TILEBLITTING |
| @@ -726,6 +732,18 @@ struct fb_tile_ops { | |||
| 726 | from userspace */ | 732 | from userspace */ |
| 727 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ | 733 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ |
| 728 | 734 | ||
| 735 | /* A driver may set this flag to indicate that it does want a set_par to be | ||
| 736 | * called every time when fbcon_switch is executed. The advantage is that with | ||
| 737 | * this flag set you can really be shure that set_par is always called before | ||
| 738 | * any of the functions dependant on the correct hardware state or altering | ||
| 739 | * that state, even if you are using some broken X releases. The disadvantage | ||
| 740 | * is that it introduces unwanted delays to every console switch if set_par | ||
| 741 | * is slow. It is a good idea to try this flag in the drivers initialization | ||
| 742 | * code whenever there is a bug report related to switching between X and the | ||
| 743 | * framebuffer console. | ||
| 744 | */ | ||
| 745 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 | ||
| 746 | |||
| 729 | struct fb_info { | 747 | struct fb_info { |
| 730 | int node; | 748 | int node; |
| 731 | int flags; | 749 | int flags; |
| @@ -817,6 +835,18 @@ struct fb_info { | |||
| 817 | 835 | ||
| 818 | #endif | 836 | #endif |
| 819 | 837 | ||
| 838 | #if defined (__BIG_ENDIAN) | ||
| 839 | #define FB_LEFT_POS(bpp) (32 - bpp) | ||
| 840 | #define FB_SHIFT_HIGH(val, bits) ((val) >> (bits)) | ||
| 841 | #define FB_SHIFT_LOW(val, bits) ((val) << (bits)) | ||
| 842 | #define FB_BIT_NR(b) (7 - (b)) | ||
| 843 | #else | ||
| 844 | #define FB_LEFT_POS(bpp) (0) | ||
| 845 | #define FB_SHIFT_HIGH(val, bits) ((val) << (bits)) | ||
| 846 | #define FB_SHIFT_LOW(val, bits) ((val) >> (bits)) | ||
| 847 | #define FB_BIT_NR(b) (b) | ||
| 848 | #endif | ||
| 849 | |||
| 820 | /* | 850 | /* |
| 821 | * `Generic' versions of the frame buffer device operations | 851 | * `Generic' versions of the frame buffer device operations |
| 822 | */ | 852 | */ |
diff --git a/include/linux/file.h b/include/linux/file.h index d3b1a15d5f21..418b6101b59a 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
| @@ -33,13 +33,13 @@ struct fdtable { | |||
| 33 | * Open file table structure | 33 | * Open file table structure |
| 34 | */ | 34 | */ |
| 35 | struct files_struct { | 35 | struct files_struct { |
| 36 | atomic_t count; | 36 | atomic_t count; |
| 37 | spinlock_t file_lock; /* Protects all the below members. Nests inside tsk->alloc_lock */ | ||
| 38 | struct fdtable *fdt; | 37 | struct fdtable *fdt; |
| 39 | struct fdtable fdtab; | 38 | struct fdtable fdtab; |
| 40 | fd_set close_on_exec_init; | 39 | fd_set close_on_exec_init; |
| 41 | fd_set open_fds_init; | 40 | fd_set open_fds_init; |
| 42 | struct file * fd_array[NR_OPEN_DEFAULT]; | 41 | struct file * fd_array[NR_OPEN_DEFAULT]; |
| 42 | spinlock_t file_lock; /* Protects concurrent writers. Nests inside tsk->alloc_lock */ | ||
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | #define files_fdtable(files) (rcu_dereference((files)->fdt)) | 45 | #define files_fdtable(files) (rcu_dereference((files)->fdt)) |
diff --git a/include/linux/font.h b/include/linux/font.h index 8aac48c37f3d..53b129f07f6f 100644 --- a/include/linux/font.h +++ b/include/linux/font.h | |||
| @@ -31,7 +31,6 @@ struct font_desc { | |||
| 31 | #define SUN12x22_IDX 7 | 31 | #define SUN12x22_IDX 7 |
| 32 | #define ACORN8x8_IDX 8 | 32 | #define ACORN8x8_IDX 8 |
| 33 | #define MINI4x6_IDX 9 | 33 | #define MINI4x6_IDX 9 |
| 34 | #define RL_IDX 10 | ||
| 35 | 34 | ||
| 36 | extern const struct font_desc font_vga_8x8, | 35 | extern const struct font_desc font_vga_8x8, |
| 37 | font_vga_8x16, | 36 | font_vga_8x16, |
| @@ -42,7 +41,6 @@ extern const struct font_desc font_vga_8x8, | |||
| 42 | font_sun_8x16, | 41 | font_sun_8x16, |
| 43 | font_sun_12x22, | 42 | font_sun_12x22, |
| 44 | font_acorn_8x8, | 43 | font_acorn_8x8, |
| 45 | font_rl, | ||
| 46 | font_mini_4x6; | 44 | font_mini_4x6; |
| 47 | 45 | ||
| 48 | /* Find a font with a specific name */ | 46 | /* Find a font with a specific name */ |
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 114d5d59f695..934aa9bda481 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | * Definitions for any platform device related flags or structures for | 4 | * Definitions for any platform device related flags or structures for |
| 5 | * Freescale processor devices | 5 | * Freescale processor devices |
| 6 | * | 6 | * |
| 7 | * Maintainer: Kumar Gala (kumar.gala@freescale.com) | 7 | * Maintainer: Kumar Gala <galak@kernel.crashing.org> |
| 8 | * | 8 | * |
| 9 | * Copyright 2004 Freescale Semiconductor, Inc | 9 | * Copyright 2004 Freescale Semiconductor, Inc |
| 10 | * | 10 | * |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 8eeaa53a68c9..eef5ccdcd731 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
| @@ -78,7 +78,7 @@ struct hd_struct { | |||
| 78 | sector_t start_sect; | 78 | sector_t start_sect; |
| 79 | sector_t nr_sects; | 79 | sector_t nr_sects; |
| 80 | struct kobject kobj; | 80 | struct kobject kobj; |
| 81 | unsigned ios[2], sectors[2]; | 81 | unsigned ios[2], sectors[2]; /* READs and WRITEs */ |
| 82 | int policy, partno; | 82 | int policy, partno; |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| @@ -89,7 +89,7 @@ struct hd_struct { | |||
| 89 | #define GENHD_FL_SUPPRESS_PARTITION_INFO 32 | 89 | #define GENHD_FL_SUPPRESS_PARTITION_INFO 32 |
| 90 | 90 | ||
| 91 | struct disk_stats { | 91 | struct disk_stats { |
| 92 | unsigned sectors[2]; | 92 | unsigned sectors[2]; /* READs and WRITEs */ |
| 93 | unsigned ios[2]; | 93 | unsigned ios[2]; |
| 94 | unsigned merges[2]; | 94 | unsigned merges[2]; |
| 95 | unsigned ticks[2]; | 95 | unsigned ticks[2]; |
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index c3779432a723..8b2eab90abb6 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
| @@ -11,9 +11,16 @@ struct vm_area_struct; | |||
| 11 | /* | 11 | /* |
| 12 | * GFP bitmasks.. | 12 | * GFP bitmasks.. |
| 13 | */ | 13 | */ |
| 14 | /* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */ | 14 | /* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low three bits) */ |
| 15 | #define __GFP_DMA ((__force gfp_t)0x01u) | 15 | #define __GFP_DMA ((__force gfp_t)0x01u) |
| 16 | #define __GFP_HIGHMEM ((__force gfp_t)0x02u) | 16 | #define __GFP_HIGHMEM ((__force gfp_t)0x02u) |
| 17 | #ifdef CONFIG_DMA_IS_DMA32 | ||
| 18 | #define __GFP_DMA32 ((__force gfp_t)0x01) /* ZONE_DMA is ZONE_DMA32 */ | ||
| 19 | #elif BITS_PER_LONG < 64 | ||
| 20 | #define __GFP_DMA32 ((__force gfp_t)0x00) /* ZONE_NORMAL is ZONE_DMA32 */ | ||
| 21 | #else | ||
| 22 | #define __GFP_DMA32 ((__force gfp_t)0x04) /* Has own ZONE_DMA32 */ | ||
| 23 | #endif | ||
| 17 | 24 | ||
| 18 | /* | 25 | /* |
| 19 | * Action modifiers - doesn't change the zoning | 26 | * Action modifiers - doesn't change the zoning |
| @@ -39,8 +46,7 @@ struct vm_area_struct; | |||
| 39 | #define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */ | 46 | #define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */ |
| 40 | #define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */ | 47 | #define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */ |
| 41 | #define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */ | 48 | #define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */ |
| 42 | #define __GFP_NORECLAIM ((__force gfp_t)0x20000u) /* No realy zone reclaim during allocation */ | 49 | #define __GFP_HARDWALL ((__force gfp_t)0x20000u) /* Enforce hardwall cpuset memory allocs */ |
| 43 | #define __GFP_HARDWALL ((__force gfp_t)0x40000u) /* Enforce hardwall cpuset memory allocs */ | ||
| 44 | 50 | ||
| 45 | #define __GFP_BITS_SHIFT 20 /* Room for 20 __GFP_FOO bits */ | 51 | #define __GFP_BITS_SHIFT 20 /* Room for 20 __GFP_FOO bits */ |
| 46 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) | 52 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) |
| @@ -49,7 +55,7 @@ struct vm_area_struct; | |||
| 49 | #define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \ | 55 | #define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \ |
| 50 | __GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \ | 56 | __GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \ |
| 51 | __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \ | 57 | __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \ |
| 52 | __GFP_NOMEMALLOC|__GFP_NORECLAIM|__GFP_HARDWALL) | 58 | __GFP_NOMEMALLOC|__GFP_HARDWALL) |
| 53 | 59 | ||
| 54 | #define GFP_ATOMIC (__GFP_HIGH) | 60 | #define GFP_ATOMIC (__GFP_HIGH) |
| 55 | #define GFP_NOIO (__GFP_WAIT) | 61 | #define GFP_NOIO (__GFP_WAIT) |
| @@ -64,7 +70,16 @@ struct vm_area_struct; | |||
| 64 | 70 | ||
| 65 | #define GFP_DMA __GFP_DMA | 71 | #define GFP_DMA __GFP_DMA |
| 66 | 72 | ||
| 67 | #define gfp_zone(mask) ((__force int)((mask) & (__force gfp_t)GFP_ZONEMASK)) | 73 | /* 4GB DMA on some platforms */ |
| 74 | #define GFP_DMA32 __GFP_DMA32 | ||
| 75 | |||
| 76 | |||
| 77 | static inline int gfp_zone(gfp_t gfp) | ||
| 78 | { | ||
| 79 | int zone = GFP_ZONEMASK & (__force int) gfp; | ||
| 80 | BUG_ON(zone >= GFP_ZONETYPES); | ||
| 81 | return zone; | ||
| 82 | } | ||
| 68 | 83 | ||
| 69 | /* | 84 | /* |
| 70 | * There is only one page-allocator function, and two main namespaces to | 85 | * There is only one page-allocator function, and two main namespaces to |
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 5912874ca83c..71d2b8a723b9 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
| @@ -90,6 +90,8 @@ extern void synchronize_irq(unsigned int irq); | |||
| 90 | #define nmi_enter() irq_enter() | 90 | #define nmi_enter() irq_enter() |
| 91 | #define nmi_exit() sub_preempt_count(HARDIRQ_OFFSET) | 91 | #define nmi_exit() sub_preempt_count(HARDIRQ_OFFSET) |
| 92 | 92 | ||
| 93 | struct task_struct; | ||
| 94 | |||
| 93 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING | 95 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING |
| 94 | static inline void account_user_vtime(struct task_struct *tsk) | 96 | static inline void account_user_vtime(struct task_struct *tsk) |
| 95 | { | 97 | { |
diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h index b5d660089de4..2b54eac738ea 100644 --- a/include/linux/hdreg.h +++ b/include/linux/hdreg.h | |||
| @@ -80,10 +80,12 @@ | |||
| 80 | /* | 80 | /* |
| 81 | * Define standard taskfile in/out register | 81 | * Define standard taskfile in/out register |
| 82 | */ | 82 | */ |
| 83 | #define IDE_TASKFILE_STD_OUT_FLAGS 0xFE | ||
| 84 | #define IDE_TASKFILE_STD_IN_FLAGS 0xFE | 83 | #define IDE_TASKFILE_STD_IN_FLAGS 0xFE |
| 85 | #define IDE_HOB_STD_OUT_FLAGS 0x3C | ||
| 86 | #define IDE_HOB_STD_IN_FLAGS 0x3C | 84 | #define IDE_HOB_STD_IN_FLAGS 0x3C |
| 85 | #ifndef __KERNEL__ | ||
| 86 | #define IDE_TASKFILE_STD_OUT_FLAGS 0xFE | ||
| 87 | #define IDE_HOB_STD_OUT_FLAGS 0x3C | ||
| 88 | #endif | ||
| 87 | 89 | ||
| 88 | typedef unsigned char task_ioreg_t; | 90 | typedef unsigned char task_ioreg_t; |
| 89 | typedef unsigned long sata_ioreg_t; | 91 | typedef unsigned long sata_ioreg_t; |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 0cea162b08c0..1056717ee501 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
| @@ -102,8 +102,8 @@ static inline unsigned long hugetlb_total_pages(void) | |||
| 102 | #define hugetlb_fault(mm, vma, addr, write) ({ BUG(); 0; }) | 102 | #define hugetlb_fault(mm, vma, addr, write) ({ BUG(); 0; }) |
| 103 | 103 | ||
| 104 | #ifndef HPAGE_MASK | 104 | #ifndef HPAGE_MASK |
| 105 | #define HPAGE_MASK 0 /* Keep the compiler happy */ | 105 | #define HPAGE_MASK PAGE_MASK /* Keep the compiler happy */ |
| 106 | #define HPAGE_SIZE 0 | 106 | #define HPAGE_SIZE PAGE_SIZE |
| 107 | #endif | 107 | #endif |
| 108 | 108 | ||
| 109 | #endif /* !CONFIG_HUGETLB_PAGE */ | 109 | #endif /* !CONFIG_HUGETLB_PAGE */ |
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h index 74abaecdb572..006c81ef4d50 100644 --- a/include/linux/i2c-id.h +++ b/include/linux/i2c-id.h | |||
| @@ -107,6 +107,8 @@ | |||
| 107 | #define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ | 107 | #define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ |
| 108 | #define I2C_DRIVERID_SAA7127 72 /* saa7124 video encoder */ | 108 | #define I2C_DRIVERID_SAA7127 72 /* saa7124 video encoder */ |
| 109 | #define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ | 109 | #define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ |
| 110 | #define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */ | ||
| 111 | #define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */ | ||
| 110 | 112 | ||
| 111 | #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ | 113 | #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ |
| 112 | #define I2C_DRIVERID_EXP1 0xF1 | 114 | #define I2C_DRIVERID_EXP1 0xF1 |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 77ae55d4c13c..7b6a6a58e465 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -23,17 +23,6 @@ | |||
| 23 | #include <asm/io.h> | 23 | #include <asm/io.h> |
| 24 | #include <asm/semaphore.h> | 24 | #include <asm/semaphore.h> |
| 25 | 25 | ||
| 26 | /* | ||
| 27 | * This is the multiple IDE interface driver, as evolved from hd.c. | ||
| 28 | * It supports up to four IDE interfaces, on one or more IRQs (usually 14 & 15). | ||
| 29 | * There can be up to two drives per interface, as per the ATA-2 spec. | ||
| 30 | * | ||
| 31 | * Primary i/f: ide0: major=3; (hda) minor=0; (hdb) minor=64 | ||
| 32 | * Secondary i/f: ide1: major=22; (hdc or hd1a) minor=0; (hdd or hd1b) minor=64 | ||
| 33 | * Tertiary i/f: ide2: major=33; (hde) minor=0; (hdf) minor=64 | ||
| 34 | * Quaternary i/f: ide3: major=34; (hdg) minor=0; (hdh) minor=64 | ||
| 35 | */ | ||
| 36 | |||
| 37 | /****************************************************************************** | 26 | /****************************************************************************** |
| 38 | * IDE driver configuration options (play with these as desired): | 27 | * IDE driver configuration options (play with these as desired): |
| 39 | * | 28 | * |
| @@ -193,11 +182,6 @@ typedef unsigned char byte; /* used everywhere */ | |||
| 193 | #define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */ | 182 | #define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */ |
| 194 | #define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */ | 183 | #define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */ |
| 195 | 184 | ||
| 196 | #define HOST(hwif,chipset) \ | ||
| 197 | { \ | ||
| 198 | return ((hwif)->chipset == chipset) ? 1 : 0; \ | ||
| 199 | } | ||
| 200 | |||
| 201 | /* | 185 | /* |
| 202 | * Check for an interrupt and acknowledge the interrupt status | 186 | * Check for an interrupt and acknowledge the interrupt status |
| 203 | */ | 187 | */ |
| @@ -391,45 +375,6 @@ typedef union { | |||
| 391 | } ata_nsector_t, ata_data_t, atapi_bcount_t, ata_index_t; | 375 | } ata_nsector_t, ata_data_t, atapi_bcount_t, ata_index_t; |
| 392 | 376 | ||
| 393 | /* | 377 | /* |
| 394 | * ATA-IDE Error Register | ||
| 395 | * | ||
| 396 | * mark : Bad address mark | ||
| 397 | * tzero : Couldn't find track 0 | ||
| 398 | * abrt : Aborted Command | ||
| 399 | * mcr : Media Change Request | ||
| 400 | * id : ID field not found | ||
| 401 | * mce : Media Change Event | ||
| 402 | * ecc : Uncorrectable ECC error | ||
| 403 | * bdd : dual meaing | ||
| 404 | */ | ||
| 405 | typedef union { | ||
| 406 | unsigned all :8; | ||
| 407 | struct { | ||
| 408 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
| 409 | unsigned mark :1; | ||
| 410 | unsigned tzero :1; | ||
| 411 | unsigned abrt :1; | ||
| 412 | unsigned mcr :1; | ||
| 413 | unsigned id :1; | ||
| 414 | unsigned mce :1; | ||
| 415 | unsigned ecc :1; | ||
| 416 | unsigned bdd :1; | ||
| 417 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
| 418 | unsigned bdd :1; | ||
| 419 | unsigned ecc :1; | ||
| 420 | unsigned mce :1; | ||
| 421 | unsigned id :1; | ||
| 422 | unsigned mcr :1; | ||
| 423 | unsigned abrt :1; | ||
| 424 | unsigned tzero :1; | ||
| 425 | unsigned mark :1; | ||
| 426 | #else | ||
| 427 | #error "Please fix <asm/byteorder.h>" | ||
| 428 | #endif | ||
| 429 | } b; | ||
| 430 | } ata_error_t; | ||
| 431 | |||
| 432 | /* | ||
| 433 | * ATA-IDE Select Register, aka Device-Head | 378 | * ATA-IDE Select Register, aka Device-Head |
| 434 | * | 379 | * |
| 435 | * head : always zeros here | 380 | * head : always zeros here |
| @@ -504,39 +449,6 @@ typedef union { | |||
| 504 | } ata_status_t, atapi_status_t; | 449 | } ata_status_t, atapi_status_t; |
| 505 | 450 | ||
| 506 | /* | 451 | /* |
| 507 | * ATA-IDE Control Register | ||
| 508 | * | ||
| 509 | * bit0 : Should be set to zero | ||
| 510 | * nIEN : device INTRQ to host | ||
| 511 | * SRST : host soft reset bit | ||
| 512 | * bit3 : ATA-2 thingy, Should be set to 1 | ||
| 513 | * reserved456 : Reserved | ||
| 514 | * HOB : 48-bit address ordering, High Ordered Bit | ||
| 515 | */ | ||
| 516 | typedef union { | ||
| 517 | unsigned all : 8; | ||
| 518 | struct { | ||
| 519 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
| 520 | unsigned bit0 : 1; | ||
| 521 | unsigned nIEN : 1; | ||
| 522 | unsigned SRST : 1; | ||
| 523 | unsigned bit3 : 1; | ||
| 524 | unsigned reserved456 : 3; | ||
| 525 | unsigned HOB : 1; | ||
| 526 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
| 527 | unsigned HOB : 1; | ||
| 528 | unsigned reserved456 : 3; | ||
| 529 | unsigned bit3 : 1; | ||
| 530 | unsigned SRST : 1; | ||
| 531 | unsigned nIEN : 1; | ||
| 532 | unsigned bit0 : 1; | ||
| 533 | #else | ||
| 534 | #error "Please fix <asm/byteorder.h>" | ||
| 535 | #endif | ||
| 536 | } b; | ||
| 537 | } ata_control_t; | ||
| 538 | |||
| 539 | /* | ||
| 540 | * ATAPI Feature Register | 452 | * ATAPI Feature Register |
| 541 | * | 453 | * |
| 542 | * dma : Using DMA or PIO | 454 | * dma : Using DMA or PIO |
| @@ -618,39 +530,6 @@ typedef union { | |||
| 618 | } atapi_error_t; | 530 | } atapi_error_t; |
| 619 | 531 | ||
| 620 | /* | 532 | /* |
| 621 | * ATAPI floppy Drive Select Register | ||
| 622 | * | ||
| 623 | * sam_lun : Logical unit number | ||
| 624 | * reserved3 : Reserved | ||
| 625 | * drv : The responding drive will be drive 0 (0) or drive 1 (1) | ||
| 626 | * one5 : Should be set to 1 | ||
| 627 | * reserved6 : Reserved | ||
| 628 | * one7 : Should be set to 1 | ||
| 629 | */ | ||
| 630 | typedef union { | ||
| 631 | unsigned all :8; | ||
| 632 | struct { | ||
| 633 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
| 634 | unsigned sam_lun :3; | ||
| 635 | unsigned reserved3 :1; | ||
| 636 | unsigned drv :1; | ||
| 637 | unsigned one5 :1; | ||
| 638 | unsigned reserved6 :1; | ||
| 639 | unsigned one7 :1; | ||
| 640 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
| 641 | unsigned one7 :1; | ||
| 642 | unsigned reserved6 :1; | ||
| 643 | unsigned one5 :1; | ||
| 644 | unsigned drv :1; | ||
| 645 | unsigned reserved3 :1; | ||
| 646 | unsigned sam_lun :3; | ||
| 647 | #else | ||
| 648 | #error "Please fix <asm/byteorder.h>" | ||
| 649 | #endif | ||
| 650 | } b; | ||
| 651 | } atapi_select_t; | ||
| 652 | |||
| 653 | /* | ||
| 654 | * Status returned from various ide_ functions | 533 | * Status returned from various ide_ functions |
| 655 | */ | 534 | */ |
| 656 | typedef enum { | 535 | typedef enum { |
| @@ -1089,9 +968,11 @@ enum { | |||
| 1089 | 968 | ||
| 1090 | /* | 969 | /* |
| 1091 | * Subdrivers support. | 970 | * Subdrivers support. |
| 971 | * | ||
| 972 | * The gendriver.owner field should be set to the module owner of this driver. | ||
| 973 | * The gendriver.name field should be set to the name of this driver | ||
| 1092 | */ | 974 | */ |
| 1093 | typedef struct ide_driver_s { | 975 | typedef struct ide_driver_s { |
| 1094 | struct module *owner; | ||
| 1095 | const char *version; | 976 | const char *version; |
| 1096 | u8 media; | 977 | u8 media; |
| 1097 | unsigned supports_dsc_overlap : 1; | 978 | unsigned supports_dsc_overlap : 1; |
| @@ -1099,10 +980,7 @@ typedef struct ide_driver_s { | |||
| 1099 | int (*end_request)(ide_drive_t *, int, int); | 980 | int (*end_request)(ide_drive_t *, int, int); |
| 1100 | ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8); | 981 | ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8); |
| 1101 | ide_startstop_t (*abort)(ide_drive_t *, struct request *rq); | 982 | ide_startstop_t (*abort)(ide_drive_t *, struct request *rq); |
| 1102 | int (*ioctl)(ide_drive_t *, struct inode *, struct file *, unsigned int, unsigned long); | ||
| 1103 | ide_proc_entry_t *proc; | 983 | ide_proc_entry_t *proc; |
| 1104 | void (*ata_prebuilder)(ide_drive_t *); | ||
| 1105 | void (*atapi_prebuilder)(ide_drive_t *); | ||
| 1106 | struct device_driver gen_driver; | 984 | struct device_driver gen_driver; |
| 1107 | } ide_driver_t; | 985 | } ide_driver_t; |
| 1108 | 986 | ||
| @@ -1199,37 +1077,11 @@ extern u64 ide_get_error_location(ide_drive_t *, char *); | |||
| 1199 | */ | 1077 | */ |
| 1200 | typedef enum { | 1078 | typedef enum { |
| 1201 | ide_wait, /* insert rq at end of list, and wait for it */ | 1079 | ide_wait, /* insert rq at end of list, and wait for it */ |
| 1202 | ide_next, /* insert rq immediately after current request */ | ||
| 1203 | ide_preempt, /* insert rq in front of current request */ | 1080 | ide_preempt, /* insert rq in front of current request */ |
| 1204 | ide_head_wait, /* insert rq in front of current request and wait for it */ | 1081 | ide_head_wait, /* insert rq in front of current request and wait for it */ |
| 1205 | ide_end /* insert rq at end of list, but don't wait for it */ | 1082 | ide_end /* insert rq at end of list, but don't wait for it */ |
| 1206 | } ide_action_t; | 1083 | } ide_action_t; |
| 1207 | 1084 | ||
| 1208 | /* | ||
| 1209 | * This function issues a special IDE device request | ||
| 1210 | * onto the request queue. | ||
| 1211 | * | ||
| 1212 | * If action is ide_wait, then the rq is queued at the end of the | ||
| 1213 | * request queue, and the function sleeps until it has been processed. | ||
| 1214 | * This is for use when invoked from an ioctl handler. | ||
| 1215 | * | ||
| 1216 | * If action is ide_preempt, then the rq is queued at the head of | ||
| 1217 | * the request queue, displacing the currently-being-processed | ||
| 1218 | * request and this function returns immediately without waiting | ||
| 1219 | * for the new rq to be completed. This is VERY DANGEROUS, and is | ||
| 1220 | * intended for careful use by the ATAPI tape/cdrom driver code. | ||
| 1221 | * | ||
| 1222 | * If action is ide_next, then the rq is queued immediately after | ||
| 1223 | * the currently-being-processed-request (if any), and the function | ||
| 1224 | * returns without waiting for the new rq to be completed. As above, | ||
| 1225 | * This is VERY DANGEROUS, and is intended for careful use by the | ||
| 1226 | * ATAPI tape/cdrom driver code. | ||
| 1227 | * | ||
| 1228 | * If action is ide_end, then the rq is queued at the end of the | ||
| 1229 | * request queue, and the function returns immediately without waiting | ||
| 1230 | * for the new rq to be completed. This is again intended for careful | ||
| 1231 | * use by the ATAPI tape/cdrom driver code. | ||
| 1232 | */ | ||
| 1233 | extern int ide_do_drive_cmd(ide_drive_t *, struct request *, ide_action_t); | 1085 | extern int ide_do_drive_cmd(ide_drive_t *, struct request *, ide_action_t); |
| 1234 | 1086 | ||
| 1235 | /* | 1087 | /* |
| @@ -1322,14 +1174,14 @@ extern int ide_spin_wait_hwgroup(ide_drive_t *); | |||
| 1322 | extern void ide_timer_expiry(unsigned long); | 1174 | extern void ide_timer_expiry(unsigned long); |
| 1323 | extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs); | 1175 | extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs); |
| 1324 | extern void do_ide_request(request_queue_t *); | 1176 | extern void do_ide_request(request_queue_t *); |
| 1325 | extern void ide_init_subdrivers(void); | ||
| 1326 | 1177 | ||
| 1327 | void ide_init_disk(struct gendisk *, ide_drive_t *); | 1178 | void ide_init_disk(struct gendisk *, ide_drive_t *); |
| 1328 | 1179 | ||
| 1329 | extern int ideprobe_init(void); | 1180 | extern int ideprobe_init(void); |
| 1330 | 1181 | ||
| 1331 | extern void ide_scan_pcibus(int scan_direction) __init; | 1182 | extern void ide_scan_pcibus(int scan_direction) __init; |
| 1332 | extern int ide_pci_register_driver(struct pci_driver *driver); | 1183 | extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *owner); |
| 1184 | #define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE) | ||
| 1333 | extern void ide_pci_unregister_driver(struct pci_driver *driver); | 1185 | extern void ide_pci_unregister_driver(struct pci_driver *driver); |
| 1334 | void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *); | 1186 | void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *); |
| 1335 | extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d); | 1187 | extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d); |
| @@ -1394,6 +1246,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *); | |||
| 1394 | #define GOOD_DMA_DRIVE 1 | 1246 | #define GOOD_DMA_DRIVE 1 |
| 1395 | 1247 | ||
| 1396 | #ifdef CONFIG_BLK_DEV_IDEDMA | 1248 | #ifdef CONFIG_BLK_DEV_IDEDMA |
| 1249 | struct drive_list_entry { | ||
| 1250 | const char *id_model; | ||
| 1251 | const char *id_firmware; | ||
| 1252 | }; | ||
| 1253 | |||
| 1254 | int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *); | ||
| 1397 | int __ide_dma_bad_drive(ide_drive_t *); | 1255 | int __ide_dma_bad_drive(ide_drive_t *); |
| 1398 | int __ide_dma_good_drive(ide_drive_t *); | 1256 | int __ide_dma_good_drive(ide_drive_t *); |
| 1399 | int ide_use_dma(ide_drive_t *); | 1257 | int ide_use_dma(ide_drive_t *); |
diff --git a/include/linux/idr.h b/include/linux/idr.h index 7fb3ff9c7b0e..d37c8d808b0f 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h | |||
| @@ -8,6 +8,10 @@ | |||
| 8 | * Small id to pointer translation service avoiding fixed sized | 8 | * Small id to pointer translation service avoiding fixed sized |
| 9 | * tables. | 9 | * tables. |
| 10 | */ | 10 | */ |
| 11 | |||
| 12 | #ifndef __IDR_H__ | ||
| 13 | #define __IDR_H__ | ||
| 14 | |||
| 11 | #include <linux/types.h> | 15 | #include <linux/types.h> |
| 12 | #include <linux/bitops.h> | 16 | #include <linux/bitops.h> |
| 13 | 17 | ||
| @@ -77,3 +81,5 @@ int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); | |||
| 77 | void idr_remove(struct idr *idp, int id); | 81 | void idr_remove(struct idr *idp, int id); |
| 78 | void idr_destroy(struct idr *idp); | 82 | void idr_destroy(struct idr *idp); |
| 79 | void idr_init(struct idr *idp); | 83 | void idr_init(struct idr *idp); |
| 84 | |||
| 85 | #endif /* __IDR_H__ */ | ||
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h index d21c305c6c64..fe26d431de87 100644 --- a/include/linux/if_ether.h +++ b/include/linux/if_ether.h | |||
| @@ -21,6 +21,8 @@ | |||
| 21 | #ifndef _LINUX_IF_ETHER_H | 21 | #ifndef _LINUX_IF_ETHER_H |
| 22 | #define _LINUX_IF_ETHER_H | 22 | #define _LINUX_IF_ETHER_H |
| 23 | 23 | ||
| 24 | #include <linux/types.h> | ||
| 25 | |||
| 24 | /* | 26 | /* |
| 25 | * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble | 27 | * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble |
| 26 | * and FCS/CRC (frame check sequence). | 28 | * and FCS/CRC (frame check sequence). |
| @@ -100,7 +102,7 @@ | |||
| 100 | struct ethhdr { | 102 | struct ethhdr { |
| 101 | unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ | 103 | unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ |
| 102 | unsigned char h_source[ETH_ALEN]; /* source ether addr */ | 104 | unsigned char h_source[ETH_ALEN]; /* source ether addr */ |
| 103 | unsigned short h_proto; /* packet type ID field */ | 105 | __be16 h_proto; /* packet type ID field */ |
| 104 | } __attribute__((packed)); | 106 | } __attribute__((packed)); |
| 105 | 107 | ||
| 106 | #ifdef __KERNEL__ | 108 | #ifdef __KERNEL__ |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 68ab5f2ab9cd..dcfd2ecccb5d 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
| @@ -51,7 +51,6 @@ | |||
| 51 | .page_table_lock = SPIN_LOCK_UNLOCKED, \ | 51 | .page_table_lock = SPIN_LOCK_UNLOCKED, \ |
| 52 | .mmlist = LIST_HEAD_INIT(name.mmlist), \ | 52 | .mmlist = LIST_HEAD_INIT(name.mmlist), \ |
| 53 | .cpu_vm_mask = CPU_MASK_ALL, \ | 53 | .cpu_vm_mask = CPU_MASK_ALL, \ |
| 54 | .default_kioctx = INIT_KIOCTX(name.default_kioctx, name), \ | ||
| 55 | } | 54 | } |
| 56 | 55 | ||
| 57 | #define INIT_SIGNALS(sig) { \ | 56 | #define INIT_SIGNALS(sig) { \ |
diff --git a/include/linux/inotify.h b/include/linux/inotify.h index ee5b239092ed..267c88b5f742 100644 --- a/include/linux/inotify.h +++ b/include/linux/inotify.h | |||
| @@ -47,6 +47,8 @@ struct inotify_event { | |||
| 47 | #define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ | 47 | #define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ |
| 48 | 48 | ||
| 49 | /* special flags */ | 49 | /* special flags */ |
| 50 | #define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ | ||
| 51 | #define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ | ||
| 50 | #define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ | 52 | #define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ |
| 51 | #define IN_ISDIR 0x40000000 /* event occurred against dir */ | 53 | #define IN_ISDIR 0x40000000 /* event occurred against dir */ |
| 52 | #define IN_ONESHOT 0x80000000 /* only send event once */ | 54 | #define IN_ONESHOT 0x80000000 /* only send event once */ |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 0a90205184b0..41f150a3d2dd 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include <linux/preempt.h> | 9 | #include <linux/preempt.h> |
| 10 | #include <linux/cpumask.h> | 10 | #include <linux/cpumask.h> |
| 11 | #include <linux/hardirq.h> | 11 | #include <linux/hardirq.h> |
| 12 | #include <linux/sched.h> | ||
| 12 | #include <asm/atomic.h> | 13 | #include <asm/atomic.h> |
| 13 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
| 14 | #include <asm/system.h> | 15 | #include <asm/system.h> |
diff --git a/include/linux/ipv6_route.h b/include/linux/ipv6_route.h index e2f935038013..d7c41d1d706a 100644 --- a/include/linux/ipv6_route.h +++ b/include/linux/ipv6_route.h | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | fallback, no routers on link */ | 18 | fallback, no routers on link */ |
| 19 | #define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ | 19 | #define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ |
| 20 | #define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ | 20 | #define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ |
| 21 | #define RTF_ANYCAST 0x00100000 /* Anycast */ | ||
| 21 | 22 | ||
| 22 | #define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ | 23 | #define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ |
| 23 | #define RTF_EXPIRES 0x00400000 | 24 | #define RTF_EXPIRES 0x00400000 |
diff --git a/include/linux/irq.h b/include/linux/irq.h index c516382fbec2..f04ba20712a2 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include <linux/config.h> | 12 | #include <linux/config.h> |
| 13 | #include <asm/smp.h> /* cpu_online_map */ | 13 | #include <linux/smp.h> |
| 14 | 14 | ||
| 15 | #if !defined(CONFIG_ARCH_S390) | 15 | #if !defined(CONFIG_ARCH_S390) |
| 16 | 16 | ||
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index aa56172c6fed..dcde7adfdce5 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
| @@ -16,8 +16,6 @@ | |||
| 16 | #ifndef _LINUX_JBD_H | 16 | #ifndef _LINUX_JBD_H |
| 17 | #define _LINUX_JBD_H | 17 | #define _LINUX_JBD_H |
| 18 | 18 | ||
| 19 | #if defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE) || !defined(__KERNEL__) | ||
| 20 | |||
| 21 | /* Allow this file to be included directly into e2fsprogs */ | 19 | /* Allow this file to be included directly into e2fsprogs */ |
| 22 | #ifndef __KERNEL__ | 20 | #ifndef __KERNEL__ |
| 23 | #include "jfs_compat.h" | 21 | #include "jfs_compat.h" |
| @@ -1083,19 +1081,4 @@ extern int jbd_blocks_per_page(struct inode *inode); | |||
| 1083 | 1081 | ||
| 1084 | #endif /* __KERNEL__ */ | 1082 | #endif /* __KERNEL__ */ |
| 1085 | 1083 | ||
| 1086 | #endif /* CONFIG_JBD || CONFIG_JBD_MODULE || !__KERNEL__ */ | ||
| 1087 | |||
| 1088 | /* | ||
| 1089 | * Compatibility no-ops which allow the kernel to compile without CONFIG_JBD | ||
| 1090 | * go here. | ||
| 1091 | */ | ||
| 1092 | |||
| 1093 | #if defined(__KERNEL__) && !(defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE)) | ||
| 1094 | |||
| 1095 | #define J_ASSERT(expr) do {} while (0) | ||
| 1096 | #define J_ASSERT_BH(bh, expr) do {} while (0) | ||
| 1097 | #define buffer_jbd(bh) 0 | ||
| 1098 | #define journal_buffer_journal_lru(bh) 0 | ||
| 1099 | |||
| 1100 | #endif /* defined(__KERNEL__) && !defined(CONFIG_JBD) */ | ||
| 1101 | #endif /* _LINUX_JBD_H */ | 1084 | #endif /* _LINUX_JBD_H */ |
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index e373c4a9de53..c03f2dc933de 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
| 38 | #include <linux/rcupdate.h> | 38 | #include <linux/rcupdate.h> |
| 39 | 39 | ||
| 40 | #ifdef CONFIG_KPROBES | ||
| 40 | #include <asm/kprobes.h> | 41 | #include <asm/kprobes.h> |
| 41 | 42 | ||
| 42 | /* kprobe_status settings */ | 43 | /* kprobe_status settings */ |
| @@ -147,7 +148,6 @@ struct kretprobe_instance { | |||
| 147 | struct task_struct *task; | 148 | struct task_struct *task; |
| 148 | }; | 149 | }; |
| 149 | 150 | ||
| 150 | #ifdef CONFIG_KPROBES | ||
| 151 | extern spinlock_t kretprobe_lock; | 151 | extern spinlock_t kretprobe_lock; |
| 152 | extern int arch_prepare_kprobe(struct kprobe *p); | 152 | extern int arch_prepare_kprobe(struct kprobe *p); |
| 153 | extern void arch_copy_kprobe(struct kprobe *p); | 153 | extern void arch_copy_kprobe(struct kprobe *p); |
| @@ -158,6 +158,7 @@ extern int arch_init_kprobes(void); | |||
| 158 | extern void show_registers(struct pt_regs *regs); | 158 | extern void show_registers(struct pt_regs *regs); |
| 159 | extern kprobe_opcode_t *get_insn_slot(void); | 159 | extern kprobe_opcode_t *get_insn_slot(void); |
| 160 | extern void free_insn_slot(kprobe_opcode_t *slot); | 160 | extern void free_insn_slot(kprobe_opcode_t *slot); |
| 161 | extern void kprobes_inc_nmissed_count(struct kprobe *p); | ||
| 161 | 162 | ||
| 162 | /* Get the kprobe at this addr (if any) - called with preemption disabled */ | 163 | /* Get the kprobe at this addr (if any) - called with preemption disabled */ |
| 163 | struct kprobe *get_kprobe(void *addr); | 164 | struct kprobe *get_kprobe(void *addr); |
| @@ -195,6 +196,11 @@ void add_rp_inst(struct kretprobe_instance *ri); | |||
| 195 | void kprobe_flush_task(struct task_struct *tk); | 196 | void kprobe_flush_task(struct task_struct *tk); |
| 196 | void recycle_rp_inst(struct kretprobe_instance *ri); | 197 | void recycle_rp_inst(struct kretprobe_instance *ri); |
| 197 | #else /* CONFIG_KPROBES */ | 198 | #else /* CONFIG_KPROBES */ |
| 199 | |||
| 200 | #define __kprobes /**/ | ||
| 201 | struct jprobe; | ||
| 202 | struct kretprobe; | ||
| 203 | |||
| 198 | static inline struct kprobe *kprobe_running(void) | 204 | static inline struct kprobe *kprobe_running(void) |
| 199 | { | 205 | { |
| 200 | return NULL; | 206 | return NULL; |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 6f0752219f64..41ea7dbc1755 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | #include <linux/delay.h> | 29 | #include <linux/delay.h> |
| 30 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
| 31 | #include <linux/pci.h> | 31 | #include <linux/pci.h> |
| 32 | #include <linux/dma-mapping.h> | ||
| 32 | #include <asm/io.h> | 33 | #include <asm/io.h> |
| 33 | #include <linux/ata.h> | 34 | #include <linux/ata.h> |
| 34 | #include <linux/workqueue.h> | 35 | #include <linux/workqueue.h> |
| @@ -58,6 +59,8 @@ | |||
| 58 | #define VPRINTK(fmt, args...) | 59 | #define VPRINTK(fmt, args...) |
| 59 | #endif /* ATA_DEBUG */ | 60 | #endif /* ATA_DEBUG */ |
| 60 | 61 | ||
| 62 | #define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __FUNCTION__, ## args) | ||
| 63 | |||
| 61 | #ifdef ATA_NDEBUG | 64 | #ifdef ATA_NDEBUG |
| 62 | #define assert(expr) | 65 | #define assert(expr) |
| 63 | #else | 66 | #else |
| @@ -118,6 +121,8 @@ enum { | |||
| 118 | ATA_FLAG_PIO_DMA = (1 << 8), /* PIO cmds via DMA */ | 121 | ATA_FLAG_PIO_DMA = (1 << 8), /* PIO cmds via DMA */ |
| 119 | ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once | 122 | ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once |
| 120 | * proper HSM is in place. */ | 123 | * proper HSM is in place. */ |
| 124 | ATA_FLAG_DEBUGMSG = (1 << 10), | ||
| 125 | ATA_FLAG_NO_ATAPI = (1 << 11), /* No ATAPI support */ | ||
| 121 | 126 | ||
| 122 | ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */ | 127 | ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */ |
| 123 | ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */ | 128 | ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */ |
| @@ -398,12 +403,13 @@ struct ata_port_operations { | |||
| 398 | }; | 403 | }; |
| 399 | 404 | ||
| 400 | struct ata_port_info { | 405 | struct ata_port_info { |
| 401 | struct scsi_host_template *sht; | 406 | struct scsi_host_template *sht; |
| 402 | unsigned long host_flags; | 407 | unsigned long host_flags; |
| 403 | unsigned long pio_mask; | 408 | unsigned long pio_mask; |
| 404 | unsigned long mwdma_mask; | 409 | unsigned long mwdma_mask; |
| 405 | unsigned long udma_mask; | 410 | unsigned long udma_mask; |
| 406 | const struct ata_port_operations *port_ops; | 411 | const struct ata_port_operations *port_ops; |
| 412 | void *private_data; | ||
| 407 | }; | 413 | }; |
| 408 | 414 | ||
| 409 | struct ata_timing { | 415 | struct ata_timing { |
| @@ -657,6 +663,17 @@ static inline void ata_tf_init(struct ata_port *ap, struct ata_taskfile *tf, uns | |||
| 657 | tf->device = ATA_DEVICE_OBS | ATA_DEV1; | 663 | tf->device = ATA_DEVICE_OBS | ATA_DEV1; |
| 658 | } | 664 | } |
| 659 | 665 | ||
| 666 | static inline void ata_qc_reinit(struct ata_queued_cmd *qc) | ||
| 667 | { | ||
| 668 | qc->__sg = NULL; | ||
| 669 | qc->flags = 0; | ||
| 670 | qc->cursect = qc->cursg = qc->cursg_ofs = 0; | ||
| 671 | qc->nsect = 0; | ||
| 672 | qc->nbytes = qc->curbytes = 0; | ||
| 673 | |||
| 674 | ata_tf_init(qc->ap, &qc->tf, qc->dev->devno); | ||
| 675 | } | ||
| 676 | |||
| 660 | 677 | ||
| 661 | /** | 678 | /** |
| 662 | * ata_irq_on - Enable interrupts on a port. | 679 | * ata_irq_on - Enable interrupts on a port. |
diff --git a/include/linux/list.h b/include/linux/list.h index fbfca73355a3..8e3388284530 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
| @@ -202,12 +202,15 @@ static inline void list_del_rcu(struct list_head *entry) | |||
| 202 | * | 202 | * |
| 203 | * The old entry will be replaced with the new entry atomically. | 203 | * The old entry will be replaced with the new entry atomically. |
| 204 | */ | 204 | */ |
| 205 | static inline void list_replace_rcu(struct list_head *old, struct list_head *new){ | 205 | static inline void list_replace_rcu(struct list_head *old, |
| 206 | struct list_head *new) | ||
| 207 | { | ||
| 206 | new->next = old->next; | 208 | new->next = old->next; |
| 207 | new->prev = old->prev; | 209 | new->prev = old->prev; |
| 208 | smp_wmb(); | 210 | smp_wmb(); |
| 209 | new->next->prev = new; | 211 | new->next->prev = new; |
| 210 | new->prev->next = new; | 212 | new->prev->next = new; |
| 213 | old->prev = LIST_POISON2; | ||
| 211 | } | 214 | } |
| 212 | 215 | ||
| 213 | /** | 216 | /** |
| @@ -578,6 +581,27 @@ static inline void hlist_del_init(struct hlist_node *n) | |||
| 578 | } | 581 | } |
| 579 | } | 582 | } |
| 580 | 583 | ||
| 584 | /* | ||
| 585 | * hlist_replace_rcu - replace old entry by new one | ||
| 586 | * @old : the element to be replaced | ||
| 587 | * @new : the new element to insert | ||
| 588 | * | ||
| 589 | * The old entry will be replaced with the new entry atomically. | ||
| 590 | */ | ||
| 591 | static inline void hlist_replace_rcu(struct hlist_node *old, | ||
| 592 | struct hlist_node *new) | ||
| 593 | { | ||
| 594 | struct hlist_node *next = old->next; | ||
| 595 | |||
| 596 | new->next = next; | ||
| 597 | new->pprev = old->pprev; | ||
| 598 | smp_wmb(); | ||
| 599 | if (next) | ||
| 600 | new->next->pprev = &new->next; | ||
| 601 | *new->pprev = new; | ||
| 602 | old->pprev = LIST_POISON2; | ||
| 603 | } | ||
| 604 | |||
| 581 | static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) | 605 | static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) |
| 582 | { | 606 | { |
| 583 | struct hlist_node *first = h->first; | 607 | struct hlist_node *first = h->first; |
diff --git a/include/linux/memory.h b/include/linux/memory.h index 9a424383e6c6..dc4081b6f161 100644 --- a/include/linux/memory.h +++ b/include/linux/memory.h | |||
| @@ -85,7 +85,6 @@ struct notifier_block; | |||
| 85 | extern int register_memory_notifier(struct notifier_block *nb); | 85 | extern int register_memory_notifier(struct notifier_block *nb); |
| 86 | extern void unregister_memory_notifier(struct notifier_block *nb); | 86 | extern void unregister_memory_notifier(struct notifier_block *nb); |
| 87 | 87 | ||
| 88 | extern struct sysdev_class memory_sysdev_class; | ||
| 89 | #endif /* CONFIG_MEMORY_HOTPLUG */ | 88 | #endif /* CONFIG_MEMORY_HOTPLUG */ |
| 90 | 89 | ||
| 91 | #define hotplug_memory_notifier(fn, pri) { \ | 90 | #define hotplug_memory_notifier(fn, pri) { \ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 7b115feca4df..a06a84d347fb 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -144,7 +144,8 @@ extern unsigned int kobjsize(const void *objp); | |||
| 144 | 144 | ||
| 145 | #define VM_GROWSDOWN 0x00000100 /* general info on the segment */ | 145 | #define VM_GROWSDOWN 0x00000100 /* general info on the segment */ |
| 146 | #define VM_GROWSUP 0x00000200 | 146 | #define VM_GROWSUP 0x00000200 |
| 147 | #define VM_SHM 0x00000400 /* shared memory area, don't swap out */ | 147 | #define VM_SHM 0x00000000 /* Means nothing: delete it later */ |
| 148 | #define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */ | ||
| 148 | #define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */ | 149 | #define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */ |
| 149 | 150 | ||
| 150 | #define VM_EXECUTABLE 0x00001000 | 151 | #define VM_EXECUTABLE 0x00001000 |
| @@ -157,11 +158,12 @@ extern unsigned int kobjsize(const void *objp); | |||
| 157 | 158 | ||
| 158 | #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */ | 159 | #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */ |
| 159 | #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */ | 160 | #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */ |
| 160 | #define VM_RESERVED 0x00080000 /* Pages managed in a special way */ | 161 | #define VM_RESERVED 0x00080000 /* Count as reserved_vm like IO */ |
| 161 | #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */ | 162 | #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */ |
| 162 | #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ | 163 | #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ |
| 163 | #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ | 164 | #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ |
| 164 | #define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */ | 165 | #define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */ |
| 166 | #define VM_INSERTPAGE 0x02000000 /* The vma has had "vm_insert_page()" done on it */ | ||
| 165 | 167 | ||
| 166 | #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ | 168 | #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ |
| 167 | #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS | 169 | #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS |
| @@ -206,12 +208,6 @@ struct vm_operations_struct { | |||
| 206 | struct mmu_gather; | 208 | struct mmu_gather; |
| 207 | struct inode; | 209 | struct inode; |
| 208 | 210 | ||
| 209 | #ifdef ARCH_HAS_ATOMIC_UNSIGNED | ||
| 210 | typedef unsigned page_flags_t; | ||
| 211 | #else | ||
| 212 | typedef unsigned long page_flags_t; | ||
| 213 | #endif | ||
| 214 | |||
| 215 | /* | 211 | /* |
| 216 | * Each physical page in the system has a struct page associated with | 212 | * Each physical page in the system has a struct page associated with |
| 217 | * it to keep track of whatever it is we are using the page for at the | 213 | * it to keep track of whatever it is we are using the page for at the |
| @@ -219,7 +215,7 @@ typedef unsigned long page_flags_t; | |||
| 219 | * a page. | 215 | * a page. |
| 220 | */ | 216 | */ |
| 221 | struct page { | 217 | struct page { |
| 222 | page_flags_t flags; /* Atomic flags, some possibly | 218 | unsigned long flags; /* Atomic flags, some possibly |
| 223 | * updated asynchronously */ | 219 | * updated asynchronously */ |
| 224 | atomic_t _count; /* Usage count, see below. */ | 220 | atomic_t _count; /* Usage count, see below. */ |
| 225 | atomic_t _mapcount; /* Count of ptes mapped in mms, | 221 | atomic_t _mapcount; /* Count of ptes mapped in mms, |
| @@ -317,8 +313,6 @@ struct page { | |||
| 317 | 313 | ||
| 318 | extern void FASTCALL(__page_cache_release(struct page *)); | 314 | extern void FASTCALL(__page_cache_release(struct page *)); |
| 319 | 315 | ||
| 320 | #ifdef CONFIG_HUGETLB_PAGE | ||
| 321 | |||
| 322 | static inline int page_count(struct page *page) | 316 | static inline int page_count(struct page *page) |
| 323 | { | 317 | { |
| 324 | if (PageCompound(page)) | 318 | if (PageCompound(page)) |
| @@ -335,23 +329,6 @@ static inline void get_page(struct page *page) | |||
| 335 | 329 | ||
| 336 | void put_page(struct page *page); | 330 | void put_page(struct page *page); |
| 337 | 331 | ||
| 338 | #else /* CONFIG_HUGETLB_PAGE */ | ||
| 339 | |||
| 340 | #define page_count(p) (atomic_read(&(p)->_count) + 1) | ||
| 341 | |||
| 342 | static inline void get_page(struct page *page) | ||
| 343 | { | ||
| 344 | atomic_inc(&page->_count); | ||
| 345 | } | ||
| 346 | |||
| 347 | static inline void put_page(struct page *page) | ||
| 348 | { | ||
| 349 | if (put_page_testzero(page)) | ||
| 350 | __page_cache_release(page); | ||
| 351 | } | ||
| 352 | |||
| 353 | #endif /* CONFIG_HUGETLB_PAGE */ | ||
| 354 | |||
| 355 | /* | 332 | /* |
| 356 | * Multiple processes may "see" the same page. E.g. for untouched | 333 | * Multiple processes may "see" the same page. E.g. for untouched |
| 357 | * mappings of /dev/null, all processes see the same page full of | 334 | * mappings of /dev/null, all processes see the same page full of |
| @@ -435,7 +412,7 @@ static inline void put_page(struct page *page) | |||
| 435 | #endif | 412 | #endif |
| 436 | 413 | ||
| 437 | /* Page flags: | [SECTION] | [NODE] | ZONE | ... | FLAGS | */ | 414 | /* Page flags: | [SECTION] | [NODE] | ZONE | ... | FLAGS | */ |
| 438 | #define SECTIONS_PGOFF ((sizeof(page_flags_t)*8) - SECTIONS_WIDTH) | 415 | #define SECTIONS_PGOFF ((sizeof(unsigned long)*8) - SECTIONS_WIDTH) |
| 439 | #define NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH) | 416 | #define NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH) |
| 440 | #define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH) | 417 | #define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH) |
| 441 | 418 | ||
| @@ -688,6 +665,7 @@ struct zap_details { | |||
| 688 | unsigned long truncate_count; /* Compare vm_truncate_count */ | 665 | unsigned long truncate_count; /* Compare vm_truncate_count */ |
| 689 | }; | 666 | }; |
| 690 | 667 | ||
| 668 | struct page *vm_normal_page(struct vm_area_struct *, unsigned long, pte_t); | ||
| 691 | unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address, | 669 | unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address, |
| 692 | unsigned long size, struct zap_details *); | 670 | unsigned long size, struct zap_details *); |
| 693 | unsigned long unmap_vmas(struct mmu_gather **tlb, | 671 | unsigned long unmap_vmas(struct mmu_gather **tlb, |
| @@ -764,6 +742,8 @@ struct shrinker; | |||
| 764 | extern struct shrinker *set_shrinker(int, shrinker_t); | 742 | extern struct shrinker *set_shrinker(int, shrinker_t); |
| 765 | extern void remove_shrinker(struct shrinker *shrinker); | 743 | extern void remove_shrinker(struct shrinker *shrinker); |
| 766 | 744 | ||
| 745 | extern pte_t *FASTCALL(get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl)); | ||
| 746 | |||
| 767 | int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); | 747 | int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); |
| 768 | int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); | 748 | int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); |
| 769 | int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address); | 749 | int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address); |
| @@ -946,7 +926,9 @@ unsigned long max_sane_readahead(unsigned long nr); | |||
| 946 | 926 | ||
| 947 | /* Do stack extension */ | 927 | /* Do stack extension */ |
| 948 | extern int expand_stack(struct vm_area_struct *vma, unsigned long address); | 928 | extern int expand_stack(struct vm_area_struct *vma, unsigned long address); |
| 929 | #ifdef CONFIG_IA64 | ||
| 949 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); | 930 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); |
| 931 | #endif | ||
| 950 | 932 | ||
| 951 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ | 933 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ |
| 952 | extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); | 934 | extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); |
| @@ -974,8 +956,9 @@ struct page *vmalloc_to_page(void *addr); | |||
| 974 | unsigned long vmalloc_to_pfn(void *addr); | 956 | unsigned long vmalloc_to_pfn(void *addr); |
| 975 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, | 957 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, |
| 976 | unsigned long pfn, unsigned long size, pgprot_t); | 958 | unsigned long pfn, unsigned long size, pgprot_t); |
| 959 | int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); | ||
| 977 | 960 | ||
| 978 | struct page *follow_page(struct mm_struct *, unsigned long address, | 961 | struct page *follow_page(struct vm_area_struct *, unsigned long address, |
| 979 | unsigned int foll_flags); | 962 | unsigned int foll_flags); |
| 980 | #define FOLL_WRITE 0x01 /* check pte is writable */ | 963 | #define FOLL_WRITE 0x01 /* check pte is writable */ |
| 981 | #define FOLL_TOUCH 0x02 /* mark page accessed */ | 964 | #define FOLL_TOUCH 0x02 /* mark page accessed */ |
diff --git a/include/linux/mmc/protocol.h b/include/linux/mmc/protocol.h index f819cae92266..a14dc306545b 100644 --- a/include/linux/mmc/protocol.h +++ b/include/linux/mmc/protocol.h | |||
| @@ -63,7 +63,7 @@ | |||
| 63 | /* class 5 */ | 63 | /* class 5 */ |
| 64 | #define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */ | 64 | #define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */ |
| 65 | #define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */ | 65 | #define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */ |
| 66 | #define MMC_ERASE 37 /* ac R1b */ | 66 | #define MMC_ERASE 38 /* ac R1b */ |
| 67 | 67 | ||
| 68 | /* class 9 */ | 68 | /* class 9 */ |
| 69 | #define MMC_FAST_IO 39 /* ac <Complex> R4 */ | 69 | #define MMC_FAST_IO 39 /* ac <Complex> R4 */ |
| @@ -74,7 +74,7 @@ | |||
| 74 | 74 | ||
| 75 | /* class 8 */ | 75 | /* class 8 */ |
| 76 | #define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */ | 76 | #define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */ |
| 77 | #define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1b */ | 77 | #define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1 */ |
| 78 | 78 | ||
| 79 | /* SD commands type argument response */ | 79 | /* SD commands type argument response */ |
| 80 | /* class 8 */ | 80 | /* class 8 */ |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index f5fa3082fd6a..9f22090df7dd 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -71,10 +71,11 @@ struct per_cpu_pageset { | |||
| 71 | #endif | 71 | #endif |
| 72 | 72 | ||
| 73 | #define ZONE_DMA 0 | 73 | #define ZONE_DMA 0 |
| 74 | #define ZONE_NORMAL 1 | 74 | #define ZONE_DMA32 1 |
| 75 | #define ZONE_HIGHMEM 2 | 75 | #define ZONE_NORMAL 2 |
| 76 | #define ZONE_HIGHMEM 3 | ||
| 76 | 77 | ||
| 77 | #define MAX_NR_ZONES 3 /* Sync this with ZONES_SHIFT */ | 78 | #define MAX_NR_ZONES 4 /* Sync this with ZONES_SHIFT */ |
| 78 | #define ZONES_SHIFT 2 /* ceil(log2(MAX_NR_ZONES)) */ | 79 | #define ZONES_SHIFT 2 /* ceil(log2(MAX_NR_ZONES)) */ |
| 79 | 80 | ||
| 80 | 81 | ||
| @@ -90,27 +91,18 @@ struct per_cpu_pageset { | |||
| 90 | * will be a maximum of 4 (2 ** 2) zonelists, for 3 modifiers there will | 91 | * will be a maximum of 4 (2 ** 2) zonelists, for 3 modifiers there will |
| 91 | * be 8 (2 ** 3) zonelists. GFP_ZONETYPES defines the number of possible | 92 | * be 8 (2 ** 3) zonelists. GFP_ZONETYPES defines the number of possible |
| 92 | * combinations of zone modifiers in "zone modifier space". | 93 | * combinations of zone modifiers in "zone modifier space". |
| 94 | * | ||
| 95 | * NOTE! Make sure this matches the zones in <linux/gfp.h> | ||
| 93 | */ | 96 | */ |
| 94 | #define GFP_ZONEMASK 0x03 | 97 | #define GFP_ZONEMASK 0x07 |
| 95 | /* | 98 | #define GFP_ZONETYPES 5 |
| 96 | * As an optimisation any zone modifier bits which are only valid when | ||
| 97 | * no other zone modifier bits are set (loners) should be placed in | ||
| 98 | * the highest order bits of this field. This allows us to reduce the | ||
| 99 | * extent of the zonelists thus saving space. For example in the case | ||
| 100 | * of three zone modifier bits, we could require up to eight zonelists. | ||
| 101 | * If the left most zone modifier is a "loner" then the highest valid | ||
| 102 | * zonelist would be four allowing us to allocate only five zonelists. | ||
| 103 | * Use the first form when the left most bit is not a "loner", otherwise | ||
| 104 | * use the second. | ||
| 105 | */ | ||
| 106 | /* #define GFP_ZONETYPES (GFP_ZONEMASK + 1) */ /* Non-loner */ | ||
| 107 | #define GFP_ZONETYPES ((GFP_ZONEMASK + 1) / 2 + 1) /* Loner */ | ||
| 108 | 99 | ||
| 109 | /* | 100 | /* |
| 110 | * On machines where it is needed (eg PCs) we divide physical memory | 101 | * On machines where it is needed (eg PCs) we divide physical memory |
| 111 | * into multiple physical zones. On a PC we have 3 zones: | 102 | * into multiple physical zones. On a PC we have 4 zones: |
| 112 | * | 103 | * |
| 113 | * ZONE_DMA < 16 MB ISA DMA capable memory | 104 | * ZONE_DMA < 16 MB ISA DMA capable memory |
| 105 | * ZONE_DMA32 0 MB Empty | ||
| 114 | * ZONE_NORMAL 16-896 MB direct mapped by the kernel | 106 | * ZONE_NORMAL 16-896 MB direct mapped by the kernel |
| 115 | * ZONE_HIGHMEM > 896 MB only page cache and user processes | 107 | * ZONE_HIGHMEM > 896 MB only page cache and user processes |
| 116 | */ | 108 | */ |
| @@ -329,7 +321,7 @@ void get_zone_counts(unsigned long *active, unsigned long *inactive, | |||
| 329 | void build_all_zonelists(void); | 321 | void build_all_zonelists(void); |
| 330 | void wakeup_kswapd(struct zone *zone, int order); | 322 | void wakeup_kswapd(struct zone *zone, int order); |
| 331 | int zone_watermark_ok(struct zone *z, int order, unsigned long mark, | 323 | int zone_watermark_ok(struct zone *z, int order, unsigned long mark, |
| 332 | int alloc_type, int can_try_harder, gfp_t gfp_high); | 324 | int classzone_idx, int alloc_flags); |
| 333 | 325 | ||
| 334 | #ifdef CONFIG_HAVE_MEMORY_PRESENT | 326 | #ifdef CONFIG_HAVE_MEMORY_PRESENT |
| 335 | void memory_present(int nid, unsigned long start, unsigned long end); | 327 | void memory_present(int nid, unsigned long start, unsigned long end); |
| @@ -433,7 +425,9 @@ int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, struct file *, | |||
| 433 | 425 | ||
| 434 | #include <linux/topology.h> | 426 | #include <linux/topology.h> |
| 435 | /* Returns the number of the current Node. */ | 427 | /* Returns the number of the current Node. */ |
| 428 | #ifndef numa_node_id | ||
| 436 | #define numa_node_id() (cpu_to_node(raw_smp_processor_id())) | 429 | #define numa_node_id() (cpu_to_node(raw_smp_processor_id())) |
| 430 | #endif | ||
| 437 | 431 | ||
| 438 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 432 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
| 439 | 433 | ||
| @@ -453,12 +447,12 @@ extern struct pglist_data contig_page_data; | |||
| 453 | #include <asm/sparsemem.h> | 447 | #include <asm/sparsemem.h> |
| 454 | #endif | 448 | #endif |
| 455 | 449 | ||
| 456 | #if BITS_PER_LONG == 32 || defined(ARCH_HAS_ATOMIC_UNSIGNED) | 450 | #if BITS_PER_LONG == 32 |
| 457 | /* | 451 | /* |
| 458 | * with 32 bit page->flags field, we reserve 8 bits for node/zone info. | 452 | * with 32 bit page->flags field, we reserve 9 bits for node/zone info. |
| 459 | * there are 3 zones (2 bits) and this leaves 8-2=6 bits for nodes. | 453 | * there are 4 zones (3 bits) and this leaves 9-3=6 bits for nodes. |
| 460 | */ | 454 | */ |
| 461 | #define FLAGS_RESERVED 8 | 455 | #define FLAGS_RESERVED 9 |
| 462 | 456 | ||
| 463 | #elif BITS_PER_LONG == 64 | 457 | #elif BITS_PER_LONG == 64 |
| 464 | /* | 458 | /* |
diff --git a/include/linux/mtd/cfi.h b/include/linux/mtd/cfi.h index 3c9ea4b7adda..23a568910341 100644 --- a/include/linux/mtd/cfi.h +++ b/include/linux/mtd/cfi.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | 1 | ||
| 2 | /* Common Flash Interface structures | 2 | /* Common Flash Interface structures |
| 3 | * See http://support.intel.com/design/flash/technote/index.htm | 3 | * See http://support.intel.com/design/flash/technote/index.htm |
| 4 | * $Id: cfi.h,v 1.56 2005/11/07 11:14:54 gleixner Exp $ | 4 | * $Id: cfi.h,v 1.57 2005/11/15 23:28:17 tpoynor Exp $ |
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | #ifndef __MTD_CFI_H__ | 7 | #ifndef __MTD_CFI_H__ |
| @@ -426,6 +426,22 @@ static inline uint8_t cfi_read_query(struct map_info *map, uint32_t addr) | |||
| 426 | } | 426 | } |
| 427 | } | 427 | } |
| 428 | 428 | ||
| 429 | static inline uint16_t cfi_read_query16(struct map_info *map, uint32_t addr) | ||
| 430 | { | ||
| 431 | map_word val = map_read(map, addr); | ||
| 432 | |||
| 433 | if (map_bankwidth_is_1(map)) { | ||
| 434 | return val.x[0] & 0xff; | ||
| 435 | } else if (map_bankwidth_is_2(map)) { | ||
| 436 | return cfi16_to_cpu(val.x[0]); | ||
| 437 | } else { | ||
| 438 | /* No point in a 64-bit byteswap since that would just be | ||
| 439 | swapping the responses from different chips, and we are | ||
| 440 | only interested in one chip (a representative sample) */ | ||
| 441 | return cfi32_to_cpu(val.x[0]); | ||
| 442 | } | ||
| 443 | } | ||
| 444 | |||
| 429 | static inline void cfi_udelay(int us) | 445 | static inline void cfi_udelay(int us) |
| 430 | { | 446 | { |
| 431 | if (us >= 1000) { | 447 | if (us >= 1000) { |
diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index f1fd4215686a..7419b5fab133 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h | |||
| @@ -17,7 +17,6 @@ | |||
| 17 | #include <linux/mtd/bbm.h> | 17 | #include <linux/mtd/bbm.h> |
| 18 | 18 | ||
| 19 | #define MAX_BUFFERRAM 2 | 19 | #define MAX_BUFFERRAM 2 |
| 20 | #define MAX_ONENAND_PAGESIZE (2048 + 64) | ||
| 21 | 20 | ||
| 22 | /* Scan and identify a OneNAND device */ | 21 | /* Scan and identify a OneNAND device */ |
| 23 | extern int onenand_scan(struct mtd_info *mtd, int max_chips); | 22 | extern int onenand_scan(struct mtd_info *mtd, int max_chips); |
| @@ -110,6 +109,7 @@ struct onenand_chip { | |||
| 110 | spinlock_t chip_lock; | 109 | spinlock_t chip_lock; |
| 111 | wait_queue_head_t wq; | 110 | wait_queue_head_t wq; |
| 112 | onenand_state_t state; | 111 | onenand_state_t state; |
| 112 | unsigned char *page_buf; | ||
| 113 | 113 | ||
| 114 | struct nand_oobinfo *autooob; | 114 | struct nand_oobinfo *autooob; |
| 115 | 115 | ||
| @@ -134,13 +134,12 @@ struct onenand_chip { | |||
| 134 | * Options bits | 134 | * Options bits |
| 135 | */ | 135 | */ |
| 136 | #define ONENAND_CONT_LOCK (0x0001) | 136 | #define ONENAND_CONT_LOCK (0x0001) |
| 137 | 137 | #define ONENAND_PAGEBUF_ALLOC (0x1000) | |
| 138 | 138 | ||
| 139 | /* | 139 | /* |
| 140 | * OneNAND Flash Manufacturer ID Codes | 140 | * OneNAND Flash Manufacturer ID Codes |
| 141 | */ | 141 | */ |
| 142 | #define ONENAND_MFR_SAMSUNG 0xec | 142 | #define ONENAND_MFR_SAMSUNG 0xec |
| 143 | #define ONENAND_MFR_UNKNOWN 0x00 | ||
| 144 | 143 | ||
| 145 | /** | 144 | /** |
| 146 | * struct nand_manufacturers - NAND Flash Manufacturer ID Structure | 145 | * struct nand_manufacturers - NAND Flash Manufacturer ID Structure |
diff --git a/include/linux/n_r3964.h b/include/linux/n_r3964.h index 2352bcd31a06..db4f3776978a 100644 --- a/include/linux/n_r3964.h +++ b/include/linux/n_r3964.h | |||
| @@ -13,6 +13,10 @@ | |||
| 13 | * L. Haag | 13 | * L. Haag |
| 14 | * | 14 | * |
| 15 | * $Log: r3964.h,v $ | 15 | * $Log: r3964.h,v $ |
| 16 | * Revision 1.4 2005/12/21 19:54:24 Kurt Huwig <kurt huwig de> | ||
| 17 | * Fixed HZ usage on 2.6 kernels | ||
| 18 | * Removed unnecessary include | ||
| 19 | * | ||
| 16 | * Revision 1.3 2001/03/18 13:02:24 dwmw2 | 20 | * Revision 1.3 2001/03/18 13:02:24 dwmw2 |
| 17 | * Fix timer usage, use spinlocks properly. | 21 | * Fix timer usage, use spinlocks properly. |
| 18 | * | 22 | * |
| @@ -45,9 +49,11 @@ | |||
| 45 | #define __LINUX_N_R3964_H__ | 49 | #define __LINUX_N_R3964_H__ |
| 46 | 50 | ||
| 47 | /* line disciplines for r3964 protocol */ | 51 | /* line disciplines for r3964 protocol */ |
| 48 | #include <asm/termios.h> | ||
| 49 | 52 | ||
| 50 | #ifdef __KERNEL__ | 53 | #ifdef __KERNEL__ |
| 54 | |||
| 55 | #include <linux/param.h> | ||
| 56 | |||
| 51 | /* | 57 | /* |
| 52 | * Common ascii handshake characters: | 58 | * Common ascii handshake characters: |
| 53 | */ | 59 | */ |
| @@ -58,14 +64,14 @@ | |||
| 58 | #define NAK 0x15 | 64 | #define NAK 0x15 |
| 59 | 65 | ||
| 60 | /* | 66 | /* |
| 61 | * Timeouts (msecs/10 msecs per timer interrupt): | 67 | * Timeouts (from milliseconds to jiffies) |
| 62 | */ | 68 | */ |
| 63 | 69 | ||
| 64 | #define R3964_TO_QVZ 550/10 | 70 | #define R3964_TO_QVZ ((550)*HZ/1000) |
| 65 | #define R3964_TO_ZVZ 220/10 | 71 | #define R3964_TO_ZVZ ((220)*HZ/1000) |
| 66 | #define R3964_TO_NO_BUF 400/10 | 72 | #define R3964_TO_NO_BUF ((400)*HZ/1000) |
| 67 | #define R3964_NO_TX_ROOM 100/10 | 73 | #define R3964_NO_TX_ROOM ((100)*HZ/1000) |
| 68 | #define R3964_TO_RX_PANIC 4000/10 | 74 | #define R3964_TO_RX_PANIC ((4000)*HZ/1000) |
| 69 | #define R3964_MAX_RETRIES 5 | 75 | #define R3964_MAX_RETRIES 5 |
| 70 | 76 | ||
| 71 | #endif | 77 | #endif |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index c6efce4a04a4..936f8b76114e 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -927,6 +927,13 @@ extern int netdev_max_backlog; | |||
| 927 | extern int weight_p; | 927 | extern int weight_p; |
| 928 | extern int netdev_set_master(struct net_device *dev, struct net_device *master); | 928 | extern int netdev_set_master(struct net_device *dev, struct net_device *master); |
| 929 | extern int skb_checksum_help(struct sk_buff *skb, int inward); | 929 | extern int skb_checksum_help(struct sk_buff *skb, int inward); |
| 930 | #ifdef CONFIG_BUG | ||
| 931 | extern void netdev_rx_csum_fault(struct net_device *dev); | ||
| 932 | #else | ||
| 933 | static inline void netdev_rx_csum_fault(struct net_device *dev) | ||
| 934 | { | ||
| 935 | } | ||
| 936 | #endif | ||
| 930 | /* rx skb timestamps */ | 937 | /* rx skb timestamps */ |
| 931 | extern void net_enable_timestamp(void); | 938 | extern void net_enable_timestamp(void); |
| 932 | extern void net_disable_timestamp(void); | 939 | extern void net_disable_timestamp(void); |
diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h index 72975fa8795d..934a2479f160 100644 --- a/include/linux/netfilter/nfnetlink.h +++ b/include/linux/netfilter/nfnetlink.h | |||
| @@ -112,7 +112,6 @@ struct nfnl_callback | |||
| 112 | { | 112 | { |
| 113 | int (*call)(struct sock *nl, struct sk_buff *skb, | 113 | int (*call)(struct sock *nl, struct sk_buff *skb, |
| 114 | struct nlmsghdr *nlh, struct nfattr *cda[], int *errp); | 114 | struct nlmsghdr *nlh, struct nfattr *cda[], int *errp); |
| 115 | kernel_cap_t cap_required; /* capabilities required for this msg */ | ||
| 116 | u_int16_t attr_count; /* number of nfattr's */ | 115 | u_int16_t attr_count; /* number of nfattr's */ |
| 117 | }; | 116 | }; |
| 118 | 117 | ||
| @@ -154,11 +153,14 @@ extern void nfattr_parse(struct nfattr *tb[], int maxattr, | |||
| 154 | 153 | ||
| 155 | #define nfattr_bad_size(tb, max, cta_min) \ | 154 | #define nfattr_bad_size(tb, max, cta_min) \ |
| 156 | ({ int __i, __res = 0; \ | 155 | ({ int __i, __res = 0; \ |
| 157 | for (__i=0; __i<max; __i++) \ | 156 | for (__i=0; __i<max; __i++) { \ |
| 157 | if (!cta_min[__i]) \ | ||
| 158 | continue; \ | ||
| 158 | if (tb[__i] && NFA_PAYLOAD(tb[__i]) < cta_min[__i]){ \ | 159 | if (tb[__i] && NFA_PAYLOAD(tb[__i]) < cta_min[__i]){ \ |
| 159 | __res = 1; \ | 160 | __res = 1; \ |
| 160 | break; \ | 161 | break; \ |
| 161 | } \ | 162 | } \ |
| 163 | } \ | ||
| 162 | __res; \ | 164 | __res; \ |
| 163 | }) | 165 | }) |
| 164 | 166 | ||
diff --git a/include/linux/netfilter_ipv4/ipt_sctp.h b/include/linux/netfilter_ipv4/ipt_sctp.h index e93a9ec99fc2..80b3dbacd193 100644 --- a/include/linux/netfilter_ipv4/ipt_sctp.h +++ b/include/linux/netfilter_ipv4/ipt_sctp.h | |||
| @@ -7,8 +7,6 @@ | |||
| 7 | 7 | ||
| 8 | #define IPT_SCTP_VALID_FLAGS 0x07 | 8 | #define IPT_SCTP_VALID_FLAGS 0x07 |
| 9 | 9 | ||
| 10 | #define ELEMCOUNT(x) (sizeof(x)/sizeof(x[0])) | ||
| 11 | |||
| 12 | 10 | ||
| 13 | struct ipt_sctp_flag_info { | 11 | struct ipt_sctp_flag_info { |
| 14 | u_int8_t chunktype; | 12 | u_int8_t chunktype; |
| @@ -59,21 +57,21 @@ struct ipt_sctp_info { | |||
| 59 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ | 57 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ |
| 60 | do { \ | 58 | do { \ |
| 61 | int i; \ | 59 | int i; \ |
| 62 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 60 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
| 63 | chunkmap[i] = 0; \ | 61 | chunkmap[i] = 0; \ |
| 64 | } while (0) | 62 | } while (0) |
| 65 | 63 | ||
| 66 | #define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ | 64 | #define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ |
| 67 | do { \ | 65 | do { \ |
| 68 | int i; \ | 66 | int i; \ |
| 69 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 67 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
| 70 | chunkmap[i] = ~0; \ | 68 | chunkmap[i] = ~0; \ |
| 71 | } while (0) | 69 | } while (0) |
| 72 | 70 | ||
| 73 | #define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ | 71 | #define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ |
| 74 | do { \ | 72 | do { \ |
| 75 | int i; \ | 73 | int i; \ |
| 76 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 74 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
| 77 | destmap[i] = srcmap[i]; \ | 75 | destmap[i] = srcmap[i]; \ |
| 78 | } while (0) | 76 | } while (0) |
| 79 | 77 | ||
| @@ -81,7 +79,7 @@ struct ipt_sctp_info { | |||
| 81 | ({ \ | 79 | ({ \ |
| 82 | int i; \ | 80 | int i; \ |
| 83 | int flag = 1; \ | 81 | int flag = 1; \ |
| 84 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ | 82 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \ |
| 85 | if (chunkmap[i]) { \ | 83 | if (chunkmap[i]) { \ |
| 86 | flag = 0; \ | 84 | flag = 0; \ |
| 87 | break; \ | 85 | break; \ |
| @@ -94,7 +92,7 @@ struct ipt_sctp_info { | |||
| 94 | ({ \ | 92 | ({ \ |
| 95 | int i; \ | 93 | int i; \ |
| 96 | int flag = 1; \ | 94 | int flag = 1; \ |
| 97 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ | 95 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \ |
| 98 | if (chunkmap[i] != ~0) { \ | 96 | if (chunkmap[i] != ~0) { \ |
| 99 | flag = 0; \ | 97 | flag = 0; \ |
| 100 | break; \ | 98 | break; \ |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 12787a9b0259..2516adeccecf 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -291,6 +291,7 @@ static inline int nfs_verify_change_attribute(struct inode *inode, unsigned long | |||
| 291 | /* | 291 | /* |
| 292 | * linux/fs/nfs/inode.c | 292 | * linux/fs/nfs/inode.c |
| 293 | */ | 293 | */ |
| 294 | extern int nfs_sync_mapping(struct address_space *mapping); | ||
| 294 | extern void nfs_zap_caches(struct inode *); | 295 | extern void nfs_zap_caches(struct inode *); |
| 295 | extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *, | 296 | extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *, |
| 296 | struct nfs_fattr *); | 297 | struct nfs_fattr *); |
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index f34767c5fc79..343083fec258 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
| @@ -287,11 +287,7 @@ extern void __mod_page_state(unsigned long offset, unsigned long delta); | |||
| 287 | #define ClearPageReclaim(page) clear_bit(PG_reclaim, &(page)->flags) | 287 | #define ClearPageReclaim(page) clear_bit(PG_reclaim, &(page)->flags) |
| 288 | #define TestClearPageReclaim(page) test_and_clear_bit(PG_reclaim, &(page)->flags) | 288 | #define TestClearPageReclaim(page) test_and_clear_bit(PG_reclaim, &(page)->flags) |
| 289 | 289 | ||
| 290 | #ifdef CONFIG_HUGETLB_PAGE | ||
| 291 | #define PageCompound(page) test_bit(PG_compound, &(page)->flags) | 290 | #define PageCompound(page) test_bit(PG_compound, &(page)->flags) |
| 292 | #else | ||
| 293 | #define PageCompound(page) 0 | ||
| 294 | #endif | ||
| 295 | #define SetPageCompound(page) set_bit(PG_compound, &(page)->flags) | 291 | #define SetPageCompound(page) set_bit(PG_compound, &(page)->flags) |
| 296 | #define ClearPageCompound(page) clear_bit(PG_compound, &(page)->flags) | 292 | #define ClearPageCompound(page) clear_bit(PG_compound, &(page)->flags) |
| 297 | 293 | ||
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index ba6c310a055f..ee700c6eb442 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
| @@ -53,12 +53,12 @@ void release_pages(struct page **pages, int nr, int cold); | |||
| 53 | 53 | ||
| 54 | static inline struct page *page_cache_alloc(struct address_space *x) | 54 | static inline struct page *page_cache_alloc(struct address_space *x) |
| 55 | { | 55 | { |
| 56 | return alloc_pages(mapping_gfp_mask(x)|__GFP_NORECLAIM, 0); | 56 | return alloc_pages(mapping_gfp_mask(x), 0); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | static inline struct page *page_cache_alloc_cold(struct address_space *x) | 59 | static inline struct page *page_cache_alloc_cold(struct address_space *x) |
| 60 | { | 60 | { |
| 61 | return alloc_pages(mapping_gfp_mask(x)|__GFP_COLD|__GFP_NORECLAIM, 0); | 61 | return alloc_pages(mapping_gfp_mask(x)|__GFP_COLD, 0); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | typedef int filler_t(void *, struct page *); | 64 | typedef int filler_t(void *, struct page *); |
diff --git a/include/linux/parport_pc.h b/include/linux/parport_pc.h index 7825c76cbd00..c6f762470879 100644 --- a/include/linux/parport_pc.h +++ b/include/linux/parport_pc.h | |||
| @@ -86,7 +86,7 @@ extern __inline__ void dump_parport_state (char *str, struct parport *p) | |||
| 86 | unsigned char dcr = inb (CONTROL (p)); | 86 | unsigned char dcr = inb (CONTROL (p)); |
| 87 | unsigned char dsr = inb (STATUS (p)); | 87 | unsigned char dsr = inb (STATUS (p)); |
| 88 | static char *ecr_modes[] = {"SPP", "PS2", "PPFIFO", "ECP", "xXx", "yYy", "TST", "CFG"}; | 88 | static char *ecr_modes[] = {"SPP", "PS2", "PPFIFO", "ECP", "xXx", "yYy", "TST", "CFG"}; |
| 89 | const struct parport_pc_private *priv = (parport_pc_private *)p->physport->private_data; | 89 | const struct parport_pc_private *priv = p->physport->private_data; |
| 90 | int i; | 90 | int i; |
| 91 | 91 | ||
| 92 | printk (KERN_DEBUG "*** parport state (%s): ecr=[%s", str, ecr_modes[(ecr & 0xe0) >> 5]); | 92 | printk (KERN_DEBUG "*** parport state (%s): ecr=[%s", str, ecr_modes[(ecr & 0xe0) >> 5]); |
diff --git a/include/linux/pci-acpi.h b/include/linux/pci-acpi.h index 857126a36ecc..4877e35ae202 100644 --- a/include/linux/pci-acpi.h +++ b/include/linux/pci-acpi.h | |||
| @@ -47,14 +47,15 @@ | |||
| 47 | OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL) | 47 | OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL) |
| 48 | 48 | ||
| 49 | #ifdef CONFIG_ACPI | 49 | #ifdef CONFIG_ACPI |
| 50 | extern acpi_status pci_osc_control_set(u32 flags); | 50 | extern acpi_status pci_osc_control_set(acpi_handle handle, u32 flags); |
| 51 | extern acpi_status pci_osc_support_set(u32 flags); | 51 | extern acpi_status pci_osc_support_set(u32 flags); |
| 52 | #else | 52 | #else |
| 53 | #if !defined(acpi_status) | 53 | #if !defined(acpi_status) |
| 54 | typedef u32 acpi_status; | 54 | typedef u32 acpi_status; |
| 55 | #define AE_ERROR (acpi_status) (0x0001) | 55 | #define AE_ERROR (acpi_status) (0x0001) |
| 56 | #endif | 56 | #endif |
| 57 | static inline acpi_status pci_osc_control_set(u32 flags) {return AE_ERROR;} | 57 | static inline acpi_status pci_osc_control_set(acpi_handle handle, u32 flags) |
| 58 | {return AE_ERROR;} | ||
| 58 | static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;} | 59 | static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;} |
| 59 | #endif | 60 | #endif |
| 60 | 61 | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index 3596ac94ecff..de690ca73d58 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -236,7 +236,6 @@ struct module; | |||
| 236 | struct pci_driver { | 236 | struct pci_driver { |
| 237 | struct list_head node; | 237 | struct list_head node; |
| 238 | char *name; | 238 | char *name; |
| 239 | struct module *owner; | ||
| 240 | const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */ | 239 | const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */ |
| 241 | int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */ | 240 | int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */ |
| 242 | void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */ | 241 | void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */ |
| @@ -338,6 +337,7 @@ struct pci_dev *pci_find_device (unsigned int vendor, unsigned int device, const | |||
| 338 | struct pci_dev *pci_find_device_reverse (unsigned int vendor, unsigned int device, const struct pci_dev *from); | 337 | struct pci_dev *pci_find_device_reverse (unsigned int vendor, unsigned int device, const struct pci_dev *from); |
| 339 | struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); | 338 | struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); |
| 340 | int pci_find_capability (struct pci_dev *dev, int cap); | 339 | int pci_find_capability (struct pci_dev *dev, int cap); |
| 340 | int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap); | ||
| 341 | int pci_find_ext_capability (struct pci_dev *dev, int cap); | 341 | int pci_find_ext_capability (struct pci_dev *dev, int cap); |
| 342 | struct pci_bus * pci_find_next_bus(const struct pci_bus *from); | 342 | struct pci_bus * pci_find_next_bus(const struct pci_bus *from); |
| 343 | 343 | ||
| @@ -432,8 +432,13 @@ int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, | |||
| 432 | void *alignf_data); | 432 | void *alignf_data); |
| 433 | void pci_enable_bridges(struct pci_bus *bus); | 433 | void pci_enable_bridges(struct pci_bus *bus); |
| 434 | 434 | ||
| 435 | /* New-style probing supporting hot-pluggable devices */ | 435 | /* Proper probing supporting hot-pluggable devices */ |
| 436 | int pci_register_driver(struct pci_driver *); | 436 | int __pci_register_driver(struct pci_driver *, struct module *); |
| 437 | static inline int pci_register_driver(struct pci_driver *driver) | ||
| 438 | { | ||
| 439 | return __pci_register_driver(driver, THIS_MODULE); | ||
| 440 | } | ||
| 441 | |||
| 437 | void pci_unregister_driver(struct pci_driver *); | 442 | void pci_unregister_driver(struct pci_driver *); |
| 438 | void pci_remove_behind_bridge(struct pci_dev *); | 443 | void pci_remove_behind_bridge(struct pci_dev *); |
| 439 | struct pci_driver *pci_dev_driver(const struct pci_dev *); | 444 | struct pci_driver *pci_dev_driver(const struct pci_dev *); |
| @@ -547,9 +552,11 @@ static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; } | |||
| 547 | static inline void pci_disable_device(struct pci_dev *dev) { } | 552 | static inline void pci_disable_device(struct pci_dev *dev) { } |
| 548 | static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) { return -EIO; } | 553 | static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) { return -EIO; } |
| 549 | static inline int pci_assign_resource(struct pci_dev *dev, int i) { return -EBUSY;} | 554 | static inline int pci_assign_resource(struct pci_dev *dev, int i) { return -EBUSY;} |
| 555 | static inline int __pci_register_driver(struct pci_driver *drv, struct module *owner) { return 0;} | ||
| 550 | static inline int pci_register_driver(struct pci_driver *drv) { return 0;} | 556 | static inline int pci_register_driver(struct pci_driver *drv) { return 0;} |
| 551 | static inline void pci_unregister_driver(struct pci_driver *drv) { } | 557 | static inline void pci_unregister_driver(struct pci_driver *drv) { } |
| 552 | static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; } | 558 | static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; } |
| 559 | static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; } | ||
| 553 | static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; } | 560 | static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; } |
| 554 | static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; } | 561 | static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; } |
| 555 | 562 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4e06eb0f4451..4db67b3b05cc 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -442,6 +442,7 @@ | |||
| 442 | #define PCI_DEVICE_ID_IBM_SNIPE 0x0180 | 442 | #define PCI_DEVICE_ID_IBM_SNIPE 0x0180 |
| 443 | #define PCI_DEVICE_ID_IBM_CITRINE 0x028C | 443 | #define PCI_DEVICE_ID_IBM_CITRINE 0x028C |
| 444 | #define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166 | 444 | #define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166 |
| 445 | #define PCI_DEVICE_ID_IBM_OBSIDIAN 0x02BD | ||
| 445 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031 | 446 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031 |
| 446 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219 | 447 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219 |
| 447 | #define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A | 448 | #define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A |
| @@ -619,6 +620,7 @@ | |||
| 619 | #define PCI_DEVICE_ID_SI_961 0x0961 | 620 | #define PCI_DEVICE_ID_SI_961 0x0961 |
| 620 | #define PCI_DEVICE_ID_SI_962 0x0962 | 621 | #define PCI_DEVICE_ID_SI_962 0x0962 |
| 621 | #define PCI_DEVICE_ID_SI_963 0x0963 | 622 | #define PCI_DEVICE_ID_SI_963 0x0963 |
| 623 | #define PCI_DEVICE_ID_SI_965 0x0965 | ||
| 622 | #define PCI_DEVICE_ID_SI_5511 0x5511 | 624 | #define PCI_DEVICE_ID_SI_5511 0x5511 |
| 623 | #define PCI_DEVICE_ID_SI_5513 0x5513 | 625 | #define PCI_DEVICE_ID_SI_5513 0x5513 |
| 624 | #define PCI_DEVICE_ID_SI_5518 0x5518 | 626 | #define PCI_DEVICE_ID_SI_5518 0x5518 |
| @@ -804,6 +806,10 @@ | |||
| 804 | #define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051 | 806 | #define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051 |
| 805 | #define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058 | 807 | #define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058 |
| 806 | #define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059 | 808 | #define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059 |
| 809 | #define PCI_DEVICE_ID_APPLE_IPID2_AGP 0x0066 | ||
| 810 | #define PCI_DEVICE_ID_APPLE_IPID2_ATA 0x0069 | ||
| 811 | #define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a | ||
| 812 | #define PCI_DEVICE_ID_APPLE_IPID2_GMAC 0x006b | ||
| 807 | #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645 | 813 | #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645 |
| 808 | 814 | ||
| 809 | #define PCI_VENDOR_ID_YAMAHA 0x1073 | 815 | #define PCI_VENDOR_ID_YAMAHA 0x1073 |
| @@ -1193,6 +1199,7 @@ | |||
| 1193 | #define PCI_DEVICE_ID_VIA_3269_0 0x0269 | 1199 | #define PCI_DEVICE_ID_VIA_3269_0 0x0269 |
| 1194 | #define PCI_DEVICE_ID_VIA_K8T800PRO_0 0x0282 | 1200 | #define PCI_DEVICE_ID_VIA_K8T800PRO_0 0x0282 |
| 1195 | #define PCI_DEVICE_ID_VIA_8363_0 0x0305 | 1201 | #define PCI_DEVICE_ID_VIA_8363_0 0x0305 |
| 1202 | #define PCI_DEVICE_ID_VIA_P4M800CE 0x0314 | ||
| 1196 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 | 1203 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 |
| 1197 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 | 1204 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 |
| 1198 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 | 1205 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 |
| @@ -1229,6 +1236,7 @@ | |||
| 1229 | #define PCI_DEVICE_ID_VIA_8703_51_0 0x3148 | 1236 | #define PCI_DEVICE_ID_VIA_8703_51_0 0x3148 |
| 1230 | #define PCI_DEVICE_ID_VIA_8237_SATA 0x3149 | 1237 | #define PCI_DEVICE_ID_VIA_8237_SATA 0x3149 |
| 1231 | #define PCI_DEVICE_ID_VIA_XN266 0x3156 | 1238 | #define PCI_DEVICE_ID_VIA_XN266 0x3156 |
| 1239 | #define PCI_DEVICE_ID_VIA_6410 0x3164 | ||
| 1232 | #define PCI_DEVICE_ID_VIA_8754C_0 0x3168 | 1240 | #define PCI_DEVICE_ID_VIA_8754C_0 0x3168 |
| 1233 | #define PCI_DEVICE_ID_VIA_8235 0x3177 | 1241 | #define PCI_DEVICE_ID_VIA_8235 0x3177 |
| 1234 | #define PCI_DEVICE_ID_VIA_8385_0 0x3188 | 1242 | #define PCI_DEVICE_ID_VIA_8385_0 0x3188 |
| @@ -1236,6 +1244,7 @@ | |||
| 1236 | #define PCI_DEVICE_ID_VIA_8378_0 0x3205 | 1244 | #define PCI_DEVICE_ID_VIA_8378_0 0x3205 |
| 1237 | #define PCI_DEVICE_ID_VIA_8783_0 0x3208 | 1245 | #define PCI_DEVICE_ID_VIA_8783_0 0x3208 |
| 1238 | #define PCI_DEVICE_ID_VIA_8237 0x3227 | 1246 | #define PCI_DEVICE_ID_VIA_8237 0x3227 |
| 1247 | #define PCI_DEVICE_ID_VIA_8251 0x3287 | ||
| 1239 | #define PCI_DEVICE_ID_VIA_3296_0 0x0296 | 1248 | #define PCI_DEVICE_ID_VIA_3296_0 0x0296 |
| 1240 | #define PCI_DEVICE_ID_VIA_8231 0x8231 | 1249 | #define PCI_DEVICE_ID_VIA_8231 0x8231 |
| 1241 | #define PCI_DEVICE_ID_VIA_8231_4 0x8235 | 1250 | #define PCI_DEVICE_ID_VIA_8231_4 0x8235 |
| @@ -1396,6 +1405,7 @@ | |||
| 1396 | #define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 | 1405 | #define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 |
| 1397 | 1406 | ||
| 1398 | #define PCI_VENDOR_ID_MARVELL 0x11ab | 1407 | #define PCI_VENDOR_ID_MARVELL 0x11ab |
| 1408 | #define PCI_DEVICE_ID_MARVELL_GT64111 0x4146 | ||
| 1399 | #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 | 1409 | #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 |
| 1400 | #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 | 1410 | #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 |
| 1401 | #define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 | 1411 | #define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 |
| @@ -2147,6 +2157,7 @@ | |||
| 2147 | #define PCI_DEVICE_ID_ADAPTEC2_7899B 0x00c1 | 2157 | #define PCI_DEVICE_ID_ADAPTEC2_7899B 0x00c1 |
| 2148 | #define PCI_DEVICE_ID_ADAPTEC2_7899D 0x00c3 | 2158 | #define PCI_DEVICE_ID_ADAPTEC2_7899D 0x00c3 |
| 2149 | #define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf | 2159 | #define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf |
| 2160 | #define PCI_DEVICE_ID_ADAPTEC2_OBSIDIAN 0x0500 | ||
| 2150 | #define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503 | 2161 | #define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503 |
| 2151 | 2162 | ||
| 2152 | 2163 | ||
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 5451eb1e781d..fb8d2d24e4bb 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -38,7 +38,7 @@ extern void free_percpu(const void *); | |||
| 38 | 38 | ||
| 39 | #else /* CONFIG_SMP */ | 39 | #else /* CONFIG_SMP */ |
| 40 | 40 | ||
| 41 | #define per_cpu_ptr(ptr, cpu) (ptr) | 41 | #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); (ptr); }) |
| 42 | 42 | ||
| 43 | static inline void *__alloc_percpu(size_t size, size_t align) | 43 | static inline void *__alloc_percpu(size_t size, size_t align) |
| 44 | { | 44 | { |
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 1a165b7ae01b..17e336f40b47 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h | |||
| @@ -43,4 +43,19 @@ extern int platform_device_add_data(struct platform_device *pdev, void *data, si | |||
| 43 | extern int platform_device_add(struct platform_device *pdev); | 43 | extern int platform_device_add(struct platform_device *pdev); |
| 44 | extern void platform_device_put(struct platform_device *pdev); | 44 | extern void platform_device_put(struct platform_device *pdev); |
| 45 | 45 | ||
| 46 | struct platform_driver { | ||
| 47 | int (*probe)(struct platform_device *); | ||
| 48 | int (*remove)(struct platform_device *); | ||
| 49 | void (*shutdown)(struct platform_device *); | ||
| 50 | int (*suspend)(struct platform_device *, pm_message_t state); | ||
| 51 | int (*resume)(struct platform_device *); | ||
| 52 | struct device_driver driver; | ||
| 53 | }; | ||
| 54 | |||
| 55 | extern int platform_driver_register(struct platform_driver *); | ||
| 56 | extern void platform_driver_unregister(struct platform_driver *); | ||
| 57 | |||
| 58 | #define platform_get_drvdata(_dev) dev_get_drvdata(&(_dev)->dev) | ||
| 59 | #define platform_set_drvdata(_dev,data) dev_set_drvdata(&(_dev)->dev, (data)) | ||
| 60 | |||
| 46 | #endif /* _PLATFORM_DEVICE_H_ */ | 61 | #endif /* _PLATFORM_DEVICE_H_ */ |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 1514098d156d..5be87ba3b7ac 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
| @@ -94,55 +94,6 @@ struct pm_dev | |||
| 94 | struct list_head entry; | 94 | struct list_head entry; |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | #ifdef CONFIG_PM | ||
| 98 | |||
| 99 | extern int pm_active; | ||
| 100 | |||
| 101 | #define PM_IS_ACTIVE() (pm_active != 0) | ||
| 102 | |||
| 103 | /* | ||
| 104 | * Register a device with power management | ||
| 105 | */ | ||
| 106 | struct pm_dev __deprecated * | ||
| 107 | pm_register(pm_dev_t type, unsigned long id, pm_callback callback); | ||
| 108 | |||
| 109 | /* | ||
| 110 | * Unregister a device with power management | ||
| 111 | */ | ||
| 112 | void __deprecated pm_unregister(struct pm_dev *dev); | ||
| 113 | |||
| 114 | /* | ||
| 115 | * Unregister all devices with matching callback | ||
| 116 | */ | ||
| 117 | void __deprecated pm_unregister_all(pm_callback callback); | ||
| 118 | |||
| 119 | /* | ||
| 120 | * Send a request to all devices | ||
| 121 | */ | ||
| 122 | int __deprecated pm_send_all(pm_request_t rqst, void *data); | ||
| 123 | |||
| 124 | #else /* CONFIG_PM */ | ||
| 125 | |||
| 126 | #define PM_IS_ACTIVE() 0 | ||
| 127 | |||
| 128 | static inline struct pm_dev *pm_register(pm_dev_t type, | ||
| 129 | unsigned long id, | ||
| 130 | pm_callback callback) | ||
| 131 | { | ||
| 132 | return NULL; | ||
| 133 | } | ||
| 134 | |||
| 135 | static inline void pm_unregister(struct pm_dev *dev) {} | ||
| 136 | |||
| 137 | static inline void pm_unregister_all(pm_callback callback) {} | ||
| 138 | |||
| 139 | static inline int pm_send_all(pm_request_t rqst, void *data) | ||
| 140 | { | ||
| 141 | return 0; | ||
| 142 | } | ||
| 143 | |||
| 144 | #endif /* CONFIG_PM */ | ||
| 145 | |||
| 146 | /* Functions above this comment are list-based old-style power | 97 | /* Functions above this comment are list-based old-style power |
| 147 | * managment. Please avoid using them. */ | 98 | * managment. Please avoid using them. */ |
| 148 | 99 | ||
diff --git a/include/linux/pm_legacy.h b/include/linux/pm_legacy.h new file mode 100644 index 000000000000..1252b45face1 --- /dev/null +++ b/include/linux/pm_legacy.h | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | #ifndef __LINUX_PM_LEGACY_H__ | ||
| 2 | #define __LINUX_PM_LEGACY_H__ | ||
| 3 | |||
| 4 | #include <linux/config.h> | ||
| 5 | |||
| 6 | #ifdef CONFIG_PM_LEGACY | ||
| 7 | |||
| 8 | extern int pm_active; | ||
| 9 | |||
| 10 | #define PM_IS_ACTIVE() (pm_active != 0) | ||
| 11 | |||
| 12 | /* | ||
| 13 | * Register a device with power management | ||
| 14 | */ | ||
| 15 | struct pm_dev __deprecated * | ||
| 16 | pm_register(pm_dev_t type, unsigned long id, pm_callback callback); | ||
| 17 | |||
| 18 | /* | ||
| 19 | * Unregister a device with power management | ||
| 20 | */ | ||
| 21 | void __deprecated pm_unregister(struct pm_dev *dev); | ||
| 22 | |||
| 23 | /* | ||
| 24 | * Unregister all devices with matching callback | ||
| 25 | */ | ||
| 26 | void __deprecated pm_unregister_all(pm_callback callback); | ||
| 27 | |||
| 28 | /* | ||
| 29 | * Send a request to all devices | ||
| 30 | */ | ||
| 31 | int __deprecated pm_send_all(pm_request_t rqst, void *data); | ||
| 32 | |||
| 33 | #else /* CONFIG_PM_LEGACY */ | ||
| 34 | |||
| 35 | #define PM_IS_ACTIVE() 0 | ||
| 36 | |||
| 37 | static inline struct pm_dev *pm_register(pm_dev_t type, | ||
| 38 | unsigned long id, | ||
| 39 | pm_callback callback) | ||
| 40 | { | ||
| 41 | return NULL; | ||
| 42 | } | ||
| 43 | |||
| 44 | static inline void pm_unregister(struct pm_dev *dev) {} | ||
| 45 | |||
| 46 | static inline void pm_unregister_all(pm_callback callback) {} | ||
| 47 | |||
| 48 | static inline int pm_send_all(pm_request_t rqst, void *data) | ||
| 49 | { | ||
| 50 | return 0; | ||
| 51 | } | ||
| 52 | |||
| 53 | #endif /* CONFIG_PM_LEGACY */ | ||
| 54 | |||
| 55 | #endif /* __LINUX_PM_LEGACY_H__ */ | ||
| 56 | |||
diff --git a/include/linux/preempt.h b/include/linux/preempt.h index dd98c54a23b4..5769d14d1e6a 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/config.h> | 9 | #include <linux/config.h> |
| 10 | #include <linux/thread_info.h> | ||
| 10 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
| 11 | 12 | ||
| 12 | #ifdef CONFIG_DEBUG_PREEMPT | 13 | #ifdef CONFIG_DEBUG_PREEMPT |
| @@ -47,6 +48,7 @@ do { \ | |||
| 47 | #define preempt_enable() \ | 48 | #define preempt_enable() \ |
| 48 | do { \ | 49 | do { \ |
| 49 | preempt_enable_no_resched(); \ | 50 | preempt_enable_no_resched(); \ |
| 51 | barrier(); \ | ||
| 50 | preempt_check_resched(); \ | 52 | preempt_check_resched(); \ |
| 51 | } while (0) | 53 | } while (0) |
| 52 | 54 | ||
diff --git a/include/linux/raid_class.h b/include/linux/raid_class.h index a71123c28272..48831eac2910 100644 --- a/include/linux/raid_class.h +++ b/include/linux/raid_class.h | |||
| @@ -1,4 +1,9 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * raid_class.h - a generic raid visualisation class | ||
| 3 | * | ||
| 4 | * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com> | ||
| 5 | * | ||
| 6 | * This file is licensed under GPLv2 | ||
| 2 | */ | 7 | */ |
| 3 | #include <linux/transport_class.h> | 8 | #include <linux/transport_class.h> |
| 4 | 9 | ||
| @@ -14,20 +19,35 @@ struct raid_function_template { | |||
| 14 | }; | 19 | }; |
| 15 | 20 | ||
| 16 | enum raid_state { | 21 | enum raid_state { |
| 17 | RAID_ACTIVE = 1, | 22 | RAID_STATE_UNKNOWN = 0, |
| 18 | RAID_DEGRADED, | 23 | RAID_STATE_ACTIVE, |
| 19 | RAID_RESYNCING, | 24 | RAID_STATE_DEGRADED, |
| 20 | RAID_OFFLINE, | 25 | RAID_STATE_RESYNCING, |
| 26 | RAID_STATE_OFFLINE, | ||
| 27 | }; | ||
| 28 | |||
| 29 | enum raid_level { | ||
| 30 | RAID_LEVEL_UNKNOWN = 0, | ||
| 31 | RAID_LEVEL_LINEAR, | ||
| 32 | RAID_LEVEL_0, | ||
| 33 | RAID_LEVEL_1, | ||
| 34 | RAID_LEVEL_3, | ||
| 35 | RAID_LEVEL_4, | ||
| 36 | RAID_LEVEL_5, | ||
| 37 | RAID_LEVEL_6, | ||
| 21 | }; | 38 | }; |
| 22 | 39 | ||
| 23 | struct raid_data { | 40 | struct raid_data { |
| 24 | struct list_head component_list; | 41 | struct list_head component_list; |
| 25 | int component_count; | 42 | int component_count; |
| 26 | int level; | 43 | enum raid_level level; |
| 27 | enum raid_state state; | 44 | enum raid_state state; |
| 28 | int resync; | 45 | int resync; |
| 29 | }; | 46 | }; |
| 30 | 47 | ||
| 48 | /* resync complete goes from 0 to this */ | ||
| 49 | #define RAID_MAX_RESYNC (10000) | ||
| 50 | |||
| 31 | #define DEFINE_RAID_ATTRIBUTE(type, attr) \ | 51 | #define DEFINE_RAID_ATTRIBUTE(type, attr) \ |
| 32 | static inline void \ | 52 | static inline void \ |
| 33 | raid_set_##attr(struct raid_template *r, struct device *dev, type value) { \ | 53 | raid_set_##attr(struct raid_template *r, struct device *dev, type value) { \ |
| @@ -48,7 +68,7 @@ raid_get_##attr(struct raid_template *r, struct device *dev) { \ | |||
| 48 | return rd->attr; \ | 68 | return rd->attr; \ |
| 49 | } | 69 | } |
| 50 | 70 | ||
| 51 | DEFINE_RAID_ATTRIBUTE(int, level) | 71 | DEFINE_RAID_ATTRIBUTE(enum raid_level, level) |
| 52 | DEFINE_RAID_ATTRIBUTE(int, resync) | 72 | DEFINE_RAID_ATTRIBUTE(int, resync) |
| 53 | DEFINE_RAID_ATTRIBUTE(enum raid_state, state) | 73 | DEFINE_RAID_ATTRIBUTE(enum raid_state, state) |
| 54 | 74 | ||
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index cce25591eec2..a471f3bb713e 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -100,6 +100,7 @@ struct rcu_data { | |||
| 100 | struct rcu_head *donelist; | 100 | struct rcu_head *donelist; |
| 101 | struct rcu_head **donetail; | 101 | struct rcu_head **donetail; |
| 102 | int cpu; | 102 | int cpu; |
| 103 | struct rcu_head barrier; | ||
| 103 | }; | 104 | }; |
| 104 | 105 | ||
| 105 | DECLARE_PER_CPU(struct rcu_data, rcu_data); | 106 | DECLARE_PER_CPU(struct rcu_data, rcu_data); |
| @@ -285,6 +286,7 @@ extern void FASTCALL(call_rcu_bh(struct rcu_head *head, | |||
| 285 | extern __deprecated_for_modules void synchronize_kernel(void); | 286 | extern __deprecated_for_modules void synchronize_kernel(void); |
| 286 | extern void synchronize_rcu(void); | 287 | extern void synchronize_rcu(void); |
| 287 | void synchronize_idle(void); | 288 | void synchronize_idle(void); |
| 289 | extern void rcu_barrier(void); | ||
| 288 | 290 | ||
| 289 | #endif /* __KERNEL__ */ | 291 | #endif /* __KERNEL__ */ |
| 290 | #endif /* __LINUX_RCUPDATE_H */ | 292 | #endif /* __LINUX_RCUPDATE_H */ |
diff --git a/include/linux/relayfs_fs.h b/include/linux/relayfs_fs.h index cfafc3e76bc2..fb7e80737325 100644 --- a/include/linux/relayfs_fs.h +++ b/include/linux/relayfs_fs.h | |||
| @@ -20,9 +20,9 @@ | |||
| 20 | #include <linux/kref.h> | 20 | #include <linux/kref.h> |
| 21 | 21 | ||
| 22 | /* | 22 | /* |
| 23 | * Tracks changes to rchan_buf struct | 23 | * Tracks changes to rchan/rchan_buf structs |
| 24 | */ | 24 | */ |
| 25 | #define RELAYFS_CHANNEL_VERSION 5 | 25 | #define RELAYFS_CHANNEL_VERSION 6 |
| 26 | 26 | ||
| 27 | /* | 27 | /* |
| 28 | * Per-cpu relay channel buffer | 28 | * Per-cpu relay channel buffer |
| @@ -60,6 +60,7 @@ struct rchan | |||
| 60 | struct rchan_callbacks *cb; /* client callbacks */ | 60 | struct rchan_callbacks *cb; /* client callbacks */ |
| 61 | struct kref kref; /* channel refcount */ | 61 | struct kref kref; /* channel refcount */ |
| 62 | void *private_data; /* for user-defined data */ | 62 | void *private_data; /* for user-defined data */ |
| 63 | size_t last_toobig; /* tried to log event > subbuf size */ | ||
| 63 | struct rchan_buf *buf[NR_CPUS]; /* per-cpu channel buffers */ | 64 | struct rchan_buf *buf[NR_CPUS]; /* per-cpu channel buffers */ |
| 64 | }; | 65 | }; |
| 65 | 66 | ||
diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 35b30e6c8cf8..33261f1d2239 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h | |||
| @@ -89,7 +89,7 @@ static inline void page_dup_rmap(struct page *page) | |||
| 89 | /* | 89 | /* |
| 90 | * Called from mm/vmscan.c to handle paging out | 90 | * Called from mm/vmscan.c to handle paging out |
| 91 | */ | 91 | */ |
| 92 | int page_referenced(struct page *, int is_locked, int ignore_token); | 92 | int page_referenced(struct page *, int is_locked); |
| 93 | int try_to_unmap(struct page *); | 93 | int try_to_unmap(struct page *); |
| 94 | 94 | ||
| 95 | /* | 95 | /* |
| @@ -109,7 +109,7 @@ unsigned long page_address_in_vma(struct page *, struct vm_area_struct *); | |||
| 109 | #define anon_vma_prepare(vma) (0) | 109 | #define anon_vma_prepare(vma) (0) |
| 110 | #define anon_vma_link(vma) do {} while (0) | 110 | #define anon_vma_link(vma) do {} while (0) |
| 111 | 111 | ||
| 112 | #define page_referenced(page,l,i) TestClearPageReferenced(page) | 112 | #define page_referenced(page,l) TestClearPageReferenced(page) |
| 113 | #define try_to_unmap(page) SWAP_FAIL | 113 | #define try_to_unmap(page) SWAP_FAIL |
| 114 | 114 | ||
| 115 | #endif /* CONFIG_MMU */ | 115 | #endif /* CONFIG_MMU */ |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index c231e9a08f0b..d50482ba27fe 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
| @@ -866,6 +866,7 @@ enum rtnetlink_groups { | |||
| 866 | #define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE | 866 | #define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE |
| 867 | RTNLGRP_IPV4_ROUTE, | 867 | RTNLGRP_IPV4_ROUTE, |
| 868 | #define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE | 868 | #define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE |
| 869 | RTNLGRP_NOP1, | ||
| 869 | RTNLGRP_IPV6_IFADDR, | 870 | RTNLGRP_IPV6_IFADDR, |
| 870 | #define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR | 871 | #define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR |
| 871 | RTNLGRP_IPV6_MROUTE, | 872 | RTNLGRP_IPV6_MROUTE, |
| @@ -876,8 +877,11 @@ enum rtnetlink_groups { | |||
| 876 | #define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO | 877 | #define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO |
| 877 | RTNLGRP_DECnet_IFADDR, | 878 | RTNLGRP_DECnet_IFADDR, |
| 878 | #define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR | 879 | #define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR |
| 880 | RTNLGRP_NOP2, | ||
| 879 | RTNLGRP_DECnet_ROUTE, | 881 | RTNLGRP_DECnet_ROUTE, |
| 880 | #define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE | 882 | #define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE |
| 883 | RTNLGRP_NOP3, | ||
| 884 | RTNLGRP_NOP4, | ||
| 881 | RTNLGRP_IPV6_PREFIX, | 885 | RTNLGRP_IPV6_PREFIX, |
| 882 | #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX | 886 | #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX |
| 883 | __RTNLGRP_MAX | 887 | __RTNLGRP_MAX |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 2bbf968b23d9..b0ad6f30679e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -357,7 +357,6 @@ struct mm_struct { | |||
| 357 | /* aio bits */ | 357 | /* aio bits */ |
| 358 | rwlock_t ioctx_list_lock; | 358 | rwlock_t ioctx_list_lock; |
| 359 | struct kioctx *ioctx_list; | 359 | struct kioctx *ioctx_list; |
| 360 | struct kioctx default_kioctx; | ||
| 361 | }; | 360 | }; |
| 362 | 361 | ||
| 363 | struct sighand_struct { | 362 | struct sighand_struct { |
| @@ -909,7 +908,6 @@ do { if (atomic_dec_and_test(&(tsk)->usage)) __put_task_struct(tsk); } while(0) | |||
| 909 | #define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */ | 908 | #define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */ |
| 910 | #define PF_BORROWED_MM 0x00400000 /* I am a kthread doing use_mm */ | 909 | #define PF_BORROWED_MM 0x00400000 /* I am a kthread doing use_mm */ |
| 911 | #define PF_RANDOMIZE 0x00800000 /* randomize virtual address space */ | 910 | #define PF_RANDOMIZE 0x00800000 /* randomize virtual address space */ |
| 912 | #define PF_HOTPLUG_CPU 0x01000000 /* Currently performing CPU hotplug */ | ||
| 913 | 911 | ||
| 914 | /* | 912 | /* |
| 915 | * Only the _current_ task can read/write to tsk->flags, but other | 913 | * Only the _current_ task can read/write to tsk->flags, but other |
| @@ -1233,32 +1231,49 @@ static inline void task_unlock(struct task_struct *p) | |||
| 1233 | spin_unlock(&p->alloc_lock); | 1231 | spin_unlock(&p->alloc_lock); |
| 1234 | } | 1232 | } |
| 1235 | 1233 | ||
| 1234 | #ifndef __HAVE_THREAD_FUNCTIONS | ||
| 1235 | |||
| 1236 | #define task_thread_info(task) (task)->thread_info | ||
| 1237 | |||
| 1238 | static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org) | ||
| 1239 | { | ||
| 1240 | *task_thread_info(p) = *task_thread_info(org); | ||
| 1241 | task_thread_info(p)->task = p; | ||
| 1242 | } | ||
| 1243 | |||
| 1244 | static inline unsigned long *end_of_stack(struct task_struct *p) | ||
| 1245 | { | ||
| 1246 | return (unsigned long *)(p->thread_info + 1); | ||
| 1247 | } | ||
| 1248 | |||
| 1249 | #endif | ||
| 1250 | |||
| 1236 | /* set thread flags in other task's structures | 1251 | /* set thread flags in other task's structures |
| 1237 | * - see asm/thread_info.h for TIF_xxxx flags available | 1252 | * - see asm/thread_info.h for TIF_xxxx flags available |
| 1238 | */ | 1253 | */ |
| 1239 | static inline void set_tsk_thread_flag(struct task_struct *tsk, int flag) | 1254 | static inline void set_tsk_thread_flag(struct task_struct *tsk, int flag) |
| 1240 | { | 1255 | { |
| 1241 | set_ti_thread_flag(tsk->thread_info,flag); | 1256 | set_ti_thread_flag(task_thread_info(tsk), flag); |
| 1242 | } | 1257 | } |
| 1243 | 1258 | ||
| 1244 | static inline void clear_tsk_thread_flag(struct task_struct *tsk, int flag) | 1259 | static inline void clear_tsk_thread_flag(struct task_struct *tsk, int flag) |
| 1245 | { | 1260 | { |
| 1246 | clear_ti_thread_flag(tsk->thread_info,flag); | 1261 | clear_ti_thread_flag(task_thread_info(tsk), flag); |
| 1247 | } | 1262 | } |
| 1248 | 1263 | ||
| 1249 | static inline int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag) | 1264 | static inline int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag) |
| 1250 | { | 1265 | { |
| 1251 | return test_and_set_ti_thread_flag(tsk->thread_info,flag); | 1266 | return test_and_set_ti_thread_flag(task_thread_info(tsk), flag); |
| 1252 | } | 1267 | } |
| 1253 | 1268 | ||
| 1254 | static inline int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag) | 1269 | static inline int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag) |
| 1255 | { | 1270 | { |
| 1256 | return test_and_clear_ti_thread_flag(tsk->thread_info,flag); | 1271 | return test_and_clear_ti_thread_flag(task_thread_info(tsk), flag); |
| 1257 | } | 1272 | } |
| 1258 | 1273 | ||
| 1259 | static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag) | 1274 | static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag) |
| 1260 | { | 1275 | { |
| 1261 | return test_ti_thread_flag(tsk->thread_info,flag); | 1276 | return test_ti_thread_flag(task_thread_info(tsk), flag); |
| 1262 | } | 1277 | } |
| 1263 | 1278 | ||
| 1264 | static inline void set_tsk_need_resched(struct task_struct *tsk) | 1279 | static inline void set_tsk_need_resched(struct task_struct *tsk) |
| @@ -1329,12 +1344,12 @@ extern void signal_wake_up(struct task_struct *t, int resume_stopped); | |||
| 1329 | 1344 | ||
| 1330 | static inline unsigned int task_cpu(const struct task_struct *p) | 1345 | static inline unsigned int task_cpu(const struct task_struct *p) |
| 1331 | { | 1346 | { |
| 1332 | return p->thread_info->cpu; | 1347 | return task_thread_info(p)->cpu; |
| 1333 | } | 1348 | } |
| 1334 | 1349 | ||
| 1335 | static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) | 1350 | static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) |
| 1336 | { | 1351 | { |
| 1337 | p->thread_info->cpu = cpu; | 1352 | task_thread_info(p)->cpu = cpu; |
| 1338 | } | 1353 | } |
| 1339 | 1354 | ||
| 1340 | #else | 1355 | #else |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index a3ac92b19aca..e3710d7e260a 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
| @@ -121,6 +121,9 @@ | |||
| 121 | 121 | ||
| 122 | #define PORT_IP3106 70 | 122 | #define PORT_IP3106 70 |
| 123 | 123 | ||
| 124 | /* Hilscher netx */ | ||
| 125 | #define PORT_NETX 71 | ||
| 126 | |||
| 124 | #ifdef __KERNEL__ | 127 | #ifdef __KERNEL__ |
| 125 | 128 | ||
| 126 | #include <linux/config.h> | 129 | #include <linux/config.h> |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 83010231db99..8c5d6001a923 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -206,6 +206,7 @@ enum { | |||
| 206 | * @nfct: Associated connection, if any | 206 | * @nfct: Associated connection, if any |
| 207 | * @ipvs_property: skbuff is owned by ipvs | 207 | * @ipvs_property: skbuff is owned by ipvs |
| 208 | * @nfctinfo: Relationship of this skb to the connection | 208 | * @nfctinfo: Relationship of this skb to the connection |
| 209 | * @nfct_reasm: netfilter conntrack re-assembly pointer | ||
| 209 | * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c | 210 | * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c |
| 210 | * @tc_index: Traffic control index | 211 | * @tc_index: Traffic control index |
| 211 | * @tc_verd: traffic control verdict | 212 | * @tc_verd: traffic control verdict |
| @@ -264,16 +265,14 @@ struct sk_buff { | |||
| 264 | nohdr:1, | 265 | nohdr:1, |
| 265 | nfctinfo:3; | 266 | nfctinfo:3; |
| 266 | __u8 pkt_type:3, | 267 | __u8 pkt_type:3, |
| 267 | fclone:2; | 268 | fclone:2, |
| 269 | ipvs_property:1; | ||
| 268 | __be16 protocol; | 270 | __be16 protocol; |
| 269 | 271 | ||
| 270 | void (*destructor)(struct sk_buff *skb); | 272 | void (*destructor)(struct sk_buff *skb); |
| 271 | #ifdef CONFIG_NETFILTER | 273 | #ifdef CONFIG_NETFILTER |
| 272 | __u32 nfmark; | 274 | __u32 nfmark; |
| 273 | struct nf_conntrack *nfct; | 275 | struct nf_conntrack *nfct; |
| 274 | #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) | ||
| 275 | __u8 ipvs_property:1; | ||
| 276 | #endif | ||
| 277 | #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) | 276 | #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) |
| 278 | struct sk_buff *nfct_reasm; | 277 | struct sk_buff *nfct_reasm; |
| 279 | #endif | 278 | #endif |
| @@ -1236,8 +1235,7 @@ extern unsigned int datagram_poll(struct file *file, struct socket *sock, | |||
| 1236 | extern int skb_copy_datagram_iovec(const struct sk_buff *from, | 1235 | extern int skb_copy_datagram_iovec(const struct sk_buff *from, |
| 1237 | int offset, struct iovec *to, | 1236 | int offset, struct iovec *to, |
| 1238 | int size); | 1237 | int size); |
| 1239 | extern int skb_copy_and_csum_datagram_iovec(const | 1238 | extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb, |
| 1240 | struct sk_buff *skb, | ||
| 1241 | int hlen, | 1239 | int hlen, |
| 1242 | struct iovec *iov); | 1240 | struct iovec *iov); |
| 1243 | extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb); | 1241 | extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb); |
| @@ -1305,6 +1303,30 @@ static inline void skb_set_timestamp(struct sk_buff *skb, const struct timeval * | |||
| 1305 | 1303 | ||
| 1306 | extern void __net_timestamp(struct sk_buff *skb); | 1304 | extern void __net_timestamp(struct sk_buff *skb); |
| 1307 | 1305 | ||
| 1306 | extern unsigned int __skb_checksum_complete(struct sk_buff *skb); | ||
| 1307 | |||
| 1308 | /** | ||
| 1309 | * skb_checksum_complete - Calculate checksum of an entire packet | ||
| 1310 | * @skb: packet to process | ||
| 1311 | * | ||
| 1312 | * This function calculates the checksum over the entire packet plus | ||
| 1313 | * the value of skb->csum. The latter can be used to supply the | ||
| 1314 | * checksum of a pseudo header as used by TCP/UDP. It returns the | ||
| 1315 | * checksum. | ||
| 1316 | * | ||
| 1317 | * For protocols that contain complete checksums such as ICMP/TCP/UDP, | ||
| 1318 | * this function can be used to verify that checksum on received | ||
| 1319 | * packets. In that case the function should return zero if the | ||
| 1320 | * checksum is correct. In particular, this function will return zero | ||
| 1321 | * if skb->ip_summed is CHECKSUM_UNNECESSARY which indicates that the | ||
| 1322 | * hardware has already verified the correctness of the checksum. | ||
| 1323 | */ | ||
| 1324 | static inline unsigned int skb_checksum_complete(struct sk_buff *skb) | ||
| 1325 | { | ||
| 1326 | return skb->ip_summed != CHECKSUM_UNNECESSARY && | ||
| 1327 | __skb_checksum_complete(skb); | ||
| 1328 | } | ||
| 1329 | |||
| 1308 | #ifdef CONFIG_NETFILTER | 1330 | #ifdef CONFIG_NETFILTER |
| 1309 | static inline void nf_conntrack_put(struct nf_conntrack *nfct) | 1331 | static inline void nf_conntrack_put(struct nf_conntrack *nfct) |
| 1310 | { | 1332 | { |
diff --git a/include/linux/smp_lock.h b/include/linux/smp_lock.h index b63ce7014093..fa1ff3b165fe 100644 --- a/include/linux/smp_lock.h +++ b/include/linux/smp_lock.h | |||
| @@ -2,11 +2,10 @@ | |||
| 2 | #define __LINUX_SMPLOCK_H | 2 | #define __LINUX_SMPLOCK_H |
| 3 | 3 | ||
| 4 | #include <linux/config.h> | 4 | #include <linux/config.h> |
| 5 | #ifdef CONFIG_LOCK_KERNEL | ||
| 5 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
| 6 | #include <linux/spinlock.h> | 7 | #include <linux/spinlock.h> |
| 7 | 8 | ||
| 8 | #ifdef CONFIG_LOCK_KERNEL | ||
| 9 | |||
| 10 | #define kernel_locked() (current->lock_depth >= 0) | 9 | #define kernel_locked() (current->lock_depth >= 0) |
| 11 | 10 | ||
| 12 | extern int __lockfunc __reacquire_kernel_lock(void); | 11 | extern int __lockfunc __reacquire_kernel_lock(void); |
diff --git a/include/linux/swap.h b/include/linux/swap.h index 20c975642cab..508668f840b6 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -239,6 +239,11 @@ static inline void put_swap_token(struct mm_struct *mm) | |||
| 239 | __put_swap_token(mm); | 239 | __put_swap_token(mm); |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | static inline void disable_swap_token(void) | ||
| 243 | { | ||
| 244 | put_swap_token(swap_token_mm); | ||
| 245 | } | ||
| 246 | |||
| 242 | #else /* CONFIG_SWAP */ | 247 | #else /* CONFIG_SWAP */ |
| 243 | 248 | ||
| 244 | #define total_swap_pages 0 | 249 | #define total_swap_pages 0 |
| @@ -283,6 +288,7 @@ static inline swp_entry_t get_swap_page(void) | |||
| 283 | #define put_swap_token(x) do { } while(0) | 288 | #define put_swap_token(x) do { } while(0) |
| 284 | #define grab_swap_token() do { } while(0) | 289 | #define grab_swap_token() do { } while(0) |
| 285 | #define has_swap_token(x) 0 | 290 | #define has_swap_token(x) 0 |
| 291 | #define disable_swap_token() do { } while(0) | ||
| 286 | 292 | ||
| 287 | #endif /* CONFIG_SWAP */ | 293 | #endif /* CONFIG_SWAP */ |
| 288 | #endif /* __KERNEL__*/ | 294 | #endif /* __KERNEL__*/ |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 22cf5e1ac987..4be34ef8c2f7 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
| @@ -20,7 +20,6 @@ | |||
| 20 | 20 | ||
| 21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
| 22 | #include <linux/types.h> | 22 | #include <linux/types.h> |
| 23 | #include <linux/list.h> | ||
| 24 | #include <linux/compiler.h> | 23 | #include <linux/compiler.h> |
| 25 | 24 | ||
| 26 | struct file; | 25 | struct file; |
| @@ -390,6 +389,7 @@ enum | |||
| 390 | NET_TCP_BIC_BETA=108, | 389 | NET_TCP_BIC_BETA=108, |
| 391 | NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, | 390 | NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, |
| 392 | NET_TCP_CONG_CONTROL=110, | 391 | NET_TCP_CONG_CONTROL=110, |
| 392 | NET_TCP_ABC=111, | ||
| 393 | }; | 393 | }; |
| 394 | 394 | ||
| 395 | enum { | 395 | enum { |
| @@ -670,6 +670,9 @@ enum { | |||
| 670 | NET_DECNET_DST_GC_INTERVAL = 9, | 670 | NET_DECNET_DST_GC_INTERVAL = 9, |
| 671 | NET_DECNET_CONF = 10, | 671 | NET_DECNET_CONF = 10, |
| 672 | NET_DECNET_NO_FC_MAX_CWND = 11, | 672 | NET_DECNET_NO_FC_MAX_CWND = 11, |
| 673 | NET_DECNET_MEM = 12, | ||
| 674 | NET_DECNET_RMEM = 13, | ||
| 675 | NET_DECNET_WMEM = 14, | ||
| 673 | NET_DECNET_DEBUG_LEVEL = 255 | 676 | NET_DECNET_DEBUG_LEVEL = 255 |
| 674 | }; | 677 | }; |
| 675 | 678 | ||
| @@ -714,6 +717,7 @@ enum { | |||
| 714 | NET_SCTP_PRSCTP_ENABLE = 14, | 717 | NET_SCTP_PRSCTP_ENABLE = 14, |
| 715 | NET_SCTP_SNDBUF_POLICY = 15, | 718 | NET_SCTP_SNDBUF_POLICY = 15, |
| 716 | NET_SCTP_SACK_TIMEOUT = 16, | 719 | NET_SCTP_SACK_TIMEOUT = 16, |
| 720 | NET_SCTP_RCVBUF_POLICY = 17, | ||
| 717 | }; | 721 | }; |
| 718 | 722 | ||
| 719 | /* /proc/sys/net/bridge */ | 723 | /* /proc/sys/net/bridge */ |
| @@ -857,6 +861,7 @@ enum | |||
| 857 | }; | 861 | }; |
| 858 | 862 | ||
| 859 | #ifdef __KERNEL__ | 863 | #ifdef __KERNEL__ |
| 864 | #include <linux/list.h> | ||
| 860 | 865 | ||
| 861 | extern void sysctl_init(void); | 866 | extern void sysctl_init(void); |
| 862 | 867 | ||
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index ac4ca44c75ca..0e1da6602e05 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
| @@ -307,6 +307,21 @@ struct tcp_sock { | |||
| 307 | struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */ | 307 | struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */ |
| 308 | struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/ | 308 | struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/ |
| 309 | 309 | ||
| 310 | struct tcp_sack_block recv_sack_cache[4]; | ||
| 311 | |||
| 312 | /* from STCP, retrans queue hinting */ | ||
| 313 | struct sk_buff* lost_skb_hint; | ||
| 314 | |||
| 315 | struct sk_buff *scoreboard_skb_hint; | ||
| 316 | struct sk_buff *retransmit_skb_hint; | ||
| 317 | struct sk_buff *forward_skb_hint; | ||
| 318 | struct sk_buff *fastpath_skb_hint; | ||
| 319 | |||
| 320 | int fastpath_cnt_hint; | ||
| 321 | int lost_cnt_hint; | ||
| 322 | int retransmit_cnt_hint; | ||
| 323 | int forward_cnt_hint; | ||
| 324 | |||
| 310 | __u16 advmss; /* Advertised MSS */ | 325 | __u16 advmss; /* Advertised MSS */ |
| 311 | __u16 prior_ssthresh; /* ssthresh saved at recovery start */ | 326 | __u16 prior_ssthresh; /* ssthresh saved at recovery start */ |
| 312 | __u32 lost_out; /* Lost packets */ | 327 | __u32 lost_out; /* Lost packets */ |
| @@ -326,6 +341,7 @@ struct tcp_sock { | |||
| 326 | __u32 snd_up; /* Urgent pointer */ | 341 | __u32 snd_up; /* Urgent pointer */ |
| 327 | 342 | ||
| 328 | __u32 total_retrans; /* Total retransmits for entire connection */ | 343 | __u32 total_retrans; /* Total retransmits for entire connection */ |
| 344 | __u32 bytes_acked; /* Appropriate Byte Counting - RFC3465 */ | ||
| 329 | 345 | ||
| 330 | unsigned int keepalive_time; /* time before keep alive takes place */ | 346 | unsigned int keepalive_time; /* time before keep alive takes place */ |
| 331 | unsigned int keepalive_intvl; /* time interval between keep alive probes */ | 347 | unsigned int keepalive_intvl; /* time interval between keep alive probes */ |
diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h index d252f45a0f9b..1c4eb41dbd89 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h | |||
| @@ -27,31 +27,6 @@ extern long do_no_restart_syscall(struct restart_block *parm); | |||
| 27 | * - pass TIF_xxxx constants to these functions | 27 | * - pass TIF_xxxx constants to these functions |
| 28 | */ | 28 | */ |
| 29 | 29 | ||
| 30 | static inline void set_thread_flag(int flag) | ||
| 31 | { | ||
| 32 | set_bit(flag,¤t_thread_info()->flags); | ||
| 33 | } | ||
| 34 | |||
| 35 | static inline void clear_thread_flag(int flag) | ||
| 36 | { | ||
| 37 | clear_bit(flag,¤t_thread_info()->flags); | ||
| 38 | } | ||
| 39 | |||
| 40 | static inline int test_and_set_thread_flag(int flag) | ||
| 41 | { | ||
| 42 | return test_and_set_bit(flag,¤t_thread_info()->flags); | ||
| 43 | } | ||
| 44 | |||
| 45 | static inline int test_and_clear_thread_flag(int flag) | ||
| 46 | { | ||
| 47 | return test_and_clear_bit(flag,¤t_thread_info()->flags); | ||
| 48 | } | ||
| 49 | |||
| 50 | static inline int test_thread_flag(int flag) | ||
| 51 | { | ||
| 52 | return test_bit(flag,¤t_thread_info()->flags); | ||
| 53 | } | ||
| 54 | |||
| 55 | static inline void set_ti_thread_flag(struct thread_info *ti, int flag) | 30 | static inline void set_ti_thread_flag(struct thread_info *ti, int flag) |
| 56 | { | 31 | { |
| 57 | set_bit(flag,&ti->flags); | 32 | set_bit(flag,&ti->flags); |
| @@ -77,15 +52,19 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag) | |||
| 77 | return test_bit(flag,&ti->flags); | 52 | return test_bit(flag,&ti->flags); |
| 78 | } | 53 | } |
| 79 | 54 | ||
| 80 | static inline void set_need_resched(void) | 55 | #define set_thread_flag(flag) \ |
| 81 | { | 56 | set_ti_thread_flag(current_thread_info(), flag) |
| 82 | set_thread_flag(TIF_NEED_RESCHED); | 57 | #define clear_thread_flag(flag) \ |
| 83 | } | 58 | clear_ti_thread_flag(current_thread_info(), flag) |
| 84 | 59 | #define test_and_set_thread_flag(flag) \ | |
| 85 | static inline void clear_need_resched(void) | 60 | test_and_set_ti_thread_flag(current_thread_info(), flag) |
| 86 | { | 61 | #define test_and_clear_thread_flag(flag) \ |
| 87 | clear_thread_flag(TIF_NEED_RESCHED); | 62 | test_and_clear_ti_thread_flag(current_thread_info(), flag) |
| 88 | } | 63 | #define test_thread_flag(flag) \ |
| 64 | test_ti_thread_flag(current_thread_info(), flag) | ||
| 65 | |||
| 66 | #define set_need_resched() set_thread_flag(TIF_NEED_RESCHED) | ||
| 67 | #define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED) | ||
| 89 | 68 | ||
| 90 | #endif | 69 | #endif |
| 91 | 70 | ||
diff --git a/include/linux/time.h b/include/linux/time.h index 8e83f4e778bb..797ccd813bb0 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
| @@ -95,13 +95,14 @@ struct itimerval; | |||
| 95 | extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue); | 95 | extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue); |
| 96 | extern int do_getitimer(int which, struct itimerval *value); | 96 | extern int do_getitimer(int which, struct itimerval *value); |
| 97 | extern void getnstimeofday (struct timespec *tv); | 97 | extern void getnstimeofday (struct timespec *tv); |
| 98 | extern void getnstimestamp(struct timespec *ts); | ||
| 98 | 99 | ||
| 99 | extern struct timespec timespec_trunc(struct timespec t, unsigned gran); | 100 | extern struct timespec timespec_trunc(struct timespec t, unsigned gran); |
| 100 | 101 | ||
| 101 | static inline void | 102 | static inline void |
| 102 | set_normalized_timespec (struct timespec *ts, time_t sec, long nsec) | 103 | set_normalized_timespec (struct timespec *ts, time_t sec, long nsec) |
| 103 | { | 104 | { |
| 104 | while (nsec > NSEC_PER_SEC) { | 105 | while (nsec >= NSEC_PER_SEC) { |
| 105 | nsec -= NSEC_PER_SEC; | 106 | nsec -= NSEC_PER_SEC; |
| 106 | ++sec; | 107 | ++sec; |
| 107 | } | 108 | } |
diff --git a/include/linux/uinput.h b/include/linux/uinput.h index 84876077027f..0ff7ca68e5c5 100644 --- a/include/linux/uinput.h +++ b/include/linux/uinput.h | |||
| @@ -34,8 +34,7 @@ | |||
| 34 | #define UINPUT_BUFFER_SIZE 16 | 34 | #define UINPUT_BUFFER_SIZE 16 |
| 35 | #define UINPUT_NUM_REQUESTS 16 | 35 | #define UINPUT_NUM_REQUESTS 16 |
| 36 | 36 | ||
| 37 | /* state flags => bit index for {set|clear|test}_bit ops */ | 37 | enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED }; |
| 38 | #define UIST_CREATED 0 | ||
| 39 | 38 | ||
| 40 | struct uinput_request { | 39 | struct uinput_request { |
| 41 | int id; | 40 | int id; |
| @@ -52,11 +51,12 @@ struct uinput_request { | |||
| 52 | 51 | ||
| 53 | struct uinput_device { | 52 | struct uinput_device { |
| 54 | struct input_dev *dev; | 53 | struct input_dev *dev; |
| 55 | unsigned long state; | 54 | struct semaphore sem; |
| 55 | enum uinput_state state; | ||
| 56 | wait_queue_head_t waitq; | 56 | wait_queue_head_t waitq; |
| 57 | unsigned char ready, | 57 | unsigned char ready; |
| 58 | head, | 58 | unsigned char head; |
| 59 | tail; | 59 | unsigned char tail; |
| 60 | struct input_event buff[UINPUT_BUFFER_SIZE]; | 60 | struct input_event buff[UINPUT_BUFFER_SIZE]; |
| 61 | 61 | ||
| 62 | struct uinput_request *requests[UINPUT_NUM_REQUESTS]; | 62 | struct uinput_request *requests[UINPUT_NUM_REQUESTS]; |
| @@ -91,6 +91,7 @@ struct uinput_ff_erase { | |||
| 91 | #define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int) | 91 | #define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int) |
| 92 | #define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int) | 92 | #define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int) |
| 93 | #define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*) | 93 | #define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*) |
| 94 | #define UI_SET_SWBIT _IOW(UINPUT_IOCTL_BASE, 109, int) | ||
| 94 | 95 | ||
| 95 | #define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload) | 96 | #define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload) |
| 96 | #define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload) | 97 | #define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload) |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 748d04385256..d81b050e5955 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -47,6 +47,7 @@ struct usb_driver; | |||
| 47 | * @urb_list: urbs queued to this endpoint; maintained by usbcore | 47 | * @urb_list: urbs queued to this endpoint; maintained by usbcore |
| 48 | * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH) | 48 | * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH) |
| 49 | * with one or more transfer descriptors (TDs) per urb | 49 | * with one or more transfer descriptors (TDs) per urb |
| 50 | * @kobj: kobject for sysfs info | ||
| 50 | * @extra: descriptors following this endpoint in the configuration | 51 | * @extra: descriptors following this endpoint in the configuration |
| 51 | * @extralen: how many bytes of "extra" are valid | 52 | * @extralen: how many bytes of "extra" are valid |
| 52 | * | 53 | * |
| @@ -819,7 +820,7 @@ typedef void (*usb_complete_t)(struct urb *, struct pt_regs *); | |||
| 819 | */ | 820 | */ |
| 820 | struct urb | 821 | struct urb |
| 821 | { | 822 | { |
| 822 | /* private, usb core and host controller only fields in the urb */ | 823 | /* private: usb core and host controller only fields in the urb */ |
| 823 | struct kref kref; /* reference count of the URB */ | 824 | struct kref kref; /* reference count of the URB */ |
| 824 | spinlock_t lock; /* lock for the URB */ | 825 | spinlock_t lock; /* lock for the URB */ |
| 825 | void *hcpriv; /* private data for host controller */ | 826 | void *hcpriv; /* private data for host controller */ |
| @@ -827,7 +828,7 @@ struct urb | |||
| 827 | atomic_t use_count; /* concurrent submissions counter */ | 828 | atomic_t use_count; /* concurrent submissions counter */ |
| 828 | u8 reject; /* submissions will fail */ | 829 | u8 reject; /* submissions will fail */ |
| 829 | 830 | ||
| 830 | /* public, documented fields in the urb that can be used by drivers */ | 831 | /* public: documented fields in the urb that can be used by drivers */ |
| 831 | struct list_head urb_list; /* list head for use by the urb's | 832 | struct list_head urb_list; /* list head for use by the urb's |
| 832 | * current owner */ | 833 | * current owner */ |
| 833 | struct usb_device *dev; /* (in) pointer to associated device */ | 834 | struct usb_device *dev; /* (in) pointer to associated device */ |
| @@ -1045,7 +1046,7 @@ struct usb_sg_request { | |||
| 1045 | size_t bytes; | 1046 | size_t bytes; |
| 1046 | 1047 | ||
| 1047 | /* | 1048 | /* |
| 1048 | * members below are private to usbcore, | 1049 | * members below are private: to usbcore, |
| 1049 | * and are not provided for driver access! | 1050 | * and are not provided for driver access! |
| 1050 | */ | 1051 | */ |
| 1051 | spinlock_t lock; | 1052 | spinlock_t lock; |
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index a114fff6568b..1cded681eb6d 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
| @@ -636,6 +636,7 @@ typedef __u64 v4l2_std_id; | |||
| 636 | #define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) | 636 | #define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) |
| 637 | #define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) | 637 | #define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) |
| 638 | #define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) | 638 | #define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) |
| 639 | #define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) | ||
| 639 | 640 | ||
| 640 | /* ATSC/HDTV */ | 641 | /* ATSC/HDTV */ |
| 641 | #define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) | 642 | #define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) |
