Unix-system-calls-iopl

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

[cols=",,,,,,,",]

| |  Home   | |  References   | |  Discussion Forums   | |  About TP  

[width="100%",cols="100%",]

a| == iopl()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

iopl-I/O特権レベルの変更

概要

  • #include <sys/io.h> *
*int iopl(int* __level __ **); **

説明

*iopl* ()は、_level_で指定されているように、現在のプロセスのI/O特権レベルを変更します。

この呼び出しは、8514互換のXサーバーをLinuxで実行できるようにするために必要です。 これらのXサーバーはすべての65536 I/Oポートへのアクセスを必要とするため、 ioperm ()呼び出しでは不十分です。

制限のないI/Oポートアクセスを許可することに加えて、より高いI/O特権レベルで実行すると、プロセスが割り込みを無効にすることもできます。 これはおそらくシステムをクラッシュさせるため、お勧めしません。

許可は fork ()および exec ()によって継承されます。

通常のプロセスのI/O特権レベルは0です。

この呼び出しは主にi386アーキテクチャ用です。 他の多くのアーキテクチャでは存在しないか、常にエラーを返します。

返り値

成功すると、ゼロが返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。

エラー

Tag Description
EINVAL level is greater than 3.
ENOSYS This call is unimplemented.
*EPERM * The calling process has insufficient privilege to call* iopl*(); the CAP_SYS_RAWIO capability is required.

準拠

*iopl* ()はLinux固有であり、移植を目的としたプロセスでは使用しないでください。

ノート

Libc5はそれをシステムコールとして扱い、_ <unistd.h> にプロトタイプを持っています。 Glibc1にはプロトタイプがありません。 Glibc2には、 <sys/io.h> <sys/perm.h> _の両方にプロトタイプがあります。 後者は避けてください。i386でのみ利用可能です。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

|  

[cols="^",]

|Advertisements