summaryrefslogtreecommitdiff
path: root/TSRM/tsrm_win32.h
diff options
context:
space:
mode:
authorDaniel Beulshausen <dbeu@php.net>2001-08-07 13:06:23 +0000
committerDaniel Beulshausen <dbeu@php.net>2001-08-07 13:06:23 +0000
commit95d30927ab68dac8f9d55f61682a6a71d9da3744 (patch)
tree7b66915ec24a78d786b2b88505cb273d204739e2 /TSRM/tsrm_win32.h
parent9cb9b84e92a950791f02c244d6cdfcd3039f6f02 (diff)
downloadphp-git-95d30927ab68dac8f9d55f61682a6a71d9da3744.tar.gz
implement shm* similar functions
Diffstat (limited to 'TSRM/tsrm_win32.h')
-rw-r--r--TSRM/tsrm_win32.h70
1 files changed, 62 insertions, 8 deletions
diff --git a/TSRM/tsrm_win32.h b/TSRM/tsrm_win32.h
index cb09786682..08e7c7a509 100644
--- a/TSRM/tsrm_win32.h
+++ b/TSRM/tsrm_win32.h
@@ -26,15 +26,45 @@
#ifdef TSRM_WIN32
#include <windows.h>
+struct ipc_perm {
+ int key;
+ unsigned short uid;
+ unsigned short gid;
+ unsigned short cuid;
+ unsigned short cgid;
+ unsigned short mode;
+ unsigned short seq;
+};
+
+struct shmid_ds {
+ struct ipc_perm shm_perm;
+ int shm_segsz;
+ time_t shm_atime;
+ time_t shm_dtime;
+ time_t shm_ctime;
+ unsigned short shm_cpid;
+ unsigned short shm_lpid;
+ short shm_nattch;
+};
+
+typedef struct {
+ FILE *stream;
+ HANDLE prochnd;
+} process_pair;
+
typedef struct {
- FILE *stream;
- HANDLE prochnd;
-} ProcessPair;
+ void *addr;
+ HANDLE info;
+ HANDLE segment;
+ struct shmid_ds *descriptor;
+} shm_pair;
typedef struct {
- ProcessPair *process;
- int process_size;
- char *comspec;
+ process_pair *process;
+ shm_pair *shm;
+ int process_size;
+ int shm_size;
+ char *comspec;
} tsrm_win32_globals;
#ifdef ZTS
@@ -45,9 +75,33 @@ typedef struct {
#endif
+#define IPC_PRIVATE 0
+#define IPC_CREAT 00001000
+#define IPC_EXCL 00002000
+#define IPC_NOWAIT 00004000
+
+#define IPC_RMID 0
+#define IPC_SET 1
+#define IPC_STAT 2
+#define IPC_INFO 3
+
+#define SHM_R PAGE_READONLY
+#define SHM_W PAGE_READWRITE
+
+#define SHM_RDONLY FILE_MAP_READ
+#define SHM_RND FILE_MAP_WRITE
+#define SHM_REMAP FILE_MAP_COPY
+
+
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
-TSRM_API FILE* popen(const char *command, const char *type);
-TSRM_API int pclose(FILE* stream);
+
+TSRM_API FILE *popen(const char *command, const char *type);
+TSRM_API int pclose(FILE *stream);
+
+TSRM_API int shmget(int key, int size, int flags);
+TSRM_API void *shmat(int key, const void *shmaddr, int flags);
+TSRM_API int shmdt(const void *shmaddr);
+TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf);
#endif \ No newline at end of file