first commit
This commit is contained in:
51
CS4210/Project 3/common/shared_memory/shared_memory.h
Normal file
51
CS4210/Project 3/common/shared_memory/shared_memory.h
Normal 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
|
||||
Reference in New Issue
Block a user