summaryrefslogtreecommitdiff
path: root/TSRM/tsrm_win32.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /TSRM/tsrm_win32.h
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'TSRM/tsrm_win32.h')
-rw-r--r--TSRM/tsrm_win32.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/TSRM/tsrm_win32.h b/TSRM/tsrm_win32.h
new file mode 100644
index 0000000..c77f69c
--- /dev/null
+++ b/TSRM/tsrm_win32.h
@@ -0,0 +1,110 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2013 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Daniel Beulshausen <daniel@php4win.de> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#ifndef TSRM_WIN32_H
+#define TSRM_WIN32_H
+
+#include "TSRM.h"
+#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 {
+ void *addr;
+ HANDLE info;
+ HANDLE segment;
+ struct shmid_ds *descriptor;
+} shm_pair;
+
+typedef struct {
+ process_pair *process;
+ shm_pair *shm;
+ int process_size;
+ int shm_size;
+ char *comspec;
+ HANDLE impersonation_token;
+ PSID impersonation_token_sid;
+} tsrm_win32_globals;
+
+#ifdef ZTS
+# define TWG(v) TSRMG(win32_globals_id, tsrm_win32_globals *, v)
+#else
+# define TWG(v) (win32_globals.v)
+#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
+
+char * tsrm_win32_get_path_sid_key(const char *pathname TSRMLS_DC);
+
+TSRM_API void tsrm_win32_startup(void);
+TSRM_API void tsrm_win32_shutdown(void);
+
+TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env TSRMLS_DC);
+TSRM_API FILE *popen(const char *command, const char *type);
+TSRM_API int pclose(FILE *stream);
+TSRM_API int tsrm_win32_access(const char *pathname, int mode TSRMLS_DC);
+TSRM_API int win32_utime(const char *filename, struct utimbuf *buf);
+
+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);
+
+TSRM_API char *realpath(char *orig_path, char *buffer);
+#endif