dt_pcb.h revision dfd08267d2958ae1cd559dd7dc2f36bf5461648d
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _DT_PCB_H
#define _DT_PCB_H
#ifndef VBOX
# pragma ident "%Z%%M% %I% %E% SMI"
#endif
#include <dtrace.h>
#include <setjmp.h>
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <dt_parser.h>
#include <dt_regset.h>
#include <dt_inttab.h>
#include <dt_strtab.h>
#include <dt_decl.h>
#include <dt_as.h>
typedef struct dt_pcb {
char *pcb_filetag; /* optional file name string (or NULL) */
const char *pcb_string; /* pointer to input string (or NULL) */
const char *pcb_strptr; /* pointer to input position */
int pcb_sargc; /* number of script arguments (if any) */
char *const *pcb_sargv; /* script argument strings (if any) */
const char *pcb_region; /* optional region name for yyerror() suffix */
int pcb_context; /* yyparse() rules context (DT_CTX_* value) */
int pcb_token; /* token to be returned by yylex() (if != 0) */
int pcb_cstate; /* state to be restored by lexer at state end */
int pcb_braces; /* number of open curly braces in lexer */
int pcb_brackets; /* number of open square brackets in lexer */
int pcb_parens; /* number of open parentheses in lexer */
} dt_pcb_t;
extern void dt_pcb_pop(dtrace_hdl_t *, int);
#ifdef __cplusplus
}
#endif
#endif /* _DT_PCB_H */