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 <nsof...@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
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to