globus_xio  6.5
globus_xio_file_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef GLOBUS_XIO_FILE_DRIVER_H
18 #define GLOBUS_XIO_FILE_DRIVER_H
23 #include "globus_xio_system.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
148 #define GLOBUS_XIO_FILE_INVALID_HANDLE GLOBUS_XIO_SYSTEM_INVALID_FILE
149 
161 typedef enum
162 {
176  /* int mode */
178 
186  /* int * mode_out */
188 
202  /* int flags */
204 
212  /* int * flags_out */
214 
227  /* globus_off_t offset */
229 
237  /* globus_off_t * offset_out */
239 
249  /* globus_xio_system_file_t handle */
251 
260  /* globus_xio_system_file_t * handle_out */
262 
272  /* globus_bool_t use_blocking_io */
274 
284  /* globus_bool_t * use_blocking_io_out */
286 
301  /* globus_off_t * in_out_offset,
302  * globus_xio_file_whence_t whence */
305 
313 typedef enum
314 {
316  GLOBUS_XIO_FILE_CREAT = O_CREAT,
318  GLOBUS_XIO_FILE_EXCL = O_EXCL,
322  GLOBUS_XIO_FILE_WRONLY = O_WRONLY,
324  GLOBUS_XIO_FILE_RDWR = O_RDWR,
326  GLOBUS_XIO_FILE_TRUNC = O_TRUNC,
328  GLOBUS_XIO_FILE_APPEND = O_APPEND,
329 #ifdef TARGET_ARCH_CYGWIN
330  GLOBUS_XIO_FILE_BINARY = O_BINARY,
331  GLOBUS_XIO_FILE_TEXT = O_TEXT
332 #else
337 #endif
339 
350 typedef enum
351 {
353  GLOBUS_XIO_FILE_IRWXU = S_IRWXU,
357  GLOBUS_XIO_FILE_IWUSR = S_IWUSR,
359  GLOBUS_XIO_FILE_IXUSR = S_IXUSR,
361  GLOBUS_XIO_FILE_IRWXO = S_IRWXO,
365  GLOBUS_XIO_FILE_IWOTH = S_IWOTH,
367  GLOBUS_XIO_FILE_IXOTH = S_IXOTH,
369  GLOBUS_XIO_FILE_IRWXG = S_IRWXG,
371  GLOBUS_XIO_FILE_IRGRP = S_IRGRP,
375  GLOBUS_XIO_FILE_IXGRP = S_IXGRP
377 
384 typedef enum
385 {
387  GLOBUS_XIO_FILE_SEEK_SET = SEEK_SET,
389  GLOBUS_XIO_FILE_SEEK_CUR = SEEK_CUR,
393 
394 #ifdef __cplusplus
395 }
396 #endif
397 
398 #endif /* GLOBUS_XIO_FILE_DRIVER_H */
globus_xio_file_attr_cmd_t
Definition: globus_xio_file_driver.h:160
@ GLOBUS_XIO_FILE_SET_BLOCKING_IO
Definition: globus_xio_file_driver.h:195
@ GLOBUS_XIO_FILE_SEEK
Definition: globus_xio_file_driver.h:203
@ GLOBUS_XIO_FILE_GET_HANDLE
Definition: globus_xio_file_driver.h:191
@ GLOBUS_XIO_FILE_GET_TRUNC_OFFSET
Definition: globus_xio_file_driver.h:183
@ GLOBUS_XIO_FILE_GET_MODE
Definition: globus_xio_file_driver.h:167
@ GLOBUS_XIO_FILE_SET_HANDLE
Definition: globus_xio_file_driver.h:187
@ GLOBUS_XIO_FILE_SET_MODE
Definition: globus_xio_file_driver.h:163
@ GLOBUS_XIO_FILE_SET_FLAGS
Definition: globus_xio_file_driver.h:171
@ GLOBUS_XIO_FILE_GET_FLAGS
Definition: globus_xio_file_driver.h:175
@ GLOBUS_XIO_FILE_GET_BLOCKING_IO
Definition: globus_xio_file_driver.h:199
@ GLOBUS_XIO_FILE_SET_TRUNC_OFFSET
Definition: globus_xio_file_driver.h:179
globus_xio_file_flag_t
Definition: globus_xio_file_driver.h:214
globus_xio_file_mode_t
Definition: globus_xio_file_driver.h:251
globus_xio_file_whence_t
Definition: globus_xio_file_driver.h:285
@ GLOBUS_XIO_FILE_TEXT
Definition: globus_xio_file_driver.h:236
@ GLOBUS_XIO_FILE_BINARY
Definition: globus_xio_file_driver.h:234
@ GLOBUS_XIO_FILE_RDWR
Definition: globus_xio_file_driver.h:224
@ GLOBUS_XIO_FILE_APPEND
Definition: globus_xio_file_driver.h:228
@ GLOBUS_XIO_FILE_WRONLY
Definition: globus_xio_file_driver.h:222
@ GLOBUS_XIO_FILE_TRUNC
Definition: globus_xio_file_driver.h:226
@ GLOBUS_XIO_FILE_RDONLY
Definition: globus_xio_file_driver.h:220
@ GLOBUS_XIO_FILE_CREAT
Definition: globus_xio_file_driver.h:216
@ GLOBUS_XIO_FILE_EXCL
Definition: globus_xio_file_driver.h:218
@ GLOBUS_XIO_FILE_IXGRP
Definition: globus_xio_file_driver.h:275
@ GLOBUS_XIO_FILE_IRUSR
Definition: globus_xio_file_driver.h:255
@ GLOBUS_XIO_FILE_IRWXG
Definition: globus_xio_file_driver.h:269
@ GLOBUS_XIO_FILE_IXOTH
Definition: globus_xio_file_driver.h:267
@ GLOBUS_XIO_FILE_IXUSR
Definition: globus_xio_file_driver.h:259
@ GLOBUS_XIO_FILE_IWOTH
Definition: globus_xio_file_driver.h:265
@ GLOBUS_XIO_FILE_IWGRP
Definition: globus_xio_file_driver.h:273
@ GLOBUS_XIO_FILE_IRGRP
Definition: globus_xio_file_driver.h:271
@ GLOBUS_XIO_FILE_IRWXU
Definition: globus_xio_file_driver.h:253
@ GLOBUS_XIO_FILE_IRWXO
Definition: globus_xio_file_driver.h:261
@ GLOBUS_XIO_FILE_IWUSR
Definition: globus_xio_file_driver.h:257
@ GLOBUS_XIO_FILE_IROTH
Definition: globus_xio_file_driver.h:263
@ GLOBUS_XIO_FILE_SEEK_CUR
Definition: globus_xio_file_driver.h:289
@ GLOBUS_XIO_FILE_SEEK_END
Definition: globus_xio_file_driver.h:291
@ GLOBUS_XIO_FILE_SEEK_SET
Definition: globus_xio_file_driver.h:287