home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / pvfs2 / orangefs-2.8.3-20110323.tar.gz / orangefs-2.8.3-20110323.tar / orangefs / src / io / bmi / op-list.h < prev    next >
C/C++ Source or Header  |  2007-11-06  |  1KB  |  59 lines

  1. /*
  2.  * (C) 2001 Clemson University and The University of Chicago
  3.  *
  4.  * See COPYING in top-level directory.
  5.  */
  6.  
  7. /* linked list implementation based on quicklist; used for storing network
  8.  * operations 
  9.  *
  10.  * this is provided for use by network method implementations
  11.  */
  12.  
  13. #ifndef __OP_LIST_H
  14. #define __OP_LIST_H
  15.  
  16. #include "quicklist.h"
  17. #include "bmi-types.h"
  18. #include "bmi-method-support.h"
  19.  
  20. typedef struct qlist_head *op_list_p;
  21.  
  22. /* these are the search parameters that may be used */
  23. /* TODO: this is ridiculous; we don't need half of these fields, really;
  24.  * clean it up after the bmi_gm module has been brought up to speed, and
  25.  * break the struct up into op_list_search() arguments.
  26.  */
  27. struct op_list_search_key
  28. {
  29.     bmi_method_addr_p method_addr;
  30.     int method_addr_yes;
  31.     bmi_msg_tag_t msg_tag;
  32.     int msg_tag_yes;
  33.     bmi_op_id_t op_id;
  34.     int op_id_yes;
  35. };
  36.  
  37. int op_list_count(op_list_p olp);
  38. op_list_p op_list_new(void);
  39. void op_list_add(op_list_p olp,
  40.          method_op_p oip);
  41. void op_list_cleanup(op_list_p olp);
  42. void op_list_remove(method_op_p oip);
  43. void op_list_dump(op_list_p olp);
  44. int op_list_empty(op_list_p olp);
  45. method_op_p op_list_shownext(op_list_p olp);
  46. method_op_p op_list_search(op_list_p olp,
  47.                struct op_list_search_key *key);
  48.  
  49. #endif /* __OP_LIST_H */
  50.  
  51. /*
  52.  * Local variables:
  53.  *  c-indent-level: 4
  54.  *  c-basic-offset: 4
  55.  * End:
  56.  *
  57.  * vim: ts=8 sts=4 sw=4 expandtab
  58.  */
  59.