search for: libnbderror

Displaying 6 results from an estimated 6 matches for "libnbderror".

2020 Mar 17
5
[PATCH libnbd v2 0/3] Unfinished golang bindings.
These bindings get as far as running very simple connections. However there are many missing parts still: * No callbacks. * No functions which handle buffers (pread/pwrite!) This is posted just for general early interest, not even for review. Rich.
2020 Mar 17
0
[PATCH libnbd] Add outline framework for Go language bindings (golang).
...c_h, err := C.nbd_create () + if c_h == nil { + return nil, err + } + h := &Libnbd{h : c_h} + // Finalizers aren't guaranteed to run, but try having one anyway ... + runtime.SetFinalizer (h, (*Libnbd).Close) + return h, nil + +} + +/* All functions return ([result,] LibnbdError). */ +type LibnbdError struct { + Op string // operation which failed + Errmsg string // string (nbd_get_error) + Errno syscall.Errno // errno (nbd_get_errno) +} + +func (e *LibnbdError) String() string { + if e.Errno != 0 { + return fmt.Sprintf (\&...
2020 Mar 17
0
[PATCH libnbd v2 2/3] Add outline framework for Go language bindings (golang).
...ime\" + \"syscall\" +) + +/* Handle. */ +type Libnbd struct { + h *C.struct_nbd_handle +} + +/* Convert handle to string (just for debugging). */ +func (h *Libnbd) String () string { + return \"&Libnbd{}\" +} + +/* All functions (except Close) return ([result,] LibnbdError). */ +type LibnbdError struct { + Op string // operation which failed + Errmsg string // string (nbd_get_error) + Errno syscall.Errno // errno (nbd_get_errno) +} + +func (e *LibnbdError) String() string { + if e.Errno != 0 { + return fmt.Sprintf (\&...
2020 Mar 24
1
[PATCH libnbd v3] Add Go language bindings (golang) (RHBZ#1814538).
This feature is roughly finished now, although it needs a few more tests and some examples. It's pretty much up to par with all the other bindings, but it lacks a completely safe AIO buffer. It won't stop you from freeing the buffer too early) because golang's GC inexplicably lacks a way to declare a root from C. I can probably do it with a global variable and ref counting on the
2020 Mar 25
3
[PATCH libnbd v4] Add Go language bindings (golang) (RHBZ#1814538).
Now runs a complete set of tests, notably including the AIO test. File descriptors are passed in and out as plain ints (instead of *os.File) for a couple of reasons: (1) We have to pass the plain int to syscall.Select. (2) Turning an fd into an os.File causes golang to set the blocking flag which is deeply unhelpful. Rich.
2020 Mar 17
0
[PATCH libnbd v2 3/3] golang: Add straightforward bindings, without callbacks.
...st be no blank line between end comment and import! // https://github.com/golang/go/issues/9733 */ @@ -79,6 +383,7 @@ import ( \"fmt\" \"runtime\" \"syscall\" + \"unsafe\" ) /* Handle. */ @@ -147,4 +452,27 @@ func (h *Libnbd) Close () *LibnbdError { return nil } +/* Functions for translating between NULL-terminated lists of + * C strings and golang []string. + */ +func arg_string_list (xs []string) **C.char { + r := make ([]*C.char, 1 + len (xs)) + for i, x := range xs { + r[i] = C.CString (x) + } + r[len (xs)] = n...