/* Copyright (C) 1999, 2000  Free Software Foundation

   This file is part of libgcj.

This software is copyrighted work licensed under the terms of the
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
details.  */

package gnu.gcj;

/** A type used to indicate special data used by native code that should not 
    be marked by the garbage collector. */

public final class RawData
{
   private RawData() { }
}
