// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ZIRCON_SYSTEM_ULIB_SYSMEM_VERSION_LOG_H_
#define ZIRCON_SYSTEM_ULIB_SYSMEM_VERSION_LOG_H_

#include <stdio.h>

#define VLOG_ENABLED 0

#if (VLOG_ENABLED)
#define VLOGF(format, ...) LOG(INFO, format, ##__VA_ARGS__)
#else
#define VLOGF(...) \
  do {             \
  } while (0)
#endif

// Temporary solution for logging in driver and non-driver contexts by logging to stderr
// TODO(https://fxbug.dev/42117633): Replace with logging interface that accommodates both driver and non-driver contexts
// including sysmem driver itself.
#define SYSMEM_VERSION_LOG_TRACE (0x10)
#define SYSMEM_VERSION_LOG_DEBUG (0x20)
#define SYSMEM_VERSION_LOG_INFO (0x30)
#define SYSMEM_VERSION_LOG_WARNING (0x40)
#define SYSMEM_VERSION_LOG_ERROR (0x50)
#define SYSMEM_VERSION_LOG_FATAL (0x60)

#define LOG(severity, format, ...)                                                     \
  do {                                                                                 \
    if (SYSMEM_VERSION_LOG_##severity >= SYSMEM_VERSION_LOG_INFO) {                    \
      fprintf(stderr, "[%s:%s:%d] " format "\n", "sysmem-version", __func__, __LINE__, \
              ##__VA_ARGS__);                                                          \
    }                                                                                  \
  } while (0)

#endif  // ZIRCON_SYSTEM_ULIB_SYSMEM_VERSION_LOG_H_
