Merge with /shiny/git/linux-2.6/.git
This commit is contained in:
@@ -21,38 +21,8 @@
|
||||
*/
|
||||
#define __PORT_PCIO(x) (!((x) & 0x80000000))
|
||||
|
||||
/*
|
||||
* Dynamic IO functions - let the compiler
|
||||
* optimize the expressions
|
||||
*/
|
||||
#define DECLARE_DYN_OUT(fnsuffix,instr) \
|
||||
static inline void __out##fnsuffix (unsigned int value, unsigned int port) \
|
||||
{ \
|
||||
unsigned long temp; \
|
||||
__asm__ __volatile__( \
|
||||
"tst %2, #0x80000000\n\t" \
|
||||
"mov %0, %4\n\t" \
|
||||
"addeq %0, %0, %3\n\t" \
|
||||
"str" instr " %1, [%0, %2] @ out" #fnsuffix \
|
||||
: "=&r" (temp) \
|
||||
: "r" (value), "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) \
|
||||
: "cc"); \
|
||||
}
|
||||
#define __io(a) ((void __iomem *)(PCIO_BASE + (a)))
|
||||
|
||||
#define DECLARE_DYN_IN(sz,fnsuffix,instr) \
|
||||
static inline unsigned sz __in##fnsuffix (unsigned int port) \
|
||||
{ \
|
||||
unsigned long temp, value; \
|
||||
__asm__ __volatile__( \
|
||||
"tst %2, #0x80000000\n\t" \
|
||||
"mov %0, %4\n\t" \
|
||||
"addeq %0, %0, %3\n\t" \
|
||||
"ldr" instr " %1, [%0, %2] @ in" #fnsuffix \
|
||||
: "=&r" (temp), "=r" (value) \
|
||||
: "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) \
|
||||
: "cc"); \
|
||||
return (unsigned sz)value; \
|
||||
}
|
||||
|
||||
static inline unsigned int __ioaddr (unsigned int port) \
|
||||
{ \
|
||||
@@ -62,123 +32,8 @@ static inline unsigned int __ioaddr (unsigned int port) \
|
||||
return (unsigned int)(IO_BASE + (port)); \
|
||||
}
|
||||
|
||||
#define DECLARE_IO(sz,fnsuffix,instr) \
|
||||
DECLARE_DYN_OUT(fnsuffix,instr) \
|
||||
DECLARE_DYN_IN(sz,fnsuffix,instr)
|
||||
|
||||
DECLARE_IO(char,b,"b")
|
||||
DECLARE_IO(short,w,"h")
|
||||
DECLARE_IO(long,l,"")
|
||||
|
||||
#undef DECLARE_IO
|
||||
#undef DECLARE_DYN_OUT
|
||||
#undef DECLARE_DYN_IN
|
||||
|
||||
/*
|
||||
* Constant address IO functions
|
||||
*
|
||||
* These have to be macros for the 'J' constraint to work -
|
||||
* +/-4096 immediate operand.
|
||||
*/
|
||||
#define __outbc(value,port) \
|
||||
({ \
|
||||
if (__PORT_PCIO((port))) \
|
||||
__asm__ __volatile__( \
|
||||
"strb %0, [%1, %2] @ outbc" \
|
||||
: : "r" (value), "r" (PCIO_BASE), "Jr" (port)); \
|
||||
else \
|
||||
__asm__ __volatile__( \
|
||||
"strb %0, [%1, %2] @ outbc" \
|
||||
: : "r" (value), "r" (IO_BASE), "r" (port)); \
|
||||
})
|
||||
|
||||
#define __inbc(port) \
|
||||
({ \
|
||||
unsigned char result; \
|
||||
if (__PORT_PCIO((port))) \
|
||||
__asm__ __volatile__( \
|
||||
"ldrb %0, [%1, %2] @ inbc" \
|
||||
: "=r" (result) : "r" (PCIO_BASE), "Jr" (port)); \
|
||||
else \
|
||||
__asm__ __volatile__( \
|
||||
"ldrb %0, [%1, %2] @ inbc" \
|
||||
: "=r" (result) : "r" (IO_BASE), "r" (port)); \
|
||||
result; \
|
||||
})
|
||||
|
||||
#define __outwc(value,port) \
|
||||
({ \
|
||||
unsigned long v = value; \
|
||||
if (__PORT_PCIO((port))) \
|
||||
__asm__ __volatile__( \
|
||||
"strh %0, [%1, %2] @ outwc" \
|
||||
: : "r" (v|v<<16), "r" (PCIO_BASE), "Jr" (port)); \
|
||||
else \
|
||||
__asm__ __volatile__( \
|
||||
"strh %0, [%1, %2] @ outwc" \
|
||||
: : "r" (v|v<<16), "r" (IO_BASE), "r" (port)); \
|
||||
})
|
||||
|
||||
#define __inwc(port) \
|
||||
({ \
|
||||
unsigned short result; \
|
||||
if (__PORT_PCIO((port))) \
|
||||
__asm__ __volatile__( \
|
||||
"ldrh %0, [%1, %2] @ inwc" \
|
||||
: "=r" (result) : "r" (PCIO_BASE), "Jr" (port)); \
|
||||
else \
|
||||
__asm__ __volatile__( \
|
||||
"ldrh %0, [%1, %2] @ inwc" \
|
||||
: "=r" (result) : "r" (IO_BASE), "r" (port)); \
|
||||
result & 0xffff; \
|
||||
})
|
||||
|
||||
#define __outlc(value,port) \
|
||||
({ \
|
||||
unsigned long v = value; \
|
||||
if (__PORT_PCIO((port))) \
|
||||
__asm__ __volatile__( \
|
||||
"str %0, [%1, %2] @ outlc" \
|
||||
: : "r" (v), "r" (PCIO_BASE), "Jr" (port)); \
|
||||
else \
|
||||
__asm__ __volatile__( \
|
||||
"str %0, [%1, %2] @ outlc" \
|
||||
: : "r" (v), "r" (IO_BASE), "r" (port)); \
|
||||
})
|
||||
|
||||
#define __inlc(port) \
|
||||
({ \
|
||||
unsigned long result; \
|
||||
if (__PORT_PCIO((port))) \
|
||||
__asm__ __volatile__( \
|
||||
"ldr %0, [%1, %2] @ inlc" \
|
||||
: "=r" (result) : "r" (PCIO_BASE), "Jr" (port)); \
|
||||
else \
|
||||
__asm__ __volatile__( \
|
||||
"ldr %0, [%1, %2] @ inlc" \
|
||||
: "=r" (result) : "r" (IO_BASE), "r" (port)); \
|
||||
result; \
|
||||
})
|
||||
|
||||
#define __ioaddrc(port) \
|
||||
({ \
|
||||
unsigned long addr; \
|
||||
if (__PORT_PCIO((port))) \
|
||||
addr = PCIO_BASE + (port); \
|
||||
else \
|
||||
addr = IO_BASE + (port); \
|
||||
addr; \
|
||||
})
|
||||
|
||||
#define __mem_pci(addr) (addr)
|
||||
|
||||
#define inb(p) (__builtin_constant_p((p)) ? __inbc(p) : __inb(p))
|
||||
#define inw(p) (__builtin_constant_p((p)) ? __inwc(p) : __inw(p))
|
||||
#define inl(p) (__builtin_constant_p((p)) ? __inlc(p) : __inl(p))
|
||||
#define outb(v,p) (__builtin_constant_p((p)) ? __outbc(v,p) : __outb(v,p))
|
||||
#define outw(v,p) (__builtin_constant_p((p)) ? __outwc(v,p) : __outw(v,p))
|
||||
#define outl(v,p) (__builtin_constant_p((p)) ? __outlc(v,p) : __outl(v,p))
|
||||
|
||||
/*
|
||||
* Translated address IO functions
|
||||
*
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
|
||||
#define raw_smp_processor_id() (current_thread_info()->cpu)
|
||||
|
||||
extern cpumask_t cpu_present_mask;
|
||||
#define cpu_possible_map cpu_present_mask
|
||||
|
||||
/*
|
||||
* at the moment, there's not a big penalty for changing CPUs
|
||||
* (the >big< penalty is running SMP in the first place)
|
||||
|
||||
@@ -128,6 +128,7 @@ struct pci_controller {
|
||||
void *acpi_handle;
|
||||
void *iommu;
|
||||
int segment;
|
||||
int node; /* nearest node with memory or -1 for global allocation */
|
||||
|
||||
unsigned int windows;
|
||||
struct pci_window *window;
|
||||
|
||||
@@ -128,7 +128,7 @@ pcibr_lock(struct pcibus_info *pcibus_info)
|
||||
#define pcibr_unlock(pcibus_info, flag) spin_unlock_irqrestore(&pcibus_info->pbi_lock, flag)
|
||||
|
||||
extern int pcibr_init_provider(void);
|
||||
extern void *pcibr_bus_fixup(struct pcibus_bussoft *);
|
||||
extern void *pcibr_bus_fixup(struct pcibus_bussoft *, struct pci_controller *);
|
||||
extern dma_addr_t pcibr_dma_map(struct pci_dev *, unsigned long, size_t);
|
||||
extern dma_addr_t pcibr_dma_map_consistent(struct pci_dev *, unsigned long, size_t);
|
||||
extern void pcibr_dma_unmap(struct pci_dev *, dma_addr_t, int);
|
||||
|
||||
@@ -37,6 +37,7 @@ struct pcibus_bussoft {
|
||||
struct xwidget_info *bs_xwidget_info;
|
||||
};
|
||||
|
||||
struct pci_controller;
|
||||
/*
|
||||
* SN pci bus indirection
|
||||
*/
|
||||
@@ -45,7 +46,7 @@ struct sn_pcibus_provider {
|
||||
dma_addr_t (*dma_map)(struct pci_dev *, unsigned long, size_t);
|
||||
dma_addr_t (*dma_map_consistent)(struct pci_dev *, unsigned long, size_t);
|
||||
void (*dma_unmap)(struct pci_dev *, dma_addr_t, int);
|
||||
void * (*bus_fixup)(struct pcibus_bussoft *);
|
||||
void * (*bus_fixup)(struct pcibus_bussoft *, struct pci_controller *);
|
||||
};
|
||||
|
||||
extern struct sn_pcibus_provider *sn_pci_provider[];
|
||||
|
||||
@@ -13,16 +13,9 @@
|
||||
#define SNMAGIC 0xaeeeeeee8badbeefL
|
||||
#define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;})
|
||||
|
||||
#ifdef CONFIG_IA64_SGI_SN_SIM
|
||||
#define SIMULATOR_SLEEP() asm("nop.i 0x8beef")
|
||||
#define IS_RUNNING_ON_SIMULATOR() (sn_prom_type)
|
||||
#define IS_RUNNING_ON_SIMULATOR() (sn_prom_type)
|
||||
#define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2)
|
||||
extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */
|
||||
#else
|
||||
#define IS_RUNNING_ON_SIMULATOR() (0)
|
||||
#define IS_RUNNING_ON_FAKE_PROM() (0)
|
||||
#define SIMULATOR_SLEEP()
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_IA64_SN_SIMULATOR_H */
|
||||
|
||||
@@ -40,6 +40,11 @@
|
||||
*/
|
||||
#define node_to_first_cpu(node) (__ffs(node_to_cpumask(node)))
|
||||
|
||||
/*
|
||||
* Determines the node for a given pci bus
|
||||
*/
|
||||
#define pcibus_to_node(bus) PCI_CONTROLLER(bus)->node
|
||||
|
||||
void build_cpu_to_node_map(void);
|
||||
|
||||
#define SD_CPU_INIT (struct sched_domain) { \
|
||||
|
||||
@@ -149,6 +149,7 @@ static inline void get_mmu_context(struct mm_struct *mm)
|
||||
*/
|
||||
static inline void destroy_context(struct mm_struct *mm)
|
||||
{
|
||||
preempt_disable();
|
||||
if (mm->context != NO_CONTEXT) {
|
||||
clear_bit(mm->context, context_map);
|
||||
mm->context = NO_CONTEXT;
|
||||
@@ -156,6 +157,7 @@ static inline void destroy_context(struct mm_struct *mm)
|
||||
atomic_inc(&nr_free_contexts);
|
||||
#endif
|
||||
}
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
|
||||
|
||||
@@ -77,27 +77,26 @@ static inline u64 HvCallHpt_invalidateSetSwBitsGet(u32 hpteIndex, u8 bitson,
|
||||
return compressedStatus;
|
||||
}
|
||||
|
||||
static inline u64 HvCallHpt_findValid(HPTE *hpte, u64 vpn)
|
||||
static inline u64 HvCallHpt_findValid(hpte_t *hpte, u64 vpn)
|
||||
{
|
||||
return HvCall3Ret16(HvCallHptFindValid, hpte, vpn, 0, 0);
|
||||
}
|
||||
|
||||
static inline u64 HvCallHpt_findNextValid(HPTE *hpte, u32 hpteIndex,
|
||||
static inline u64 HvCallHpt_findNextValid(hpte_t *hpte, u32 hpteIndex,
|
||||
u8 bitson, u8 bitsoff)
|
||||
{
|
||||
return HvCall3Ret16(HvCallHptFindNextValid, hpte, hpteIndex,
|
||||
bitson, bitsoff);
|
||||
}
|
||||
|
||||
static inline void HvCallHpt_get(HPTE *hpte, u32 hpteIndex)
|
||||
static inline void HvCallHpt_get(hpte_t *hpte, u32 hpteIndex)
|
||||
{
|
||||
HvCall2Ret16(HvCallHptGet, hpte, hpteIndex, 0);
|
||||
}
|
||||
|
||||
static inline void HvCallHpt_addValidate(u32 hpteIndex, u32 hBit, HPTE *hpte)
|
||||
static inline void HvCallHpt_addValidate(u32 hpteIndex, u32 hBit, hpte_t *hpte)
|
||||
{
|
||||
HvCall4(HvCallHptAddValidate, hpteIndex, hBit, (*((u64 *)hpte)),
|
||||
(*(((u64 *)hpte)+1)));
|
||||
HvCall4(HvCallHptAddValidate, hpteIndex, hBit, hpte->v, hpte->r);
|
||||
}
|
||||
|
||||
#endif /* _HVCALLHPT_H */
|
||||
|
||||
@@ -53,10 +53,8 @@ struct machdep_calls {
|
||||
long (*hpte_insert)(unsigned long hpte_group,
|
||||
unsigned long va,
|
||||
unsigned long prpn,
|
||||
int secondary,
|
||||
unsigned long hpteflags,
|
||||
int bolted,
|
||||
int large);
|
||||
unsigned long vflags,
|
||||
unsigned long rflags);
|
||||
long (*hpte_remove)(unsigned long hpte_group);
|
||||
void (*flush_hash_range)(unsigned long context,
|
||||
unsigned long number,
|
||||
|
||||
@@ -60,6 +60,22 @@
|
||||
|
||||
#define HPTES_PER_GROUP 8
|
||||
|
||||
#define HPTE_V_AVPN_SHIFT 7
|
||||
#define HPTE_V_AVPN ASM_CONST(0xffffffffffffff80)
|
||||
#define HPTE_V_AVPN_VAL(x) (((x) & HPTE_V_AVPN) >> HPTE_V_AVPN_SHIFT)
|
||||
#define HPTE_V_BOLTED ASM_CONST(0x0000000000000010)
|
||||
#define HPTE_V_LOCK ASM_CONST(0x0000000000000008)
|
||||
#define HPTE_V_LARGE ASM_CONST(0x0000000000000004)
|
||||
#define HPTE_V_SECONDARY ASM_CONST(0x0000000000000002)
|
||||
#define HPTE_V_VALID ASM_CONST(0x0000000000000001)
|
||||
|
||||
#define HPTE_R_PP0 ASM_CONST(0x8000000000000000)
|
||||
#define HPTE_R_TS ASM_CONST(0x4000000000000000)
|
||||
#define HPTE_R_RPN_SHIFT 12
|
||||
#define HPTE_R_RPN ASM_CONST(0x3ffffffffffff000)
|
||||
#define HPTE_R_FLAGS ASM_CONST(0x00000000000003ff)
|
||||
#define HPTE_R_PP ASM_CONST(0x0000000000000003)
|
||||
|
||||
/* Values for PP (assumes Ks=0, Kp=1) */
|
||||
/* pp0 will always be 0 for linux */
|
||||
#define PP_RWXX 0 /* Supervisor read/write, User none */
|
||||
@@ -69,54 +85,13 @@
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Hardware Page Table Entry */
|
||||
typedef struct {
|
||||
unsigned long avpn:57; /* vsid | api == avpn */
|
||||
unsigned long : 2; /* Software use */
|
||||
unsigned long bolted: 1; /* HPTE is "bolted" */
|
||||
unsigned long lock: 1; /* lock on pSeries SMP */
|
||||
unsigned long l: 1; /* Virtual page is large (L=1) or 4 KB (L=0) */
|
||||
unsigned long h: 1; /* Hash function identifier */
|
||||
unsigned long v: 1; /* Valid (v=1) or invalid (v=0) */
|
||||
} Hpte_dword0;
|
||||
unsigned long v;
|
||||
unsigned long r;
|
||||
} hpte_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned long pp0: 1; /* Page protection bit 0 */
|
||||
unsigned long ts: 1; /* Tag set bit */
|
||||
unsigned long rpn: 50; /* Real page number */
|
||||
unsigned long : 2; /* Reserved */
|
||||
unsigned long ac: 1; /* Address compare */
|
||||
unsigned long r: 1; /* Referenced */
|
||||
unsigned long c: 1; /* Changed */
|
||||
unsigned long w: 1; /* Write-thru cache mode */
|
||||
unsigned long i: 1; /* Cache inhibited */
|
||||
unsigned long m: 1; /* Memory coherence required */
|
||||
unsigned long g: 1; /* Guarded */
|
||||
unsigned long n: 1; /* No-execute */
|
||||
unsigned long pp: 2; /* Page protection bits 1:2 */
|
||||
} Hpte_dword1;
|
||||
|
||||
typedef struct {
|
||||
char padding[6]; /* padding */
|
||||
unsigned long : 6; /* padding */
|
||||
unsigned long flags: 10; /* HPTE flags */
|
||||
} Hpte_dword1_flags;
|
||||
|
||||
typedef struct {
|
||||
union {
|
||||
unsigned long dword0;
|
||||
Hpte_dword0 dw0;
|
||||
} dw0;
|
||||
|
||||
union {
|
||||
unsigned long dword1;
|
||||
Hpte_dword1 dw1;
|
||||
Hpte_dword1_flags flags;
|
||||
} dw1;
|
||||
} HPTE;
|
||||
|
||||
extern HPTE * htab_address;
|
||||
extern unsigned long htab_hash_mask;
|
||||
extern hpte_t *htab_address;
|
||||
extern unsigned long htab_hash_mask;
|
||||
|
||||
static inline unsigned long hpt_hash(unsigned long vpn, int large)
|
||||
{
|
||||
@@ -181,18 +156,18 @@ static inline void tlbiel(unsigned long va)
|
||||
asm volatile("ptesync": : :"memory");
|
||||
}
|
||||
|
||||
static inline unsigned long slot2va(unsigned long avpn, unsigned long large,
|
||||
unsigned long secondary, unsigned long slot)
|
||||
static inline unsigned long slot2va(unsigned long hpte_v, unsigned long slot)
|
||||
{
|
||||
unsigned long avpn = HPTE_V_AVPN_VAL(hpte_v);
|
||||
unsigned long va;
|
||||
|
||||
va = avpn << 23;
|
||||
|
||||
if (!large) {
|
||||
if (! (hpte_v & HPTE_V_LARGE)) {
|
||||
unsigned long vpi, pteg;
|
||||
|
||||
pteg = slot / HPTES_PER_GROUP;
|
||||
if (secondary)
|
||||
if (hpte_v & HPTE_V_SECONDARY)
|
||||
pteg = ~pteg;
|
||||
|
||||
vpi = ((va >> 28) ^ pteg) & htab_hash_mask;
|
||||
@@ -219,11 +194,11 @@ extern void hpte_init_iSeries(void);
|
||||
|
||||
extern long pSeries_lpar_hpte_insert(unsigned long hpte_group,
|
||||
unsigned long va, unsigned long prpn,
|
||||
int secondary, unsigned long hpteflags,
|
||||
int bolted, int large);
|
||||
unsigned long vflags,
|
||||
unsigned long rflags);
|
||||
extern long native_hpte_insert(unsigned long hpte_group, unsigned long va,
|
||||
unsigned long prpn, int secondary,
|
||||
unsigned long hpteflags, int bolted, int large);
|
||||
unsigned long prpn,
|
||||
unsigned long vflags, unsigned long rflags);
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
|
||||
5
include/asm-um/ldt.h
Normal file
5
include/asm-um/ldt.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#ifndef __UM_LDT_H
|
||||
#define __UM_LDT_H
|
||||
|
||||
#include "asm/arch/ldt.h"
|
||||
#endif
|
||||
@@ -5,7 +5,17 @@
|
||||
#define POSIX_FADV_RANDOM 1 /* Expect random page references. */
|
||||
#define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
|
||||
#define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
|
||||
|
||||
/*
|
||||
* The advise values for POSIX_FADV_DONTNEED and POSIX_ADV_NOREUSE
|
||||
* for s390-64 differ from the values for the rest of the world.
|
||||
*/
|
||||
#if defined(__s390x__)
|
||||
#define POSIX_FADV_DONTNEED 6 /* Don't need these pages. */
|
||||
#define POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
|
||||
#else
|
||||
#define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
|
||||
#define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
|
||||
#endif
|
||||
|
||||
#endif /* FADVISE_H_INCLUDED */
|
||||
|
||||
@@ -1441,6 +1441,9 @@ extern int inode_needs_sync(struct inode *inode);
|
||||
extern void generic_delete_inode(struct inode *inode);
|
||||
extern void generic_drop_inode(struct inode *inode);
|
||||
|
||||
extern struct inode *ilookup5_nowait(struct super_block *sb,
|
||||
unsigned long hashval, int (*test)(struct inode *, void *),
|
||||
void *data);
|
||||
extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
|
||||
int (*test)(struct inode *, void *), void *data);
|
||||
extern struct inode *ilookup(struct super_block *sb, unsigned long ino);
|
||||
|
||||
@@ -125,8 +125,8 @@ static inline void fsnotify_open(struct dentry *dentry)
|
||||
if (S_ISDIR(inode->i_mode))
|
||||
mask |= IN_ISDIR;
|
||||
|
||||
inotify_inode_queue_event(inode, mask, 0, NULL);
|
||||
inotify_dentry_parent_queue_event(dentry, mask, 0, dentry->d_name.name);
|
||||
inotify_inode_queue_event(inode, mask, 0, NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -262,7 +262,7 @@ void bitmap_write_all(struct bitmap *bitmap);
|
||||
int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors);
|
||||
void bitmap_endwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors,
|
||||
int success);
|
||||
int bitmap_start_sync(struct bitmap *bitmap, sector_t offset, int *blocks);
|
||||
int bitmap_start_sync(struct bitmap *bitmap, sector_t offset, int *blocks, int degraded);
|
||||
void bitmap_end_sync(struct bitmap *bitmap, sector_t offset, int *blocks, int aborted);
|
||||
void bitmap_close_sync(struct bitmap *bitmap);
|
||||
|
||||
|
||||
@@ -174,9 +174,11 @@ struct serial_icounter_struct {
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/compiler.h>
|
||||
|
||||
/* Export to allow PCMCIA to use this - Dave Hinds */
|
||||
extern int register_serial(struct serial_struct *req);
|
||||
extern void unregister_serial(int line);
|
||||
extern int __deprecated register_serial(struct serial_struct *req);
|
||||
extern void __deprecated unregister_serial(int line);
|
||||
|
||||
/* Allow architectures to override entries in serial8250_ports[] at run time: */
|
||||
struct uart_port; /* forward declaration */
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
* For definitions of the flags field, see tty.h
|
||||
*/
|
||||
|
||||
#include <linux/version.h>
|
||||
#include <linux/config.h>
|
||||
#include <linux/termios.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/circ_buf.h>
|
||||
#include <linux/spinlock.h>
|
||||
@@ -359,8 +360,8 @@ struct tty_driver *uart_console_device(struct console *co, int *index);
|
||||
*/
|
||||
int uart_register_driver(struct uart_driver *uart);
|
||||
void uart_unregister_driver(struct uart_driver *uart);
|
||||
void uart_unregister_port(struct uart_driver *reg, int line);
|
||||
int uart_register_port(struct uart_driver *reg, struct uart_port *port);
|
||||
void __deprecated uart_unregister_port(struct uart_driver *reg, int line);
|
||||
int __deprecated uart_register_port(struct uart_driver *reg, struct uart_port *port);
|
||||
int uart_add_one_port(struct uart_driver *reg, struct uart_port *port);
|
||||
int uart_remove_one_port(struct uart_driver *reg, struct uart_port *port);
|
||||
int uart_match_port(struct uart_port *port1, struct uart_port *port2);
|
||||
|
||||
@@ -61,8 +61,7 @@ enum
|
||||
CTL_DEV=7, /* Devices */
|
||||
CTL_BUS=8, /* Busses */
|
||||
CTL_ABI=9, /* Binary emulation */
|
||||
CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
|
||||
CTL_INOTIFY=11 /* Inotify */
|
||||
CTL_CPU=10 /* CPU stuff (speed scaling, etc) */
|
||||
};
|
||||
|
||||
/* CTL_BUS names: */
|
||||
@@ -71,12 +70,12 @@ enum
|
||||
CTL_BUS_ISA=1 /* ISA */
|
||||
};
|
||||
|
||||
/* CTL_INOTIFY names: */
|
||||
/* /proc/sys/fs/inotify/ */
|
||||
enum
|
||||
{
|
||||
INOTIFY_MAX_USER_DEVICES=1, /* max number of inotify device instances per user */
|
||||
INOTIFY_MAX_USER_WATCHES=2, /* max number of inotify watches per user */
|
||||
INOTIFY_MAX_QUEUED_EVENTS=3 /* Max number of queued events per inotify device instance */
|
||||
INOTIFY_MAX_USER_INSTANCES=1, /* max instances per user */
|
||||
INOTIFY_MAX_USER_WATCHES=2, /* max watches per user */
|
||||
INOTIFY_MAX_QUEUED_EVENTS=3 /* max queued events per instance */
|
||||
};
|
||||
|
||||
/* CTL_KERN names: */
|
||||
@@ -685,6 +684,7 @@ enum
|
||||
FS_XFS=17, /* struct: control xfs parameters */
|
||||
FS_AIO_NR=18, /* current system-wide number of aio requests */
|
||||
FS_AIO_MAX_NR=19, /* system-wide maximum number of aio requests */
|
||||
FS_INOTIFY=20, /* inotify submenu */
|
||||
};
|
||||
|
||||
/* /proc/sys/fs/quota/ */
|
||||
|
||||
Reference in New Issue
Block a user