genericaddress.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 81 行
JAVA
81 行
/*
* $Id: GenericAddress.java,v 1.1 2003/11/25 11:42:14 epr Exp $
*/
package org.jnode.driver.acpi;
/**
* GenericAddress.
*
* <p>Title: </p>
* <p>Description: </p>
* <p>Licence: GNU LGPL</p>
* <p> </p>
* @author Francois-Frederic Ozog
* @version 1.0
*/
public class GenericAddress {
byte addressSpace;
byte width;
byte offset;
long address;
public static final byte SYSTEM_MEMORY=0;
public static final byte SYSTEM_IO=1;
public static final byte PCI=2;
public static final byte EMBEDED_CONTROLER=3;
public static final byte SMBUS=4;
public static final byte FIXED_HARDWARE=(byte)0x7ff;
public GenericAddress(byte[] data) {
addressSpace=data[0];
width=data[1];
offset=data[2];
// byte 3 is reserved and should be 0
address=0;
for (int i=4; i< 12; i++) {
address <<=8;
address+=data[i] & 0xff;
}
}
public String toString() {
String space;
String add;
switch (addressSpace) {
case SYSTEM_MEMORY:
space="Memory";
add=Long.toHexString(address);
break;
case SYSTEM_IO:
space="IO";
add=Long.toHexString(address);
break;
case PCI:
space="PCI";
int device=(int)( (address & 0xff00000000L) >> 24);
int offset=(int)((address & 0xffffL));
int function=(int)((address & 0xffff0000L) >> 16);
add="Bus(0)Device(" + device + ")Function(" + function + ")Offset(" + offset+")";
break;
case EMBEDED_CONTROLER:
space="Controler";
add=Long.toHexString(address);
break;
case SMBUS:
space="SMBus";
add=Long.toHexString(address);
break;
case FIXED_HARDWARE:
space="Hardware";
add=Long.toHexString(address);
break;
default :
space="addressSpace-" + Integer.toHexString(addressSpace&0xff);
add=Long.toHexString(address);
break;
}
return "<" + space + ":" + add + "/" + width + "," + offset + ">";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?