diff --git a/include/resource.h b/include/resource.h new file mode 100644 index 0000000..47c3d2e --- /dev/null +++ b/include/resource.h @@ -0,0 +1,27 @@ +#pragma once + +#include "process.h" +#include + +enum resource_type_t +{ + RESOURCE_UNAVAILABLE = 0, + RESOURCE_PROCESS +}; + +struct resource_t +{ + size_t type; + union + { + struct process_t process; + }; +}; + +struct resource_table_t +{ + struct resource_t *array; + size_t capacity; +}; + +int find_resource_slot(struct resource_table_t *table); diff --git a/src/resource.c b/src/resource.c new file mode 100644 index 0000000..7867800 --- /dev/null +++ b/src/resource.c @@ -0,0 +1,13 @@ +#include "resource.h" + +int find_resource_slot(struct resource_table_t *table) +{ + for(int i = 0; i < table->capacity; i++) + { + if(table->array[i].type == RESOURCE_UNAVAILABLE) + { + return i; + } + } + return -1; +}