~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/include/linux/agp_backend.h

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1 /*
  2  * AGPGART backend specific includes. Not for userspace consumption.
  3  *
  4  * Copyright (C) 2004 Silicon Graphics, Inc.
  5  * Copyright (C) 2002-2003 Dave Jones
  6  * Copyright (C) 1999 Jeff Hartmann
  7  * Copyright (C) 1999 Precision Insight, Inc.
  8  * Copyright (C) 1999 Xi Graphics, Inc.
  9  *
 10  * Permission is hereby granted, free of charge, to any person obtaining a
 11  * copy of this software and associated documentation files (the "Software"),
 12  * to deal in the Software without restriction, including without limitation
 13  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14  * and/or sell copies of the Software, and to permit persons to whom the
 15  * Software is furnished to do so, subject to the following conditions:
 16  *
 17  * The above copyright notice and this permission notice shall be included
 18  * in all copies or substantial portions of the Software.
 19  *
 20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 22  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 23  * JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, 
 24  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
 25  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
 26  * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27  *
 28  */
 29 
 30 #ifndef _AGP_BACKEND_H
 31 #define _AGP_BACKEND_H 1
 32 
 33 #ifdef __KERNEL__
 34 
 35 #ifndef TRUE
 36 #define TRUE 1
 37 #endif
 38 
 39 #ifndef FALSE
 40 #define FALSE 0
 41 #endif
 42 
 43 enum chipset_type {
 44         NOT_SUPPORTED,
 45         SUPPORTED,
 46 };
 47 
 48 struct agp_version {
 49         u16 major;
 50         u16 minor;
 51 };
 52 
 53 struct agp_kern_info {
 54         struct agp_version version;
 55         struct pci_dev *device;
 56         enum chipset_type chipset;
 57         unsigned long mode;
 58         unsigned long aper_base;
 59         size_t aper_size;
 60         int max_memory;         /* In pages */
 61         int current_memory;
 62         int cant_use_aperture;
 63         unsigned long page_mask;
 64         struct vm_operations_struct *vm_ops;
 65 };
 66 
 67 /*
 68  * The agp_memory structure has information about the block of agp memory
 69  * allocated.  A caller may manipulate the next and prev pointers to link
 70  * each allocated item into a list.  These pointers are ignored by the backend.
 71  * Everything else should never be written to, but the caller may read any of
 72  * the items to determine the status of this block of agp memory.
 73  */
 74 
 75 struct agp_bridge_data;
 76 
 77 struct agp_memory {
 78         struct agp_memory *next;
 79         struct agp_memory *prev;
 80         struct agp_bridge_data *bridge;
 81         unsigned long *memory;
 82         size_t page_count;
 83         int key;
 84         int num_scratch_pages;
 85         off_t pg_start;
 86         u32 type;
 87         u32 physical;
 88         u8 is_bound;
 89         u8 is_flushed;
 90 };
 91 
 92 #define AGP_NORMAL_MEMORY 0
 93 
 94 extern struct agp_bridge_data *agp_bridge;
 95 extern struct list_head agp_bridges;
 96 
 97 extern struct agp_bridge_data *(*agp_find_bridge)(struct pci_dev *);
 98 
 99 extern void agp_free_memory(struct agp_memory *);
100 extern struct agp_memory *agp_allocate_memory(struct agp_bridge_data *, size_t, u32);
101 extern int agp_copy_info(struct agp_bridge_data *, struct agp_kern_info *);
102 extern int agp_bind_memory(struct agp_memory *, off_t);
103 extern int agp_unbind_memory(struct agp_memory *);
104 extern void agp_enable(struct agp_bridge_data *, u32);
105 extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *);
106 extern void agp_backend_release(struct agp_bridge_data *);
107 
108 #endif                          /* __KERNEL__ */
109 #endif                          /* _AGP_BACKEND_H */
110 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.