builtins/file/globus_xio_file_driver.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1999-2006 University of Chicago
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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     /* int                              mode */
00169     GLOBUS_XIO_FILE_SET_MODE,
00170     
00178     /* int *                            mode_out */
00179     GLOBUS_XIO_FILE_GET_MODE,
00180     
00194     /* int                              flags */
00195     GLOBUS_XIO_FILE_SET_FLAGS,
00196     
00204     /* int *                            flags_out */
00205     GLOBUS_XIO_FILE_GET_FLAGS,
00206     
00219     /* globus_off_t                     offset */
00220     GLOBUS_XIO_FILE_SET_TRUNC_OFFSET,
00221     
00229     /* globus_off_t *                   offset_out */
00230     GLOBUS_XIO_FILE_GET_TRUNC_OFFSET,
00231     
00241     /* globus_xio_system_file_t         handle */
00242     GLOBUS_XIO_FILE_SET_HANDLE,
00243     
00252     /* globus_xio_system_file_t *       handle_out */
00253     GLOBUS_XIO_FILE_GET_HANDLE,
00254     
00264     /* globus_bool_t                    use_blocking_io */
00265     GLOBUS_XIO_FILE_SET_BLOCKING_IO,
00266     
00276     /* globus_bool_t *                  use_blocking_io_out */
00277     GLOBUS_XIO_FILE_GET_BLOCKING_IO,
00278     
00293     /* globus_off_t *                   in_out_offset,
00294      * globus_xio_file_whence_t         whence */
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 /* GLOBUS_XIO_FILE_DRIVER_H */

Generated on 25 Nov 2015 for globus_xio by  doxygen 1.4.7