fixedacpidescriptiontable.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 139 行

JAVA
139
字号
/*
 * $Id: FixedAcpiDescriptionTable.java,v 1.1 2003/11/25 11:42:14 epr Exp $
 */
package org.jnode.driver.acpi;

import org.jnode.system.MemoryResource;
import org.jnode.system.ResourceManager;
import org.jnode.system.ResourceNotFreeException;
import org.jnode.system.ResourceOwner;
import org.jnode.system.SimpleResourceOwner;

/**
 * FixedAcpiDescriptionTable.
 * 
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Licence: GNU LGPL
 * </p>
 * <p>
 * </p>
 * 
 * @author Francois-Frederic Ozog
 * @version 1.0
 */

public class FixedAcpiDescriptionTable extends AcpiSystemTable {

	private FirmwareAcpiControlStructure facs = null;
	private DifferentiatedSystemDescriptionTable dsdt = null;

	public FixedAcpiDescriptionTable(ResourceManager rm, MemoryResource tableResource) {
		super(rm, tableResource);

	}

	public FirmwareAcpiControlStructure getFACS() {
		return facs;
	}

	public DifferentiatedSystemDescriptionTable getDSDT() {
		return dsdt;
	}

	public GenericAddress getResetRegister() {
		byte[] raw = new byte[12];
		for (int i = 0; i < 12; i++)
			raw[i] = table[116 + i];
		GenericAddress addr = new GenericAddress(raw);
		return addr;
	}

	public int getSmiCmd() {
		return getInt(48);
	}

	public int getSciInt() {
		return getShort(46);
	}

	int getAcpiEnable() {
		return getByte(52);
	}

	int getAcpiDisable() {
		return getByte(53);
	}

	public void acpiEnable() {
		if (getSmiCmd() != 0) {
			// IOOUT(getSmiCmd(), getAcpiEnable());
		}
	}

	public void acpiDisable() {
		if (getSmiCmd() != 0) {
			// IOOUT(getSmiCmd(), getAcpiDisable());
		}
	}

	public int getPm1aEvent() {
		return getInt(56);
	}

	public int getPm1bEvent() {
		return getInt(60);
	}

	public int getPm1aControl() {
		return getInt(64);
	}

	public int getPm1bControl() {
		return getInt(68);
	}

	public int getPm2Control() {
		return getInt(72);
	}

	public int getPmTimer() {
		return getInt(76);
	}

	public int getGeneralPurposeEvent0() {
		return getInt(80);
	}

	public int getGeneralPurposeEvent1() {
		return getInt(84);
	}

	public int getFlags() {
		return getInt(112);
	}

	public void parse() throws ResourceNotFreeException {
		final ResourceOwner owner = new SimpleResourceOwner("ACPI-FixedAcpiDescriptionTable");
		facs = (FirmwareAcpiControlStructure) AcpiTable.getTable(owner, this.rm, tableResource.getInt(36));
		try {
			if (facs != null)
				facs.parse();
		} catch (ResourceNotFreeException ex) {
			log.error("Error parsing FACS:", ex);
		}
		dsdt = (DifferentiatedSystemDescriptionTable) AcpiTable.getTable(owner, this.rm, tableResource.getInt(40));
		try {
			if (dsdt != null)
				dsdt.parse();
		} catch (ResourceNotFreeException ex1) {
			log.error("Error parsing DSDT:", ex1);
		}
	}

}

⌨️ 快捷键说明

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