source: trunk/src/gcc/libjava/java/io/natFileDescriptorEcos.cc@ 2

Last change on this file since 2 was 2, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.5 KB
Line 
1// natFileDescriptor.cc - Native part of FileDescriptor class.
2
3/* Copyright (C) 1998, 1999, 2001 Free Software Foundation
4
5 This file is part of libgcj.
6
7This software is copyrighted work licensed under the terms of the
8Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9details. */
10
11#include <config.h>
12
13#include <errno.h>
14#include <string.h>
15#include <sys/types.h>
16#include <sys/stat.h>
17#include <sys/param.h>
18
19#include <gcj/cni.h>
20#include <jvm.h>
21#include <java/io/FileDescriptor.h>
22#include <java/io/SyncFailedException.h>
23#include <java/io/IOException.h>
24#include <java/io/EOFException.h>
25#include <java/lang/ArrayIndexOutOfBoundsException.h>
26#include <java/lang/NullPointerException.h>
27#include <java/lang/String.h>
28#include <java/io/FileNotFoundException.h>
29
30extern "C" void diag_write_char (char c);
31
32static void
33diag_write (char *data, int len)
34{
35 while (len > 0)
36 {
37 diag_write_char (*data++);
38 len--;
39 }
40}
41
42#define NO_FSYNC_MESSAGE "sync unsupported"
43
44void
45java::io::FileDescriptor::init(void)
46{
47 in = new java::io::FileDescriptor(0);
48 out = new java::io::FileDescriptor(1);
49 err = new java::io::FileDescriptor(2);
50}
51
52jboolean
53java::io::FileDescriptor::valid (void)
54{
55 return true;
56}
57
58void
59java::io::FileDescriptor::sync (void)
60{
61 // Some files don't support fsync. We don't bother reporting these
62 // as errors.
63#ifdef HAVE_FSYNC
64#else
65 throw new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE));
66#endif
67}
68
69jint
70java::io::FileDescriptor::open (jstring path, jint jflags)
71{
72 return fd;