|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/4] golang/xenlight: add NameToDomid and DomidToName util functions
Many exported functions in xenlight require a domid as an argument. Make
it easier for package users to use these functions by adding wrappers
for the libxl utility functions libxl_name_to_domid and
libxl_domid_to_name.
Signed-off-by: Nick Rosbrook <rosbrookn@xxxxxxxxxxxx>
---
tools/golang/xenlight/xenlight.go | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/tools/golang/xenlight/xenlight.go
b/tools/golang/xenlight/xenlight.go
index 3f1b0baa0c..8492bcec4e 100644
--- a/tools/golang/xenlight/xenlight.go
+++ b/tools/golang/xenlight/xenlight.go
@@ -20,6 +20,7 @@ package xenlight
#cgo LDFLAGS: -lxenlight -lyajl -lxentoollog
#include <stdlib.h>
#include <libxl.h>
+#include <libxl_utils.h>
*/
import "C"
@@ -124,6 +125,28 @@ func (ctx *Context) Close() error {
type Domid uint32
+// NameToDomid returns the Domid for a domain, given its name, if it exists.
+func (Ctx *Context) NameToDomid(name string) (Domid, error) {
+ var domid C.uint32_t
+
+ cname := C.CString(name)
+ defer C.free(unsafe.Pointer(cname))
+
+ if ret := C.libxl_name_to_domid(Ctx.ctx, cname, &domid); ret != 0 {
+ return ^Domid(0), Error(ret)
+ }
+
+ return Domid(domid), nil
+}
+
+// DomidToName returns the name for a domain, given its domid.
+func (Ctx *Context) DomidToName(domid Domid) string {
+ cname := C.libxl_domid_to_name(Ctx.ctx, C.uint32_t(domid))
+ defer C.free(unsafe.Pointer(cname))
+
+ return C.GoString(cname)
+}
+
// Devid is a device ID.
type Devid int
--
2.17.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |