resourcemanager.java

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

JAVA
117
字号
/*
 * $Id: ResourceManager.java,v 1.2 2004/01/21 16:06:17 epr Exp $
 */
package org.jnode.system;

import org.jnode.vm.Address;

/**
 * Interface or Manager of all system resources.
 * 
 * @author Ewout Prangsma (epr@users.sourceforge.net)
 */
public interface ResourceManager {

	/**
	 * Name used to bind the ResourceManager under in the InitialNaming namespace.
	 */
	public static final Class NAME = ResourceManager.class;//"system/ResourceManager";

	/** Allocate memory anywhere in the address space */
	public static final int MEMMODE_NORMAL = 0x00;

	/** Allocate memory compatible with DMA rules */
	public static final int MEMMODE_ALLOC_DMA = 0x01;

	/**
	 * Claim a range of IO ports
	 * 
	 * @param owner
	 * @param startPort
	 * @param length
	 * @return The claimed resource
	 * @throws ResourceNotFreeException
	 */
	public IOResource claimIOResource(ResourceOwner owner, int startPort, int length) throws ResourceNotFreeException;

	/**
	 * Claim a memory region
	 * 
	 * @param owner
	 * @param start
	 * @param size
	 * @param mode
	 * @return The claimed resource
	 * @throws ResourceNotFreeException
	 */
	public MemoryResource claimMemoryResource(ResourceOwner owner, Address start, long size, int mode) throws ResourceNotFreeException;

	/**
	 * Register an interrupt handler for a given irq number.
	 * 
	 * @param owner
	 * @param irq
	 * @param handler
	 * @param shared
	 * @return The claimed resource
	 * @throws ResourceNotFreeException
	 */
	public IRQResource claimIRQ(ResourceOwner owner, int irq, IRQHandler handler, boolean shared) throws ResourceNotFreeException;

	/**
	 * Create a MemoryResource wrapper around a given byte-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(byte[] data);

	/**
	 * Create a MemoryResource wrapper around a given char-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(char[] data);

	/**
	 * Create a MemoryResource wrapper around a given short-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(short[] data);

	/**
	 * Create a MemoryResource wrapper around a given int-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(int[] data);

	/**
	 * Create a MemoryResource wrapper around a given long-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(long[] data);

	/**
	 * Create a MemoryResource wrapper around a given float-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(float[] data);

	/**
	 * Create a MemoryResource wrapper around a given double-array.
	 * 
	 * @param data
	 * @return The claimed resource
	 */
	public MemoryResource asMemoryResource(double[] data);
}

⌨️ 快捷键说明

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