Print this page
7085 add support for "if" and "else" statements in dtrace

@@ -23,11 +23,11 @@
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
 /*
- * Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2014 by Delphix. All rights reserved.
  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
  */
 
 #ifndef _DTRACE_H
 #define _DTRACE_H

@@ -53,10 +53,11 @@
  */
 
 #define DTRACE_VERSION  3               /* library ABI interface version */
 
 struct ps_prochandle;
+struct dt_node;
 typedef struct dtrace_hdl dtrace_hdl_t;
 typedef struct dtrace_prog dtrace_prog_t;
 typedef struct dtrace_vector dtrace_vector_t;
 typedef struct dtrace_aggdata dtrace_aggdata_t;
 

@@ -109,11 +110,11 @@
 #define DTRACE_C_ZDEFS  0x0004  /* Permit probe defs that match zero probes */
 #define DTRACE_C_EATTR  0x0008  /* Error if program attributes less than min */
 #define DTRACE_C_CPP    0x0010  /* Preprocess input file with cpp(1) utility */
 #define DTRACE_C_KNODEF 0x0020  /* Permit unresolved kernel symbols in DIFO */
 #define DTRACE_C_UNODEF 0x0040  /* Permit unresolved user symbols in DIFO */
-#define DTRACE_C_PSPEC  0x0080  /* Intepret ambiguous specifiers as probes */
+#define DTRACE_C_PSPEC  0x0080  /* Interpret ambiguous specifiers as probes */
 #define DTRACE_C_ETAGS  0x0100  /* Prefix error messages with error tags */
 #define DTRACE_C_ARGREF 0x0200  /* Do not require all macro args to be used */
 #define DTRACE_C_DEFARG 0x0800  /* Use 0/"" as value for unspecified args */
 #define DTRACE_C_NOLIBS 0x1000  /* Do not process D system libraries */
 #define DTRACE_C_CTL    0x2000  /* Only process control directives */

@@ -517,10 +518,14 @@
     const char *, dtrace_typeinfo_t *);
 
 extern int dtrace_type_fcompile(dtrace_hdl_t *,
     FILE *, dtrace_typeinfo_t *);
 
+extern struct dt_node *dt_compile_sugar(dtrace_hdl_t *,
+    struct dt_node *);
+
+
 /*
  * DTrace Probe Interface
  *
  * Library clients can use these functions to iterate over the set of available
  * probe definitions and inquire as to their attributes.  The probe iteration