php-src/TSRM/tsrm_win32.h

112 lines
3.2 KiB
C
Raw Normal View History

2001-04-27 16:41:53 +00:00
/*
+----------------------------------------------------------------------+
2014-09-19 16:33:14 +00:00
| PHP Version 7 |
2001-04-27 16:41:53 +00:00
+----------------------------------------------------------------------+
| Copyright (c) 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> |
+----------------------------------------------------------------------+
*/
#ifndef TSRM_WIN32_H
#define TSRM_WIN32_H
#include "TSRM.h"
#include <windows.h>
#if HAVE_UTIME
# include <sys/utime.h>
#endif
#include "win32/ipc.h"
2001-07-09 16:44:40 +00:00
2001-08-07 13:06:23 +00:00
struct ipc_perm {
key_t key;
2001-08-07 13:06:23 +00:00
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;
size_t shm_segsz;
2001-08-07 13:06:23 +00:00
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;
HANDLE impersonation_token;
PSID impersonation_token_sid;
2001-04-27 16:41:53 +00:00
} tsrm_win32_globals;
#ifdef ZTS
# define TWG(v) TSRMG_STATIC(win32_globals_id, tsrm_win32_globals *, v)
TSRMLS_CACHE_EXTERN()
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
2017-04-27 13:39:32 +00:00
char * tsrm_win32_get_path_sid_key(const char *pathname, size_t pathname_len, size_t *key_len);
2001-08-07 13:06:23 +00:00
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
2014-12-13 22:06:14 +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);
2014-12-13 22:06:14 +00:00
TSRM_API int tsrm_win32_access(const char *pathname, int mode);
TSRM_API int win32_utime(const char *filename, struct utimbuf *buf);
2001-08-07 13:06:23 +00:00
TSRM_API int shmget(key_t key, size_t size, int flags);
2001-08-07 13:06:23 +00:00
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);
2003-09-30 09:48:53 +00:00
#endif