/* OSSP rc - Run-command processor ** Copyright (c) 2002 Ralf S. Engelschall ** Copyright (c) 2002 Cable & Wireless Deutschland GmbH ** Copyright (c) 2002 The OSSP Project ** ** This file is part of OSSP rc, a portable Run-command processor ** which can be found at http://www.ossp.org/pkg/lib/rc/ ** ** Permission to use, copy, modify, and distribute this software for ** any purpose with or without fee is hereby granted, provided that ** the above copyright notice and this permission notice appear in all ** copies. ** ** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ** SUCH DAMAGE. ** ** rc_private.h: Run-command processor ISO C private API header file */ #ifndef __OSSPRC_PRIVATE_H__ #define __OSSPRC_PRIVATE_H__ #ifdef HAVE_CONFIG_H #include "ac_config.h" #endif /* Assertion and tracing support */ #include #ifndef DEBUG #define NDEBUG #define TRACE(str) ((void)0) #define TRACEL(num) ((void)0) #else #define TRACE(str) fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, str) #define TRACEL(num) fprintf(stderr, "%s:%d: %ld\n", __FILE__, __LINE__, (long int)num) #endif /* FIXME Tie to shtool generation */ #define RC_VERSION "77.77" #define RC_SEC_SUB 1 #define RC_GOOD_MEASURE 8 #define RC_EXEC_MAXARGS 8 #define RC_READ_BUFSIZE 1024 #define RC_STR_ID "OSSP rc" /* APPID for OSSP rc */ #define RC_UID_ID 0xf8a1845c55e6449481176f6e9cea34b /* UUID for OSSP rc */ /* Intentional no operation */ #define RC_NOP ((void)0) /* Memory debugging support */ #if defined(HAVE_DMALLOC_H) && defined(WITH_DMALLOC) #include "dmalloc.h" #endif /* Define the ability to throw OSSP ex exceptions */ #include "ex.h" /* OSSP ex exception handling library */ #define RC_THROW(rv) \ ((rv) != RC_OK && (ex_catching && !ex_shielding) \ ? (ex_throw(RC_STR_ID, NULL, (rv)), (rv)) : (rv)) typedef int rc_opt_t; /* For use with RC_XXX_VAL definitions */ /* Analyser type */ typedef struct { short m_nRcs; /* How many rc files */ short m_nSecs; /* How many sections */ char **m_szRcs; /* Rc file names */ char *m_szTmp; /* Temp file name */ char *m_szFuncs; /* Function file names */ char *m_szLocs; /* Location path names */ char **m_pszSecs; /* Section vector */ } rc_anal_t; /* Script type */ typedef char * rc_script_t; /* Section type */ typedef struct { int nPri; int nUid; char *szData; size_t Bytes; } rc_section_t; /* Processor class */ typedef struct { rc_anal_t *m_pAnal; rc_script_t *m_pScriptcom; rc_section_t **m_ppSectvec; } rc_proc_t; #endif /* __OSSPRC_PRIVATE_H__ */