PatchSet 7294 Date: 2006/05/23 16:27:27 Author: robilad Branch: HEAD Tag: (none) Log: resynced with gnu classpath
Members: ChangeLog:1.4798->1.4799 external/gcc/fastjar/fastjar.1:1.2->1.3 libraries/clib/nio/Makefile.am:1.20->1.21 libraries/clib/nio/Makefile.in:1.102->1.103 libraries/clib/nio/gnu_java_nio_VMChannel.c:INITIAL->1.1 libraries/clib/target/generic/target_generic_network.h:1.3->1.4 libraries/javalib/Makefile.am:1.427->1.428 libraries/javalib/Makefile.in:1.533->1.534 libraries/javalib/external/classpath/ChangeLog:1.27->1.28 libraries/javalib/external/classpath/INSTALL:1.3->1.4 libraries/javalib/external/classpath/NEWS:1.10->1.11 libraries/javalib/external/classpath/README:1.1->1.2 libraries/javalib/external/classpath/THANKYOU:1.1->1.2 libraries/javalib/external/classpath/aclocal.m4:1.16->1.17 libraries/javalib/external/classpath/config.guess:1.19->1.20 libraries/javalib/external/classpath/config.sub:1.33->1.34 libraries/javalib/external/classpath/configure:1.26->1.27 libraries/javalib/external/classpath/ltmain.sh:1.19->1.20 libraries/javalib/external/classpath/doc/hacking.info:1.6->1.7 libraries/javalib/external/classpath/doc/tools.info:1.1->1.2 libraries/javalib/external/classpath/doc/tools.texinfo:1.1->1.2 libraries/javalib/external/classpath/doc/vmintegration.info:1.13->1.14 libraries/javalib/external/classpath/external/sax/org/xml/sax/AttributeList.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/Attributes.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ContentHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/DTDHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/DocumentHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/EntityResolver.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ErrorHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/HandlerBase.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/InputSource.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/Locator.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/Parser.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXException.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXParseException.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/XMLFilter.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/XMLReader.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/package.html:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Attributes2.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/DeclHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Locator2.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/package.html:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/NewInstance.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java:1.27->1.28 libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/package.html:1.27->1.28 libraries/javalib/external/classpath/gnu/java/awt/font/opentype/NameDecoder.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java:1.2->1.3 libraries/javalib/external/classpath/gnu/java/awt/peer/gtk/GdkGraphics.java:1.5->1.6 libraries/javalib/external/classpath/gnu/java/awt/print/JavaPrinterGraphics.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/awt/print/JavaPrinterJob.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/awt/print/PostScriptGraphics2D.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/IndexListParser.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/net/loader/FileResource.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/FileURLLoader.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/JarURLLoader.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/JarURLResource.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/RemoteResource.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/RemoteURLLoader.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/Resource.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/URLLoader.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/net/loader/URLStreamHandlerCache.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/nio/PipeImpl.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/nio/SelectorImpl.java:1.2->1.3 libraries/javalib/external/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java:INITIAL->1.1 libraries/javalib/external/classpath/gnu/java/nio/channels/FileChannelImpl.java:1.3->1.4 libraries/javalib/external/classpath/gnu/java/security/OID.java:1.1->1.2 libraries/javalib/external/classpath/gnu/java/security/hash/MD4.java:1.2->1.3 libraries/javalib/external/classpath/gnu/java/security/prng/PRNGFactory.java:1.1->1.2 libraries/javalib/external/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java:1.2->1.3 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/Entry.java:1.1->1.2 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java:1.1->1.2 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/GnuPrivateKeyring.java:1.2->1.3 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java:1.2->1.3 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java:1.1->1.2 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java:1.2->1.3 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/PasswordEncryptedEntry.java:1.2->1.3 libraries/javalib/external/classpath/gnu/javax/crypto/keyring/PrivateKeyEntry.java:1.2->1.3 libraries/javalib/external/classpath/gnu/javax/imageio/jpeg/DCT.java:1.1->1.2 libraries/javalib/external/classpath/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.java:1.1->1.2 libraries/javalib/external/classpath/gnu/javax/imageio/jpeg/ZigZag.java:1.1->1.2 libraries/javalib/external/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h:1.1->1.2 libraries/javalib/external/classpath/include/gnu_java_nio_VMChannel.h:INITIAL->1.1 libraries/javalib/external/classpath/java/awt/Font.java:1.1->1.2 libraries/javalib/external/classpath/java/awt/Graphics2D.java:1.1->1.2 libraries/javalib/external/classpath/java/awt/GraphicsConfiguration.java:1.2->1.3 libraries/javalib/external/classpath/java/awt/LightweightDispatcher.java:1.3->1.4 libraries/javalib/external/classpath/java/awt/TexturePaint.java:1.2->1.3 libraries/javalib/external/classpath/java/awt/Toolkit.java:1.5->1.6 libraries/javalib/external/classpath/java/awt/Window.java:1.5->1.6 libraries/javalib/external/classpath/java/awt/font/GlyphMetrics.java:1.2->1.3 libraries/javalib/external/classpath/java/awt/font/GlyphVector.java:1.2->1.3 libraries/javalib/external/classpath/java/awt/font/GraphicAttribute.java:1.2->1.3 libraries/javalib/external/classpath/java/awt/font/ImageGraphicAttribute.java:1.2->1.3 libraries/javalib/external/classpath/java/awt/font/ShapeGraphicAttribute.java:1.2->1.3 libraries/javalib/external/classpath/java/beans/beancontext/BeanContextSupport.java:1.4->1.5 libraries/javalib/external/classpath/java/io/ObjectInputStream.java:1.4->1.5 libraries/javalib/external/classpath/java/io/ObjectOutputStream.java:1.7->1.8 libraries/javalib/external/classpath/java/io/ObjectStreamClass.java:1.4->1.5 libraries/javalib/external/classpath/java/io/ObjectStreamConstants.java:1.2->1.3 libraries/javalib/external/classpath/java/io/OutputStream.java:1.1->1.2 libraries/javalib/external/classpath/java/lang/Thread.java:1.6->1.7 libraries/javalib/external/classpath/java/net/URLClassLoader.java:1.8->1.9 libraries/javalib/external/classpath/java/nio/CharBuffer.java:1.1->1.2 libraries/javalib/external/classpath/java/nio/channels/FileChannel.java:1.2->1.3 libraries/javalib/external/classpath/java/text/NumberFormat.java:1.1->1.2 libraries/javalib/external/classpath/java/util/jar/JarOutputStream.java:1.1->1.2 libraries/javalib/external/classpath/java/util/jar/Manifest.java:1.3->1.4 libraries/javalib/external/classpath/javax/imageio/stream/ImageInputStreamImpl.java:1.2->1.3 libraries/javalib/external/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java:1.2->1.3 libraries/javalib/external/classpath/javax/naming/Context.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/ContextNotEmptyException.java:1.2->1.3 libraries/javalib/external/classpath/javax/naming/InitialContext.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/NameParser.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/NamingEnumeration.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/PartialResultException.java:1.2->1.3 libraries/javalib/external/classpath/javax/naming/Reference.java:1.2->1.3 libraries/javalib/external/classpath/javax/naming/Referenceable.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/SizeLimitExceededException.java:1.2->1.3 libraries/javalib/external/classpath/javax/naming/spi/InitialContextFactory.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/spi/InitialContextFactoryBuilder.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/spi/NamingManager.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/spi/ObjectFactory.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/spi/ObjectFactoryBuilder.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/spi/ResolveResult.java:1.2->1.3 libraries/javalib/external/classpath/javax/naming/spi/Resolver.java:1.1->1.2 libraries/javalib/external/classpath/javax/naming/spi/StateFactory.java:1.1->1.2 libraries/javalib/external/classpath/javax/swing/CellRendererPane.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/DefaultButtonModel.java:1.2->1.3 libraries/javalib/external/classpath/javax/swing/DefaultDesktopManager.java:1.4->1.5 libraries/javalib/external/classpath/javax/swing/JCheckBoxMenuItem.java:1.2->1.3 libraries/javalib/external/classpath/javax/swing/JComponent.java:1.12->1.13 libraries/javalib/external/classpath/javax/swing/JFileChooser.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/JLabel.java:1.4->1.5 libraries/javalib/external/classpath/javax/swing/JList.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/JMenu.java:1.6->1.7 libraries/javalib/external/classpath/javax/swing/JMenuItem.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/JOptionPane.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/JPopupMenu.java:1.4->1.5 libraries/javalib/external/classpath/javax/swing/JTabbedPane.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/JTable.java:1.9->1.10 libraries/javalib/external/classpath/javax/swing/KeyboardManager.java:1.2->1.3 libraries/javalib/external/classpath/javax/swing/ProgressMonitor.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/RepaintManager.java:1.9->1.10 libraries/javalib/external/classpath/javax/swing/border/AbstractBorder.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/border/BevelBorder.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/border/CompoundBorder.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/border/TitledBorder.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicComboBoxUI.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicComboPopup.java:1.6->1.7 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicSliderUI.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTableUI.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTextUI.java:1.10->1.11 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicToolBarUI.java:1.4->1.5 libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTreeUI.java:1.8->1.9 libraries/javalib/external/classpath/javax/swing/plaf/metal/MetalBorders.java:1.6->1.7 libraries/javalib/external/classpath/javax/swing/plaf/metal/MetalButtonUI.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java:1.8->1.9 libraries/javalib/external/classpath/javax/swing/plaf/metal/MetalSliderUI.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/table/AbstractTableModel.java:1.1->1.2 libraries/javalib/external/classpath/javax/swing/table/DefaultTableModel.java:1.3->1.4 libraries/javalib/external/classpath/javax/swing/table/TableCellEditor.java:1.1->1.2 libraries/javalib/external/classpath/javax/swing/table/TableCellRenderer.java:1.1->1.2 libraries/javalib/external/classpath/javax/swing/text/AbstractDocument.java:1.9->1.10 libraries/javalib/external/classpath/javax/swing/text/AbstractWriter.java:1.1->1.2 libraries/javalib/external/classpath/javax/swing/text/FieldView.java:1.6->1.7 libraries/javalib/external/classpath/javax/swing/text/GapContent.java:1.8->1.9 libraries/javalib/external/classpath/javax/swing/text/JTextComponent.java:1.7->1.8 libraries/javalib/external/classpath/javax/swing/text/StyleContext.java:1.5->1.6 libraries/javalib/external/classpath/javax/swing/text/html/HTMLDocument.java:1.9->1.10 libraries/javalib/external/classpath/javax/swing/text/html/MinimalHTMLWriter.java:INITIAL->1.1 libraries/javalib/external/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:1.4->1.5 libraries/javalib/external/classpath/native/jni/java-net/javanet.c:1.4->1.5 libraries/javalib/external/classpath/native/jni/java-nio/Makefile.am:1.2->1.3 libraries/javalib/external/classpath/native/jni/java-nio/Makefile.in:1.20->1.21 libraries/javalib/external/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c:INITIAL->1.1 libraries/javalib/external/classpath/native/target/generic/target_generic_network.h:1.2->1.3 libraries/javalib/external/classpath/resource/gnu/classpath/tools/getopt/Messages.properties:INITIAL->1.1 libraries/javalib/external/classpath/resource/gnu/classpath/tools/jar/messages.properties:INITIAL->1.1 libraries/javalib/external/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:1.1->1.2(DEAD) libraries/javalib/external/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties:INITIAL->1.1 libraries/javalib/external/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties:1.1->1.2(DEAD) libraries/javalib/external/classpath/resource/gnu/classpath/tools/keytool/messages.properties:INITIAL->1.1 libraries/javalib/external/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties:INITIAL->1.1 libraries/javalib/external/classpath/resource/gnu/classpath/tools/serialver/messages.properties:INITIAL->1.1 libraries/javalib/external/classpath/resource/gnu/regexp/MessagesBundle_it.properties:1.27->1.28 libraries/javalib/external/classpath/scripts/classpath.spec.in:1.27->1.28 libraries/javalib/external/classpath/tools/Makefile.am:1.5->1.6 libraries/javalib/external/classpath/tools/Makefile.in:1.8->1.9 libraries/javalib/external/classpath/tools/jarsigner.sh.in:1.1->1.2(DEAD) libraries/javalib/external/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/getopt/FileArgumentCallback.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/getopt/Messages.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/getopt/Option.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/getopt/Parser.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Action.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Creator.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Extractor.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Indexer.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Lister.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Main.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Messages.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/Updater.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jar/WorkSet.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jarsigner/Main.java:1.3->1.4 libraries/javalib/external/classpath/tools/gnu/classpath/tools/jarsigner/Messages.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/Command.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/Main.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/Messages.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java:1.1->1.2 libraries/javalib/external/classpath/tools/gnu/classpath/tools/keytool/keytool.txt:1.1->1.2(DEAD) libraries/javalib/external/classpath/tools/gnu/classpath/tools/native2ascii/Messages.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/serialver/Messages.java:INITIAL->1.1 libraries/javalib/external/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java:INITIAL->1.1 libraries/javalib/external/classpath/vm/reference/gnu/java/nio/VMChannel.java:INITIAL->1.1 libraries/javalib/vmspecific/gnu/java/nio/VMChannel.java:INITIAL->1.1 scripts/ltmain.sh:1.23->1.24 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.4798 kaffe/ChangeLog:1.4799 --- kaffe/ChangeLog:1.4798 Mon May 22 15:21:38 2006 +++ kaffe/ChangeLog Tue May 23 16:27:27 2006 @@ -1,3 +1,15 @@ +2006-05-23 Dalibor Topic <[EMAIL PROTECTED]> + + * libraries/clib/nio/Makefile.am(libjavanio_la_SOURCES): + Added gnu_java_nio_VMChannel.c. + + * libraries/clib/nio/gnu_java_nio_VMChannel.c: New file, taken + from GNU Classpath. + + * libraries/clib/target/generic/target_generic_network.h, + libraries/javalib/external/classpath/: + Resynced with GNU Classpath. + 2006-05-22 Dalibor Topic <[EMAIL PROTECTED]> * TODO: Updated after the last Classpath merge. Index: kaffe/external/gcc/fastjar/fastjar.1 diff -u kaffe/external/gcc/fastjar/fastjar.1:1.2 kaffe/external/gcc/fastjar/fastjar.1:1.3 --- kaffe/external/gcc/fastjar/fastjar.1:1.2 Mon Apr 3 22:30:28 2006 +++ kaffe/external/gcc/fastjar/fastjar.1 Tue May 23 16:27:31 2006 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3 .\" .\" Standard preamble: .\" ======================================================================== @@ -129,90 +129,4 @@ .\" ======================================================================== .\" .IX Title "FASTJAR 1" -.TH FASTJAR 1 "2006-02-28" "gcc-4.1.0" "GNU" -.SH "NAME" -fastjar \- archive tool for Java archives -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -fastjar \fB\-ctxu\fR [\fB\s-1OPTIONS\s0\fR] [\fIjar-file\fR] [\fImanifest-file\fR] [\fB\-C\fR \fIdir\fR] \fIfiles\fR... -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\f(CW\*(C`fastjar\*(C'\fR is an implementation of Sun's jar utility that comes with -the \s-1JDK\s0, written entirely in C, and runs in a fraction of the time while -being feature compatible. -.PP -If any file is a directory then it is processed recursively. The -manifest file name and the archive file name needs to be specified in -the same order the \fB\-m\fR and \fB\-f\fR flags are specified. -.SH "OPTIONS" -.IX Header "OPTIONS" -Exactly one of the following actions must be specified: -.IP "\fB\-c\fR" 4 -.IX Item "-c" -Create new archive. -.IP "\fB\-t\fR" 4 -.IX Item "-t" -List table of contents for archive. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -Extract named (or all) files from archive. -.IP "\fB\-u\fR" 4 -.IX Item "-u" -Update existing archive. -.PP -The following parameters are optional: -.IP "[EMAIL PROTECTED]" 4 -.IX Item "-@" -Read the names of the files to add to the archive from stdin. This -option is supported only in combination with \fB\-c\fR or \fB\-u\fR. -Non standard option added in the \s-1GCC\s0 version. -.IP "\fB\-C\fR \fIdirectory\fR" 4 -.IX Item "-C directory" -Change to the \fIdirectory\fR and include the following file. -.IP "\fB\-E\fR" 4 -.IX Item "-E" -Prevent fastjar from reading the content of a directory when specifying -one (and instead relying on the provided list of files to populate the -archive with regard to the directory entry). Non standard option added -in the \s-1GCC\s0 version. -.IP "\fB\-M\fR" 4 -.IX Item "-M" -Do not create a manifest file for the entries. -.IP "\fB\-i\fR" 4 -.IX Item "-i" -Generate an index of the packages in this jar and its Class-Path -(currently a no-op for jar command-line compatibility). -.IP "\fB\-0\fR" 4 -.IX Item "-0" -Store only; use no \s-1ZIP\s0 compression. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Display version information. -.IP "\fB\-f\fR \fIarchive\fR" 4 -.IX Item "-f archive" -Specify archive file name. -.IP "\fB\-m\fR \fImanifest\fR" 4 -.IX Item "-m manifest" -Include manifest information from specified \fImanifest\fR file. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -Generate verbose output on standard output. -.PP -All remaining options are considered to be names of files. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIgcj\fR\|(1), \fIgij\fR\|(1), \fIgrepjar\fR\|(1) -and the Info entry for \fIgcj\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (C) 2002 Matthias Klose -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. A copy of the license is included in the -man page \fIgpl\fR\|(7). +.TH FASTJAR 1 "2006-04-04" "[EMAIL PROTECTED]@" "GNU" Index: kaffe/libraries/clib/nio/Makefile.am diff -u kaffe/libraries/clib/nio/Makefile.am:1.20 kaffe/libraries/clib/nio/Makefile.am:1.21 --- kaffe/libraries/clib/nio/Makefile.am:1.20 Mon Dec 12 02:36:30 2005 +++ kaffe/libraries/clib/nio/Makefile.am Tue May 23 16:27:31 2006 @@ -29,6 +29,7 @@ gnu_java_nio_charset_iconv_IconvDecoder.c \ gnu_java_nio_charset_iconv_IconvEncoder.c \ gnu_java_nio_channels_FileChannelImpl.c \ + gnu_java_nio_VMChannel.c \ gnu_java_nio_VMSelector.c \ gnu_java_nio_VMPipe.c Index: kaffe/libraries/clib/nio/Makefile.in diff -u kaffe/libraries/clib/nio/Makefile.in:1.102 kaffe/libraries/clib/nio/Makefile.in:1.103 --- kaffe/libraries/clib/nio/Makefile.in:1.102 Tue Feb 7 21:47:50 2006 +++ kaffe/libraries/clib/nio/Makefile.in Tue May 23 16:27:31 2006 @@ -90,6 +90,7 @@ libjavanio_la-gnu_java_nio_charset_iconv_IconvDecoder.lo \ libjavanio_la-gnu_java_nio_charset_iconv_IconvEncoder.lo \ libjavanio_la-gnu_java_nio_channels_FileChannelImpl.lo \ + libjavanio_la-gnu_java_nio_VMChannel.lo \ libjavanio_la-gnu_java_nio_VMSelector.lo \ libjavanio_la-gnu_java_nio_VMPipe.lo libjavanio_la_OBJECTS = $(am_libjavanio_la_OBJECTS) @@ -403,6 +404,7 @@ gnu_java_nio_charset_iconv_IconvDecoder.c \ gnu_java_nio_charset_iconv_IconvEncoder.c \ gnu_java_nio_channels_FileChannelImpl.c \ + gnu_java_nio_VMChannel.c \ gnu_java_nio_VMSelector.c \ gnu_java_nio_VMPipe.c @@ -481,6 +483,7 @@ distclean-compile: -rm -f *.tab.c [EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @@ -544,6 +547,13 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gnu_java_nio_channels_FileChannelImpl.c' object='libjavanio_la-gnu_java_nio_channels_FileChannelImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjavanio_la_CFLAGS) $(CFLAGS) -c -o libjavanio_la-gnu_java_nio_channels_FileChannelImpl.lo `test -f 'gnu_java_nio_channels_FileChannelImpl.c' || echo '$(srcdir)/'`gnu_java_nio_channels_FileChannelImpl.c + +libjavanio_la-gnu_java_nio_VMChannel.lo: gnu_java_nio_VMChannel.c [EMAIL PROTECTED]@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjavanio_la_CFLAGS) $(CFLAGS) -MT libjavanio_la-gnu_java_nio_VMChannel.lo -MD -MP -MF "$(DEPDIR)/libjavanio_la-gnu_java_nio_VMChannel.Tpo" -c -o libjavanio_la-gnu_java_nio_VMChannel.lo `test -f 'gnu_java_nio_VMChannel.c' || echo '$(srcdir)/'`gnu_java_nio_VMChannel.c; \ [EMAIL PROTECTED]@ then mv -f "$(DEPDIR)/libjavanio_la-gnu_java_nio_VMChannel.Tpo" "$(DEPDIR)/libjavanio_la-gnu_java_nio_VMChannel.Plo"; else rm -f "$(DEPDIR)/libjavanio_la-gnu_java_nio_VMChannel.Tpo"; exit 1; fi [EMAIL PROTECTED]@@am__fastdepCC_FALSE@ source='gnu_java_nio_VMChannel.c' object='libjavanio_la-gnu_java_nio_VMChannel.lo' libtool=yes @AMDEPBACKSLASH@ [EMAIL PROTECTED]@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ [EMAIL PROTECTED]@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjavanio_la_CFLAGS) $(CFLAGS) -c -o libjavanio_la-gnu_java_nio_VMChannel.lo `test -f 'gnu_java_nio_VMChannel.c' || echo '$(srcdir)/'`gnu_java_nio_VMChannel.c libjavanio_la-gnu_java_nio_VMSelector.lo: gnu_java_nio_VMSelector.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjavanio_la_CFLAGS) $(CFLAGS) -MT libjavanio_la-gnu_java_nio_VMSelector.lo -MD -MP -MF "$(DEPDIR)/libjavanio_la-gnu_java_nio_VMSelector.Tpo" -c -o libjavanio_la-gnu_java_nio_VMSelector.lo `test -f 'gnu_java_nio_VMSelector.c' || echo '$(srcdir)/'`gnu_java_nio_VMSelector.c; \ =================================================================== Checking out kaffe/libraries/clib/nio/gnu_java_nio_VMChannel.c RCS: /home/cvs/kaffe/kaffe/libraries/clib/nio/gnu_java_nio_VMChannel.c,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/libraries/clib/nio/gnu_java_nio_VMChannel.c Tue May 23 16:43:21 2006 @@ -0,0 +1,525 @@ +/* gnu_java_nio_VMChannel.c - + Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +#include <config.h> +#include <stdlib.h> +#include <errno.h> +#include <unistd.h> +#include <sys/uio.h> +#include <string.h> + +#include <jni.h> +#include <jcl.h> + +#include "gnu_java_nio_VMChannel.h" + +#ifdef HAVE_FCNTL_H +#include <fcntl.h> +#endif /* HAVE_FCNTL_H */ + +#define IO_EXCEPTION "java/io/IOException" +#define NON_READABLE_CHANNEL_EXCEPTION "java/nio/channels/NonReadableChannelException" +#define NON_WRITABLE_CHANNEL_EXCEPTION "java/nio/channels/NonWritableChannelException" + +/* + * Limit to maximum of 16 buffers + */ +#define JCL_IOV_MAX 16 + +#ifdef __cplusplus +extern "C" +{ +#endif + +enum JCL_buffer_type { DIRECT, ARRAY, UNKNOWN }; + +struct JCL_buffer +{ + enum JCL_buffer_type type; + jbyte *ptr; + jint offset; + jint position; + jint limit; + jint count; +}; + +jmethodID get_method_id(JNIEnv *, jclass, const char *, const char *); +void JCL_print_buffer(JNIEnv *, struct JCL_buffer *); +int JCL_init_buffer(JNIEnv *, struct JCL_buffer *, jobject); +void JCL_release_buffer(JNIEnv *, struct JCL_buffer *, jobject, jint); +void JCL_cleanup_buffers(JNIEnv *, struct JCL_buffer *, jint, jobjectArray, jint, jlong); + +static jfieldID address_fid; +static jmethodID get_position_mid; +static jmethodID set_position_mid; +static jmethodID get_limit_mid; +static jmethodID set_limit_mid; +static jmethodID has_array_mid; +static jmethodID array_mid; +static jmethodID array_offset_mid; + +jmethodID +get_method_id(JNIEnv *env, jclass clazz, const char *name, + const char *sig) +{ + jmethodID mid = (*env)->GetMethodID(env, clazz, name, sig); + if (mid == NULL) + { + JCL_ThrowException(env, "java/lang/InternalError", name); + return NULL; + } + + return mid; +} + +void +JCL_print_buffer(JNIEnv *env __attribute__((__unused__)), struct JCL_buffer *buf) +{ + fprintf(stdout, "Buffer - type: %d, ptr: %p\n", buf->type, buf->ptr); + fflush(stdout); +} + + +int +JCL_init_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf) +{ + jobject address = (*env)->GetObjectField(env, bbuf, address_fid); + + buf->position = (*env)->CallIntMethod(env, bbuf, get_position_mid); + buf->limit = (*env)->CallIntMethod(env, bbuf, get_limit_mid); + buf->offset = 0; + buf->count = 0; + buf->type = UNKNOWN; + + if (address != NULL) + { + buf->ptr = (jbyte *) JCL_GetRawData(env, address); + buf->type = DIRECT; + (*env)->DeleteLocalRef(env, address); + } + else + { + jboolean has_array; + has_array = (*env)->CallBooleanMethod(env, bbuf, has_array_mid); + + if (has_array == JNI_TRUE) + { + jbyteArray arr; + buf->offset = (*env)->CallIntMethod(env, bbuf, array_offset_mid); + arr = (*env)->CallObjectMethod(env, bbuf, array_mid); + buf->ptr = (*env)->GetByteArrayElements(env, arr, 0); + buf->type = ARRAY; + (*env)->DeleteLocalRef(env, arr); + } + else + { + return -1; + } + } + + return 0; +} + +void +JCL_release_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf, + jint action) +{ + jbyteArray arr; + + /* Set the position to the appropriate value */ + if (buf->count > 0) + { + jobject bbufTemp; + bbufTemp = (*env)->CallObjectMethod(env, bbuf, set_position_mid, + buf->position + buf->count); + (*env)->DeleteLocalRef(env, bbufTemp); + } + + switch (buf->type) + { + case DIRECT: + break; + case ARRAY: + arr = (*env)->CallObjectMethod(env, bbuf, array_mid); + (*env)->ReleaseByteArrayElements(env, arr, buf->ptr, action); + (*env)->DeleteLocalRef(env, arr); + break; + case UNKNOWN: + /* TODO: Handle buffers that are not direct or array backed */ + break; + } +} + +void +JCL_cleanup_buffers(JNIEnv *env, + struct JCL_buffer *bi_list, + jint vec_len, + jobjectArray bbufs, + jint offset, + jlong num_bytes) +{ + jint i; + + /* Update all of the bbufs with the approriate information */ + for (i = 0; i < vec_len; i++) + { + struct JCL_buffer* buf; + jobject bbuf; + + buf = &bi_list[i]; + bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i); + + if (num_bytes > (buf->limit - buf->position)) + buf->count = (buf->limit - buf->position); + else + buf->count = num_bytes; + + num_bytes -= buf->count; + + JCL_release_buffer(env, buf, bbuf, JNI_ABORT); + (*env)->DeleteLocalRef(env, bbuf); + } +} + + +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_initIDs (JNIEnv *env, + jclass clazz __attribute__ ((__unused__))) +{ + jclass bufferClass = JCL_FindClass(env, "java/nio/Buffer"); + jclass byteBufferClass = JCL_FindClass(env, "java/nio/ByteBuffer"); + + address_fid = (*env)->GetFieldID(env, bufferClass, "address", + "Lgnu/classpath/Pointer;"); + if (address_fid == NULL) + { + JCL_ThrowException(env, "java/lang/InternalError", + "Unable to find internal field"); + return; + } + + get_position_mid = get_method_id(env, bufferClass, "position", "()I"); + set_position_mid = get_method_id(env, bufferClass, "position", + "(I)Ljava/nio/Buffer;"); + get_limit_mid = get_method_id(env, bufferClass, "limit", "()I"); + set_limit_mid = get_method_id(env, bufferClass, "limit", + "(I)Ljava/nio/Buffer;"); + has_array_mid = get_method_id(env, byteBufferClass, "hasArray", "()Z"); + array_mid = get_method_id(env, byteBufferClass, "array", "()[B"); + array_offset_mid = get_method_id(env, byteBufferClass, "arrayOffset", "()I"); +} + +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jboolean blocking) +{ + int opts; + + opts = fcntl(fd, F_GETFL); + if (opts < 0) + { + JCL_ThrowException(env, IO_EXCEPTION, + "Failed to get flags for file desriptor"); + return; + } + + if (blocking) + opts |= O_NONBLOCK; + else + opts &= ~(O_NONBLOCK); + + opts = fcntl(fd, F_SETFL, opts); + + if (opts < 0) + { + JCL_ThrowException(env, IO_EXCEPTION, + "Failed to set flags for file desriptor"); + return; + } +} + + +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_read (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jobject bbuf) +{ + jint len; + ssize_t result; + struct JCL_buffer buf; + + if (JCL_init_buffer(env, &buf, bbuf) < 0) + { + /* TODO: Rethrown exception */ + JCL_ThrowException (env, IO_EXCEPTION, "Buffer initialisation failed"); + return -1; + } + + len = buf.limit - buf.position; + + result = read(fd, &(buf.ptr[buf.position + buf.offset]), len); + buf.count = result; + + if (result == 0) + result = -1; /* End Of File */ + else if (result == -1) + { + buf.count = 0; + if (errno == EAGAIN) /* Non-blocking */ + result = 0; + else if (errno == EBADF) /* Bad fd */ + { + JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); + JCL_ThrowException (env, NON_READABLE_CHANNEL_EXCEPTION, + strerror(errno)); + return -1; + } + else + { + JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); + JCL_ThrowException (env, IO_EXCEPTION, strerror(errno)); + return -1; + } + } + else + + JCL_release_buffer(env, &buf, bbuf, JNI_COMMIT); + + return result; +} + +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_write (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jobject bbuf) +{ + jint len; + ssize_t result; + struct JCL_buffer buf; + + if (JCL_init_buffer(env, &buf, bbuf) < 0) + { + /* TODO: Rethrown exception */ + JCL_ThrowException (env, IO_EXCEPTION, "Buffer initialisation failed"); + return -1; + } + + len = buf.limit - buf.position; + + result = write(fd, &(buf.ptr[buf.position + buf.offset]), len); + buf.count = result; + + if (result == -1) + { + if (errno == EAGAIN) /* Non-blocking */ + result = 0; + else + { + JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); + JCL_ThrowException(env, IO_EXCEPTION, strerror(errno)); + return -1; + } + } + + JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); + + return result; +} + + +/* + * Implementation of a scattering read. Will use the appropriate + * vector based read call (currently readv on Linux). + * + * This has a limit to the number of buffers that will be read. It + * will not make muliple readv calls. This is to ensure that operations + * are atomic. Currently it is limited to 16 buffers. This is for + * compatibiliy with Sun. + */ +JNIEXPORT jlong JNICALL +Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jobjectArray bbufs, + jint offset, + jint length) +{ + jint i; +/* jboolean is_error = JNI_FALSE; */ +/* char *error_msg; */ + struct iovec buffers[JCL_IOV_MAX]; + struct JCL_buffer bi_list[JCL_IOV_MAX]; + ssize_t result; + jint vec_len = length < JCL_IOV_MAX ? length : JCL_IOV_MAX; + jlong bytes_read = 0; + + /* Build the vector of buffers to read into */ + for (i = 0; i < vec_len; i++) + { + struct JCL_buffer* buf; + jobject bbuf; + + buf = &bi_list[i]; + bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i); + + JCL_init_buffer(env, buf, bbuf); + + buffers[i].iov_base = &(buf->ptr[buf->position + buf->offset]); + buffers[i].iov_len = buf->limit - buf->position; + (*env)->DeleteLocalRef(env, bbuf); + } + + /* Work the scattering magic */ + result = readv(fd, buffers, vec_len); + bytes_read = (jlong) result; + + /* Handle the response */ + if (result < 0) + { + if (errno == EAGAIN) /* Non blocking */ + result = 0; + else if (errno == EBADF) /* Bad fd */ + { + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read); + JCL_ThrowException (env, NON_READABLE_CHANNEL_EXCEPTION, + strerror(errno)); + return -1; + } + else + { + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read); + JCL_ThrowException (env, IO_EXCEPTION, strerror(errno)); + return -1; + } + bytes_read = 0; + } + else if (result == 0) /* EOF */ + { + result = -1; + } + + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read); + + return (jlong) result; +} + +/* + * Implementation of a gathering write. Will use the appropriate + * vector based read call (currently readv on Linux). + * + * This has a limit to the number of buffers that will be read. It + * will not make muliple readv calls. This is to ensure that operations + * are atomic. Currently it is limited to 16 buffers. This is for + * compatibiliy with Sun. + */ +JNIEXPORT jlong JNICALL +Java_gnu_java_nio_VMChannel_writeGathering (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jobjectArray bbufs, + jint offset, + jint length) +{ + int i; +/* jboolean is_error = JNI_FALSE; */ +/* char *error_msg; */ + struct iovec buffers[JCL_IOV_MAX]; + struct JCL_buffer bi_list[JCL_IOV_MAX]; + ssize_t result; + jint vec_len = length < JCL_IOV_MAX ? length : JCL_IOV_MAX; + jlong bytes_written; + + + /* Build the vector of buffers to read into */ + for (i = 0; i < vec_len; i++) + { + struct JCL_buffer* buf; + jobject bbuf; + + buf = &bi_list[i]; + bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i); + + JCL_init_buffer(env, buf, bbuf); + + buffers[i].iov_base = &(buf->ptr[buf->position + buf->offset]); + buffers[i].iov_len = buf->limit - buf->position; + (*env)->DeleteLocalRef(env, bbuf); + } + + /* Work the gathering magic */ + result = writev(fd, buffers, vec_len); + bytes_written = (jlong) result; + + if (result < 0) + { + bytes_written = 0; + if (errno == EAGAIN) /* Non blocking */ + result = 0; + else if (errno == EBADF) /* Bad fd */ + { + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, + bytes_written); + JCL_ThrowException (env, NON_WRITABLE_CHANNEL_EXCEPTION, + strerror(errno)); + return -1; + } + else + { + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, + bytes_written); + JCL_ThrowException (env, IO_EXCEPTION, strerror(errno)); + return -1; + } + } + else if (result == 0) /* EOF?? Does this happen on a write */ + result = -1; + + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_written); + return (jlong) result; +} + + + + +#ifdef __cplusplus +} +#endif Index: kaffe/libraries/clib/target/generic/target_generic_network.h diff -u kaffe/libraries/clib/target/generic/target_generic_network.h:1.3 kaffe/libraries/clib/target/generic/target_generic_network.h:1.4 --- kaffe/libraries/clib/target/generic/target_generic_network.h:1.3 Mon May 22 15:21:43 2006 +++ kaffe/libraries/clib/target/generic/target_generic_network.h Tue May 23 16:27:34 2006 @@ -682,8 +682,8 @@ \ __value.tv_sec = flag / 1000; \ __value.tv_usec = (flag % 1000) * 1000; \ - result = ( setsockopt(socketDescriptor, SOL_SOCKET, SO_SNDTIMEO, &__value, sizeof(__value)) | \ - setsockopt(socketDescriptor, SOL_SOCKET, SO_RCVTIMEO, &__value, sizeof(__value)) == 0) ? TARGET_NATIVE_OK : TARGET_NATIVE_ERROR; \ + result = ( (setsockopt(socketDescriptor, SOL_SOCKET, SO_SNDTIMEO, &__value, sizeof(__value)) | \ + setsockopt(socketDescriptor, SOL_SOCKET, SO_RCVTIMEO, &__value, sizeof(__value))) == 0) ? TARGET_NATIVE_OK : TARGET_NATIVE_ERROR; \ } while (0) #endif Index: kaffe/libraries/javalib/Makefile.am diff -u kaffe/libraries/javalib/Makefile.am:1.427 kaffe/libraries/javalib/Makefile.am:1.428 --- kaffe/libraries/javalib/Makefile.am:1.427 Fri Apr 21 01:32:43 2006 +++ kaffe/libraries/javalib/Makefile.am Tue May 23 16:27:34 2006 @@ -209,11 +209,13 @@ vmspecific/gnu/inet/util/SaslOutputStream.java \ vmspecific/gnu/inet/util/SaslPlain.java \ vmspecific/gnu/inet/util/TraceLevel.java \ + vmspecific/gnu/java/lang/VMInstrumentationImpl.java \ vmspecific/gnu/java/net/DNSJavaInetAddressImpl.java \ vmspecific/gnu/java/net/InetAddressImpl.java \ vmspecific/gnu/java/net/PlainDatagramSocketImpl.java \ vmspecific/gnu/java/net/PlainSocketImpl.java \ vmspecific/gnu/java/net/SysInetAddressImpl.java \ + vmspecific/gnu/java/nio/VMChannel.java \ vmspecific/gnu/java/nio/VMPipe.java \ vmspecific/gnu/java/nio/VMSelector.java \ vmspecific/java/io/VMFile.java \ Index: kaffe/libraries/javalib/Makefile.in *** Patch too long, truncated *** _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe