00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_XIO_FILE_DRIVER_H
00018 #define GLOBUS_XIO_FILE_DRIVER_H
00019
00023 #include "globus_xio_system.h"
00024
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028
00140 #define GLOBUS_XIO_FILE_INVALID_HANDLE GLOBUS_XIO_SYSTEM_INVALID_FILE
00141
00153 typedef enum
00154 {
00168
00169 GLOBUS_XIO_FILE_SET_MODE,
00170
00178
00179 GLOBUS_XIO_FILE_GET_MODE,
00180
00194
00195 GLOBUS_XIO_FILE_SET_FLAGS,
00196
00204
00205 GLOBUS_XIO_FILE_GET_FLAGS,
00206
00219
00220 GLOBUS_XIO_FILE_SET_TRUNC_OFFSET,
00221
00229
00230 GLOBUS_XIO_FILE_GET_TRUNC_OFFSET,
00231
00241
00242 GLOBUS_XIO_FILE_SET_HANDLE,
00243
00252
00253 GLOBUS_XIO_FILE_GET_HANDLE,
00254
00264
00265 GLOBUS_XIO_FILE_SET_BLOCKING_IO,
00266
00276
00277 GLOBUS_XIO_FILE_GET_BLOCKING_IO,
00278
00293
00294
00295 GLOBUS_XIO_FILE_SEEK
00296 } globus_xio_file_attr_cmd_t;
00297
00305 typedef enum
00306 {
00308 GLOBUS_XIO_FILE_CREAT = O_CREAT,
00310 GLOBUS_XIO_FILE_EXCL = O_EXCL,
00312 GLOBUS_XIO_FILE_RDONLY = O_RDONLY,
00314 GLOBUS_XIO_FILE_WRONLY = O_WRONLY,
00316 GLOBUS_XIO_FILE_RDWR = O_RDWR,
00318 GLOBUS_XIO_FILE_TRUNC = O_TRUNC,
00320 GLOBUS_XIO_FILE_APPEND = O_APPEND,
00321 #ifdef TARGET_ARCH_CYGWIN
00322 GLOBUS_XIO_FILE_BINARY = O_BINARY,
00323 GLOBUS_XIO_FILE_TEXT = O_TEXT
00324 #else
00325
00326 GLOBUS_XIO_FILE_BINARY = 0,
00328 GLOBUS_XIO_FILE_TEXT = 0
00329 #endif
00330 } globus_xio_file_flag_t;
00331
00342 typedef enum
00343 {
00345 GLOBUS_XIO_FILE_IRWXU = S_IRWXU,
00347 GLOBUS_XIO_FILE_IRUSR = S_IRUSR,
00349 GLOBUS_XIO_FILE_IWUSR = S_IWUSR,
00351 GLOBUS_XIO_FILE_IXUSR = S_IXUSR,
00353 GLOBUS_XIO_FILE_IRWXO = S_IRWXO,
00355 GLOBUS_XIO_FILE_IROTH = S_IROTH,
00357 GLOBUS_XIO_FILE_IWOTH = S_IWOTH,
00359 GLOBUS_XIO_FILE_IXOTH = S_IXOTH,
00361 GLOBUS_XIO_FILE_IRWXG = S_IRWXG,
00363 GLOBUS_XIO_FILE_IRGRP = S_IRGRP,
00365 GLOBUS_XIO_FILE_IWGRP = S_IWGRP,
00367 GLOBUS_XIO_FILE_IXGRP = S_IXGRP
00368 } globus_xio_file_mode_t;
00369
00376 typedef enum
00377 {
00379 GLOBUS_XIO_FILE_SEEK_SET = SEEK_SET,
00381 GLOBUS_XIO_FILE_SEEK_CUR = SEEK_CUR,
00383 GLOBUS_XIO_FILE_SEEK_END = SEEK_END
00384 } globus_xio_file_whence_t;
00385
00386 #ifdef __cplusplus
00387 }
00388 #endif
00389
00390 #endif