From 3491967c1c313be935ccfccc9f0eb73523a66918 Mon Sep 17 00:00:00 2001 From: Renaud Gaubert Date: Sat, 13 Jan 2018 00:41:50 +0100 Subject: [PATCH] Add RegisterEventForDevice --- src/nvml/bindings.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/nvml/bindings.go b/src/nvml/bindings.go index 65c6ed4..d814092 100644 --- a/src/nvml/bindings.go +++ b/src/nvml/bindings.go @@ -89,6 +89,39 @@ func RegisterEvent(es EventSet, event int) error { return nil } +func RegisterEventForDevice(es EventSet, event int, uuid string) error { + n, err := deviceGetCount() + if err != nil { + return err + } + + var i uint + for i = 0; i < n; i++ { + h, err := deviceGetHandleByIndex(i) + if err != nil { + return err + } + + duuid, err := h.deviceGetUUID() + if err != nil { + return err + } + + if *duuid != uuid { + continue + } + + r := C.nvmlDeviceRegisterEvents(h.dev, C.ulonglong(event), es.set) + if r != C.NVML_SUCCESS { + return errorString(r) + } + + return nil + } + + return fmt.Errorf("nvml: device not found") +} + func DeleteEventSet(es EventSet) { C.nvmlEventSetFree(es.set) }