001    // ScopedPhysicalMemory.java, created by wbeebee
002    // Copyright (C) 2001 Wes Beebee <wbeebee@mit.edu>
003    // Licensed under the terms of the GNU GPL; see COPYING for details.
004    package javax.realtime;
005    
006    /** <code>ScopedPhysicalMemory</code>
007     * 
008     * @author Wes Beebee <<a href="mailto:wbeebee@mit.edu">wbeebee@mit.edu</a>>
009     */
010    
011    public class ScopedPhysicalMemory extends ScopedMemory {
012        private long base, size;
013    
014        /** */
015    
016        public ScopedPhysicalMemory(long base, long size) {
017            super(size);
018            this.base = base;
019            this.size = size;
020        }
021    
022        /** */
023    
024        protected native void initNative(long sizeInBytes);
025    
026        /** */
027    
028        public void checkAccess(Object obj) {
029            if (obj instanceof ScopedPhysicalMemory) {
030                ScopedPhysicalMemory spm = (ScopedPhysicalMemory)obj;
031                if (!(((base <= (spm.base + spm.size)) && (spm.base <= base))||
032                      (((base + size) <= (spm.base + spm.size)) &&
033                       (spm.base <= (base + size))))) { // It doesn't overlap
034                    super.checkAccess(obj);
035                }
036            }
037        }
038    }