From 6312e34a350ede7a73906792a8ff5d5efcf2f534 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl <0x6A73@pm.me> Date: Tue, 2 Apr 2024 23:09:10 -0600 Subject: pa4 --- pa4_shared_array/array.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 pa4_shared_array/array.h (limited to 'pa4_shared_array/array.h') diff --git a/pa4_shared_array/array.h b/pa4_shared_array/array.h new file mode 100644 index 0000000..9d67e1e --- /dev/null +++ b/pa4_shared_array/array.h @@ -0,0 +1,48 @@ +// Jack Sangdahl +// CSCI3753 SP24 +// PA4 Shared Array +#include +#include +#include +#include +#include + +#define ARRAY_SIZE 8 // number of hostnames in data/ is 618 +#define MAX_NAME_LENGTH 16 // longest string length in data/ + +typedef struct { + char **array; + uint8_t top; + sem_t mutex; + sem_t space; + sem_t items; +} array; + +/** + * @brief initialise the array + * @param s + * @return int + */ +int array_init(array *s); + +/** + * @brief place element into array. block when full + * @param s + * @param hostname + * @return int + */ +int array_put(array *s, char *hostname); + +/** + * @brief remove element from the array. block when empty + * @param s + * @param hostname + * @return int + */ +int array_get(array *s, char **hostname); + +/** + * @brief free array's resources + * @param s + */ +void array_free(array *s); -- cgit v1.2.3