itree.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* 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 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* itree.h -- public definitions for itree module
*
*/
#ifndef _EFT_ITREE_H
#define _EFT_ITREE_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/* the "fault" field in the event struct requires the definition of nvlist_t */
/* Numerical representation of propagation N value (A), short for All */
#define N_IS_ALL -1
struct event {
int is_suspect; /* true if on suspect list */
int count; /* for reports, number seen */
struct bubble {
int gen; /* generation # */
enum bubbletype {
B_FROM = 4000,
B_TO,
} t;
int nork;
int mark;
struct arrowlist {
struct arrow {
/* prop node in parse tree */
struct constraintlist {
struct constraintlist *next;
/* deferred constraints */
} *constraints;
int causes_tested;
unsigned long long mindelay;
unsigned long long maxdelay;
} *arrowp;
} *arrows;
} *bubbles;
};
/*
* struct iterinfo is the stuff we store in the dictionary of iterators
* when we assign a value to an iterator. it not only contains the value
* we assigned to the iterator, it contains a node pointer which we use to
* determine if we're the one that defined the value when popping [vh]match()
* recursion.
*/
struct iterinfo {
int num;
};
struct constraintlist *last);
const char *itree_bubbletype2str(enum bubbletype t);
void itree_fini(void);
#ifdef __cplusplus
}
#endif
#endif /* _EFT_ITREE_H */