[ddk] Use fx_logger_with_source for logging
This provides additional information about the file and line the log
statement occurs on.
Bug: 64087
Change-Id: Ib9e859f9386e41aa0917264eb41687a319244db9
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/449458
Commit-Queue: Fady Samuel <fsamuel@google.com>
Testability-Review: Abdulla Kamar <abdulla@google.com>
Testability-Review: Fady Samuel <fsamuel@google.com>
Reviewed-by: Fady Samuel <fsamuel@google.com>
diff --git a/src/devices/bin/driver_host/api.cc b/src/devices/bin/driver_host/api.cc
index 8d215df..fcdc41c 100644
--- a/src/devices/bin/driver_host/api.cc
+++ b/src/devices/bin/driver_host/api.cc
@@ -391,11 +391,11 @@
}
}
-__EXPORT void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* msg,
- va_list args) {
+__EXPORT void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
+ const char* file, int line, const char* msg, va_list args) {
if (drv != nullptr && flag != DDK_LOG_SERIAL) {
fbl::AutoLock lock(&internal::ContextForApi()->api_lock());
- fx_logger_logvf(drv->logger(), flag, drv->name(), msg, args);
+ fx_logger_logvf_with_source(drv->logger(), flag, drv->name(), file, line, msg, args);
} else {
// If we have been invoked outside of the context of a driver, or if |flag|
// is DDK_LOG_SERIAL, use vfprintf.
@@ -404,11 +404,11 @@
}
}
-__EXPORT void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* msg,
- ...) {
+__EXPORT void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* file,
+ int line, const char* msg, ...) {
va_list args;
va_start(args, msg);
- driver_logvf_internal(drv, flag, msg, args);
+ driver_logvf_internal(drv, flag, file, line, msg, args);
va_end(args);
}
diff --git a/src/devices/board/drivers/x86/acpi-dev/dev-battery-test.cc b/src/devices/board/drivers/x86/acpi-dev/dev-battery-test.cc
index 302439f..34ed806 100644
--- a/src/devices/board/drivers/x86/acpi-dev/dev-battery-test.cc
+++ b/src/devices/board/drivers/x86/acpi-dev/dev-battery-test.cc
@@ -166,10 +166,10 @@
}
extern "C" void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, va_list args) {}
+ const char* file, int line, const char* msg, va_list args) {}
extern "C" void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, ...) {}
+ const char* file, int line, const char* msg, ...) {}
const char* device_get_name(zx_device_t* device) { return "fake-acpi-battery"; }
diff --git a/src/devices/board/drivers/x86/acpi-dev/dev-pwrsrc-test.cc b/src/devices/board/drivers/x86/acpi-dev/dev-pwrsrc-test.cc
index 52778c9..4de0e16 100644
--- a/src/devices/board/drivers/x86/acpi-dev/dev-pwrsrc-test.cc
+++ b/src/devices/board/drivers/x86/acpi-dev/dev-pwrsrc-test.cc
@@ -105,10 +105,10 @@
}
extern "C" void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, va_list args) {}
+ const char* file, int line, const char* msg, va_list args) {}
extern "C" void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, ...) {}
+ const char* file, int line, const char* msg, ...) {}
const char* device_get_name(zx_device_t* device) { return "fake-acpi-pwrsrc"; }
diff --git a/src/devices/testing/fake_ddk/fake_ddk.cc b/src/devices/testing/fake_ddk/fake_ddk.cc
index d54e737..781bda5 100644
--- a/src/devices/testing/fake_ddk/fake_ddk.cc
+++ b/src/devices/testing/fake_ddk/fake_ddk.cc
@@ -497,17 +497,17 @@
}
extern "C" void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, va_list args) {
+ const char* file, int line, const char* msg, va_list args) {
vfprintf(stdout, msg, args);
putchar('\n');
fflush(stdout);
}
extern "C" void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, ...) {
+ const char* file, int line, const char* msg, ...) {
va_list args;
va_start(args, msg);
- driver_logvf_internal(drv, flag, msg, args);
+ driver_logvf_internal(drv, flag, file, line, msg, args);
va_end(args);
}
diff --git a/src/devices/testing/no_ddk/no_ddk.cc b/src/devices/testing/no_ddk/no_ddk.cc
index 3143808..c891ad3 100644
--- a/src/devices/testing/no_ddk/no_ddk.cc
+++ b/src/devices/testing/no_ddk/no_ddk.cc
@@ -30,8 +30,7 @@
__EXPORT
void device_init_reply(zx_device_t* device, zx_status_t status,
- const device_init_reply_args_t* args) {
-}
+ const device_init_reply_args_t* args) {}
__EXPORT
void device_unbind_reply(zx_device_t* device) {}
@@ -120,16 +119,16 @@
}
extern "C" void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, va_list args) {
+ const char* file, int line, const char* msg, va_list args) {
vfprintf(stdout, msg, args);
putchar('\n');
}
extern "C" void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag,
- const char* msg, ...) {
+ const char* file, int line, const char* msg, ...) {
va_list args;
va_start(args, msg);
- driver_logvf_internal(drv, flag, msg, args);
+ driver_logvf_internal(drv, flag, file, line, msg, args);
va_end(args);
}
diff --git a/src/lib/ddk/include/ddk/debug.h b/src/lib/ddk/include/ddk/debug.h
index 7e93747..e7952ead 100644
--- a/src/lib/ddk/include/ddk/debug.h
+++ b/src/lib/ddk/include/ddk/debug.h
@@ -75,27 +75,27 @@
#define zxlog_level_enabled(flag) zxlog_level_enabled_etc(DDK_LOG_##flag)
// Do not use this function directly, use zxlogf() instead.
-void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* msg, ...)
- __PRINTFLIKE(3, 4);
+void driver_logf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* file,
+ int line, const char* msg, ...) __PRINTFLIKE(5, 6);
// Do not use this function directly, use zxlogvf() instead.
-void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* msg,
- va_list args);
+void driver_logvf_internal(const zx_driver_t* drv, fx_log_severity_t flag, const char* file,
+ int line, const char* msg, va_list args);
// Do not use this macro directly, use zxlogf() instead.
-#define zxlogf_etc(flag, msg...) \
- do { \
- if (driver_log_severity_enabled_internal(__zircon_driver_rec__.driver, flag)) { \
- driver_logf_internal(__zircon_driver_rec__.driver, flag, msg); \
- } \
+#define zxlogf_etc(flag, msg...) \
+ do { \
+ if (driver_log_severity_enabled_internal(__zircon_driver_rec__.driver, flag)) { \
+ driver_logf_internal(__zircon_driver_rec__.driver, flag, __FILE__, __LINE__, msg); \
+ } \
} while (0)
// Do not use this macro directly, use zxlogvf() instead.
-#define zxlogvf_etc(flag, format, args) \
- do { \
- if (driver_log_severity_enabled_internal(__zircon_driver_rec__.driver, flag)) { \
- driver_logvf_internal(__zircon_driver_rec__.driver, flag, format, args); \
- } \
+#define zxlogvf_etc(flag, format, args) \
+ do { \
+ if (driver_log_severity_enabled_internal(__zircon_driver_rec__.driver, flag)) { \
+ driver_logvf_internal(__zircon_driver_rec__.driver, flag, __FILE__, __LINE__, format, args); \
+ } \
} while (0)
// zxlogf() provides a path to the kernel debuglog gated by log level flags