Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1527 → Rev 1526

/demos/trunk/loader/shark/fsfinit.c
1,6 → 1,6
#include "kernel/kern.h"
#include "fsf_server.h"
#include "fsf_contract.h"
#include "fsf_server.h"
#include "func.h"
 
extern struct loader_contract loader_contract_list[];
/demos/trunk/loader/shark/shark.c
12,7 → 12,7
extern int total_loader_task;
extern int total_loader_contract;
 
mutex_object mutex_table[MAX_MUTEX];
mutex_t mutex_table[MAX_MUTEX];
int main_chunk;
 
/* Runtime Calibration */
169,12 → 169,14
/* Set the zero_time and post the first activation event */
void start_simulation() {
int i, object;
int i;
struct loader_task *l = loader_task_list;
struct timespec end_time;
PI_mutexattr_t a;
 
PI_mutexattr_default(a);
 
i = 0;
object = 0;
 
#ifdef __NEW_TRACER__
 
193,13 → 195,7
while (i < total_loader_task) {
if (l->muxstatus == 1) {
fsf_init_shared_object(&(mutex_table[l->resource]).object,object);
mutex_table[l->resource].operation.op_id=1;
mutex_table[l->resource].operation.wcet.tv_sec=l->block[i].tv_sec;
mutex_table[l->resource].operation.wcet.tv_nsec=l->block[i].tv_nsec;
fsf_declare_shared_object_operation(&mutex_table[l->resource].object,
&mutex_table[l->resource].object);
 
mutex_init(&mutex_table[l->resource],&a);
l->muxstatus = 2;
}
 
/demos/trunk/loader/shark/func.h
2,18 → 2,10
#define __FUNC_H__
 
#include "kernel/kern.h"
#include "fsf_contract.h"
#include "fsf_server.h"
#include "shark.h"
 
#define OS_SHARK
 
typedef struct {
fsf_shared_object_t object;
fsf_shared_operation_t operation;
} mutex_object;
 
 
#define get_current_exec_task() exec_shadow
/* Return the PID/pthread_t of calling task */
 
92,15 → 84,15
 
/* Mutex */
extern __inline__ void generic_lock_mutex(int res) {
extern mutex_object mutex_table[MAX_MUTEX];
extern mutex_t mutex_table[MAX_MUTEX];
 
fsf_lock_object(&mutex_table[res].operation);
mutex_lock(&mutex_table[res]);
}
 
extern __inline__ void generic_unlock_mutex(int res) {
extern mutex_object mutex_table[MAX_MUTEX];
extern mutex_t mutex_table[MAX_MUTEX];
fsf_unlock_object(&mutex_table[res].operation);
mutex_unlock(&mutex_table[res]);
}
 
/* TASK RUNTIME FUNCTIONS */