Trusted Solaris 開発ガイド

プログラミングインタフェース宣言

この節では、トラステッド X11 インタフェースの宣言と、X11 ウィンドウシステムのラベルクリッピングインタフェースの宣言を説明します。

ウィンドウの属性

次のルーチンは、*resattrp 内の、ウィンドウ ID の資源属性を返します。詳細は、XTSOLgetResAttributes(3X11TSOL) のマニュアルページを参照してください。

Status 	XTSOLgetResAttributes(							Display *display,
 								XID object,
 								ResourceType resourceFlag,
 								XTsolResAttributes *resattrp);

プロパティの属性

次のルーチンは、*propattrp 内の、ウィンドウ ID のプロパティ属性を返します。詳細は、XTSOLgetPropAttributes(3X11TSOL) のマニュアルページを参照してください。

Status		XTSOLgetPropAttributes(							Display *display,
 									Window win,
 									Atom property,
 									XTsolPropAttributes *propattrp);

クライアント接続の属性

次のルーチンは、*clientattrp 内のクライアント属性を返します。詳細は、XTSOLgetClientAttributes(3X11TSOL) のマニュアルページを参照してください。

Status		XTSOLgetClientAttributes(							Display *display,
 									XID win,
 									XTsolClientAttributes *clientattrp);

ウィンドウの CMW ラベル

次のルーチンは、ウィンドウの CMW ラベルの取得と設定を行います。詳細は、XTSOLgetResLabel(3X11TSOL)XTSOLsetResLabel(3X11TSOL) のマニュアルページを参照してください。

Status 	XTSOLgetResLabel(								Display *display,
 									XID object,
 									ResourceType resourceFlag,
 									bclabel_t *cmwlabel);

 void		XTSOLsetResLabel(							Display *display,
 									XID object,
 									ResourceType resourceFlag,
 									bclabel_t *cmwLabel,
 									enum setting_flag labelFlag);

ウィンドウのユーザー ID

次のインタフェースは、ウィンドウのユーザー ID の取得と設定を行います。詳細は、XTSOLgetResUID(3X11TSOL)XTSOLsetResUID(3X11TSOL) のマニュアルページを参照してください。

Status		XTSOLgetResUID(					Display *display,
 							XID object,
 							ResourceType resourceFlag,
 							uid_t *uidp);

 void 		XTSOLsetResUID(					Display *display,
 							XID object,
 							ResourceType resourceFlag,
 							uid_t *uidp);

ウィンドウの入力情報ラベル

ウィンドウの入力情報ラベルが変わる場合、クライアントの最上位ウィンドウから派生しているすべてのウィンドウの入力情報ラベルも変わります。そのウィンドウの所有者と同じ機密ラベルおよびユーザー ID を持つ別のクライアントが入力ウィンドウ上のキーボードイベントを求めた場合、そのキーボードイベントは両クライアントに送られます。このときの入力情報ラベルは、イベントが発生したところの入力情報ラベルです。

次のルーチンは、ウィンドウに対応した入力情報ラベルの取得と設定を行います。詳細は、XTSOLgetWindowIIL(3X11TSOL)XTSOLsetWindowIIL(3X11TSOL) のマニュアルページを参照してください。

Status 	XTSOLgetWindowIIL(						Display *display,
 							Window win,
 							bilabel_t *label);
 void 		XTSOLsetWindowIIL(					Diplay *display,
 							Window win,
 							bilabel_t *label);

プロパティの CMW ラベル

次のルーチンは、ウィンドウプロパティの CMW ラベルの取得と設定を行います。詳細は、XTSOLgetPropLabel(3X11TSOL)XTSOLsetPropLabel(3X11TSOL) のマニュアルページを参照してください。

Status		XTSOLgetPropLabel(					Display *display,
 							Window win,
 							Atom property,
 							bclabel_t *cmwlabel);

 void 		XTSOLsetPropLabel(					Display *display,
 							Window win,
 							Atom property,
 							bclabel_t *cmwLabel,
 							enum setting_flag labelFlag);

プロパティのユーザー ID

次のインタフェースは、ウィンドウプロパティのユーザー ID の取得と設定を行います。詳細は、XTSOLgetPropUID(3X11TSOL)XTSOLsetPropUID(3X11TSOL) のマニュアルページを参照してください。

Status 		XTSOLgetPropUID(					Display *display,
 							Window winID,
 							Atom property,
 							uid_t *uidp);

 void 		XTSOLsetPropUID(					Display *display,
 							Window win,
 							Atom property,
 							uid_t *uidp);

ワークステーションの所有者 ID

次のルーチンは、ワークステーションサーバーの所有者のユーザー ID の取得と設定を行います。詳細は、XTSOLgetWorkstationOwner(3X11TSOL)XTSOLsetWorkstationOwner(3X11TSOL) のマニュアルページを参照してください。


注 -

XTSOLsetWorkstationOwner(3X11TSOL) は、ウィンドウマネージャ用に予約されています。


Status		XTSOLgetWorkstationOwner(							Display *display,
 									uid_t *uidp);

 void 		XTSOLsetWorkstationOwner(							Display *display,
 									uid_t *uidp);

X ウィンドウサーバーの認可上限と最下位ラベル

次のルーチンは、X ウィンドウサーバーに対し、セッション認可上限と最下位のセッションラベルを設定します。詳細は、XTSOLsetSessionHI(3X11TSOL)XTSOLsetSessionLO(3X11TSOL) のマニュアルページを参照してください。


注 -

これらのインタフェースは、ウィンドウマネージャ用に予約されています。


void 		XTSOLsetSessionHI(						Display *display,
 								bclear_t *clearance);

 void 		XTSOLsetSessionLO(						Display *display,
 								bslabel_t *sl);

トラステッドパスウィンドウ

次のルーチンは、指定されたウィンドウをトラステッドパスウィンドウに設定し、その後、指定されたウィンドウがトラステッドパスウィンドウかをテストします。詳細は XTSOLMakeTPWindow(3X11TSOL) のマニュアルページを参照してください。

void 		XTSOLMakeTPWindow(						Display *dpy,
 								Window win);

 Bool 		XTSOLIsWindowTrusted(						Display *display,
 								Window win);

トラステッドストライプの高さ

次のインタフェースは、トラステッドストライプの高さの取得と設定 (加減操作) を行います。トラステッドストライプがまったくないか、あるいは極端に大きくならないように気を付けてください。詳細は、XTSOLsetSSHeight(3X11TSOL)XTSOLgetSSHeight(3X11TSOL) のマニュアルページを参照してください。


注 -

これらのインタフェースは、ウィンドウマネージャ用に予約されています。


Status 		XTSOLgetSSHeight(						Display *display,
 								int screen_num,
 								int *newHeight);

 void 		XTSOLsetSSHeight(						Display *display,
 								int screen_num,
 								int newHeight);

多重インスタンス化の情報

次のルーチンを使用すると、クライアントは、クライアント自身の機密ラベルとは異なる機密ラベルで、プロパティ情報を取得できます。最初の呼び出しでは、希望する機密ラベルとユーザー ID を指定し、enabled を TRUE に設定します。続いて、XTSOLgetPropAttributes(3X11TSOL)XTSOLgetPropLabel(3X11TSOL)XTSOLgetPropUID(3X11TSOL) のいずれかを呼び出します。最後に、enabled を FALSE に設定し、このルーチンを再び呼び出します。詳細は、XTSOLsetPolyInstInfo(3X11TSOL) のマニュアルページを参照してください。

void 		XTSOLsetPolyInstInfo(						Display *dpy,
 								bslabel_t *senslabel,
 								uid_t *userID, int enabled);

X11 ウィンドウのラベルクリッピングインタフェース

次のルーチンは、フォントリストを使用して、バイナリの CMW ラベル、機密ラベル、情報ラベル、認可上限を、複合された文字列に変換します。戻される文字列は、指定されるピクセル幅にクリップされます。幅 (width) が画面幅 (display) と等しい場合には、画面幅の半分でラベルが折り返されます。flags パラメータの詳細は、第 6 章「ラベルのコード例」「バイナリと ASCII」に挙げられています。詳細は、labelclipping(3) のマニュアルページを参照してください。

/* CMW ラベル */
 	XmString					Xbcltos(					Display *display,
 											const bclabel_t *cmwlabel,
 											const Dimension width,
 											const XmFontList fontlist,
 											const int flags);

/* 機密ラベル */
 	XmString					Xbsltos(					Display *display,
 											const bslabel_t *senslabel,
 											const Dimension width,
 											const XmFontList fontlist,
 											const int flags);

/* 情報ラベル */
 	XmString					Xbiltos(					Display *display,
 											const bilabel_t *inflabel,
 											const Dimension width,
 											const XmFontList fontlist,
 											const int flags);

/* 認可上限 */
 	XmString					Xbcleartos(					Display *display,
 											const bclear_t *clearance,
 											const Dimension width,
 											const XmFontList fontlist,
 											const int flags);