On 11/15/19 7:44 PM, Nick Rosbrook wrote:
> From: Nick Rosbrook <rosbro...@ainfosec.com>
> 
> Re-define Uuid as [16]byte and implement fromC, toC, and String functions.
> 
> Signed-off-by: Nick Rosbrook <rosbro...@ainfosec.com>
> ---
>  tools/golang/xenlight/xenlight.go | 37 +++++++++++++++++++++++++++++--
>  1 file changed, 35 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/golang/xenlight/xenlight.go 
> b/tools/golang/xenlight/xenlight.go
> index 6f0a9278ad..67c1bb1225 100644
> --- a/tools/golang/xenlight/xenlight.go
> +++ b/tools/golang/xenlight/xenlight.go
> @@ -86,7 +86,40 @@ type Devid int
>  
>  type MemKB uint64
>  
> -type Uuid C.libxl_uuid
> +// Uuid is a domain UUID.
> +type Uuid [16]byte
> +
> +// String formats a Uuid in the form "xxxx-xx-xx-xx-xxxxxx".
> +func (u Uuid) String() string {
> +     s := "%x%x%x%x-%x%x-%x%x-%x%x-%x%x%x%x%x%x"
> +     opts := make([]interface{}, 16)
> +
> +     for i, v := range u {
> +             opts[i] = v
> +     }
> +
> +     return fmt.Sprintf(s, opts...)
> +}
> +
> +func (u *Uuid) fromC(c *C.libxl_uuid) error {
> +     b := (*[16]C.uint8_t)(unsafe.Pointer(&c.uuid[0]))
> +
> +     for i, v := range b {
> +             u[i] = byte(v)
> +     }

Same thing here.  (Actually I c&p'd the wrong code in my previous reply;
but you get the idea.)

Everything else looks good.

 -George

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to