⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_port_io.c

📁 上一个上传的有问题,这个是好的。visopsys包括系统内核和GUI的全部SOURCE code ,还包括一些基本的docs文档。里面src子目录对应所有SOURCE code.对于想研究操作系统的朋
💻 C
字号:
////  Visopsys//  Copyright (C) 1998-2005 J. Andrew McLaughlin// //  This program is free software; you can redistribute it and/or modify it//  under the terms of the GNU General Public License as published by the Free//  Software Foundation; either version 2 of the License, or (at your option)//  any later version.// //  This program is distributed in the hope that it will be useful, but//  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY//  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License//  for more details.//  //  You should have received a copy of the GNU General Public License along//  with this program; if not, write to the Free Software Foundation, Inc.,//  59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.////  test_port_io.c////  Program to test IO ports & related stuff! Davide Airaghi#include <stdio.h>#include <sys/api.h>#include <sys/vsh.h>#include <errno.h>#include <string.h>#include <stdlib.h>#define InPort8(port, data)  __asm__ __volatile__ ("inb %%dx, %%al" :  "=a" (data) : "d" (port))    int main(int argc,char **argv){  unsigned int portN = 0;  unsigned char ch;  int pId;  int res = 0;    pId = multitaskerGetCurrentProcessId();      // test_port_io <portnum> : try to execute inb !  if (argc == 2) {    portN = atoi(argv[1]);    printf("Press a key to read port #%d ",portN);    (void) getchar();    printf("Reading port!\n");    InPort8(portN, ch);    return 0;  }  if (argc == 4) {    pId = atoi(argv[3]);    portN = atoi(argv[2]);    if (argv[1][0]=='1')	res = multitaskerAllowIO(pId,portN);    if (argv[1][0]=='0')	res = multitaskerNotAllowIO(pId,portN);	    printf("ERRCODE: %d\n",res);	    return 0;	  }    printf("Usage:\n");  printf("test_port_io <portnum> : read from the port\n");  printf("test_port_io 1 <portnum> <pId> : Allow <pId> to do IO port on <port>\n");  printf("test_port_io 0 <portnum> <pId> : Don't Allow <pId> to do IO port on <port>\n");      return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -