version 1.3.2.4, 2012/02/10 16:52:37
|
version 1.3.2.8, 2012/02/10 23:15:27
|
Line 67 SUCH DAMAGE.
|
Line 67 SUCH DAMAGE.
|
#define MAX_SEMNAME 14 |
#define MAX_SEMNAME 14 |
|
|
|
|
struct tagSess; | typedef struct tagSess { |
typedef struct tagSess ait_sess_t; | |
| |
struct tagSess { | |
key_t key; |
key_t key; |
char type; |
char type; |
char zcpy; |
char zcpy; |
|
|
|
char name[BUFSIZ]; |
off_t eom; |
off_t eom; |
void *addr; |
void *addr; |
off_t offset; |
off_t offset; |
Line 87 struct tagSess {
|
Line 86 struct tagSess {
|
} id; |
} id; |
|
|
struct { |
struct { |
int (*create)(const char *, int, long, ait_sess_t * __restrict, ...); | int (*create)(int, long, void *, ...); |
void (*destroy)(const char*, ait_sess_t * __restrict); | void (*destroy)(void *); |
void *(*attach)(ait_sess_t * __restrict, void *); | void *(*attach)(void *, void *); |
void (*detach)(ait_sess_t * __restrict); | void (*detach)(void *); |
void (*notSem)(ait_sess_t * __restrict); | void (*notSem)(void *); |
int (*isSemOK)(ait_sess_t * __restrict); | int (*isSemOK)(void *); |
int (*incSem)(ait_sess_t * __restrict); | int (*incSem)(void *); |
int (*decSem)(ait_sess_t * __restrict); | int (*decSem)(void *); |
} sess; |
} sess; |
}; | } ait_sess_t; |
|
|
|
|
// ------------------------------------------------------- |
// ------------------------------------------------------- |
Line 121 int sess_initSession(int id, const char *csFName, ait_
|
Line 120 int sess_initSession(int id, const char *csFName, ait_
|
/* |
/* |
* sess_freeSession() Free allocated memory for session item and delete session file if present name |
* sess_freeSession() Free allocated memory for session item and delete session file if present name |
* |
* |
* @csFName = Session filename for delete, if NULL nothing delete |
|
* @Sess = Session item |
* @Sess = Session item |
* return: none |
* return: none |
*/ |
*/ |
void sess_freeSession(const char *csFName, ait_sess_t ** __restrict Sess); | void sess_freeSession(ait_sess_t ** __restrict Sess); |
|
|
|
|
/* |
/* |
* map_createSession() MMAP Created session and allocated resources |
* map_createSession() MMAP Created session and allocated resources |
* |
* |
* @csFName = Session name for identified |
|
* @nSeed = Seed for securing key, if =-1 must add ready for use key |
* @nSeed = Seed for securing key, if =-1 must add ready for use key |
* @nSize = Allocated shared memory size in bytes |
* @nSize = Allocated shared memory size in bytes |
* @Sess = Session item |
* @Sess = Session item |
* @... = If nSeed == -1 add ready for use key value |
* @... = If nSeed == -1 add ready for use key value |
* return: 0 Ok successful, -1 error: not allocated resources |
* return: 0 Ok successful, -1 error: not allocated resources |
*/ |
*/ |
int map_createSession(const char *csFName, int nSeed, long nSize, ait_sess_t * __restrict Sess, ...); | int map_createSession(int nSeed, long nSize, ait_sess_t * __restrict Sess, ...); |
/* |
/* |
* map_destroySession() MMAP free shared resources |
* map_destroySession() MMAP free shared resources |
* |
* |
* @csFName = Session name for delete |
|
* @Sess = Session item |
* @Sess = Session item |
* return: none |
* return: none |
*/ |
*/ |
void map_destroySession(const char *csFName, ait_sess_t * __restrict Sess); | void map_destroySession(ait_sess_t * __restrict Sess); |
|
|
/* |
/* |
* ipc_createSession() IPC Created session and allocated resources |
* ipc_createSession() IPC Created session and allocated resources |
* |
* |
* @csFName = Session name for identified |
|
* @nSeed = Seed for securing key, if =-1 must add ready for use key |
* @nSeed = Seed for securing key, if =-1 must add ready for use key |
* @nSize = Allocated shared memory size in bytes |
* @nSize = Allocated shared memory size in bytes |
* @Sess = Session item |
* @Sess = Session item |
* @... = If nSeed == -1 add ready for use key value |
* @... = If nSeed == -1 add ready for use key value |
* return: 0 Ok successful, -1 error: not allocated resources |
* return: 0 Ok successful, -1 error: not allocated resources |
*/ |
*/ |
int ipc_createSession(const char *csFName, int nSeed, long nSize, ait_sess_t * __restrict Sess, ...); | int ipc_createSession(int nSeed, long nSize, ait_sess_t * __restrict Sess, ...); |
/* |
/* |
* ipc_destroySession() IPC free shared resources |
* ipc_destroySession() IPC free shared resources |
* |
* |
* @csFName = Session name for delete |
|
* @Sess = Session item |
* @Sess = Session item |
* return: none |
* return: none |
*/ |
*/ |
void ipc_destroySession(const char *csFName, ait_sess_t * __restrict Sess); | void ipc_destroySession(ait_sess_t * __restrict Sess); |
|
|
/* |
/* |
* map_attachSession() MMAP Attach to shared memory & return begin address |
* map_attachSession() MMAP Attach to shared memory & return begin address |
Line 270 int ipc_decSemaphore(ait_sess_t * __restrict s);
|
Line 264 int ipc_decSemaphore(ait_sess_t * __restrict s);
|
|
|
/* --------------------------------------------------------- */ |
/* --------------------------------------------------------- */ |
|
|
#define ALLOC_MEMORY(fname, sd, siz, s, ...) (assert((s)), (s)->sess.create((fname), (sd), \ | #define ALLOC_MEMORY(sd, siz, s, ...) (assert((s)), (s)->sess.create((sd), \ |
(siz), (s), ## __VA_ARGS__)) | (siz), (s), ## __VA_ARGS__)) |
#define FREE_MEMORY(fname, s) do { assert((s)); \ | #define ATTACH_MEMORY(s) (assert((s)), (s)->sess.attach((s), NULL)) |
(s)->sess.destroy((fname), (s)); \ | #define DETACH_MEMORY(s) do { assert((s)); (s)->sess.detach((s)); } while(0) |
} while(0) | #define FREE_MEMORY(s) do { assert((s)); (s)->sess.destroy((s)); } while(0) |
#define ATTACH_MEMORY(s) (assert((s)), (s)->sess.attach((s), NULL)) | |
#define DETACH_MEMORY(s) do { assert((s)); (s)->sess.detach((s)); } while(0) | |
|
|
#define IS_SEMOK(s) (assert((s)), (s)->sess.isSemOK((s))) | #define IS_SEMOK(s) (assert((s)), (s)->sess.isSemOK((s))) |
#define INC_SEM(s) (assert((s)), (s)->sess.incSem((s))) | #define INC_SEM(s) (assert((s)), (s)->sess.incSem((s))) |
#define DEC_SEM(s) (assert((s)), (s)->sess.decSem((s))) | #define DEC_SEM(s) (assert((s)), (s)->sess.decSem((s))) |
#define NOT_SEM(s) do { assert((s)); (s)->sess.notSem((s)); } while(0) | #define NOT_SEM(s) do { assert((s)); (s)->sess.notSem((s)); } while(0) |
|
|
/* --------------------------------------------------------- */ |
/* --------------------------------------------------------- */ |
|
|