aboutsummaryrefslogtreecommitdiff
path: root/documentation/manual-pages/ja/man4/sysmouse.4
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/manual-pages/ja/man4/sysmouse.4')
-rw-r--r--documentation/manual-pages/ja/man4/sysmouse.4456
1 files changed, 456 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man4/sysmouse.4 b/documentation/manual-pages/ja/man4/sysmouse.4
new file mode 100644
index 0000000000..5887e007f0
--- /dev/null
+++ b/documentation/manual-pages/ja/man4/sysmouse.4
@@ -0,0 +1,456 @@
+.\" Copyright (c) 1997
+.\" John-Mark Gurney. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the author nor the names of any co-contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" %Id: sysmouse.4,v 1.7 1998/03/12 07:30:38 charnier Exp %
+.\" $FreeBSD$
+.\"
+.\" word: movement (マウスの)動き[sysmouse.4]
+.\"
+.Dd December 3, 1997
+.Dt SYSMOUSE 4 i386
+.Os FreeBSD
+.Sh 名称
+.Nm sysmouse
+.Nd 仮想化されたマウスドライバ
+.Sh 書式
+.Fd #include <machine/mouse.h>
+.Fd #include <machine/console.h>
+.Sh 解説
+マウスデーモン
+.Xr moused 8
+と一緒に使うことにより、コンソールドライバは、
+.Nm
+ドライバを通して、ユーザプロセスに標準的な方法でマウスのデータを提供します。
+このように整理することで、
+.Po
+.Tn X\ Window System
+などのような
+.Pc
+ユーザプロセスとコンソールとでマウスを共有することができるようになります。
+.Pp
+ユーザプロセスがマウス機能を利用しようとする場合、単に
+.Xr open 2
+システムコールで
+.Pa /dev/sysmouse
+をオープンし、
+.Xr read 2
+システムコールを用いてマウスデータを読み込むだけでよいです。
+ここで、確実に
+.Xr moused 8
+を実行しておいて下さい。さもないと、ユーザプロセスはマウスからデータを
+一切受け取ることができないでしょう。
+.Pp
+.Ss 機能レベル
+.Nm
+ドライバには 2 つの機能レベルがあります。現在の機能レベルは ioctl
+システムコールにより参照、変更することができます。
+.Pp
+レベル 0 は最も低いレベルで、基本的なレベルでもあります。このレベルでは、
+ドライバは、ユーザプログラムに対して基本的なサービスを提供します。
+.Nm
+ドライバは、マウスの水平垂直の動きと、最大で 3 個までのボタンの状態を、
+以下に示す
+.Tn MouseSystems
+形式で通知します。
+.Pp
+.Bl -tag -width Byte_1 -compact
+.It Byte 1
+.Bl -tag -width bit_7 -compact
+.It bit 7
+常に 1 です。
+.It bit 6..3
+常に 0 です。
+.It bit 2
+左ボタンの状態です。押し下げられている状態でビットクリア、そうでなければ
+ビットセットです。
+.It bit 1
+中ボタンの状態です。押し下げられている状態でビットクリア、そうでなければ
+ビットセット。中ボタンを持たない機器の場合は常に 1 です。
+.It bit 0
+右ボタンの状態です。押し下げられている状態でビットクリア、そうでなければ
+ビットセットです。
+.El
+.It Byte 2
+水平の動きのカウントを 2 の補数形式で表した値の先頭半分です。
+-128 から 127 までの値。
+.It Byte 3
+垂直の動きのカウントを 2 の補数形式で表した値の先頭半分です。
+-128 から 127 までの値。
+.It Byte 4
+水平の動きのカウントを 2 の補数形式で表した値の後ろ半分です。
+-128 から 127 までの値。水平の動きのカウントを得るには、
+byte 2 と byte 4 を足して下さい。
+.It Byte 5
+垂直の動きのカウントを 2 の補数形式で表した値の後ろ半分です。
+-128 から 127 までの値。垂直の動きのカウントを得るには、
+byte 3 と byte 5 を足して下さい。
+.El
+.Pp
+レベル 1 は拡張レベルで、マウスのデータは
+.Xr mouse 4
+で定義された標準形式
+.Dv MOUSE_PROTO_SYSMOUSE
+でコード化されます。
+.\" .Ss Acceleration
+.\" The
+.\" .Nm
+.\" driver can somewhat `accelerate' the movement of the pointing device.
+.\" The faster you move the device, the further the pointer
+.\" travels on the screen.
+.\" The driver has an internal variable which governs the effect of
+.\" the acceleration. Its value can be modified via the driver flag
+.\" or via an ioctl call.
+.Sh IOCTL
+この節では、2 種類の
+.Xr ioctl 2
+コマンドについて説明します。
+1 つは、
+.Nm
+ドライバそれ自体に対するコマンドで、もう 1 つは、コンソールと
+コンソール制御ドライバに対するコマンドです。
+.Ss Sysmouse Ioctl
+マウスドライバに対するコマンドがいくつかあります。このコマンド一般の説明は、
+.Xr mouse 4
+にあります。
+以下では、
+.Nm
+ドライバ固有の機能を説明します。
+.Pp
+.Bl -tag -width MOUSE -compact
+.It Dv MOUSE_GETLEVEL Ar int *level
+.It Dv MOUSE_SETLEVEL Ar int *level
+これらのコマンドは、マウスドライバの機能レベルを操作します。
+.Pp
+.It Dv MOUSE_GETHWINFO Ar mousehw_t *hw
+以下の構造体で、接続された機器のハードウェア情報を返します。現在の
+バージョンの
+.Nm
+ドライバでは、
+.Dv iftype
+フィールドだけが正しい値が詰まっていることが保証されています。
+.Bd -literal
+typedef struct mousehw {
+ int buttons; /* ボタンの数 */
+ int iftype; /* I/F タイプ */
+ int type; /* マウス/トラックボール/パッド... */
+ int model; /* I/F 依存のモデル ID */
+ int hwid; /* I/F 依存のハードウェア ID */
+} mousehw_t;
+.Ed
+.Pp
+.Dv buttons
+フィールドには、ドライバが検出したボタンの数が保持されています。
+.Pp
+.Dv iftype
+は常に
+.Dv MOUSE_IF_SYSMOUSE
+です。
+.Pp
+.Dv type
+は機器の型:
+.Dv MOUSE_MOUSE ,
+.Dv MOUSE_TRACKBALL ,
+.Dv MOUSE_STICK ,
+.Dv MOUSE_PAD ,
+.Dv MOUSE_UNKNOWN
+を表します。
+.Pp
+.Dv model
+は、機能レベル 0 では常に
+.Dv MOUSE_MODEL_GENERIC
+です。
+これは、より高いレベルでは、
+.Dv MOUSE_MODEL_GENERIC
+または、
+.Dv MOUSE_MODEL_XXX
+のうちの 1 つになります。
+.Pp
+.Dv hwid
+は常に 0 です。
+.Pp
+.It Dv MOUSE_GETMODE Ar mousemode_t *mode
+このコマンドは、マウスドライバの現在の機能パラメータを返します。
+.Bd -literal
+typedef struct mousemode {
+ int protocol; /* MOUSE_PROTO_XXX */
+ int rate; /* 通知レート (秒単位) */
+ int resolution; /* MOUSE_RES_XXX, 不明の場合は -1 */
+ int accelfactor; /* 加速率 */
+ int level; /* ドライバの機能レベル */
+ int packetsize; /* データパケットの長さ */
+ unsigned char syncmask[2]; /* 同期ビット */
+} mousemode_t;
+.Ed
+.Pp
+.Dv protocol
+フィールドは、ユーザプログラムがマウスデータを読みとる時に、
+その機器の状態を返す形式を表します。
+機能レベル 0 では、
+.Dv MOUSE_PROTO_MSC
+であり、機能レベル 1 では、
+.Dv MOUSE_PROTO_SYSMOUSE
+です。
+.Pp
+.Dv rate
+フィールドは、常に -1 です。
+.Pp
+.Dv resolution
+フィールドは、常に -1 です。
+.Pp
+.Dv accelfactor
+フィールドは、常に 0 です。
+.Pp
+.Dv packetsize
+フィールドは、データパケットの長さを表します。これは機能レベルに
+よって変わります。
+.Pp
+.Bl -tag -width level_0__ -compact
+.It Em レベル 0
+5 バイト
+.It Em レベル 1
+8 バイト
+.El
+.Pp
+配列
+.Dv syncmask
+は、データパケットの先頭バイトを検出するための、ビットマスクとパターンを
+保持します。
+.Dv syncmask[0]
+はビットマスクで、調べるバイトと AND を取ります。この結果が
+.Dv syncmask[1]
+と等しい場合、そのバイトはデータパケットの先頭バイトらしいと言えます。
+この方法で先頭バイトを検出するやり方は 100% 確実とは言えません。
+よって、これは参考扱いにするべきと注意をしておきます。
+.Pp
+.It Dv MOUSE_SETMODE Ar mousemode_t *mode
+このコマンドは、マウスドライバの現在の機能パラメータを
+.Ar mode
+で指定した値に変更します。
+.Dv level
+だけが変更可能です。他のフィールドに値を設定してもエラーは出ませんが、
+何の効果も及ぼしません。
+.\" .Pp
+.\" .It Dv MOUSE_GETVARS Ar mousevar_t *vars
+.\" .It Dv MOUSE_SETVARS Ar mousevar_t *vars
+.\" These commands are not supported by the
+.\" .Nm
+.\" driver.
+.Pp
+.It Dv MOUSE_READDATA Ar mousedata_t *data
+.It Dv MOUSE_READSTATE Ar mousedata_t *state
+これらのコマンドは
+.Nm
+ドライバではサポートされません。
+.Pp
+.It Dv MOUSE_GETSTATE Ar mousestatus_t *status
+このコマンドはボタンの現在の状態と動きのカウントを
+.Xr mouse 4
+で定義された構造体で返します。
+.El
+.Ss コンソールとコンソール制御 Ioctl
+ユーザプログラムは、現在の仮想コンソールに対してコンソール
+.Fn ioctl
+システムコールを発行し、マウスポインタを制御します。コンソール
+.Fn ioctl
+はまた、ボタンが押された時に
+.Xr signal 3
+を受け取る手段をユーザプロセスに提供します。
+.Pp
+マウスデーモン
+.Xr moused 8
+は、
+コンソール制御デバイス
+.Pa /dev/consolectl
+に対して
+.Fn ioctl
+システムコールを用いることにより、
+マウスの動きとボタンの状態を含むマウスの動作をコンソールに通知します。
+.Pp
+両方のクラスの
+.Fn ioctl
+コマンドとも、以下の引数を取る
+.Dv CONS_MOUSECTL
+として定義されています。
+.Bd -literal
+struct mouse_info {
+ int operation;
+ union {
+ struct mouse_data data;
+ struct mouse_mode mode;
+ struct mouse_event event;
+ } u;
+};
+.Ed
+.Pp
+.Bl -tag -width operation -compact
+.It Dv operation
+これは以下のどれか 1 つを取ります。
+.Pp
+.Bl -tag -width MOUSE_MOVEABS -compact
+.It Dv MOUSE_SHOW
+マウスカーソルを有効にして表示します。
+.It Dv MOUSE_HIDE
+マウスカーソルを無効にして隠します。
+.It Dv MOUSE_MOVEABS
+マウスカーソルを
+.Dv u.data
+で与えた位置に移動させます。
+.It Dv MOUSE_MOVEREL
+現在の位置に、
+.Dv u.data
+で与えた値を加えた位置に移動させます。
+.It Dv MOUSE_GETINFO
+現在の仮想コンソールにおけるマウスの現在の位置と、ボタンの状態を
+.Dv u.data
+に収めて返します。
+.It Dv MOUSE_MODE
+これは、
+.Xr signal 3
+を設定し、現在のプロセスにボタンが押されたことを通知します。
+シグナルは
+.Dv u.mode
+に収められて通知されます。
+.El
+.Pp
+ここまでの機能は仮想コンソールに対するものです。これ以後に定義する機能は
+コンソール制御ドライバに対するもので、
+.Xr moused 8
+がマウスデータをコンソールドライバに渡すために用います。
+.Pp
+.Bl -tag -width MOUSE_MOVEABS -compact
+.It Dv MOUSE_ACTION
+.It Dv MOUSE_MOTIONEVENT
+これらの機能は
+.Dv u.data
+に情報を取り、その上で動作します。
+.Nm
+ドライバがオープンされている場合、マウスデータは
+.Nm
+ドライバに送られます。
+.Dv MOUSE_ACTION
+はボタン押し下げ動作を一緒に行ない、要求がある場合はシグナルを送ります。
+現在のコンソールがテキストインタフェースを持つ場合、カットアンドペースト
+処理を行ないます。
+.It Dv MOUSE_BUTTONEVENT
+.Dv u.data
+で、ボタンの種類とそのクリックカウント数を指定します。コンソールドライバは
+その情報を用い、要求がある場合はシグナルを送り、コンソールが
+テキストインタフェースを持つ場合は、カットアンドペースト処理を行ないます。
+.El
+.Pp
+.Dv MOUSE_MOTIONEVENT
+と
+.Dv MOUSE_BUTTONEVENT
+は、新しいインタフェースで、この 2 つを一緒に使うことを想定して
+作られています。これらは
+.Dv MOUSE_ACTION
+ひとつで行なわれている機能を置き換えるためのものです。
+.Pp
+.It Dv u
+この共用体は、以下のいずれかです。
+.Pp
+.Bl -tag -width data -compact
+.It Dv data
+.Bd -literal
+struct mouse_data {
+ int x;
+ int y;
+ int z;
+ int buttons;
+};
+.Ed
+.Pp
+.Dv x ,
+.Dv y ,
+.Dv z
+は、それぞれの方向に対するマウスの移動を表します。
+.Dv buttons
+はボタンの状態を示します。ビット 0 からビット 30 までで最大 31 個の
+ボタンの状態を表すことができます。ボタンが押されていると、対応する
+ビットがセットされます。
+.Pp
+.It Dv mode
+.Bd -literal
+struct mouse_mode {
+ int mode;
+ int signal;
+};
+.Ed
+.Pp
+.Dv signal
+フィールドは、プロセスに送るシグナルを指定します。この値は
+.Ao Pa signal.h Ac
+で定義された値のうちのひとつである必要があります。
+.Dv mode
+フィールドは現在は使用されていません。
+.Pp
+.It Dv event
+.Bd -literal
+struct mouse_event {
+ int id;
+ int value;
+};
+.Ed
+.Pp
+.Dv id
+フィールドは、
+.Dv u.data.buttons
+と同じように、ボタン番号を指定します。
+1 ビット/ボタンだけを設定できます。
+.Dv value
+フィールドは、クリック数を保持しています。これは、ユーザがボタンを
+連続して押した回数です。
+.Pp
+.El
+.El
+.Sh 関連ファイル
+.Bl -tag -width /dev/consolectl -compact
+.It Pa /dev/consolectl
+コンソールを制御するデバイス
+.It Pa /dev/sysmouse
+仮想化されたマウスドライバ
+.It Pa /dev/ttyv%d
+仮想コンソール
+.El
+.Sh 関連項目
+.Xr vidcontrol 1 ,
+.Xr ioctl 2 ,
+.Xr signal 3 ,
+.Xr mouse 4 ,
+.Xr moused 8
+.Sh 歴史
+.Nm
+マニュアルページは、
+.Fx 2.2
+で初めて現れました。
+.Sh 作者
+このマニュアルは
+.An John-Mark Gurney Aq gurney_j@efn.org
+と
+.An Kazutaka Yokota Aq yokota@FreeBSD.org
+が書きました。
+.\" translated by Norihiro Kumagai kuma@nk.rim.or.jp 99-7-18