first commit

This commit is contained in:
Jose Caban
2025-06-07 01:59:34 -04:00
commit 388ac241f0
3558 changed files with 9116289 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
#ifndef _SHARED_MEMORY_H_
#define _SHARED_MEMORY_H_
#include <sys/shm.h>
#include <semaphore.h>
#define NBUFF 4 /* Number of Shared Memory Segments */
#define SHMKEY ((key_t) 7890) /* Shared Memory Key */
#define SEMPROX ((key_t) 7891) /* Shared Memory Proxy Semaphore Key */
#define SEMSERV ((key_t) 7892) /* Shared Memory Server Semaphore Key */
#define PERMS 0666 /* Shared Memory Permissions */
#define BUFFSIZE 1024 /* Buffer Size (Bytes) */
extern int shmid[NBUFF]; /* Shared Memory Segment Array */
extern char* buffptr[NBUFF]; /* Used for each process to attach to */
extern int semprox; /* Proxy Shared Memory Semaphore */
extern int semserv; /* Server Shared Memory Semaphore */
typedef struct shmemNode {
int shmid;
int semIndex;
char* buff;
struct shmemNode *next;
} shmemNode;
/////////////
// Getters //
/////////////
int get_semserv();
int get_semprox();
////////////////////////////////
// Methods //
//god I wish we could use C++ //
////////////////////////////////
int init_shared_memory();
int attach_shared_memory();
void destroy_shared_memory();
void detach_shared_memory();
void *attach_to_shmem(int index);
shmemNode *getSharedMemorySegment();
void releaseSharedMemorySegment(shmemNode* node);
#endif