php-src/TSRM/tsrm_win32.h

107 lines
2.9 KiB
C
Raw Normal View History

2001-04-27 16:41:53 +00:00
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
2001-04-27 16:41:53 +00:00
+----------------------------------------------------------------------+
2008-12-31 11:15:49 +00:00
| Copyright (c) 1997-2009 The PHP Group |
2001-04-27 16:41:53 +00:00
+----------------------------------------------------------------------+
2006-01-01 12:51:34 +00:00
| This source file is subject to version 3.01 of the PHP license, |
2001-04-27 16:41:53 +00:00
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
2006-01-01 12:51:34 +00:00
| http://www.php.net/license/3_01.txt |
2001-04-27 16:41:53 +00:00
| 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>
2001-07-09 16:44:40 +00:00
2001-08-07 13:06:23 +00:00
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;
2001-04-27 16:41:53 +00:00
typedef struct {
2001-08-07 13:06:23 +00:00
void *addr;
HANDLE info;
HANDLE segment;
struct shmid_ds *descriptor;
} shm_pair;
2001-04-27 16:41:53 +00:00
typedef struct {
2001-08-07 13:06:23 +00:00
process_pair *process;
shm_pair *shm;
int process_size;
int shm_size;
char *comspec;
2001-04-27 16:41:53 +00:00
} tsrm_win32_globals;
#ifdef ZTS
# define TWG(v) TSRMG(win32_globals_id, tsrm_win32_globals *, v)
2001-04-27 16:41:53 +00:00
#else
# define TWG(v) (win32_globals.v)
#endif
2001-08-07 13:06:23 +00:00
#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
2001-04-27 16:41:53 +00:00
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
2001-08-07 13:06:23 +00:00
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env);
2001-08-07 13:06:23 +00:00
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);
2001-08-07 13:06:23 +00:00
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);
2001-04-27 16:41:53 +00:00
2003-09-30 09:48:53 +00:00
TSRM_API char *realpath(char *orig_path, char *buffer);
#endif