File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / TSRM / tsrm_win32.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:34 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_17p0, HEAD
php 5.4.3+patches

    1: /*
    2:    +----------------------------------------------------------------------+
    3:    | PHP Version 5                                                        |
    4:    +----------------------------------------------------------------------+
    5:    | Copyright (c) 1997-2012 The PHP Group                                |
    6:    +----------------------------------------------------------------------+
    7:    | This source file is subject to version 3.01 of the PHP license,      |
    8:    | that is bundled with this package in the file LICENSE, and is        |
    9:    | available through the world-wide-web at the following url:           |
   10:    | http://www.php.net/license/3_01.txt                                  |
   11:    | If you did not receive a copy of the PHP license and are unable to   |
   12:    | obtain it through the world-wide-web, please send a note to          |
   13:    | license@php.net so we can mail you a copy immediately.               |
   14:    +----------------------------------------------------------------------+
   15:    | Authors: Daniel Beulshausen <daniel@php4win.de>                      |
   16:    +----------------------------------------------------------------------+
   17: */
   18: 
   19: /* $Id: tsrm_win32.h,v 1.1.1.2 2012/05/29 12:34:34 misho Exp $ */
   20: 
   21: #ifndef TSRM_WIN32_H
   22: #define TSRM_WIN32_H
   23: 
   24: #include "TSRM.h"
   25: #include <windows.h>
   26: 
   27: struct ipc_perm {
   28: 	int			key;
   29: 	unsigned short	uid;
   30: 	unsigned short	gid;
   31: 	unsigned short	cuid;
   32: 	unsigned short	cgid;
   33: 	unsigned short	mode;
   34: 	unsigned short	seq;
   35: };
   36: 
   37: struct shmid_ds {
   38: 	struct	ipc_perm	shm_perm;
   39: 	int				shm_segsz;
   40: 	time_t			shm_atime;
   41: 	time_t			shm_dtime;
   42: 	time_t			shm_ctime;
   43: 	unsigned short	shm_cpid;
   44: 	unsigned short	shm_lpid;
   45: 	short			shm_nattch;
   46: };
   47: 
   48: typedef struct {
   49: 	FILE	*stream;
   50: 	HANDLE	prochnd;
   51: } process_pair;
   52: 
   53: typedef struct {
   54: 	void	*addr;
   55: 	HANDLE	info;
   56: 	HANDLE	segment;
   57: 	struct	shmid_ds	*descriptor;
   58: } shm_pair;
   59: 
   60: typedef struct {
   61: 	process_pair	*process;
   62: 	shm_pair		*shm;
   63: 	int				process_size;
   64: 	int				shm_size;
   65: 	char			*comspec;
   66: 	HANDLE impersonation_token;
   67: 	PSID			impersonation_token_sid;
   68: } tsrm_win32_globals;
   69: 
   70: #ifdef ZTS
   71: # define TWG(v) TSRMG(win32_globals_id, tsrm_win32_globals *, v)
   72: #else
   73: # define TWG(v) (win32_globals.v)
   74: #endif
   75: 
   76: #define IPC_PRIVATE	0
   77: #define IPC_CREAT	00001000
   78: #define IPC_EXCL	00002000
   79: #define IPC_NOWAIT	00004000
   80: 
   81: #define IPC_RMID	0
   82: #define IPC_SET		1
   83: #define IPC_STAT	2
   84: #define IPC_INFO	3
   85: 
   86: #define SHM_R		PAGE_READONLY
   87: #define SHM_W		PAGE_READWRITE
   88: 
   89: #define	SHM_RDONLY	FILE_MAP_READ
   90: #define	SHM_RND		FILE_MAP_WRITE
   91: #define	SHM_REMAP	FILE_MAP_COPY
   92: 
   93: char * tsrm_win32_get_path_sid_key(const char *pathname  TSRMLS_DC);
   94: 
   95: TSRM_API void tsrm_win32_startup(void);
   96: TSRM_API void tsrm_win32_shutdown(void);
   97: 
   98: TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env TSRMLS_DC);
   99: TSRM_API FILE *popen(const char *command, const char *type);
  100: TSRM_API int pclose(FILE *stream);
  101: TSRM_API int tsrm_win32_access(const char *pathname, int mode TSRMLS_DC);
  102: TSRM_API int win32_utime(const char *filename, struct utimbuf *buf);
  103: 
  104: TSRM_API int shmget(int key, int size, int flags);
  105: TSRM_API void *shmat(int key, const void *shmaddr, int flags);
  106: TSRM_API int shmdt(const void *shmaddr);
  107: TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf);
  108: 
  109: TSRM_API char *realpath(char *orig_path, char *buffer);
  110: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>