[Libguestfs] [PATCH libnbd 3/9] golang: aio_buffer.go: Add missing documentation

Nir Soffer nsoffer at redhat.com
Thu Feb 10 21:02:51 UTC 2022


On Tue, Feb 1, 2022 at 3:09 PM Eric Blake <eblake at redhat.com> wrote:
>
> On Sun, Jan 30, 2022 at 01:33:31AM +0200, Nir Soffer wrote:
> > Add standard function documentation comments.
> >
> > The documentation should be available here:
> > https://pkg.go.dev/libguestfs.org/libnbd#AioBuffer
> >
> > Signed-off-by: Nir Soffer <nsoffer at redhat.com>
> > ---
>
> >
> > +// MakeAioBuffer makes a new buffer backed by an unitilialized C allocated
>
> uninitialized
>
> > +// array.
> >  func MakeAioBuffer(size uint) AioBuffer {
> >       return AioBuffer{C.malloc(C.ulong(size)), size}
> >  }
> >
> > +// FromBytes makes a new buffer backed by a C allocated array, initialized by
> > +// copying the given Go slice.
> >  func FromBytes(buf []byte) AioBuffer {
> >       size := len(buf)
> >       ret := MakeAioBuffer(uint(size))
> >       for i := 0; i < len(buf); i++ {
> >               *ret.Get(uint(i)) = buf[i]
> >       }
> >       return ret
> >  }
> >
> > +// Free deallocates the underlying C allocated array. Using the buffer after
> > +// Free() will panic.
> >  func (b *AioBuffer) Free() {
> >       if b.P != nil {
> >               C.free(b.P)
> >               b.P = nil
> >       }
> >  }
> >
> > +// Bytes copies the underlying C array to Go allocated memory and return a
> > +// slice. Modifying the returned slice does not modify the unerlying buffer
>
> underlying
>
> > +// backking array.
>
> backing
>
> >  func (b *AioBuffer) Bytes() []byte {
> >       return C.GoBytes(b.P, C.int(b.Size))
> >  }
> >
> > +// Get returns a pointer to a byte in the underlying C array. The pointer can
> > +// be used to modify the underlying array. The pointer must not be used after
> > +// caling Free().
> >  func (b *AioBuffer) Get(i uint) *byte {
> >       return (*byte)(unsafe.Pointer(uintptr(b.P) + uintptr(i)))
> >  }
> > --
> > 2.34.1

Thanks, will update in v2




More information about the Libguestfs mailing list