[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