/*
* 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 (c) 1999-2001 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _PTREE_IMPL_H
#define _PTREE_IMPL_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#include <synch.h>
#include <pthread.h>
/*
* Hash table size of Ptree and PICL tables
*/
/*
* Invalid PICL handle
*/
/*
* Is the object PICLized?
*/
/*
* A handle is a 64-bit quantity with the daemon's pid value in top 32 bits
* and the raw handle value in the lower 32 bits.
*/
/*
* Lock type when locking a node
*/
/*
* Property access operation
*/
/*
* PICL object type
*/
/*
* Hash table structure
*/
struct hash_elem {
union {
void *data;
} u;
};
typedef struct {
int hash_size;
} hash_t;
/*
* Property expression list
*/
typedef struct prop_list {
char *pname;
char *pval;
} prop_list_t;
/*
* PICL property (scalar or a table entry)
*/
struct picl_prop {
void *pvalue;
};
/*
* PICL node
*/
struct picl_node {
char *classname;
};
/*
* PICL object types
*/
/*
* PICL object
*/
struct picl_obj {
union {
} u;
};
/*
* PICL event queue structures
*/
struct eventq {
const char *ename;
const void *earg;
};
/*
* Event handler list
*/
struct eh_list {
char *ename;
void *cookie;
short execflg;
short wakeupflg;
};
#define SUPER_USER 0
#define MIN(x, y) ((x) < (y) ? (x) : (y))
typedef struct picld_plugin_reg_list {
typedef struct picld_plinfo {
char *libname;
char *pathname;
void *dlh;
extern int xptree_initialize(int);
extern void xptree_destroy(void);
extern int xptree_reinitialize(void);
/*
* PICL daemon verbose level flag
*/
extern int verbose_level;
#ifdef __cplusplus
}
#endif
#endif /* _PTREE_IMPL_H */