Back to index

im-sdk  12.3.91
fop.h
Go to the documentation of this file.
00001 /*
00002  * fop.h: iml file operation - private header file
00003  */
00004 
00005 #if !defined(IIIMF_FOP_H)
00006 #define IIIMF_FOP_H
00007 
00008 #include <dirent.h>
00009 #include <utime.h>
00010 #include <sys/types.h>
00011 #include <sys/stat.h>
00012 #include <sys/time.h>
00013 #include <sys/uio.h>
00014 
00015 #if defined(__cplusplus)
00016 extern "C" {
00017 #endif /* __cplusplus */
00018 
00019 
00020 typedef struct _fop_file    fop_file_t;
00021 typedef struct _fop_uri            fop_uri_t;
00022 
00023 typedef struct {
00024     char *           le;
00025     int                     type;
00026     void *           owner;
00027     fop_uri_t *             requireuri;
00028     fop_file_t *     file;
00029 } fopc_t;
00030 
00031 
00032 typedef int   (* fop_close_t)(fopc_t *, void *);
00033 typedef void *       (* fop_creat_t)(fopc_t *, const char *, mode_t);
00034 typedef int   (* fop_ftruncate_t)(fopc_t *, void *, off_t);
00035 typedef off_t (* fop_lseek_t)(fopc_t *, void *, off_t, int);
00036 typedef void *       (* fop_open_t)(fopc_t *, const char *, int, mode_t);
00037 typedef ssize_t      (* fop_read_t)(fopc_t *, void *, void *, size_t);
00038 typedef int   (* fop_truncate_t)(fopc_t *, const char *, off_t);
00039 typedef ssize_t      (* fop_write_t)(fopc_t *, void *, const void *, size_t);
00040 
00041 typedef int   (* fop_link_t)(fopc_t *, const char *, const char *);
00042 typedef int   (* fop_readlink_t)(fopc_t *, const char *, char *, size_t);
00043 typedef int   (* fop_rename_t)(fopc_t *, const char *, const char *);
00044 typedef int   (* fop_symlink_t)(fopc_t *, const char *, const char *);
00045 typedef int   (* fop_unlink_t)(fopc_t *, const char *);
00046 
00047 typedef int   (* fop_chmod_t)(fopc_t *, const char *, mode_t);
00048 typedef int   (* fop_chown_t)(fopc_t *, const char *, uid_t, gid_t);
00049 typedef int   (* fop_fchmod_t)(fopc_t *, void *, mode_t);
00050 typedef int   (* fop_fchown_t)(fopc_t *, void *, uid_t, gid_t);
00051 typedef int   (* fop_lchown_t)(fopc_t *, const char *, uid_t, gid_t);
00052 
00053 typedef int   (* fop_utime_t)(fopc_t *, const char *,
00054                             const struct utimbuf *);
00055 typedef int   (* fop_utimes_t)(fopc_t *, const char *,
00056                              const struct timeval *);
00057 
00058 typedef int   (* fop_fstat_t)(fopc_t *, void *, struct stat *);
00059 typedef int   (* fop_lstat_t)(fopc_t *, const char *, struct stat *);
00060 typedef int   (* fop_stat_t)(fopc_t *, const char *, struct stat *);
00061 typedef int   (* fop_access_t)(fopc_t *, const char *, int);
00062 
00063 typedef int   (* fop_closedir_t)(fopc_t *, void *);
00064 typedef void *       (* fop_opendir_t)(fopc_t *, const char *);
00065 typedef struct dirent *     (* fop_readdir_t)(fopc_t *, void *);
00066 typedef void  (* fop_rewinddir_t)(fopc_t *, void *);
00067 typedef void  (* fop_seekdir_t)(fopc_t *, void *, long int);
00068 typedef long int(* fop_telldir_t)(fopc_t *, void *);
00069 
00070 typedef int   (* fop_mkdir_t)(fopc_t *, const char *, mode_t);
00071 typedef int   (* fop_rmdir_t)(fopc_t *, const char *);
00072 
00073 typedef int   (* fop_fcntl_t)(fopc_t *, void *, int, ...);
00074 
00075 #if defined(fop_not_defined)
00076 typedef ssize_t      (* fop_readv_t)(fopc_t *, void *, const struct iovec *, int);
00077 typedef ssize_t      (* fop_writev_t)(fopc_t *, void *, const struct iovec *, int);
00078 typedef long  (* fop_pathconf_t)(fopc_t *, const char *, int);
00079 typedef long  (* fop_fpathconf_t)(fopc_t *, void *, int);
00080 #endif /* fop_not_defined */
00081 
00082 
00083 #if defined(__cplusplus)
00084 }
00085 #endif /* __cplusplus */
00086 
00087 #endif /* !IIIMF_FOP_H */