#define EMBPERL_PACKAGE Embperl
#define EMBPERL_PACKAGE_STR "Embperl"
#ifdef PERL_IMPLICIT_CONTEXT
#define epTHX pTHX = r -> pPerlTHX
#define epaTHX pTHX = a -> pPerlTHX
#define eptTHX pTHX = pThread -> pPerlTHX
#define epTHX_ epTHX ;
#define epaTHX_ epaTHX ;
#define eptTHX_ eptTHX ;
#else
#define epTHX
#define epaTHX
#define eptTHX
#define epTHX_
#define epaTHX_
#define eptTHX_
#endif
void
boot_Embperl__Thread (pTHX_ CV * cv) ;
void
boot_Embperl__App (pTHX_ CV * cv) ;
void
boot_Embperl__App__Config (pTHX_ CV * cv) ;
void
boot_Embperl__Req (pTHX_ CV * cv) ;
void
boot_Embperl__Req__Config (pTHX_ CV * cv) ;
void
boot_Embperl__Req__Param (pTHX_ CV * cv) ;
void
boot_Embperl__Component (pTHX_ CV * cv) ;
void
boot_Embperl__Component__Config (pTHX_ CV * cv) ;
void
boot_Embperl__Component__Param (pTHX_ CV * cv) ;
void
boot_Embperl__Component__Output (pTHX_ CV * cv) ;
void
boot_Embperl__Syntax (pTHX_ CV * cv) ;
struct
tCacheItem ;
extern
SV ep_sv_undef ;
typedef
enum
tCacheOptions
{
ckoptCarryOver = 1,
ckoptPathInfo = 2,
ckoptQueryInfo = 4,
ckoptDontCachePost = 8,
ckoptDefault = 15
} tCacheOptions ;
typedef
enum
{
phInit,
phParse,
phCompile,
phRunAfterCompile,
phPerlCompile,
phRun,
phTerm
} tPhase ;
struct
tToken
{
const
char
* sText ;
const
char
* sName ;
int
nTextLen ;
const
char
* sEndText ;
const
char
* sNodeName;
int
nNodeName ;
tNodeType nNodeType ;
tNodeType nCDataType ;
tNodeType nForceType ;
int
bUnescape ;
int
bAddFlags ;
int
bRemoveSpaces ;
unsigned
char
* pContains ;
int
bInsideMustExist ;
int
bMatchAll ;
int
bDontEat ;
int
bExitInside ;
int
bAddFirstChild;
struct
tTokenTable * pFollowedBy;
struct
tTokenTable * pInside ;
struct
tToken * pStartTag ;
struct
tToken * pEndTag ;
const
char
* sParseTimePerlCode ;
} ;
#if !defined (USE_THREADS) && !defined(USE_ITHREADS) && !defined(perl_mutex)
#define perl_mutex int
#define ep_acquire_mutex(mutex)
#define ep_release_mutex(mutex)
#define ep_create_mutex(mutex)
#define ep_destroy_mutex(mutex)
#else
#define ep_acquire_mutex(mutex) MUTEX_LOCK(&mutex)
#define ep_release_mutex(mutex) MUTEX_UNLOCK(&mutex)
#define ep_create_mutex(mutex) MUTEX_INIT(&mutex)
#define ep_destroy_mutex(mutex) MUTEX_DESTROY(&mutex)
#endif
tMemPool * ep_init_alloc(
void
);
void
ep_cleanup_alloc(
void
);
tMemPool * ep_make_sub_pool(tMemPool *);
void
ep_destroy_pool(tMemPool *);
void
* ep_palloc(
struct
tMemPool *,
int
nbytes);
void
* ep_pcalloc(
struct
tMemPool *,
int
nbytes);
char
* ep_pstrdup(
struct
tMemPool *,
const
char
*s);
char
* ep_pstrndup(
struct
tMemPool *,
const
char
*s,
int
n);
char
* ep_pstrcat(
struct
tMemPool *,...) ;
char
* ep_psprintf(
struct
tMemPool *,
const
char
*fmt, ...) ;
char
* ep_pvsprintf(
struct
tMemPool *,
const
char
*fmt,
va_list
);
void
embperl_ApacheAddModule (
void
) ;
int
embperl_GetApacheConfig (
tThreadData * pThread,
request_rec * r,
server_rec * s,
tApacheDirConfig * * ppConfig) ;
char
* embperl_GetApacheAppName (
tApacheDirConfig * pDirCfg) ;
int
embperl_GetApacheAppConfig (
tThreadData * pThread,
tMemPool * pPool,
tApacheDirConfig * pDirCfg,
tAppConfig * pConfig);
int
embperl_GetApacheReqConfig (
tApp * pApp,
tMemPool * pPool,
tApacheDirConfig * pDirCfg,
tReqConfig * pReqConfig) ;
int
embperl_GetApacheComponentConfig (
tReq * pReq,
tMemPool * pPool,
tApacheDirConfig * pDirCfg,
tComponentConfig * pConfig) ;
int
embperl_GetApacheReqParam (
tApp * pApp,
tMemPool * pPool,
request_rec * r,
tReqParam * pParam) ;
char
* embperl_GetCGIAppName (
tThreadData * pThread) ;
int
embperl_GetCGIAppConfig (
tThreadData * pThread,
tMemPool * pPool,
tAppConfig * pConfig,
bool
bUseEnv,
bool
bUseRedirectEnv,
bool
bSetDefault) ;
int
embperl_GetCGIReqConfig (
tApp * pApp,
tMemPool * pPool,
tReqConfig * pConfig,
bool
bUseEnv,
bool
bUseRedirectEnv,
bool
bSetDefault) ;
int
embperl_GetCGIComponentConfig (
tReq * pReq,
tMemPool * pPool,
tComponentConfig * pConfig,
bool
bUseEnv,
bool
bUseRedirectEnv,
bool
bSetDefault) ;
int
embperl_GetCGIReqParam (
tApp * pApp,
tMemPool * pPool,
tReqParam * pParam) ;
typedef
struct
tOptionEntry
{
const
char
* sOption ;
int
nValue ;
} tOptionEntry ;
extern
tOptionEntry OptionsDEBUG[] ;
extern
tOptionEntry OptionsOPTIONS[] ;
extern
tOptionEntry OptionsESCMODE[] ;
extern
tOptionEntry OptionsINPUT_ESCMODE[] ;
extern
tOptionEntry OptionsOUTPUT_MODE[] ;
extern
tOptionEntry OptionsOUTPUT_ESC_CHARSET[] ;
extern
tOptionEntry OptionsSESSION_MODE[] ;
int
embperl_OptionListSearch (
tOptionEntry * pList,
bool
bMult,
const
char
* sCmd,
const
char
* sOptions,
int
* pnValue) ;
const
char
* embperl_CalcExpires(
const
char
*sTime,
char
* sResult,
int
bHTTP) ;
#if 0
void
embperl_DefaultAppConfig (
tAppConfig *pCfg) ;
void
embperl_DefaultReqConfig (
tReqConfig *pCfg) ;
void
embperl_DefaultComponentConfig (
tComponentConfig *pCfg) ;
#endif
void
Embperl__App_new_init(pTHX_ tApp * pApp, SV * pPerlParam,
int
overwrite) ;
void
Embperl__App__Config_new_init(pTHX_ tAppConfig * pAppConfig, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Req_new_init (pTHX_ tReq * r, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Req__Config_new_init (pTHX_ tReqConfig * r, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Req__Param_new_init (pTHX_ tReqParam * r, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Component_new_init (pTHX_ tComponent * c, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Component__Config_new_init (pTHX_ tComponentConfig * c, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Component__Param_new_init (pTHX_ tComponentParam * c, SV * pPerlParam,
int
overwrite) ;
void
Embperl__Req__Config_destroy(pTHX_ tReqConfig * p) ;
void
Embperl__Req__Param_destroy(pTHX_ tReqParam * p) ;
void
Embperl__Req_destroy(pTHX_ tReq * p) ;
void
Embperl__Component__Config_destroy(pTHX_ tComponentConfig * p) ;
void
Embperl__Component__Param_destroy(pTHX_ tComponentParam * p) ;
void
Embperl__Component_destroy(pTHX_ tComponent *p) ;
int
embperl_EndPass1 (
void
) ;