歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux小於ox3ff端口讀取

Linux小於ox3ff端口讀取

日期:2017/2/28 16:25:13   编辑:Linux教程

讀取bios接口原來需要這些東西,Linux下設置端口權限的系統調用有兩個:ioperm和iopl。

一、ioperm和iopl介紹。

1.ioperm

功能描述:

為調用進程設置I/O端口訪問權能。ioperm的使用需要具有超級用戶的權限,只有低端的[0-0x3ff] I/O端口可被設置,要想指定更多端口的權能,可使用iopl函數。這一調用只可用於i386平台。

用法:

#include <unistd.h> /* for libc5 */
#include <sys/io.h> /* for glibc */

int ioperm(unsigned long from, unsigned long num, int turn_on);


參數:

from:起始端口地址。

num:需要修改權能的端口數。

turn_on:端口的新權能位。1為開啟,0為關閉。


返回說明:

成功執行時,返回0。失敗返回-1,errno被設為以下的某個值

EINVAL:參數無效
EIO:這一調用不被支持
EPERM:調用進程權能不足。

2. iopl

功能描述:該調用用於修改當前進程的操作端口的權限。可以用於所有65536個端口的權限。因此,ioperm相當於該調用的子集。和ioperm一樣,這一調用僅適用於i386平台。

用法:

#include <sys/io.h>

int iopl(int level);

參數:

level: 端口的權限級別。為3時可以讀寫端口。默認權能級別為0,用戶空間不可讀寫。

返回說明:成功執行時,返回0。失敗返回-1,errno被設為以下的某個值

EINVAL:level值大於3
ENOSYS:未實現該調用

EPERM:調用進程權能不足。

Copyright © Linux教程網 All Rights Reserved