00001
00002
00003
00004
00005
00006
00007
00012 #ifndef CHIRP_TYPES_H
00013 #define CHIRP_TYPES_H
00014
00015 #include "int_sizes.h"
00016 #include "chirp_protocol.h"
00017
00018 #include <sys/types.h>
00019 #include <time.h>
00020 #include <fcntl.h>
00021
00029 struct chirp_stat {
00030 INT64_T cst_dev;
00031 INT64_T cst_ino;
00032 INT64_T cst_mode;
00033 INT64_T cst_nlink;
00034 INT64_T cst_uid;
00035 INT64_T cst_gid;
00036 INT64_T cst_rdev;
00037 INT64_T cst_size;
00038 INT64_T cst_blksize;
00039 INT64_T cst_blocks;
00040 INT64_T cst_atime;
00041 INT64_T cst_mtime;
00042 INT64_T cst_ctime;
00043 };
00044
00049 struct chirp_statfs {
00050 INT64_T f_type;
00051 INT64_T f_blocks;
00052 INT64_T f_bavail;
00053 INT64_T f_bsize;
00054 INT64_T f_bfree;
00055 INT64_T f_files;
00056 INT64_T f_ffree;
00057 };
00058
00061 typedef enum {
00062 CHIRP_BULKIO_PREAD,
00063 CHIRP_BULKIO_PWRITE,
00064 CHIRP_BULKIO_SREAD,
00065 CHIRP_BULKIO_SWRITE,
00066 CHIRP_BULKIO_FSTAT,
00067 CHIRP_BULKIO_FSYNC,
00068 } chirp_bulkio_t;
00069
00074 struct chirp_bulkio {
00075 chirp_bulkio_t type;
00076 struct chirp_file *file;
00077 struct chirp_stat *info;
00078 void *buffer;
00079 INT64_T length;
00080 INT64_T stride_length;
00081 INT64_T stride_skip;
00082 INT64_T offset;
00083 INT64_T result;
00084 INT64_T errnum;
00085 };
00086
00091 struct chirp_audit {
00092 char name[CHIRP_PATH_MAX];
00093 INT64_T nfiles;
00094 INT64_T ndirs;
00095 INT64_T nbytes;
00096 };
00097
00102 typedef enum {
00103 CHIRP_JOB_STATE_BEGIN=0,
00104 CHIRP_JOB_STATE_IDLE=1,
00105 CHIRP_JOB_STATE_RUNNING=2,
00106 CHIRP_JOB_STATE_SUSPENDED=3,
00107 CHIRP_JOB_STATE_COMPLETE=4,
00108 CHIRP_JOB_STATE_FAILED=5,
00109 CHIRP_JOB_STATE_KILLED=6,
00110 } chirp_job_state_t;
00111
00116 const char * chirp_job_state_string( chirp_job_state_t state );
00117
00122 struct chirp_job_state {
00123 INT64_T jobid;
00124 char command[CHIRP_PATH_MAX];
00125 char owner[CHIRP_PATH_MAX];
00126 chirp_job_state_t state;
00127 int exit_code;
00128 time_t submit_time;
00129 time_t start_time;
00130 time_t stop_time;
00131 int pid;
00132 };
00133
00142 typedef void (*chirp_dir_t) ( const char *path, void *arg );
00143
00153 typedef void (*chirp_longdir_t) ( const char *path, struct chirp_stat *info, void *arg );
00154
00163 typedef void (*chirp_joblist_t) ( struct chirp_job_state *state, void *arg );
00164
00165 #endif