harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ge...@apache.org
Subject svn commit: r350181 [51/198] - in /incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core: ./ depends/ depends/files/ depends/jars/ depends/libs/ depends/libs/linux.IA32/ depends/libs/win.IA32/ depends/oss/ depends/oss/linux.IA32/ depends/oss/win.I...
Date Thu, 01 Dec 2005 06:04:00 GMT
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/natives.cfg Wed Nov 30 21:29:27 2005
@@ -0,0 +1,1193 @@
+# Doxyfile 1.4.4
+
+# Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = "Harmony Class Library Porting"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 1.0
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc/vm_doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of source 
+# files, where putting all generated files in the same directory would otherwise 
+# cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
+# Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = YES
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is used 
+# as the annotated text. Otherwise, the brief description is used as-is. If left 
+# blank, the following values are used ("$name" is automatically replaced with the 
+# name of the entity): "The $name class" "The $name widget" "The $name file" 
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = YES
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
+# only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = NO
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = YES
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = YES
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = NO
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = NO
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = DoxygenNativesLog.txt
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+# The mainpage doc comes from the vminterface folder
+# Note that this affects IMAGE_PATH as well
+INPUT	= \
+		"$(HARMONY_DOC_DIR)/vminterface" \
+		"$(HARMONY_NATIVE_SRC_DIR)/vmi" \
+		"$(HARMONY_NATIVE_SRC_DIR)/archive" \
+		"$(HARMONY_NATIVE_SRC_DIR)/lib" \
+		"$(HARMONY_NATIVE_SRC_DIR)/luni" \
+		"$(HARMONY_NATIVE_SRC_DIR)/math" \
+		"$(HARMONY_NATIVE_SRC_DIR)/port" \
+		"$(HARMONY_NATIVE_SRC_DIR)/thread" \
+		"$(HARMONY_NATIVE_SRC_DIR)/zip" \
+		"$(HARMONY_NATIVE_SRC_DIR)/pool" \
+		"$(HARMONY_NATIVE_SRC_DIR)/include"
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
+
+FILE_PATTERNS          = *.c *.h *.txt
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+# The images come from the vminterface directory.
+# Set the environment variable HARMONY_DOC_DIR to the root doc folder.
+# Note that this affects INPUT as well
+
+IMAGE_PATH             = "$(HARMONY_DOC_DIR)/vminterface"
+
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# ignored.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+# basis.  Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match.  The filters are a list of the form: 
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# is applied to all files.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = "$(HARMONY_DOC_DIR)/hyfooter.txt"
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = "$(HARMONY_DOC_DIR)/hydoxygen.css"
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = "k:\dev\products\HTML Help Workshop\hhc.exe"
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 1
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = "$(HARMONY_NATIVE_SRC_DIR)/include"
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+# Get rid of some of our structural defines
+# Lie about HYVM_STATIC_LINKAGE so that the hystsl functions will appear
+PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS \
+						 HYVM_STATIC_LINKAGE \
+						 PROTOTYPE(arg)=arg \
+						 PVMCALL=*
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse the 
+# parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = doc/kernel_doc/doxy_tag=../../kernel_doc/html
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = doc/vm_doc/doxy_tag
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes that 
+# lay further from the root node will be omitted. Note that setting this option to 
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also 
+# note that a graph may be further truncated if the graph's image dimensions are 
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). 
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
+
+
+

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.gif
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.gif?rev=350181&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.sxd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.sxd?rev=350181&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/packaging.sxd
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterface.txt Wed Nov 30 21:29:27 2005
@@ -0,0 +1,122 @@
+# Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+/**
+\mainpage
+
+<h2>Porting Structure</h2>
+
+The class libraries use a number of external components to make them portable:
+<ul>
+<li>a Virtual Machine (VM),</li>
+<li>platform porting, threading, zip support, and pooling libraries, and</li>
+<li>existing open source floating point
+(<a href="http://www.netlib.org/fdlibm/readme">fdlibm</a>) and
+compression (<a href="http://www.gzip.org/zlib/">zlib</a>) libraries.</li>
+</ul>
+The figure below shows how these components relate to one another and identifies a "VM interface" which
+is explained in the next section.
+
+\image html vmport.gif "Porting Structure"
+\image latex vmport.pdf "Porting Structure"
+
+<h2>Porting to Alternate VMs</h2>
+<br>
+The class libraries are comprised of Java code and JNI native code. One of the design
+objectives of the class libraries enables them to be ported to alternate VMs.
+To support the class libraries, the VM Vendor must implement a C interface known as 
+the <a href="group__VMInterface.html">VM Interface</a> and a
+Java interface consisting of a small number of Java classes known as the
+<a href="../../kernel_doc/html/index.html#KernelJavaClasses">Kernel Java classes</a>.
+
+The Kernel classes are considered part of the VM component since the VM and these
+classes may understand each other's implementations rather than necessarily only using
+each other's external public interfaces.  The VM is responsible for providing the
+implementation of the Kernel classes, although reference implementations of parts of
+these classes are provided as a possible starting point.
+
+The C <a href="group__VMInterface.html">VM Interface</a> exposes VM entry points required by
+the class library JNI natives.
+
+\image html vminterfaces.gif "VM C and Java Interfaces"
+\image latex vminterfaces.pdf "VM C and Java Interfaces"
+
+Implementations of platform porting, threading, compression, and floating point libraries
+are provided with the class library code.  These libraries are described in the
+list of so-called <a href="modules.html">'modules'</a> generated from the source
+ code by doxygen.  A doxygen module is simply a named collection of items from the source code.
+The documented <a href="group__HarmonyNatives.html">Harmony Natives</a>,
+<a href="group__Port.html">Port</a>,
+<a href="group__Thread.html">Thread</a>,
+<a href="group__ZipSupport.html">Zip Support</a>,
+and <a href="group__Pool.html">Pool</a> modules are part of the contribution.
+The <a href="http://www.gzip.org/zlib/">zlib</a> compression library,
+used by the Zip Support, and the <a href="http://www.netlib.org/fdlibm/readme">fdlibm</a>
+floating point library come from existing open source projects.
+
+So the minimum that a VM Vendor must supply is an implementation of the VM Interface
+and Kernel Java Classes.
+
+<h2>Physical Packaging</h2>
+
+The packaging of Harmony code and a VM into executable programs and DLLs is shown
+below with an indication of how these link together.
+
+\image html packaging.gif "Physical Packaging"
+\image latex packaging.pdf "Physical Packaging"
+
+ <a name = "Booting"><h2>Booting</h2>
+
+A launcher is provided that demonstrates the boot sequence for the VM and class library code.
+The sample launcher can be used by any VM that implements the class library and VM interface.
+
+The sequence is shown below:
+
+<ol>
+	<li>\ref CreatePortLib "Create the port library."</li>
+	<li>
+	Load the
+	\ref HarmonyNatives "Natives library" and call
+	\ref jclglob_clear.c::JNI_OnLoad "JNI_OnLoad()"
+	to initialize the library. Note that the
+	\ref HarmonyNatives "VM library" will use the
+	\ref VMInterface "VM Interface".
+	</li>
+	<li>
+    The VM needs to be configured to use the boot classpath.
+	The boot classpath is a list of JAR files which contain the bootstrap Java class library code.
+	The launcher provides a command-line prepend of the kernel (VM-specific) classes to the VM
+    by specifying -Xbootclasspath/p to loads the kernel classes from the VM-specific subdirectory
+    of jre\bin.
+	The boot sequence configures the bootstrap class path in the JNI_OnLoad() function and
+    updates the "com.ibm.oti.system.class.path" system property using the
+	\ref VMInterface "VM Interface". Currently this is accomplished by reading the bootstrap
+    entries from the <i>bootclasspath.properties</i> file located in the
+	<i>jre/lib/boot</i> directory.
+    </li>
+	<li>
+	The VM should create the system ThreadGroup by calling 
+	the \ref java::lang::ThreadGroup::ThreadGroup "ThreadGroup constructor", and stores
+	it in a private field of java.lang.Thread.
+	</li>
+	<li>
+	The VM calls a private 
+	java.lang.Thread constructor to initialize a new Thread.
+	This constructor creates the "main" ThreadGroup by calling this
+	\ref java::lang::ThreadGroup::ThreadGroup "ThreadGroup constructor", 
+	and the rest of the class library is loaded as a side effect
+	of initializing the Thread object.
+	</li>
+</ol>
+*/

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.gif
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.gif?rev=350181&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.sxd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.sxd?rev=350181&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vminterfaces.sxd
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.gif
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.gif?rev=350181&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.sxd
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.sxd?rev=350181&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/doc/vminterface/vmport.sxd
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/README.txt Wed Nov 30 21:29:27 2005
@@ -0,0 +1,3 @@
+The 'java-src' directory contains Java source files and manifest files
+stored under the <class library component>/src and
+<class library component>/META-INF respectively.

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/META-INF/MANIFEST.MF Wed Nov 30 21:29:27 2005
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.harmony.archive 
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Eclipse-JREBundle: true
+Export-Package: java.util.jar, java.util.zip
+Import-Package: java.lang, java.util, java.net, java.io,  java.lang.re
+ f, java.lang.reflect, java.security, java.security.cert, java.nio, ja
+ va.nio.charset, com.ibm.oti.util
+Bundle-Name: Harmony Archive
+Require-Bundle: org.apache.harmony.luni,
+ org.apache.harmony.nio,
+ org.apache.harmony.nio_char,
+ org.apache.harmony.security

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/Attributes.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,341 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * The Attributes class is used to store values for Manifest entries. Attributes
+ * keys are genrerally instances of Attributes.Name. Values associated with
+ * Attributes keys are of type String.
+ */
+public class Attributes implements Cloneable, Map {
+
+	protected Map map;
+
+	public static class Name {
+		private String name;
+
+		private int hashCode;
+
+		public static final Name CLASS_PATH = new Name("Class-Path", false);
+
+		public static final Name MANIFEST_VERSION = new Name(
+				"Manifest-Version", false);
+
+		public static final Name MAIN_CLASS = new Name("Main-Class", false);
+
+		public static final Name SIGNATURE_VERSION = new Name(
+				"Signature-Version", false);
+
+		public static final Name CONTENT_TYPE = new Name("Content-Type", false);
+
+		public static final Name SEALED = new Name("Sealed", false);
+
+		public static final Name IMPLEMENTATION_TITLE = new Name(
+				"Implementation-Title", false);
+
+		public static final Name IMPLEMENTATION_VERSION = new Name(
+				"Implementation-Version", false);
+
+		public static final Name IMPLEMENTATION_VENDOR = new Name(
+				"Implementation-Vendor", false);
+
+		public static final Name SPECIFICATION_TITLE = new Name(
+				"Specification-Title", false);
+
+		public static final Name SPECIFICATION_VERSION = new Name(
+				"Specification-Version", false);
+
+		public static final Name SPECIFICATION_VENDOR = new Name(
+				"Specification-Vendor", false);
+
+		public static final Name EXTENSION_LIST = new Name("Extension-List",
+				false);
+
+		public static final Name EXTENSION_NAME = new Name("Extension-Name",
+				false);
+
+		public static final Name EXTENSION_INSTALLATION = new Name(
+				"Extension-Installation", false);
+
+		public static final Name IMPLEMENTATION_VENDOR_ID = new Name(
+				"Implementation-Vendor-Id", false);
+
+		public static final Name IMPLEMENTATION_URL = new Name(
+				"Implementation-URL", false);
+
+		public Name(String s) {
+			int i = s.length();
+			if (i == 0)
+				throw new IllegalArgumentException();
+			for (; --i >= 0;) {
+				char ch = s.charAt(i);
+				if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
+						|| ch == '_' || ch == '-' || (ch >= '0' && ch <= '9')))
+					throw new IllegalArgumentException(s);
+			}
+			name = s;
+		}
+
+		Name(String s, boolean ignored) {
+			name = s;
+		}
+
+		public String toString() {
+			return name;
+		}
+
+		public boolean equals(Object an) {
+			if (an == null)
+				return false;
+			return an.getClass() == this.getClass()
+					&& name.equalsIgnoreCase(((Name) an).name);
+		}
+
+		public int hashCode() {
+			if (hashCode == 0)
+				hashCode = name.toLowerCase().hashCode();
+			return hashCode;
+		}
+	}
+
+	/**
+	 * Constructs an Attributes instance
+	 */
+	public Attributes() {
+		map = new HashMap();
+	}
+
+	/**
+	 * Constructs an Attributes instance obtaining keys and values from the
+	 * parameter Attributes, attrib
+	 * 
+	 * @param attrib
+	 *            The Attributes to obtain entries from.
+	 */
+	public Attributes(Attributes attrib) {
+		map = (Map) ((HashMap) attrib.map).clone();
+	}
+
+	/**
+	 * Constructs an Attributes instance with initial capacity of size size
+	 * 
+	 * @param size
+	 *            Initial size of this Attributes instance.
+	 */
+	public Attributes(int size) {
+		map = new HashMap(size);
+	}
+
+	/**
+	 * Removes all key/value pairs from this Attributes.
+	 * 
+	 */
+	public void clear() {
+		map.clear();
+	}
+
+	/**
+	 * Determines whether this Attributes contains the specified key
+	 * 
+	 * 
+	 * @param key
+	 *            The key to search for.
+	 * @return true if the key is found, false otherwise
+	 */
+	public boolean containsKey(Object key) {
+		return map.containsKey(key);
+	}
+
+	/**
+	 * Determines whether this Attributes contains the specified value
+	 * 
+	 * @param value
+	 *            The value to search for.
+	 * @return true if the value is found, false otherwise
+	 */
+	public boolean containsValue(Object value) {
+		return map.containsValue(value);
+	}
+
+	/**
+	 * Returns a set containing MapEntry's for each of the key/value pairs
+	 * contained in this Attributes.
+	 * 
+	 * @return a set of MapEntry's
+	 */
+	public Set entrySet() {
+		return map.entrySet();
+	}
+
+	/**
+	 * Returns the value associated with the parameter key
+	 * 
+	 * @param key
+	 *            The key to search for.
+	 * @return Object associated with key, or null if key does not exist.
+	 */
+	public Object get(Object key) {
+		return map.get(key);
+	}
+
+	/**
+	 * Determines whether this Attributes contains any keys
+	 * 
+	 * @return true if one or more keys exist, false otherwise
+	 */
+	public boolean isEmpty() {
+		return map.isEmpty();
+	}
+
+	/**
+	 * Returns a Set containing all the keys found in this Attributes.
+	 * 
+	 * @return a Set of all keys
+	 */
+	public Set keySet() {
+		return map.keySet();
+	}
+
+	/**
+	 * Store value value in this Attributes and associate it with key key.
+	 * 
+	 * @param key
+	 *            The key to associate with value.
+	 * @param value
+	 *            The value to sotre in this Attributes
+	 * @return The value being stored
+	 * 
+	 * @exception ClassCastException
+	 *                when key is not an Attributes.Name or value is not a
+	 *                String
+	 */
+	public Object put(Object key, Object value) {
+		return map.put(key, value);
+	}
+
+	/**
+	 * putAll method comment.
+	 */
+	public void putAll(Map attrib) {
+		this.map.putAll(attrib);
+	}
+
+	/**
+	 * Deletes the key/value pair with key key from this Attributes.
+	 * 
+	 * @param key
+	 *            The key to remove
+	 * @return the valuse associated with the removed key, null if not present.
+	 */
+	public Object remove(Object key) {
+		return map.remove(key);
+	}
+
+	/**
+	 * Returns the number of key.value pairs associated with this Attributes.
+	 * 
+	 * @return the size of this Attributes
+	 */
+	public int size() {
+		return map.size();
+	}
+
+	/**
+	 * Returns a Colletion of all the values present in this Attributes.
+	 * 
+	 * @return a Collection of all values present
+	 */
+	public Collection values() {
+		return map.values();
+	}
+
+	public Object clone() {
+		Attributes clone;
+		try {
+			clone = (Attributes) super.clone();
+		} catch (CloneNotSupportedException e) {
+			return null;
+		}
+		clone.map = (Map) ((HashMap) this.map).clone();
+		return clone;
+	}
+
+	/**
+	 * Returns the hashCode of this Attributes
+	 * 
+	 * @return the hashCode of this Object.
+	 */
+	public int hashCode() {
+		return map.hashCode();
+	}
+
+	/**
+	 * Determines if this Attributes and the parameter Attributes are equal. Two
+	 * Attributes instances are equal if they contain the same keys and values.
+	 * 
+	 * @return true if the Attributes are equals, false otherwise
+	 */
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj instanceof Attributes)
+			return map.equals(((Attributes) obj).map);
+		return false;
+	}
+
+	/**
+	 * Returns the value associated with the parameter Attributes.Name key.
+	 * 
+	 * @param name
+	 *            The key to obtain the value for.
+	 * @return the String associated with name, or null if name is not a valid
+	 *         key
+	 */
+	public String getValue(Attributes.Name name) {
+		return (String) map.get(name);
+	}
+
+	/**
+	 * Returns the String associated with the parameter name.
+	 * 
+	 * @param name
+	 *            The key to obtain the value for.
+	 * @return the String associated with name, or null if name is not a valid
+	 *         key
+	 */
+	public String getValue(String name) {
+		return (String) map.get(new Attributes.Name(name));
+	}
+
+	/**
+	 * Stores value val against key name in this Attributes
+	 * 
+	 * @param name
+	 *            The key to store against.
+	 * @param val
+	 *            The value to store in this Attributes
+	 * @return the Value being stored
+	 */
+	public String putValue(String name, String val) {
+		return (String) map.put(new Attributes.Name(name), val);
+	}
+}

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/InitManifest.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,254 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UTFDataFormatException;
+import java.security.AccessController;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import com.ibm.oti.util.Msg;
+import com.ibm.oti.util.PriviAction;
+import com.ibm.oti.util.Util;
+
+class InitManifest {
+	private byte[] inbuf = new byte[1024];
+
+	private int inbufCount = 0, inbufPos = 0;
+
+	private byte[] buffer = new byte[5];
+
+	private char[] charbuf = new char[0];
+
+	private ByteArrayOutputStream out = new ByteArrayOutputStream(256);
+
+	private String encoding;
+
+	private boolean usingUTF8 = true;
+
+	private Map attributeNames = new HashMap();
+
+	InitManifest(InputStream is, Attributes main, Map entries, Map chunks,
+			String verString) throws IOException {
+		encoding = (String) AccessController.doPrivileged(new PriviAction(
+				"manifest.read.encoding"));
+		if ("".equals(encoding)) {
+			encoding = null;
+		}
+
+		Attributes current = main;
+		ArrayList list = new ArrayList();
+		readLines(is, list);
+		Iterator it = list.iterator();
+		while (it.hasNext())
+			addAttribute((String) it.next(), current);
+
+		// Check for version attribute
+		if (verString != null && main.getValue(verString) == null)
+			throw new IOException(Msg.getString("K0009", verString));
+
+		list.clear();
+		byte[] chunk = null;
+		while (chunks == null ? readLines(is, list) : (chunk = nextChunk(is,
+				list)) != null) {
+			it = list.iterator();
+			String line = (String) it.next();
+			if (line.length() < 7
+					|| !line.substring(0, 5).toLowerCase().equals("name:"))
+				throw new IOException(Msg.getString("K000a"));
+			// Name: length required space char
+			String name = line.substring(6, line.length());
+			current = new Attributes(12);
+			if (chunks != null)
+				chunks.put(name, chunk);
+			entries.put(name, current);
+			while (it.hasNext())
+				addAttribute((String) it.next(), current);
+			list.clear();
+		}
+
+	}
+
+	private void addLine(int length, List lines) throws IOException {
+		if (encoding != null) {
+			lines.add(new String(buffer, 0, length, encoding));
+		} else {
+			if (usingUTF8) {
+				try {
+					if (charbuf.length < length)
+						charbuf = new char[length];
+					lines.add(Util.convertUTF8WithBuf(buffer, charbuf, 0,
+							length));
+				} catch (UTFDataFormatException e) {
+					usingUTF8 = false;
+				}
+			}
+			if (!usingUTF8) {
+				if (charbuf.length < length)
+					charbuf = new char[length];
+				// If invalid UTF8, convert bytes to chars setting the upper
+				// bytes to zeros				
+				int charOffset = 0;
+				int offset = 0;
+				for (int i = length; --i >= 0;) {
+					charbuf[charOffset++] = (char) ((int) buffer[offset++] & 0xff);
+				}		
+				lines.add(new String(charbuf, 0, length));
+			}
+		}
+	}
+
+	private byte[] nextChunk(InputStream in, List lines) throws IOException {
+		if (inbufCount == -1)
+			return null;
+		byte next;
+		int pos = 0;
+		boolean blankline = false, lastCr = false;
+		out.reset();
+		while (true) {
+			if (inbufPos == inbufCount) {
+				if ((inbufCount = in.read(inbuf)) == -1) {
+					if (out.size() == 0)
+						return null;
+					if (blankline)
+						addLine(pos, lines);
+					return out.toByteArray();
+				}
+				inbufPos = 0;
+			}
+			next = inbuf[inbufPos++];
+			if (lastCr) {
+				if (next != '\n') {
+					inbufPos--;
+					next = '\r';
+				} else
+					out.write('\r');
+				lastCr = false;
+			} else if (next == '\r') {
+				lastCr = true;
+				continue;
+			}
+			if (blankline) {
+				if (next == ' ') {
+					out.write(next);
+					blankline = false;
+					continue;
+				}
+				addLine(pos, lines);
+				if (next == '\n') {
+					out.write(next);
+					return out.toByteArray();
+				}
+				pos = 0;
+			} else if (next == '\n') {
+				if (out.size() == 0)
+					continue;
+				out.write(next);
+				blankline = true;
+				continue;
+			}
+			blankline = false;
+			out.write(next);
+			if (pos == buffer.length) {
+				byte[] newBuf = new byte[buffer.length * 2];
+				System.arraycopy(buffer, 0, newBuf, 0, buffer.length);
+				buffer = newBuf;
+			}
+			buffer[pos++] = next;
+		}
+	}
+
+	private boolean readLines(InputStream in, List lines) throws IOException {
+		if (inbufCount == -1)
+			return false;
+		byte next;
+		int pos = 0;
+		boolean blankline = false, lastCr = false;
+		while (true) {
+			if (inbufPos == inbufCount) {
+				if ((inbufCount = in.read(inbuf)) == -1) {
+					if (blankline)
+						addLine(pos, lines);
+					return lines.size() != 0;
+				}
+				inbufPos = 0;
+			}
+			next = inbuf[inbufPos++];
+			if (lastCr) {
+				if (next != '\n') {
+					inbufPos--;
+					next = '\r';
+				}
+				lastCr = false;
+			} else if (next == '\r') {
+				lastCr = true;
+				continue;
+			}
+			if (blankline) {
+				if (next == ' ') {
+					blankline = false;
+					continue;
+				}
+				addLine(pos, lines);
+				if (next == '\n')
+					return true;
+				pos = 0;
+			} else if (next == '\n') {
+				if (pos == 0 && lines.size() == 0)
+					continue;
+				blankline = true;
+				continue;
+			}
+			blankline = false;
+			if (pos == buffer.length) {
+				byte[] newBuf = new byte[buffer.length * 2];
+				System.arraycopy(buffer, 0, newBuf, 0, buffer.length);
+				buffer = newBuf;
+			}
+			buffer[pos++] = next;
+		}
+	}
+
+	/* Get the next attribute and add it */
+	private void addAttribute(String line, Attributes current)
+			throws IOException {
+		String header;
+		int hdrIdx = line.indexOf(':');
+		if (hdrIdx < 1)
+			throw new IOException(Msg.getString("K000b", line));
+		header = line.substring(0, hdrIdx);
+		Attributes.Name name = (Attributes.Name) attributeNames.get(header);
+		if (name == null) {
+			try {
+				name = new Attributes.Name(header);
+			} catch (IllegalArgumentException e) {
+				throw new IOException(e.toString());
+			}
+			attributeNames.put(header, name);
+		}
+		if (hdrIdx + 1 >= line.length() || line.charAt(hdrIdx + 1) != ' ')
+			throw new IOException(Msg.getString("K000b", line));
+		// +2 due to required SPACE char
+		current.put(name, line.substring(hdrIdx + 2, line.length()));
+	}
+}

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarEntry.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,93 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.io.IOException;
+import java.security.cert.Certificate;
+import java.util.zip.ZipEntry;
+
+public class JarEntry extends ZipEntry {
+	private Attributes attributes;
+
+	JarFile parentJar;
+
+	Certificate certificates[];
+
+	/**
+	 * Create a new JarEntry named name
+	 * 
+	 * @param name
+	 *            The name of the new JarEntry
+	 */
+	public JarEntry(String name) {
+		super(name);
+	}
+
+	/**
+	 * Create a new JarEntry using the values obtained from entry.
+	 * 
+	 * @param entry
+	 *            The ZipEntry to obtain values from.
+	 */
+	public JarEntry(ZipEntry entry) {
+		super(entry);
+	}
+
+	/**
+	 * Returns the Attributes object associated with this entry or null if none
+	 * exists.
+	 * 
+	 * @return java.util.jar.Attributes Attributes for this entry
+	 * @exception java.io.IOException
+	 *                If an error occurs obtaining the Attributes
+	 */
+	public Attributes getAttributes() throws IOException {
+		if (attributes != null || parentJar == null)
+			return attributes;
+		Manifest manifest = parentJar.getManifest();
+		if (manifest == null)
+			return null;
+		return attributes = manifest.getAttributes(getName());
+	}
+
+	/**
+	 * Returns an array of Certificate Objects associated with this entry or
+	 * null if none exist.
+	 * 
+	 * @return java.security.cert.Certificate[] Certificates for this entry
+	 */
+	public Certificate[] getCertificates() {
+		return certificates;
+	}
+
+	void setAttributes(Attributes attrib) {
+		attributes = attrib;
+	}
+
+	/**
+	 * Create a new JarEntry using the values obtained from je.
+	 * 
+	 * @param je
+	 *            The JarEntry to obtain values from
+	 */
+	public JarEntry(JarEntry je) {
+		super(je);
+		parentJar = je.parentJar;
+		attributes = je.attributes;
+		certificates = je.certificates;
+	}
+}

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/java-src/archive/src/java/util/jar/JarException.java Wed Nov 30 21:29:27 2005
@@ -0,0 +1,45 @@
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.util.jar;
+
+
+import java.util.zip.ZipException;
+
+/**
+ * This runtime exception is thrown when a problem occurrs while reading a JAR
+ * file.
+ * 
+ */
+public class JarException extends ZipException {
+
+	/**
+	 * Constructs a new instance of this class with its walkback filled in.
+	 */
+	public JarException() {
+		super();
+	}
+
+	/**
+	 * Constructs a new instance of this class with its walkback and message
+	 * filled in.
+	 * 
+	 * @param detailMessage
+	 *            String The detail message for the exception.
+	 */
+	public JarException(String detailMessage) {
+		super(detailMessage);
+	}
+}



Mime
View raw message