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
00148 #define GLOBUS_XIO_FILE_INVALID_HANDLE GLOBUS_XIO_SYSTEM_INVALID_FILE
00149
00161 typedef enum
00162 {
00176
00177 GLOBUS_XIO_FILE_SET_MODE,
00178
00186
00187 GLOBUS_XIO_FILE_GET_MODE,
00188
00202
00203 GLOBUS_XIO_FILE_SET_FLAGS,
00204
00212
00213 GLOBUS_XIO_FILE_GET_FLAGS,
00214
00227
00228 GLOBUS_XIO_FILE_SET_TRUNC_OFFSET,
00229
00237
00238 GLOBUS_XIO_FILE_GET_TRUNC_OFFSET,
00239
00249
00250 GLOBUS_XIO_FILE_SET_HANDLE,
00251
00260
00261 GLOBUS_XIO_FILE_GET_HANDLE,
00262
00272
00273 GLOBUS_XIO_FILE_SET_BLOCKING_IO,
00274
00284
00285 GLOBUS_XIO_FILE_GET_BLOCKING_IO,
00286
00301
00302
00303 GLOBUS_XIO_FILE_SEEK
00304 } globus_xio_file_attr_cmd_t;
00305
00313 typedef enum
00314 {
00316 GLOBUS_XIO_FILE_CREAT = O_CREAT,
00318 GLOBUS_XIO_FILE_EXCL = O_EXCL,
00320 GLOBUS_XIO_FILE_RDONLY = O_RDONLY,
00322 GLOBUS_XIO_FILE_WRONLY = O_WRONLY,
00324 GLOBUS_XIO_FILE_RDWR = O_RDWR,
00326 GLOBUS_XIO_FILE_TRUNC = O_TRUNC,
00328 GLOBUS_XIO_FILE_APPEND = O_APPEND,
00329 #ifdef TARGET_ARCH_CYGWIN
00330 GLOBUS_XIO_FILE_BINARY = O_BINARY,
00331 GLOBUS_XIO_FILE_TEXT = O_TEXT
00332 #else
00333
00334 GLOBUS_XIO_FILE_BINARY = 0,
00336 GLOBUS_XIO_FILE_TEXT = 0
00337 #endif
00338 } globus_xio_file_flag_t;
00339
00350 typedef enum
00351 {
00353 GLOBUS_XIO_FILE_IRWXU = S_IRWXU,
00355 GLOBUS_XIO_FILE_IRUSR = S_IRUSR,
00357 GLOBUS_XIO_FILE_IWUSR = S_IWUSR,
00359 GLOBUS_XIO_FILE_IXUSR = S_IXUSR,
00361 GLOBUS_XIO_FILE_IRWXO = S_IRWXO,
00363 GLOBUS_XIO_FILE_IROTH = S_IROTH,
00365 GLOBUS_XIO_FILE_IWOTH = S_IWOTH,
00367 GLOBUS_XIO_FILE_IXOTH = S_IXOTH,
00369 GLOBUS_XIO_FILE_IRWXG = S_IRWXG,
00371 GLOBUS_XIO_FILE_IRGRP = S_IRGRP,
00373 GLOBUS_XIO_FILE_IWGRP = S_IWGRP,
00375 GLOBUS_XIO_FILE_IXGRP = S_IXGRP
00376 } globus_xio_file_mode_t;
00377
00384 typedef enum
00385 {
00387 GLOBUS_XIO_FILE_SEEK_SET = SEEK_SET,
00389 GLOBUS_XIO_FILE_SEEK_CUR = SEEK_CUR,
00391 GLOBUS_XIO_FILE_SEEK_END = SEEK_END
00392 } globus_xio_file_whence_t;
00393
00394 #ifdef __cplusplus
00395 }
00396 #endif
00397
00398 #endif