summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/mdesc.h
diff options
context:
space:
mode:
authorheppo <none@none>2006-05-16 16:05:21 -0700
committerheppo <none@none>2006-05-16 16:05:21 -0700
commit1ae0874509b6811fdde1dfd46f0d93fd09867a3f (patch)
tree77d0f1125a782e0ad2f4975497b8c299b4849f79 /usr/src/uts/common/sys/mdesc.h
parent77ed85091c75f96e0c776b6b222bc51695e3ee0c (diff)
downloadillumos-joyent-1ae0874509b6811fdde1dfd46f0d93fd09867a3f.tar.gz
FWARC 2005/633 Project Q Logial Domaining Umbrella
FWARC 2005/739 sun4v channels FWARC 2006/055 Domain Services FWARC 2006/072 sun4v virtual devices machine description data FWARC 2006/074 sun4v interrupt cookies FWARC 2006/075 Channel devices, Virtual Disk client and server bindings FWARC 2006/076 Virtual Network Client and switch Bindings FWARC 2006/081 Virtual Logical Domain Channel (vldc) Bindings FWARC 2006/086 LDOM variables FWARC 2006/105 LDOM support for NCP FWARC 2006/110 Domain Services MD node and other misc properties FWARC 2006/117 Virtual Console Concentrator Bindings FWARC 2006/135 sun4v channel console packets FWARC 2006/140 sun4v channels transport protocol FWARC 2006/141 FMA Domain Services FWARC 2006/174 NCS HV Update FWARC 2006/184 sun4v channels shared memory FWARC 2006/195 Virtual IO Communication Protocol PSARC 2006/152 Logical Domain Channels Transport API 6272074 Need interface to determine execution unit sharing. 6354556 Add machine description kernel framework support 6391870 LDoms v1.0 Solaris Changes
Diffstat (limited to 'usr/src/uts/common/sys/mdesc.h')
-rw-r--r--usr/src/uts/common/sys/mdesc.h60
1 files changed, 49 insertions, 11 deletions
diff --git a/usr/src/uts/common/sys/mdesc.h b/usr/src/uts/common/sys/mdesc.h
index e05374f60e..4bd335c38f 100644
--- a/usr/src/uts/common/sys/mdesc.h
+++ b/usr/src/uts/common/sys/mdesc.h
@@ -2,9 +2,8 @@
* 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.
+ * 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
* or http://www.opensolaris.org/os/licensing.
@@ -19,8 +18,9 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -87,22 +87,39 @@ extern "C" {
#ifndef _ASM /* { */
-typedef uint64_t mde_cookie_t;
+/*
+ * Opaque handles for use in external interfaces
+ */
+
+typedef void *md_t;
+
+typedef uint64_t mde_cookie_t;
#define MDE_INVAL_ELEM_COOKIE ((mde_cookie_t)-1)
typedef uint32_t mde_str_cookie_t;
#define MDE_INVAL_STR_COOKIE ((mde_str_cookie_t)-1)
+typedef uint64_t md_diff_cookie_t;
+#define MD_INVAL_DIFF_COOKIE ((md_diff_cookie_t)-1)
- /* Opaque structure for handling in functions */
-typedef void * md_t;
+#define MDESC_INVAL_GEN (0)
+/*
+ * External structure for MD diff interface
+ */
+typedef struct {
+ uint8_t type; /* property type */
+ char *namep; /* property name */
+} md_prop_match_t;
+/*
+ * External Interface
+ */
-extern md_t *md_init(void *);
-extern md_t *md_init_intern(uint64_t *, void*(*)(size_t),
- void (*)(void*, size_t));
+extern md_t *md_init_intern(uint64_t *,
+ void *(*allocp)(size_t),
+ void (*freep)(void *, size_t));
extern int md_fini(md_t *);
@@ -112,6 +129,10 @@ extern mde_str_cookie_t md_find_name(md_t *, char *namep);
extern mde_cookie_t md_root_node(md_t *);
+extern uint64_t md_get_gen(md_t *);
+
+extern size_t md_get_bin_size(md_t *);
+
extern int md_scan_dag(md_t *,
mde_cookie_t,
mde_str_cookie_t,
@@ -134,6 +155,24 @@ extern int md_get_prop_data(md_t *,
uint8_t **,
int *);
+extern md_diff_cookie_t md_diff_init(md_t *,
+ mde_cookie_t,
+ md_t *,
+ mde_cookie_t,
+ char *,
+ md_prop_match_t *);
+
+extern int md_diff_added(md_diff_cookie_t,
+ mde_cookie_t **);
+
+extern int md_diff_removed(md_diff_cookie_t,
+ mde_cookie_t **);
+
+extern int md_diff_matched(md_diff_cookie_t,
+ mde_cookie_t **,
+ mde_cookie_t **);
+
+extern int md_diff_fini(md_diff_cookie_t);
#endif /* } _ASM */
@@ -150,7 +189,6 @@ extern int md_get_prop_data(md_t *,
#define MDESCIOCSSZ (MDESCIOC | 2) /* Set new quote buffer size */
#define MDESCIOCDISCARD (MDESCIOC | 3) /* Discard quotes and reset */
-
#ifdef __cplusplus
}
#endif