17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate  * with the License.
87c478bd9Sstevel@tonic-gate  *
97c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate  * and limitations under the License.
137c478bd9Sstevel@tonic-gate  *
147c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * CDDL HEADER END
217c478bd9Sstevel@tonic-gate  */
227c478bd9Sstevel@tonic-gate /*
23414388d7Ssl  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
257c478bd9Sstevel@tonic-gate  *
267c478bd9Sstevel@tonic-gate  * ident	"%Z%%M%	%I%	%E% SMI"
277c478bd9Sstevel@tonic-gate  */
287c478bd9Sstevel@tonic-gate 
297c478bd9Sstevel@tonic-gate package com.sun.solaris.service.pools;
307c478bd9Sstevel@tonic-gate 
317c478bd9Sstevel@tonic-gate /**
327c478bd9Sstevel@tonic-gate  * A thin layer over the libpool(3LIB) interface so that Java can be
337c478bd9Sstevel@tonic-gate  * used to manipulate resource pools. For more information on this
347c478bd9Sstevel@tonic-gate  * facility refer to the manpage and the developer documentation.
357c478bd9Sstevel@tonic-gate  *
367c478bd9Sstevel@tonic-gate  * Most of the functionality in this class is not intended to be
377c478bd9Sstevel@tonic-gate  * exposed to users of the package. The other classes in the package
387c478bd9Sstevel@tonic-gate  * provide appropriate Java abstractions for using this functionality.
397c478bd9Sstevel@tonic-gate  *
407c478bd9Sstevel@tonic-gate  * Refer to the package documentation and the documentation of the
417c478bd9Sstevel@tonic-gate  * other publicly visible classes for more details.
427c478bd9Sstevel@tonic-gate  */
437c478bd9Sstevel@tonic-gate public class PoolInternal {
44*55fea89dSDan Cross 	static {
45*55fea89dSDan Cross 		System.loadLibrary("jpool");
PoolInternal.init()467c478bd9Sstevel@tonic-gate 		PoolInternal.init();
477c478bd9Sstevel@tonic-gate 	}
487c478bd9Sstevel@tonic-gate 
init()497c478bd9Sstevel@tonic-gate 	final static native void init();
pool_version(long ver)507c478bd9Sstevel@tonic-gate 	final static native long pool_version(long ver);
get_POX_NATIVE()517c478bd9Sstevel@tonic-gate 	final static native int get_POX_NATIVE();
get_POX_TEXT()527c478bd9Sstevel@tonic-gate 	final static native int get_POX_TEXT();
get_POC_INVAL()537c478bd9Sstevel@tonic-gate 	final static native int get_POC_INVAL();
get_POC_UINT()547c478bd9Sstevel@tonic-gate 	final static native int get_POC_UINT();
get_POC_INT()557c478bd9Sstevel@tonic-gate 	final static native int get_POC_INT();
get_POC_DOUBLE()567c478bd9Sstevel@tonic-gate 	final static native int get_POC_DOUBLE();
get_POC_BOOL()577c478bd9Sstevel@tonic-gate 	final static native int get_POC_BOOL();
get_POC_STRING()587c478bd9Sstevel@tonic-gate 	final static native int get_POC_STRING();
get_POV_NONE()597c478bd9Sstevel@tonic-gate 	final static native int get_POV_NONE();
get_POV_LOOSE()607c478bd9Sstevel@tonic-gate 	final static native int get_POV_LOOSE();
get_POV_STRICT()617c478bd9Sstevel@tonic-gate 	final static native int get_POV_STRICT();
get_POV_RUNTIME()627c478bd9Sstevel@tonic-gate 	final static native int get_POV_RUNTIME();
get_POF_INVALID()637c478bd9Sstevel@tonic-gate 	final static native int get_POF_INVALID();
get_POF_VALID()647c478bd9Sstevel@tonic-gate 	final static native int get_POF_VALID();
get_POF_DESTROY()657c478bd9Sstevel@tonic-gate 	final static native int get_POF_DESTROY();
pool_error()667c478bd9Sstevel@tonic-gate 	public final static native int pool_error();
pool_strerror(int error)677c478bd9Sstevel@tonic-gate 	public final static native String pool_strerror(int error);
pool_strerror_sys()687c478bd9Sstevel@tonic-gate 	public final static native String pool_strerror_sys();
pool_resource_type_list(long types, long numtypes)697c478bd9Sstevel@tonic-gate 	public final static native int pool_resource_type_list(long types,
707c478bd9Sstevel@tonic-gate 	    long numtypes);
pool_get_status()71414388d7Ssl 	public final static native int pool_get_status();
pool_set_status(int state)727c478bd9Sstevel@tonic-gate 	public final static native int pool_set_status(int state);
pool_conf_alloc()737c478bd9Sstevel@tonic-gate 	final static native long pool_conf_alloc();
pool_conf_free(long conf)747c478bd9Sstevel@tonic-gate 	final static native void pool_conf_free(long conf);
pool_conf_status(long conf)757c478bd9Sstevel@tonic-gate 	final static native int pool_conf_status(long conf);
pool_conf_close(long conf)767c478bd9Sstevel@tonic-gate 	final static native int pool_conf_close(long conf);
pool_conf_remove(long conf)777c478bd9Sstevel@tonic-gate 	final static native int pool_conf_remove(long conf);
pool_conf_open(long conf, String location, int oflags)787c478bd9Sstevel@tonic-gate 	final static native int pool_conf_open(long conf, String location,
797c478bd9Sstevel@tonic-gate 	    int oflags);
pool_conf_rollback(long conf)807c478bd9Sstevel@tonic-gate 	final static native int pool_conf_rollback(long conf);
pool_conf_commit(long conf, int active)817c478bd9Sstevel@tonic-gate 	final static native int pool_conf_commit(long conf, int active);
pool_conf_export(long conf, String location, int fmt)827c478bd9Sstevel@tonic-gate 	final static native int pool_conf_export(long conf, String location,
837c478bd9Sstevel@tonic-gate 	    int fmt);
pool_conf_validate(long conf, int level)847c478bd9Sstevel@tonic-gate 	final static native int pool_conf_validate(long conf, int level);
pool_conf_update(long conf)857c478bd9Sstevel@tonic-gate 	final static native int pool_conf_update(long conf);
pool_get_pool(long conf, String name)867c478bd9Sstevel@tonic-gate 	final static native long pool_get_pool(long conf, String name);
pool_query_pools(long conf, java.util.List props)877c478bd9Sstevel@tonic-gate 	final static native java.util.List pool_query_pools(long conf,
887c478bd9Sstevel@tonic-gate 	    java.util.List props);
pool_get_resource(long conf, String type, String name)897c478bd9Sstevel@tonic-gate 	final static native long pool_get_resource(long conf, String type,
907c478bd9Sstevel@tonic-gate 	    String name);
pool_query_resources(long conf, java.util.List props)917c478bd9Sstevel@tonic-gate 	final static native java.util.List pool_query_resources(long conf,
927c478bd9Sstevel@tonic-gate 	    java.util.List props);
pool_query_components(long conf, java.util.List props)937c478bd9Sstevel@tonic-gate 	final static native java.util.List pool_query_components(long conf,
947c478bd9Sstevel@tonic-gate 	    java.util.List props);
pool_conf_location(long conf)957c478bd9Sstevel@tonic-gate 	final static native String pool_conf_location(long conf);
pool_conf_info(long conf, int deep)967c478bd9Sstevel@tonic-gate 	final static native String pool_conf_info(long conf, int deep);
pool_resource_create(long conf, String type, String name)977c478bd9Sstevel@tonic-gate 	final static native long pool_resource_create(long conf,
987c478bd9Sstevel@tonic-gate 	    String type, String name);
pool_resource_destroy(long conf, long res)997c478bd9Sstevel@tonic-gate 	final static native int pool_resource_destroy(long conf, long res);
pool_resource_transfer(long conf, long src, long tgt, long size)1007c478bd9Sstevel@tonic-gate 	final static native int pool_resource_transfer(long conf,
1017c478bd9Sstevel@tonic-gate 	    long src, long tgt, long size);
pool_resource_xtransfer(long conf, long src, long tgt, java.util.List components)1027c478bd9Sstevel@tonic-gate 	final static native int pool_resource_xtransfer(long conf,
1037c478bd9Sstevel@tonic-gate 	    long src, long tgt, java.util.List components);
pool_query_resource_components( long conf, long res, java.util.List props)1047c478bd9Sstevel@tonic-gate 	final static native java.util.List pool_query_resource_components(
1057c478bd9Sstevel@tonic-gate 	    long conf, long res, java.util.List props);
pool_resource_info(long conf, long res, int deep)1067c478bd9Sstevel@tonic-gate 	final static native String pool_resource_info(long conf, long res,
1077c478bd9Sstevel@tonic-gate 	    int deep);
pool_create(long conf, String name)1087c478bd9Sstevel@tonic-gate 	final static native long pool_create(long conf, String name);
pool_destroy(long conf, long pool)1097c478bd9Sstevel@tonic-gate 	final static native int pool_destroy(long conf, long pool);
pool_associate(long conf, long pool, long res)1107c478bd9Sstevel@tonic-gate 	final static native int pool_associate(long conf, long pool,
1117c478bd9Sstevel@tonic-gate 	    long res);
pool_dissociate(long conf, long pool, long res)1127c478bd9Sstevel@tonic-gate 	final static native int pool_dissociate(long conf, long pool,
1137c478bd9Sstevel@tonic-gate 	    long res);
pool_info(long conf, long pool, int deep)1147c478bd9Sstevel@tonic-gate 	final static native String pool_info(long conf, long pool, int deep);
pool_query_pool_resources( long conf, long pool, java.util.List props)1157c478bd9Sstevel@tonic-gate 	final static native java.util.List pool_query_pool_resources(
1167c478bd9Sstevel@tonic-gate 	    long conf, long pool, java.util.List props);
pool_get_owning_resource(long conf, long comp)1177c478bd9Sstevel@tonic-gate 	final static native long pool_get_owning_resource(long conf,
1187c478bd9Sstevel@tonic-gate 	    long comp);
pool_component_info(long conf, long comp, int deep)1197c478bd9Sstevel@tonic-gate 	final static native String pool_component_info(long conf,
1207c478bd9Sstevel@tonic-gate 	    long comp, int deep);
pool_get_property(long conf, long elem, String name, long val)1217c478bd9Sstevel@tonic-gate 	final static native int pool_get_property(long conf, long elem,
1227c478bd9Sstevel@tonic-gate 	    String name, long val);
pool_put_property(long conf, long elem, String name, long val)1237c478bd9Sstevel@tonic-gate 	final static native int pool_put_property(long conf, long elem,
1247c478bd9Sstevel@tonic-gate 	    String name, long val);
pool_rm_property(long conf, long elem, String name)1257c478bd9Sstevel@tonic-gate 	final static native int pool_rm_property(long conf, long elem,
1267c478bd9Sstevel@tonic-gate 	    String name);
pool_walk_properties(long conf, long elem, long user, long callback)1277c478bd9Sstevel@tonic-gate 	final static native int pool_walk_properties(long conf, long elem,
1287c478bd9Sstevel@tonic-gate 	    long user, long callback);
pool_conf_to_elem(long conf)1297c478bd9Sstevel@tonic-gate 	final static native long pool_conf_to_elem(long conf);
pool_to_elem(long conf, long pool)1307c478bd9Sstevel@tonic-gate 	final static native long pool_to_elem(long conf, long pool);
pool_resource_to_elem(long conf, long res)1317c478bd9Sstevel@tonic-gate 	final static native long pool_resource_to_elem(long conf, long res);
pool_component_to_elem(long conf, long comp)1327c478bd9Sstevel@tonic-gate 	final static native long pool_component_to_elem(long conf, long comp);
pool_value_get_uint64(long pv, long result)1337c478bd9Sstevel@tonic-gate 	final static native int pool_value_get_uint64(long pv, long result);
pool_value_get_int64(long pv, long result)1347c478bd9Sstevel@tonic-gate 	final static native int pool_value_get_int64(long pv, long result);
pool_value_get_double(long pv, long result)1357c478bd9Sstevel@tonic-gate 	final static native int pool_value_get_double(long pv, long result);
pool_value_get_bool(long pv, long result)1367c478bd9Sstevel@tonic-gate 	final static native int pool_value_get_bool(long pv, long result);
pool_value_get_string(long pv, long result)1377c478bd9Sstevel@tonic-gate 	final static native int pool_value_get_string(long pv, long result);
pool_value_get_type(long pv)1387c478bd9Sstevel@tonic-gate 	final static native int pool_value_get_type(long pv);
pool_value_set_uint64(long pv, long val)1397c478bd9Sstevel@tonic-gate 	final static native void pool_value_set_uint64(long pv, long val);
pool_value_set_int64(long pv, long val)1407c478bd9Sstevel@tonic-gate 	final static native void pool_value_set_int64(long pv, long val);
pool_value_set_double(long pv, double val)1417c478bd9Sstevel@tonic-gate 	final static native void pool_value_set_double(long pv, double val);
pool_value_set_bool(long pv, short val)1427c478bd9Sstevel@tonic-gate 	final static native void pool_value_set_bool(long pv, short val);
pool_value_set_string(long pv, String val)1437c478bd9Sstevel@tonic-gate 	final static native int pool_value_set_string(long pv, String val);
pool_value_get_name(long pv)1447c478bd9Sstevel@tonic-gate 	final static native String pool_value_get_name(long pv);
pool_value_set_name(long pv, String val)1457c478bd9Sstevel@tonic-gate 	final static native int pool_value_set_name(long pv, String val);
pool_value_alloc()1467c478bd9Sstevel@tonic-gate 	final static native long pool_value_alloc();
pool_value_free(long pv)1477c478bd9Sstevel@tonic-gate 	final static native void pool_value_free(long pv);
pool_static_location()1487c478bd9Sstevel@tonic-gate 	public final static native String pool_static_location();
pool_dynamic_location()1497c478bd9Sstevel@tonic-gate 	public final static native String pool_dynamic_location();
pool_set_binding(String name, int idtype, int id)1507c478bd9Sstevel@tonic-gate 	public final static native int pool_set_binding(String name,
1517c478bd9Sstevel@tonic-gate 	    int idtype, int id);
pool_get_binding(int pid)1527c478bd9Sstevel@tonic-gate 	public final static native String pool_get_binding(int pid);
pool_get_resource_binding( String type, int pid)1537c478bd9Sstevel@tonic-gate 	public final static native String pool_get_resource_binding(
1547c478bd9Sstevel@tonic-gate 	    String type, int pid);
pool_walk_pools(long conf, long user, long callback)1557c478bd9Sstevel@tonic-gate 	final static native int pool_walk_pools(long conf, long user,
1567c478bd9Sstevel@tonic-gate 	    long callback);
pool_walk_resources(long conf, long pool, long user, long callback)1577c478bd9Sstevel@tonic-gate 	final static native int pool_walk_resources(long conf, long pool,
1587c478bd9Sstevel@tonic-gate 	    long user, long callback);
pool_walk_components(long conf, long res, long user, long callback)1597c478bd9Sstevel@tonic-gate 	final static native int pool_walk_components(long conf, long res,
1607c478bd9Sstevel@tonic-gate 	    long user, long callback);
1617c478bd9Sstevel@tonic-gate 	/*
1627c478bd9Sstevel@tonic-gate 	 * enums and constants
1637c478bd9Sstevel@tonic-gate 	 */
1647c478bd9Sstevel@tonic-gate 	public final static int POOL_VER_CURRENT = 1;
1657c478bd9Sstevel@tonic-gate 	public final static int POOL_VER_NONE = 0;
1667c478bd9Sstevel@tonic-gate 	public final static int PO_TRUE = 1;
1677c478bd9Sstevel@tonic-gate 	public final static int PO_FALSE = 0;
1687c478bd9Sstevel@tonic-gate 	public final static int PO_SUCCESS = 0;
1697c478bd9Sstevel@tonic-gate 	public final static int PO_FAIL = -1;
1707c478bd9Sstevel@tonic-gate 	public final static int POE_OK = 0;
1717c478bd9Sstevel@tonic-gate 	public final static int POE_BAD_PROP_TYPE = 1;
1727c478bd9Sstevel@tonic-gate 	public final static int POE_INVALID_CONF = 2;
1737c478bd9Sstevel@tonic-gate 	public final static int POE_NOTSUP = 3;
1747c478bd9Sstevel@tonic-gate 	public final static int POE_INVALID_SEARCH = 4;
1757c478bd9Sstevel@tonic-gate 	public final static int POE_BADPARAM = 5;
1767c478bd9Sstevel@tonic-gate 	public final static int POE_PUTPROP = 6;
1777c478bd9Sstevel@tonic-gate 	public final static int POE_DATASTORE = 7;
1787c478bd9Sstevel@tonic-gate 	public final static int POE_SYSTEM = 8;
1797c478bd9Sstevel@tonic-gate 	public final static int POE_ACCESS = 9;
1807c478bd9Sstevel@tonic-gate 	public final static int PO_RDONLY = 0x0;
1817c478bd9Sstevel@tonic-gate 	public final static int PO_RDWR = 0x1;
1827c478bd9Sstevel@tonic-gate 	public final static int PO_CREAT = 0x2;
1837c478bd9Sstevel@tonic-gate 	public final static int PO_DISCO = 0x4;
1847c478bd9Sstevel@tonic-gate 	public final static int PO_UPDATE = 0x8;
1857c478bd9Sstevel@tonic-gate 	public final static String POA_IMPORTANCE = "importance based";
1867c478bd9Sstevel@tonic-gate 	public final static String POA_SURPLUS_TO_DEFAULT =
1877c478bd9Sstevel@tonic-gate 	    "surplus to default";
1887c478bd9Sstevel@tonic-gate 	public final static int POU_SYSTEM = 0x1;
1897c478bd9Sstevel@tonic-gate 	public final static int POU_POOL = 0x2;
1907c478bd9Sstevel@tonic-gate 	public final static int POU_PSET = 0x4;
1917c478bd9Sstevel@tonic-gate 	public final static int POU_CPU = 0x8;
1927c478bd9Sstevel@tonic-gate 	public final static int POX_NATIVE = get_POX_NATIVE();
1937c478bd9Sstevel@tonic-gate 	public final static int POX_TEXT = get_POX_TEXT();
1947c478bd9Sstevel@tonic-gate 	public final static int POC_INVAL = get_POC_INVAL();
1957c478bd9Sstevel@tonic-gate 	public final static int POC_UINT = get_POC_UINT();
1967c478bd9Sstevel@tonic-gate 	public final static int POC_INT = get_POC_INT();
1977c478bd9Sstevel@tonic-gate 	public final static int POC_DOUBLE = get_POC_DOUBLE();
1987c478bd9Sstevel@tonic-gate 	public final static int POC_BOOL = get_POC_BOOL();
1997c478bd9Sstevel@tonic-gate 	public final static int POC_STRING = get_POC_STRING();
2007c478bd9Sstevel@tonic-gate 	public final static int POV_NONE = get_POV_NONE();
2017c478bd9Sstevel@tonic-gate 	public final static int POV_LOOSE = get_POV_LOOSE();
2027c478bd9Sstevel@tonic-gate 	public final static int POV_STRICT = get_POV_STRICT();
2037c478bd9Sstevel@tonic-gate 	public final static int POV_RUNTIME = get_POV_RUNTIME();
2047c478bd9Sstevel@tonic-gate 	public final static int POF_INVALID = get_POF_INVALID();
2057c478bd9Sstevel@tonic-gate 	public final static int POF_VALID = get_POF_VALID();
2067c478bd9Sstevel@tonic-gate 	public final static int POF_DESTROY = get_POF_DESTROY();
2077c478bd9Sstevel@tonic-gate }
208