rendered paste body#include <stdio.h>
//#include <unistd.h>
#include <sys/types.h>
//#include <sys/wait.h>
//#include <stdlib.h>
#include <pthread.h>
#define NUMTHREADS 50
// calls compatible w/ pthreads
void* create_group(void* args);
void* destroy_group(void* args);
void* join_group(void* args);
void* create_box(void* args);
void* destroy_box(void* args);
void* write_box(void* args);
void* read_box(void* args);
void* clear_box(void* args);
// argument structs for the above calls
struct create_group_args {int type;char name[9];uid_t uid;int perms;};
struct destroy_group_args {int type;char name[9];uid_t uid;};
struct join_group_args {char name[9];pid_t pid;};
struct create_box_args {int type;char name[256];uid_t uid;int perms;};
struct destroy_box_args {int type;char name[256];uid_t uid;};
struct write_box_args {int type;char name[256];uid_t uid;char* message;int flag;};
struct read_box_args {int type;char name[256];uid_t uid;char* message;int len;int flag;};
struct clear_box_args {int type;char name[256];uid_t uid;};
void* create_group(void *args)
{
struct create_group_args* a = (create_group_args*)args;
int retval = create_mboxgr(a->type, a->name, a->uid, a->perms);
return (void*)retval;
}
void* destroy_group(void *args)
{
struct destroy_group_args* a = (destroy_group_args*) args;
int retval = destroy_mboxgr(a->type, a->name, a->uid);
return (void*)retval;
}
void* join_group(void *args)
{
struct join_group_args* a = (join_group_args*) args;
int retval = join_mboxgr(a->name, a->pid);
return (void*)retval;
}
void* create_box(void *args)
{
struct create_box_args* a = (create_box_args*) args;
int retval = create_mbox(a->type, a->name, a->uid, a->perms);
return (void*)retval;
}
void* destroy_box(void *args)
{
struct destroy_box_args* a = (destroy_box_args*) args;
int retval = destroy_mbox(a->type, a->name, a->uid);
return (void*)retval;
}
void* write_box(void *args)
{
struct write_box_args* a = (write_box_args*) args;
int retval = write_mbox(a->type, a->name, a->uid, a->message, a->flag);
return (void*)retval;
}
void* read_box(void *args)
{
struct read_box_args* a = (read_box_args*) args;
int retval = read_mbox(a->type, a->name, a->uid, a->message, a->len, a->flag);
return (void*)retval;
}
void* clear_box(void *args)
{
struct clear_box_args* a = (clear_box_args*) args;
int retval = clear_mbox(a->type, a->name, a->uid);
return (void*)retval;
}
int main(int argc, int** argv)
{
create_group_args* cgArgs[NUMTHREADS+1];
}