diff options
author | Daniel Beulshausen <dbeu@php.net> | 2001-08-07 13:06:23 +0000 |
---|---|---|
committer | Daniel Beulshausen <dbeu@php.net> | 2001-08-07 13:06:23 +0000 |
commit | 95d30927ab68dac8f9d55f61682a6a71d9da3744 (patch) | |
tree | 7b66915ec24a78d786b2b88505cb273d204739e2 /TSRM/tsrm_win32.h | |
parent | 9cb9b84e92a950791f02c244d6cdfcd3039f6f02 (diff) | |
download | php-git-95d30927ab68dac8f9d55f61682a6a71d9da3744.tar.gz |
implement shm* similar functions
Diffstat (limited to 'TSRM/tsrm_win32.h')
-rw-r--r-- | TSRM/tsrm_win32.h | 70 |
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 |