code: func callback(nlm *C.struct_nl_msg, nla unsafe.Pointer) C.int {
  	cbID := uintptr(nla)
  	callbacksLock.RLock()
  	cbArg := callbacks[cbID]
  	callbacksLock.RUnlock()
  
  	if cbArg == nil {
  		panic(fmt.Sprintf("No netlink callback with ID %d", cbID))
  	}
  
  	cbMsg := &Message{nlm: nlm}
  	if err := cbArg.fn(cbMsg, cbArg.arg); err != nil {
  		cbArg.err = err
  		return C.NL_STOP
  	}
  	return C.NL_OK
  }
docs: // callback is the Go callback trampoline that is called from the
  // callbackGateway C function, which in turn gets called from libnl.
  //
  //export callback