LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Thu Jun 7 16:37:35 CEST 2007
    Subject: [cvs-checkins] MODIFIED: jop ...
    Top
    Date: 00/07/06 07:16:37

    Added: jop/java/target/src/common/yaffs2/utils ArrayPointer.java
    Constants.java DebugConfiguration.java Globals.java
    IntArrayPointer.java IntegerPointer.java
    NotImplementedException.java
    PartiallySerializableObject.java PooledObject.java
    PooledObjectFactory.java PortConfiguration.java
    SerializableObject.java UnexpectedException.java
    Unix.java Utils.java YYIELDInterface.java
    list_head_or_yaffs_Object.java
    yaffs_BlockInfoPointer.java
    yramdisk_BlockPointer.java
    Log:
    Java port of YAFFS, a NAND flash file system. Under development.


    Revision Changes Path
    1.1 jop/java/target/src/common/yaffs2/utils/ArrayPointer.java

    http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/ArrayPointer.java?rev=1.1&content-type=text/x-cvsweb-markup

    Index: ArrayPointer.java
    ===================================================================
    package yaffs2.utils;

    /**
    * N.B. that modifications of the index will propagate downward.
    *
    */
    public class ArrayPointer
    {
    public ArrayPointer(ArrayPointer arrayPointer, int index)
    {
    this.array = arrayPointer.array;
    this.index = arrayPointer.index + index;
    }

    public ArrayPointer(ArrayPointer arrayPointer)
    {
    this.array = arrayPointer.array;
    this.index = arrayPointer.index;
    }

    public ArrayPointer(byte[] array, int index)
    {
    this.array = array;
    this.index = index;
    }

    public ArrayPointer(byte[] array)
    {
    this.array = array;
    }

    public ArrayPointer()
    {

    }


    public void set(int relativeIndex, byte value)
    {
    array[index + relativeIndex] = value;
    }
    public void set(byte value)
    {
    array[index] = value;
    }

    public byte get(int relativeIndex)
    {
    return array[index + relativeIndex];
    }

    public byte get()
    {
    return array[index];
    }

    public void increment()
    {
    index++;
    }
    public void increment(int incBy)
    {
    index += incBy;
    }

    public boolean isNotZero()
    {
    return array[index] != 0;
    }

    public byte[] array;
    public int index;
    }



    1.1 jop/java/target/src/common/yaffs2/utils/Constants.java

    http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/Constants.java?rev=1.1&content-type=text/x-cvsweb-markup Index: Constants.java =================================================================== package yaffs2.utils; public class Constants { public static final int UNSIGNED_CHAR_MAX = 0xff; public static final int UNSIGNED_CHAR_MASK = UNSIGNED_CHAR_MAX; public static final long UNSIGNED_INT_MAX = 0xffffffff; public static final long UNSIGNED_INT_MASK = UNSIGNED_INT_MAX; public static final int SIZEOF_INT = 4; public static final int SIZEOF_SHORT = 2; public static final int SIZEOF_BYTE = 1; } 1.1 jop/java/target/src/common/yaffs2/utils/DebugConfiguration.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/DebugConfiguration.java?rev=1.1&content-type=text/x-cvsweb-markup Index: DebugConfiguration.java =================================================================== package yaffs2.utils; public interface DebugConfiguration { public int __LINE__(); // { // return new Exception().getStackTrace()[1].getLineNumber(); // } public String __FILE__(); // { // return new Exception().getStackTrace()[1].getFileName(); // } } 1.1 jop/java/target/src/common/yaffs2/utils/Globals.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/Globals.java?rev=1.1&content-type=text/x-cvsweb-markup Index: Globals.java =================================================================== package yaffs2.utils; import yaffs2.port.yaffscfg2k_C; public class Globals { /** * Call this method to start up the file system. * @param configuration Should contain settings equivalent to those in direct/yaffscfg2k.c. * @param debugConfiguration May be null. */ public static void startUp(yaffscfg2k_C configuration, PortConfiguration portConfiguration, DebugConfiguration debugConfiguration) { Globals.configuration = configuration; Globals.yaffs_traceMask = configuration.yaffs_traceMask(); Globals.portConfiguration = portConfiguration; Globals.debugConfiguration = debugConfiguration; } public static yaffscfg2k_C configuration; /**unsigned*/ public static int yaffs_traceMask; public static PortConfiguration portConfiguration; public static DebugConfiguration debugConfiguration; } 1.1 jop/java/target/src/common/yaffs2/utils/IntArrayPointer.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/IntArrayPointer.java?rev=1.1&content-type=text/x-cvsweb-markup Index: IntArrayPointer.java =================================================================== package yaffs2.utils; import static yaffs2.utils.Utils.*; /** * N.B. that modifications of the index will propagate downward. * */ public class IntArrayPointer { public IntArrayPointer(byte[] array, int index) { this.array = array; this.index = index; } public IntArrayPointer() { } public void set(int value) { writeIntToByteArray(array, index, value); } public int get() { return getIntFromByteArray(array, index); } public byte[] array; public int index; } 1.1 jop/java/target/src/common/yaffs2/utils/IntegerPointer.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/IntegerPointer.java?rev=1.1&content-type=text/x-cvsweb-markup Index: IntegerPointer.java =================================================================== package yaffs2.utils; public class IntegerPointer { public int dereferenced; public IntegerPointer(int value) { dereferenced = value; } public IntegerPointer() { } } 1.1 jop/java/target/src/common/yaffs2/utils/NotImplementedException.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/NotImplementedException.java?rev=1.1&content-type=text/x-cvsweb-markup Index: NotImplementedException.java =================================================================== package yaffs2.utils; public class NotImplementedException extends RuntimeException { } 1.1 jop/java/target/src/common/yaffs2/utils/PartiallySerializableObject.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/PartiallySerializableObject.java?rev=1.1&content-type=text/x-cvsweb-markup Index: PartiallySerializableObject.java =================================================================== package yaffs2.utils; public abstract class PartiallySerializableObject extends SerializableObject { // the other constructors could pose "data integrity" problems /** * The object is not "contained" in another struct. * */ public PartiallySerializableObject(int serializedLength) { super(serializedLength); } } 1.1 jop/java/target/src/common/yaffs2/utils/PooledObject.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/PooledObject.java?rev=1.1&content-type=text/x-cvsweb-markup Index: PooledObject.java =================================================================== package yaffs2.utils; public abstract class PooledObject { PooledObject next; } 1.1 jop/java/target/src/common/yaffs2/utils/PooledObjectFactory.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/PooledObjectFactory.java?rev=1.1&content-type=text/x-cvsweb-markup Index: PooledObjectFactory.java =================================================================== package yaffs2.utils; public abstract class PooledObjectFactory { protected static PooledObject first; public PooledObjectFactory(int initialCapacity) { PooledObject last = null; for (int i = 0; i < initialCapacity; i++) { PooledObject o = createInstance(); o.next = last; last = o; } } protected abstract PooledObject createInstance(); public PooledObject get() { if (first == null) return createInstance(); else { PooledObject result = first; first = first.next; return result; } } /** * * @param o Might be null. */ public void put(PooledObject o) { if (o != null) { o.next = first; first = o; } } } 1.1 jop/java/target/src/common/yaffs2/utils/PortConfiguration.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/PortConfiguration.java?rev=1.1&content-type=text/x-cvsweb-markup Index: PortConfiguration.java =================================================================== package yaffs2.utils; // XXX not needed atm public interface PortConfiguration { public void YBUG(); } 1.1 jop/java/target/src/common/yaffs2/utils/SerializableObject.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/SerializableObject.java?rev=1.1&content-type=text/x-cvsweb-markup Index: SerializableObject.java =================================================================== package yaffs2.utils; public abstract class SerializableObject { // XXX does not need a pool /** * The object is "contained" in the owner struct. * @param owner * @param offset */ public SerializableObject(SerializableObject owner, int offset) { this.serialized = owner.serialized; this.offset = offset; } // XXX needs a separate pool(?) /** * The object is "contained" in an array buffer. * @param array * @param offset */ public SerializableObject(byte[] array, int offset) { this.serialized = array; this.offset = offset; } /** * The object is not "contained" in another struct. * */ public SerializableObject(int serializedLength) { assert serializedLength > 0; serialized = new byte[serializedLength]; } public int offset; public byte[] serialized; public abstract int getSerializedLength(); } 1.1 jop/java/target/src/common/yaffs2/utils/UnexpectedException.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/UnexpectedException.java?rev=1.1&content-type=text/x-cvsweb-markup Index: UnexpectedException.java =================================================================== package yaffs2.utils; public class UnexpectedException extends RuntimeException { } 1.1 jop/java/target/src/common/yaffs2/utils/Unix.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/Unix.java?rev=1.1&content-type=text/x-cvsweb-markup Index: Unix.java =================================================================== package yaffs2.utils; import java.util.Arrays; import yaffs2.port.*; import static yaffs2.utils.emulation.Utils.*; // XXX remove dependencies /** * Note that these methods are neither semantically nor syntactically equivalent to their * archetypes. * Rather, they should fit to the porting style. * */ public class Unix { // public static void memset(ArrayPointer s, byte c, int n) // { // Arrays.fill(s.array, s.index, s.index+n-1, c); // // XXX use this instead of the hand-written code? //// for (int i = 0; i < n; i++) //// s.set(i, c); // } // public static void memset(byte[] s, byte c, int n) // { // for (int i = 0; i < n; i++) // s[i] = c; // } public static void memset(byte[] s, int sIndex, byte c, int n) { for (int i = sIndex; i < sIndex + n; i++) s[i] = c; } public static void memset(yaffs_Tnode s) { for (int i = 0; i < s.internal.length; i++) s.internal[i] = null; memset((PartiallySerializableObject)s,(byte)0); } public static void memset(list_head s) { s.next = null; s.prev = null; } public static void memset(yaffsfs_Handle s) { s.inUse = false; s.readOnly = false; s.append = false; s.exclusive = false; s.position = 0; s.obj = null; } public static void memset(yaffsfs_DirectorySearchContext s) { s.magic = 0; memset(s.de); memset(s.name, 0, (byte)0, s.name.length); s.nameIndex = 0; s.dirObj = null; s.nextReturn = null; s.offset = 0; memset(s.others); } public static void memset(yaffs_dirent s) { s.d_ino = 0; s.d_off = 0; // s.d_reclen = 0; memset(s.d_name, 0, (byte)0, s.d_name.length); s.d_nameIndex = 0; s.d_dont_use = null; } public static void memset(yaffs_ExtendedTags s) { s.validMarker0 = 0; s.chunkUsed = false; s.objectId = 0; s.chunkId = 0; s.byteCount = 0; s.eccResult = 0; s.blockBad = false; s.chunkDeleted = false; s.serialNumber = 0; s.sequenceNumber = 0; s.extraHeaderInfoAvailable = false; s.extraParentObjectId = 0; s.extraIsShrinkHeader = false; s.extraShadows = false; s.extraObjectType = 0; s.extraFileLength = 0; s.extraEquivalentObjectId = 0; s.validMarker1 = 0; } public static void memset(yaffs_Object s) { s.deleted = false; /* This should only apply to unlinked files. */ s.softDeleted = false; /* it has also been soft deleted */ s.unlinked = false; /* An unlinked file. The file should be in the unlinked directory.*/ s.fake = false; /* A fake object has no presence on NAND. */ s.renameAllowed = false; /* Some objects are not allowed to be renamed. */ s.unlinkAllowed = false; s.dirty = false; /* the object needs to be written to flash */ s.valid = false; /* When the file system is being loaded up, this * object might be created before the data * is available (ie. file data records appear before the header). */ s.lazyLoaded = false; /* This object has been lazy loaded and is missing some detail */ s.deferedFree = false; /* For Linux kernel. Object is removed from NAND, but is * still in the inode cache. Free of object is defered. * until the inode is released. */ s.serial = 0; /* serial number of chunk in NAND. Cached here */ s.sum = 0; /* sum of the name to speed searching */ s.myDev = null; /* The device I'm on */ memset(s.hashLink); memset(s.hardLinks); s.parent = null; memset(s.siblings); s.chunkId = 0; s.nDataChunks = 0; s.objectId = 0; s.yst_mode = 0; //#ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM for (int i = 0; i < s.shortName.length; i++) s.shortName[i] = 0; //#endif s.inUse = 0; s.yst_uid = 0; s.yst_gid = 0; s.yst_atime = 0; s.yst_mtime = 0; s.yst_ctime = 0; s.yst_rdev = 0; s.variantType = 0; memset(s.variant); } public static void memset(yaffs_ObjectVariant s) { memset(s.fileVariant); memset(s.directoryVariant); memset(s.symLinkVariant); memset(s.hardLinkVariant); } public static void memset(yaffs_FileStructure s) { s.fileSize = 0; s.scannedFileSize = 0; s.shrinkSize = 0; s.topLevel = 0; s.top = null; } public static void memset(yaffs_DirectoryStructure s) { memset(s.children); } public static void memset(yaffs_SymLinkStructure s) { s.alias = null; s.aliasIndex = 0; } public static void memset(yaffs_HardLinkStructure s) { s.equivalentObject = null; s.equivalentObjectId = 0; } // public static void memset(yaffs_Device s) // { // throw new NotImplementedException(); // } // public static void memset(byte[] s, byte c) // { // for (int i = 0; i < s.length; i++) // s[i] = c; // } // public static void memset(yaffs_Spare s, byte c) // { // s.tagByte0 = c; // s.tagByte1 = c; // s.tagByte2 = c; // s.tagByte3 = c; // s.pageStatus = c; /* set to 0 to delete the chunk */ // s.blockStatus = c; // s.tagByte4 = c; // s.tagByte5 = c; // memset(s.ecc1, c); // s.tagByte6 = c; // s.tagByte7 = c; // memset(s.ecc2, c); // } public static void memset(SerializableObject s, byte c) { // N.B. fill() toIndex parameter is exclusive Arrays.fill(s.serialized, s.offset, s.offset+s.getSerializedLength(), c); } public static void memset(SerializableObject[] s, byte c) { for (int i = 0; i < s.length; i++) memset(s[i], c); } public static void memcpy(yaffs_Tnode dest, yaffs_Tnode src) { for (int i = 0; i < dest.internal.length; i++) dest.internal[i] = src.internal[i]; memcpy((PartiallySerializableObject)dest,(PartiallySerializableObject)src); } // /** // * Copies dest.length bytes. // * @param dest // * @param src // */ // public static void memcpy(byte[] dest, byte[] src) // { // for (int i = 0; i < dest.length; i++) // dest[i] = src[i]; // } // // public static void memcpy(byte[] dest, ArrayPointer src, int num) // { // for (int i = 0; i < num; i++) // dest[i] = src.get(i); // } // // public static void memcpy(ArrayPointer dest, ArrayPointer src, int num) // { // // XXX use this instead of the hand-written code? // System.arraycopy(src.array, src.index, dest.array, dest.index, num); //// for (int i = 0; i < num; i++) //// dest.set(i, src.get(i)); // } public static void memcpy(byte[] dest, int destIndex, byte[] src, int srcIndex, int num) { System.arraycopy(src, srcIndex, dest, destIndex, num); } /** * As long as a class only contains other SerializableObjects and Primitives, * this works. * */ public static void memcpy(SerializableObject dest, SerializableObject src) { assert dest.getClass().equals(src.getClass()); System.arraycopy(src.serialized, src.offset, dest.serialized, dest.offset, dest.getSerializedLength()); } // public static void memcpy(yaffs_NANDSpare dest, yaffs_NANDSpare src) { // dest.eccres1 = src.eccres1; // dest.eccres2 = src.eccres2; // memcpy(dest.spare, src.spare); // } public static int memcmp(byte[] s1, int s1Index, byte[] s2, int s2Index, int n) { for (int i = 0; i < n; i++) { int compare; compare = s1[s1Index+i] - s2[s2Index+i]; if (compare != 0) { return compare; } } return 0; } public static int memcmp(SerializableObject s1, SerializableObject s2) { assert s1.getClass().equals(s2.getClass()); assert s1.getSerializedLength() == s2.getSerializedLength(); return memcmp(s1.serialized, s1.offset, s2.serialized, s2.offset, s1.getSerializedLength()); } public static int strcmp(byte[] s1, int s1Index, byte[] s2, int s2Index) { // XXX could make it quicker int i = 0; while (s1[s1Index+i] == s2[s2Index+i] && s1[s1Index+i] != 0) i++; return s1[s1Index+i]-s2[s2Index+i]; } // XXX speed functions up public static void strcpy(byte[] a, int aIndex, byte[] b, int bIndex) { int i = 0; do { a[aIndex+i] = b[bIndex+i]; } while (b[bIndex+(i++)] != 0); } public static void strncpy(byte[] a, int aIndex, byte[] b, int bIndex, int c) { boolean nullEncountered = false; for (int i = 0; i < c; i++) { if (!nullEncountered) { nullEncountered = b[bIndex+i] == 0; a[aIndex+i] = b[bIndex+i]; } else { a[aIndex+i] = 0; } } } public static int strlen(byte[] s, int sIndex) { int i = 0; while (s[sIndex+i] != 0) ++i; return i; } // PORT static byte[] _STATIC_LOCAL_printf_buffer = new byte[200]; static final int _STATIC_LOCAL_printf_bufferIndex = 0; // XXX only for emulation static int debugLines = 0; public static void printf(String format, Object... args) { sprintf(_STATIC_LOCAL_printf_buffer, _STATIC_LOCAL_printf_bufferIndex, format, args); String buffer = yaffs2.utils.emulation.Utils.byteArrayToString( _STATIC_LOCAL_printf_buffer, _STATIC_LOCAL_printf_bufferIndex); System.out.print(buffer); for (int i = 0; i < buffer.length(); i++) { if (buffer.charAt(i) == '\n') debugLines++; } int foo = 0; // FIXME use this statement to break when trace line #debugLines is written } // XXX only for emulation /** * @return Upon successful completion, the sprintf() function shall return the number of bytes written to s, excluding the terminating null byte. */ // XXX overflow still possible in format parsing code public static int sprintf(byte[] s, int sIndex, String format, Object... args) { int formatIndex = 0; int argsIndex = 0; final int formatLength = format.length(); final int sLength = s.length; int sOffset = sIndex; char c; while (formatIndex < formatLength && sOffset < sLength) { if ((c = format.charAt(formatIndex)) == '%') { char formatChar = format.charAt(++formatIndex); boolean padWithZeroes = false; // XXX int width = 0; // XXX if (formatChar == '0') // pad with leading zeros { padWithZeroes = true; formatChar = format.charAt(++formatIndex); } // PORT bad bad HACK if (formatChar >= '1' && formatChar <= '9') { width = formatChar - '0'; formatChar = format.charAt(++formatIndex); } // XXX make sure of no overflows && sOffset reaches sLength switch (formatChar) { // case 'c': // single byte // sOffset = StringToByteArraySafe( // ((Byte)args[argsIndex]).toString(), s, sOffset); // break; case 'd': // integer case 'i': sOffset = StringToByteArraySafe( ((Integer)args[argsIndex]).toString(), s, sOffset); break; case 'l': // long sOffset = StringToByteArraySafe( ((Long)args[argsIndex]).toString(), s, sOffset); break; case 'x': // hex case 'X': sOffset = StringToByteArraySafe( Integer.toHexString((Integer)args[argsIndex]), s, sOffset); break; case 'b': // boolean s[sOffset++] = (Boolean)args[argsIndex] ? (byte)'1' : (byte)'0'; break; case 's': // char string sOffset = StringToByteArraySafe((String)args[argsIndex], s, sOffset); break; case 'a': // PORT byte[] array, int offset byte[] array = (byte [])args[argsIndex]; int offset = (Integer)args[argsIndex+1]; int len = strlen(array, offset); // trim to avoid buffer overflow len = Math.min(len, sLength-sOffset); System.arraycopy(array, offset, s, sOffset, len); sOffset += len; argsIndex++; // 2 args consumed break; case '%': s[sOffset++] = (byte)'%'; argsIndex--; // no arg consumed break; default: assert false; } argsIndex++; } else s[sOffset++] = (byte)c; formatIndex++; } assert sOffset < sLength-1; if (!(sOffset <= sLength-1)) sOffset = sLength-1; s[sOffset] = 0; return sOffset-sIndex; } public static final int _IFMT = 0170000; /* type of file */ public static final int _IFCHR = 0020000; /* character special */ public static final int _IFBLK = 0060000; /* block special */ public static final int _IFSOCK = 0140000; /* socket */ public static final int _IFIFO = 0010000; /* fifo */ public static boolean S_ISCHR(int m) { return (((m)&_IFMT) == _IFCHR); } public static boolean S_ISBLK(int m) { return (((m)&_IFMT) == _IFBLK); } public static boolean S_ISFIFO(int m) { return (((m)&_IFMT) == _IFIFO); } public static boolean S_ISSOCK(int m) { return (((m)&_IFMT) == _IFSOCK); } public static final int S_IFDIR = 0040000; } 1.1 jop/java/target/src/common/yaffs2/utils/Utils.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/Utils.java?rev=1.1&content-type=text/x-cvsweb-markup Index: Utils.java =================================================================== package yaffs2.utils; public class Utils { // performance hogs, only for debugging public static int __LINE__() { if (Globals.debugConfiguration != null) return Globals.debugConfiguration.__LINE__(); else return -1; } public static String __FILE__() { if (Globals.debugConfiguration != null) return Globals.debugConfiguration.__FILE__(); else return null; } /** * XXX byte order - little endian for now * @param array * @param index * @return */ public static int getIntFromByteArray(byte[] array, int index) { return array[index+3] << 24 | (array[index+2] & 0xff) << 16 | (array[index+1] & 0xff) << 8 | (array[index] & 0xff); } /** * XXX byte order - little endian for now * @param array * @param index * @param value */ public static void writeIntToByteArray(byte[] array, int index, int value) { array[index+3] = (byte)(value >>> 24); array[index+2] = (byte)(value >>> 16); array[index+1] = (byte)(value >>> 8); array[index+0] = (byte)value; } /** * XXX byte order - little endian for now * @param array * @param index * @return */ public static short getShortFromByteArray(byte[] array, int index) { return (short)(array[index+1] << 8 | (array[index] & 0xff)); } /** * XXX byte order - little endian for now * @param array * @param index * @param value */ public static void writeShortToByteArray(byte[] array, int index, short value) { array[index+1] = (byte)(value >>> 8); array[index] = (byte)(value); } public static long intAsUnsignedInt(int interpretedAsUnsigned) { return interpretedAsUnsigned & 0xffffffffl; } public static int byteAsUnsignedByte(byte interpretedAsUnsigned) { return interpretedAsUnsigned & 0xff; } public static void writeBooleanAsIntToByteArray(byte[] array, int index, boolean value) { writeIntToByteArray(array, index, value ? 1 : 0); } public static boolean getBooleanAsIntFromByteArray(byte[] array, int index) { return getIntFromByteArray(array, index) != 0; } /** * * @param o May be null. * @return Returns 0 when the reference is null. */ public static int hashCode(Object o) { return o != null ? o.hashCode() : 0; } } 1.1 jop/java/target/src/common/yaffs2/utils/YYIELDInterface.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/YYIELDInterface.java?rev=1.1&content-type=text/x-cvsweb-markup Index: YYIELDInterface.java =================================================================== package yaffs2.utils; public interface YYIELDInterface { /** * "added for use in scan so processes aren't blocked indefinitely." * XXX PORT schedule() is only called only when compiling for Linux, possible problems? */ public void YYIELD(); } 1.1 jop/java/target/src/common/yaffs2/utils/list_head_or_yaffs_Object.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/list_head_or_yaffs_Object.java?rev=1.1&content-type=text/x-cvsweb-markup Index: list_head_or_yaffs_Object.java =================================================================== package yaffs2.utils; /** * XXX only for compile-time checks * */ public interface list_head_or_yaffs_Object { } 1.1 jop/java/target/src/common/yaffs2/utils/yaffs_BlockInfoPointer.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/yaffs_BlockInfoPointer.java?rev=1.1&content-type=text/x-cvsweb-markup Index: yaffs_BlockInfoPointer.java =================================================================== package yaffs2.utils; import yaffs2.port.yaffs_BlockInfo; public class yaffs_BlockInfoPointer { public yaffs_BlockInfoPointer() { } public yaffs_BlockInfoPointer(yaffs_BlockInfo value) { dereferenced = value; } public yaffs_BlockInfo dereferenced; } 1.1 jop/java/target/src/common/yaffs2/utils/yramdisk_BlockPointer.java http://www.opencores.org/cvsweb.shtml/jop/java/target/src/common/yaffs2/utils/yramdisk_BlockPointer.java?rev=1.1&content-type=text/x-cvsweb-markup Index: yramdisk_BlockPointer.java =================================================================== package yaffs2.utils; import yaffs2.port.yramdisk_Block; public class yramdisk_BlockPointer { public yramdisk_BlockPointer() { } public yramdisk_BlockPointer(yramdisk_Block value) { dereferenced = value; } public yramdisk_Block dereferenced; }

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.