Hello all,
I'm pretty new to PVFS2, and now I'm doing a project about implementing
interposed scheduler between the PVFS2 clients and PVFS2 servers to provide
QoS. So I have read some code and doc about the PVFS2 protocols. But for a
couple of days I get confused about one part of the code,
In *src/proto/PINT-le-bytefield.c*, function* lebf_encode_req()*, we have:
*#define CASE(tag,var) \
case tag: encode_PVFS_servreq_##var(p,&req->u.var); break
switch (req->op) {
/* call standard function defined in headers */
CASE(PVFS_SERV_LOOKUP_PATH, lookup_path);
CASE(PVFS_SERV_CREATE, create);
CASE(PVFS_SERV_UNSTUFF, unstuff);
CASE(PVFS_SERV_BATCH_CREATE, batch_create);
CASE(PVFS_SERV_BATCH_REMOVE, batch_remove);
CASE(PVFS_SERV_REMOVE, remove);
......*
This means these functions exist to be called:
*encode_PVFS_servreq_lookup_path(p, &req->u.lookup_path);
encode_PVFS_servreq_create(p, &req->u.create);
......*
But I was confused that I couldn't find the definition of the above
functions anywhere in the code. So can anyone help me to figure out the way
they are defined? (Sorry, this is really a silly question caused by my poor
C language skills ...) Thanks.
Also, I am wondering if some one has a good documentation describing the
PVFS2 network protocols. I would really appreciate it if you can share it
with me.
Thank you very much,
--
Yonggang Liu
Advanced Computing and Information Systems Laboratory
University of Florida
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers