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

Reply via email to