From ee70eec3f5500817c0e2edf0609a94e7b4aaee60 Mon Sep 17 00:00:00 2001
From: Adam Barth <abarth@chromium.org>
Date: Mon, 25 Feb 2019 21:27:07 -0800
Subject: [PATCH] [fdio] Migrate clients off lib/fdio/util.h

This header is deprecated and will be removed soon.

Change-Id: I9cbaf283dee8b43b14adb4ee35d67829d265ce2f
---
 garnet/bin/appmgr/component_controller_impl.cc            | 4 +++-
 garnet/bin/appmgr/integration_tests/inspect/test.cc       | 4 +++-
 .../appmgr/integration_tests/mock_runner/mock_runner.cc   | 4 +++-
 .../appmgr/integration_tests/realm_integration_test.cc    | 4 +++-
 garnet/bin/appmgr/namespace.cc                            | 4 +++-
 garnet/bin/appmgr/namespace_builder.cc                    | 4 +++-
 garnet/bin/appmgr/namespace_unittest.cc                   | 4 +++-
 garnet/bin/appmgr/realm.cc                                | 4 +++-
 garnet/bin/appmgr/service_provider_dir_impl.cc            | 4 +++-
 garnet/bin/cobalt/app/cobalt_main.cc                      | 4 +++-
 garnet/bin/cobalt/system-metrics/system_metrics_daemon.cc | 4 +++-
 garnet/bin/crashpad/report_annotations.cc                 | 4 +++-
 garnet/bin/debug_agent/system_info.cc                     | 4 +++-
 garnet/bin/developer/tiles_ctl/main.cc                    | 4 +++-
 garnet/bin/display_manager/display.cc                     | 4 +++-
 garnet/bin/guest/cli/serial.cc                            | 4 +++-
 garnet/bin/guest/integration/virtio_block_tests.cc        | 4 +++-
 garnet/bin/guest/pkg/biscotti_guest/bin/guest.cc          | 4 +++-
 garnet/bin/guest/vmm/arch/arm64/gic_distributor.cc        | 4 +++-
 garnet/bin/guest/vmm/device/virtio_block_test.cc          | 4 +++-
 garnet/bin/guest/vmm/guest.cc                             | 4 +++-
 garnet/bin/guest/vmm/main.cc                              | 4 +++-
 garnet/bin/guest/vmm/virtio_net_legacy.cc                 | 4 +++-
 garnet/bin/insntrace/control.cc                           | 4 +++-
 garnet/bin/insntrace/main.cc                              | 4 +++-
 garnet/bin/iquery/modes.cc                                | 4 +++-
 garnet/bin/iquery/testing/test.cc                         | 4 +++-
 garnet/bin/kernel_crash_checker/main.cc                   | 4 +++-
 garnet/bin/memory_monitor/monitor.cc                      | 4 +++-
 garnet/bin/netstack_tests/netstack_add_eth_test.cc        | 4 +++-
 garnet/bin/netstack_tests/netstack_filter_test.cc         | 4 +++-
 garnet/bin/netstack_tests/netstack_ioctl_test.cc          | 4 +++-
 garnet/bin/network_time/test/system_time_updater_test.cc  | 4 +++-
 garnet/bin/network_time/timezone.cc                       | 4 +++-
 garnet/bin/run_test_component/main.cc                     | 4 +++-
 garnet/bin/scpi/app.cc                                    | 4 +++-
 garnet/bin/sshd-host/sshd-host.cc                         | 4 +++-
 garnet/bin/sysmem-assistant/main.cc                       | 4 +++-
 garnet/bin/sysmem_connector/test/sysmem_connector_test.cc | 4 +++-
 garnet/bin/sysmgr/app.cc                                  | 4 +++-
 .../integration_tests/package_updating_loader_test.cc     | 4 +++-
 .../bin/sysmgr/integration_tests/service_startup_test.cc  | 4 +++-
 garnet/bin/system_monitor/harvester/harvester.cc          | 4 +++-
 garnet/bin/thermd/thermd.cc                               | 4 +++-
 garnet/bin/thermd/thermd_arm.cc                           | 4 +++-
 .../system_load_heart_model.cc                            | 4 +++-
 garnet/examples/fidl/echo_server_c/echo_server.c          | 4 +++-
 garnet/examples/intl/test/intl_wisdom_test.cc             | 4 +++-
 .../media/use_media_decoder/test/use_aac_decoder_test.cc  | 4 +++-
 garnet/examples/ui/hello_pose_buffer_provider/app.cc      | 4 +++-
 garnet/examples/ui/hello_views/app.cc                     | 4 +++-
 garnet/examples/ui/tile/tile_view.cc                      | 4 +++-
 .../automated/netstack_loopback_test/loopbacktest.cc      | 4 +++-
 garnet/go/src/netstack/tests/manual/closetest.c           | 4 +++-
 garnet/lib/chrealm/chrealm.cc                             | 4 +++-
 garnet/lib/debugger_utils/sysinfo.cc                      | 4 +++-
 .../platform/zircon/zircon_platform_sysmem_connection.cc  | 4 +++-
 .../lib/component/cpp/environment_services_helper.cc      | 4 +++-
 garnet/public/lib/component/cpp/outgoing.cc               | 4 +++-
 garnet/public/lib/component/cpp/startup_context.cc        | 4 +++-
 .../lib/component/cpp/testing/startup_context_for_test.cc | 4 +++-
 garnet/public/lib/component/cpp/testing/test_util.cc      | 4 +++-
 garnet/public/lib/fsl/io/fd.cc                            | 4 +++-
 garnet/public/lib/netemul/network/endpoint.cc             | 4 +++-
 garnet/public/lib/netemul/network/ethernet_client.cc      | 4 +++-
 garnet/public/lib/svc/cpp/service_namespace.cc            | 4 +++-
 garnet/public/lib/svc/cpp/service_provider_bridge.cc      | 4 +++-
 garnet/public/lib/svc/cpp/services.cc                     | 4 +++-
 .../zircon/libdriver-integration-test/integration-test.cc | 4 +++-
 .../zircon/libdriver-integration-test/root-mock-device.cc | 4 +++-
 peridot/bin/ledger/app/ledger_repository_factory_impl.cc  | 4 +++-
 .../bin/module_resolver/module_package_indexer/main.cc    | 4 +++-
 peridot/bin/sessionctl/main.cc                            | 4 +++-
 peridot/bin/test_driver/test_driver_module.cc             | 4 +++-
 peridot/lib/fidl/app_client.cc                            | 4 +++-
 peridot/lib/scoped_tmpfs/scoped_tmpfs.cc                  | 4 +++-
 sdk/lib/svc/dir_unittest.cc                               | 4 +++-
 sdk/lib/vfs/cpp/file_unittest.cc                          | 4 +++-
 sdk/lib/vfs/cpp/pseudo_file_unittest.cc                   | 4 +++-
 zircon/docs/ddk/simple.md                                 | 2 +-
 zircon/system/core/bootsvc/main.cpp                       | 2 +-
 zircon/system/core/devmgr/devhost/devhost.cpp             | 6 +++---
 zircon/system/core/devmgr/devmgr/devfs.cpp                | 2 +-
 zircon/system/core/devmgr/devmgr/main.cpp                 | 4 +++-
 zircon/system/core/devmgr/fshost/block-watcher.cpp        | 4 +++-
 zircon/system/core/devmgr/fshost/main.cpp                 | 4 +++-
 zircon/system/core/devmgr/shared/fdio.cpp                 | 4 +++-
 zircon/system/core/netsvc/netboot.cpp                     | 4 +++-
 zircon/system/core/pwrbtn-monitor/pwrbtn-monitor.cpp      | 4 +++-
 zircon/system/core/svchost/crashsvc.cpp                   | 4 +++-
 zircon/system/core/svchost/svchost.cpp                    | 4 +++-
 zircon/system/core/virtcon/main.cpp                       | 4 +++-
 zircon/system/uapp/clock/clock.c                          | 4 +++-
 zircon/system/uapp/dd/main.c                              | 4 +++-
 zircon/system/uapp/disk-pave/device-partitioner.cpp       | 4 +++-
 zircon/system/uapp/display-test/image.cpp                 | 4 +++-
 zircon/system/uapp/ethtool/ethtool.c                      | 4 +++-
 zircon/system/uapp/fs-fsck/main.c                         | 4 +++-
 zircon/system/uapp/fs-mkfs/main.c                         | 4 +++-
 zircon/system/uapp/fs-mount/main.c                        | 4 +++-
 zircon/system/uapp/i2c/i2c.c                              | 4 +++-
 zircon/system/uapp/kstress/main.cpp                       | 4 +++-
 zircon/system/uapp/light/light.cpp                        | 4 +++-
 zircon/system/uapp/lsdev/lsdev.c                          | 4 +++-
 zircon/system/uapp/lspwr/lspwr.cpp                        | 4 +++-
 zircon/system/uapp/lsusb/lsusb.c                          | 4 +++-
 zircon/system/uapp/nand-util/nand-broker.cpp              | 4 +++-
 zircon/system/uapp/netdump/netdump.c                      | 4 +++-
 zircon/system/uapp/psutils/resources.c                    | 4 +++-
 zircon/system/uapp/run-vc/main.c                          | 4 +++-
 zircon/system/uapp/suspendtest/suspendtest.c              | 4 +++-
 zircon/system/uapp/unbind/main.cpp                        | 4 +++-
 zircon/system/uapp/usb-fwloader/usb-fwloader.cpp          | 4 +++-
 zircon/system/uapp/usbctl/usbctl.c                        | 8 ++++++--
 zircon/system/ulib/cobalt-client/cobalt_logger.cpp        | 4 +++-
 zircon/system/ulib/cobalt-client/collector.cpp            | 4 +++-
 zircon/system/ulib/devmgr-integration-test/launcher.cpp   | 4 +++-
 zircon/system/ulib/devmgr-launcher/launcher.cpp           | 4 +++-
 zircon/system/ulib/fdio/bsdsocket.c                       | 4 +++-
 zircon/system/ulib/fdio/namespace/local-filesystem.cpp    | 4 +++-
 zircon/system/ulib/fdio/namespace/namespace.cpp           | 4 +++-
 zircon/system/ulib/fdio/remoteio.c                        | 3 +++
 zircon/system/ulib/fdio/socket.c                          | 4 +++-
 zircon/system/ulib/fdio/spawn.c                           | 4 +++-
 zircon/system/ulib/fdio/unistd.c                          | 4 +++-
 zircon/system/ulib/fdio/waitable.cpp                      | 4 +++-
 zircon/system/ulib/fdio/zxio.c                            | 4 +++-
 zircon/system/ulib/fs-management/fsck.cpp                 | 4 +++-
 zircon/system/ulib/fs-management/fvm.cpp                  | 4 +++-
 zircon/system/ulib/fs-management/launch.cpp               | 4 +++-
 zircon/system/ulib/fs-management/mkfs.cpp                 | 4 +++-
 zircon/system/ulib/fs-management/mount.cpp                | 4 +++-
 zircon/system/ulib/inet6/netifc.c                         | 4 +++-
 zircon/system/ulib/launchpad/fdio.c                       | 4 +++-
 zircon/system/ulib/log/log.cpp                            | 4 +++-
 zircon/system/ulib/ramdevice-client/ramdisk.cpp           | 4 +++-
 zircon/system/ulib/ramdevice-client/ramnand.cpp           | 4 +++-
 zircon/system/ulib/runtests-utils/log-exporter.cpp        | 4 +++-
 zircon/system/ulib/syslog/logger.cpp                      | 4 +++-
 zircon/system/ulib/sysmem-connector/sysmem-connector.cpp  | 4 +++-
 zircon/system/ulib/task-utils/walker.cpp                  | 4 +++-
 zircon/system/ulib/tee-client-api/tee-client-api.c        | 4 +++-
 zircon/system/ulib/trace-provider/fdio_connect.cpp        | 4 +++-
 .../utest/chromeos-disk-setup/chromeos-disk-setup.cpp     | 4 +++-
 zircon/system/utest/devfs/fdio-tests.cpp                  | 4 +++-
 zircon/system/utest/devfs/fidl-tests.cpp                  | 4 +++-
 zircon/system/utest/device-enumeration/main.cpp           | 4 +++-
 zircon/system/utest/driver-test/main.cpp                  | 4 +++-
 zircon/system/utest/ethernet/ethernet.cpp                 | 4 +++-
 zircon/system/utest/fdio/fdio_handle_fd.c                 | 4 +++-
 zircon/system/utest/fdio/fdio_socket.c                    | 4 +++-
 zircon/system/utest/fdio/fdio_socketpair.c                | 4 +++-
 zircon/system/utest/fs-vnode/service-tests.cpp            | 4 +++-
 zircon/system/utest/fs/test-access.cpp                    | 4 +++-
 zircon/system/utest/fs/test-append.cpp                    | 4 +++-
 zircon/system/utest/fs/test-basic.c                       | 4 +++-
 zircon/system/utest/fs/test-clone.cpp                     | 4 +++-
 zircon/system/utest/hypervisor/guest.cpp                  | 4 +++-
 zircon/system/utest/kernel-unittests/kernel-unittests.cpp | 4 +++-
 zircon/system/utest/launchpad/launchpad.cpp               | 4 +++-
 zircon/system/utest/memfs/fidl-tests.cpp                  | 4 +++-
 zircon/system/utest/memfs/memfs-tests.cpp                 | 4 +++-
 zircon/system/utest/memfs/vmofile-tests.cpp               | 4 +++-
 zircon/system/utest/profile/profile.cpp                   | 4 +++-
 zircon/system/utest/property/property.c                   | 4 +++-
 zircon/system/utest/spawn/child.c                         | 4 +++-
 zircon/system/utest/spawn/spawn.cpp                       | 4 +++-
 zircon/system/utest/stdio/stdio.c                         | 4 +++-
 zircon/system/utest/sysinfo/main.cpp                      | 4 +++-
 zircon/system/utest/sysmem/sysmem_tests.cpp               | 4 +++-
 zircon/system/utest/thread-state/thread-state.cpp         | 4 +++-
 zircon/system/utest/usb/usb-test.c                        | 4 +++-
 zircon/system/utest/vdso-base/vdso-base.c                 | 4 +++-
 zircon/third_party/uapp/dash/src/bltin/zircon.c           | 2 +-
 174 files changed, 517 insertions(+), 176 deletions(-)

diff --git a/garnet/bin/appmgr/component_controller_impl.cc b/garnet/bin/appmgr/component_controller_impl.cc
index 70d9ed50e6a..8c69dbf8606 100644
--- a/garnet/bin/appmgr/component_controller_impl.cc
+++ b/garnet/bin/appmgr/component_controller_impl.cc
@@ -9,7 +9,9 @@
 #include <fs/remote-dir.h>
 #include <fs/service.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fit/function.h>
 #include <trace/event.h>
 #include <cinttypes>
diff --git a/garnet/bin/appmgr/integration_tests/inspect/test.cc b/garnet/bin/appmgr/integration_tests/inspect/test.cc
index 65943228465..21a49d8d041 100644
--- a/garnet/bin/appmgr/integration_tests/inspect/test.cc
+++ b/garnet/bin/appmgr/integration_tests/inspect/test.cc
@@ -5,7 +5,9 @@
 #include <fuchsia/inspect/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "gmock/gmock.h"
 #include "lib/component/cpp/environment_services_helper.h"
diff --git a/garnet/bin/appmgr/integration_tests/mock_runner/mock_runner.cc b/garnet/bin/appmgr/integration_tests/mock_runner/mock_runner.cc
index 3b92334d554..b6324724a77 100644
--- a/garnet/bin/appmgr/integration_tests/mock_runner/mock_runner.cc
+++ b/garnet/bin/appmgr/integration_tests/mock_runner/mock_runner.cc
@@ -6,7 +6,9 @@
 
 #include <memory>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "lib/fxl/logging.h"
 
diff --git a/garnet/bin/appmgr/integration_tests/realm_integration_test.cc b/garnet/bin/appmgr/integration_tests/realm_integration_test.cc
index 01a7110220e..84ddc97f7df 100644
--- a/garnet/bin/appmgr/integration_tests/realm_integration_test.cc
+++ b/garnet/bin/appmgr/integration_tests/realm_integration_test.cc
@@ -18,7 +18,9 @@
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/sys/cpp/file_descriptor.h>
 #include "garnet/bin/appmgr/util.h"
 #include "gmock/gmock.h"
diff --git a/garnet/bin/appmgr/namespace.cc b/garnet/bin/appmgr/namespace.cc
index 36452dae9f6..bee1322db8d 100644
--- a/garnet/bin/appmgr/namespace.cc
+++ b/garnet/bin/appmgr/namespace.cc
@@ -7,7 +7,9 @@
 #include <fuchsia/process/cpp/fidl.h>
 #include <fuchsia/scheduler/cpp/fidl.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <utility>
 
diff --git a/garnet/bin/appmgr/namespace_builder.cc b/garnet/bin/appmgr/namespace_builder.cc
index ce098ef45c2..b73bbb3e6bf 100644
--- a/garnet/bin/appmgr/namespace_builder.cc
+++ b/garnet/bin/appmgr/namespace_builder.cc
@@ -5,7 +5,9 @@
 #include "garnet/bin/appmgr/namespace_builder.h"
 
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/processargs.h>
 
 #include <fcntl.h>
diff --git a/garnet/bin/appmgr/namespace_unittest.cc b/garnet/bin/appmgr/namespace_unittest.cc
index 0cec1557d3b..6e3fd37a026 100644
--- a/garnet/bin/appmgr/namespace_unittest.cc
+++ b/garnet/bin/appmgr/namespace_unittest.cc
@@ -13,7 +13,9 @@
 #include <fs/pseudo-dir.h>
 #include <fs/synchronous-vfs.h>
 #include <fuchsia/sys/cpp/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/status.h>
 #include <zircon/errors.h>
diff --git a/garnet/bin/appmgr/realm.cc b/garnet/bin/appmgr/realm.cc
index b2bc9a51f5c..c463e7f4b40 100644
--- a/garnet/bin/appmgr/realm.cc
+++ b/garnet/bin/appmgr/realm.cc
@@ -8,7 +8,9 @@
 #include <lib/async/default.h>
 #include <lib/fdio/namespace.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/process.h>
 #include <trace/event.h>
 #include <unistd.h>
diff --git a/garnet/bin/appmgr/service_provider_dir_impl.cc b/garnet/bin/appmgr/service_provider_dir_impl.cc
index 467030fb91d..a9dfaad4fa7 100644
--- a/garnet/bin/appmgr/service_provider_dir_impl.cc
+++ b/garnet/bin/appmgr/service_provider_dir_impl.cc
@@ -5,7 +5,9 @@
 #include "garnet/bin/appmgr/service_provider_dir_impl.h"
 
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/status.h>
 
 #include "lib/fxl/logging.h"
diff --git a/garnet/bin/cobalt/app/cobalt_main.cc b/garnet/bin/cobalt/app/cobalt_main.cc
index 0ede7b73eea..45e81067f4a 100644
--- a/garnet/bin/cobalt/app/cobalt_main.cc
+++ b/garnet/bin/cobalt/app/cobalt_main.cc
@@ -16,7 +16,9 @@
 #include <fuchsia/sysinfo/c/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/async/cpp/task.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/boot/image.h>
 
diff --git a/garnet/bin/cobalt/system-metrics/system_metrics_daemon.cc b/garnet/bin/cobalt/system-metrics/system_metrics_daemon.cc
index d063e207e6a..da13fad632b 100644
--- a/garnet/bin/cobalt/system-metrics/system_metrics_daemon.cc
+++ b/garnet/bin/cobalt/system-metrics/system_metrics_daemon.cc
@@ -14,7 +14,9 @@
 #include <fuchsia/cobalt/cpp/fidl.h>
 #include <fuchsia/sysinfo/c/fidl.h>
 #include <lib/async/cpp/task.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/logging.h>
 #include <lib/zx/resource.h>
 
diff --git a/garnet/bin/crashpad/report_annotations.cc b/garnet/bin/crashpad/report_annotations.cc
index 68ee703fc3f..d830ecda0bd 100644
--- a/garnet/bin/crashpad/report_annotations.cc
+++ b/garnet/bin/crashpad/report_annotations.cc
@@ -10,7 +10,9 @@
 #include <string>
 
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/files/file.h>
 #include <lib/fxl/strings/trim.h>
 #include <lib/syslog/cpp/logger.h>
diff --git a/garnet/bin/debug_agent/system_info.cc b/garnet/bin/debug_agent/system_info.cc
index 35750261950..b5325833bcf 100644
--- a/garnet/bin/debug_agent/system_info.cc
+++ b/garnet/bin/debug_agent/system_info.cc
@@ -6,7 +6,9 @@
 
 #include <fcntl.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/job.h>
 #include <lib/zx/process.h>
diff --git a/garnet/bin/developer/tiles_ctl/main.cc b/garnet/bin/developer/tiles_ctl/main.cc
index 92a69f65acf..927d1b83dc5 100644
--- a/garnet/bin/developer/tiles_ctl/main.cc
+++ b/garnet/bin/developer/tiles_ctl/main.cc
@@ -10,7 +10,9 @@
 
 #include <string>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "fuchsia/developer/tiles/cpp/fidl.h"
 #include "lib/fsl/io/fd.h"
diff --git a/garnet/bin/display_manager/display.cc b/garnet/bin/display_manager/display.cc
index fbe75a09175..21299eb7bee 100644
--- a/garnet/bin/display_manager/display.cc
+++ b/garnet/bin/display_manager/display.cc
@@ -7,7 +7,9 @@
 
 #include <fcntl.h>
 #include <fuchsia/hardware/backlight/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 namespace display {
 
diff --git a/garnet/bin/guest/cli/serial.cc b/garnet/bin/guest/cli/serial.cc
index 2ec04c3fefd..6e969d90539 100644
--- a/garnet/bin/guest/cli/serial.cc
+++ b/garnet/bin/guest/cli/serial.cc
@@ -9,7 +9,9 @@
 
 #include <fuchsia/guest/cpp/fidl.h>
 #include <lib/async/cpp/wait.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fit/function.h>
 
 #include "lib/fsl/socket/socket_drainer.h"
diff --git a/garnet/bin/guest/integration/virtio_block_tests.cc b/garnet/bin/guest/integration/virtio_block_tests.cc
index 9197b1c4de0..d7d6478cd0e 100644
--- a/garnet/bin/guest/integration/virtio_block_tests.cc
+++ b/garnet/bin/guest/integration/virtio_block_tests.cc
@@ -5,7 +5,9 @@
 #include <fbl/unique_fd.h>
 #include <fcntl.h>
 #include <gmock/gmock.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/arraysize.h>
 #include <lib/fxl/logging.h>
 #include <lib/fxl/strings/string_printf.h>
diff --git a/garnet/bin/guest/pkg/biscotti_guest/bin/guest.cc b/garnet/bin/guest/pkg/biscotti_guest/bin/guest.cc
index 261ef034104..d487816cf11 100644
--- a/garnet/bin/guest/pkg/biscotti_guest/bin/guest.cc
+++ b/garnet/bin/guest/pkg/biscotti_guest/bin/guest.cc
@@ -13,7 +13,9 @@
 #include <grpc++/grpc++.h>
 #include <grpc++/server_posix.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/cpp/vector.h>
 #include <lib/fxl/logging.h>
 #include <lib/fzl/fdio.h>
diff --git a/garnet/bin/guest/vmm/arch/arm64/gic_distributor.cc b/garnet/bin/guest/vmm/arch/arm64/gic_distributor.cc
index deee517d241..b52df6912b2 100644
--- a/garnet/bin/guest/vmm/arch/arm64/gic_distributor.cc
+++ b/garnet/bin/guest/vmm/arch/arm64/gic_distributor.cc
@@ -9,7 +9,9 @@
 
 #include <fbl/unique_fd.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <libzbi/zbi.h>
 #include <zircon/boot/driver-config.h>
diff --git a/garnet/bin/guest/vmm/device/virtio_block_test.cc b/garnet/bin/guest/vmm/device/virtio_block_test.cc
index 791d3453260..c100364b818 100644
--- a/garnet/bin/guest/vmm/device/virtio_block_test.cc
+++ b/garnet/bin/guest/vmm/device/virtio_block_test.cc
@@ -6,7 +6,9 @@
 #include <unistd.h>
 
 #include <fbl/unique_fd.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <virtio/block.h>
 
 #include "garnet/bin/guest/vmm/device/block.h"
diff --git a/garnet/bin/guest/vmm/guest.cc b/garnet/bin/guest/vmm/guest.cc
index 3e5b032ceff..7396fbe742e 100644
--- a/garnet/bin/guest/vmm/guest.cc
+++ b/garnet/bin/guest/vmm/guest.cc
@@ -10,7 +10,9 @@
 #include <unistd.h>
 
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/logging.h>
 #include <lib/fxl/strings/string_printf.h>
 #include <lib/zx/channel.h>
diff --git a/garnet/bin/guest/vmm/main.cc b/garnet/bin/guest/vmm/main.cc
index cc6aece8718..b5e4bdcbe90 100644
--- a/garnet/bin/guest/vmm/main.cc
+++ b/garnet/bin/guest/vmm/main.cc
@@ -21,7 +21,9 @@
 #include <lib/async/cpp/task.h>
 #include <lib/component/cpp/startup_context.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/strings/string_printf.h>
 #include <trace-provider/provider.h>
 #include <zircon/process.h>
diff --git a/garnet/bin/guest/vmm/virtio_net_legacy.cc b/garnet/bin/guest/vmm/virtio_net_legacy.cc
index 5d007cc51b7..179f91eeb23 100644
--- a/garnet/bin/guest/vmm/virtio_net_legacy.cc
+++ b/garnet/bin/guest/vmm/virtio_net_legacy.cc
@@ -10,7 +10,9 @@
 
 #include <fbl/unique_fd.h>
 #include <fuchsia/hardware/ethernet/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/logging.h>
 #include <trace-engine/types.h>
 #include <trace/event.h>
diff --git a/garnet/bin/insntrace/control.cc b/garnet/bin/insntrace/control.cc
index 45b851f85f4..30ad5837d31 100644
--- a/garnet/bin/insntrace/control.cc
+++ b/garnet/bin/insntrace/control.cc
@@ -19,7 +19,9 @@
 #include <zircon/device/ktrace.h>
 #include <zircon/syscalls.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zircon-internal/ktrace.h>
 #include <lib/zx/handle.h>
 #include <lib/zx/vmo.h>
diff --git a/garnet/bin/insntrace/main.cc b/garnet/bin/insntrace/main.cc
index f0dcb4ce9ea..9822d03c6e1 100644
--- a/garnet/bin/insntrace/main.cc
+++ b/garnet/bin/insntrace/main.cc
@@ -13,7 +13,9 @@
 
 #include <iostream>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "lib/fxl/command_line.h"
 #include "lib/fxl/log_settings.h"
diff --git a/garnet/bin/iquery/modes.cc b/garnet/bin/iquery/modes.cc
index efab8b6ffbe..46c029c1a5c 100644
--- a/garnet/bin/iquery/modes.cc
+++ b/garnet/bin/iquery/modes.cc
@@ -7,7 +7,9 @@
 #include <stack>
 
 #include <fuchsia/io/cpp/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fit/defer.h>
 #include <lib/fxl/files/file.h>
 #include <lib/fxl/files/path.h>
diff --git a/garnet/bin/iquery/testing/test.cc b/garnet/bin/iquery/testing/test.cc
index c652dd5149d..c7cb86d8a3d 100644
--- a/garnet/bin/iquery/testing/test.cc
+++ b/garnet/bin/iquery/testing/test.cc
@@ -6,7 +6,9 @@
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/async/default.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <regex>
 
 #include "gmock/gmock.h"
diff --git a/garnet/bin/kernel_crash_checker/main.cc b/garnet/bin/kernel_crash_checker/main.cc
index 3416cc1e160..03b5f742d0e 100644
--- a/garnet/bin/kernel_crash_checker/main.cc
+++ b/garnet/bin/kernel_crash_checker/main.cc
@@ -13,7 +13,9 @@
 #include <fuchsia/net/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/component/cpp/startup_context.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/cpp/synchronous_interface_ptr.h>
 #include <lib/fsl/vmo/file.h>
 #include <lib/fsl/vmo/strings.h>
diff --git a/garnet/bin/memory_monitor/monitor.cc b/garnet/bin/memory_monitor/monitor.cc
index 8453a2670f2..0ea74304b78 100644
--- a/garnet/bin/memory_monitor/monitor.cc
+++ b/garnet/bin/memory_monitor/monitor.cc
@@ -12,7 +12,9 @@
 #include <fuchsia/sysinfo/c/fidl.h>
 #include <lib/async/default.h>
 #include <lib/async/cpp/time.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <trace/event.h>
 #include <zircon/status.h>
 
diff --git a/garnet/bin/netstack_tests/netstack_add_eth_test.cc b/garnet/bin/netstack_tests/netstack_add_eth_test.cc
index 3908e21773c..99051e7e795 100644
--- a/garnet/bin/netstack_tests/netstack_add_eth_test.cc
+++ b/garnet/bin/netstack_tests/netstack_add_eth_test.cc
@@ -7,7 +7,9 @@
 #include <fuchsia/hardware/ethernet/cpp/fidl.h>
 #include <fuchsia/net/stack/cpp/fidl.h>
 #include <fuchsia/netstack/cpp/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fidl/cpp/interface_handle.h>
 #include <lib/sys/cpp/file_descriptor.h>
diff --git a/garnet/bin/netstack_tests/netstack_filter_test.cc b/garnet/bin/netstack_tests/netstack_filter_test.cc
index 51307bf6b64..a8627108f9e 100644
--- a/garnet/bin/netstack_tests/netstack_filter_test.cc
+++ b/garnet/bin/netstack_tests/netstack_filter_test.cc
@@ -8,7 +8,9 @@
 #include <fuchsia/net/filter/cpp/fidl.h>
 #include <fuchsia/netstack/cpp/fidl.h>
 #include <garnet/lib/inet/ip_address.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fidl/cpp/interface_handle.h>
 #include <lib/sys/cpp/file_descriptor.h>
diff --git a/garnet/bin/netstack_tests/netstack_ioctl_test.cc b/garnet/bin/netstack_tests/netstack_ioctl_test.cc
index cfde3c337c1..6f89a6672ce 100644
--- a/garnet/bin/netstack_tests/netstack_ioctl_test.cc
+++ b/garnet/bin/netstack_tests/netstack_ioctl_test.cc
@@ -7,7 +7,9 @@
 #include <fuchsia/hardware/ethernet/cpp/fidl.h>
 #include <fuchsia/net/stack/cpp/fidl.h>
 #include <fuchsia/netstack/cpp/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fidl/cpp/interface_handle.h>
 #include <lib/netstack/c/netconfig.h>
diff --git a/garnet/bin/network_time/test/system_time_updater_test.cc b/garnet/bin/network_time/test/system_time_updater_test.cc
index c39b501202b..a4190857a16 100644
--- a/garnet/bin/network_time/test/system_time_updater_test.cc
+++ b/garnet/bin/network_time/test/system_time_updater_test.cc
@@ -14,7 +14,9 @@
 #include "gmock/gmock.h"
 #include "lib/component/cpp/testing/test_util.h"
 #include "lib/component/cpp/testing/test_with_environment.h"
-#include "lib/fdio/util.h"
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include "lib/fsl/io/fd.h"
 #include "lib/fxl/files/unique_fd.h"
 #include "lib/fxl/strings/string_printf.h"
diff --git a/garnet/bin/network_time/timezone.cc b/garnet/bin/network_time/timezone.cc
index 39bf6662f78..a6bc94200d5 100644
--- a/garnet/bin/network_time/timezone.cc
+++ b/garnet/bin/network_time/timezone.cc
@@ -14,7 +14,9 @@
 #include "garnet/bin/network_time/roughtime_server.h"
 #include "garnet/bin/network_time/time_server_config.h"
 #include "garnet/bin/network_time/time_util.h"
-#include "lib/fdio/util.h"
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include "lib/syslog/cpp/logger.h"
 #include "zircon/system/ulib/zx/include/lib/zx/channel.h"
 
diff --git a/garnet/bin/run_test_component/main.cc b/garnet/bin/run_test_component/main.cc
index 77e89c52e49..fe0630c9b2c 100644
--- a/garnet/bin/run_test_component/main.cc
+++ b/garnet/bin/run_test_component/main.cc
@@ -7,7 +7,9 @@
 #include <fuchsia/logger/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/sys/cpp/file_descriptor.h>
 #include <lib/sys/cpp/termination_reason.h>
 
diff --git a/garnet/bin/scpi/app.cc b/garnet/bin/scpi/app.cc
index f4f5818ec27..f23202825dc 100644
--- a/garnet/bin/scpi/app.cc
+++ b/garnet/bin/scpi/app.cc
@@ -5,7 +5,9 @@
 #include "garnet/bin/scpi/app.h"
 #include <ddk/protocol/scpi.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <stdio.h>
 #include <zircon/device/thermal.h>
diff --git a/garnet/bin/sshd-host/sshd-host.cc b/garnet/bin/sshd-host/sshd-host.cc
index 2caeb07b49b..2dadb921616 100644
--- a/garnet/bin/sshd-host/sshd-host.cc
+++ b/garnet/bin/sshd-host/sshd-host.cc
@@ -20,7 +20,9 @@
 #include <lib/async/default.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/job.h>
 #include <lib/zx/process.h>
 #include <zircon/process.h>
diff --git a/garnet/bin/sysmem-assistant/main.cc b/garnet/bin/sysmem-assistant/main.cc
index 4608c68e04f..8636d4c1c05 100644
--- a/garnet/bin/sysmem-assistant/main.cc
+++ b/garnet/bin/sysmem-assistant/main.cc
@@ -6,7 +6,9 @@
 #include <fbl/unique_fd.h>
 #include <fcntl.h>
 #include <fuchsia/sysmem/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fxl/logging.h>
 #include <stdio.h>
diff --git a/garnet/bin/sysmem_connector/test/sysmem_connector_test.cc b/garnet/bin/sysmem_connector/test/sysmem_connector_test.cc
index 8c96c5781ef..179cf9dd6d7 100644
--- a/garnet/bin/sysmem_connector/test/sysmem_connector_test.cc
+++ b/garnet/bin/sysmem_connector/test/sysmem_connector_test.cc
@@ -4,7 +4,9 @@
 
 #include <fuchsia/sysmem/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include "gtest/gtest.h"
 #include "lib/component/cpp/startup_context.h"
 #include "lib/fidl/cpp/interface_ptr.h"
diff --git a/garnet/bin/sysmgr/app.cc b/garnet/bin/sysmgr/app.cc
index f0cda9d535f..c6c323bb744 100644
--- a/garnet/bin/sysmgr/app.cc
+++ b/garnet/bin/sysmgr/app.cc
@@ -6,7 +6,9 @@
 
 #include <fs/managed-vfs.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/process.h>
 #include <zircon/processargs.h>
 #include "lib/component/cpp/connect.h"
diff --git a/garnet/bin/sysmgr/integration_tests/package_updating_loader_test.cc b/garnet/bin/sysmgr/integration_tests/package_updating_loader_test.cc
index b58376be121..b115aac17aa 100644
--- a/garnet/bin/sysmgr/integration_tests/package_updating_loader_test.cc
+++ b/garnet/bin/sysmgr/integration_tests/package_updating_loader_test.cc
@@ -15,7 +15,9 @@
 #include <fuchsia/io/cpp/fidl.h>
 #include <fuchsia/pkg/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/time.h>
 #include <zircon/errors.h>
diff --git a/garnet/bin/sysmgr/integration_tests/service_startup_test.cc b/garnet/bin/sysmgr/integration_tests/service_startup_test.cc
index f4b634453ba..50695585b9d 100644
--- a/garnet/bin/sysmgr/integration_tests/service_startup_test.cc
+++ b/garnet/bin/sysmgr/integration_tests/service_startup_test.cc
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/gtest/real_loop_fixture.h>
 #include <test/sysmgr/cpp/fidl.h>
 #include "garnet/bin/appmgr/appmgr.h"
diff --git a/garnet/bin/system_monitor/harvester/harvester.cc b/garnet/bin/system_monitor/harvester/harvester.cc
index 6ed93ce9828..ec5eb06f983 100644
--- a/garnet/bin/system_monitor/harvester/harvester.cc
+++ b/garnet/bin/system_monitor/harvester/harvester.cc
@@ -23,7 +23,9 @@
 
 #include <fuchsia/memory/cpp/fidl.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/status.h>
 
 #include "lib/fxl/command_line.h"
diff --git a/garnet/bin/thermd/thermd.cc b/garnet/bin/thermd/thermd.cc
index 7fb405bf43b..b7a470eb09f 100644
--- a/garnet/bin/thermd/thermd.cc
+++ b/garnet/bin/thermd/thermd.cc
@@ -10,7 +10,9 @@
 #include <lib/async-loop/cpp/loop.h>
 
 #include <lib/fdio/watcher.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <trace-provider/provider.h>
 #include <trace/event.h>
diff --git a/garnet/bin/thermd/thermd_arm.cc b/garnet/bin/thermd/thermd_arm.cc
index c060c972c50..ccb3ef39b7c 100644
--- a/garnet/bin/thermd/thermd_arm.cc
+++ b/garnet/bin/thermd/thermd_arm.cc
@@ -6,7 +6,9 @@
 #include <fcntl.h>
 #include <fuchsia/hardware/gpu/clock/c/fidl.h>
 #include <inttypes.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/garnet/examples/bluetooth/bt-le-heart-rate-peripheral/system_load_heart_model.cc b/garnet/examples/bluetooth/bt-le-heart-rate-peripheral/system_load_heart_model.cc
index 64802d7822f..16b73d3f46d 100644
--- a/garnet/examples/bluetooth/bt-le-heart-rate-peripheral/system_load_heart_model.cc
+++ b/garnet/examples/bluetooth/bt-le-heart-rate-peripheral/system_load_heart_model.cc
@@ -14,7 +14,9 @@
 #include <unistd.h>
 
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/status.h>
 #include <zircon/syscalls/object.h>
 
diff --git a/garnet/examples/fidl/echo_server_c/echo_server.c b/garnet/examples/fidl/echo_server_c/echo_server.c
index 6e41355c0c4..231e5a45b24 100644
--- a/garnet/examples/fidl/echo_server_c/echo_server.c
+++ b/garnet/examples/fidl/echo_server_c/echo_server.c
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <lib/async-loop/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/svc/dir.h>
 #include <stdio.h>
 #include <zircon/process.h>
diff --git a/garnet/examples/intl/test/intl_wisdom_test.cc b/garnet/examples/intl/test/intl_wisdom_test.cc
index d75f8474896..a5c7112817f 100644
--- a/garnet/examples/intl/test/intl_wisdom_test.cc
+++ b/garnet/examples/intl/test/intl_wisdom_test.cc
@@ -13,7 +13,9 @@
 #include "gtest/gtest.h"
 #include "lib/component/cpp/testing/test_util.h"
 #include "lib/component/cpp/testing/test_with_environment.h"
-#include "lib/fdio/util.h"
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include "lib/fxl/files/file.h"
 #include "lib/fxl/files/scoped_temp_dir.h"
 #include <lib/sys/cpp/file_descriptor.h>
diff --git a/garnet/examples/media/use_media_decoder/test/use_aac_decoder_test.cc b/garnet/examples/media/use_media_decoder/test/use_aac_decoder_test.cc
index 724eca886e2..f3e8b95f20c 100644
--- a/garnet/examples/media/use_media_decoder/test/use_aac_decoder_test.cc
+++ b/garnet/examples/media/use_media_decoder/test/use_aac_decoder_test.cc
@@ -19,7 +19,9 @@
 
 #include <fuchsia/mediacodec/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include "gtest/gtest.h"
 #include "lib/component/cpp/startup_context.h"
 #include "lib/fidl/cpp/interface_ptr.h"
diff --git a/garnet/examples/ui/hello_pose_buffer_provider/app.cc b/garnet/examples/ui/hello_pose_buffer_provider/app.cc
index badfaa8eacd..466de48b817 100644
--- a/garnet/examples/ui/hello_pose_buffer_provider/app.cc
+++ b/garnet/examples/ui/hello_pose_buffer_provider/app.cc
@@ -12,7 +12,9 @@
 #include <fuchsia/ui/gfx/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/async/cpp/task.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <glm/gtc/type_ptr.hpp>
 #include <glm/gtx/quaternion.hpp>
 #include <glm/gtx/string_cast.hpp>
diff --git a/garnet/examples/ui/hello_views/app.cc b/garnet/examples/ui/hello_views/app.cc
index f0e4eda477f..a500a353b56 100644
--- a/garnet/examples/ui/hello_views/app.cc
+++ b/garnet/examples/ui/hello_views/app.cc
@@ -8,7 +8,9 @@
 #include <fuchsia/ui/app/cpp/fidl.h>
 #include <fuchsia/ui/scenic/cpp/fidl.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/sys/cpp/file_descriptor.h>
 #include <lib/zx/eventpair.h>
 #include <lib/zx/time.h>
diff --git a/garnet/examples/ui/tile/tile_view.cc b/garnet/examples/ui/tile/tile_view.cc
index d5b9e0c07f6..be4a95ca202 100644
--- a/garnet/examples/ui/tile/tile_view.cc
+++ b/garnet/examples/ui/tile/tile_view.cc
@@ -6,7 +6,9 @@
 
 #include <fuchsia/ui/viewsv1/cpp/fidl.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/cpp/optional.h>
 #include <lib/fxl/logging.h>
 #include <lib/fxl/strings/split_string.h>
diff --git a/garnet/go/src/netstack/tests/automated/netstack_loopback_test/loopbacktest.cc b/garnet/go/src/netstack/tests/automated/netstack_loopback_test/loopbacktest.cc
index 4682b749621..3bebad326e5 100644
--- a/garnet/go/src/netstack/tests/automated/netstack_loopback_test/loopbacktest.cc
+++ b/garnet/go/src/netstack/tests/automated/netstack_loopback_test/loopbacktest.cc
@@ -17,7 +17,9 @@
 
 #include <lib/fdio/io.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <zircon/syscalls.h>
 
diff --git a/garnet/go/src/netstack/tests/manual/closetest.c b/garnet/go/src/netstack/tests/manual/closetest.c
index 306deb95945..5791e9e2b18 100644
--- a/garnet/go/src/netstack/tests/manual/closetest.c
+++ b/garnet/go/src/netstack/tests/manual/closetest.c
@@ -4,7 +4,9 @@
 
 #include <arpa/inet.h>
 #include <errno.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <netdb.h>
 #include <netinet/in.h>
 #include <stdio.h>
diff --git a/garnet/lib/chrealm/chrealm.cc b/garnet/lib/chrealm/chrealm.cc
index 54abb303884..5e14347cc12 100644
--- a/garnet/lib/chrealm/chrealm.cc
+++ b/garnet/lib/chrealm/chrealm.cc
@@ -13,7 +13,9 @@
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/fdio/namespace.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fit/defer.h>
 #include <lib/zx/job.h>
 #include <zircon/compiler.h>
diff --git a/garnet/lib/debugger_utils/sysinfo.cc b/garnet/lib/debugger_utils/sysinfo.cc
index e6cd7d3f2ee..e2e5aea0eda 100644
--- a/garnet/lib/debugger_utils/sysinfo.cc
+++ b/garnet/lib/debugger_utils/sysinfo.cc
@@ -5,7 +5,9 @@
 #include "garnet/lib/debugger_utils/sysinfo.h"
 
 #include <fcntl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/job.h>
 #include <unistd.h>
diff --git a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_sysmem_connection.cc b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_sysmem_connection.cc
index fd3b02467f3..f56905ddbb3 100644
--- a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_sysmem_connection.cc
+++ b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_sysmem_connection.cc
@@ -6,7 +6,9 @@
 
 #include <fuchsia/sysmem/cpp/fidl.h>
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 
 #include <limits>
diff --git a/garnet/public/lib/component/cpp/environment_services_helper.cc b/garnet/public/lib/component/cpp/environment_services_helper.cc
index 863ad45bae9..23ff4018eea 100644
--- a/garnet/public/lib/component/cpp/environment_services_helper.cc
+++ b/garnet/public/lib/component/cpp/environment_services_helper.cc
@@ -4,7 +4,9 @@
 
 #include "lib/component/cpp/environment_services_helper.h"
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "lib/component/cpp/startup_context.h"
 
diff --git a/garnet/public/lib/component/cpp/outgoing.cc b/garnet/public/lib/component/cpp/outgoing.cc
index 3160fd946d5..4bda543f6b0 100644
--- a/garnet/public/lib/component/cpp/outgoing.cc
+++ b/garnet/public/lib/component/cpp/outgoing.cc
@@ -6,7 +6,9 @@
 
 #include <fuchsia/inspect/cpp/fidl.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/process.h>
 #include <zircon/processargs.h>
 
diff --git a/garnet/public/lib/component/cpp/startup_context.cc b/garnet/public/lib/component/cpp/startup_context.cc
index 3cf04a10df1..6540f124538 100644
--- a/garnet/public/lib/component/cpp/startup_context.cc
+++ b/garnet/public/lib/component/cpp/startup_context.cc
@@ -5,7 +5,9 @@
 #include "lib/component/cpp/startup_context.h"
 
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/process.h>
 #include <zircon/processargs.h>
 
diff --git a/garnet/public/lib/component/cpp/testing/startup_context_for_test.cc b/garnet/public/lib/component/cpp/testing/startup_context_for_test.cc
index 297559cb65d..bc187cb1738 100644
--- a/garnet/public/lib/component/cpp/testing/startup_context_for_test.cc
+++ b/garnet/public/lib/component/cpp/testing/startup_context_for_test.cc
@@ -5,7 +5,9 @@
 #include "lib/component/cpp/testing/startup_context_for_test.h"
 
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 namespace component {
 namespace testing {
diff --git a/garnet/public/lib/component/cpp/testing/test_util.cc b/garnet/public/lib/component/cpp/testing/test_util.cc
index 77695340238..7a9cbeda1c5 100644
--- a/garnet/public/lib/component/cpp/testing/test_util.cc
+++ b/garnet/public/lib/component/cpp/testing/test_util.cc
@@ -5,7 +5,9 @@
 #include "lib/component/cpp/testing/test_util.h"
 
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 namespace component {
 namespace testing {
diff --git a/garnet/public/lib/fsl/io/fd.cc b/garnet/public/lib/fsl/io/fd.cc
index 0cc863386a5..83e1864de99 100644
--- a/garnet/public/lib/fsl/io/fd.cc
+++ b/garnet/public/lib/fsl/io/fd.cc
@@ -5,7 +5,9 @@
 #include "lib/fsl/io/fd.h"
 
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
 
diff --git a/garnet/public/lib/netemul/network/endpoint.cc b/garnet/public/lib/netemul/network/endpoint.cc
index b7276a8a5de..ca02a2b5ab2 100644
--- a/garnet/public/lib/netemul/network/endpoint.cc
+++ b/garnet/public/lib/netemul/network/endpoint.cc
@@ -4,7 +4,9 @@
 
 #include "endpoint.h"
 #include <fcntl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/status.h>
 #include <zircon/types.h>
 #include <unordered_set>
diff --git a/garnet/public/lib/netemul/network/ethernet_client.cc b/garnet/public/lib/netemul/network/ethernet_client.cc
index d5c91c0462f..526b2f7cfed 100644
--- a/garnet/public/lib/netemul/network/ethernet_client.cc
+++ b/garnet/public/lib/netemul/network/ethernet_client.cc
@@ -8,7 +8,9 @@
 #include <fuchsia/hardware/ethernet/cpp/fidl.h>
 #include <lib/async/cpp/wait.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fifo.h>
 #include <zircon/status.h>
diff --git a/garnet/public/lib/svc/cpp/service_namespace.cc b/garnet/public/lib/svc/cpp/service_namespace.cc
index bf81f632861..755e26dba83 100644
--- a/garnet/public/lib/svc/cpp/service_namespace.cc
+++ b/garnet/public/lib/svc/cpp/service_namespace.cc
@@ -7,7 +7,9 @@
 #include <fcntl.h>
 #include <fs/service.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/device/vfs.h>
 
 #include <utility>
diff --git a/garnet/public/lib/svc/cpp/service_provider_bridge.cc b/garnet/public/lib/svc/cpp/service_provider_bridge.cc
index 07ecdfd2c38..8fe662b544c 100644
--- a/garnet/public/lib/svc/cpp/service_provider_bridge.cc
+++ b/garnet/public/lib/svc/cpp/service_provider_bridge.cc
@@ -7,7 +7,9 @@
 #include <fcntl.h>
 #include <fs/service.h>
 #include <lib/async/default.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/device/vfs.h>
 
 #include <utility>
diff --git a/garnet/public/lib/svc/cpp/services.cc b/garnet/public/lib/svc/cpp/services.cc
index e35859aef71..27bd67e44c5 100644
--- a/garnet/public/lib/svc/cpp/services.cc
+++ b/garnet/public/lib/svc/cpp/services.cc
@@ -4,7 +4,9 @@
 
 #include "lib/svc/cpp/services.h"
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "lib/fxl/logging.h"
 
diff --git a/garnet/tests/zircon/libdriver-integration-test/integration-test.cc b/garnet/tests/zircon/libdriver-integration-test/integration-test.cc
index f70b9f93f86..2bde76aca5e 100644
--- a/garnet/tests/zircon/libdriver-integration-test/integration-test.cc
+++ b/garnet/tests/zircon/libdriver-integration-test/integration-test.cc
@@ -8,7 +8,9 @@
 
 #include <lib/async_promise/executor.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fit/bridge.h>
 #include <zircon/status.h>
 
diff --git a/garnet/tests/zircon/libdriver-integration-test/root-mock-device.cc b/garnet/tests/zircon/libdriver-integration-test/root-mock-device.cc
index 29205b608ed..3109043c596 100644
--- a/garnet/tests/zircon/libdriver-integration-test/root-mock-device.cc
+++ b/garnet/tests/zircon/libdriver-integration-test/root-mock-device.cc
@@ -15,7 +15,9 @@
 #include <fuchsia/device/test/c/fidl.h>
 #include <lib/devmgr-integration-test/fixture.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/assert.h>
 
 #define DRIVER_TEST_DIR "/boot/driver/test"
diff --git a/peridot/bin/ledger/app/ledger_repository_factory_impl.cc b/peridot/bin/ledger/app/ledger_repository_factory_impl.cc
index 02e711dc2cf..ca6cebd4170 100644
--- a/peridot/bin/ledger/app/ledger_repository_factory_impl.cc
+++ b/peridot/bin/ledger/app/ledger_repository_factory_impl.cc
@@ -12,7 +12,9 @@
 #include <lib/backoff/exponential_backoff.h>
 #include <lib/component/cpp/expose.h>
 #include <lib/component/cpp/object_dir.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fit/function.h>
 #include <lib/fsl/io/fd.h>
 #include <lib/fxl/files/directory.h>
diff --git a/peridot/bin/module_resolver/module_package_indexer/main.cc b/peridot/bin/module_resolver/module_package_indexer/main.cc
index 83a5cdca4da..e68151ebc18 100644
--- a/peridot/bin/module_resolver/module_package_indexer/main.cc
+++ b/peridot/bin/module_resolver/module_package_indexer/main.cc
@@ -11,7 +11,9 @@
 
 #include <fuchsia/maxwell/internal/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/command_line.h>
 #include <lib/fxl/files/file.h>
 #include <lib/fxl/log_settings_command_line.h>
diff --git a/peridot/bin/sessionctl/main.cc b/peridot/bin/sessionctl/main.cc
index c863ec564c7..06f1e81f30c 100644
--- a/peridot/bin/sessionctl/main.cc
+++ b/peridot/bin/sessionctl/main.cc
@@ -17,7 +17,9 @@
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/async/cpp/future.h>
 #include <lib/async/cpp/task.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fxl/command_line.h>
 #include <lib/fxl/files/file.h>
 #include <lib/fxl/log_settings_command_line.h>
diff --git a/peridot/bin/test_driver/test_driver_module.cc b/peridot/bin/test_driver/test_driver_module.cc
index 2580de3f67c..2e6cac232ba 100644
--- a/peridot/bin/test_driver/test_driver_module.cc
+++ b/peridot/bin/test_driver/test_driver_module.cc
@@ -8,7 +8,9 @@
 #include <lib/component/cpp/connect.h>
 #include <lib/component/cpp/startup_context.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fsl/vmo/strings.h>
 
 #include "peridot/lib/rapidjson/rapidjson.h"
diff --git a/peridot/lib/fidl/app_client.cc b/peridot/lib/fidl/app_client.cc
index bd0c12205f8..c29226a3f07 100644
--- a/peridot/lib/fidl/app_client.cc
+++ b/peridot/lib/fidl/app_client.cc
@@ -8,7 +8,9 @@
 
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fsl/io/fd.h>
 #include <lib/fxl/files/directory.h>
 #include <lib/fxl/files/unique_fd.h>
diff --git a/peridot/lib/scoped_tmpfs/scoped_tmpfs.cc b/peridot/lib/scoped_tmpfs/scoped_tmpfs.cc
index 33a5f0f5e34..3ed0aa62887 100644
--- a/peridot/lib/scoped_tmpfs/scoped_tmpfs.cc
+++ b/peridot/lib/scoped_tmpfs/scoped_tmpfs.cc
@@ -4,7 +4,9 @@
 
 #include "peridot/lib/scoped_tmpfs/scoped_tmpfs.h"
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fsl/io/fd.h>
 #include <lib/fxl/logging.h>
 #include <lib/sync/completion.h>
diff --git a/sdk/lib/svc/dir_unittest.cc b/sdk/lib/svc/dir_unittest.cc
index 487f32e4ba0..71644501c48 100644
--- a/sdk/lib/svc/dir_unittest.cc
+++ b/sdk/lib/svc/dir_unittest.cc
@@ -4,7 +4,9 @@
 
 #include "lib/svc/dir.h"
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 
 #include <thread>
diff --git a/sdk/lib/vfs/cpp/file_unittest.cc b/sdk/lib/vfs/cpp/file_unittest.cc
index 8a10c208909..b1a25de1b32 100644
--- a/sdk/lib/vfs/cpp/file_unittest.cc
+++ b/sdk/lib/vfs/cpp/file_unittest.cc
@@ -4,7 +4,9 @@
 
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unistd.h>
 #include <zircon/processargs.h>
 
diff --git a/sdk/lib/vfs/cpp/pseudo_file_unittest.cc b/sdk/lib/vfs/cpp/pseudo_file_unittest.cc
index f0019ec141c..3364155a060 100644
--- a/sdk/lib/vfs/cpp/pseudo_file_unittest.cc
+++ b/sdk/lib/vfs/cpp/pseudo_file_unittest.cc
@@ -4,7 +4,9 @@
 
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unistd.h>
 #include <zircon/processargs.h>
 
diff --git a/zircon/docs/ddk/simple.md b/zircon/docs/ddk/simple.md
index b48200a5ee4..2867e933cce 100644
--- a/zircon/docs/ddk/simple.md
+++ b/zircon/docs/ddk/simple.md
@@ -656,7 +656,7 @@ The complete program is as follows:
 #include <ctype.h>
 
 #include <zircon/syscalls.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fdio.h>
 
 // (1) include the generated definition file
 #include <zircon/sample/number/c/fidl.h>
diff --git a/zircon/system/core/bootsvc/main.cpp b/zircon/system/core/bootsvc/main.cpp
index d352f1850de..3d07603be41 100644
--- a/zircon/system/core/bootsvc/main.cpp
+++ b/zircon/system/core/bootsvc/main.cpp
@@ -11,7 +11,7 @@
 #include <launchpad/launchpad.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/bootsvc-protocol/processargs.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fdio.h>
 #include <lib/zx/debuglog.h>
 #include <zircon/boot/bootdata.h>
 #include <zircon/dlfcn.h>
diff --git a/zircon/system/core/devmgr/devhost/devhost.cpp b/zircon/system/core/devmgr/devhost/devhost.cpp
index c678c11eb49..47e90301001 100644
--- a/zircon/system/core/devmgr/devhost/devhost.cpp
+++ b/zircon/system/core/devmgr/devhost/devhost.cpp
@@ -33,7 +33,7 @@
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/async/cpp/receiver.h>
 #include <lib/async/cpp/wait.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fdio.h>
 #include <lib/fidl/coding.h>
 #include <lib/zx/debuglog.h>
 #include <lib/zx/resource.h>
@@ -41,11 +41,11 @@
 #include <lib/zxio/null.h>
 
 #include "../shared/async-loop-owned-rpc-handler.h"
-#include "main.h"
-#include "tracing.h"
 #include "../shared/env.h"
 #include "../shared/fidl_txn.h"
 #include "../shared/log.h"
+#include "main.h"
+#include "tracing.h"
 
 zx_status_t zx_driver::Create(fbl::RefPtr<zx_driver>* out_driver) {
     *out_driver = fbl::AdoptRef(new zx_driver());
diff --git a/zircon/system/core/devmgr/devmgr/devfs.cpp b/zircon/system/core/devmgr/devmgr/devfs.cpp
index 4c779f5a991..b10c1888279 100644
--- a/zircon/system/core/devmgr/devmgr/devfs.cpp
+++ b/zircon/system/core/devmgr/devmgr/devfs.cpp
@@ -19,7 +19,7 @@
 #include <fs/handler.h>
 #include <fuchsia/io/c/fidl.h>
 #include <lib/async/cpp/wait.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/coding.h>
 #include <lib/memfs/cpp/vnode.h>
 
diff --git a/zircon/system/core/devmgr/devmgr/main.cpp b/zircon/system/core/devmgr/devmgr/main.cpp
index b105bcc3287..a7d26da9a3a 100644
--- a/zircon/system/core/devmgr/devmgr/main.cpp
+++ b/zircon/system/core/devmgr/devmgr/main.cpp
@@ -33,7 +33,9 @@
 #include <lib/fdio/io.h>
 #include <lib/fdio/namespace.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/zx/debuglog.h>
 #include <lib/zx/event.h>
diff --git a/zircon/system/core/devmgr/fshost/block-watcher.cpp b/zircon/system/core/devmgr/fshost/block-watcher.cpp
index 24ce6419f6b..c429c273bde 100644
--- a/zircon/system/core/devmgr/fshost/block-watcher.cpp
+++ b/zircon/system/core/devmgr/fshost/block-watcher.cpp
@@ -15,7 +15,9 @@
 #include <fuchsia/device/c/fidl.h>
 #include <gpt/gpt.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/process.h>
diff --git a/zircon/system/core/devmgr/fshost/main.cpp b/zircon/system/core/devmgr/fshost/main.cpp
index 17221a71676..9f20f105eaf 100644
--- a/zircon/system/core/devmgr/fshost/main.cpp
+++ b/zircon/system/core/devmgr/fshost/main.cpp
@@ -9,7 +9,9 @@
 #include <fbl/unique_fd.h>
 #include <lib/bootfs/parser.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fit/defer.h>
 #include <lib/zx/channel.h>
diff --git a/zircon/system/core/devmgr/shared/fdio.cpp b/zircon/system/core/devmgr/shared/fdio.cpp
index 1dc0807d437..0e3da25005e 100644
--- a/zircon/system/core/devmgr/shared/fdio.cpp
+++ b/zircon/system/core/devmgr/shared/fdio.cpp
@@ -7,7 +7,9 @@
 #include <fbl/vector.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/debuglog.h>
 #include <lib/zx/job.h>
diff --git a/zircon/system/core/netsvc/netboot.cpp b/zircon/system/core/netsvc/netboot.cpp
index 766827e3441..c6df12574c3 100644
--- a/zircon/system/core/netsvc/netboot.cpp
+++ b/zircon/system/core/netsvc/netboot.cpp
@@ -18,7 +18,9 @@
 #include <fuchsia/device/manager/c/fidl.h>
 #include <inet6/inet6.h>
 #include <inet6/netifc.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/boot/netboot.h>
 #include <zircon/process.h>
 #include <zircon/processargs.h>
diff --git a/zircon/system/core/pwrbtn-monitor/pwrbtn-monitor.cpp b/zircon/system/core/pwrbtn-monitor/pwrbtn-monitor.cpp
index baa306877de..beb4798f24a 100644
--- a/zircon/system/core/pwrbtn-monitor/pwrbtn-monitor.cpp
+++ b/zircon/system/core/pwrbtn-monitor/pwrbtn-monitor.cpp
@@ -15,7 +15,9 @@
 #include <fuchsia/hardware/input/c/fidl.h>
 #include <hid-parser/parser.h>
 #include <hid-parser/usages.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fdio.h>
 #include <zircon/processargs.h>
diff --git a/zircon/system/core/svchost/crashsvc.cpp b/zircon/system/core/svchost/crashsvc.cpp
index 156584f85f6..04e8f43262f 100644
--- a/zircon/system/core/svchost/crashsvc.cpp
+++ b/zircon/system/core/svchost/crashsvc.cpp
@@ -10,7 +10,9 @@
 #include <fuchsia/crash/c/fidl.h>
 #include <inspector/inspector.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/handle.h>
 #include <lib/zx/job.h>
diff --git a/zircon/system/core/svchost/svchost.cpp b/zircon/system/core/svchost/svchost.cpp
index c69fe89a334..34576cbee76 100644
--- a/zircon/system/core/svchost/svchost.cpp
+++ b/zircon/system/core/svchost/svchost.cpp
@@ -7,7 +7,9 @@
 #include <fbl/algorithm.h>
 #include <fuchsia/net/c/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/logger/provider.h>
 #include <lib/process-launcher/launcher.h>
 #include <lib/profile/profile.h>
diff --git a/zircon/system/core/virtcon/main.cpp b/zircon/system/core/virtcon/main.cpp
index a82ff8cc13c..67ad269a52a 100644
--- a/zircon/system/core/virtcon/main.cpp
+++ b/zircon/system/core/virtcon/main.cpp
@@ -15,7 +15,9 @@
 #include <fuchsia/io/c/fidl.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fdio.h>
 #include <lib/zx/channel.h>
diff --git a/zircon/system/uapp/clock/clock.c b/zircon/system/uapp/clock/clock.c
index 4826450cdcc..2ebcfc3752e 100644
--- a/zircon/system/uapp/clock/clock.c
+++ b/zircon/system/uapp/clock/clock.c
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <fuchsia/hardware/rtc/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <ctype.h>
 #include <dirent.h>
diff --git a/zircon/system/uapp/dd/main.c b/zircon/system/uapp/dd/main.c
index 164b5eabd88..2d2dc40a4a6 100644
--- a/zircon/system/uapp/dd/main.c
+++ b/zircon/system/uapp/dd/main.c
@@ -15,7 +15,9 @@
 #include <unistd.h>
 
 #include <fuchsia/hardware/skipblock/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/process.h>
 #include <zircon/syscalls.h>
 
diff --git a/zircon/system/uapp/disk-pave/device-partitioner.cpp b/zircon/system/uapp/disk-pave/device-partitioner.cpp
index 867c81f93ba..741c1bcd22b 100644
--- a/zircon/system/uapp/disk-pave/device-partitioner.cpp
+++ b/zircon/system/uapp/disk-pave/device-partitioner.cpp
@@ -16,7 +16,9 @@
 #include <fuchsia/hardware/skipblock/c/fidl.h>
 #include <gpt/cros.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fdio.h>
 #include <zircon/status.h>
diff --git a/zircon/system/uapp/display-test/image.cpp b/zircon/system/uapp/display-test/image.cpp
index d07a6fa1869..2e6582211ac 100644
--- a/zircon/system/uapp/display-test/image.cpp
+++ b/zircon/system/uapp/display-test/image.cpp
@@ -4,7 +4,9 @@
 
 #include <fbl/algorithm.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/event.h>
 #include <lib/zx/vmar.h>
diff --git a/zircon/system/uapp/ethtool/ethtool.c b/zircon/system/uapp/ethtool/ethtool.c
index 6352d67d897..b7e04656371 100644
--- a/zircon/system/uapp/ethtool/ethtool.c
+++ b/zircon/system/uapp/ethtool/ethtool.c
@@ -4,7 +4,9 @@
 
 #include <fuchsia/hardware/ethernet/c/fidl.h>
 #include <inet6/inet6.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/assert.h>
 #include <zircon/boot/netboot.h>
 #include <zircon/process.h>
diff --git a/zircon/system/uapp/fs-fsck/main.c b/zircon/system/uapp/fs-fsck/main.c
index f20d4046631..1c662c9607e 100644
--- a/zircon/system/uapp/fs-fsck/main.c
+++ b/zircon/system/uapp/fs-fsck/main.c
@@ -16,7 +16,9 @@
 #include <zircon/compiler.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 struct {
     const char* name;
diff --git a/zircon/system/uapp/fs-mkfs/main.c b/zircon/system/uapp/fs-mkfs/main.c
index e739babdd1a..ca6b51b0602 100644
--- a/zircon/system/uapp/fs-mkfs/main.c
+++ b/zircon/system/uapp/fs-mkfs/main.c
@@ -14,7 +14,9 @@
 #include <unistd.h>
 
 #include <fs-management/mount.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/compiler.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/uapp/fs-mount/main.c b/zircon/system/uapp/fs-mount/main.c
index 0adab20cc65..001d50ecf66 100644
--- a/zircon/system/uapp/fs-mount/main.c
+++ b/zircon/system/uapp/fs-mount/main.c
@@ -16,7 +16,9 @@
 #include <fs-management/mount.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 
 int usage(void) {
diff --git a/zircon/system/uapp/i2c/i2c.c b/zircon/system/uapp/i2c/i2c.c
index d79ee5b1b0d..76550a32032 100644
--- a/zircon/system/uapp/i2c/i2c.c
+++ b/zircon/system/uapp/i2c/i2c.c
@@ -6,7 +6,9 @@
 #include <fcntl.h>
 #include <fuchsia/hardware/i2c/c/fidl.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/zircon/system/uapp/kstress/main.cpp b/zircon/system/uapp/kstress/main.cpp
index 5841fec5d2d..cb5483d6f02 100644
--- a/zircon/system/uapp/kstress/main.cpp
+++ b/zircon/system/uapp/kstress/main.cpp
@@ -5,7 +5,9 @@
 #include <fbl/unique_ptr.h>
 #include <fbl/vector.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/resource.h>
 #include <zircon/status.h>
diff --git a/zircon/system/uapp/light/light.cpp b/zircon/system/uapp/light/light.cpp
index cdadd31fa65..27acc80e28f 100644
--- a/zircon/system/uapp/light/light.cpp
+++ b/zircon/system/uapp/light/light.cpp
@@ -10,7 +10,9 @@
 
 #include <fbl/auto_call.h>
 #include <fuchsia/hardware/light/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/status.h>
 #include <zircon/syscalls.h>
 #include <zircon/types.h>
diff --git a/zircon/system/uapp/lsdev/lsdev.c b/zircon/system/uapp/lsdev/lsdev.c
index 8ea103f3dd7..4d89cd0e45f 100644
--- a/zircon/system/uapp/lsdev/lsdev.c
+++ b/zircon/system/uapp/lsdev/lsdev.c
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <fuchsia/device/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/syscalls.h>
 #include <zircon/status.h>
 #include <zircon/types.h>
diff --git a/zircon/system/uapp/lspwr/lspwr.cpp b/zircon/system/uapp/lspwr/lspwr.cpp
index 1babe782aaa..636b37d13a2 100644
--- a/zircon/system/uapp/lspwr/lspwr.cpp
+++ b/zircon/system/uapp/lspwr/lspwr.cpp
@@ -9,7 +9,9 @@
 #include <fcntl.h>
 #include <fuchsia/hardware/power/c/fidl.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/zircon/system/uapp/lsusb/lsusb.c b/zircon/system/uapp/lsusb/lsusb.c
index af1a78dcc92..1b380084ee7 100644
--- a/zircon/system/uapp/lsusb/lsusb.c
+++ b/zircon/system/uapp/lsusb/lsusb.c
@@ -4,7 +4,9 @@
 
 #include <zircon/types.h>
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <dirent.h>
 #include <endian.h>
 #include <fcntl.h>
diff --git a/zircon/system/uapp/nand-util/nand-broker.cpp b/zircon/system/uapp/nand-util/nand-broker.cpp
index f2b2f7bbc78..1c1a2dd8d20 100644
--- a/zircon/system/uapp/nand-util/nand-broker.cpp
+++ b/zircon/system/uapp/nand-util/nand-broker.cpp
@@ -11,7 +11,9 @@
 
 #include <fuchsia/device/c/fidl.h>
 #include <fuchsia/nand/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/unsafe.h>
 #include <lib/fdio/watcher.h>
 #include <lib/zx/vmo.h>
diff --git a/zircon/system/uapp/netdump/netdump.c b/zircon/system/uapp/netdump/netdump.c
index dce81fefdb5..5c29c0a8049 100644
--- a/zircon/system/uapp/netdump/netdump.c
+++ b/zircon/system/uapp/netdump/netdump.c
@@ -4,7 +4,9 @@
 
 #include <fuchsia/hardware/ethernet/c/fidl.h>
 #include <inet6/inet6.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <pretty/hexdump.h>
 #include <zircon/assert.h>
 #include <zircon/boot/netboot.h>
diff --git a/zircon/system/uapp/psutils/resources.c b/zircon/system/uapp/psutils/resources.c
index 02bda7bef6e..3737f79c971 100644
--- a/zircon/system/uapp/psutils/resources.c
+++ b/zircon/system/uapp/psutils/resources.c
@@ -5,7 +5,9 @@
 #include "resources.h"
 
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/status.h>
 #include <zircon/syscalls.h>
 
diff --git a/zircon/system/uapp/run-vc/main.c b/zircon/system/uapp/run-vc/main.c
index 209fd84510c..782e568019c 100644
--- a/zircon/system/uapp/run-vc/main.c
+++ b/zircon/system/uapp/run-vc/main.c
@@ -6,7 +6,9 @@
 #include <fuchsia/device/manager/c/fidl.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <limits.h>
 #include <stdbool.h>
diff --git a/zircon/system/uapp/suspendtest/suspendtest.c b/zircon/system/uapp/suspendtest/suspendtest.c
index 4db58f6ffe6..3deda3d4757 100644
--- a/zircon/system/uapp/suspendtest/suspendtest.c
+++ b/zircon/system/uapp/suspendtest/suspendtest.c
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <fuchsia/device/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/syscalls.h>
 #include <zircon/status.h>
 #include <zircon/types.h>
diff --git a/zircon/system/uapp/unbind/main.cpp b/zircon/system/uapp/unbind/main.cpp
index a0dfcbc41d7..a3570d58843 100644
--- a/zircon/system/uapp/unbind/main.cpp
+++ b/zircon/system/uapp/unbind/main.cpp
@@ -8,7 +8,9 @@
 #include <stdlib.h>
 
 #include <fuchsia/device/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 
 namespace {
diff --git a/zircon/system/uapp/usb-fwloader/usb-fwloader.cpp b/zircon/system/uapp/usb-fwloader/usb-fwloader.cpp
index 18d36d8fc54..554262e16f7 100644
--- a/zircon/system/uapp/usb-fwloader/usb-fwloader.cpp
+++ b/zircon/system/uapp/usb-fwloader/usb-fwloader.cpp
@@ -10,7 +10,9 @@
 #include <fuchsia/hardware/usb/fwloader/c/fidl.h>
 #include <fuchsia/mem/c/fidl.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fdio.h>
 #include <lib/zx/channel.h>
diff --git a/zircon/system/uapp/usbctl/usbctl.c b/zircon/system/uapp/usbctl/usbctl.c
index 2a3b88f6b9f..68b6114d1bc 100644
--- a/zircon/system/uapp/usbctl/usbctl.c
+++ b/zircon/system/uapp/usbctl/usbctl.c
@@ -5,13 +5,17 @@
 #include <dirent.h>
 #include <fcntl.h>
 #include <fuchsia/hardware/usb/peripheral/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <ddk/protocol/usb/modeswitch.h>
 #include <fuchsia/usb/virtualbus/c/fidl.h>
 
diff --git a/zircon/system/ulib/cobalt-client/cobalt_logger.cpp b/zircon/system/ulib/cobalt-client/cobalt_logger.cpp
index 4f89680ba48..39fd39bdac6 100644
--- a/zircon/system/ulib/cobalt-client/cobalt_logger.cpp
+++ b/zircon/system/ulib/cobalt-client/cobalt_logger.cpp
@@ -4,7 +4,9 @@
 
 #include <cobalt-client/cpp/collector-internal.h>
 #include <fuchsia/cobalt/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/coding.h>
 #include <lib/fidl/cpp/vector_view.h>
 
diff --git a/zircon/system/ulib/cobalt-client/collector.cpp b/zircon/system/ulib/cobalt-client/collector.cpp
index fc707bbe925..ee8251f5f30 100644
--- a/zircon/system/ulib/cobalt-client/collector.cpp
+++ b/zircon/system/ulib/cobalt-client/collector.cpp
@@ -12,7 +12,9 @@
 #include <cobalt-client/cpp/collector-internal.h>
 
 #include <fuchsia/cobalt/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/cpp/vector_view.h>
 #include <lib/zx/channel.h>
 #endif
diff --git a/zircon/system/ulib/devmgr-integration-test/launcher.cpp b/zircon/system/ulib/devmgr-integration-test/launcher.cpp
index 2d2d745d67c..ea49a7f1ed1 100644
--- a/zircon/system/ulib/devmgr-integration-test/launcher.cpp
+++ b/zircon/system/ulib/devmgr-integration-test/launcher.cpp
@@ -9,7 +9,9 @@
 
 #include <fbl/algorithm.h>
 #include <lib/devmgr-launcher/launch.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/processargs.h>
 #include <zircon/status.h>
diff --git a/zircon/system/ulib/devmgr-launcher/launcher.cpp b/zircon/system/ulib/devmgr-launcher/launcher.cpp
index 7a3fe3ceafc..cd1e87fac6b 100644
--- a/zircon/system/ulib/devmgr-launcher/launcher.cpp
+++ b/zircon/system/ulib/devmgr-launcher/launcher.cpp
@@ -10,7 +10,9 @@
 #include <fbl/algorithm.h>
 #include <lib/fdio/namespace.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/process.h>
 #include <zircon/assert.h>
diff --git a/zircon/system/ulib/fdio/bsdsocket.c b/zircon/system/ulib/fdio/bsdsocket.c
index 9a646545a96..c4af6c5331b 100644
--- a/zircon/system/ulib/fdio/bsdsocket.c
+++ b/zircon/system/ulib/fdio/bsdsocket.c
@@ -22,7 +22,9 @@
 
 #include <lib/fdio/debug.h>
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zxs/protocol.h>
 #include <lib/zxs/zxs.h>
 
diff --git a/zircon/system/ulib/fdio/namespace/local-filesystem.cpp b/zircon/system/ulib/fdio/namespace/local-filesystem.cpp
index a5f35dd64a7..7c96d3792ea 100644
--- a/zircon/system/ulib/fdio/namespace/local-filesystem.cpp
+++ b/zircon/system/ulib/fdio/namespace/local-filesystem.cpp
@@ -17,7 +17,9 @@
 #include <fbl/string_buffer.h>
 #include <fbl/string_piece.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/device/vfs.h>
 #include <zircon/processargs.h>
diff --git a/zircon/system/ulib/fdio/namespace/namespace.cpp b/zircon/system/ulib/fdio/namespace/namespace.cpp
index 632ffb42d45..ddb3a6240be 100644
--- a/zircon/system/ulib/fdio/namespace/namespace.cpp
+++ b/zircon/system/ulib/fdio/namespace/namespace.cpp
@@ -8,7 +8,9 @@
 #include <fbl/ref_counted.h>
 #include <fbl/ref_ptr.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/types.h>
 #include <zircon/processargs.h>
diff --git a/zircon/system/ulib/fdio/remoteio.c b/zircon/system/ulib/fdio/remoteio.c
index 3525df352bb..04bf6f55bf1 100644
--- a/zircon/system/ulib/fdio/remoteio.c
+++ b/zircon/system/ulib/fdio/remoteio.c
@@ -6,6 +6,9 @@
 #include <fuchsia/io/c/fidl.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/namespace.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/util.h>
 #include <string.h>
 #include <zircon/device/vfs.h>
diff --git a/zircon/system/ulib/fdio/socket.c b/zircon/system/ulib/fdio/socket.c
index b9ab0fecff5..5627bccc0b7 100644
--- a/zircon/system/ulib/fdio/socket.c
+++ b/zircon/system/ulib/fdio/socket.c
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zxio/inception.h>
 #include <lib/zxs/protocol.h>
 #include <poll.h>
diff --git a/zircon/system/ulib/fdio/spawn.c b/zircon/system/ulib/fdio/spawn.c
index bccf653d6ee..ee51af22838 100644
--- a/zircon/system/ulib/fdio/spawn.c
+++ b/zircon/system/ulib/fdio/spawn.c
@@ -9,7 +9,9 @@
 #include <lib/fdio/io.h>
 #include <lib/fdio/limits.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/zircon/system/ulib/fdio/unistd.c b/zircon/system/ulib/fdio/unistd.c
index f51e0ad8b89..2a646036fad 100644
--- a/zircon/system/ulib/fdio/unistd.c
+++ b/zircon/system/ulib/fdio/unistd.c
@@ -38,7 +38,9 @@
 #include <lib/fdio/namespace.h>
 #include <lib/fdio/private.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/vfs.h>
 
 #include "private.h"
diff --git a/zircon/system/ulib/fdio/waitable.cpp b/zircon/system/ulib/fdio/waitable.cpp
index 0e3b5251f29..ce7aba1e493 100644
--- a/zircon/system/ulib/fdio/waitable.cpp
+++ b/zircon/system/ulib/fdio/waitable.cpp
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zxio/null.h>
 #include <lib/zxio/ops.h>
 #include <string.h>
diff --git a/zircon/system/ulib/fdio/zxio.c b/zircon/system/ulib/fdio/zxio.c
index 9666721162e..3778a47957e 100644
--- a/zircon/system/ulib/fdio/zxio.c
+++ b/zircon/system/ulib/fdio/zxio.c
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zxio/inception.h>
 #include <lib/zxio/null.h>
 #include <lib/zxio/zxio.h>
diff --git a/zircon/system/ulib/fs-management/fsck.cpp b/zircon/system/ulib/fs-management/fsck.cpp
index bf002bf3cf5..67b6451beca 100644
--- a/zircon/system/ulib/fs-management/fsck.cpp
+++ b/zircon/system/ulib/fs-management/fsck.cpp
@@ -12,7 +12,9 @@
 
 #include <fbl/unique_ptr.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/vfs.h>
 #include <zircon/compiler.h>
 #include <zircon/device/vfs.h>
diff --git a/zircon/system/ulib/fs-management/fvm.cpp b/zircon/system/ulib/fs-management/fvm.cpp
index 6a378ad116c..bb1e6eaac6a 100644
--- a/zircon/system/ulib/fs-management/fvm.cpp
+++ b/zircon/system/ulib/fs-management/fvm.cpp
@@ -17,7 +17,9 @@
 #include <fs-management/fvm.h>
 #include <fvm/format.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/vfs.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fdio.h>
diff --git a/zircon/system/ulib/fs-management/launch.cpp b/zircon/system/ulib/fs-management/launch.cpp
index bd7cac12514..7ed7536046d 100644
--- a/zircon/system/ulib/fs-management/launch.cpp
+++ b/zircon/system/ulib/fs-management/launch.cpp
@@ -15,7 +15,9 @@
 #include <fs-management/mount.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/process.h>
 #include <zircon/compiler.h>
 #include <zircon/processargs.h>
diff --git a/zircon/system/ulib/fs-management/mkfs.cpp b/zircon/system/ulib/fs-management/mkfs.cpp
index b954b42ff20..72fa2032ab7 100644
--- a/zircon/system/ulib/fs-management/mkfs.cpp
+++ b/zircon/system/ulib/fs-management/mkfs.cpp
@@ -15,7 +15,9 @@
 #include <fbl/unique_ptr.h>
 #include <fbl/vector.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/vfs.h>
 #include <zircon/compiler.h>
 #include <zircon/device/vfs.h>
diff --git a/zircon/system/ulib/fs-management/mount.cpp b/zircon/system/ulib/fs-management/mount.cpp
index 3763ec57bea..511243f583c 100644
--- a/zircon/system/ulib/fs-management/mount.cpp
+++ b/zircon/system/ulib/fs-management/mount.cpp
@@ -17,7 +17,9 @@
 #include <fs/client.h>
 #include <fuchsia/io/c/fidl.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/vfs.h>
 #include <lib/fzl/fdio.h>
 #include <lib/zx/channel.h>
diff --git a/zircon/system/ulib/inet6/netifc.c b/zircon/system/ulib/inet6/netifc.c
index 4a676e3bcab..c6a97aefa57 100644
--- a/zircon/system/ulib/inet6/netifc.c
+++ b/zircon/system/ulib/inet6/netifc.c
@@ -27,7 +27,9 @@
 #include <inet6/netifc.h>
 
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 
 #define ALIGN(n, a) (((n) + ((a) - 1)) & ~((a) - 1))
diff --git a/zircon/system/ulib/launchpad/fdio.c b/zircon/system/ulib/launchpad/fdio.c
index 0eef82270c2..48fa18bcfcc 100644
--- a/zircon/system/ulib/launchpad/fdio.c
+++ b/zircon/system/ulib/launchpad/fdio.c
@@ -10,7 +10,9 @@
 #include <zircon/syscalls.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/zircon/system/ulib/log/log.cpp b/zircon/system/ulib/log/log.cpp
index b810e978e49..45bc07b578a 100644
--- a/zircon/system/ulib/log/log.cpp
+++ b/zircon/system/ulib/log/log.cpp
@@ -5,7 +5,9 @@
 #include <fbl/algorithm.h>
 #include <fbl/string.h>
 #include <fbl/vector.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/log/log.h>
 #include <lib/log/log_writer.h>
 #include <memory>
diff --git a/zircon/system/ulib/ramdevice-client/ramdisk.cpp b/zircon/system/ulib/ramdevice-client/ramdisk.cpp
index e8af2334fc8..62ae9d99280 100644
--- a/zircon/system/ulib/ramdevice-client/ramdisk.cpp
+++ b/zircon/system/ulib/ramdevice-client/ramdisk.cpp
@@ -22,7 +22,9 @@
 #include <fbl/unique_fd.h>
 #include <fuchsia/device/c/fidl.h>
 #include <fuchsia/hardware/ramdisk/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/time.h>
diff --git a/zircon/system/ulib/ramdevice-client/ramnand.cpp b/zircon/system/ulib/ramdevice-client/ramnand.cpp
index a237e2bd6d0..3f74b1b1e80 100644
--- a/zircon/system/ulib/ramdevice-client/ramnand.cpp
+++ b/zircon/system/ulib/ramdevice-client/ramnand.cpp
@@ -14,7 +14,9 @@
 #include <fbl/unique_fd.h>
 #include <fuchsia/device/c/fidl.h>
 #include <fuchsia/hardware/nand/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fzl/fdio.h>
 #include <zircon/types.h>
 
diff --git a/zircon/system/ulib/runtests-utils/log-exporter.cpp b/zircon/system/ulib/runtests-utils/log-exporter.cpp
index 781d30ffb02..d0ef6bee665 100644
--- a/zircon/system/ulib/runtests-utils/log-exporter.cpp
+++ b/zircon/system/ulib/runtests-utils/log-exporter.cpp
@@ -8,7 +8,9 @@
 #include <stdint.h>
 
 #include <fuchsia/logger/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl/cpp/message_buffer.h>
 #include <lib/zx/channel.h>
 #include <zircon/status.h>
diff --git a/zircon/system/ulib/syslog/logger.cpp b/zircon/system/ulib/syslog/logger.cpp
index 523fad6065b..534f555ef12 100644
--- a/zircon/system/ulib/syslog/logger.cpp
+++ b/zircon/system/ulib/syslog/logger.cpp
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/socket.h>
 #include <lib/syslog/logger.h>
diff --git a/zircon/system/ulib/sysmem-connector/sysmem-connector.cpp b/zircon/system/ulib/sysmem-connector/sysmem-connector.cpp
index e572566506c..f61ecf88b17 100644
--- a/zircon/system/ulib/sysmem-connector/sysmem-connector.cpp
+++ b/zircon/system/ulib/sysmem-connector/sysmem-connector.cpp
@@ -12,7 +12,9 @@
 #include <lib/async/cpp/task.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/fdio/watcher.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fzl/fdio.h>
 #include <lib/zx/channel.h>
 
diff --git a/zircon/system/ulib/task-utils/walker.cpp b/zircon/system/ulib/task-utils/walker.cpp
index e76229bf269..3a2cf12215d 100644
--- a/zircon/system/ulib/task-utils/walker.cpp
+++ b/zircon/system/ulib/task-utils/walker.cpp
@@ -12,7 +12,9 @@
 #include <unistd.h>
 
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/status.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/ulib/tee-client-api/tee-client-api.c b/zircon/system/ulib/tee-client-api/tee-client-api.c
index 94ac5f4db28..4e6f3623ca1 100644
--- a/zircon/system/ulib/tee-client-api/tee-client-api.c
+++ b/zircon/system/ulib/tee-client-api/tee-client-api.c
@@ -12,7 +12,9 @@
 #include <zircon/syscalls.h>
 
 #include <fuchsia/hardware/tee/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <tee-client-api/tee_client_api.h>
 
diff --git a/zircon/system/ulib/trace-provider/fdio_connect.cpp b/zircon/system/ulib/trace-provider/fdio_connect.cpp
index 2411ee94534..d1033d755f5 100644
--- a/zircon/system/ulib/trace-provider/fdio_connect.cpp
+++ b/zircon/system/ulib/trace-provider/fdio_connect.cpp
@@ -4,7 +4,9 @@
 
 // A helper library for connecting to the trace manager via fdio.
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <trace-provider/fdio_connect.h>
 
diff --git a/zircon/system/utest/chromeos-disk-setup/chromeos-disk-setup.cpp b/zircon/system/utest/chromeos-disk-setup/chromeos-disk-setup.cpp
index be4cdac041e..d4c7e42640b 100644
--- a/zircon/system/utest/chromeos-disk-setup/chromeos-disk-setup.cpp
+++ b/zircon/system/utest/chromeos-disk-setup/chromeos-disk-setup.cpp
@@ -11,7 +11,9 @@
 #include <unistd.h>
 
 #include <fbl/unique_fd.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/vmo.h>
 #include <zircon/device/block.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/utest/devfs/fdio-tests.cpp b/zircon/system/utest/devfs/fdio-tests.cpp
index 5513b357ebf..5190c0b5f61 100644
--- a/zircon/system/utest/devfs/fdio-tests.cpp
+++ b/zircon/system/utest/devfs/fdio-tests.cpp
@@ -8,7 +8,9 @@
 #include <fbl/unique_fd.h>
 #include <fuchsia/io/c/fidl.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/utest/devfs/fidl-tests.cpp b/zircon/system/utest/devfs/fidl-tests.cpp
index a59db22b8f4..64d09fc69a3 100644
--- a/zircon/system/utest/devfs/fidl-tests.cpp
+++ b/zircon/system/utest/devfs/fidl-tests.cpp
@@ -6,7 +6,9 @@
 #include <fs/connection.h>
 #include <fuchsia/io/c/fidl.h>
 #include <lib/fdio/namespace.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <unittest/unittest.h>
 #include <zircon/device/vfs.h>
diff --git a/zircon/system/utest/device-enumeration/main.cpp b/zircon/system/utest/device-enumeration/main.cpp
index e95130a297f..f8243f40692 100644
--- a/zircon/system/utest/device-enumeration/main.cpp
+++ b/zircon/system/utest/device-enumeration/main.cpp
@@ -11,7 +11,9 @@
 #include <fbl/unique_fd.h>
 #include <fuchsia/sysinfo/c/fidl.h>
 #include <lib/devmgr-integration-test/fixture.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/status.h>
 
diff --git a/zircon/system/utest/driver-test/main.cpp b/zircon/system/utest/driver-test/main.cpp
index 39d95e036b0..6e0ad8a51ec 100644
--- a/zircon/system/utest/driver-test/main.cpp
+++ b/zircon/system/utest/driver-test/main.cpp
@@ -17,7 +17,9 @@
 #include <fuchsia/device/c/fidl.h>
 #include <fuchsia/device/test/c/fidl.h>
 #include <lib/devmgr-integration-test/fixture.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/socket.h>
 #include <lib/zx/time.h>
diff --git a/zircon/system/utest/ethernet/ethernet.cpp b/zircon/system/utest/ethernet/ethernet.cpp
index cb2069c2eab..b31ab9de1fe 100644
--- a/zircon/system/utest/ethernet/ethernet.cpp
+++ b/zircon/system/utest/ethernet/ethernet.cpp
@@ -9,7 +9,9 @@
 #include <fbl/unique_ptr.h>
 #include <fbl/vector.h>
 #include <fuchsia/hardware/ethernet/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fzl/fdio.h>
 #include <lib/fzl/fifo.h>
diff --git a/zircon/system/utest/fdio/fdio_handle_fd.c b/zircon/system/utest/fdio/fdio_handle_fd.c
index 972a46e394c..17e76126d2c 100644
--- a/zircon/system/utest/fdio/fdio_handle_fd.c
+++ b/zircon/system/utest/fdio/fdio_handle_fd.c
@@ -14,7 +14,9 @@
 #include <unistd.h>
 
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/utest/fdio/fdio_socket.c b/zircon/system/utest/fdio/fdio_socket.c
index b226a12be42..f56c1b40c81 100644
--- a/zircon/system/utest/fdio/fdio_socket.c
+++ b/zircon/system/utest/fdio/fdio_socket.c
@@ -6,7 +6,9 @@
 #include <sys/socket.h>
 #include <unistd.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/utest/fdio/fdio_socketpair.c b/zircon/system/utest/fdio/fdio_socketpair.c
index d1dac6dc4ed..0fc195b2d04 100644
--- a/zircon/system/utest/fdio/fdio_socketpair.c
+++ b/zircon/system/utest/fdio/fdio_socketpair.c
@@ -14,7 +14,9 @@
 
 #include <lib/fdio/limits.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
 
diff --git a/zircon/system/utest/fs-vnode/service-tests.cpp b/zircon/system/utest/fs-vnode/service-tests.cpp
index d7407a9e5a8..ca546f9f671 100644
--- a/zircon/system/utest/fs-vnode/service-tests.cpp
+++ b/zircon/system/utest/fs-vnode/service-tests.cpp
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <fs/synchronous-vfs.h>
 #include <fs/pseudo-dir.h>
 #include <fs/service.h>
diff --git a/zircon/system/utest/fs/test-access.cpp b/zircon/system/utest/fs/test-access.cpp
index 338a7cdacdf..663d29a35f6 100644
--- a/zircon/system/utest/fs/test-access.cpp
+++ b/zircon/system/utest/fs/test-access.cpp
@@ -13,7 +13,9 @@
 #include <unistd.h>
 
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/syscalls.h>
 
diff --git a/zircon/system/utest/fs/test-append.cpp b/zircon/system/utest/fs/test-append.cpp
index 16ef138ec4d..ff4869eecf5 100644
--- a/zircon/system/utest/fs/test-append.cpp
+++ b/zircon/system/utest/fs/test-append.cpp
@@ -14,7 +14,9 @@
 #include <fbl/algorithm.h>
 #include <fbl/unique_fd.h>
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include "filesystems.h"
 #include "misc.h"
diff --git a/zircon/system/utest/fs/test-basic.c b/zircon/system/utest/fs/test-basic.c
index 65d5c616891..6753df92972 100644
--- a/zircon/system/utest/fs/test-basic.c
+++ b/zircon/system/utest/fs/test-basic.c
@@ -10,7 +10,9 @@
 #include <unistd.h>
 
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/syscalls.h>
 
diff --git a/zircon/system/utest/fs/test-clone.cpp b/zircon/system/utest/fs/test-clone.cpp
index 8780ec9e269..6da8d499d1f 100644
--- a/zircon/system/utest/fs/test-clone.cpp
+++ b/zircon/system/utest/fs/test-clone.cpp
@@ -11,7 +11,9 @@
 #include <unistd.h>
 
 #include <lib/fdio/limits.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 #include <zircon/syscalls.h>
 
diff --git a/zircon/system/utest/hypervisor/guest.cpp b/zircon/system/utest/hypervisor/guest.cpp
index ab6cda97f0c..5e1933273d7 100644
--- a/zircon/system/utest/hypervisor/guest.cpp
+++ b/zircon/system/utest/hypervisor/guest.cpp
@@ -8,7 +8,9 @@
 
 #include <fbl/unique_fd.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/guest.h>
 #include <lib/zx/port.h>
diff --git a/zircon/system/utest/kernel-unittests/kernel-unittests.cpp b/zircon/system/utest/kernel-unittests/kernel-unittests.cpp
index d93e162fccc..320618f6b93 100644
--- a/zircon/system/utest/kernel-unittests/kernel-unittests.cpp
+++ b/zircon/system/utest/kernel-unittests/kernel-unittests.cpp
@@ -6,7 +6,9 @@
 #include <unistd.h>
 
 #include <fuchsia/kernel/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <unittest/unittest.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/utest/launchpad/launchpad.cpp b/zircon/system/utest/launchpad/launchpad.cpp
index c46060a7e77..bc15cdbdf47 100644
--- a/zircon/system/utest/launchpad/launchpad.cpp
+++ b/zircon/system/utest/launchpad/launchpad.cpp
@@ -20,7 +20,9 @@
 #include <fbl/array.h>
 #include <fbl/auto_call.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/handle.h>
 #include <lib/zx/vmo.h>
 
diff --git a/zircon/system/utest/memfs/fidl-tests.cpp b/zircon/system/utest/memfs/fidl-tests.cpp
index 1830bc29337..124d027fcff 100644
--- a/zircon/system/utest/memfs/fidl-tests.cpp
+++ b/zircon/system/utest/memfs/fidl-tests.cpp
@@ -14,7 +14,9 @@
 #include <fbl/unique_fd.h>
 #include <fuchsia/io/c/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fzl/fdio.h>
 #include <lib/memfs/memfs.h>
 #include <unittest/unittest.h>
diff --git a/zircon/system/utest/memfs/memfs-tests.cpp b/zircon/system/utest/memfs/memfs-tests.cpp
index 587f1060002..e94d24b56db 100644
--- a/zircon/system/utest/memfs/memfs-tests.cpp
+++ b/zircon/system/utest/memfs/memfs-tests.cpp
@@ -14,7 +14,9 @@
 #include <fbl/unique_ptr.h>
 #include <fbl/unique_fd.h>
 #include <fbl/vector.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/memfs/memfs.h>
 #include <unittest/unittest.h>
diff --git a/zircon/system/utest/memfs/vmofile-tests.cpp b/zircon/system/utest/memfs/vmofile-tests.cpp
index f01c3db73a3..b9d255cd902 100644
--- a/zircon/system/utest/memfs/vmofile-tests.cpp
+++ b/zircon/system/utest/memfs/vmofile-tests.cpp
@@ -13,7 +13,9 @@
 #include <fbl/unique_fd.h>
 #include <fuchsia/io/c/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/memfs/cpp/vnode.h>
 #include <lib/memfs/memfs.h>
 #include <lib/zx/channel.h>
diff --git a/zircon/system/utest/profile/profile.cpp b/zircon/system/utest/profile/profile.cpp
index b713fbb4561..8c6b518f8bb 100644
--- a/zircon/system/utest/profile/profile.cpp
+++ b/zircon/system/utest/profile/profile.cpp
@@ -7,7 +7,9 @@
 #include <stdio.h>
 
 #include <lib/fdio/io.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <unittest/unittest.h>
 
diff --git a/zircon/system/utest/property/property.c b/zircon/system/utest/property/property.c
index 632f5b8e90d..5112031efd4 100644
--- a/zircon/system/utest/property/property.c
+++ b/zircon/system/utest/property/property.c
@@ -9,7 +9,9 @@
 #include <string.h>
 #include <threads.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <test-utils/test-utils.h>
 #include <unittest/unittest.h>
 #include <zircon/compiler.h>
diff --git a/zircon/system/utest/spawn/child.c b/zircon/system/utest/spawn/child.c
index eda8586abba..f2a83b87e1c 100644
--- a/zircon/system/utest/spawn/child.c
+++ b/zircon/system/utest/spawn/child.c
@@ -6,7 +6,9 @@
 #include <lib/fdio/limits.h>
 #include <lib/fdio/namespace.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/zircon/system/utest/spawn/spawn.cpp b/zircon/system/utest/spawn/spawn.cpp
index 03996bf575e..6190501a377 100644
--- a/zircon/system/utest/spawn/spawn.cpp
+++ b/zircon/system/utest/spawn/spawn.cpp
@@ -7,7 +7,9 @@
 #include <fcntl.h>
 #include <lib/fdio/io.h>
 #include <lib/fdio/spawn.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/job.h>
 #include <lib/zx/process.h>
diff --git a/zircon/system/utest/stdio/stdio.c b/zircon/system/utest/stdio/stdio.c
index 229872fe987..33bfc3dc243 100644
--- a/zircon/system/utest/stdio/stdio.c
+++ b/zircon/system/utest/stdio/stdio.c
@@ -20,7 +20,9 @@
 #include <zircon/syscalls.h>
 #include <zircon/syscalls/object.h>
 
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 
 #include <unittest/unittest.h>
 
diff --git a/zircon/system/utest/sysinfo/main.cpp b/zircon/system/utest/sysinfo/main.cpp
index c76b25622e8..6bf706c8a2a 100644
--- a/zircon/system/utest/sysinfo/main.cpp
+++ b/zircon/system/utest/sysinfo/main.cpp
@@ -6,7 +6,9 @@
 #include <unistd.h>
 
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/boot/image.h>
 #include <zircon/syscalls.h>
diff --git a/zircon/system/utest/sysmem/sysmem_tests.cpp b/zircon/system/utest/sysmem/sysmem_tests.cpp
index 01cf4c365ae..ef8d67d434d 100644
--- a/zircon/system/utest/sysmem/sysmem_tests.cpp
+++ b/zircon/system/utest/sysmem/sysmem_tests.cpp
@@ -7,7 +7,9 @@
 #include <fcntl.h>
 #include <fuchsia/sysmem/c/fidl.h>
 #include <lib/fdio/unsafe.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/fidl-async-2/fidl_struct.h>
 #include <lib/zx/channel.h>
 #include <lib/zx/event.h>
diff --git a/zircon/system/utest/thread-state/thread-state.cpp b/zircon/system/utest/thread-state/thread-state.cpp
index 881cbd680df..ceabc672fe1 100644
--- a/zircon/system/utest/thread-state/thread-state.cpp
+++ b/zircon/system/utest/thread-state/thread-state.cpp
@@ -12,7 +12,9 @@
 
 #include <fbl/algorithm.h>
 #include <fuchsia/sysinfo/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <lib/zx/channel.h>
 #include <zircon/process.h>
 #include <zircon/processargs.h>
diff --git a/zircon/system/utest/usb/usb-test.c b/zircon/system/utest/usb/usb-test.c
index 27f8bad564d..a115cb7165d 100644
--- a/zircon/system/utest/usb/usb-test.c
+++ b/zircon/system/utest/usb/usb-test.c
@@ -3,7 +3,9 @@
 // found in the LICENSE file.
 
 #include <fuchsia/hardware/usb/tester/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <unittest/unittest.h>
 
 #include <dirent.h>
diff --git a/zircon/system/utest/vdso-base/vdso-base.c b/zircon/system/utest/vdso-base/vdso-base.c
index 1c0ddba74f9..8e60e390b21 100644
--- a/zircon/system/utest/vdso-base/vdso-base.c
+++ b/zircon/system/utest/vdso-base/vdso-base.c
@@ -8,7 +8,9 @@
 #include <zircon/process.h>
 #include <zircon/processargs.h>
 #include <zircon/syscalls.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/fd.h>
+#include <lib/fdio/fdio.h>
+#include <lib/fdio/directory.h>
 #include <stdio.h>
 #include <sys/param.h>
 #include <string.h>
diff --git a/zircon/third_party/uapp/dash/src/bltin/zircon.c b/zircon/third_party/uapp/dash/src/bltin/zircon.c
index 6aef889064b..3bdb9abbf30 100644
--- a/zircon/third_party/uapp/dash/src/bltin/zircon.c
+++ b/zircon/third_party/uapp/dash/src/bltin/zircon.c
@@ -17,7 +17,7 @@
 
 #include <fuchsia/device/manager/c/fidl.h>
 #include <fuchsia/kernel/c/fidl.h>
-#include <lib/fdio/util.h>
+#include <lib/fdio/directory.h>
 #include <pretty/hexdump.h>
 #include <zircon/syscalls.h>
 
-- 
GitLab