Question: So I have the following header file: #if defined(DEBUG) #define DPRINTF(fmt, args...) printf(DEBUG: %s:%d:%s(): fmt, __FILE__, __LINE__, __func__, ##args) #else #define DPRINTF(fmt, args...)

So I have the following header file:

#if defined(DEBUG) #define DPRINTF(fmt, args...) printf("DEBUG: %s:%d:%s(): " fmt, \ __FILE__, __LINE__, __func__, ##args) #else #define DPRINTF(fmt, args...) /* do nothing if not defined*/ #endif

#define MOUSE_EVENT_DEV "/dev/input/event1"

#define NUM_EVENTS 2 #define NUM_MUTEXES 3 #define NUM_THREADS 5 #define TOTAL_TIME 2000 #define TRUE 1 #define FALSE 0

struct Tasks { int task_type; // Periodic or aperiodic task int task_num; int event_key; // Event number to poll on int priority; int period; // Period of periodic task int loop_iter[3]; // loop iterations for computation int mutex_num; };

#define THREAD0 {0, 0, 0, 90, 10, {500000, 200000, 50000}, 2} #define THREAD1 {0, 1, 0, 91, 28, {500000, 200000, 50000}, 1} #define THREAD2 {0, 2, 0, 92, 64, {500000, 200000, 50000}, 2} #define THREAD3 {1, 3, 0, 93, 10, {500000, 200000, 50000}, 2} #define THREAD4 {1, 4, 1, 94, 10, {500000, 200000, 50000}, 0}

struct Tasks threads[NUM_THREADS]={THREAD0, THREAD1, THREAD2, THREAD3, THREAD4};

I need to develop a program that uses POSIX threads to implement these task models on Linux environment. The task body is defined as the following sequence:

where lock_m and unlock_m are locking and unlocking operations on mutex m, and compute_n indicates a local computation. To simulate a local computation, we will use a busy loop of x iterations.

My biggest confusion is how to point at those variables in the header file. For example, If I wanted:

Int TEST = task_type in THREAD0

How would I achieve that? I have been stuck on this for a while or is their a way to copy struct over, I cannot edit the header file.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!