MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/plsql/include/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/plsql/include/pn.h

/*
 * 
 */

/* Copyright (c) 1999, 2007, Oracle. All rights reserved.  */
/* 
   NAME 
     pn.h - definitions common to native C compiler and generated C code.

     **!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     **!!!! THIS FILE IS SHIPPED FOR NCOMP.                        !!!!
     **!!!!                                                        !!!!
     **!!!! If you change it for a bug fix, you will need to make  !!!!
     **!!!! sure it is re-shipped also along with the new binaries.!!!!
     **!!!! Please make this note in the BUGDB along with your fix.!!!!
     **!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

     CAUTION:

     Do not put any interpreter specific definitions in pen.h (or files
     included by pen.h such as pvm.h/pdtyp.h/pptyp.h). Such definitions
     belong in pfrdef.h/pfmdef.h. Internal support functions not required
     by generated C code belongs to pet.h/pvm0.h.

   DESCRIPTION 

   RELATED DOCUMENTS 
 
   INSPECTION STATUS 
     Inspection date: 
     Inspection status: 
     Estimated increasing cost defects per page: 
     Rule sets: 
 
   ACCEPTANCE REVIEW STATUS 
     Review date: 
     Review status: 
     Reviewers: 
 
   PUBLIC FUNCTION(S) 

   PRIVATE FUNCTION(S)

   EXAMPLES

   NOTES

   MODIFIED   (MM/DD/YY)
   sylin       05/11/07 - Sleeping beauties
   astocks     11/28/06 - Allow more than 65K static variables (5714076)
   mvemulap    11/14/05 - bug 4728671 fix 
   cracicot    07/11/05 - ANSI prototypes; miscellaneous cleanup 
   bwadding    06/13/05 - ANSI prototypes; miscellaneous cleanup 
   dbronnik    05/06/04 - Add mcode location of exception and line tables
   mvemulap    10/30/03 - change pnmagn 
   dbronnik    08/07/03 - Add pnspcdid
   sylin       06/19/03 - Add state_buf_siz field in pnpkd
   mvemulap    10/11/02 - change magic number
   dbronnik    12/14/00 - add compilation version
   dbronnik    08/07/03 - 
   kmuthukk    12/01/00 - don't use "word" type in shipped file.
   kmuthukk    12/01/00 - remove s.h include
   kmuthukk    12/01/00 - lstcat macro should not be in shipped pn.h file
   mvemulap    10/24/00 - add nept field to pnpkd
   mvemulap    07/27/00 - 
   mvemulap    12/20/99 - 
   mvemulap    11/11/99 - 
   kmuthukk    01/07/99 - defns common to native C modules and native compiler
   kmuthukk    01/07/99 - Creation

*/

 
#ifndef PN_ORACLE
# define PN_ORACLE

#ifndef ORATYPES
# include <oratypes.h>
#endif


/*---------------------------------------------------------------------------
                     PUBLIC TYPES AND CONSTANTS
  ---------------------------------------------------------------------------*/
/* lu magic number */
struct pnmagn
{
  ub8   pnmag0;                                        /* compilation stamp1 */
  ub8   pnmag1;                                        /* compilation stamp2 */
};
typedef struct pnmagn pnmagn;

#define PNMAGN_CMP(m1,m2) \
  (((m1).pnmag0 == (m2).pnmag0) && \
   ((m1).pnmag1 == (m2).pnmag1))

#define PNMAGN_ASSIGN(m1,m2) \
  do {\
      (m1).pnmag0 = (m2).pnmag0; \
      (m1).pnmag1 = (m2).pnmag1; \
      } while (0)

/* pnpkd -- package (any lib unit actually) definition for native 
 * compiled libunits. When a lib-unit is instantiated, the information
 * need is taken from this definition. It is analogous to the pemtpkd
 * used for interpreted lib-units.
 */
struct  pnpkd
{
  pnmagn   pnmag;                                       /* compilation stamp */
  ub4      pnver;                          /* native compiler version number */
  ub4      pngfsz;                           /* size of package global frame */
  ub4      pnept;                                  /* number of entry points */
  ub2      pnnod;                                    /* # depends-on entries */
  ub2      pnmsl;                                     /* maximum scope level */
  ub4      pnnps;            /* number of package slots (global frame slots) */
  ub2      pnspcdid;                        /* spec object dependency number */
  ub1      pncbsz;          /* PHD_CNSTR_BSZ(SQLCS_IMPLICIT) at compile-time */
  ub1      pnnbsz;             /* PHD_CNSTR_BSZ(SQLCS_NCHAR) of compile time */
  size_t   pnstbsz;        /* padded size of space reserved by this module for
                            * state structures (perst). Useful only if
                            * pdnncs_ncomp_use_cstack==TRUE. Set to 0 if
                            * pdnncs_ncomp_use_cstack==FALSE.
                            */
  ub2      pnehtp;                                  /* DS page number of EHT */
  ub2      pnehto;                                 /* DS page offset of EHT  */
  ub4      pnnlns;                                 /* # line number segments */
  ub2      pnlnstp;                               /* DS page number of LNST  */
  ub2      pnlnsto;                               /* DS page offset of LNST  */

  void*    pncodeptr;                                     /* LU code pointer */
  size_t   pncodesize;                                       /* LU code size */
  ub4      pnexcp;                   /* number of entries in exception table */

  /* Remember: you can't reorder the sleeping beauties, you can only rename
     them! */
  size_t  pnpkdNevada;                                    /* Sleeping Beauty */
  void   *pnpkdMontana;                                   /* Sleeping Beauty */
  void   *pnpkdWyoming;                                   /* Sleeping Beauty */
  void   *pnpkdAlaska;                                    /* Sleeping Beauty */

};
typedef struct pnpkd pnpkd;


/*---------------------------------------------------------------------------
                     PRIVATE TYPES AND CONSTANTS
  ---------------------------------------------------------------------------*/


/*---------------------------------------------------------------------------
                           PUBLIC FUNCTIONS
  ---------------------------------------------------------------------------*/


/*---------------------------------------------------------------------------
                          PRIVATE FUNCTIONS
  ---------------------------------------------------------------------------*/


#endif                                                          /* PN_ORACLE */

OHA YOOOO