#include //#include #include //#include //#include #include #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]; }