Nina@166: #include "VMS.h" Nina@166: #include "vmalloc.h" Nina@166: #include "loop.h" Nina@166: Nina@166: bulb new_bulb() { Nina@166: bulb b = VMS__malloc((2*NUM_SCHED_SLOTS + 2)*sizeof(int)); Nina@166: memset(b,0,(2*NUM_SCHED_SLOTS + 2)*sizeof(int)); Nina@166: return b; Nina@166: } Nina@166: Nina@166: void set_bulb_member(bulb b, int i, int vp, int task){ Nina@166: b[2*i]=vp; Nina@166: b[2*i+1]=task; Nina@166: } Nina@166: Nina@166: void set_bulb_core(bulb b, int core){ Nina@166: b[2*NUM_SCHED_SLOTS] = core; Nina@166: } Nina@166: Nina@166: void set_bulb_id(bulb b, int id){ Nina@166: b[2*NUM_SCHED_SLOTS + 1] = id; Nina@166: } Nina@166: Nina@166: void set_loop_file(FILE* file){ Nina@166: loop_file=file; Nina@166: } Nina@166: Nina@166: void print_bulb_to_file(void* _b){ Nina@166: bulb b = (bulb) _b; Nina@166: if(b[2*NUM_SCHED_SLOTS]!=0 || b[2*NUM_SCHED_SLOTS + 1]!=0) Nina@166: fprintf(loop_file,"sync%d_%d [shape=rect];\n",b[2*NUM_SCHED_SLOTS],b[2*NUM_SCHED_SLOTS + 1]); Nina@166: int i; Nina@166: for(i=0;i VP_%d_%d;\n",b[2*NUM_SCHED_SLOTS],b[2*NUM_SCHED_SLOTS + 1],b[2*i],b[2*i+1]); Nina@166: fprintf(loop_file, "VP_%d_%d -> sync%d_%d;\n",b[2*i],b[2*i+1],b[2*NUM_SCHED_SLOTS],b[2*NUM_SCHED_SLOTS + 1] + 1); Nina@166: } Nina@166: } Nina@166: } Nina@166: Nina@166: int prev_slots[NUM_CORES][2*NUM_SCHED_SLOTS]; Nina@166: Nina@166: void print_per_slot_to_file(void* _b){ Nina@166: bulb b = (bulb) _b; Nina@166: int i; Nina@166: for(i=0;i VP_%d_%d;\n",prev_slots[b[2*NUM_SCHED_SLOTS]][2*i],prev_slots[b[2*NUM_SCHED_SLOTS]][2*i+1],b[2*i],b[2*i+1]); Nina@166: } Nina@166: prev_slots[b[2*NUM_SCHED_SLOTS]][2*i] = b[2*i]; Nina@166: prev_slots[b[2*NUM_SCHED_SLOTS]][2*i+1] = b[2*i+1]; Nina@166: } Nina@166: } Nina@166: }