| AGP(4) | Device Drivers Manual | AGP(4) |
agp — generic
interface to the Accelerated Graphics Port (AGP)
device agp
The agp driver provides uniform, abstract
methods for controlling the following devices:
The most common application of agp is for
running X(7) on the Intel i81x controllers.
The following ioctl(2) operations can be
performed on /dev/agpgart, which are defined in
<sys/agpio.h>:
AGPIOC_INFOagp system. The result is a
pointer to the following structure:
typedef struct _agp_info {
agp_version version; /* version of the driver */
uint32_t bridge_id; /* bridge vendor/device */
uint32_t agp_mode; /* mode info of bridge */
off_t aper_base; /* base of aperture */
size_t aper_size; /* size of aperture */
size_t pg_total; /* max pages (swap + system) */
size_t pg_system; /* max pages (system) */
size_t pg_used; /* current pages used */
} agp_info;
AGPIOC_ACQUIREEBUSY if the AGP chipset is already acquired by
another client.AGPIOC_RELEASEAGPIOC_SETUPtypedef struct _agp_setup {
uint32_t agp_mode; /* mode info of bridge */
} agp_setup;
The mode bits are defined in
<sys/agpio.h>.
AGPIOC_ALLOCATEtypedef struct _agp_allocate {
int key; /* tag of allocation */
size_t pg_count; /* number of pages */
uint32_t type; /* 0 == normal, other devspec */
uint32_t physical; /* device specific (some devices
* need a phys address of the
* actual page behind the gatt
* table) */
} agp_allocate;
Returns a handle to the allocated memory.
AGPIOC_DEALLOCATEAGPIOC_BINDEINVAL if the memory is already bound or the
offset is not at AGP page boundary. This ioctl(2) takes
the following structure:
typedef struct _agp_bind {
int key; /* tag of allocation */
off_t pg_start; /* starting page to populate */
} agp_bind;
The tag of allocation is the handle returned by
AGPIOC_ALLOCATE.
AGPIOC_UNBINDEINVAL if the memory is not bound. This
ioctl(2) takes the following structure:
typedef struct _agp_unbind {
int key; /* tag of allocation */
uint32_t priority; /* priority for paging out */
} agp_unbind;
X(7) (ports/x11/xorg)
The agp driver first appeared in
FreeBSD 4.1.
| November 28, 2007 | Debian |