]> xenbits.xensource.com Git - xen.git/commitdiff
golang/xenlight: Implement get console path operations
authorRonald Rojas <ronladred@gmail.com>
Wed, 5 Apr 2017 16:05:53 +0000 (17:05 +0100)
committerGeorge Dunlap <george.dunlap@citrix.com>
Thu, 6 Apr 2017 14:34:38 +0000 (15:34 +0100)
Implement Golang enumeration of libxl_console_type
as ConsoleType

Implement the following libxl functions:
- libxl_console_get_tty
- libxl_primary_console_get_tty

Signed-off-by: Ronald Rojas <ronladred@gmail.com>
Reviewed-by: George Dunlap <george.dunlap@citrix.com>
Acked-by: Ian Jackson <ian.jackson@citrix.com>
tools/golang/xenlight/xenlight.go

index a8ade4fc8d37581e4a1994c83419cf73c78a32b0..82aeb2221c3ee7c518c05d01b8648933b9817b9d 100644 (file)
@@ -835,3 +835,58 @@ func (Ctx *Context) ListVcpu(id Domid) (glist []Vcpuinfo) {
 
        return
 }
+
+type ConsoleType int
+
+const (
+       ConsoleTypeUnknown = ConsoleType(C.LIBXL_CONSOLE_TYPE_UNKNOWN)
+       ConsoleTypeSerial  = ConsoleType(C.LIBXL_CONSOLE_TYPE_SERIAL)
+       ConsoleTypePV      = ConsoleType(C.LIBXL_CONSOLE_TYPE_PV)
+)
+
+func (ct ConsoleType) String() (str string) {
+       cstr := C.libxl_console_type_to_string(C.libxl_console_type(ct))
+       str = C.GoString(cstr)
+
+       return
+}
+
+//int libxl_console_get_tty(libxl_ctx *ctx, uint32_t domid, int cons_num,
+//libxl_console_type type, char **path);
+func (Ctx *Context) ConsoleGetTty(id Domid, consNum int, conType ConsoleType) (path string, err error) {
+       err = Ctx.CheckOpen()
+       if err != nil {
+               return
+       }
+
+       var cpath *C.char
+       ret := C.libxl_console_get_tty(Ctx.ctx, C.uint32_t(id), C.int(consNum), C.libxl_console_type(conType), &cpath)
+       if ret != 0 {
+               err = Error(-ret)
+               return
+       }
+       defer C.free(cpath)
+
+       path = C.GoString(cpath)
+       return
+}
+
+//int libxl_primary_console_get_tty(libxl_ctx *ctx, uint32_t domid_vm,
+//                                     char **path);
+func (Ctx *Context) PrimaryConsoleGetTty(domid uint32) (path string, err error) {
+       err = Ctx.CheckOpen()
+       if err != nil {
+               return
+       }
+
+       var cpath *C.char
+       ret := C.libxl_primary_console_get_tty(Ctx.ctx, C.uint32_t(domid), &cpath)
+       if ret != 0 {
+               err = Error(-ret)
+               return
+       }
+       defer C.free(cpath)
+
+       path = C.GoString(cpath)
+       return
+}