Package org.jnode.system.resource

Examples of org.jnode.system.resource.MemoryScanner


     * @param endPtr
     * @return The structure found, or null if not found
     */
    private static MPFloatingPointerStructure find(ResourceManager rm,
                                                   ResourceOwner owner, int startPtr, int endPtr) {
        final MemoryScanner ms = rm.getMemoryScanner();
        Address ptr = Address.fromIntZeroExtend(startPtr);
        int size = endPtr - startPtr;
        final int stepSize = 16;
        while (size > 0) {
            Address res = ms.findInt32(ptr, size, MAGIC, stepSize);
            if (res != null) {
                try {
                    final MemoryResource mem;
                    mem = rm.claimMemoryResource(owner, ptr, 16,
                        ResourceManager.MEMMODE_NORMAL);
View Full Code Here


     * @throws ResourceNotFreeException
     */
    private static final AcpiRSDPInfo findAcpiRSDTPTR(final ResourceManager rm) throws ResourceNotFreeException {
        final byte[] match = {'R', 'S', 'D', ' ', 'P', 'T', 'R', ' '};

        final MemoryScanner scanner = (MemoryScanner) AccessController.doPrivileged(new PrivilegedAction() {
            public Object run() {
                return rm.getMemoryScanner();
            }
        });
        final Address tablePtr =
            scanner.findInt8Array(Address.fromIntZeroExtend(0xe0000), 0x1ffff, match, 0, match.length, 1);
        if (tablePtr != null) {
            final int version = getRSDTVersion(rm, tablePtr);
            return new AcpiRSDPInfo(tablePtr, version);
        } else {
            // Not an ACPI system
View Full Code Here

     * @param rm
     * @return The claimed ROM region, or null if not found.
     */
    private final MemoryResource findRom(final ResourceOwner owner, final ResourceManager rm)
        throws ResourceNotFreeException {
        final MemoryScanner scanner =
                AccessController.doPrivileged(new PrivilegedAction<MemoryScanner>() {

                    public MemoryScanner run() {
                        return rm.getMemoryScanner();
                    }
                });

        final Address start = Address.fromIntZeroExtend(0xC0000);
        final Address end = Address.fromIntZeroExtend(0xF0000);
        final int size = end.toWord().sub(start.toWord()).toInt();
        final int stepSize = 0x1000;
        int offset = 0;
        while (offset < size) {
            final Address romAddr;
            // Search for BIOS expansion
            romAddr =
                    scanner.findInt8Array(start.add(offset), size - offset, BIOS_ROM_SIGNATURE, 0,
                            BIOS_ROM_SIGNATURE.length, stepSize);
            if (romAddr == null) {
                return null;
            } else {
                offset = romAddr.toWord().sub(start.toWord()).toInt() + stepSize;
            }
            // Search for ATI signature
            final Address atiSigAddr;
            atiSigAddr =
                    scanner.findInt8Array(romAddr, 128, ATI_ROM_SIGNATURE, 0,
                            ATI_ROM_SIGNATURE.length, 1);
            if (atiSigAddr == null) {
                continue;
            }

View Full Code Here

TOP

Related Classes of org.jnode.system.resource.MemoryScanner

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.