I'm having trouble trying to assess the data members. I tried using -> and . but the compiler keeps saying request for member `magic' in something not a structure or union, etc...
I guess I'm having trouble understanding the concept of function pointers.
Code:
typedef struct _PCB {
unsigned magic;
unsigned used;
unsigned short priority;
unsigned short state;
MEM_ADDR esp;
PROCESS param_proc;
void* param_data;
PORT first_port;
PROCESS next_blocked;
PROCESS next;
PROCESS prev;
char* name;
} PCB;
typedef PCB* PROCESS;
PORT create_process (void (*ptr_to_new_proc) (PROCESS, PARAM),
int prio,
PARAM param,
char *name)
{
//CAN'T ACCESS THESE DATA MEMBERS
ptr_to_new_proc->magic = MAGIC_PCB;
ptr_to_new_proc->used = TRUE;
ptr_to_new_proc->state = STATE_READY;
ptr_to_new_proc->priority = prio;
ptr_to_new_proc->first_port = NULL;
ptr_to_new_proc->name = name;
return NULL;
}