Current File : //usr/include/libv12n.h
/*
 * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 */

#ifndef _LIBV12N_H
#define	_LIBV12N_H

#include <sys/types.h>

#if defined(__sparc)
#include <libv12n_ldoms.h>
#endif

#ifdef	__cplusplus
extern "C" {
#endif

/* Max length of an v12n property */
#define	V12N_PROP_MAX_LEN		1024

typedef struct v12n_env v12n_env_t;

typedef enum {
	/* Generic properties always supported */
	V12N_PROP_NAME = 1,
	V12N_PROP_CLASS,
	/* 3 - 1023 unused */

	/* LDoms properties */
	V12N_PROP_LDOMS_ROLE_CONTROL = 1024,
	V12N_PROP_LDOMS_ROLE_IO,
	V12N_PROP_LDOMS_ROLE_ROOT,
	V12N_PROP_LDOMS_ROLE_SERVICE,
	V12N_PROP_LDOMS_NAME,
	V12N_PROP_LDOMS_UUID,
	V12N_PROP_LDOMS_CONTROL_NAME,
	V12N_PROP_LDOMS_CHASSIS,

	/* Kernel Zone properties */
	V12N_PROP_KZ_ZONENAME = 2048
} v12n_prop_t;

v12n_env_t *v12n_get_current_env(void);
v12n_env_t *v12n_get_parent_env(void);

char *v12n_get_env_prop(v12n_env_t *, v12n_prop_t);

v12n_env_t **v12n_list_supported_envs(void);
v12n_env_t **v12n_list_envs(void);
v12n_prop_t *v12n_list_env_props(v12n_env_t *);

const char *v12n_get_prop_name(v12n_prop_t);

void v12n_free_env(v12n_env_t *);
v12n_env_t *v12n_copy_env(v12n_env_t *);

#ifdef	__cplusplus
}
#endif

#endif /* _LIBV12N_H */