/[classpath]/classpath/native/jni/java-io/FileDescriptor.c
ViewVC logotype

Diff of /classpath/native/jni/java-io/FileDescriptor.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by rupp, Wed Jul 9 08:14:18 2003 UTC revision 1.13 by rupp, Wed Jul 16 08:21:45 2003 UTC
# Line 83  exception statement from your version. * Line 83  exception statement from your version. *
83  #define CONVERT_JINT_TO_SSIZE_T(x) (x)  #define CONVERT_JINT_TO_SSIZE_T(x) (x)
84    
85  /* These values must be kept in sync with FileDescriptor.java.  */  /* These values must be kept in sync with FileDescriptor.java.  */
86  #define SET     0  #define FILEDESCRIPTOR_FILESEEK_SET          0
87  #define CUR     1  #define FILEDESCRIPTOR_FILESEEK_CUR          1
88  #define END     2  #define FILEDESCRIPTOR_FILESEEK_END          2
89  #define READ    1  
90  #define WRITE   2  #define FILEDESCRIPTOR_FILEOPEN_FLAG_READ    1
91  #define APPEND  4  #define FILEDESCRIPTOR_FILEOPEN_FLAG_WRITE   2
92  #define EXCL    8  #define FILEDESCRIPTOR_FILEOPEN_FLAG_APPEND  4
93  #define SYNC   16  #define FILEDESCRIPTOR_FILEOPEN_FLAG_EXCL    8
94  #define DSYNC  32  #define FILEDESCRIPTOR_FILEOPEN_FLAG_SYNC   16
95    #define FILEDESCRIPTOR_FILEOPEN_FLAG_DSYNC  32
96    
97  /*************************************************************************/  /*************************************************************************/
98    
# Line 147  Java_java_io_FileDescriptor_nativeOpen(J Line 148  Java_java_io_FileDescriptor_nativeOpen(J
148      return(-1); /* Exception will already have been thrown */      return(-1); /* Exception will already have been thrown */
149    
150    /* get file/permission flags for open() */    /* get file/permission flags for open() */
151    if ((jflags & READ) && (jflags & WRITE))    if ((jflags & FILEDESCRIPTOR_FILEOPEN_FLAG_READ) && (jflags & FILEDESCRIPTOR_FILEOPEN_FLAG_WRITE))
152      {      {
153        /* read/write */        /* read/write */
154        flags       = TARGET_NATIVE_FILE_FILEFLAG_CREATE | TARGET_NATIVE_FILE_FILEFLAG_READWRITE;        flags       = TARGET_NATIVE_FILE_FILEFLAG_CREATE | TARGET_NATIVE_FILE_FILEFLAG_READWRITE;
155        permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL;        permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL;
156      }      }
157    else if ((jflags & READ))    else if ((jflags & FILEDESCRIPTOR_FILEOPEN_FLAG_READ))
158      {      {
159        /* read */        /* read */
160        flags       = TARGET_NATIVE_FILE_FILEFLAG_READ;        flags       = TARGET_NATIVE_FILE_FILEFLAG_READ;
# Line 163  Java_java_io_FileDescriptor_nativeOpen(J Line 164  Java_java_io_FileDescriptor_nativeOpen(J
164      {      {
165        /* write */        /* write */
166        flags       = TARGET_NATIVE_FILE_FILEFLAG_CREATE | TARGET_NATIVE_FILE_FILEFLAG_WRITE;        flags       = TARGET_NATIVE_FILE_FILEFLAG_CREATE | TARGET_NATIVE_FILE_FILEFLAG_WRITE;
167        if ((jflags & APPEND))        if ((jflags & FILEDESCRIPTOR_FILEOPEN_FLAG_APPEND))
168          {          {
169             flags |= TARGET_NATIVE_FILE_FILEFLAG_APPEND;             flags |= TARGET_NATIVE_FILE_FILEFLAG_APPEND;
170          }          }
# Line 174  Java_java_io_FileDescriptor_nativeOpen(J Line 175  Java_java_io_FileDescriptor_nativeOpen(J
175        permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL;        permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL;
176      }      }
177    
178    if ((jflags & SYNC))    if ((jflags & FILEDESCRIPTOR_FILEOPEN_FLAG_SYNC))
179      {      {
180        flags |= TARGET_NATIVE_FILE_FILEFLAG_SYNC;        flags |= TARGET_NATIVE_FILE_FILEFLAG_SYNC;
181      }      }
182    
183    if ((jflags & DSYNC))    if ((jflags & FILEDESCRIPTOR_FILEOPEN_FLAG_DSYNC))
184      {      {
185        flags |= TARGET_NATIVE_FILE_FILEFLAG_DSYNC;        flags |= TARGET_NATIVE_FILE_FILEFLAG_DSYNC;
186      }      }
# Line 460  Java_java_io_FileDescriptor_nativeSeek(J Line 461  Java_java_io_FileDescriptor_nativeSeek(J
461                           "Cannot represent position correctly on this system");                           "Cannot represent position correctly on this system");
462        return(JNI_JLONG_CONST_MINUS_1);        return(JNI_JLONG_CONST_MINUS_1);
463      }      }
464  #endif  #endif /* 0 */
465            
466    if (stop_at_eof)    if (stop_at_eof)
467      {      {
# Line 475  Java_java_io_FileDescriptor_nativeSeek(J Line 476  Java_java_io_FileDescriptor_nativeSeek(J
476          }          }
477    
478        /* set file read/write position (seek) */        /* set file read/write position (seek) */
479        if      (whence == SET)        if      (whence == FILEDESCRIPTOR_FILESEEK_SET)
480          {          {
481            if (TARGET_NATIVE_MATH_INT_INT64_GT(offset,file_size))            if (TARGET_NATIVE_MATH_INT_INT64_GT(offset,file_size))
482              offset = file_size;              offset = file_size;
483          }          }
484        else if (whence == CUR)        else if (whence == FILEDESCRIPTOR_FILESEEK_CUR)
485          {          {
486            TARGET_NATIVE_FILE_TELL(native_fd, current_offset, result);            TARGET_NATIVE_FILE_TELL(native_fd, current_offset, result);
487            if (result != TARGET_NATIVE_OK)            if (result != TARGET_NATIVE_OK)
# Line 493  Java_java_io_FileDescriptor_nativeSeek(J Line 494  Java_java_io_FileDescriptor_nativeSeek(J
494            if (TARGET_NATIVE_MATH_INT_INT64_GT(TARGET_NATIVE_MATH_INT_INT64_ADD(current_offset,offset),file_size))            if (TARGET_NATIVE_MATH_INT_INT64_GT(TARGET_NATIVE_MATH_INT_INT64_ADD(current_offset,offset),file_size))
495              {              {
496                offset = file_size;                offset = file_size;
497                whence = SET;                whence = FILEDESCRIPTOR_FILESEEK_SET;
498              }              }
499          }          }
500        else if (TARGET_NATIVE_MATH_INT_INT64_GT(offset,0)) /* Default to END case */        else if (TARGET_NATIVE_MATH_INT_INT64_GT(offset,0)) /* Default to END case */
# Line 505  Java_java_io_FileDescriptor_nativeSeek(J Line 506  Java_java_io_FileDescriptor_nativeSeek(J
506    /* Now do it */    /* Now do it */
507    result = TARGET_NATIVE_ERROR;    result = TARGET_NATIVE_ERROR;
508    new_offset = JNI_JLONG_CONST_MINUS_1;    new_offset = JNI_JLONG_CONST_MINUS_1;
509    if (whence == SET)    if (whence == FILEDESCRIPTOR_FILESEEK_SET)
510      TARGET_NATIVE_FILE_SEEK_BEGIN(native_fd, offset, new_offset, result);      TARGET_NATIVE_FILE_SEEK_BEGIN(native_fd, offset, new_offset, result);
511    if (whence == CUR)    if (whence == FILEDESCRIPTOR_FILESEEK_CUR)
512      TARGET_NATIVE_FILE_SEEK_CURRENT(native_fd, offset, new_offset, result);      TARGET_NATIVE_FILE_SEEK_CURRENT(native_fd, offset, new_offset, result);
513    if (whence == END)    if (whence == FILEDESCRIPTOR_FILESEEK_END)
514      TARGET_NATIVE_FILE_SEEK_END(native_fd, offset, new_offset, result);      TARGET_NATIVE_FILE_SEEK_END(native_fd, offset, new_offset, result);
515    
516    if (result != TARGET_NATIVE_OK)    if (result != TARGET_NATIVE_OK)

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26