EN JA
AGP(4)
AGP(4) FreeBSD Kernel Interfaces Manual AGP(4)

名称

agpAccelerated Graphics Port (AGP) への一般的なインタフェース

書式

device agp

解説

agp ドライバは、次のデバイスを制御する均一で抽象的な方法を提供します。

Ali:
M1541, M1621 と M1671 host to AGP ブリッジ
AMD:
751, 761 と 762 host to AGP ブリッジ
ATI:
RS100, RS200, RS250 と RS300 AGP ブリッジ
Intel:
i820, i840, i845, i850 と i860 host to AGP ブリッジ
Intel:
i810, i810-DC100, i810E, i815, 830M, 845G, 845M, 852GM, 852GME, 855GM, 855GME, 865G, 915G と 915GM SVGA コントローラ
Intel:
82443BX, 82443GX, 82443LX, 82815, 82820, 82830, 82840, 82845, 82845G, 82850, 82855, 82855GM, 82860, 82865, 82875P, E7205 と E7505 host to AGP ブリッジ
NVIDIA:
nForce と nForce2 AGP コントローラ
SiS:
530, 540, 550, 620, 630, 645, 645DX, 648, 650, 651, 655, 661, 730, 735, 740, 741, 745, 746, 760 と 5591 host to AGP ブリッジ
VIA:
3296, 82C597, 82C598, 82C691, 82C694X, 82C8363, 8235, 8237, 8361, 8367, 8371, 8377, 8501, 8601, 862x, 8633, 8653, 8703, 8753, 8754, 8763, 8783, KT880, PM800, PM880, PN800, PN880, PT880, XM266 と XN266 host to PCI ブリッジ

agp の最も一般的なアプリケーションは、Intel i81x コントローラで X(7) を実行することです。

IOCTL

< sys/agpio.h> で定義された /dev/agpgart で、次の ioctl(2) 操作を実行することができます:
AGPIOC_INFO
agp システムの状態を返します。結果は、次の構造体へのポインタです:

typedef struct _agp_info { 
 agp_version version;  /* ドライバのバージョン         */ 
 uint32_t bridge_id;   /* ブリッジのベンダ/デバイス    */ 
 uint32_t agp_mode;    /* ブリッジのモード情報         */ 
 off_t aper_base;      /* アパーチャのベース           */ 
 size_t aper_size;     /* アパーチャのサイズ           */ 
 size_t pg_total;      /* 最大ページ (swap + system)   */ 
 size_t pg_system;     /* 最大ページ (system)          */ 
 size_t pg_used;       /* 現在使用中のページ           */ 
} agp_info;
AGPIOC_ACQUIRE
このクライアントによって使用される AGP チップセットの制御を取得します。 AGP チップセットが別のクライアントによって既に取得されるなら、 EBUSY を返します。
AGPIOC_RELEASE
AGP チップセットの制御を解放します。割り付けられたメモリは、アンバインドも解放しません。それは、必要なら、操作するクライアントの責任です。
AGPIOC_SETUP
レリバント (関連) モードで AGP ハードウェアを利用可能にします。この ioctl(2) は、次の構造体を取ります:

typedef struct _agp_setup { 
 uint32_t agp_mode;    /* ブリッジのモード情報 */ 
} agp_setup;

モードビットは、 < sys/agpio.h> で定義されています。

AGPIOC_ALLOCATE
マッピングに適した物理的なメモリを AGP アパーチャに割り付けます。この ioctl(2) は、次の構造体を取ります:

typedef struct _agp_allocate { 
 int key;              /* 割り付けのタグ               */ 
 size_t pg_count;      /* ページ数                     */ 
 uint32_t type;        /* 0 == 通常, 他は, devspec     */ 
 uint32_t physical;    /* デバイス特有 (いくつかの 
          * デバイスは, gatt テーブルの後ろ 
          * で実際のページの物理アドレスを 
          * 必要とします)                */ 
} agp_allocate;

ハンドルを割り付けられたメモリを返します。

AGPIOC_DEALLOCATE
渡されたハンドルに関連している以前に割り付けられたメモリを解放します。
AGPIOC_BIND
AGP アパーチャで与えられたオフセットで割り付けられたメモリをバインドします。メモリが既にバインドされているかまたはオフセットが AGP ページ境界にないなら、 EINVAL を返します。この ioctl(2) は、次の構造体を取ります:

typedef struct _agp_bind { 
 int key;         /* 割り付けのタグ               */ 
 off_t pg_start;  /* 居住する開始ページ           */ 
} agp_bind;

割り付けのタグは、 AGPIOC_ALLOCATE によって返されたハンドルです。

AGPIOC_UNBIND
AGP アパーチャからメモリをアンバインドします。メモリがバインドされていないなら、 EINVAL を返します。この ioctl(2) は、次の構造体を取ります:

typedef struct _agp_unbind { 
 int key;                /* 割り付けのタグ            */ 
 uint32_t priority;      /* ページアウトの優先順序    */ 
} agp_unbind;

関連ファイル

/dev/agpgart
AGP デバイスノード。

関連項目

X(7) ( ports/x11/xorg)

歴史

agp ドライバは、 FreeBSD 4.1 ではじめて登場しました。
November 28, 2007 FreeBSD