50#define chirp_stat_encode(B, info) \
52 buffer_putfstring(B, "%" PRId64, (info)->cst_dev);\
53 buffer_putfstring(B, " %" PRId64, (info)->cst_ino);\
54 buffer_putfstring(B, " %" PRId64, (info)->cst_mode);\
55 buffer_putfstring(B, " %" PRId64, (info)->cst_nlink);\
56 buffer_putfstring(B, " %" PRId64, (info)->cst_uid);\
57 buffer_putfstring(B, " %" PRId64, (info)->cst_gid);\
58 buffer_putfstring(B, " %" PRId64, (info)->cst_rdev);\
59 buffer_putfstring(B, " %" PRId64, (info)->cst_size);\
60 buffer_putfstring(B, " %" PRId64, (info)->cst_blksize);\
61 buffer_putfstring(B, " %" PRId64, (info)->cst_blocks);\
62 buffer_putfstring(B, " %" PRId64, (info)->cst_atime);\
63 buffer_putfstring(B, " %" PRId64, (info)->cst_mtime);\
64 buffer_putfstring(B, " %" PRId64, (info)->cst_ctime);\
82#define chirp_statfs_encode(B, info) \
84 buffer_putfstring(B, "%" PRId64, (info)->f_type);\
85 buffer_putfstring(B, " %" PRId64, (info)->f_bsize);\
86 buffer_putfstring(B, " %" PRId64, (info)->f_blocks);\
87 buffer_putfstring(B, " %" PRId64, (info)->f_bfree);\
88 buffer_putfstring(B, " %" PRId64, (info)->f_bavail);\
89 buffer_putfstring(B, " %" PRId64, (info)->f_files);\
90 buffer_putfstring(B, " %" PRId64, (info)->f_ffree);\
119#define CHIRP_SEARCH struct chirp_searchstream
123#define CHIRP_SEARCH_STOPATFIRST (1<<0)
124#define CHIRP_SEARCH_METADATA (1<<1)
125#define CHIRP_SEARCH_INCLUDEROOT (1<<2)
126#define CHIRP_SEARCH_PERIOD (1<<3)
127#define CHIRP_SEARCH_R_OK (1<<4)
128#define CHIRP_SEARCH_W_OK (1<<5)
129#define CHIRP_SEARCH_X_OK (1<<6)
133#define CHIRP_SEARCH_ERR_OPEN 1
134#define CHIRP_SEARCH_ERR_READ 2
135#define CHIRP_SEARCH_ERR_CLOSE 3
136#define CHIRP_SEARCH_ERR_STAT 4
140#define CHIRP_SEARCH_DELIMITER '|'
141#define CHIRP_SEARCH_DEPTH_MAX 200
217#define PRICHIRP_JOBID_T PRId64
218#define SCNCHIRP_JOBID_T SCNd64
222#define CHIRP_DIGEST_MAX 128
String Buffer Operations.
This file defines the binary values mandated by the Chirp Protocol specification, used by both the cl...
#define CHIRP_PATH_MAX
The maximum length of a full path in any Chirp operation.
Definition chirp_protocol.h:20
void(* chirp_dir_t)(const char *path, void *arg)
A callback function typedef used to display a directory or access control list.
Definition chirp_types.h:190
void(* chirp_loc_t)(const char *location, void *arg)
A callback function typedef used to display a file's location(s).
Definition chirp_types.h:211
void(* chirp_longdir_t)(const char *path, struct chirp_stat *info, void *arg)
A callback function typedef used to display a detailed directory.
Definition chirp_types.h:201
int64_t chirp_jobid_t
The type of Chirp job identifiers.
Definition chirp_types.h:216
chirp_bulkio_t
Describes the type of a bulk I/O operation.
Definition chirp_types.h:145
@ CHIRP_BULKIO_SREAD
Perform a chirp_reli_sread.
Definition chirp_types.h:148
@ CHIRP_BULKIO_FSTAT
Perform a chirp_reli_fstat.
Definition chirp_types.h:150
@ CHIRP_BULKIO_FSYNC
Perform a chirp_reli_fsync.
Definition chirp_types.h:151
@ CHIRP_BULKIO_PREAD
Perform a chirp_reli_pread.
Definition chirp_types.h:146
@ CHIRP_BULKIO_SWRITE
Perform a chirp_reli_swrite.
Definition chirp_types.h:149
@ CHIRP_BULKIO_PWRITE
Perform a chirp_reli_pwrite.
Definition chirp_types.h:147
Descibes the space consumed by a single user on a Chirp server.
Definition chirp_types.h:175
INT64_T nbytes
The total bytes consumed by that user.
Definition chirp_types.h:179
INT64_T ndirs
The number of directories owned by that user.
Definition chirp_types.h:178
INT64_T nfiles
The number of files owned by that user.
Definition chirp_types.h:177
char name[CHIRP_PATH_MAX]
The identity of the user.
Definition chirp_types.h:176
Describes a bulk I/O operation.
Definition chirp_types.h:158
INT64_T offset
Starting offset in file for PREAD, PWRITE, SREAD, and SWRITE.
Definition chirp_types.h:166
INT64_T length
Length of the data, in bytes, for PREAD, WRITE, SREAD, and SWRITE.
Definition chirp_types.h:163
INT64_T result
On completion, contains result of operation.
Definition chirp_types.h:167
INT64_T stride_length
Length of each stride for SREAD and SWRITE.
Definition chirp_types.h:164
INT64_T errnum
On failure, contains the errno for the call.
Definition chirp_types.h:168
struct chirp_stat * info
Pointer to a data buffer for FSTAT.
Definition chirp_types.h:161
INT64_T stride_skip
Distance between start of each stride for SREAD and SWRITE.
Definition chirp_types.h:165
void * buffer
Pointer to data buffer for PREAD, PWRITE, SREAD, and SWRITE.
Definition chirp_types.h:162
chirp_bulkio_t type
The type of I/O to perform.
Definition chirp_types.h:159
struct chirp_file * file
The file to access for all operations.
Definition chirp_types.h:160
Describes a directory entry returned by chirp_reli_readdir.
Definition chirp_types.h:95
char * name
The name of the directory entry.
Definition chirp_types.h:96
int lstatus
The result of lstat on the entry.
Definition chirp_types.h:97
struct chirp_stat info
The properties of the directory entry.
Definition chirp_types.h:98
Describes a result from a search operation.
Definition chirp_types.h:104
struct chirp_stat info
The properties of the matching file.
Definition chirp_types.h:106
char path[CHIRP_PATH_MAX]
Path of the matching file.
Definition chirp_types.h:105
Keeps track of the state of a search stream.
Definition chirp_types.h:113
Describes the properties of a file, much like the Unix stat structure.
Definition chirp_types.h:34
INT64_T cst_nlink
The number of hard links to this file.
Definition chirp_types.h:38
INT64_T cst_blocks
The number of blocks consumed by this file in the file system.
Definition chirp_types.h:44
INT64_T cst_size
The size of the file, in bytes.
Definition chirp_types.h:42
INT64_T cst_dev
The device number on which the file is stored.
Definition chirp_types.h:35
INT64_T cst_atime
The last time the file was accessed, in time_t format.
Definition chirp_types.h:45
INT64_T cst_ctime
The last time the inode was changed, in time_t format.
Definition chirp_types.h:47
INT64_T cst_blksize
The recommended transfer block size for accessing this file.
Definition chirp_types.h:43
INT64_T cst_gid
The Unix GID of the file's group varship.
Definition chirp_types.h:40
INT64_T cst_rdev
The device number, if this represents a device.
Definition chirp_types.h:41
INT64_T cst_mtime
The last time the file data was modified, time_t format.
Definition chirp_types.h:46
INT64_T cst_ino
The inode number of the file.
Definition chirp_types.h:36
INT64_T cst_mode
The Unix mode bits of the file.
Definition chirp_types.h:37
INT64_T cst_uid
The Unix UID of the file's owner.
Definition chirp_types.h:39
Describes the properties of a file system, much like the Unix statfs structure.
Definition chirp_types.h:72
INT64_T f_bfree
The number of blocks free.
Definition chirp_types.h:77
INT64_T f_bsize
The size in bytes of a block.
Definition chirp_types.h:76
INT64_T f_bavail
The number of blocks available to an ordinary user.
Definition chirp_types.h:75
INT64_T f_files
The maximum number of files (inodes) on the filesystem.
Definition chirp_types.h:78
INT64_T f_type
The integer type of the filesystem.
Definition chirp_types.h:73
INT64_T f_blocks
The total number of blocks in the filesystem.
Definition chirp_types.h:74
INT64_T f_ffree
The number of files (inodes) currently in use.
Definition chirp_types.h:79