21 #include "sion_error_handler.h" 29 #include "sion_buddy_common.h" 32 #define STR_PRT(X) case X: return # X 33 char* _sion_buddy_role_to_str (
unsigned int flag) {
35 STR_PRT(SION_ROLE_NONE);
36 STR_PRT(SION_ROLE_COLLECTOR);
37 STR_PRT(SION_ROLE_WRITER);
38 STR_PRT(SION_ROLE_SENDER);
39 STR_PRT(SION_ROLE_NOWRITER);
40 STR_PRT(SION_ROLE_READER);
41 STR_PRT(SION_ROLE_NOREADER);
42 STR_PRT(SION_ROLE_COLLECTOR_READER);
43 default:
return(
"undef");
48 #define DFUNCTION "sion_get_io_info_buddy" 50 sion_io_stat_t* sion_get_io_info_buddy(
int sid,
int roles,
int flag) {
56 int p_sid, i, j, b, p_nf, do_count_size;
61 _sion_errorprint(SION_SIZE_NOT_VALID,_SION_ERROR_RETURN,
"invalid sion_filedesc, aborting %d ...\n", sid);
71 for(loop=0; loop<2; loop++) {
76 _sion_errorprint(SION_ID_NOT_VALID,_SION_ERROR_RETURN,
"sion_get_io_info_buddy: cannot allocate io info data structure");
89 if(roles&SION_ROLE_WRITER) {
94 p->names[c]= strdup(sion_filedesc->
fname);
95 p->roles[c]=SION_ROLE_WRITER;
97 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE start sizes\n"));
103 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE end sizes --> %d\n", p->sizes[c]));
110 buddyptr=&buddies[b];
114 if(i==0) p_sid=buddyptr->buddy_send.sid;
115 if(i==1) p_sid=buddyptr->buddy_coll.sid;
119 _sion_errorprint(SION_SIZE_NOT_VALID,_SION_ERROR_RETURN,
"invalid p_sion_filedesc, aborting %d ...\n", p_sid);
126 if(roles&SION_ROLE_SENDER) {
127 if(loop==0) { p_nf++; }
129 p->names[c]= strdup(p_sion_filedesc->
fname);
130 p->roles[c]=SION_ROLE_SENDER;
137 p_sid=buddyptr->buddy_coll.sid;
138 if(p_sion_filedesc->
rank == collector) {
140 if(roles&SION_ROLE_COLLECTOR) {
141 if(loop==0) {p_nf++; }
143 p->names[c]= strdup(p_sion_filedesc->
fname);
144 p->roles[c]=SION_ROLE_COLLECTOR;
151 if(roles&SION_ROLE_NOWRITER) {
152 if(loop==0) { p_nf++; }
154 p->names[c]= strdup(p_sion_filedesc->
fname);
155 p->roles[c]=SION_ROLE_NOWRITER;
166 DPRINTFP((32, DFUNCTION, sion_filedesc->
rank,
"BUDDY WRITE b=%d i=%d start sizes\n", b, i));
172 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