Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 828 → Rev 829

/shark/trunk/ports/first/first-contract.c
303,7 → 303,7
}
//kern_printf("(SO LK)");
// we need a special implementation for mutex_lock ... additional parameter
return PISTAR_lock(FSF_get_shared_object_level(), &htable[index].mx,TIMESPEC2USEC(&op->wcet) );
return PISTAR_lock(FSF_get_shared_object_level(), &htable[index].mx,TIMESPEC2USEC(&op->wcet));
 
}
 
328,7 → 328,7
 
}
 
void fsf_init_shared_object(fsf_shared_object_t *obj,
int fsf_init_shared_object(fsf_shared_object_t *obj,
fsf_shared_obj_id_t id) {
int index;
int oldindex;
338,9 → 338,15
PISTAR_mutexattr_default(a);
//kern_printf("(SI SO)\n");
f=kern_fsave();
obj->size=0;
index=hash_fun(&id);
//kern_printf("Index %d Hash %d", index, htable[index].id);
 
if (htable[index].id == id) {
kern_frestore(f);
return -1;
}
 
if (htable[index].id>=0) {
oldindex=index;
index = (index + 1) % MAX_HASH_ENTRY;
349,13 → 355,19
// table is full
if (index==oldindex) {
kern_frestore(f);
return;
return -1;
}
}
obj->size=0;
 
mutex_init(&(htable[index]).mx, &a);
htable[index].id=id;
obj->obj_id=id;
kern_frestore(f);
 
return 0;
 
//kern_printf("(EI SO)\n");
}
 
391,13 → 403,16
kern_frestore(f);
return -1;
}
 
//kern_printf("(DO SO)");
obj->size++;
obj->shared_op[i].op_id=op->op_id;
obj->shared_op[i].wcet=op->wcet;
obj->shared_op[i].obj_id=obj->obj_id;
op->obj_id=obj->obj_id;
obj->shared_op[i].op_id = op->op_id;
TIMESPEC_ASSIGN(&obj->shared_op[i].wcet,&op->wcet);
obj->shared_op[i].obj_id = obj->obj_id;
op->obj_id = obj->obj_id;
 
kern_frestore(f);
 
return 0;