mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-05-07 04:21:33 -04:00
Automatic merge of /spare/repo/linux-2.6/.git branch HEAD
This commit is contained in:
@@ -227,6 +227,30 @@
|
||||
#define PD31_PF_TMR2OUT ( GPIO_PORTD | GPIO_PF | 31 )
|
||||
#define PD31_BIN_SPI2_TXD ( GPIO_PORTD | GPIO_BIN | 31 )
|
||||
|
||||
/*
|
||||
* PWM controller
|
||||
*/
|
||||
#define PWMC __REG(IMX_PWM_BASE + 0x00) /* PWM Control Register */
|
||||
#define PWMS __REG(IMX_PWM_BASE + 0x04) /* PWM Sample Register */
|
||||
#define PWMP __REG(IMX_PWM_BASE + 0x08) /* PWM Period Register */
|
||||
#define PWMCNT __REG(IMX_PWM_BASE + 0x0C) /* PWM Counter Register */
|
||||
|
||||
#define PWMC_HCTR (0x01<<18) /* Halfword FIFO Data Swapping */
|
||||
#define PWMC_BCTR (0x01<<17) /* Byte FIFO Data Swapping */
|
||||
#define PWMC_SWR (0x01<<16) /* Software Reset */
|
||||
#define PWMC_CLKSRC (0x01<<15) /* Clock Source */
|
||||
#define PWMC_PRESCALER(x) (((x-1) & 0x7F) << 8) /* PRESCALER */
|
||||
#define PWMC_IRQ (0x01<< 7) /* Interrupt Request */
|
||||
#define PWMC_IRQEN (0x01<< 6) /* Interrupt Request Enable */
|
||||
#define PWMC_FIFOAV (0x01<< 5) /* FIFO Available */
|
||||
#define PWMC_EN (0x01<< 4) /* Enables/Disables the PWM */
|
||||
#define PWMC_REPEAT(x) (((x) & 0x03) << 2) /* Sample Repeats */
|
||||
#define PWMC_CLKSEL(x) (((x) & 0x03) << 0) /* Clock Selection */
|
||||
|
||||
#define PWMS_SAMPLE(x) ((x) & 0xFFFF) /* Contains a two-sample word */
|
||||
#define PWMP_PERIOD(x) ((x) & 0xFFFF) /* Represents the PWM's period */
|
||||
#define PWMC_COUNTER(x) ((x) & 0xFFFF) /* Represents the current count value */
|
||||
|
||||
/*
|
||||
* DMA Controller
|
||||
*/
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
/* linux/include/asm-arm/arch-s3c2410/regs-nand.h
|
||||
*
|
||||
* Copyright (c) 2004 Simtec Electronics <linux@simtec.co.uk>
|
||||
* Copyright (c) 2004,2005 Simtec Electronics <linux@simtec.co.uk>
|
||||
* http://www.simtec.co.uk/products/SWLINUX/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* S3C2410 clock register definitions
|
||||
* S3C2410 NAND register definitions
|
||||
*
|
||||
* Changelog:
|
||||
* 18-Aug-2004 BJD Copied file from 2.4 and updated
|
||||
* 01-May-2005 BJD Added definitions for s3c2440 controller
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARM_REGS_NAND
|
||||
@@ -26,6 +27,22 @@
|
||||
#define S3C2410_NFSTAT S3C2410_NFREG(0x10)
|
||||
#define S3C2410_NFECC S3C2410_NFREG(0x14)
|
||||
|
||||
#define S3C2440_NFCONT S3C2410_NFREG(0x04)
|
||||
#define S3C2440_NFCMD S3C2410_NFREG(0x08)
|
||||
#define S3C2440_NFADDR S3C2410_NFREG(0x0C)
|
||||
#define S3C2440_NFDATA S3C2410_NFREG(0x10)
|
||||
#define S3C2440_NFECCD0 S3C2410_NFREG(0x14)
|
||||
#define S3C2440_NFECCD1 S3C2410_NFREG(0x18)
|
||||
#define S3C2440_NFECCD S3C2410_NFREG(0x1C)
|
||||
#define S3C2440_NFSTAT S3C2410_NFREG(0x20)
|
||||
#define S3C2440_NFESTAT0 S3C2410_NFREG(0x24)
|
||||
#define S3C2440_NFESTAT1 S3C2410_NFREG(0x28)
|
||||
#define S3C2440_NFMECC0 S3C2410_NFREG(0x2C)
|
||||
#define S3C2440_NFMECC1 S3C2410_NFREG(0x30)
|
||||
#define S3C2440_NFSECC S3C2410_NFREG(0x34)
|
||||
#define S3C2440_NFSBLK S3C2410_NFREG(0x38)
|
||||
#define S3C2440_NFEBLK S3C2410_NFREG(0x3C)
|
||||
|
||||
#define S3C2410_NFCONF_EN (1<<15)
|
||||
#define S3C2410_NFCONF_512BYTE (1<<14)
|
||||
#define S3C2410_NFCONF_4STEP (1<<13)
|
||||
@@ -37,7 +54,28 @@
|
||||
|
||||
#define S3C2410_NFSTAT_BUSY (1<<0)
|
||||
|
||||
/* think ECC can only be 8bit read? */
|
||||
#define S3C2440_NFCONF_BUSWIDTH_8 (0<<0)
|
||||
#define S3C2440_NFCONF_BUSWIDTH_16 (1<<0)
|
||||
#define S3C2440_NFCONF_ADVFLASH (1<<3)
|
||||
#define S3C2440_NFCONF_TACLS(x) ((x)<<12)
|
||||
#define S3C2440_NFCONF_TWRPH0(x) ((x)<<8)
|
||||
#define S3C2440_NFCONF_TWRPH1(x) ((x)<<4)
|
||||
|
||||
#define S3C2440_NFCONT_LOCKTIGHT (1<<13)
|
||||
#define S3C2440_NFCONT_SOFTLOCK (1<<12)
|
||||
#define S3C2440_NFCONT_ILLEGALACC_EN (1<<10)
|
||||
#define S3C2440_NFCONT_RNBINT_EN (1<<9)
|
||||
#define S3C2440_NFCONT_RN_FALLING (1<<8)
|
||||
#define S3C2440_NFCONT_SPARE_ECCLOCK (1<<6)
|
||||
#define S3C2440_NFCONT_MAIN_ECCLOCK (1<<5)
|
||||
#define S3C2440_NFCONT_INITECC (1<<4)
|
||||
#define S3C2440_NFCONT_nFCE (1<<1)
|
||||
#define S3C2440_NFCONT_ENABLE (1<<0)
|
||||
|
||||
#define S3C2440_NFSTAT_READY (1<<0)
|
||||
#define S3C2440_NFSTAT_nCE (1<<1)
|
||||
#define S3C2440_NFSTAT_RnB_CHANGE (1<<2)
|
||||
#define S3C2440_NFSTAT_ILLEGAL_ACCESS (1<<3)
|
||||
|
||||
#endif /* __ASM_ARM_REGS_NAND */
|
||||
|
||||
|
||||
@@ -114,19 +114,8 @@ extern void __cpu_copy_user_page(void *to, const void *from,
|
||||
unsigned long user);
|
||||
#endif
|
||||
|
||||
#define clear_user_page(addr,vaddr,pg) \
|
||||
do { \
|
||||
preempt_disable(); \
|
||||
__cpu_clear_user_page(addr, vaddr); \
|
||||
preempt_enable(); \
|
||||
} while (0)
|
||||
|
||||
#define copy_user_page(to,from,vaddr,pg) \
|
||||
do { \
|
||||
preempt_disable(); \
|
||||
__cpu_copy_user_page(to, from, vaddr); \
|
||||
preempt_enable(); \
|
||||
} while (0)
|
||||
#define clear_user_page(addr,vaddr,pg) __cpu_clear_user_page(addr, vaddr)
|
||||
#define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr)
|
||||
|
||||
#define clear_page(page) memzero((void *)(page), PAGE_SIZE)
|
||||
extern void copy_page(void *to, const void *from);
|
||||
@@ -171,6 +160,9 @@ typedef unsigned long pgprot_t;
|
||||
|
||||
#endif /* STRICT_MM_TYPECHECKS */
|
||||
|
||||
/* the upper-most page table pointer */
|
||||
extern pmd_t *top_pmd;
|
||||
|
||||
/* Pure 2^n version of get_order */
|
||||
static inline int get_order(unsigned long size)
|
||||
{
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
#define FASTCALL(x) x __attribute__((regparm(3)))
|
||||
#define fastcall __attribute__((regparm(3)))
|
||||
|
||||
#ifdef CONFIG_REGPARM
|
||||
# define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))
|
||||
#endif
|
||||
#define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))
|
||||
|
||||
#ifdef CONFIG_X86_ALIGNMENT_16
|
||||
#define __ALIGN .align 16,0x90
|
||||
|
||||
@@ -53,6 +53,7 @@ extern struct init_timer_opts timer_cyclone_init;
|
||||
|
||||
extern unsigned long calibrate_tsc(void);
|
||||
extern void init_cpu_khz(void);
|
||||
extern int recalibrate_cpu_khz(void);
|
||||
#ifdef CONFIG_HPET_TIMER
|
||||
extern struct init_timer_opts timer_hpet_init;
|
||||
extern unsigned long calibrate_tsc_hpet(unsigned long *tsc_hpet_quotient_ptr);
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include <linux/ioctl32.h>
|
||||
@@ -177,6 +177,10 @@ typedef union {
|
||||
|
||||
extern long perfmonctl(int fd, int cmd, void *arg, int narg);
|
||||
|
||||
typedef struct {
|
||||
void (*handler)(int irq, void *arg, struct pt_regs *regs);
|
||||
} pfm_intr_handler_desc_t;
|
||||
|
||||
extern void pfm_save_regs (struct task_struct *);
|
||||
extern void pfm_load_regs (struct task_struct *);
|
||||
|
||||
@@ -187,6 +191,10 @@ extern void pfm_syst_wide_update_task(struct task_struct *, unsigned long info,
|
||||
extern void pfm_inherit(struct task_struct *task, struct pt_regs *regs);
|
||||
extern void pfm_init_percpu(void);
|
||||
extern void pfm_handle_work(void);
|
||||
extern int pfm_install_alt_pmu_interrupt(pfm_intr_handler_desc_t *h);
|
||||
extern int pfm_remove_alt_pmu_interrupt(pfm_intr_handler_desc_t *h);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Reset PMD register flags
|
||||
|
||||
@@ -115,6 +115,13 @@
|
||||
#define SAL_IROUTER_INTR_XMIT SAL_CONSOLE_INTR_XMIT
|
||||
#define SAL_IROUTER_INTR_RECV SAL_CONSOLE_INTR_RECV
|
||||
|
||||
/*
|
||||
* Error Handling Features
|
||||
*/
|
||||
#define SAL_ERR_FEAT_MCA_SLV_TO_OS_INIT_SLV 0x1
|
||||
#define SAL_ERR_FEAT_LOG_SBES 0x2
|
||||
#define SAL_ERR_FEAT_MFR_OVERRIDE 0x4
|
||||
#define SAL_ERR_FEAT_SBE_THRESHOLD 0xffff0000
|
||||
|
||||
/*
|
||||
* SAL Error Codes
|
||||
@@ -341,6 +348,25 @@ ia64_sn_plat_cpei_handler(void)
|
||||
return ret_stuff.status;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set Error Handling Features
|
||||
*/
|
||||
static inline u64
|
||||
ia64_sn_plat_set_error_handling_features(void)
|
||||
{
|
||||
struct ia64_sal_retval ret_stuff;
|
||||
|
||||
ret_stuff.status = 0;
|
||||
ret_stuff.v0 = 0;
|
||||
ret_stuff.v1 = 0;
|
||||
ret_stuff.v2 = 0;
|
||||
SAL_CALL_REENTRANT(ret_stuff, SN_SAL_SET_ERROR_HANDLING_FEATURES,
|
||||
(SAL_ERR_FEAT_MCA_SLV_TO_OS_INIT_SLV | SAL_ERR_FEAT_LOG_SBES),
|
||||
0, 0, 0, 0, 0, 0);
|
||||
|
||||
return ret_stuff.status;
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks for console input.
|
||||
*/
|
||||
@@ -472,7 +498,7 @@ static inline u64
|
||||
ia64_sn_pod_mode(void)
|
||||
{
|
||||
struct ia64_sal_retval isrv;
|
||||
SAL_CALL(isrv, SN_SAL_POD_MODE, 0, 0, 0, 0, 0, 0, 0);
|
||||
SAL_CALL_REENTRANT(isrv, SN_SAL_POD_MODE, 0, 0, 0, 0, 0, 0, 0);
|
||||
if (isrv.status)
|
||||
return 0;
|
||||
return isrv.v0;
|
||||
|
||||
@@ -1039,6 +1039,52 @@ typedef struct im_idma {
|
||||
#define CMXSCR_TS4CS_CLK7 0x00000006 /* SCC4 Tx Clock Source is CLK7 */
|
||||
#define CMXSCR_TS4CS_CLK8 0x00000007 /* SCC4 Tx Clock Source is CLK8 */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SIUMCR - SIU Module Configuration Register 4-31
|
||||
*/
|
||||
#define SIUMCR_BBD 0x80000000 /* Bus Busy Disable */
|
||||
#define SIUMCR_ESE 0x40000000 /* External Snoop Enable */
|
||||
#define SIUMCR_PBSE 0x20000000 /* Parity Byte Select Enable */
|
||||
#define SIUMCR_CDIS 0x10000000 /* Core Disable */
|
||||
#define SIUMCR_DPPC00 0x00000000 /* Data Parity Pins Configuration*/
|
||||
#define SIUMCR_DPPC01 0x04000000 /* - " - */
|
||||
#define SIUMCR_DPPC10 0x08000000 /* - " - */
|
||||
#define SIUMCR_DPPC11 0x0c000000 /* - " - */
|
||||
#define SIUMCR_L2CPC00 0x00000000 /* L2 Cache Pins Configuration */
|
||||
#define SIUMCR_L2CPC01 0x01000000 /* - " - */
|
||||
#define SIUMCR_L2CPC10 0x02000000 /* - " - */
|
||||
#define SIUMCR_L2CPC11 0x03000000 /* - " - */
|
||||
#define SIUMCR_LBPC00 0x00000000 /* Local Bus Pins Configuration */
|
||||
#define SIUMCR_LBPC01 0x00400000 /* - " - */
|
||||
#define SIUMCR_LBPC10 0x00800000 /* - " - */
|
||||
#define SIUMCR_LBPC11 0x00c00000 /* - " - */
|
||||
#define SIUMCR_APPC00 0x00000000 /* Address Parity Pins Configuration*/
|
||||
#define SIUMCR_APPC01 0x00100000 /* - " - */
|
||||
#define SIUMCR_APPC10 0x00200000 /* - " - */
|
||||
#define SIUMCR_APPC11 0x00300000 /* - " - */
|
||||
#define SIUMCR_CS10PC00 0x00000000 /* CS10 Pin Configuration */
|
||||
#define SIUMCR_CS10PC01 0x00040000 /* - " - */
|
||||
#define SIUMCR_CS10PC10 0x00080000 /* - " - */
|
||||
#define SIUMCR_CS10PC11 0x000c0000 /* - " - */
|
||||
#define SIUMCR_BCTLC00 0x00000000 /* Buffer Control Configuration */
|
||||
#define SIUMCR_BCTLC01 0x00010000 /* - " - */
|
||||
#define SIUMCR_BCTLC10 0x00020000 /* - " - */
|
||||
#define SIUMCR_BCTLC11 0x00030000 /* - " - */
|
||||
#define SIUMCR_MMR00 0x00000000 /* Mask Masters Requests */
|
||||
#define SIUMCR_MMR01 0x00004000 /* - " - */
|
||||
#define SIUMCR_MMR10 0x00008000 /* - " - */
|
||||
#define SIUMCR_MMR11 0x0000c000 /* - " - */
|
||||
#define SIUMCR_LPBSE 0x00002000 /* LocalBus Parity Byte Select Enable*/
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* SCCR - System Clock Control Register 9-8
|
||||
*/
|
||||
#define SCCR_PCI_MODE 0x00000100 /* PCI Mode */
|
||||
#define SCCR_PCI_MODCK 0x00000080 /* Value of PCI_MODCK pin */
|
||||
#define SCCR_PCIDF_MSK 0x00000078 /* PCI division factor */
|
||||
#define SCCR_PCIDF_SHIFT 3
|
||||
|
||||
|
||||
#endif /* __CPM2__ */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
* Define the vendor/device ID for the MPC8265.
|
||||
*/
|
||||
#define PCI_DEVICE_ID_MPC8265 ((0x18C0 << 16) | PCI_VENDOR_ID_MOTOROLA)
|
||||
#define PCI_DEVICE_ID_MPC8272 ((0x18C1 << 16) | PCI_VENDOR_ID_MOTOROLA)
|
||||
|
||||
#define M8265_PCIBR0 0x101ac
|
||||
#define M8265_PCIBR1 0x101b0
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PCI_8260
|
||||
#include <syslib/m8260_pci.h>
|
||||
#include <syslib/m82xx_pci.h>
|
||||
#endif
|
||||
|
||||
/* Make sure the memory translation stuff is there if PCI not used.
|
||||
|
||||
@@ -52,6 +52,7 @@ extern void mf_clear_src(void);
|
||||
extern void mf_init(void);
|
||||
|
||||
extern int mf_get_rtc(struct rtc_time *tm);
|
||||
extern int mf_get_boot_rtc(struct rtc_time *tm);
|
||||
extern int mf_set_rtc(struct rtc_time *tm);
|
||||
|
||||
#endif /* _ASM_PPC64_ISERIES_MF_H */
|
||||
|
||||
@@ -120,103 +120,18 @@
|
||||
|
||||
/* Special Purpose Registers (SPRNs)*/
|
||||
|
||||
#define SPRN_CDBCR 0x3D7 /* Cache Debug Control Register */
|
||||
#define SPRN_CTR 0x009 /* Count Register */
|
||||
#define SPRN_DABR 0x3F5 /* Data Address Breakpoint Register */
|
||||
#define SPRN_DAC1 0x3F6 /* Data Address Compare 1 */
|
||||
#define SPRN_DAC2 0x3F7 /* Data Address Compare 2 */
|
||||
#define DABR_TRANSLATION (1UL << 2)
|
||||
#define SPRN_DAR 0x013 /* Data Address Register */
|
||||
#define SPRN_DBCR 0x3F2 /* Debug Control Regsiter */
|
||||
#define DBCR_EDM 0x80000000
|
||||
#define DBCR_IDM 0x40000000
|
||||
#define DBCR_RST(x) (((x) & 0x3) << 28)
|
||||
#define DBCR_RST_NONE 0
|
||||
#define DBCR_RST_CORE 1
|
||||
#define DBCR_RST_CHIP 2
|
||||
#define DBCR_RST_SYSTEM 3
|
||||
#define DBCR_IC 0x08000000 /* Instruction Completion Debug Evnt */
|
||||
#define DBCR_BT 0x04000000 /* Branch Taken Debug Event */
|
||||
#define DBCR_EDE 0x02000000 /* Exception Debug Event */
|
||||
#define DBCR_TDE 0x01000000 /* TRAP Debug Event */
|
||||
#define DBCR_FER 0x00F80000 /* First Events Remaining Mask */
|
||||
#define DBCR_FT 0x00040000 /* Freeze Timers on Debug Event */
|
||||
#define DBCR_IA1 0x00020000 /* Instr. Addr. Compare 1 Enable */
|
||||
#define DBCR_IA2 0x00010000 /* Instr. Addr. Compare 2 Enable */
|
||||
#define DBCR_D1R 0x00008000 /* Data Addr. Compare 1 Read Enable */
|
||||
#define DBCR_D1W 0x00004000 /* Data Addr. Compare 1 Write Enable */
|
||||
#define DBCR_D1S(x) (((x) & 0x3) << 12) /* Data Adrr. Compare 1 Size */
|
||||
#define DAC_BYTE 0
|
||||
#define DAC_HALF 1
|
||||
#define DAC_WORD 2
|
||||
#define DAC_QUAD 3
|
||||
#define DBCR_D2R 0x00000800 /* Data Addr. Compare 2 Read Enable */
|
||||
#define DBCR_D2W 0x00000400 /* Data Addr. Compare 2 Write Enable */
|
||||
#define DBCR_D2S(x) (((x) & 0x3) << 8) /* Data Addr. Compare 2 Size */
|
||||
#define DBCR_SBT 0x00000040 /* Second Branch Taken Debug Event */
|
||||
#define DBCR_SED 0x00000020 /* Second Exception Debug Event */
|
||||
#define DBCR_STD 0x00000010 /* Second Trap Debug Event */
|
||||
#define DBCR_SIA 0x00000008 /* Second IAC Enable */
|
||||
#define DBCR_SDA 0x00000004 /* Second DAC Enable */
|
||||
#define DBCR_JOI 0x00000002 /* JTAG Serial Outbound Int. Enable */
|
||||
#define DBCR_JII 0x00000001 /* JTAG Serial Inbound Int. Enable */
|
||||
#define SPRN_DBCR0 0x3F2 /* Debug Control Register 0 */
|
||||
#define SPRN_DBCR1 0x3BD /* Debug Control Register 1 */
|
||||
#define SPRN_DBSR 0x3F0 /* Debug Status Register */
|
||||
#define SPRN_DCCR 0x3FA /* Data Cache Cacheability Register */
|
||||
#define DCCR_NOCACHE 0 /* Noncacheable */
|
||||
#define DCCR_CACHE 1 /* Cacheable */
|
||||
#define SPRN_DCMP 0x3D1 /* Data TLB Compare Register */
|
||||
#define SPRN_DCWR 0x3BA /* Data Cache Write-thru Register */
|
||||
#define DCWR_COPY 0 /* Copy-back */
|
||||
#define DCWR_WRITE 1 /* Write-through */
|
||||
#define SPRN_DEAR 0x3D5 /* Data Error Address Register */
|
||||
#define SPRN_DEC 0x016 /* Decrement Register */
|
||||
#define SPRN_DMISS 0x3D0 /* Data TLB Miss Register */
|
||||
#define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
|
||||
#define DSISR_NOHPTE 0x40000000 /* no translation found */
|
||||
#define DSISR_PROTFAULT 0x08000000 /* protection fault */
|
||||
#define DSISR_ISSTORE 0x02000000 /* access was a store */
|
||||
#define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
|
||||
#define DSISR_NOSEGMENT 0x00200000 /* STAB/SLB miss */
|
||||
#define SPRN_EAR 0x11A /* External Address Register */
|
||||
#define SPRN_ESR 0x3D4 /* Exception Syndrome Register */
|
||||
#define ESR_IMCP 0x80000000 /* Instr. Machine Check - Protection */
|
||||
#define ESR_IMCN 0x40000000 /* Instr. Machine Check - Non-config */
|
||||
#define ESR_IMCB 0x20000000 /* Instr. Machine Check - Bus error */
|
||||
#define ESR_IMCT 0x10000000 /* Instr. Machine Check - Timeout */
|
||||
#define ESR_PIL 0x08000000 /* Program Exception - Illegal */
|
||||
#define ESR_PPR 0x04000000 /* Program Exception - Priveleged */
|
||||
#define ESR_PTR 0x02000000 /* Program Exception - Trap */
|
||||
#define ESR_DST 0x00800000 /* Storage Exception - Data miss */
|
||||
#define ESR_DIZ 0x00400000 /* Storage Exception - Zone fault */
|
||||
#define SPRN_EVPR 0x3D6 /* Exception Vector Prefix Register */
|
||||
#define SPRN_HASH1 0x3D2 /* Primary Hash Address Register */
|
||||
#define SPRN_HASH2 0x3D3 /* Secondary Hash Address Resgister */
|
||||
#define SPRN_HID0 0x3F0 /* Hardware Implementation Register 0 */
|
||||
#define HID0_EMCP (1<<31) /* Enable Machine Check pin */
|
||||
#define HID0_EBA (1<<29) /* Enable Bus Address Parity */
|
||||
#define HID0_EBD (1<<28) /* Enable Bus Data Parity */
|
||||
#define HID0_SBCLK (1<<27)
|
||||
#define HID0_EICE (1<<26)
|
||||
#define HID0_ECLK (1<<25)
|
||||
#define HID0_PAR (1<<24)
|
||||
#define HID0_DOZE (1<<23)
|
||||
#define HID0_NAP (1<<22)
|
||||
#define HID0_SLEEP (1<<21)
|
||||
#define HID0_DPM (1<<20)
|
||||
#define HID0_ICE (1<<15) /* Instruction Cache Enable */
|
||||
#define HID0_DCE (1<<14) /* Data Cache Enable */
|
||||
#define HID0_ILOCK (1<<13) /* Instruction Cache Lock */
|
||||
#define HID0_DLOCK (1<<12) /* Data Cache Lock */
|
||||
#define HID0_ICFI (1<<11) /* Instr. Cache Flash Invalidate */
|
||||
#define HID0_DCI (1<<10) /* Data Cache Invalidate */
|
||||
#define HID0_SPD (1<<9) /* Speculative disable */
|
||||
#define HID0_SGE (1<<7) /* Store Gathering Enable */
|
||||
#define HID0_SIED (1<<7) /* Serial Instr. Execution [Disable] */
|
||||
#define HID0_BTIC (1<<5) /* Branch Target Instruction Cache Enable */
|
||||
#define HID0_ABE (1<<3) /* Address Broadcast Enable */
|
||||
#define HID0_BHTE (1<<2) /* Branch History Table Enable */
|
||||
#define HID0_BTCD (1<<1) /* Branch target cache disable */
|
||||
#define SPRN_MSRDORM 0x3F1 /* Hardware Implementation Register 1 */
|
||||
#define SPRN_HID1 0x3F1 /* Hardware Implementation Register 1 */
|
||||
#define SPRN_IABR 0x3F2 /* Instruction Address Breakpoint Register */
|
||||
@@ -225,23 +140,8 @@
|
||||
#define SPRN_HID5 0x3F6 /* 970 HID5 */
|
||||
#define SPRN_TSC 0x3FD /* Thread switch control */
|
||||
#define SPRN_TST 0x3FC /* Thread switch timeout */
|
||||
#define SPRN_IAC1 0x3F4 /* Instruction Address Compare 1 */
|
||||
#define SPRN_IAC2 0x3F5 /* Instruction Address Compare 2 */
|
||||
#define SPRN_ICCR 0x3FB /* Instruction Cache Cacheability Register */
|
||||
#define ICCR_NOCACHE 0 /* Noncacheable */
|
||||
#define ICCR_CACHE 1 /* Cacheable */
|
||||
#define SPRN_ICDBDR 0x3D3 /* Instruction Cache Debug Data Register */
|
||||
#define SPRN_ICMP 0x3D5 /* Instruction TLB Compare Register */
|
||||
#define SPRN_ICTC 0x3FB /* Instruction Cache Throttling Control Reg */
|
||||
#define SPRN_IMISS 0x3D4 /* Instruction TLB Miss Register */
|
||||
#define SPRN_IMMR 0x27E /* Internal Memory Map Register */
|
||||
#define SPRN_L2CR 0x3F9 /* Level 2 Cache Control Regsiter */
|
||||
#define SPRN_LR 0x008 /* Link Register */
|
||||
#define SPRN_PBL1 0x3FC /* Protection Bound Lower 1 */
|
||||
#define SPRN_PBL2 0x3FE /* Protection Bound Lower 2 */
|
||||
#define SPRN_PBU1 0x3FD /* Protection Bound Upper 1 */
|
||||
#define SPRN_PBU2 0x3FF /* Protection Bound Upper 2 */
|
||||
#define SPRN_PID 0x3B1 /* Process ID */
|
||||
#define SPRN_PIR 0x3FF /* Processor Identification Register */
|
||||
#define SPRN_PIT 0x3DB /* Programmable Interval Timer */
|
||||
#define SPRN_PURR 0x135 /* Processor Utilization of Resources Register */
|
||||
@@ -249,9 +149,6 @@
|
||||
#define SPRN_RPA 0x3D6 /* Required Physical Address Register */
|
||||
#define SPRN_SDA 0x3BF /* Sampled Data Address Register */
|
||||
#define SPRN_SDR1 0x019 /* MMU Hash Base Register */
|
||||
#define SPRN_SGR 0x3B9 /* Storage Guarded Register */
|
||||
#define SGR_NORMAL 0
|
||||
#define SGR_GUARDED 1
|
||||
#define SPRN_SIA 0x3BB /* Sampled Instruction Address Register */
|
||||
#define SPRN_SPRG0 0x110 /* Special Purpose Register General 0 */
|
||||
#define SPRN_SPRG1 0x111 /* Special Purpose Register General 1 */
|
||||
@@ -264,50 +161,12 @@
|
||||
#define SPRN_TBWL 0x11C /* Time Base Lower Register (super, W/O) */
|
||||
#define SPRN_TBWU 0x11D /* Time Base Write Upper Register (super, W/O) */
|
||||
#define SPRN_HIOR 0x137 /* 970 Hypervisor interrupt offset */
|
||||
#define SPRN_TCR 0x3DA /* Timer Control Register */
|
||||
#define TCR_WP(x) (((x)&0x3)<<30) /* WDT Period */
|
||||
#define WP_2_17 0 /* 2^17 clocks */
|
||||
#define WP_2_21 1 /* 2^21 clocks */
|
||||
#define WP_2_25 2 /* 2^25 clocks */
|
||||
#define WP_2_29 3 /* 2^29 clocks */
|
||||
#define TCR_WRC(x) (((x)&0x3)<<28) /* WDT Reset Control */
|
||||
#define WRC_NONE 0 /* No reset will occur */
|
||||
#define WRC_CORE 1 /* Core reset will occur */
|
||||
#define WRC_CHIP 2 /* Chip reset will occur */
|
||||
#define WRC_SYSTEM 3 /* System reset will occur */
|
||||
#define TCR_WIE 0x08000000 /* WDT Interrupt Enable */
|
||||
#define TCR_PIE 0x04000000 /* PIT Interrupt Enable */
|
||||
#define TCR_FP(x) (((x)&0x3)<<24) /* FIT Period */
|
||||
#define FP_2_9 0 /* 2^9 clocks */
|
||||
#define FP_2_13 1 /* 2^13 clocks */
|
||||
#define FP_2_17 2 /* 2^17 clocks */
|
||||
#define FP_2_21 3 /* 2^21 clocks */
|
||||
#define TCR_FIE 0x00800000 /* FIT Interrupt Enable */
|
||||
#define TCR_ARE 0x00400000 /* Auto Reload Enable */
|
||||
#define SPRN_THRM1 0x3FC /* Thermal Management Register 1 */
|
||||
#define THRM1_TIN (1<<0)
|
||||
#define THRM1_TIV (1<<1)
|
||||
#define THRM1_THRES (0x7f<<2)
|
||||
#define THRM1_TID (1<<29)
|
||||
#define THRM1_TIE (1<<30)
|
||||
#define THRM1_V (1<<31)
|
||||
#define SPRN_THRM2 0x3FD /* Thermal Management Register 2 */
|
||||
#define SPRN_THRM3 0x3FE /* Thermal Management Register 3 */
|
||||
#define THRM3_E (1<<31)
|
||||
#define SPRN_TSR 0x3D8 /* Timer Status Register */
|
||||
#define TSR_ENW 0x80000000 /* Enable Next Watchdog */
|
||||
#define TSR_WIS 0x40000000 /* WDT Interrupt Status */
|
||||
#define TSR_WRS(x) (((x)&0x3)<<28) /* WDT Reset Status */
|
||||
#define WRS_NONE 0 /* No WDT reset occurred */
|
||||
#define WRS_CORE 1 /* WDT forced core reset */
|
||||
#define WRS_CHIP 2 /* WDT forced chip reset */
|
||||
#define WRS_SYSTEM 3 /* WDT forced system reset */
|
||||
#define TSR_PIS 0x08000000 /* PIT Interrupt Status */
|
||||
#define TSR_FIS 0x04000000 /* FIT Interrupt Status */
|
||||
#define SPRN_USIA 0x3AB /* User Sampled Instruction Address Register */
|
||||
#define SPRN_XER 0x001 /* Fixed Point Exception Register */
|
||||
#define SPRN_ZPR 0x3B0 /* Zone Protection Register */
|
||||
#define SPRN_VRSAVE 0x100 /* Vector save */
|
||||
#define SPRN_CTRLF 0x088
|
||||
#define SPRN_CTRLT 0x098
|
||||
#define CTRL_RUNLATCH 0x1
|
||||
|
||||
/* Performance monitor SPRs */
|
||||
#define SPRN_SIAR 780
|
||||
@@ -352,28 +211,19 @@
|
||||
#define CTR SPRN_CTR /* Counter Register */
|
||||
#define DAR SPRN_DAR /* Data Address Register */
|
||||
#define DABR SPRN_DABR /* Data Address Breakpoint Register */
|
||||
#define DCMP SPRN_DCMP /* Data TLB Compare Register */
|
||||
#define DEC SPRN_DEC /* Decrement Register */
|
||||
#define DMISS SPRN_DMISS /* Data TLB Miss Register */
|
||||
#define DSISR SPRN_DSISR /* Data Storage Interrupt Status Register */
|
||||
#define EAR SPRN_EAR /* External Address Register */
|
||||
#define HASH1 SPRN_HASH1 /* Primary Hash Address Register */
|
||||
#define HASH2 SPRN_HASH2 /* Secondary Hash Address Register */
|
||||
#define HID0 SPRN_HID0 /* Hardware Implementation Register 0 */
|
||||
#define MSRDORM SPRN_MSRDORM /* MSR Dormant Register */
|
||||
#define NIADORM SPRN_NIADORM /* NIA Dormant Register */
|
||||
#define TSC SPRN_TSC /* Thread switch control */
|
||||
#define TST SPRN_TST /* Thread switch timeout */
|
||||
#define IABR SPRN_IABR /* Instruction Address Breakpoint Register */
|
||||
#define ICMP SPRN_ICMP /* Instruction TLB Compare Register */
|
||||
#define IMISS SPRN_IMISS /* Instruction TLB Miss Register */
|
||||
#define IMMR SPRN_IMMR /* PPC 860/821 Internal Memory Map Register */
|
||||
#define L2CR SPRN_L2CR /* PPC 750 L2 control register */
|
||||
#define __LR SPRN_LR
|
||||
#define PVR SPRN_PVR /* Processor Version */
|
||||
#define PIR SPRN_PIR /* Processor ID */
|
||||
#define PURR SPRN_PURR /* Processor Utilization of Resource Register */
|
||||
//#define RPA SPRN_RPA /* Required Physical Address Register */
|
||||
#define SDR1 SPRN_SDR1 /* MMU hash base register */
|
||||
#define SPR0 SPRN_SPRG0 /* Supervisor Private Registers */
|
||||
#define SPR1 SPRN_SPRG1
|
||||
@@ -389,10 +239,6 @@
|
||||
#define TBRU SPRN_TBRU /* Time Base Read Upper Register */
|
||||
#define TBWL SPRN_TBWL /* Time Base Write Lower Register */
|
||||
#define TBWU SPRN_TBWU /* Time Base Write Upper Register */
|
||||
#define ICTC 1019
|
||||
#define THRM1 SPRN_THRM1 /* Thermal Management Register 1 */
|
||||
#define THRM2 SPRN_THRM2 /* Thermal Management Register 2 */
|
||||
#define THRM3 SPRN_THRM3 /* Thermal Management Register 3 */
|
||||
#define XER SPRN_XER
|
||||
|
||||
/* Processor Version Register (PVR) field extraction */
|
||||
@@ -436,12 +282,6 @@
|
||||
#define XGLUE(a,b) a##b
|
||||
#define GLUE(a,b) XGLUE(a,b)
|
||||
|
||||
/* iSeries CTRL register (for runlatch) */
|
||||
|
||||
#define CTRLT 0x098
|
||||
#define CTRLF 0x088
|
||||
#define RUNLATCH 0x0001
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
#define _GLOBAL(name) \
|
||||
@@ -656,6 +496,24 @@ static inline void prefetchw(const void *x)
|
||||
|
||||
#define HAVE_ARCH_PICK_MMAP_LAYOUT
|
||||
|
||||
static inline void ppc64_runlatch_on(void)
|
||||
{
|
||||
unsigned long ctrl;
|
||||
|
||||
ctrl = mfspr(SPRN_CTRLF);
|
||||
ctrl |= CTRL_RUNLATCH;
|
||||
mtspr(SPRN_CTRLT, ctrl);
|
||||
}
|
||||
|
||||
static inline void ppc64_runlatch_off(void)
|
||||
{
|
||||
unsigned long ctrl;
|
||||
|
||||
ctrl = mfspr(SPRN_CTRLF);
|
||||
ctrl &= ~CTRL_RUNLATCH;
|
||||
mtspr(SPRN_CTRLT, ctrl);
|
||||
}
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
@@ -147,9 +147,7 @@ struct device_node {
|
||||
struct device_node *sibling;
|
||||
struct device_node *next; /* next device of same type */
|
||||
struct device_node *allnext; /* next in list of all nodes */
|
||||
struct proc_dir_entry *pde; /* this node's proc directory */
|
||||
struct proc_dir_entry *name_link; /* name symlink */
|
||||
struct proc_dir_entry *addr_link; /* addr symlink */
|
||||
struct proc_dir_entry *pde; /* this node's proc directory */
|
||||
struct kref kref;
|
||||
unsigned long _flags;
|
||||
};
|
||||
@@ -174,15 +172,6 @@ static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_e
|
||||
dn->pde = de;
|
||||
}
|
||||
|
||||
static void inline set_node_name_link(struct device_node *dn, struct proc_dir_entry *de)
|
||||
{
|
||||
dn->name_link = de;
|
||||
}
|
||||
|
||||
static void inline set_node_addr_link(struct device_node *dn, struct proc_dir_entry *de)
|
||||
{
|
||||
dn->addr_link = de;
|
||||
}
|
||||
|
||||
/* OBSOLETE: Old stlye node lookup */
|
||||
extern struct device_node *find_devices(const char *name);
|
||||
|
||||
@@ -96,7 +96,7 @@ static inline struct thread_info *current_thread_info(void)
|
||||
#define TIF_POLLING_NRFLAG 4 /* true if poll_idle() is polling
|
||||
TIF_NEED_RESCHED */
|
||||
#define TIF_32BIT 5 /* 32 bit binary */
|
||||
#define TIF_RUN_LIGHT 6 /* iSeries run light */
|
||||
/* #define SPARE 6 */
|
||||
#define TIF_ABI_PENDING 7 /* 32/64 bit switch needed */
|
||||
#define TIF_SYSCALL_AUDIT 8 /* syscall auditing active */
|
||||
#define TIF_SINGLESTEP 9 /* singlestepping active */
|
||||
@@ -110,7 +110,7 @@ static inline struct thread_info *current_thread_info(void)
|
||||
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
|
||||
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
|
||||
#define _TIF_32BIT (1<<TIF_32BIT)
|
||||
#define _TIF_RUN_LIGHT (1<<TIF_RUN_LIGHT)
|
||||
/* #define _SPARE (1<<SPARE) */
|
||||
#define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING)
|
||||
#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
|
||||
#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
|
||||
|
||||
@@ -27,7 +27,7 @@ struct thread_info {
|
||||
|
||||
#endif
|
||||
|
||||
#define PREEMPT_ACTIVE 0x4000000
|
||||
#define PREEMPT_ACTIVE 0x10000000
|
||||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
|
||||
@@ -73,7 +73,7 @@ static inline struct thread_info *current_thread_info(void)
|
||||
|
||||
#define THREAD_SIZE 8192
|
||||
|
||||
#define PREEMPT_ACTIVE 0x4000000
|
||||
#define PREEMPT_ACTIVE 0x10000000
|
||||
|
||||
/* thread information flags */
|
||||
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
|
||||
|
||||
@@ -16,4 +16,6 @@
|
||||
#define IOPTE_CACHE 0x0000000000000010UL /* Cached (in UPA E-cache) */
|
||||
#define IOPTE_WRITE 0x0000000000000002UL /* Writeable */
|
||||
|
||||
#define IOMMU_NUM_CTXS 4096
|
||||
|
||||
#endif /* !(_SPARC_IOMMU_H) */
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/iommu.h>
|
||||
|
||||
/* The abstraction used here is that there are PCI controllers,
|
||||
* each with one (Sabre) or two (PSYCHO/SCHIZO) PCI bus modules
|
||||
@@ -40,9 +41,6 @@ struct pci_iommu {
|
||||
*/
|
||||
spinlock_t lock;
|
||||
|
||||
/* Context allocator. */
|
||||
unsigned int iommu_cur_ctx;
|
||||
|
||||
/* IOMMU page table, a linear array of ioptes. */
|
||||
iopte_t *page_table; /* The page table itself. */
|
||||
int page_table_sz_bits; /* log2 of ow many pages does it map? */
|
||||
@@ -87,6 +85,10 @@ struct pci_iommu {
|
||||
u16 flush;
|
||||
} alloc_info[PBM_NCLUSTERS];
|
||||
|
||||
/* CTX allocation. */
|
||||
unsigned long ctx_lowest_free;
|
||||
unsigned long ctx_bitmap[IOMMU_NUM_CTXS / (sizeof(unsigned long) * 8)];
|
||||
|
||||
/* Here a PCI controller driver describes the areas of
|
||||
* PCI memory space where DMA to/from physical memory
|
||||
* are addressed. Drivers interrogate the PCI layer
|
||||
|
||||
@@ -48,6 +48,9 @@ enum ultra_tlb_layout {
|
||||
|
||||
extern enum ultra_tlb_layout tlb_type;
|
||||
|
||||
extern int cheetah_pcache_forced_on;
|
||||
extern void cheetah_enable_pcache(void);
|
||||
|
||||
#define sparc64_highest_locked_tlbent() \
|
||||
(tlb_type == spitfire ? \
|
||||
SPITFIRE_HIGHEST_LOCKED_TLBENT : \
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#ifndef __UM_ELF_I386_H
|
||||
#define __UM_ELF_I386_H
|
||||
|
||||
#include "user.h"
|
||||
#include <asm/user.h>
|
||||
|
||||
#define R_386_NONE 0
|
||||
#define R_386_32 1
|
||||
|
||||
@@ -8,6 +8,27 @@
|
||||
|
||||
#include <asm/user.h>
|
||||
|
||||
/* x86-64 relocation types, taken from asm-x86_64/elf.h */
|
||||
#define R_X86_64_NONE 0 /* No reloc */
|
||||
#define R_X86_64_64 1 /* Direct 64 bit */
|
||||
#define R_X86_64_PC32 2 /* PC relative 32 bit signed */
|
||||
#define R_X86_64_GOT32 3 /* 32 bit GOT entry */
|
||||
#define R_X86_64_PLT32 4 /* 32 bit PLT address */
|
||||
#define R_X86_64_COPY 5 /* Copy symbol at runtime */
|
||||
#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */
|
||||
#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */
|
||||
#define R_X86_64_RELATIVE 8 /* Adjust by program base */
|
||||
#define R_X86_64_GOTPCREL 9 /* 32 bit signed pc relative
|
||||
offset to GOT */
|
||||
#define R_X86_64_32 10 /* Direct 32 bit zero extended */
|
||||
#define R_X86_64_32S 11 /* Direct 32 bit sign extended */
|
||||
#define R_X86_64_16 12 /* Direct 16 bit zero extended */
|
||||
#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */
|
||||
#define R_X86_64_8 14 /* Direct 8 bit sign extended */
|
||||
#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */
|
||||
|
||||
#define R_X86_64_NUM 16
|
||||
|
||||
typedef unsigned long elf_greg_t;
|
||||
|
||||
#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
|
||||
@@ -44,7 +65,8 @@ typedef struct { } elf_fpregset_t;
|
||||
} while (0)
|
||||
|
||||
#ifdef TIF_IA32 /* XXX */
|
||||
clear_thread_flag(TIF_IA32); \
|
||||
#error XXX, indeed
|
||||
clear_thread_flag(TIF_IA32);
|
||||
#endif
|
||||
|
||||
#define USE_ELF_CORE_DUMP
|
||||
|
||||
@@ -98,7 +98,13 @@ extern unsigned long uml_physmem;
|
||||
|
||||
extern unsigned long to_phys(void *virt);
|
||||
extern void *to_virt(unsigned long phys);
|
||||
#define __pa(virt) to_phys((void *) virt)
|
||||
|
||||
/* Cast to unsigned long before casting to void * to avoid a warning from
|
||||
* mmap_kmem about cutting a long long down to a void *. Not sure that
|
||||
* casting is the right thing, but 32-bit UML can't have 64-bit virtual
|
||||
* addresses
|
||||
*/
|
||||
#define __pa(virt) to_phys((void *) (unsigned long) virt)
|
||||
#define __va(phys) to_virt((unsigned long) phys)
|
||||
|
||||
#define page_to_pfn(page) ((page) - mem_map)
|
||||
|
||||
@@ -114,17 +114,9 @@ extern unsigned long end_iomem;
|
||||
extern unsigned long pg0[1024];
|
||||
|
||||
/*
|
||||
* BAD_PAGETABLE is used when we need a bogus page-table, while
|
||||
* BAD_PAGE is used for a bogus page.
|
||||
*
|
||||
* ZERO_PAGE is a global shared page that is always zero: used
|
||||
* for zero-mapped memory areas etc..
|
||||
*/
|
||||
extern pte_t __bad_page(void);
|
||||
extern pte_t * __bad_pagetable(void);
|
||||
|
||||
#define BAD_PAGETABLE __bad_pagetable()
|
||||
#define BAD_PAGE __bad_page()
|
||||
|
||||
#define ZERO_PAGE(vaddr) virt_to_page(empty_zero_page)
|
||||
|
||||
|
||||
@@ -41,18 +41,17 @@ struct thread_info {
|
||||
#define init_thread_info (init_thread_union.thread_info)
|
||||
#define init_stack (init_thread_union.stack)
|
||||
|
||||
#define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE)
|
||||
/* how to get the thread information struct from C */
|
||||
static inline struct thread_info *current_thread_info(void)
|
||||
{
|
||||
struct thread_info *ti;
|
||||
unsigned long mask = PAGE_SIZE *
|
||||
(1 << CONFIG_KERNEL_STACK_ORDER) - 1;
|
||||
ti = (struct thread_info *) (((unsigned long) &ti) & ~mask);
|
||||
unsigned long mask = THREAD_SIZE - 1;
|
||||
ti = (struct thread_info *) (((unsigned long) &ti) & ~mask);
|
||||
return ti;
|
||||
}
|
||||
|
||||
/* thread information allocation */
|
||||
#define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE)
|
||||
#define alloc_thread_info(tsk) \
|
||||
((struct thread_info *) kmalloc(THREAD_SIZE, GFP_KERNEL))
|
||||
#define free_thread_info(ti) kfree(ti)
|
||||
@@ -62,7 +61,7 @@ static inline struct thread_info *current_thread_info(void)
|
||||
|
||||
#endif
|
||||
|
||||
#define PREEMPT_ACTIVE 0x4000000
|
||||
#define PREEMPT_ACTIVE 0x10000000
|
||||
|
||||
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
|
||||
#define TIF_SIGPENDING 1 /* signal pending */
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
#define APIC_BASE (fix_to_virt(FIX_APIC_BASE))
|
||||
|
||||
#define MAX_IO_APICS 32
|
||||
#define MAX_IO_APICS 128
|
||||
|
||||
/*
|
||||
* All x86-64 systems are xAPIC compatible.
|
||||
|
||||
@@ -21,6 +21,8 @@ struct bug_frame {
|
||||
asm volatile("ud2 ; .quad %c1 ; .short %c0" :: \
|
||||
"i"(__LINE__), "i" (__stringify(__FILE__)))
|
||||
void out_of_line_bug(void);
|
||||
#else
|
||||
static inline void out_of_line_bug(void) { }
|
||||
#endif
|
||||
|
||||
#include <asm-generic/bug.h>
|
||||
|
||||
@@ -202,7 +202,6 @@ extern int skip_ioapic_setup;
|
||||
#define io_apic_assign_pci_irqs (mp_irq_entries && !skip_ioapic_setup && io_apic_irqs)
|
||||
|
||||
#ifdef CONFIG_ACPI_BOOT
|
||||
extern int io_apic_get_unique_id (int ioapic, int apic_id);
|
||||
extern int io_apic_get_version (int ioapic);
|
||||
extern int io_apic_get_redir_entries (int ioapic);
|
||||
extern int io_apic_set_pci_routing (int ioapic, int pin, int irq, int, int);
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include <linux/ioctl32.h>
|
||||
@@ -53,5 +53,7 @@ extern void die_nmi(char *str, struct pt_regs *regs);
|
||||
|
||||
extern int panic_on_timeout;
|
||||
extern int unknown_nmi_panic;
|
||||
|
||||
extern int check_nmi_watchdog(void);
|
||||
|
||||
#endif /* ASM_NMI_H */
|
||||
|
||||
@@ -62,7 +62,6 @@ struct cpuinfo_x86 {
|
||||
int x86_tlbsize; /* number of 4K pages in DTLB/ITLB combined(in pages)*/
|
||||
__u8 x86_virt_bits, x86_phys_bits;
|
||||
__u8 x86_num_cores;
|
||||
__u8 x86_apicid;
|
||||
__u32 x86_power;
|
||||
__u32 extended_cpuid_level; /* Max extended CPUID function supported */
|
||||
unsigned long loops_per_jiffy;
|
||||
@@ -159,9 +158,9 @@ static inline void clear_in_cr4 (unsigned long mask)
|
||||
|
||||
|
||||
/*
|
||||
* User space process size. 47bits.
|
||||
* User space process size. 47bits minus one guard page.
|
||||
*/
|
||||
#define TASK_SIZE (0x800000000000UL)
|
||||
#define TASK_SIZE (0x800000000000UL - 4096)
|
||||
|
||||
/* This decides where the kernel will search for a free chunk of vm
|
||||
* space during mmap's.
|
||||
|
||||
@@ -30,6 +30,11 @@ extern void ia32_syscall(void);
|
||||
extern void iommu_hole_init(void);
|
||||
|
||||
extern void time_init_gtod(void);
|
||||
extern int pmtimer_mark_offset(void);
|
||||
extern unsigned int do_gettimeoffset_pm(void);
|
||||
extern u32 pmtmr_ioport;
|
||||
extern unsigned long long monotonic_base;
|
||||
extern int sysctl_vsyscall;
|
||||
|
||||
extern void do_softirq_thunk(void);
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ enum vsyscall_num {
|
||||
|
||||
#define VXTIME_TSC 1
|
||||
#define VXTIME_HPET 2
|
||||
#define VXTIME_PMTMR 3
|
||||
|
||||
struct vxtime_data {
|
||||
long hpet_address; /* HPET base address */
|
||||
@@ -54,6 +55,8 @@ extern struct timezone sys_tz;
|
||||
extern int sysctl_vsyscall;
|
||||
extern seqlock_t xtime_lock;
|
||||
|
||||
extern int sysctl_vsyscall;
|
||||
|
||||
#define ARCH_HAVE_XTIME_LOCK 1
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
#ifndef _LINUX_ACPI_H
|
||||
#define _LINUX_ACPI_H
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
|
||||
#ifndef _LINUX
|
||||
#define _LINUX
|
||||
#endif
|
||||
@@ -533,4 +535,5 @@ static inline int acpi_get_pxm(acpi_handle handle)
|
||||
|
||||
extern int pnpacpi_disabled;
|
||||
|
||||
#endif /*_LINUX_ACPI_H*/
|
||||
#endif /* CONFIG_ACPI */
|
||||
#endif /*_LINUX_ACPI_H*/
|
||||
|
||||
@@ -49,7 +49,7 @@ int cpufreq_unregister_notifier(struct notifier_block *nb, unsigned int list);
|
||||
/* Frequency values here are CPU kHz so that hardware which doesn't run
|
||||
* with some frequencies can complain without having to guess what per
|
||||
* cent / per mille means.
|
||||
* Maximum transition latency is in microseconds - if it's unknown,
|
||||
* Maximum transition latency is in nanoseconds - if it's unknown,
|
||||
* CPUFREQ_ETERNAL shall be used.
|
||||
*/
|
||||
|
||||
|
||||
@@ -273,9 +273,6 @@ struct device {
|
||||
BIOS data relevant to device) */
|
||||
struct dev_pm_info power;
|
||||
|
||||
u32 detach_state; /* State to enter when device is
|
||||
detached from its driver. */
|
||||
|
||||
u64 *dma_mask; /* dma mask (if dma'able device) */
|
||||
u64 coherent_dma_mask;/* Like dma_mask, but for
|
||||
alloc_coherent mappings as
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
* This should be a per-architecture thing, to allow different
|
||||
* error and pointer decisions.
|
||||
*/
|
||||
#define IS_ERR_VALUE(x) unlikely((x) > (unsigned long)-1000L)
|
||||
|
||||
static inline void *ERR_PTR(long error)
|
||||
{
|
||||
return (void *) error;
|
||||
@@ -25,7 +27,7 @@ static inline long PTR_ERR(const void *ptr)
|
||||
|
||||
static inline long IS_ERR(const void *ptr)
|
||||
{
|
||||
return unlikely((unsigned long)ptr > (unsigned long)-1000L);
|
||||
return IS_ERR_VALUE((unsigned long)ptr);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_ERR_H */
|
||||
|
||||
@@ -55,19 +55,33 @@ static inline int is_zero_ether_addr(const u8 *addr)
|
||||
return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]);
|
||||
}
|
||||
|
||||
/**
|
||||
* is_multicast_ether_addr - Determine if the given Ethernet address is a
|
||||
* multicast address.
|
||||
*
|
||||
* @addr: Pointer to a six-byte array containing the Ethernet address
|
||||
*
|
||||
* Return true if the address is a multicast address.
|
||||
*/
|
||||
static inline int is_multicast_ether_addr(const u8 *addr)
|
||||
{
|
||||
return addr[0] & 0x01;
|
||||
}
|
||||
|
||||
/**
|
||||
* is_valid_ether_addr - Determine if the given Ethernet address is valid
|
||||
* @addr: Pointer to a six-byte array containing the Ethernet address
|
||||
*
|
||||
* Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
|
||||
* a multicast address, and is not FF:FF:FF:FF:FF:FF. The multicast
|
||||
* and FF:FF:... tests are combined into the single test "!(addr[0]&1)".
|
||||
* a multicast address, and is not FF:FF:FF:FF:FF:FF.
|
||||
*
|
||||
* Return true if the address is valid.
|
||||
*/
|
||||
static inline int is_valid_ether_addr(const u8 *addr)
|
||||
{
|
||||
return !(addr[0]&1) && !is_zero_ether_addr(addr);
|
||||
/* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
|
||||
* explicitly check for it here. */
|
||||
return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,6 +97,6 @@ static inline void random_ether_addr(u8 *addr)
|
||||
addr [0] &= 0xfe; /* clear multicast bit */
|
||||
addr [0] |= 0x02; /* set local assignment bit (IEEE802) */
|
||||
}
|
||||
#endif
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_ETHERDEVICE_H */
|
||||
|
||||
@@ -256,6 +256,7 @@ struct net_device;
|
||||
u32 ethtool_op_get_link(struct net_device *dev);
|
||||
u32 ethtool_op_get_tx_csum(struct net_device *dev);
|
||||
int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
|
||||
int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data);
|
||||
u32 ethtool_op_get_sg(struct net_device *dev);
|
||||
int ethtool_op_set_sg(struct net_device *dev, u32 data);
|
||||
u32 ethtool_op_get_tso(struct net_device *dev);
|
||||
|
||||
@@ -67,6 +67,8 @@ int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mo
|
||||
void gameport_close(struct gameport *gameport);
|
||||
void gameport_rescan(struct gameport *gameport);
|
||||
|
||||
#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
|
||||
|
||||
void __gameport_register_port(struct gameport *gameport, struct module *owner);
|
||||
static inline void gameport_register_port(struct gameport *gameport)
|
||||
{
|
||||
@@ -75,6 +77,29 @@ static inline void gameport_register_port(struct gameport *gameport)
|
||||
|
||||
void gameport_unregister_port(struct gameport *gameport);
|
||||
|
||||
void gameport_set_phys(struct gameport *gameport, const char *fmt, ...)
|
||||
__attribute__ ((format (printf, 2, 3)));
|
||||
|
||||
#else
|
||||
|
||||
static inline void gameport_register_port(struct gameport *gameport)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline void gameport_unregister_port(struct gameport *gameport)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline void gameport_set_phys(struct gameport *gameport,
|
||||
const char *fmt, ...)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static inline struct gameport *gameport_allocate_port(void)
|
||||
{
|
||||
struct gameport *gameport = kcalloc(1, sizeof(struct gameport), GFP_KERNEL);
|
||||
@@ -92,9 +117,6 @@ static inline void gameport_set_name(struct gameport *gameport, const char *name
|
||||
strlcpy(gameport->name, name, sizeof(gameport->name));
|
||||
}
|
||||
|
||||
void gameport_set_phys(struct gameport *gameport, const char *fmt, ...)
|
||||
__attribute__ ((format (printf, 2, 3)));
|
||||
|
||||
/*
|
||||
* Use the following fucntions to manipulate gameport's per-port
|
||||
* driver-specific data.
|
||||
|
||||
@@ -43,13 +43,17 @@
|
||||
#define __IRQ_MASK(x) ((1UL << (x))-1)
|
||||
|
||||
#define PREEMPT_MASK (__IRQ_MASK(PREEMPT_BITS) << PREEMPT_SHIFT)
|
||||
#define HARDIRQ_MASK (__IRQ_MASK(HARDIRQ_BITS) << HARDIRQ_SHIFT)
|
||||
#define SOFTIRQ_MASK (__IRQ_MASK(SOFTIRQ_BITS) << SOFTIRQ_SHIFT)
|
||||
#define HARDIRQ_MASK (__IRQ_MASK(HARDIRQ_BITS) << HARDIRQ_SHIFT)
|
||||
|
||||
#define PREEMPT_OFFSET (1UL << PREEMPT_SHIFT)
|
||||
#define SOFTIRQ_OFFSET (1UL << SOFTIRQ_SHIFT)
|
||||
#define HARDIRQ_OFFSET (1UL << HARDIRQ_SHIFT)
|
||||
|
||||
#if PREEMPT_ACTIVE < (1 << (HARDIRQ_SHIFT + HARDIRQ_BITS))
|
||||
#error PREEMPT_ACTIVE is too low!
|
||||
#endif
|
||||
|
||||
#define hardirq_count() (preempt_count() & HARDIRQ_MASK)
|
||||
#define softirq_count() (preempt_count() & SOFTIRQ_MASK)
|
||||
#define irq_count() (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_MASK))
|
||||
|
||||
@@ -664,7 +664,6 @@ typedef struct ide_drive_s {
|
||||
|
||||
struct request *rq; /* current request */
|
||||
struct ide_drive_s *next; /* circular list of hwgroup drives */
|
||||
struct ide_driver_s *driver;/* (ide_driver_t *) */
|
||||
void *driver_data; /* extra driver data */
|
||||
struct hd_driveid *id; /* drive model identification info */
|
||||
struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
|
||||
@@ -758,6 +757,8 @@ typedef struct ide_drive_s {
|
||||
struct semaphore gendev_rel_sem; /* to deal with device release() */
|
||||
} ide_drive_t;
|
||||
|
||||
#define to_ide_device(dev)container_of(dev, ide_drive_t, gendev)
|
||||
|
||||
#define IDE_CHIPSET_PCI_MASK \
|
||||
((1<<ide_pci)|(1<<ide_cmd646)|(1<<ide_ali14xx))
|
||||
#define IDE_CHIPSET_IS_PCI(c) ((IDE_CHIPSET_PCI_MASK >> (c)) & 1)
|
||||
@@ -1086,28 +1087,20 @@ enum {
|
||||
*/
|
||||
typedef struct ide_driver_s {
|
||||
struct module *owner;
|
||||
const char *name;
|
||||
const char *version;
|
||||
u8 media;
|
||||
unsigned busy : 1;
|
||||
unsigned supports_dsc_overlap : 1;
|
||||
int (*cleanup)(ide_drive_t *);
|
||||
ide_startstop_t (*do_request)(ide_drive_t *, struct request *, sector_t);
|
||||
int (*end_request)(ide_drive_t *, int, int);
|
||||
ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8);
|
||||
ide_startstop_t (*abort)(ide_drive_t *, struct request *rq);
|
||||
int (*ioctl)(ide_drive_t *, struct inode *, struct file *, unsigned int, unsigned long);
|
||||
ide_proc_entry_t *proc;
|
||||
int (*attach)(ide_drive_t *);
|
||||
void (*ata_prebuilder)(ide_drive_t *);
|
||||
void (*atapi_prebuilder)(ide_drive_t *);
|
||||
struct device_driver gen_driver;
|
||||
struct list_head drives;
|
||||
struct list_head drivers;
|
||||
} ide_driver_t;
|
||||
|
||||
#define DRIVER(drive) ((drive)->driver)
|
||||
|
||||
int generic_ide_ioctl(ide_drive_t *, struct file *, struct block_device *, unsigned, unsigned long);
|
||||
|
||||
/*
|
||||
@@ -1328,8 +1321,6 @@ extern void ide_init_subdrivers(void);
|
||||
|
||||
void ide_init_disk(struct gendisk *, ide_drive_t *);
|
||||
|
||||
extern int ata_attach(ide_drive_t *);
|
||||
|
||||
extern int ideprobe_init(void);
|
||||
|
||||
extern void ide_scan_pcibus(int scan_direction) __init;
|
||||
@@ -1342,11 +1333,8 @@ extern void default_hwif_iops(ide_hwif_t *);
|
||||
extern void default_hwif_mmiops(ide_hwif_t *);
|
||||
extern void default_hwif_transport(ide_hwif_t *);
|
||||
|
||||
int ide_register_driver(ide_driver_t *driver);
|
||||
void ide_unregister_driver(ide_driver_t *driver);
|
||||
int ide_register_subdriver(ide_drive_t *, ide_driver_t *);
|
||||
int ide_unregister_subdriver (ide_drive_t *drive);
|
||||
int ide_replace_subdriver(ide_drive_t *drive, const char *driver);
|
||||
void ide_register_subdriver(ide_drive_t *, ide_driver_t *);
|
||||
void ide_unregister_subdriver(ide_drive_t *, ide_driver_t *);
|
||||
|
||||
#define ON_BOARD 1
|
||||
#define NEVER_BOARD 0
|
||||
|
||||
@@ -23,7 +23,7 @@ struct shaper
|
||||
__u32 shapeclock;
|
||||
unsigned long recovery; /* Time we can next clock a packet out on
|
||||
an empty queue */
|
||||
unsigned long locked;
|
||||
struct semaphore sem;
|
||||
struct net_device_stats stats;
|
||||
struct net_device *dev;
|
||||
int (*hard_start_xmit) (struct sk_buff *skb,
|
||||
@@ -38,7 +38,6 @@ struct shaper
|
||||
int (*hard_header_cache)(struct neighbour *neigh, struct hh_cache *hh);
|
||||
void (*header_cache_update)(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr);
|
||||
struct net_device_stats* (*get_stats)(struct net_device *dev);
|
||||
wait_queue_head_t wait_queue;
|
||||
struct timer_list timer;
|
||||
};
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Donald Becker, <becker@super.org>
|
||||
* Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
|
||||
* Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -19,24 +19,16 @@
|
||||
#ifndef _LINUX_IF_TR_H
|
||||
#define _LINUX_IF_TR_H
|
||||
|
||||
|
||||
/* IEEE 802.5 Token-Ring magic constants. The frame sizes omit the preamble
|
||||
and FCS/CRC (frame check sequence). */
|
||||
#define TR_ALEN 6 /* Octets in one ethernet addr */
|
||||
#define TR_HLEN (sizeof(struct trh_hdr)+sizeof(struct trllc))
|
||||
#define AC 0x10
|
||||
#define LLC_FRAME 0x40
|
||||
#if 0
|
||||
#define ETH_HLEN 14 /* Total octets in header. */
|
||||
#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */
|
||||
#define ETH_DATA_LEN 1500 /* Max. octets in payload */
|
||||
#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */
|
||||
#endif
|
||||
|
||||
#define TR_ALEN 6 /* Octets in one token-ring addr */
|
||||
#define TR_HLEN (sizeof(struct trh_hdr)+sizeof(struct trllc))
|
||||
#define AC 0x10
|
||||
#define LLC_FRAME 0x40
|
||||
|
||||
/* LLC and SNAP constants */
|
||||
#define EXTENDED_SAP 0xAA
|
||||
#define UI_CMD 0x03
|
||||
#define EXTENDED_SAP 0xAA
|
||||
#define UI_CMD 0x03
|
||||
|
||||
/* This is an Token-Ring frame header. */
|
||||
struct trh_hdr {
|
||||
@@ -44,8 +36,8 @@ struct trh_hdr {
|
||||
__u8 fc; /* frame control field */
|
||||
__u8 daddr[TR_ALEN]; /* destination address */
|
||||
__u8 saddr[TR_ALEN]; /* source address */
|
||||
__u16 rcf; /* route control field */
|
||||
__u16 rseg[8]; /* routing registers */
|
||||
__be16 rcf; /* route control field */
|
||||
__be16 rseg[8]; /* routing registers */
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
@@ -63,7 +55,7 @@ struct trllc {
|
||||
__u8 ssap; /* source SAP */
|
||||
__u8 llc; /* LLC control field */
|
||||
__u8 protid[3]; /* protocol id */
|
||||
__u16 ethertype; /* ether type field */
|
||||
__be16 ethertype; /* ether type field */
|
||||
};
|
||||
|
||||
/* Token-Ring statistics collection data. */
|
||||
@@ -96,14 +88,13 @@ struct tr_statistics {
|
||||
};
|
||||
|
||||
/* source routing stuff */
|
||||
|
||||
#define TR_RII 0x80
|
||||
#define TR_RCF_DIR_BIT 0x80
|
||||
#define TR_RCF_LEN_MASK 0x1f00
|
||||
#define TR_RCF_BROADCAST 0x8000 /* all-routes broadcast */
|
||||
#define TR_RCF_LIMITED_BROADCAST 0xC000 /* single-route broadcast */
|
||||
#define TR_RCF_FRAME2K 0x20
|
||||
#define TR_RCF_BROADCAST_MASK 0xC000
|
||||
#define TR_MAXRIFLEN 18
|
||||
#define TR_RII 0x80
|
||||
#define TR_RCF_DIR_BIT 0x80
|
||||
#define TR_RCF_LEN_MASK 0x1f00
|
||||
#define TR_RCF_BROADCAST 0x8000 /* all-routes broadcast */
|
||||
#define TR_RCF_LIMITED_BROADCAST 0xC000 /* single-route broadcast */
|
||||
#define TR_RCF_FRAME2K 0x20
|
||||
#define TR_RCF_BROADCAST_MASK 0xC000
|
||||
#define TR_MAXRIFLEN 18
|
||||
|
||||
#endif /* _LINUX_IF_TR_H */
|
||||
|
||||
@@ -29,6 +29,7 @@ struct ipv4_devconf
|
||||
int no_xfrm;
|
||||
int no_policy;
|
||||
int force_igmp_version;
|
||||
int promote_secondaries;
|
||||
void *sysctl;
|
||||
};
|
||||
|
||||
@@ -71,6 +72,7 @@ struct in_device
|
||||
#define IN_DEV_SEC_REDIRECTS(in_dev) (ipv4_devconf.secure_redirects || (in_dev)->cnf.secure_redirects)
|
||||
#define IN_DEV_IDTAG(in_dev) ((in_dev)->cnf.tag)
|
||||
#define IN_DEV_MEDIUM_ID(in_dev) ((in_dev)->cnf.medium_id)
|
||||
#define IN_DEV_PROMOTE_SECONDARIES(in_dev) (ipv4_devconf.promote_secondaries || (in_dev)->cnf.promote_secondaries)
|
||||
|
||||
#define IN_DEV_RX_REDIRECTS(in_dev) \
|
||||
((IN_DEV_FORWARD(in_dev) && \
|
||||
|
||||
@@ -410,6 +410,7 @@ extern u8 ata_chk_err(struct ata_port *ap);
|
||||
extern void ata_exec_command(struct ata_port *ap, struct ata_taskfile *tf);
|
||||
extern int ata_port_start (struct ata_port *ap);
|
||||
extern void ata_port_stop (struct ata_port *ap);
|
||||
extern void ata_host_stop (struct ata_host_set *host_set);
|
||||
extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs);
|
||||
extern void ata_qc_prep(struct ata_queued_cmd *qc);
|
||||
extern int ata_qc_issue_prot(struct ata_queued_cmd *qc);
|
||||
@@ -467,12 +468,34 @@ static inline u8 ata_chk_status(struct ata_port *ap)
|
||||
return ap->ops->check_status(ap);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ata_pause - Flush writes and pause 400 nanoseconds.
|
||||
* @ap: Port to wait for.
|
||||
*
|
||||
* LOCKING:
|
||||
* Inherited from caller.
|
||||
*/
|
||||
|
||||
static inline void ata_pause(struct ata_port *ap)
|
||||
{
|
||||
ata_altstatus(ap);
|
||||
ndelay(400);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ata_busy_wait - Wait for a port status register
|
||||
* @ap: Port to wait for.
|
||||
*
|
||||
* Waits up to max*10 microseconds for the selected bits in the port's
|
||||
* status register to be cleared.
|
||||
* Returns final value of status register.
|
||||
*
|
||||
* LOCKING:
|
||||
* Inherited from caller.
|
||||
*/
|
||||
|
||||
static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
|
||||
unsigned int max)
|
||||
{
|
||||
@@ -487,6 +510,18 @@ static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ata_wait_idle - Wait for a port to be idle.
|
||||
* @ap: Port to wait for.
|
||||
*
|
||||
* Waits up to 10ms for port's BUSY and DRQ signals to clear.
|
||||
* Returns final value of status register.
|
||||
*
|
||||
* LOCKING:
|
||||
* Inherited from caller.
|
||||
*/
|
||||
|
||||
static inline u8 ata_wait_idle(struct ata_port *ap)
|
||||
{
|
||||
u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
|
||||
@@ -525,6 +560,18 @@ static inline void ata_tf_init(struct ata_port *ap, struct ata_taskfile *tf, uns
|
||||
tf->device = ATA_DEVICE_OBS | ATA_DEV1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ata_irq_on - Enable interrupts on a port.
|
||||
* @ap: Port on which interrupts are enabled.
|
||||
*
|
||||
* Enable interrupts on a legacy IDE device using MMIO or PIO,
|
||||
* wait for idle, clear any pending interrupts.
|
||||
*
|
||||
* LOCKING:
|
||||
* Inherited from caller.
|
||||
*/
|
||||
|
||||
static inline u8 ata_irq_on(struct ata_port *ap)
|
||||
{
|
||||
struct ata_ioports *ioaddr = &ap->ioaddr;
|
||||
@@ -544,6 +591,18 @@ static inline u8 ata_irq_on(struct ata_port *ap)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ata_irq_ack - Acknowledge a device interrupt.
|
||||
* @ap: Port on which interrupts are enabled.
|
||||
*
|
||||
* Wait up to 10 ms for legacy IDE device to become idle (BUSY
|
||||
* or BUSY+DRQ clear). Obtain dma status and port status from
|
||||
* device. Clear the interrupt. Return port status.
|
||||
*
|
||||
* LOCKING:
|
||||
*/
|
||||
|
||||
static inline u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
|
||||
{
|
||||
unsigned int bits = chk_drq ? ATA_BUSY | ATA_DRQ : ATA_BUSY;
|
||||
@@ -585,6 +644,13 @@ static inline void scr_write(struct ata_port *ap, unsigned int reg, u32 val)
|
||||
ap->ops->scr_write(ap, reg, val);
|
||||
}
|
||||
|
||||
static inline void scr_write_flush(struct ata_port *ap, unsigned int reg,
|
||||
u32 val)
|
||||
{
|
||||
ap->ops->scr_write(ap, reg, val);
|
||||
(void) ap->ops->scr_read(ap, reg);
|
||||
}
|
||||
|
||||
static inline unsigned int sata_dev_present(struct ata_port *ap)
|
||||
{
|
||||
return ((scr_read(ap, SCR_STATUS) & 0xf) == 0x3) ? 1 : 0;
|
||||
|
||||
@@ -65,9 +65,13 @@
|
||||
#define ADVERTISE_SLCT 0x001f /* Selector bits */
|
||||
#define ADVERTISE_CSMA 0x0001 /* Only selector supported */
|
||||
#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */
|
||||
#define ADVERTISE_1000XFULL 0x0020 /* Try for 1000BASE-X full-duplex */
|
||||
#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */
|
||||
#define ADVERTISE_1000XHALF 0x0040 /* Try for 1000BASE-X half-duplex */
|
||||
#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */
|
||||
#define ADVERTISE_1000XPAUSE 0x0080 /* Try for 1000BASE-X pause */
|
||||
#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */
|
||||
#define ADVERTISE_1000XPSE_ASYM 0x0100 /* Try for 1000BASE-X asym pause */
|
||||
#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */
|
||||
#define ADVERTISE_PAUSE_CAP 0x0400 /* Try for pause */
|
||||
#define ADVERTISE_PAUSE_ASYM 0x0800 /* Try for asymetric pause */
|
||||
@@ -84,9 +88,13 @@
|
||||
/* Link partner ability register. */
|
||||
#define LPA_SLCT 0x001f /* Same as advertise selector */
|
||||
#define LPA_10HALF 0x0020 /* Can do 10mbps half-duplex */
|
||||
#define LPA_1000XFULL 0x0020 /* Can do 1000BASE-X full-duplex */
|
||||
#define LPA_10FULL 0x0040 /* Can do 10mbps full-duplex */
|
||||
#define LPA_1000XHALF 0x0040 /* Can do 1000BASE-X half-duplex */
|
||||
#define LPA_100HALF 0x0080 /* Can do 100mbps half-duplex */
|
||||
#define LPA_1000XPAUSE 0x0080 /* Can do 1000BASE-X pause */
|
||||
#define LPA_100FULL 0x0100 /* Can do 100mbps full-duplex */
|
||||
#define LPA_1000XPAUSE_ASYM 0x0100 /* Can do 1000BASE-X pause asym*/
|
||||
#define LPA_100BASE4 0x0200 /* Can do 100mbps 4k packets */
|
||||
#define LPA_PAUSE_CAP 0x0400 /* Can pause */
|
||||
#define LPA_PAUSE_ASYM 0x0800 /* Can pause asymetrically */
|
||||
|
||||
@@ -195,6 +195,33 @@ struct _mmc_csd {
|
||||
#define MMC_VDD_35_36 0x00800000 /* VDD voltage 3.5 ~ 3.6 */
|
||||
#define MMC_CARD_BUSY 0x80000000 /* Card Power up status bit */
|
||||
|
||||
/*
|
||||
* Card Command Classes (CCC)
|
||||
*/
|
||||
#define CCC_BASIC (1<<0) /* (0) Basic protocol functions */
|
||||
/* (CMD0,1,2,3,4,7,9,10,12,13,15) */
|
||||
#define CCC_STREAM_READ (1<<1) /* (1) Stream read commands */
|
||||
/* (CMD11) */
|
||||
#define CCC_BLOCK_READ (1<<2) /* (2) Block read commands */
|
||||
/* (CMD16,17,18) */
|
||||
#define CCC_STREAM_WRITE (1<<3) /* (3) Stream write commands */
|
||||
/* (CMD20) */
|
||||
#define CCC_BLOCK_WRITE (1<<4) /* (4) Block write commands */
|
||||
/* (CMD16,24,25,26,27) */
|
||||
#define CCC_ERASE (1<<5) /* (5) Ability to erase blocks */
|
||||
/* (CMD32,33,34,35,36,37,38,39) */
|
||||
#define CCC_WRITE_PROT (1<<6) /* (6) Able to write protect blocks */
|
||||
/* (CMD28,29,30) */
|
||||
#define CCC_LOCK_CARD (1<<7) /* (7) Able to lock down card */
|
||||
/* (CMD16,CMD42) */
|
||||
#define CCC_APP_SPEC (1<<8) /* (8) Application specific */
|
||||
/* (CMD55,56,57,ACMD*) */
|
||||
#define CCC_IO_MODE (1<<9) /* (9) I/O mode */
|
||||
/* (CMD5,39,40,52,53) */
|
||||
#define CCC_SWITCH (1<<10) /* (10) High speed switch */
|
||||
/* (CMD6,34,35,36,37,50) */
|
||||
/* (11) Reserved */
|
||||
/* (CMD?) */
|
||||
|
||||
/*
|
||||
* CSD field definitions
|
||||
|
||||
@@ -101,7 +101,6 @@ enum sock_type {
|
||||
* @sk: internal networking protocol agnostic socket representation
|
||||
* @wait: wait queue for several uses
|
||||
* @type: socket type (%SOCK_STREAM, etc)
|
||||
* @passcred: credentials (used only in Unix Sockets (aka PF_LOCAL))
|
||||
*/
|
||||
struct socket {
|
||||
socket_state state;
|
||||
|
||||
@@ -204,7 +204,7 @@ struct hh_cache
|
||||
/* cached hardware header; allow for machine alignment needs. */
|
||||
#define HH_DATA_MOD 16
|
||||
#define HH_DATA_OFF(__len) \
|
||||
(HH_DATA_MOD - ((__len) & (HH_DATA_MOD - 1)))
|
||||
(HH_DATA_MOD - (((__len - 1) & (HH_DATA_MOD - 1)) + 1))
|
||||
#define HH_DATA_ALIGN(__len) \
|
||||
(((__len)+(HH_DATA_MOD-1))&~(HH_DATA_MOD - 1))
|
||||
unsigned long hh_data[HH_DATA_ALIGN(LL_MAX_HEADER) / sizeof(long)];
|
||||
@@ -401,7 +401,7 @@ struct net_device
|
||||
} reg_state;
|
||||
|
||||
/* Net device features */
|
||||
int features;
|
||||
unsigned long features;
|
||||
#define NETIF_F_SG 1 /* Scatter/gather IO. */
|
||||
#define NETIF_F_IP_CSUM 2 /* Can checksum only TCP/UDP over IPv4. */
|
||||
#define NETIF_F_NO_CSUM 4 /* Does not require checksum. F.e. loopack. */
|
||||
@@ -503,7 +503,7 @@ static inline void *netdev_priv(struct net_device *dev)
|
||||
#define SET_NETDEV_DEV(net, pdev) ((net)->class_dev.dev = (pdev))
|
||||
|
||||
struct packet_type {
|
||||
unsigned short type; /* This is really htons(ether_type). */
|
||||
__be16 type; /* This is really htons(ether_type). */
|
||||
struct net_device *dev; /* NULL is wildcarded here */
|
||||
int (*func) (struct sk_buff *, struct net_device *,
|
||||
struct packet_type *);
|
||||
@@ -913,6 +913,7 @@ extern void dev_mc_discard(struct net_device *dev);
|
||||
extern void dev_set_promiscuity(struct net_device *dev, int inc);
|
||||
extern void dev_set_allmulti(struct net_device *dev, int inc);
|
||||
extern void netdev_state_change(struct net_device *dev);
|
||||
extern void netdev_features_change(struct net_device *dev);
|
||||
/* Load a device via the kmod */
|
||||
extern void dev_load(const char *name);
|
||||
extern void dev_mcast_init(void);
|
||||
|
||||
@@ -56,6 +56,7 @@ extern int notifier_call_chain(struct notifier_block **n, unsigned long val, voi
|
||||
#define NETDEV_CHANGEADDR 0x0008
|
||||
#define NETDEV_GOING_DOWN 0x0009
|
||||
#define NETDEV_CHANGENAME 0x000A
|
||||
#define NETDEV_FEAT_CHANGE 0x000B
|
||||
|
||||
#define SYS_DOWN 0x0001 /* Notify of system down */
|
||||
#define SYS_RESTART SYS_DOWN
|
||||
|
||||
@@ -1230,6 +1230,12 @@
|
||||
#define PCI_DEVICE_ID_NVIDIA_QUADRO4_900XGL 0x0258
|
||||
#define PCI_DEVICE_ID_NVIDIA_QUADRO4_750XGL 0x0259
|
||||
#define PCI_DEVICE_ID_NVIDIA_QUADRO4_700XGL 0x025B
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE 0x0265
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA 0x0266
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2 0x0267
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268
|
||||
#define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269
|
||||
#define PCI_DEVICE_ID_NVIDIA_MCP51_AUDIO 0x026B
|
||||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800 0x0280
|
||||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800_8X 0x0281
|
||||
#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800SE 0x0282
|
||||
@@ -2064,12 +2070,14 @@
|
||||
|
||||
#define PCI_VENDOR_ID_BROADCOM 0x14e4
|
||||
#define PCI_DEVICE_ID_TIGON3_5752 0x1600
|
||||
#define PCI_DEVICE_ID_TIGON3_5752M 0x1601
|
||||
#define PCI_DEVICE_ID_TIGON3_5700 0x1644
|
||||
#define PCI_DEVICE_ID_TIGON3_5701 0x1645
|
||||
#define PCI_DEVICE_ID_TIGON3_5702 0x1646
|
||||
#define PCI_DEVICE_ID_TIGON3_5703 0x1647
|
||||
#define PCI_DEVICE_ID_TIGON3_5704 0x1648
|
||||
#define PCI_DEVICE_ID_TIGON3_5704S_2 0x1649
|
||||
#define PCI_DEVICE_ID_NX2_5706 0x164a
|
||||
#define PCI_DEVICE_ID_TIGON3_5702FE 0x164d
|
||||
#define PCI_DEVICE_ID_TIGON3_5705 0x1653
|
||||
#define PCI_DEVICE_ID_TIGON3_5705_2 0x1654
|
||||
@@ -2089,6 +2097,7 @@
|
||||
#define PCI_DEVICE_ID_TIGON3_5702X 0x16a6
|
||||
#define PCI_DEVICE_ID_TIGON3_5703X 0x16a7
|
||||
#define PCI_DEVICE_ID_TIGON3_5704S 0x16a8
|
||||
#define PCI_DEVICE_ID_NX2_5706S 0x16aa
|
||||
#define PCI_DEVICE_ID_TIGON3_5702A3 0x16c6
|
||||
#define PCI_DEVICE_ID_TIGON3_5703A3 0x16c7
|
||||
#define PCI_DEVICE_ID_TIGON3_5781 0x16dd
|
||||
|
||||
@@ -427,6 +427,7 @@ enum
|
||||
TCA_NETEM_UNSPEC,
|
||||
TCA_NETEM_CORR,
|
||||
TCA_NETEM_DELAY_DIST,
|
||||
TCA_NETEM_REORDER,
|
||||
__TCA_NETEM_MAX,
|
||||
};
|
||||
|
||||
@@ -437,7 +438,7 @@ struct tc_netem_qopt
|
||||
__u32 latency; /* added delay (us) */
|
||||
__u32 limit; /* fifo limit (packets) */
|
||||
__u32 loss; /* random packet loss (0=none ~0=100%) */
|
||||
__u32 gap; /* re-ordering gap (0 for delay all) */
|
||||
__u32 gap; /* re-ordering gap (0 for none) */
|
||||
__u32 duplicate; /* random packet dup (0=none ~0=100%) */
|
||||
__u32 jitter; /* random jitter in latency (us) */
|
||||
};
|
||||
@@ -449,6 +450,12 @@ struct tc_netem_corr
|
||||
__u32 dup_corr; /* duplicate correlation */
|
||||
};
|
||||
|
||||
struct tc_netem_reorder
|
||||
{
|
||||
__u32 probability;
|
||||
__u32 correlation;
|
||||
};
|
||||
|
||||
#define NETEM_DIST_SCALE 8192
|
||||
|
||||
#endif
|
||||
|
||||
@@ -479,6 +479,25 @@ uart_handle_cts_change(struct uart_port *port, unsigned int status)
|
||||
}
|
||||
}
|
||||
|
||||
#include <linux/tty_flip.h>
|
||||
|
||||
static inline void
|
||||
uart_insert_char(struct uart_port *port, unsigned int status,
|
||||
unsigned int overrun, unsigned int ch, unsigned int flag)
|
||||
{
|
||||
struct tty_struct *tty = port->info->tty;
|
||||
|
||||
if ((status & port->ignore_status_mask & ~overrun) == 0)
|
||||
tty_insert_flip_char(tty, ch, flag);
|
||||
|
||||
/*
|
||||
* Overrun is special. Since it's reported immediately,
|
||||
* it doesn't affect the current character.
|
||||
*/
|
||||
if (status & ~port->ignore_status_mask & overrun)
|
||||
tty_insert_flip_char(tty, 0, TTY_OVERRUN);
|
||||
}
|
||||
|
||||
/*
|
||||
* UART_ENABLE_MS - determine if port should enable modem status irqs
|
||||
*/
|
||||
|
||||
@@ -248,7 +248,7 @@ typedef struct {
|
||||
|
||||
#define _spin_trylock_bh(lock) ({preempt_disable(); local_bh_disable(); \
|
||||
_raw_spin_trylock(lock) ? \
|
||||
1 : ({preempt_enable(); local_bh_enable(); 0;});})
|
||||
1 : ({preempt_enable_no_resched(); local_bh_enable(); 0;});})
|
||||
|
||||
#define _spin_lock(lock) \
|
||||
do { \
|
||||
@@ -383,7 +383,7 @@ do { \
|
||||
#define _spin_unlock_bh(lock) \
|
||||
do { \
|
||||
_raw_spin_unlock(lock); \
|
||||
preempt_enable(); \
|
||||
preempt_enable_no_resched(); \
|
||||
local_bh_enable(); \
|
||||
__release(lock); \
|
||||
} while (0)
|
||||
@@ -391,7 +391,7 @@ do { \
|
||||
#define _write_unlock_bh(lock) \
|
||||
do { \
|
||||
_raw_write_unlock(lock); \
|
||||
preempt_enable(); \
|
||||
preempt_enable_no_resched(); \
|
||||
local_bh_enable(); \
|
||||
__release(lock); \
|
||||
} while (0)
|
||||
@@ -423,8 +423,8 @@ do { \
|
||||
#define _read_unlock_bh(lock) \
|
||||
do { \
|
||||
_raw_read_unlock(lock); \
|
||||
preempt_enable_no_resched(); \
|
||||
local_bh_enable(); \
|
||||
preempt_enable(); \
|
||||
__release(lock); \
|
||||
} while (0)
|
||||
|
||||
|
||||
@@ -399,6 +399,7 @@ enum
|
||||
NET_IPV4_CONF_FORCE_IGMP_VERSION=17,
|
||||
NET_IPV4_CONF_ARP_ANNOUNCE=18,
|
||||
NET_IPV4_CONF_ARP_IGNORE=19,
|
||||
NET_IPV4_CONF_PROMOTE_SECONDARIES=20,
|
||||
__NET_IPV4_CONF_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -796,6 +796,10 @@ typedef void (*usb_complete_t)(struct urb *, struct pt_regs *);
|
||||
* of the iso_frame_desc array, and the number of errors is reported in
|
||||
* error_count. Completion callbacks for ISO transfers will normally
|
||||
* (re)submit URBs to ensure a constant transfer rate.
|
||||
*
|
||||
* Note that even fields marked "public" should not be touched by the driver
|
||||
* when the urb is owned by the hcd, that is, since the call to
|
||||
* usb_submit_urb() till the entry into the completion routine.
|
||||
*/
|
||||
struct urb
|
||||
{
|
||||
@@ -803,12 +807,12 @@ struct urb
|
||||
struct kref kref; /* reference count of the URB */
|
||||
spinlock_t lock; /* lock for the URB */
|
||||
void *hcpriv; /* private data for host controller */
|
||||
struct list_head urb_list; /* list pointer to all active urbs */
|
||||
int bandwidth; /* bandwidth for INT/ISO request */
|
||||
atomic_t use_count; /* concurrent submissions counter */
|
||||
u8 reject; /* submissions will fail */
|
||||
|
||||
/* public, documented fields in the urb that can be used by drivers */
|
||||
struct list_head urb_list; /* list head for use by the urb owner */
|
||||
struct usb_device *dev; /* (in) pointer to associated device */
|
||||
unsigned int pipe; /* (in) pipe information */
|
||||
int status; /* (return) non-ISO status */
|
||||
|
||||
@@ -41,6 +41,7 @@ extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags);
|
||||
extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags,
|
||||
unsigned long start, unsigned long end);
|
||||
extern struct vm_struct *remove_vm_area(void *addr);
|
||||
extern struct vm_struct *__remove_vm_area(void *addr);
|
||||
extern int map_vm_area(struct vm_struct *area, pgprot_t prot,
|
||||
struct page ***pages);
|
||||
extern void unmap_vm_area(struct vm_struct *area);
|
||||
|
||||
@@ -386,9 +386,7 @@ int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
|
||||
wait_queue_t name = { \
|
||||
.task = current, \
|
||||
.func = autoremove_wake_function, \
|
||||
.task_list = { .next = &(name).task_list, \
|
||||
.prev = &(name).task_list, \
|
||||
}, \
|
||||
.task_list = LIST_HEAD_INIT((name).task_list), \
|
||||
}
|
||||
|
||||
#define DEFINE_WAIT_BIT(name, word, bit) \
|
||||
|
||||
@@ -16,7 +16,7 @@ struct videobuf_dvb {
|
||||
int nfeeds;
|
||||
|
||||
/* videobuf_dvb_(un)register manges this */
|
||||
struct dvb_adapter *adapter;
|
||||
struct dvb_adapter adapter;
|
||||
struct dvb_demux demux;
|
||||
struct dmxdev dmxdev;
|
||||
struct dmx_frontend fe_hw;
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
* include/net/act_generic.h
|
||||
*
|
||||
*/
|
||||
#ifndef ACT_GENERIC_H
|
||||
#define ACT_GENERIC_H
|
||||
#ifndef _NET_ACT_GENERIC_H
|
||||
#define _NET_ACT_GENERIC_H
|
||||
static inline int tcf_defact_release(struct tcf_defact *p, int bind)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
@@ -181,9 +181,6 @@ static inline int ip_route_newports(struct rtable **rp, u16 sport, u16 dport,
|
||||
memcpy(&fl, &(*rp)->fl, sizeof(fl));
|
||||
fl.fl_ip_sport = sport;
|
||||
fl.fl_ip_dport = dport;
|
||||
#if defined(CONFIG_IP_ROUTE_MULTIPATH_CACHED)
|
||||
fl.flags |= FLOWI_FLAG_MULTIPATHOLDROUTE;
|
||||
#endif
|
||||
ip_rt_put(*rp);
|
||||
*rp = NULL;
|
||||
return ip_route_output_flow(rp, &fl, sk, 0);
|
||||
|
||||
@@ -515,6 +515,8 @@ struct xfrm_dst
|
||||
struct dst_entry *route;
|
||||
u32 route_mtu_cached;
|
||||
u32 child_mtu_cached;
|
||||
u32 route_cookie;
|
||||
u32 path_cookie;
|
||||
};
|
||||
|
||||
static inline void xfrm_dst_destroy(struct xfrm_dst *xdst)
|
||||
|
||||
@@ -27,8 +27,11 @@ struct scsi_transport_template;
|
||||
|
||||
struct spi_transport_attrs {
|
||||
int period; /* value in the PPR/SDTR command */
|
||||
int min_period;
|
||||
int offset;
|
||||
int max_offset;
|
||||
unsigned int width:1; /* 0 - narrow, 1 - wide */
|
||||
unsigned int max_width:1;
|
||||
unsigned int iu:1; /* Information Units enabled */
|
||||
unsigned int dt:1; /* DT clocking enabled */
|
||||
unsigned int qas:1; /* Quick Arbitration and Selection enabled */
|
||||
@@ -63,8 +66,11 @@ struct spi_host_attrs {
|
||||
|
||||
/* accessor functions */
|
||||
#define spi_period(x) (((struct spi_transport_attrs *)&(x)->starget_data)->period)
|
||||
#define spi_min_period(x) (((struct spi_transport_attrs *)&(x)->starget_data)->min_period)
|
||||
#define spi_offset(x) (((struct spi_transport_attrs *)&(x)->starget_data)->offset)
|
||||
#define spi_max_offset(x) (((struct spi_transport_attrs *)&(x)->starget_data)->max_offset)
|
||||
#define spi_width(x) (((struct spi_transport_attrs *)&(x)->starget_data)->width)
|
||||
#define spi_max_width(x) (((struct spi_transport_attrs *)&(x)->starget_data)->max_width)
|
||||
#define spi_iu(x) (((struct spi_transport_attrs *)&(x)->starget_data)->iu)
|
||||
#define spi_dt(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dt)
|
||||
#define spi_qas(x) (((struct spi_transport_attrs *)&(x)->starget_data)->qas)
|
||||
|
||||
Reference in New Issue
Block a user