2N/A/*
2N/A * CDDL HEADER START
2N/A *
2N/A * The contents of this file are subject to the terms of the
2N/A * Common Development and Distribution License (the "License").
2N/A * You may not use this file except in compliance with the License.
2N/A *
2N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A * or http://www.opensolaris.org/os/licensing.
2N/A * See the License for the specific language governing permissions
2N/A * and limitations under the License.
2N/A *
2N/A * When distributing Covered Code, include this CDDL HEADER in each
2N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A * If applicable, add the following below this CDDL HEADER, with the
2N/A * fields enclosed by brackets "[]" replaced with your own identifying
2N/A * information: Portions Copyright [yyyy] [name of copyright owner]
2N/A *
2N/A * CDDL HEADER END
2N/A */
2N/A/*
2N/A * Copyright (c) 1988, 2011, Oracle and/or its affiliates. All rights reserved.
2N/A */
2N/A
2N/A#ifndef _KSTAT_H
2N/A#define _KSTAT_H
2N/A
2N/A#include <sys/types.h>
2N/A#include <sys/kstat.h>
2N/A
2N/A#ifdef __cplusplus
2N/Aextern "C" {
2N/A#endif
2N/A
2N/A/*
2N/A * kstat_open() returns a pointer to a kstat_ctl_t.
2N/A * This is used for subsequent libkstat operations.
2N/A */
2N/Atypedef struct kstat_ctl {
2N/A kid_t kc_chain_id; /* current kstat chain ID */
2N/A kstat_t *kc_chain; /* pointer to kstat chain */
2N/A int kc_kd; /* /dev/kstat descriptor */
2N/A void **kc_private; /* Private to libkstat, do not use outside. */
2N/A} kstat_ctl_t;
2N/A
2N/A#ifdef __STDC__
2N/Aextern kstat_ctl_t *kstat_open(void);
2N/Aextern int kstat_close(kstat_ctl_t *);
2N/Aextern kid_t kstat_read(kstat_ctl_t *, kstat_t *, void *);
2N/Aextern kid_t kstat_write(kstat_ctl_t *, kstat_t *, void *);
2N/Aextern kid_t kstat_chain_update(kstat_ctl_t *);
2N/Aextern kstat_t *kstat_lookup(kstat_ctl_t *, char *, int, char *);
2N/Aextern void *kstat_data_lookup(kstat_t *, char *);
2N/A#else
2N/Aextern kstat_ctl_t *kstat_open();
2N/Aextern int kstat_close();
2N/Aextern kid_t kstat_read();
2N/Aextern kid_t kstat_write();
2N/Aextern kid_t kstat_chain_update();
2N/Aextern kstat_t *kstat_lookup();
2N/Aextern void *kstat_data_lookup();
2N/A#endif
2N/A
2N/A#ifdef __cplusplus
2N/A}
2N/A#endif
2N/A
2N/A#endif /* _KSTAT_H */