Merge branch 'linus' into cont_syslog
[safe/jmp/linux-2.6] / include / linux / agp_backend.h
index a5c8bb5..9101ed6 100644 (file)
 #ifndef _AGP_BACKEND_H
 #define _AGP_BACKEND_H 1
 
-#ifdef __KERNEL__
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
+#include <linux/list.h>
 
 enum chipset_type {
        NOT_SUPPORTED,
@@ -59,9 +51,9 @@ struct agp_kern_info {
        size_t aper_size;
        int max_memory;         /* In pages */
        int current_memory;
-       int cant_use_aperture;
+       bool cant_use_aperture;
        unsigned long page_mask;
-       struct vm_operations_struct *vm_ops;
+       const struct vm_operations_struct *vm_ops;
 };
 
 /*
@@ -78,19 +70,29 @@ struct agp_memory {
        struct agp_memory *next;
        struct agp_memory *prev;
        struct agp_bridge_data *bridge;
-       unsigned long *memory;
+       struct page **pages;
        size_t page_count;
        int key;
        int num_scratch_pages;
        off_t pg_start;
        u32 type;
        u32 physical;
-       u8 is_bound;
-       u8 is_flushed;
+       bool is_bound;
+       bool is_flushed;
+       bool vmalloc_flag;
+       /* list of agp_memory mapped to the aperture */
+       struct list_head mapped_list;
+       /* DMA-mapped addresses */
+       struct scatterlist *sg_list;
+       int num_sg;
 };
 
 #define AGP_NORMAL_MEMORY 0
 
+#define AGP_USER_TYPES (1 << 16)
+#define AGP_USER_MEMORY (AGP_USER_TYPES)
+#define AGP_USER_CACHED_MEMORY (AGP_USER_TYPES + 1)
+
 extern struct agp_bridge_data *agp_bridge;
 extern struct list_head agp_bridges;
 
@@ -101,9 +103,10 @@ extern struct agp_memory *agp_allocate_memory(struct agp_bridge_data *, size_t,
 extern int agp_copy_info(struct agp_bridge_data *, struct agp_kern_info *);
 extern int agp_bind_memory(struct agp_memory *, off_t);
 extern int agp_unbind_memory(struct agp_memory *);
+extern int agp_rebind_memory(void);
 extern void agp_enable(struct agp_bridge_data *, u32);
 extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *);
 extern void agp_backend_release(struct agp_bridge_data *);
+extern void agp_flush_chipset(struct agp_bridge_data *);
 
-#endif                         /* __KERNEL__ */
 #endif                         /* _AGP_BACKEND_H */