14 #define _XOPEN_SOURCE 700 23 #include "sion_error_handler.h" 31 #include "sion_buddy_common.h" 34 #define STR_PRT(X) case X: return # X 35 char* _sion_buddy_role_to_str (
unsigned int flag) {
37 STR_PRT(SION_ROLE_NONE);
38 STR_PRT(SION_ROLE_COLLECTOR);
39 STR_PRT(SION_ROLE_WRITER);
40 STR_PRT(SION_ROLE_SENDER);
41 STR_PRT(SION_ROLE_NOWRITER);
42 STR_PRT(SION_ROLE_READER);
43 STR_PRT(SION_ROLE_NOREADER);
44 STR_PRT(SION_ROLE_COLLECTOR_READER);
45 default:
return(
"undef");
50 #define DFUNCTION "sion_get_io_info_buddy" 52 sion_io_stat_t* sion_get_io_info_buddy(
int sid,
int roles,
int flag) {
58 int p_sid, i, j, b, p_nf, do_count_size;
63 _sion_errorprint(SION_SIZE_NOT_VALID,_SION_ERROR_RETURN,
"invalid sion_filedesc, aborting %d ...\n", sid);
73 for(loop=0; loop<2; loop++) {
78 _sion_errorprint(SION_ID_NOT_VALID,_SION_ERROR_RETURN,
"sion_get_io_info_buddy: cannot allocate io info data structure");
91 if(roles&SION_ROLE_WRITER) {
96 p->names[c]= strdup(sion_filedesc->
fname);
97 p->roles[c]=SION_ROLE_WRITER;
99 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE start sizes\n"));
105 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE end sizes --> %d\n", p->sizes[c]));
112 buddyptr=&buddies[b];
116 if(i==0) p_sid=buddyptr->buddy_send.sid;
117 if(i==1) p_sid=buddyptr->buddy_coll.sid;
121 _sion_errorprint(SION_SIZE_NOT_VALID,_SION_ERROR_RETURN,
"invalid p_sion_filedesc, aborting %d ...\n", p_sid);
128 if(roles&SION_ROLE_SENDER) {
129 if(loop==0) { p_nf++; }
131 p->names[c]= strdup(p_sion_filedesc->
fname);
132 p->roles[c]=SION_ROLE_SENDER;
139 p_sid=buddyptr->buddy_coll.sid;
140 if(p_sion_filedesc->
rank == collector) {
142 if(roles&SION_ROLE_COLLECTOR) {
143 if(loop==0) {p_nf++; }
145 p->names[c]= strdup(p_sion_filedesc->
fname);
146 p->roles[c]=SION_ROLE_COLLECTOR;
153 if(roles&SION_ROLE_NOWRITER) {
154 if(loop==0) { p_nf++; }
156 p->names[c]= strdup(p_sion_filedesc->
fname);
157 p->roles[c]=SION_ROLE_NOWRITER;
168 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE b=%d i=%d start sizes\n", b, i));
174 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE b=%d i=%d end sizes --> %d\n", b, i,p->sizes[c]));
Sion File Descriptor Structure.
int _sion_vcdtype(int sid)
void * _sion_vcdtovcon(int sid)
#define SION_FILEDESCRIPTOR
int _sion_print_filedesc(_sion_filedesc *sion_filedesc, int level, char *desc, int flag)
Print the initialized sion file description.
#define SION_FILEMODE_WRITE
sion_io_stat_t * _sion_alloc_io_info(int p_nf)
allocates an io_info data structure for nfiles files