p The AGP chipset is positioned between the PCI-Host bridge and the graphics accelerator to provide a high-performance dedicated graphics bus. It currently supports a peak bandwidth of 528 MB/s.
p The .Nm driver also provides an interfrace to user processes for use by X servers. A user process communicates to the device initially by means of .Xr ioctl 2 calls. The calls supported are: l -tag -width indent t Dv AGPIOC_INFO Get AGP information, setting the members in the .Em agp_info structure as defined in <sys/agpio.h>: d -literal typedef struct _agp_info { agp_version version; /* version of the driver */ u_int32_t bridge_id; /* bridge vendor/device */ u_int32_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; .Ed t Dv AGPIOC_ACQUIRE Acquire AGP. t Dv AGPIOC_RELEASE Release AGP. t Dv AGPIOC_SETUP Setup AGP, using the members in the .Em agp_setup structure as defined in <sys/agpio.h>: d -literal typedef struct _agp_setup { u_int32_t agp_mode; /* mode info of bridge */ } agp_setup; .Ed t Dv AGPIOC_ALLOCATE Allocate AGP space, using and setting the members in the .Em agp_allocate structure as defined in <sys/agpio.h>: d -literal typedef struct _agp_allocate { int key; /* tag of allocation */ size_t pg_count; /* number of pages */ u_int32_t type; /* 0 == normal, other devspec */ paddr_t physical; /* device specific (some devices * need a phys address of the * actual page behind the gatt * table) */ } agp_allocate; .Ed t Dv AGPIOC_DEALLOCATE Deallocate AGP space. t Dv AGPIOC_BIND Bind AGP, using the members in the .Em agp_bind structure as defined in <sys/agpio.h>: d -literal typedef struct _agp_bind { int key; /* tag of allocation */ off_t pg_start; /* starting page to populate */ } agp_bind; .Ed t Dv AGPIOC_UNBIND Unbind AGP, using the members in the .Em agp_unbind structure as defined in <sys/agpio.h>: d -literal typedef struct _agp_unbind { int key; /* tag of allocation */ u_int32_t priority; /* priority for paging out */ } agp_unbind; .Ed .El .Sh FILES l -tag -width /dev/agp? -compact t Pa /dev/agp? device special file .El .Sh SEE ALSO .Xr ioctl 2 , .Xr pci 4 .Sh HISTORY The .Nm device driver first appeared in .Fx . It was introduced in .Nx 1.6 .