summaryrefslogtreecommitdiff
path: root/tls.h
diff options
context:
space:
mode:
Diffstat (limited to 'tls.h')
-rw-r--r--tls.h208
1 files changed, 208 insertions, 0 deletions
diff --git a/tls.h b/tls.h
new file mode 100644
index 0000000000..7a3ee740c7
--- /dev/null
+++ b/tls.h
@@ -0,0 +1,208 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP HTML Embedded Scripting Language Version 3.0 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997,1998 PHP Development Team (See Credits file) |
+ +----------------------------------------------------------------------+
+ | This program is free software; you can redistribute it and/or modify |
+ | it under the terms of one of the following licenses: |
+ | |
+ | A) the GNU General Public License as published by the Free Software |
+ | Foundation; either version 2 of the License, or (at your option) |
+ | any later version. |
+ | |
+ | B) the PHP License as published by the PHP Development Team and |
+ | included in the distribution in the file: LICENSE |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU General Public License for more details. |
+ | |
+ | You should have received a copy of both licenses referred to here. |
+ | If you did not, or have any questions about PHP licensing, please |
+ | contact core@php.net. |
+ +----------------------------------------------------------------------+
+ | Authors: |
+ | |
+ +----------------------------------------------------------------------+
+ */
+#ifndef _TLS_H_
+#define _TLS_H_
+#if WIN32|WINNT
+#include "win32/pwd.h"
+#include "win32/sendmail.h"
+#include <winsock.h>
+#endif
+
+#include "alloc.h"
+#include "functions/head.h"
+#include "functions/number.h"
+#include "constants.h"
+#include <sys/stat.h>
+#if USE_SAPI
+#include "serverapi/sapi.h"
+#endif
+
+typedef struct php3_global_struct{
+ /*all globals must be here*/
+ /*alloc.c*/
+ void *cache[MAX_CACHED_MEMORY][MAX_CACHED_ENTRIES];
+ unsigned char cache_count[MAX_CACHED_MEMORY];
+ int saved_umask;
+ mem_header *head;
+ unsigned int allocated_memory;
+
+ /*getopt.c*/
+ char *optarg;
+ int optind;
+ int opterr;
+ int optopt;
+ /*file.c*/
+ int pclose_ret;
+ int wsa_fp;
+ /*zend-parser.tab.c*/
+ HashTable function_table;
+ HashTable include_names;
+ int current_lineno;
+ int include_count;
+ FunctionState function_state;
+ FunctionState php3g_function_state_for_require;
+ char *class_name;
+ HashTable *class_symbol_table;
+ pval return_value,globals;
+ unsigned int param_index;
+ pval *array_ptr;
+ /*list.c*/
+ int module_count;
+ int current_module_being_cleaned;
+ /*main.c*/
+ int initialized;
+ int module_initialized;
+ char *php3_ini_path;
+ unsigned char header_is_being_sent;
+#if APACHE
+ request_rec *php3_rqst;
+#endif
+#if USE_SAPI
+ struct sapi_request_info *sapi_rqst;
+#endif
+#if WIN32|WINNT
+ unsigned int wintimer_counter;
+ unsigned int wintimer;
+ unsigned int timerstart;
+#endif
+ FILE *phpin;
+ /*request_info.c*/
+ php3_request_info request_info;
+ /*token_cache.c*/
+ pval phplval;
+ /*constants.c*/
+ HashTable php3_constants;
+
+ /*Functions*/
+ /*bc math*/
+ long bc_precision;
+ bc_num _zero_;
+ bc_num _one_;
+ bc_num _two_;
+ /*browscap.c*/
+ HashTable browser_hash;
+ char *lookup_browser_name;
+ pval *found_browser_entry;
+ /*dir.c*/
+ int dirp_id;
+ int le_dirp;
+ /*file.c*/
+ int fgetss_state;
+ int le_fp;
+ int le_pp;
+ /*filestat.c*/
+ char *CurrentStatFile;
+#if MSVC5
+ unsigned int CurrentStatLength;
+#else
+ int CurrentStatLength;
+#endif
+ struct stat sb;
+#if HAVE_SYMLINK
+ struct stat lsb;
+#endif
+ /*formated_print.c*/
+ char cvt_buf[80]; /*STATIC VAR*/
+ /*head.c*/
+ int php3_PrintHeader;
+ CookieList *top;
+ char *cont_type;
+ int header_called;
+ /*info.c*/
+#if APACHE
+ module *top_module;
+#endif
+ /*pageinfo.c*/
+ long page_uid;
+ long page_inode;
+ long page_mtime;
+ /*post.c*/
+ int php3_track_vars;
+ int le_uploads;
+ /*strings.h*/
+ char *strtok_string;
+ char *strtok_pos1; /*STATIC VAR*/
+ char *strtok_pos2; /*STATIC VAR*/
+#ifndef HAVE_STRERROR
+ char str_ebuf[40]; /*STATIC VAR*/
+#endif
+#if WIN32|WINNT
+ /*pwd.c*/
+ struct passwd pw; /* should we return a malloc()'d structure */
+ /*sendmail.c*/
+ char Buffer[MAIL_BUFFER_SIZE];
+ SOCKET sc;
+ WSADATA Data;
+ struct hostent *adr;
+ SOCKADDR_IN sock_in;
+ int WinsockStarted;
+ char *AppName;
+ char MailHost[HOST_NAME_LEN];
+ char LocalHost[HOST_NAME_LEN];
+ /*winsyslog.c*/
+ char *loghdr; /* log file header string */
+ HANDLE loghdl; /* handle of event source */
+ /*time.c*/
+ unsigned int proftimer,virttimer,realtimer;
+ LPMSG phpmsg;
+ /*winutil*/
+ char Win_Error_msg[256];
+#endif
+ /*check for each module if it is compiled staticly
+ we should include their globals here.*/
+} php3_globals_struct;
+
+#ifdef THREAD_SAFE
+extern DWORD TlsIndex;
+
+extern int tls_create(void);
+extern int tls_destroy(void);
+
+/* these are from the flex scanner */
+#ifndef YY_TLS_VARS
+#define phptext php_gbl->text
+#define phpleng php_gbl->leng
+extern DWORD phpLexTlsIndex;
+#define YY_TLS_VARS flex_globals *php_gbl = TlsGetValue(phpLexTlsIndex)
+#endif
+
+/* Other needed defines */
+#if !defined(COMPILE_DL)
+extern int phplex(pval *phplval, struct php3_global_struct *php3_globals, flex_globals *php_gbl);
+#endif
+#else
+extern php3_globals_struct *php3_globals;
+
+#endif
+
+extern int tls_startup(void);
+extern int tls_shutdown(void);
+
+#endif