cctools
|
00001 /* 00002 Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin 00003 Copyright (C) 2005- The University of Notre Dame 00004 This software is distributed under the GNU General Public License. 00005 See the file COPYING for details. 00006 */ 00007 00032 #ifndef CHIRP_RELI_H 00033 #define CHIRP_RELI_H 00034 00035 #include "chirp_types.h" 00036 00037 #include <sys/types.h> 00038 #include <stdio.h> 00039 00058 struct chirp_file *chirp_reli_open(const char *host, const char *path, INT64_T flags, INT64_T mode, time_t stoptime); 00059 00068 INT64_T chirp_reli_close(struct chirp_file *file, time_t stoptime); 00069 00080 INT64_T chirp_reli_pread(struct chirp_file *file, void *buffer, INT64_T length, INT64_T offset, time_t stoptime); 00081 00093 INT64_T chirp_reli_pwrite(struct chirp_file *file, const void *buffer, INT64_T length, INT64_T offset, time_t stoptime); 00094 00105 INT64_T chirp_reli_pread_unbuffered(struct chirp_file *file, void *buffer, INT64_T length, INT64_T offset, time_t stoptime); 00106 00117 INT64_T chirp_reli_pwrite_unbuffered(struct chirp_file *file, const void *buffer, INT64_T length, INT64_T offset, time_t stoptime); 00118 00133 INT64_T chirp_reli_sread(struct chirp_file *file, void *buffer, INT64_T length, INT64_T stride_length, INT64_T stride_skip, INT64_T offset, time_t stoptime); 00134 00149 INT64_T chirp_reli_swrite(struct chirp_file *file, const void *buffer, INT64_T length, INT64_T stride_length, INT64_T stride_skip, INT64_T offset, time_t stoptime); 00150 00159 INT64_T chirp_reli_fstat(struct chirp_file *file, struct chirp_stat *info, time_t stoptime); 00160 00169 INT64_T chirp_reli_fstatfs(struct chirp_file *file, struct chirp_statfs *info, time_t stoptime); 00170 00180 INT64_T chirp_reli_fchown(struct chirp_file *file, INT64_T uid, INT64_T gid, time_t stoptime); 00181 00191 INT64_T chirp_reli_fchmod(struct chirp_file *file, INT64_T mode, time_t stoptime); 00192 00200 INT64_T chirp_reli_ftruncate(struct chirp_file *file, INT64_T length, time_t stoptime); 00201 00211 INT64_T chirp_reli_flush(struct chirp_file *file, time_t stoptime); 00212 00213 INT64_T chirp_reli_fsync(struct chirp_file *file, time_t stoptime); 00214 00227 INT64_T chirp_reli_getfile(const char *host, const char *path, FILE * stream, time_t stoptime); 00228 00240 INT64_T chirp_reli_getfile_buffer(const char *host, const char *path, char **buffer, time_t stoptime); 00241 00255 INT64_T chirp_reli_putfile(const char *host, const char *path, FILE * stream, INT64_T mode, INT64_T length, time_t stoptime); 00256 00269 INT64_T chirp_reli_putfile_buffer(const char *host, const char *path, const char *buffer, INT64_T mode, INT64_T length, time_t stoptime); 00270 00281 INT64_T chirp_reli_getlongdir(const char *host, const char *path, chirp_longdir_t callback, void *arg, time_t stoptime); 00282 00294 INT64_T chirp_reli_getdir(const char *host, const char *path, chirp_dir_t callback, void *arg, time_t stoptime); 00295 00318 struct chirp_dir *chirp_reli_opendir(const char *host, const char *path, time_t stoptime); 00319 00330 struct chirp_dirent *chirp_reli_readdir(struct chirp_dir *dir); 00331 00340 void chirp_reli_closedir(struct chirp_dir *dir); 00341 00342 /* FIXME document */ 00343 INT64_T chirp_reli_ticket_create(const char *host, char name[CHIRP_PATH_MAX], unsigned bits, time_t stoptime); 00344 INT64_T chirp_reli_ticket_register(const char *host, const char *name, const char *subject, time_t duration, time_t stoptime); 00345 INT64_T chirp_reli_ticket_delete(const char *host, const char *name, time_t stoptime); 00346 INT64_T chirp_reli_ticket_list(const char *host, const char *subject, char ***list, time_t stoptime); 00347 INT64_T chirp_reli_ticket_get(const char *host, const char *name, char **subject, char **ticket, time_t * duration, char ***rights, time_t stoptime); 00348 INT64_T chirp_reli_ticket_modify(const char *host, const char *name, const char *path, const char *aclmask, time_t stoptime); 00349 00359 INT64_T chirp_reli_getacl(const char *host, const char *path, chirp_dir_t callback, void *arg, time_t stoptime); 00360 00370 INT64_T chirp_reli_setacl(const char *host, const char *path, const char *subject, const char *rights, time_t stoptime); 00371 00380 INT64_T chirp_reli_resetacl(const char *host, const char *path, const char *rights, time_t stoptime); 00381 00390 INT64_T chirp_reli_locate(const char *host, const char *path, chirp_loc_t callback, void *arg, time_t stoptime); 00391 00400 INT64_T chirp_reli_whoami(const char *host, char *subject, INT64_T length, time_t stoptime); 00401 00412 INT64_T chirp_reli_whoareyou(const char *host, const char *rhost, char *subject, INT64_T length, time_t stoptime); 00413 00423 INT64_T chirp_reli_mkfifo(const char *host, const char *path, time_t stoptime); 00424 00432 INT64_T chirp_reli_unlink(const char *host, const char *path, time_t stoptime); 00433 00442 INT64_T chirp_reli_rename(const char *host, const char *path, const char *newpath, time_t stoptime); 00443 00452 INT64_T chirp_reli_link(const char *host, const char *path, const char *newpath, time_t stoptime); 00453 00462 INT64_T chirp_reli_symlink(const char *host, const char *path, const char *newpath, time_t stoptime); 00463 00473 INT64_T chirp_reli_readlink(const char *host, const char *path, char *buf, INT64_T length, time_t stoptime); 00474 00475 00484 INT64_T chirp_reli_mkdir(const char *host, const char *path, INT64_T mode, time_t stoptime); 00485 00494 INT64_T chirp_reli_mkdir_recursive(const char *host, const char *path, INT64_T mode, time_t stoptime); 00495 00504 INT64_T chirp_reli_rmdir(const char *host, const char *path, time_t stoptime); 00505 00516 INT64_T chirp_reli_rmall(const char *host, const char *path, time_t stoptime); 00517 00527 INT64_T chirp_reli_stat(const char *host, const char *path, struct chirp_stat *info, time_t stoptime); 00528 00539 INT64_T chirp_reli_lstat(const char *host, const char *path, struct chirp_stat *info, time_t stoptime); 00540 00549 INT64_T chirp_reli_statfs(const char *host, const char *path, struct chirp_statfs *info, time_t stoptime); 00550 00562 INT64_T chirp_reli_access(const char *host, const char *path, INT64_T flags, time_t stoptime); 00563 00575 INT64_T chirp_reli_chmod(const char *host, const char *path, INT64_T mode, time_t stoptime); 00576 00587 INT64_T chirp_reli_chown(const char *host, const char *path, INT64_T uid, INT64_T gid, time_t stoptime); 00588 00599 INT64_T chirp_reli_lchown(const char *host, const char *path, INT64_T uid, INT64_T gid, time_t stoptime); 00600 00609 INT64_T chirp_reli_truncate(const char *host, const char *path, INT64_T length, time_t stoptime); 00610 00620 INT64_T chirp_reli_utime(const char *host, const char *path, time_t actime, time_t modtime, time_t stoptime); 00621 00635 INT64_T chirp_reli_md5(const char *host, const char *path, unsigned char digest[16], time_t stoptime); 00636 00644 INT64_T chirp_reli_remote_debug(const char *host, const char *flag, time_t stoptime); 00645 00659 INT64_T chirp_reli_localpath(const char *host, const char *path, char *localpath, int length, time_t stoptime); 00660 00672 INT64_T chirp_reli_audit(const char *host, const char *path, struct chirp_audit **list, time_t stoptime); 00673 00686 INT64_T chirp_reli_thirdput(const char *host, const char *path, const char *thirdhost, const char *thirdpath, time_t stoptime); 00687 00699 INT64_T chirp_reli_mkalloc(const char *host, const char *path, INT64_T size, INT64_T mode, time_t stoptime); 00700 00712 INT64_T chirp_reli_lsalloc(const char *host, const char *path, char *allocpath, INT64_T * total, INT64_T * inuse, time_t stoptime); 00713 00722 INT64_T chirp_reli_group_create(const char *host, char *group, time_t stoptime); 00723 00733 INT64_T chirp_reli_group_list(const char *host, const char *group, chirp_dir_t callback, void *arg, time_t stoptime); 00734 00743 INT64_T chirp_reli_group_add(const char *host, char *group, char *user, time_t stoptime); 00744 00753 INT64_T chirp_reli_group_remove(const char *host, char *group, char *user, time_t stoptime); 00754 00763 INT64_T chirp_reli_group_lookup(const char *host, const char *group, const char *user, time_t stoptime); 00764 00765 /* Note that these functions are not documented because they are only used for inter-server communications. */ 00766 INT64_T chirp_reli_group_cache_update(const char *host, const char *group, time_t mod_time, time_t stoptime); 00767 INT64_T chirp_reli_group_policy_set(const char *host, char *group, unsigned long int file_duration, unsigned long int dec_duration, time_t stoptime); 00768 INT64_T chirp_reli_group_policy_get(const char *host, const char *group, int *policy, int *file_duration, int *dec_duration, time_t stoptime); 00769 00784 INT64_T chirp_reli_job_begin(const char *host, const char *cwd, const char *input, const char *output, const char *error, const char *cmdline, time_t stoptime); 00785 00797 INT64_T chirp_reli_job_commit(const char *host, INT64_T jobid, time_t stoptime); 00798 00814 INT64_T chirp_reli_job_wait(const char *host, INT64_T jobid, struct chirp_job_state *state, int wait_time, time_t stoptime); 00815 00827 INT64_T chirp_reli_job_kill(const char *host, INT64_T jobid, time_t stoptime); 00828 00840 INT64_T chirp_reli_job_remove(const char *host, INT64_T jobid, time_t stoptime); 00841 00852 INT64_T chirp_reli_job_list(const char *host, chirp_joblist_t callback, void *arg, time_t stoptime); 00853 00869 INT64_T chirp_reli_bulkio(struct chirp_bulkio *list, int count, time_t stoptime); 00870 00878 INT64_T chirp_reli_blocksize_get(); 00879 00887 void chirp_reli_blocksize_set(INT64_T bs); 00888 00896 void chirp_reli_cleanup_before_fork(); 00897 00898 #endif