All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ronald Rojas <ronladred@gmail.com>
To: George Dunlap <george.dunlap@citrix.com>
Cc: wei.liu2@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH v2 4/5] golang/xenlight: Implement libxl_domain_info and libxl_domain_unpause
Date: Fri, 3 Mar 2017 14:31:02 -0500	[thread overview]
Message-ID: <20170303193102.GB9268@debian.rojas> (raw)
In-Reply-To: <482f83f5-7289-9402-e7e2-8f7a6316fe91@citrix.com>

On Fri, Mar 03, 2017 at 03:15:51PM +0000, George Dunlap wrote:
> On 02/03/17 16:07, Ronald Rojas wrote:
> > Add calls for the following host-related functionality:
> > - libxl_domain_info
> > - libxl_domain_unpause
> > 
> > Include Golang version for the libxl_domain_info as
> > DomainInfo.
> > 
> > Signed-off-by: George Dunlap <george.dunlap@citrix.com>
> > Signed-off-by: Ronald Rojas <ronladred@gmail.com>
> > ---
> > Changes since last version
> > - Created type and enumeration of DomainType and ShutdownReason
> > 
> > - Created String() method for DomainType and ShutdownReason
> > 
> > - Refactored creating DomainInfo from c type into seperate
> > toGo() function
> > 
> > - Applied libxl_domain_info_init/dispose()
> > 
> > - whitespace fixes
> > 
> > CC: xen-devel@lists.xen.org
> > CC: george.dunlap@citrix.com
> > CC: ian.jackson@eu.citrix.com
> > CC: wei.liu2@citrix.com
> > 
> > ---
> > ---
> >  tools/golang/xenlight/xenlight.go | 132 ++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 132 insertions(+)
> > 
> > diff --git a/tools/golang/xenlight/xenlight.go b/tools/golang/xenlight/xenlight.go
> > index 63cc805..18dedcb 100644
> > --- a/tools/golang/xenlight/xenlight.go
> > +++ b/tools/golang/xenlight/xenlight.go
> > @@ -34,6 +34,7 @@ import "C"
> >  import (
> >  	"fmt"
> >  	"unsafe"
> > +	"time"
> >  )
> >  
> >  /*
> > @@ -102,6 +103,12 @@ var errors = [...]string{
> >   * Types: Builtins
> >   */
> >  
> > +type Domid uint32
> > +
> > +type MemKB uint64
> > +
> > +type Uuid C.libxl_uuid
> > +
> >  type Context struct {
> >  	ctx *C.libxl_ctx
> >  }
> > @@ -203,6 +210,95 @@ func (cinfo *C.libxl_version_info) toGo() (info *VersionInfo) {
> >  	return
> >  }
> >  
> > +type ShutdownReason int32
> > +
> > +const(
> > +	ShutdownReasonUnknown = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_UNKNOWN)
> > +	ShutdownReasonPoweroff = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_POWEROFF)
> > +	ShutdownReasonReboot = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_REBOOT)
> > +	ShutdownReasonSuspend = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_SUSPEND)
> > +	ShutdownReasonCrash = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_CRASH)
> > +	ShutdownReasonWatchdog = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_WATCHDOG)
> > +	ShutdownReasonSoftReset = ShutdownReason(C.LIBXL_SHUTDOWN_REASON_SOFT_RESET)
> 
> Looks like this could use having `go fmt` run.
> 
> > +
> > +)
> > +
> > +func (sr ShutdownReason) String()(str string){
> > +	cstr := C.libxl_shutdown_reason_to_string(C.libxl_shutdown_reason(sr))
> > +	str = C.GoString(cstr)
> > +
> > +	return
> > +}
> > +
> > +type DomainType int32
> > +
> > +const(
> > +	DomainTypeInvalid = DomainType(C.LIBXL_DOMAIN_TYPE_INVALID)
> > +	DomainTypeHvm = DomainType(C.LIBXL_DOMAIN_TYPE_HVM)
> > +	DomainTypePv = DomainType(C.LIBXL_DOMAIN_TYPE_PV)
> > +)
> > +
> > +func (dt DomainType) String()(str string){
> > +	cstr := C.libxl_domain_type_to_string(C.libxl_domain_type(dt))
> > +	str = C.GoString(cstr)
> > +
> > +	return
> > +}
> > +
> > +type Dominfo struct {
> > +	Uuid       Uuid
> > +	Domid      Domid
> > +	Ssidref uint32
> > +	SsidLabel string
> > +	Running    bool
> > +	Blocked    bool
> > +	Paused     bool
> > +	Shutdown   bool
> > +	Dying      bool
> > +	NeverStop bool
> > +
> > +	ShutdownReason   int32
> > +	OutstandingMemkb MemKB
> > +	CurrentMemkb     MemKB
> > +	SharedMemkb      MemKB
> > +	PagedMemkb       MemKB
> > +	MaxMemkb         MemKB
> > +	CpuTime          time.Duration
> > +	VcpuMaxId       uint32
> > +	VcpuOnline       uint32
> > +	Cpupool           uint32
> > +	DomainType       int32
> > +
> > +}
> > +
> > +func (cdi *C.libxl_dominfo) toGo()(di *Dominfo){
> > +
> > +	di = &Dominfo{}
> > +	di.Uuid = Uuid(cdi.uuid)
> > +	di.Domid = Domid(cdi.domid)
> > +	di.Ssidref = uint32(cdi.ssidref)
> > +	di.SsidLabel = C.GoString(cdi.ssid_label)
> > +	di.Running = bool(cdi.running)
> > +	di.Blocked = bool(cdi.blocked)
> > +	di.Paused = bool(cdi.paused)
> > +	di.Shutdown = bool(cdi.shutdown)
> > +	di.Dying = bool(cdi.dying)
> > +	di.NeverStop= bool(cdi.never_stop)
> > +	di.ShutdownReason= int32(cdi.shutdown_reason)
> > +	di.OutstandingMemkb= MemKB(cdi.outstanding_memkb)
> > +	di.CurrentMemkb = MemKB(cdi.current_memkb)
> > +	di.SharedMemkb = MemKB(cdi.shared_memkb)
> > +	di.PagedMemkb = MemKB(cdi.paged_memkb)
> > +	di.MaxMemkb= MemKB(cdi.max_memkb)
> > +	di.CpuTime= time.Duration(cdi.cpu_time)
> > +	di.VcpuMaxId = uint32(cdi.vcpu_max_id)
> > +	di.VcpuOnline = uint32(cdi.vcpu_online)
> > +	di.Cpupool = uint32(cdi.cpupool)
> > +	di.DomainType = int32(cdi.domain_type)
> > +
> > +	return
> > +}
> > +
> >  /*
> >   * Context
> >   */
> > @@ -356,3 +452,39 @@ func (Ctx *Context) GetVersionInfo() (info *VersionInfo, err error) {
> >  
> >  	return
> >  }
> > +
> > +func (Ctx *Context) DomainInfo(Id Domid) (di *Dominfo, err error) {
> > +	err = Ctx.CheckOpen()
> > +	if err != nil {
> > +		return
> > +	}
> > +
> > +	var cdi C.libxl_dominfo
> > +	C.libxl_dominfo_init(&cdi)
> 
> As before, put the 'defer libxl_dominfo_dispose()' here.
> 

Fixed.

> > +
> > +	ret := C.libxl_domain_info(Ctx.ctx, unsafe.Pointer(&cdi), C.uint32_t(Id))
> 
> unsafe.Pointer() isn't needed here.

Fixed. 

> 
> Other than that, looks good, thanks.
> 
>  -George
> 

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

  reply	other threads:[~2017-03-03 19:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-02 16:07 [PATCH v2 1/5] golang/xenlight: Create stub package Ronald Rojas
2017-03-02 16:07 ` [PATCH v2 2/5] golang/xenlight: Add error constants and standard handling Ronald Rojas
2017-03-03 14:47   ` George Dunlap
2017-03-02 16:07 ` [PATCH v2 3/5] golang/xenlight: Add host-related functionality Ronald Rojas
2017-03-03 14:54   ` George Dunlap
2017-03-03 18:49     ` Ronald Rojas
2017-03-02 16:07 ` [PATCH v2 4/5] golang/xenlight: Implement libxl_domain_info and libxl_domain_unpause Ronald Rojas
2017-03-03 15:15   ` George Dunlap
2017-03-03 19:31     ` Ronald Rojas [this message]
2017-03-02 16:07 ` [PATCH v2 5/5] golang/xenlight: Add tests host related functionality functions Ronald Rojas
2017-03-02 17:36   ` Ian Jackson
2017-03-02 17:53     ` George Dunlap
2017-03-02 17:55       ` Ian Jackson
2017-03-02 18:01         ` George Dunlap
2017-03-03 15:02           ` Ian Jackson
2017-03-03 15:10             ` George Dunlap
2017-03-03 15:41               ` Ian Jackson
2017-03-02 18:22       ` Ronald Rojas
2017-03-03 16:20   ` George Dunlap
2017-03-03 14:42 ` [PATCH v2 1/5] golang/xenlight: Create stub package George Dunlap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170303193102.GB9268@debian.rojas \
    --to=ronladred@gmail.com \
    --cc=george.dunlap@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.