/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (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 2009 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
#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 */
/*
* effects_test event cached_state bits
* - reset on each call to effects_test()
*/
/*
* arrow mark bits (for K-count)
*/
/*
* requirements_test event cached_state bits
*/
/*
* requirements_test bubble mark bits
*/
/*
* causes_test event cached_state bits
*/
struct event {
unsigned long long cached_delay;
struct bubble {
int nork;
enum bubbletype {
B_TO,
} t:2;
struct arrowlist {
struct arrow {
/* prop node in parse tree */
struct constraintlist {
/* deferred constraints */
} *constraints;
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 */