summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndy Grover <agrover@groveronline.com>2002-09-03 23:29:50 -0700
committerAndy Grover <agrover@groveronline.com>2002-09-03 23:29:50 -0700
commita2fa7607d9d663168703c2a15db48bea260939f5 (patch)
tree6215035e3765fe67822de77d668b7f762394b5a8 /include/linux
parent0223e6f5a28e8088cf613068cddb2ba58005dffb (diff)
parente42e97d63b46995f3f0d073cae433e4eb87ff5de (diff)
Merge groveronline.com:/root/bk/linux-2.5
into groveronline.com:/root/bk/linux-acpi
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/bootmem.h6
-rw-r--r--include/linux/compiler.h6
-rw-r--r--include/linux/device.h6
-rw-r--r--include/linux/fs.h4
-rw-r--r--include/linux/list.h49
-rw-r--r--include/linux/mm.h8
-rw-r--r--include/linux/mmzone.h5
-rw-r--r--include/linux/page-flags.h30
-rw-r--r--include/linux/pci_ids.h32
-rw-r--r--include/linux/rmap-locking.h33
-rw-r--r--include/linux/sched.h2
11 files changed, 106 insertions, 75 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index 3bd68c042514..782041f43326 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -36,9 +36,10 @@ typedef struct bootmem_data {
extern unsigned long __init bootmem_bootmap_pages (unsigned long);
extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend);
-extern void __init reserve_bootmem (unsigned long addr, unsigned long size);
extern void __init free_bootmem (unsigned long addr, unsigned long size);
extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal);
+#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
+extern void __init reserve_bootmem (unsigned long addr, unsigned long size);
#define alloc_bootmem(x) \
__alloc_bootmem((x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_low(x) \
@@ -47,6 +48,7 @@ extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, u
__alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_low_pages(x) \
__alloc_bootmem((x), PAGE_SIZE, 0)
+#endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
extern unsigned long __init free_all_bootmem (void);
extern unsigned long __init init_bootmem_node (pg_data_t *pgdat, unsigned long freepfn, unsigned long startpfn, unsigned long endpfn);
@@ -54,11 +56,13 @@ extern void __init reserve_bootmem_node (pg_data_t *pgdat, unsigned long physadd
extern void __init free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long size);
extern unsigned long __init free_all_bootmem_node (pg_data_t *pgdat);
extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal);
+#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
#define alloc_bootmem_node(pgdat, x) \
__alloc_bootmem_node((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_pages_node(pgdat, x) \
__alloc_bootmem_node((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_low_pages_node(pgdat, x) \
__alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0)
+#endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
#endif /* _LINUX_BOOTMEM_H */
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index eea3d3636e2a..6b19413b47a6 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -16,7 +16,7 @@
/* This macro obfuscates arithmetic on a variable address so that gcc
shouldn't recognize the original var, and make assumptions about it */
#define RELOC_HIDE(ptr, off) \
- ({ __typeof__(ptr) __ptr; \
- __asm__ ("" : "=g"(__ptr) : "0"((void *)(ptr) + (off))); \
- __ptr; })
+ ({ unsigned long __ptr; \
+ __asm__ ("" : "=g"(__ptr) : "0"(ptr)); \
+ (typeof(ptr)) (__ptr + (off)); })
#endif /* __LINUX_COMPILER_H */
diff --git a/include/linux/device.h b/include/linux/device.h
index 4dcadb058a00..9b310071cb41 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -57,9 +57,9 @@ struct bus_type {
rwlock_t lock;
atomic_t refcount;
- list_t node;
- list_t devices;
- list_t drivers;
+ struct list_head node;
+ struct list_head devices;
+ struct list_head drivers;
struct driver_dir_entry dir;
struct driver_dir_entry device_dir;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index befc2bbb5f3c..66fa638d2ff2 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -322,8 +322,8 @@ struct address_space {
struct list_head io_pages; /* being prepared for I/O */
unsigned long nrpages; /* number of total pages */
struct address_space_operations *a_ops; /* methods */
- list_t i_mmap; /* list of private mappings */
- list_t i_mmap_shared; /* list of private mappings */
+ struct list_head i_mmap; /* list of private mappings */
+ struct list_head i_mmap_shared; /* list of private mappings */
spinlock_t i_shared_lock; /* and spinlock protecting it */
unsigned long dirtied_when; /* jiffies of first page dirtying */
int gfp_mask; /* how to allocate the pages */
diff --git a/include/linux/list.h b/include/linux/list.h
index 913c93c44286..1e311d042cab 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -19,12 +19,10 @@ struct list_head {
struct list_head *next, *prev;
};
-typedef struct list_head list_t;
-
#define LIST_HEAD_INIT(name) { &(name), &(name) }
#define LIST_HEAD(name) \
- list_t name = LIST_HEAD_INIT(name)
+ struct list_head name = LIST_HEAD_INIT(name)
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
@@ -36,7 +34,9 @@ typedef struct list_head list_t;
* This is only for internal list manipulation where we know
* the prev/next entries already!
*/
-static inline void __list_add(list_t *new, list_t *prev, list_t *next)
+static inline void __list_add(struct list_head *new,
+ struct list_head *prev,
+ struct list_head *next)
{
next->prev = new;
new->next = next;
@@ -52,7 +52,7 @@ static inline void __list_add(list_t *new, list_t *prev, list_t *next)
* Insert a new entry after the specified head.
* This is good for implementing stacks.
*/
-static inline void list_add(list_t *new, list_t *head)
+static inline void list_add(struct list_head *new, struct list_head *head)
{
__list_add(new, head, head->next);
}
@@ -65,7 +65,7 @@ static inline void list_add(list_t *new, list_t *head)
* Insert a new entry before the specified head.
* This is useful for implementing queues.
*/
-static inline void list_add_tail(list_t *new, list_t *head)
+static inline void list_add_tail(struct list_head *new, struct list_head *head)
{
__list_add(new, head->prev, head);
}
@@ -77,7 +77,7 @@ static inline void list_add_tail(list_t *new, list_t *head)
* This is only for internal list manipulation where we know
* the prev/next entries already!
*/
-static inline void __list_del(list_t * prev, list_t * next)
+static inline void __list_del(struct list_head * prev, struct list_head * next)
{
next->prev = prev;
prev->next = next;
@@ -88,7 +88,7 @@ static inline void __list_del(list_t * prev, list_t * next)
* @entry: the element to delete from the list.
* Note: list_empty on entry does not return true after this, the entry is in an undefined state.
*/
-static inline void list_del(list_t *entry)
+static inline void list_del(struct list_head *entry)
{
__list_del(entry->prev, entry->next);
entry->next = (void *) 0;
@@ -99,7 +99,7 @@ static inline void list_del(list_t *entry)
* list_del_init - deletes entry from list and reinitialize it.
* @entry: the element to delete from the list.
*/
-static inline void list_del_init(list_t *entry)
+static inline void list_del_init(struct list_head *entry)
{
__list_del(entry->prev, entry->next);
INIT_LIST_HEAD(entry);
@@ -110,7 +110,7 @@ static inline void list_del_init(list_t *entry)
* @list: the entry to move
* @head: the head that will precede our entry
*/
-static inline void list_move(list_t *list, list_t *head)
+static inline void list_move(struct list_head *list, struct list_head *head)
{
__list_del(list->prev, list->next);
list_add(list, head);
@@ -121,7 +121,8 @@ static inline void list_move(list_t *list, list_t *head)
* @list: the entry to move
* @head: the head that will follow our entry
*/
-static inline void list_move_tail(list_t *list, list_t *head)
+static inline void list_move_tail(struct list_head *list,
+ struct list_head *head)
{
__list_del(list->prev, list->next);
list_add_tail(list, head);
@@ -131,16 +132,17 @@ static inline void list_move_tail(list_t *list, list_t *head)
* list_empty - tests whether a list is empty
* @head: the list to test.
*/
-static inline int list_empty(list_t *head)
+static inline int list_empty(struct list_head *head)
{
return head->next == head;
}
-static inline void __list_splice(list_t *list, list_t *head)
+static inline void __list_splice(struct list_head *list,
+ struct list_head *head)
{
- list_t *first = list->next;
- list_t *last = list->prev;
- list_t *at = head->next;
+ struct list_head *first = list->next;
+ struct list_head *last = list->prev;
+ struct list_head *at = head->next;
first->prev = head;
head->next = first;
@@ -154,7 +156,7 @@ static inline void __list_splice(list_t *list, list_t *head)
* @list: the new list to add.
* @head: the place to add it in the first list.
*/
-static inline void list_splice(list_t *list, list_t *head)
+static inline void list_splice(struct list_head *list, struct list_head *head)
{
if (!list_empty(list))
__list_splice(list, head);
@@ -167,7 +169,8 @@ static inline void list_splice(list_t *list, list_t *head)
*
* The list at @list is reinitialised
*/
-static inline void list_splice_init(list_t *list, list_t *head)
+static inline void list_splice_init(struct list_head *list,
+ struct list_head *head)
{
if (!list_empty(list)) {
__list_splice(list, head);
@@ -177,7 +180,7 @@ static inline void list_splice_init(list_t *list, list_t *head)
/**
* list_entry - get the struct for this entry
- * @ptr: the &list_t pointer.
+ * @ptr: the &struct list_head pointer.
* @type: the type of the struct this is embedded in.
* @member: the name of the list_struct within the struct.
*/
@@ -186,7 +189,7 @@ static inline void list_splice_init(list_t *list, list_t *head)
/**
* list_for_each - iterate over a list
- * @pos: the &list_t to use as a loop counter.
+ * @pos: the &struct list_head to use as a loop counter.
* @head: the head for your list.
*/
#define list_for_each(pos, head) \
@@ -194,7 +197,7 @@ static inline void list_splice_init(list_t *list, list_t *head)
pos = pos->next, prefetch(pos->next))
/**
* list_for_each_prev - iterate over a list backwards
- * @pos: the &list_t to use as a loop counter.
+ * @pos: the &struct list_head to use as a loop counter.
* @head: the head for your list.
*/
#define list_for_each_prev(pos, head) \
@@ -203,8 +206,8 @@ static inline void list_splice_init(list_t *list, list_t *head)
/**
* list_for_each_safe - iterate over a list safe against removal of list entry
- * @pos: the &list_t to use as a loop counter.
- * @n: another &list_t to use as temporary storage
+ * @pos: the &struct list_head to use as a loop counter.
+ * @n: another &struct list_head to use as temporary storage
* @head: the head for your list.
*/
#define list_for_each_safe(pos, n, head) \
diff --git a/include/linux/mm.h b/include/linux/mm.h
index cdfaea4e3307..5e01743a0bc6 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -61,7 +61,7 @@ struct vm_area_struct {
* one of the address_space->i_mmap{,shared} lists,
* for shm areas, the list of attaches, otherwise unused.
*/
- list_t shared;
+ struct list_head shared;
/* Function pointers to deal with this struct. */
struct vm_operations_struct * vm_ops;
@@ -316,8 +316,8 @@ static inline void set_page_zone(struct page *page, unsigned long zone_num)
#else /* CONFIG_HIGHMEM || WANT_PAGE_VIRTUAL */
#define page_address(page) \
- __va( (((page) - page_zone(page)->zone_mem_map) << PAGE_SHIFT) \
- + page_zone(page)->zone_start_paddr)
+ __va( ( ((page) - page_zone(page)->zone_mem_map) \
+ + page_zone(page)->zone_start_pfn) << PAGE_SHIFT)
#endif /* CONFIG_HIGHMEM || WANT_PAGE_VIRTUAL */
@@ -398,7 +398,7 @@ static inline pmd_t *pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
extern void free_area_init(unsigned long * zones_size);
extern void free_area_init_node(int nid, pg_data_t *pgdat, struct page *pmap,
- unsigned long * zones_size, unsigned long zone_start_paddr,
+ unsigned long * zones_size, unsigned long zone_start_pfn,
unsigned long *zholes_size);
extern void mem_init(void);
extern void show_mem(void);
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index f30bd4f44863..e5b6bc1111b8 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -110,7 +110,8 @@ struct zone {
*/
struct pglist_data *zone_pgdat;
struct page *zone_mem_map;
- unsigned long zone_start_paddr;
+ /* zone_start_pfn == zone_start_paddr >> PAGE_SHIFT */
+ unsigned long zone_start_pfn;
unsigned long zone_start_mapnr;
/*
@@ -161,7 +162,7 @@ typedef struct pglist_data {
struct page *node_mem_map;
unsigned long *valid_addr_bitmap;
struct bootmem_data *bdata;
- unsigned long node_start_paddr;
+ unsigned long node_start_pfn;
unsigned long node_start_mapnr;
unsigned long node_size;
int node_id;
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 5a49020e728b..2b2eb67ae7a8 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -229,36 +229,6 @@ extern void get_page_state(struct page_state *ret);
#define TestClearPageDirect(page) test_and_clear_bit(PG_direct, &(page)->flags)
/*
- * inlines for acquisition and release of PG_chainlock
- */
-static inline void pte_chain_lock(struct page *page)
-{
- /*
- * Assuming the lock is uncontended, this never enters
- * the body of the outer loop. If it is contended, then
- * within the inner loop a non-atomic test is used to
- * busywait with less bus contention for a good time to
- * attempt to acquire the lock bit.
- */
- preempt_disable();
-#ifdef CONFIG_SMP
- while (test_and_set_bit(PG_chainlock, &page->flags)) {
- while (test_bit(PG_chainlock, &page->flags))
- cpu_relax();
- }
-#endif
-}
-
-static inline void pte_chain_unlock(struct page *page)
-{
-#ifdef CONFIG_SMP
- smp_mb__before_clear_bit();
- clear_bit(PG_chainlock, &page->flags);
-#endif
- preempt_enable();
-}
-
-/*
* The PageSwapCache predicate doesn't use a PG_flag at this time,
* but it may again do so one day.
*/
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 3fc73ad5c299..a510a4013648 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -820,11 +820,13 @@
#define PCI_DEVICE_ID_AL_M1531 0x1531
#define PCI_DEVICE_ID_AL_M1533 0x1533
#define PCI_DEVICE_ID_AL_M1541 0x1541
-#define PCI_DEVICE_ID_AL_M1621 0x1621
-#define PCI_DEVICE_ID_AL_M1631 0x1631
-#define PCI_DEVICE_ID_AL_M1641 0x1641
-#define PCI_DEVICE_ID_AL_M1647 0x1647
-#define PCI_DEVICE_ID_AL_M1651 0x1651
+#define PCI_DEVICE_ID_AL_M1621 0x1621
+#define PCI_DEVICE_ID_AL_M1631 0x1631
+#define PCI_DEVICE_ID_AL_M1632 0x1632
+#define PCI_DEVICE_ID_AL_M1641 0x1641
+#define PCI_DEVICE_ID_AL_M1644 0x1644
+#define PCI_DEVICE_ID_AL_M1647 0x1647
+#define PCI_DEVICE_ID_AL_M1651 0x1651
#define PCI_DEVICE_ID_AL_M1543 0x1543
#define PCI_DEVICE_ID_AL_M3307 0x3307
#define PCI_DEVICE_ID_AL_M4803 0x5215
@@ -961,7 +963,7 @@
#define PCI_DEVICE_ID_VIA_82C597_0 0x0597
#define PCI_DEVICE_ID_VIA_82C598_0 0x0598
#define PCI_DEVICE_ID_VIA_8601_0 0x0601
-#define PCI_DEVICE_ID_VIA_8605_0 0x0605
+#define PCI_DEVICE_ID_VIA_82C694X_0 0x0605
#define PCI_DEVICE_ID_VIA_82C680 0x0680
#define PCI_DEVICE_ID_VIA_82C686 0x0686
#define PCI_DEVICE_ID_VIA_82C691 0x0691
@@ -1637,6 +1639,9 @@
#define PCI_DEVICE_ID_INTEL_I960 0x0960
#define PCI_DEVICE_ID_INTEL_82562ET 0x1031
#define PCI_DEVICE_ID_INTEL_82801CAM 0x1038
+#define PCI_DEVICE_ID_INTEL_82815_MC 0x1130
+#define PCI_DEVICE_ID_INTEL_82815_AB 0x1131
+#define PCI_DEVICE_ID_INTEL_82815_CGC 0x1132
#define PCI_DEVICE_ID_INTEL_82559ER 0x1209
#define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221
#define PCI_DEVICE_ID_INTEL_82092AA_1 0x1222
@@ -1653,6 +1658,8 @@
#define PCI_DEVICE_ID_INTEL_82380FB 0x124b
#define PCI_DEVICE_ID_INTEL_82439 0x1250
#define PCI_DEVICE_ID_INTEL_80960_RP 0x1960
+#define PCI_DEVICE_ID_INTEL_82840_HB 0x1a21
+#define PCI_DEVICE_ID_INTEL_82845_HB 0x1a30
#define PCI_DEVICE_ID_INTEL_82801AA_0 0x2410
#define PCI_DEVICE_ID_INTEL_82801AA_1 0x2411
#define PCI_DEVICE_ID_INTEL_82801AA_2 0x2412
@@ -1693,6 +1700,14 @@
#define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c
#define PCI_DEVICE_ID_INTEL_82801DB_9 0x24cb
#define PCI_DEVICE_ID_INTEL_82801DB_11 PCI_DEVICE_ID_INTEL_82801DB_9
+#define PCI_DEVICE_ID_INTEL_82820_HB 0x2500
+#define PCI_DEVICE_ID_INTEL_82820_UP_HB 0x2501
+#define PCI_DEVICE_ID_INTEL_82850_HB 0x2530
+#define PCI_DEVICE_ID_INTEL_82860_HB 0x2531
+#define PCI_DEVICE_ID_INTEL_82845G_HB 0x2560
+#define PCI_DEVICE_ID_INTEL_82845G_IG 0x2562
+#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575
+#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577
#define PCI_DEVICE_ID_INTEL_80310 0x530d
#define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000
#define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010
@@ -1707,6 +1722,8 @@
#define PCI_DEVICE_ID_INTEL_82810_IG1 0x7121
#define PCI_DEVICE_ID_INTEL_82810_MC3 0x7122
#define PCI_DEVICE_ID_INTEL_82810_IG3 0x7123
+#define PCI_DEVICE_ID_INTEL_82810E_MC 0x7124
+#define PCI_DEVICE_ID_INTEL_82810E_IG 0x7125
#define PCI_DEVICE_ID_INTEL_82443LX_0 0x7180
#define PCI_DEVICE_ID_INTEL_82443LX_1 0x7181
#define PCI_DEVICE_ID_INTEL_82443BX_0 0x7190
@@ -1716,6 +1733,8 @@
#define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199
#define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a
#define PCI_DEVICE_ID_INTEL_82443MX_3 0x719b
+#define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0
+#define PCI_DEVICE_ID_INTEL_82443GX_1 0x71a1
#define PCI_DEVICE_ID_INTEL_82372FB_0 0x7600
#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
#define PCI_DEVICE_ID_INTEL_82372FB_2 0x7602
@@ -1723,6 +1742,7 @@
#define PCI_DEVICE_ID_INTEL_82454GX 0x84c4
#define PCI_DEVICE_ID_INTEL_82450GX 0x84c5
#define PCI_DEVICE_ID_INTEL_82451NX 0x84ca
+#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
#define PCI_VENDOR_ID_COMPUTONE 0x8e0e
#define PCI_DEVICE_ID_COMPUTONE_IP2EX 0x0291
diff --git a/include/linux/rmap-locking.h b/include/linux/rmap-locking.h
new file mode 100644
index 000000000000..302a58f54ca3
--- /dev/null
+++ b/include/linux/rmap-locking.h
@@ -0,0 +1,33 @@
+/*
+ * include/linux/rmap-locking.h
+ *
+ * Locking primitives for exclusive access to a page's reverse-mapping
+ * pte chain.
+ */
+
+static inline void pte_chain_lock(struct page *page)
+{
+ /*
+ * Assuming the lock is uncontended, this never enters
+ * the body of the outer loop. If it is contended, then
+ * within the inner loop a non-atomic test is used to
+ * busywait with less bus contention for a good time to
+ * attempt to acquire the lock bit.
+ */
+ preempt_disable();
+#ifdef CONFIG_SMP
+ while (test_and_set_bit(PG_chainlock, &page->flags)) {
+ while (test_bit(PG_chainlock, &page->flags))
+ cpu_relax();
+ }
+#endif
+}
+
+static inline void pte_chain_unlock(struct page *page)
+{
+#ifdef CONFIG_SMP
+ smp_mb__before_clear_bit();
+ clear_bit(PG_chainlock, &page->flags);
+#endif
+ preempt_enable();
+}
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 77db4acdfdcd..c5c828d52897 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -264,7 +264,7 @@ struct task_struct {
int lock_depth; /* Lock depth */
int prio, static_prio;
- list_t run_list;
+ struct list_head run_list;
prio_array_t *array;
unsigned long sleep_avg;