/* This API call performs several different functions; these are described below. The functions are handle-specific unless otherwise noted; this means that they affect only the handle you pass to canIoCtl(), whereas other open handles will remain unaffected. The contents of buf after the call is dependent on the function code you specified.  */
static canStatus LeafLightLibFuncIoCtl(const CanHandle hnd, uint32_t func, void *buf, uint32_t buflen)
/* This API call performs several different functions; these are described below. The functions are handle-specific unless otherwise noted; this means that they affect only the handle you pass to canIoCtl(), whereas other open handles will remain unaffected. The contents of buf after the call is dependent on the function code you specified.  */
static canStatus LeafLightLibFuncIoCtl(const CanHandle hnd, uint32_t func, void *buf, uint32_t buflen)
{
  canStatus result = canERR_NOTINITIALIZED;
  assert(leafLightLibFuncIoCtlPtr != NULL);
  assert(leafLightDllHandle != NULL);
  if ((leafLightLibFuncIoCtlPtr != NULL) && (leafLightDllHandle != NULL))
  {
    result = leafLightLibFuncIoCtlPtr(hnd, func, buf, buflen);
  }
  return result;
}