OSSP CVS Repository

ossp - ossp-pkg/rc/rc_private.h 1.23
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/rc/rc_private.h 1.23
/*  OSSP rc - Run-command processor
**  Copyright (c) 2002 Ralf S. Engelschall
**  Copyright (c) 2002 Cable & Wireless Deutschland GmbH
**  Copyright (c) 2002 The OSSP Project <http://www.ossp.org/>
**
**  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 <assert.h>
#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__ */


CVSTrac 2.0.1