|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 11/14] golang/xenlight: Implement get console path operations
On Thu, Mar 16, 2017 at 7:08 PM, Ronald Rojas <ronladred@xxxxxxxxx> wrote:
> 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@xxxxxxxxx>
> ---
> CC: xen-devel@xxxxxxxxxxxxx
> CC: george.dunlap@xxxxxxxxxx
> CC: ian.jackson@xxxxxxxxxxxxx
> CC: wei.liu2@xxxxxxxxxx
> ---
> ---
> tools/golang/xenlight/xenlight.go | 57
> +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 57 insertions(+)
>
> diff --git a/tools/golang/xenlight/xenlight.go
> b/tools/golang/xenlight/xenlight.go
> index 61d7f8f..d520f74 100644
> --- a/tools/golang/xenlight/xenlight.go
> +++ b/tools/golang/xenlight/xenlight.go
> @@ -1080,3 +1080,60 @@ 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
> + defer C.free(cpath)
> + 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
> + }
You can't call `defer C.free()` until you're certain that cpath will
contain a non-NULL pointer (here and in PrimaryConsole...)
Everything else looks fine.
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |