*
* Author: S. Piccardi
*
- * $Id: Gapil.h,v 1.4 2003/01/04 17:24:30 piccardi Exp $
+ * $Id: Gapil.h,v 1.12 2003/08/16 18:30:21 piccardi Exp $
*
*****************************************************************************/
#include <sys/sem.h> /* IPC semaphore declarations */
#include <fcntl.h> /* file control (lock) functions */
#include <signal.h> /* signal handling declarations */
#include <dirent.h> /* directory scan functions */
+#include <stdio.h> /* include standard I/O library */
/*
* Definition of semun struct; used to implement a MutexXXXX API To
* create a Mutex use an underlaying semaphore and init it; we put
inline int MutexUnlock(int sem_id);
/* Function MutexRemove: remove the mutex/semphore. See Mutex.c */
inline int MutexRemove(int sem_id);
+/* Function CreateMutex: create a mutex (using file locking). See Mutex.c */
+inline int CreateMutex(const char *path_name);
+/* Function UnlockMutex: find a mutex (using file locking). See Mutex.c */
+inline int FindMutex(const char *path_name);
/* Function LockMutex: acquire a mutex (using file locking). See Mutex.c */
-inline int LockFile(const char* path_name);
+inline int LockMutex(int fd);
/* Function UnlockMutex: release a mutex (using file locking). See Mutex.c */
-inline int UnlockFile(const char* path_name);
-
-
+inline int UnlockMutex(int fd);
+/* Function ReadMutex: read a mutex (using file locking). See Mutex.c */
+inline int ReadMutex(int fd);
+/* Function RemoveMutex: remove a mutex (using file locking). See Mutex.c */
+inline int RemoveMutex(const char *path_name);
+/*
+ * Lock files function: to create and destroy lock files
+ */
/* Function LockFile: create a lock file. See FileLock.c */
inline int LockFile(const char* path_name);
/* Function UnlockFile: remove a lock file. See FileLock.c */
typedef void SigFunc(int);
/* Function Signal: Initialize a signal handler. See SigHand.c */
SigFunc * Signal(int signo, SigFunc *func);
+/* Function SignalRestart: restart system calls. See SigHand.c */
+SigFunc * SignalRestart(int signo, SigFunc *func);
/* Function HandSigCHLD: to handle SIGCHILD. See SigHand.c */
void HandSigCHLD(int sig);
/*
- * Socket service functions
+ * Socket/Files service functions
*/
-/* Function SockRead: to read from a socket. See SockRead.c */
-ssize_t SockRead(int fd, void *buf, size_t count);
-/* Function SockWrite: to read from a socket. See SockWrite.c */
-ssize_t SockWrite(int fd, const void *buf, size_t count);
+/* Function FullRead: to read from a socket. See FullRead.c */
+ssize_t FullRead(int fd, void *buf, size_t count);
+/* Function FullWrite: to read from a socket. See FullWrite.c */
+ssize_t FullWrite(int fd, const void *buf, size_t count);
+/* Function full_fread: to read from a standard file. See full_fread.c */
+size_t full_fread(FILE *file, void *buf, size_t count);
+/* Function full_fwrite: to write from a standard file. See full_fwrite.c */
+size_t full_fwrite(FILE *file, void *buf, size_t count);
/*
* File miscellaneous
*/
-/* Function DirScan: simple scan for a directory */
-int DirScan(char * dirname, int(*compute)(struct dirent *));
+/* Function dir_scan: simple scan for a directory. See dir_scan.c */
+int dir_scan(char * dirname, int(*compute)(struct dirent *));
+/*
+ * Shared memory handling functions. See SharedMem.c
+ */
+/* Function ShmCreate: create a SysV shared memory */
+void * ShmCreate(key_t ipc_key, int shm_size, int perm, int fill);
+/* Function ShmFind: find an existing SysV shared memory */
+void * ShmFind(key_t ipc_key, int shm_size);
+/* Function ShmRemove: remove a SysV shared memory */
+int ShmRemove(key_t ipc_key, void * shm_ptr);
+/* Function CreateShm: create a POSIX shared memory */
+void * CreateShm(char * shm_name, off_t shm_size, int perm, int fill);
+/* Function FindShm: find an existing POSIX shared memory */
+void * FindShm(char * shm_name, off_t shm_size);
+/* Function RemoveShm: remove a POSIX shared memory */
+int RemoveShm(char * shm_name);
+/*
+ * Socket creation functions. See corresponding .c
+ */
+int sockconn(char *host, char *serv, int prot, int type);
+int sockbind(char *host, char *serv, int prot, int type);
+int sockbindopt(char *host, char *serv, int prot, int type, int reuse);
+
+/*
+ * General purpose functions. See corresponding .c
+ */
+int endian(void);
+int is_closing(int sock);