Revert "[zircon][fidl][zx] Extract built-in zx library"

This reverts commit cf130f3909c3d0b88352754e44a5431fa1fbaf2e.

Reason for revert: internal bot failure, see 
https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=7802#c22

Original change's description:
> [zircon][fidl][zx] Extract built-in zx library
> 
> This moves the magically injected `library zx` out of fidlc, and into
> normal fidl files in //zircon/vdso. This allows the syscall definitions
> to share the definition with other fidl, and also to have the rest of
> the syscall definitions live in library zx (rather than the fake
> "library zz" that was internally mapped to zx by kazoo).
> 
> Rather than have every fidl library have to specify a public_deps on zx,
> the GN templates are modified to automatically include that dependency,
> so previous behaviour is maintained.
> 
> This is largely a reland of
> https://fuchsia-review.googlesource.com/c/fuchsia/+/343788 other than
> updates for various churn that has happened since then. The previous CL
> was reverted because of the details of how Chromium generated build
> rules (see fxbug.dev/44602), but does not appear to be an issue any more
> (based on doing a local Chromium build with tools/fuchsia/local-sdk.py
> in the Chromium repo.)
> 
> Bug: 7802
> Bug: 42717
> Bug: 44602
> Change-Id: I8c717d292974089491b6c304c7b95ee8266912f5
> Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/377821
> Reviewed-by: Pascal Perez <pascallouis@google.com>
> Reviewed-by: Adam Barth <abarth@google.com>
> API-Review: Pascal Perez <pascallouis@google.com>
> Testability-Review: Pascal Perez <pascallouis@google.com>
> Commit-Queue: Scott Graham <scottmg@google.com>

TBR=abarth@google.com,scottmg@google.com,pascallouis@google.com

Change-Id: I1eb63ac3f583d6dd52d1f8a82d3111a2f5dcd14e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 7802, 42717, 44602
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/378033
Reviewed-by: Scott Graham <scottmg@google.com>
Commit-Queue: Scott Graham <scottmg@google.com>
diff --git a/build/fidl/fidl.gni b/build/fidl/fidl.gni
index d9c4d39..6cc5692 100644
--- a/build/fidl/fidl.gni
+++ b/build/fidl/fidl.gni
@@ -83,40 +83,23 @@
          "All FIDL dependencies are inherently " +
              "public, use 'public_deps' instead of 'deps'.")
 
-  additional_deps = []
-  if (target_name != "zx") {
-    additional_deps += [ "//zircon/vdso/zx" ]
-  }
-
   if (current_toolchain == dart_toolchain) {
     import("//build/dart/fidl_dart.gni")
 
     fidl_dart(target_name) {
       forward_variables_from(invoker, "*")
-      if (!defined(public_deps)) {
-        public_deps = []
-      }
-      public_deps += additional_deps
     }
   } else if (current_toolchain == rust_toolchain) {
     import("//build/rust/fidl_rust.gni")
 
     fidl_rust(target_name) {
       forward_variables_from(invoker, "*")
-      if (!defined(public_deps)) {
-        public_deps = []
-      }
-      public_deps += additional_deps
     }
   } else if (current_toolchain == go_toolchain) {
     import("//build/go/fidl_go.gni")
 
     fidl_go(target_name) {
       forward_variables_from(invoker, "*")
-      if (!defined(public_deps)) {
-        public_deps = []
-      }
-      public_deps += additional_deps
     }
   } else {
     import("//build/c/fidl_c.gni")
@@ -159,13 +142,8 @@
       if (defined(invoker.excluded_checks)) {
         excluded_checks = invoker.excluded_checks
       }
-
       fidl_library(target_name) {
         forward_variables_from(invoker, "*")
-        if (!defined(public_deps)) {
-          public_deps = []
-        }
-        public_deps += additional_deps
       }
     }
 
@@ -190,10 +168,6 @@
 
     fidl_cpp(target_name) {
       forward_variables_from(invoker, "*")
-      if (!defined(public_deps)) {
-        public_deps = []
-      }
-      public_deps += additional_deps
       generators = [
         {
           fidlgen_tool = "//garnet/go/src/fidl:fidlgen_hlcpp"
@@ -228,27 +202,15 @@
     # TODO(cramertj): remove pending TC-81.
     fidl_rust_library(target_name) {
       forward_variables_from(invoker, "*")
-      if (!defined(public_deps)) {
-        public_deps = []
-      }
-      public_deps += additional_deps
     }
 
     if (is_fuchsia) {
       fidl_c_client(target_name) {
         forward_variables_from(invoker, "*")
-        if (!defined(public_deps)) {
-          public_deps = []
-        }
-        public_deps += additional_deps
       }
 
       fidl_c_server(target_name) {
         forward_variables_from(invoker, "*")
-        if (!defined(public_deps)) {
-          public_deps = []
-        }
-        public_deps += additional_deps
       }
 
       group("${target_name}_c") {
diff --git a/docs/development/languages/fidl/reference/library-zx.md b/docs/development/languages/fidl/reference/library-zx.md
index 60100d9..3893760 100644
--- a/docs/development/languages/fidl/reference/library-zx.md
+++ b/docs/development/languages/fidl/reference/library-zx.md
@@ -1,12 +1,29 @@
 
 # FIDL internal library zx
 
-The `zx` library is is defined by
-[//zircon/vdso/zx_common.fidl](/zircon/vdso/zx_common.fidl). It is included by
-GN build rules into invocations of `fidlc` when building fidl code and need not
-be explicitly depended upon by every fidl library. If invoking `fidlc` directly,
-`zx_common.fidl` would need to be included with a `--files` argument if
-necessary.
+The `fidlc` compiler automatically generates `library zx` (internally) into
+[//zircon/tools/fidl/lib/library_zx.cc](/zircon/tools/fidl/lib/library_zx.cc).
+
+You will find content similar to the following:
+
+```fidl
+[Internal]
+library zx;
+using status = int32;
+using time = int64;
+using duration = int64;
+using koid = uint64;
+using vaddr = uint64;
+using paddr = uint64;
+using paddr32 = uint32;
+using gpaddr = uint64;
+using off = uint64;
+using procarg = uint32;
+const uint64 CHANNEL_MAX_MSG_BYTES = 65536;
+const uint64 CHANNEL_MAX_MSG_HANDLES = 64;
+const uint64 MAX_NAME_LEN = 32;
+const uint64 MAX_CPUS = 512;
+```
 
 You can reference this library with the `using` statement:
 
diff --git a/scripts/sdk/gn/templates/fidl_library.mako b/scripts/sdk/gn/templates/fidl_library.mako
index 38ac0b8..ce83cff 100644
--- a/scripts/sdk/gn/templates/fidl_library.mako
+++ b/scripts/sdk/gn/templates/fidl_library.mako
@@ -4,9 +4,7 @@
 
 fidl_library("${data.name}") {
   library_name = "${data.short_name}"
-  % if data.namespace:
   namespace = "${data.namespace}"
-  % endif
   public_deps = [
     % for dep in sorted(data.deps):
     "../${dep}",
diff --git a/sdk/core.api b/sdk/core.api
index 1ae64eb..34a36d0 100644
--- a/sdk/core.api
+++ b/sdk/core.api
@@ -102,7 +102,6 @@
 sdk://fidl/fuchsia.wlan.policy
 sdk://fidl/fuchsia.wlan.service
 sdk://fidl/fuchsia.wlan.stats
-sdk://fidl/zx
 sdk://pkg/async
 sdk://pkg/async-cpp
 sdk://pkg/async-default
diff --git a/sdk/fidl/zx/zx.api b/sdk/fidl/zx/zx.api
deleted file mode 100644
index 58a168d..0000000
--- a/sdk/fidl/zx/zx.api
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "fidl/zx/zx_common.fidl": "b3996a6005d3c88c5ba5b6fd286ed2fb"
-}
\ No newline at end of file
diff --git a/sdk/fuchsia_dart.api b/sdk/fuchsia_dart.api
index b6dc38a..94162a4 100644
--- a/sdk/fuchsia_dart.api
+++ b/sdk/fuchsia_dart.api
@@ -39,7 +39,6 @@
 sdk://fidl/fuchsia.ui.views
 sdk://fidl/fuchsia.url
 sdk://fidl/fuchsia.web
-sdk://fidl/zx
 sdk://tools/dart_kernel_compiler
 sdk://tools/fidlgen_dart
 sdk://tools/gen_snapshot
\ No newline at end of file
diff --git a/sdk/modular_testing.api b/sdk/modular_testing.api
index 512322f..115bcca 100644
--- a/sdk/modular_testing.api
+++ b/sdk/modular_testing.api
@@ -17,7 +17,6 @@
 sdk://fidl/fuchsia.ui.lifecycle
 sdk://fidl/fuchsia.ui.policy
 sdk://fidl/fuchsia.ui.views
-sdk://fidl/zx
 sdk://pkg/async
 sdk://pkg/async-cpp
 sdk://pkg/async-default
diff --git a/zircon/public/gn/fidl.gni b/zircon/public/gn/fidl.gni
index 8d54340..e51a843 100644
--- a/zircon/public/gn/fidl.gni
+++ b/zircon/public/gn/fidl.gni
@@ -239,13 +239,8 @@
   fidl_name = string_replace(fidl_target, "-", ".")
   fidl_path = string_replace(fidl_name, ".", "/")
 
-  fidl_library_deps = []
-
-  if (target_name != "zx") {
-    fidl_library_deps += [ get_label_info("$zx/vdso/zx", "label_no_toolchain") ]
-  }
-
   # Collect the dependencies on other FIDL libraries, and canonicalize them.
+  fidl_library_deps = []
   if (defined(invoker.public_deps)) {
     foreach(label, invoker.public_deps) {
       assert(get_label_info(label, "toolchain") == current_toolchain,
@@ -300,13 +295,6 @@
                                "visibility",
                                "testonly",
                              ])
-      if (target_name != "zx") {
-        if (!defined(public_deps)) {
-          public_deps = []
-        }
-        public_deps += [ "$zx/vdso/zx" ]
-      }
-
       if (defined(visibility)) {
         visibility += [ ":$files_rspfile_target" ]
       }
diff --git a/zircon/system/public/zircon/types.h b/zircon/system/public/zircon/types.h
index c98d9f5..10faebb 100644
--- a/zircon/system/public/zircon/types.h
+++ b/zircon/system/public/zircon/types.h
@@ -261,8 +261,6 @@
 } zx_iovec_t;
 
 // Maximum string length for kernel names (process name, thread name, etc)
-// TODO(fxbug.dev/7802): This must be manually kept in sync with zx_common.fidl.
-// Eventually (some of) this file will be generated from //zircon/vdso.
 #define ZX_MAX_NAME_LEN              ((size_t)32u)
 
 // Buffer size limits on the cprng syscalls
@@ -295,8 +293,6 @@
 // Channel options and limits.
 #define ZX_CHANNEL_READ_MAY_DISCARD         ((uint32_t)1u)
 
-// TODO(fxbug.dev/7802): This must be manually kept in sync with zx_common.fidl.
-// Eventually (some of) this file will be generated from //zircon/vdso.
 #define ZX_CHANNEL_MAX_MSG_BYTES            ((uint32_t)65536u)
 #define ZX_CHANNEL_MAX_MSG_HANDLES          ((uint32_t)64u)
 
@@ -457,8 +453,6 @@
 // CPU masks specifying sets of CPUs.
 //
 // We currently are limited to systems with 512 CPUs or less.
-// TODO(fxbug.dev/7802): This must be manually kept in sync with zx_common.fidl.
-// Eventually (some of) this file will be generated from //zircon/vdso.
 #define ZX_CPU_SET_MAX_CPUS 512
 #define ZX_CPU_SET_BITS_PER_WORD 64
 
diff --git a/zircon/system/ulib/c/BUILD.gn b/zircon/system/ulib/c/BUILD.gn
index caf1545..77655f9 100644
--- a/zircon/system/ulib/c/BUILD.gn
+++ b/zircon/system/ulib/c/BUILD.gn
@@ -158,8 +158,7 @@
             "../../vdso/vcpu.fidl",
             "../../vdso/vmar.fidl",
             "../../vdso/vmo.fidl",
-            "../../vdso/zx_common.fidl",
-            "../../vdso/zx_syscall.fidl",
+            "../../vdso/zx.fidl",
           ]
           if (!exclude_testonly_syscalls) {
             headers += [ "zircon/testonly-syscalls.h" ]
diff --git a/zircon/tools/fidl/BUILD.gn b/zircon/tools/fidl/BUILD.gn
index 6902635..51e1c99 100644
--- a/zircon/tools/fidl/BUILD.gn
+++ b/zircon/tools/fidl/BUILD.gn
@@ -28,6 +28,7 @@
       "lib/formatter.cc",
       "lib/json_generator.cc",
       "lib/lexer.cc",
+      "lib/library_zx.cc",
       "lib/linter.cc",
       "lib/linting_tree_callbacks.cc",
       "lib/names.cc",
@@ -191,6 +192,7 @@
       "lib/formatter.cc",
       "lib/json_generator.cc",
       "lib/lexer.cc",
+      "lib/library_zx.cc",
       "lib/linter.cc",
       "lib/names.cc",
       "lib/parser.cc",
diff --git a/zircon/tools/fidl/compiler/main.cc b/zircon/tools/fidl/compiler/main.cc
index a9897b87..1181a66 100644
--- a/zircon/tools/fidl/compiler/main.cc
+++ b/zircon/tools/fidl/compiler/main.cc
@@ -22,6 +22,7 @@
 #include <fidl/json_generator.h>
 #include <fidl/json_schema.h>
 #include <fidl/lexer.h>
+#include <fidl/library_zx.h>
 #include <fidl/names.h>
 #include <fidl/parser.h>
 #include <fidl/source_manager.h>
@@ -342,6 +343,10 @@
   // Prepare source files.
   std::vector<fidl::SourceManager> source_managers;
   source_managers.push_back(fidl::SourceManager());
+  std::string library_zx_data = fidl::LibraryZX::kData;
+  source_managers.back().AddSourceFile(
+      std::make_unique<fidl::SourceFile>(fidl::LibraryZX::kFilename, std::move(library_zx_data)));
+  source_managers.push_back(fidl::SourceManager());
   while (args->Remaining()) {
     std::string arg = args->Claim();
     if (arg == "--files") {
diff --git a/zircon/tools/fidl/include/fidl/library_zx.h b/zircon/tools/fidl/include/fidl/library_zx.h
new file mode 100644
index 0000000..f3680cd
--- /dev/null
+++ b/zircon/tools/fidl/include/fidl/library_zx.h
@@ -0,0 +1,19 @@
+// Copyright 2018 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ZIRCON_TOOLS_FIDL_INCLUDE_FIDL_LIBRARY_ZX_H_
+#define ZIRCON_TOOLS_FIDL_INCLUDE_FIDL_LIBRARY_ZX_H_
+
+#include <string>
+
+namespace fidl {
+namespace LibraryZX {
+
+extern const std::string kFilename;
+extern const std::string kData;
+
+}  // namespace LibraryZX
+}  // namespace fidl
+
+#endif  // ZIRCON_TOOLS_FIDL_INCLUDE_FIDL_LIBRARY_ZX_H_
diff --git a/zircon/tools/fidl/lib/library_zx.cc b/zircon/tools/fidl/lib/library_zx.cc
new file mode 100644
index 0000000..ad203fb
--- /dev/null
+++ b/zircon/tools/fidl/lib/library_zx.cc
@@ -0,0 +1,52 @@
+// Copyright 2018 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "fidl/library_zx.h"
+
+#include <sstream>
+// TODO(FIDL-478): make fidlc not depend on zircon
+#include <zircon/types.h>
+
+namespace fidl {
+namespace LibraryZX {
+
+const std::string kFilename = "zx.fidl";
+
+namespace {
+std::string GenerateData() {
+  std::ostringstream out;
+
+  // Please be sure to update the documentation about this library at the
+  // location //docs/development/languages/fidl/reference/library-zx.md
+
+  out <<
+      R"FIDL(
+[Internal]
+library zx;
+
+using status = int32;
+using time = int64;
+using duration = int64;
+using koid = uint64;
+using vaddr = uint64;
+using paddr = uint64;
+using paddr32 = uint32;
+using gpaddr = uint64;
+using off = uint64;
+using procarg = uint32;
+)FIDL";
+
+  out << "const uint64 CHANNEL_MAX_MSG_BYTES = " << ZX_CHANNEL_MAX_MSG_BYTES << ";\n";
+  out << "const uint64 CHANNEL_MAX_MSG_HANDLES = " << ZX_CHANNEL_MAX_MSG_HANDLES << ";\n";
+  out << "const uint64 MAX_NAME_LEN = " << ZX_MAX_NAME_LEN << ";\n";
+  out << "const uint64 MAX_CPUS = " << ZX_CPU_SET_MAX_CPUS << ";\n";
+
+  return out.str();
+}
+}  // namespace
+
+const std::string kData = GenerateData();
+
+}  // namespace LibraryZX
+}  // namespace fidl
diff --git a/zircon/tools/kazoo/BUILD.gn b/zircon/tools/kazoo/BUILD.gn
index 43fcb63..297fba6 100644
--- a/zircon/tools/kazoo/BUILD.gn
+++ b/zircon/tools/kazoo/BUILD.gn
@@ -105,8 +105,6 @@
       rebase_path("$target_gen_dir") + "/{{source_name_part}}.json",
       "--files",
       "{{source}}",
-      rebase_path("$zx/vdso/zx_common.fidl"),
-      rebase_path("$zx/vdso/zx_syscall.fidl"),
     ]
 
     outputs = [ "$target_gen_dir/{{source_name_part}}.json" ]
@@ -127,40 +125,19 @@
       "test_rights_specs.test.fidl",
       "test_rust_selection.test.fidl",
       "test_selection.test.fidl",
-      "test_various_categories.test.fidl",
-      "test_vdsowrappers.test.fidl",
-    ]
-  }
-
-  host_tool_action_foreach("test_files_fidl_to_json_zxio") {
-    tool = "$zx/tools/fidl:fidlc"
-
-    args = [
-      "--json",
-      rebase_path("$target_gen_dir") + "/{{source_name_part}}.json",
-      "--files",
-      "{{source}}",
-
-      # No zx fidls here compared with above.
-    ]
-
-    outputs = [ "$target_gen_dir/{{source_name_part}}.json" ]
-
-    sources = [
       "test_ulib_bits.test.fidl",
       "test_ulib_enums.test.fidl",
       "test_ulib_tables.test.fidl",
       "test_ulib_type_aliases.test.fidl",
+      "test_various_categories.test.fidl",
+      "test_vdsowrappers.test.fidl",
     ]
   }
 
   action_foreach("generate_test_files") {
     script = "fidl_to_h.py"
 
-    deps = [
-      ":test_files_fidl_to_json",
-      ":test_files_fidl_to_json_zxio",
-    ]
+    deps = [ ":test_files_fidl_to_json" ]
 
     args = [
       "{{source}}",
@@ -170,7 +147,6 @@
 
     outputs = [ "$target_gen_dir/test_ir_{{source_name_part}}.h" ]
 
-    sources = get_target_outputs(":test_files_fidl_to_json") +
-              get_target_outputs(":test_files_fidl_to_json_zxio")
+    sources = get_target_outputs(":test_files_fidl_to_json")
   }
 }
diff --git a/zircon/tools/kazoo/README.md b/zircon/tools/kazoo/README.md
index 8974000..6acc04a 100644
--- a/zircon/tools/kazoo/README.md
+++ b/zircon/tools/kazoo/README.md
@@ -18,7 +18,11 @@
 - The attribute `[Transport="Syscall"]` must be applied to all protocols that are part of the
   syscall interface.
 
-- All .fidl files must be part of `library zx` (for syscalls) or `library zxio`.
+- All .fidl files must be part of `library zz` or `library zx`. "zx" is currently used by
+  FIDL-proper to magically define the existing defintions of some basic types, e.g. `zx.status` that
+  are used by other FIDL files. Because of this "zz" is used for the new syscall definitions. In the
+  future, Kazoo will accept only `library zx`, and the automatically generated "zx" and the syscalls
+  in "zz" will be merged into "zx" that will all appear in source `.fidl` files.
 
 - Type aliases used to impart meaning. `alias_workarounds.fidl` includes various aliases that expand
   to something similar to the correct type, however Kazoo treats these specially. For example,
diff --git a/zircon/tools/kazoo/alias_workaround.cc b/zircon/tools/kazoo/alias_workaround.cc
index cc2c2d5..13d404b 100644
--- a/zircon/tools/kazoo/alias_workaround.cc
+++ b/zircon/tools/kazoo/alias_workaround.cc
@@ -32,13 +32,13 @@
     return true;
   }
   if (name == "mutable_vector_HandleDisposition_u32size") {
-    *type = Type(TypeVector(Type(library.TypeFromIdentifier("zx/HandleDisposition")),
+    *type = Type(TypeVector(Type(library.TypeFromIdentifier("zz/HandleDisposition")),
                             UseUint32ForVectorSizeTag{}),
                  Constness::kMutable);
     return true;
   }
   if (name == "mutable_vector_WaitItem") {
-    *type = Type(TypeVector(Type(library.TypeFromIdentifier("zx/WaitItem"))), Constness::kMutable);
+    *type = Type(TypeVector(Type(library.TypeFromIdentifier("zz/WaitItem"))), Constness::kMutable);
     return true;
   }
   if (name == "mutable_vector_handle_u32size") {
@@ -55,12 +55,12 @@
     return true;
   }
   if (name == "optional_PciBar") {
-    *type = Type(library.TypeFromIdentifier("zx/PciBar").type_data(), Constness::kUnspecified,
+    *type = Type(library.TypeFromIdentifier("zz/PciBar").type_data(), Constness::kUnspecified,
                  Optionality::kOutputOptional);
     return true;
   }
   if (name == "optional_PortPacket") {
-    *type = Type(library.TypeFromIdentifier("zx/PortPacket").type_data(), Constness::kUnspecified,
+    *type = Type(library.TypeFromIdentifier("zz/PortPacket").type_data(), Constness::kUnspecified,
                  Optionality::kOutputOptional);
     return true;
   }
@@ -91,7 +91,7 @@
   }
   if (name == "vector_HandleInfo_u32size") {
     *type = Type(
-        TypeVector(Type(library.TypeFromIdentifier("zx/HandleInfo")), UseUint32ForVectorSizeTag{}),
+        TypeVector(Type(library.TypeFromIdentifier("zz/HandleInfo")), UseUint32ForVectorSizeTag{}),
         Constness::kConst);
     return true;
   }
diff --git a/zircon/tools/kazoo/alias_workaround_test.cc b/zircon/tools/kazoo/alias_workaround_test.cc
index ea4f7afc..5fe2e85 100644
--- a/zircon/tools/kazoo/alias_workaround_test.cc
+++ b/zircon/tools/kazoo/alias_workaround_test.cc
@@ -13,7 +13,7 @@
   SyscallLibrary library;
   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_aliases, &library));
 
-  EXPECT_EQ(library.name(), "zx");
+  EXPECT_EQ(library.name(), "zz");
   ASSERT_EQ(library.syscalls().size(), 1u);
 
   const auto& sc = library.syscalls()[0];
diff --git a/zircon/tools/kazoo/syscall_library.cc b/zircon/tools/kazoo/syscall_library.cc
index 528bff1..ee4e0bf 100644
--- a/zircon/tools/kazoo/syscall_library.cc
+++ b/zircon/tools/kazoo/syscall_library.cc
@@ -135,7 +135,7 @@
     // the front end (fidlc) and 2) we move various parts of zx.fidl from being built-in to fidlc to
     // actual source level fidl and shared between the syscall definitions and normal FIDL.
     const std::string full_name((*type_alias)["name"].GetString());
-    if (full_name.substr(0, 3) == "zx/") {
+    if (full_name.substr(0, 3) == "zx/" || full_name.substr(0, 3) == "zz/") {
       const std::string name = full_name.substr(3);
       if (name == "duration" || name == "Futex" || name == "koid" || name == "paddr" ||
           name == "rights" || name == "signals" || name == "status" || name == "time" ||
@@ -441,8 +441,9 @@
   }
 
   library->name_ = document["name"].GetString();
-  if (library->name_ != "zx" && library->name_ != "zxio") {
-    fprintf(stderr, "Library name %s wasn't zx or zxio as expected.\n", library->name_.c_str());
+  if (library->name_ != "zz" && library->name_ != "zx" && library->name_ != "zxio") {
+    fprintf(stderr, "Library name %s wasn't zz or zx or zxio as expected.\n",
+            library->name_.c_str());
     return false;
   }
 
diff --git a/zircon/tools/kazoo/syscall_library_test.cc b/zircon/tools/kazoo/syscall_library_test.cc
index 27cfc1d6..59f8d53 100644
--- a/zircon/tools/kazoo/syscall_library_test.cc
+++ b/zircon/tools/kazoo/syscall_library_test.cc
@@ -15,18 +15,18 @@
 TEST(SyscallLibrary, LoaderSimpleEmpty) {
   SyscallLibrary library;
   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_no_methods, &library));
-  EXPECT_EQ(library.name(), "zx");
+  EXPECT_EQ(library.name(), "zz");
   EXPECT_TRUE(library.syscalls().empty());
 }
 
 TEST(SyscallLibrary, LoaderSingleMethod) {
   SyscallLibrary library;
   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_one_protocol_one_method, &library));
-  EXPECT_EQ(library.name(), "zx");
+  EXPECT_EQ(library.name(), "zz");
   ASSERT_EQ(library.syscalls().size(), 1u);
 
   const auto& sc = library.syscalls()[0];
-  EXPECT_EQ(sc->id(), "zx/Single");
+  EXPECT_EQ(sc->id(), "zz/Single");
   EXPECT_EQ(sc->original_name(), "DoThing");
   EXPECT_EQ(sc->category(), "single");
   EXPECT_EQ(sc->name(), "single_do_thing");
@@ -47,7 +47,7 @@
 TEST(SyscallLibrary, LoaderVectors) {
   SyscallLibrary library;
   ASSERT_TRUE(SyscallLibraryLoader::FromJson(k_test_pointers_and_vectors, &library));
-  EXPECT_EQ(library.name(), "zx");
+  EXPECT_EQ(library.name(), "zz");
   ASSERT_EQ(library.syscalls().size(), 3u);
 
   const auto& sc0 = library.syscalls()[0];
@@ -73,7 +73,7 @@
   ASSERT_TRUE(
       SyscallLibraryLoader::FromJson(k_test_kernelwrappers, &library1));
   library1.FilterSyscalls(std::set<std::string>());
-  EXPECT_EQ(library1.name(), "zx");
+  EXPECT_EQ(library1.name(), "zz");
   ASSERT_EQ(library1.syscalls().size(), 8u);
   bool debug_found = false;
   for (const auto& sc : library1.syscalls()) {
@@ -89,7 +89,7 @@
       SyscallLibraryLoader::FromJson(k_test_kernelwrappers, &library2));
   std::set<std::string> exclude1{"testonly"};
   library2.FilterSyscalls(exclude1);
-  EXPECT_EQ(library2.name(), "zx");
+  EXPECT_EQ(library2.name(), "zz");
   ASSERT_EQ(library2.syscalls().size(), 7u);
   bool testonly_found = false;
   for (const auto& sc : library2.syscalls()) {
@@ -106,7 +106,7 @@
       SyscallLibraryLoader::FromJson(k_test_kernelwrappers, &library3));
   std::set<std::string> exclude2{"testonly", "noreturn"};
   library3.FilterSyscalls(exclude2);
-  EXPECT_EQ(library3.name(), "zx");
+  EXPECT_EQ(library3.name(), "zz");
   ASSERT_EQ(library3.syscalls().size(), 6u);
   bool stripped_found = false;
   for (const auto& sc : library3.syscalls()) {
diff --git a/zircon/tools/kazoo/test_aliases.test.fidl b/zircon/tools/kazoo/test_aliases.test.fidl
index add3d450..3109bad8 100644
--- a/zircon/tools/kazoo/test_aliases.test.fidl
+++ b/zircon/tools/kazoo/test_aliases.test.fidl
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 // Mirrors alias_workarounds[.test].fidl. We don't want to pull real syscalls
 // into the test data, so these are copied here. The structs and basic types
@@ -14,6 +16,11 @@
 struct PciBar {};
 struct PortPacket {};
 struct WaitItem {};
+using koid = uint64;
+using paddr = uint64;
+using signals = uint32;
+using time = int64;
+using usize = uint64;
 
 using charptr = uint64;
 using const_futexptr = int32;
@@ -62,7 +69,7 @@
              vector_void o,
              vector_void_u32size p,
              voidptr q) ->
-        (status status,
+        (zx.status status,
          optional_PciBar r,
          optional_PortPacket s,
          optional_koid t,
diff --git a/zircon/tools/kazoo/test_go_nonblocking.test.fidl b/zircon/tools/kazoo/test_go_nonblocking.test.fidl
index 5f755cf..7b539f6 100644
--- a/zircon/tools/kazoo/test_go_nonblocking.test.fidl
+++ b/zircon/tools/kazoo/test_go_nonblocking.test.fidl
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall", NoProtocolPrefix]
 protocol SpecialNonBlocking {
@@ -10,8 +12,8 @@
     // blocking.
 
     [blocking]
-    FutexWait(uint32 a) -> (status status);
+    FutexWait(uint32 a) -> (zx.status status);
 
     [blocking]
-    Nanosleep(uint32 a) -> (status status);
+    Nanosleep(uint32 a) -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_go_reserved_words.test.fidl b/zircon/tools/kazoo/test_go_reserved_words.test.fidl
index dcfe36a..b8eacf9 100644
--- a/zircon/tools/kazoo/test_go_reserved_words.test.fidl
+++ b/zircon/tools/kazoo/test_go_reserved_words.test.fidl
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 struct PciBar {
     uint32 unused;
@@ -20,7 +22,7 @@
 protocol ReservedWords {
     // These argument names can't used as identifiers in Go, make sure they're
     // remapped to something else.
-    MyFunc(uint32 type, uint32 func, uint32 g) -> (status status);
+    MyFunc(uint32 type, uint32 func, uint32 g) -> (zx.status status);
 
-    PciTypes(PciBar bar, PciInitArg initarg, PcieDeviceInfo device_info) -> (status status);
+    PciTypes(PciBar bar, PciInitArg initarg, PcieDeviceInfo device_info) -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_kernel_cases.test.fidl b/zircon/tools/kazoo/test_kernel_cases.test.fidl
index dc40e93..ad58386 100644
--- a/zircon/tools/kazoo/test_kernel_cases.test.fidl
+++ b/zircon/tools/kazoo/test_kernel_cases.test.fidl
@@ -2,13 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 // This file is copies of some syscalls that were interesting for the kernel
 // header generator.
 
 using mutable_vector_void = vector<handle>;
 using optional_uint32 = uint32;
+using paddr = uint64;
 using vector_handle_u32size = vector<byte>;
 using vector_paddr = vector<paddr>;
 using vector_void_u32size = vector<byte>;
@@ -22,7 +25,7 @@
            handle<vmo> vmo,
            uint64 offset,
            uint64 size) ->
-        (status status, vector_paddr addrs, handle<pmt> pmt);
+        (zx.status status, vector_paddr addrs, handle<pmt> pmt);
 
     // Still have NORETURN markup for kernel (but only this one).
     [noreturn]
@@ -34,18 +37,18 @@
             uint32 action,
             uint32 options,
             mutable_vector_void ptr) ->
-        (status status);
+        (zx.status status);
 
     // vector of handles isn't turned into user_out_handle*, rather stays as
     // user_out_ptr<zx_handle_t>, because it's not just one.
     Read(handle<channel> handle,
          uint32 options) ->
-        (status status,
+        (zx.status status,
          vector_void_u32size bytes,
          vector_handle_u32size handles,
          optional_uint32 actual_bytes,
          optional_uint32 actual_handles);
 
     [testonly]
-    compiled_out_in_non_test(int32 a, int32 b) -> (status status);
+    compiled_out_in_non_test(int32 a, int32 b) -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_kernelwrappers.test.fidl b/zircon/tools/kazoo/test_kernelwrappers.test.fidl
index a01458c..0e21029 100644
--- a/zircon/tools/kazoo/test_kernelwrappers.test.fidl
+++ b/zircon/tools/kazoo/test_kernelwrappers.test.fidl
@@ -2,8 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
 
+using zx;
+
+using time = int64;
+using ticks = int64;
 using mutable_vector_void = vector<byte>;
 
 [Transport="Syscall"]
@@ -11,7 +15,7 @@
     // Simple out ptr.
     SimpleCase() -> (time time);
 
-    MultipleInHandles(vector<handle> handles) -> (status status);
+    MultipleInHandles(vector<handle> handles) -> (zx.status status);
 
     // vdsocall excluded.
     [vdsocall]
@@ -27,15 +31,15 @@
             uint64 offset,
             uint64 size,
             mutable_vector_void buffer) ->
-        (status status);
+        (zx.status status);
 
     // Output handle copied properly.
-    OutputHandle() -> (status status, handle<event> event);
+    OutputHandle() -> (zx.status status, handle<event> event);
 
     // When two output handles, status and copy are verified before any bytes
     // returned.
-    TwoOutputHandle() -> (status status, handle<event> out0, handle<event> out1);
+    TwoOutputHandle() -> (zx.status status, handle<event> out0, handle<event> out1);
 
     [testonly]
-    CompiledOut() -> (status status);
+    CompiledOut() -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_no_methods.test.fidl b/zircon/tools/kazoo/test_no_methods.test.fidl
index c2b896c..d592030 100644
--- a/zircon/tools/kazoo/test_no_methods.test.fidl
+++ b/zircon/tools/kazoo/test_no_methods.test.fidl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
 
 [Transport="Syscall"]
 protocol Empty {
diff --git a/zircon/tools/kazoo/test_one_protocol_one_method.test.fidl b/zircon/tools/kazoo/test_one_protocol_one_method.test.fidl
index 3bc793a..cc63d98 100644
--- a/zircon/tools/kazoo/test_one_protocol_one_method.test.fidl
+++ b/zircon/tools/kazoo/test_one_protocol_one_method.test.fidl
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall"]
 protocol Single {
     /// This does a single thing.
-    DoThing(int32 an_input) -> (status status);
+    DoThing(int32 an_input) -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_one_protocol_two_methods.test.fidl b/zircon/tools/kazoo/test_one_protocol_two_methods.test.fidl
index ffad541..bdacf70 100644
--- a/zircon/tools/kazoo/test_one_protocol_two_methods.test.fidl
+++ b/zircon/tools/kazoo/test_one_protocol_two_methods.test.fidl
@@ -2,13 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall"]
 protocol Couple {
     /// This does a single thing.
-    DoThing(int32 an_input) -> (status status);
+    DoThing(int32 an_input) -> (zx.status status);
 
     /// Does great stuff.
-    GetStuff(int32 an_input, int32 input2) -> (status status);
+    GetStuff(int32 an_input, int32 input2) -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_one_protocol_two_methods_with_internal.test.fidl b/zircon/tools/kazoo/test_one_protocol_two_methods_with_internal.test.fidl
index 8b0195a..80ea55d 100644
--- a/zircon/tools/kazoo/test_one_protocol_two_methods_with_internal.test.fidl
+++ b/zircon/tools/kazoo/test_one_protocol_two_methods_with_internal.test.fidl
@@ -2,14 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall"]
 protocol Couple {
     /// This does a single thing.
     [internal]
-    DoThing(int32 an_input) -> (status status);
+    DoThing(int32 an_input) -> (zx.status status);
 
     /// Does great stuff.
-    GetStuff(int32 an_input, int32 input2) -> (status status);
+    GetStuff(int32 an_input, int32 input2) -> (zx.status status);
 };
diff --git a/zircon/tools/kazoo/test_out_voidptr.test.fidl b/zircon/tools/kazoo/test_out_voidptr.test.fidl
index 52766c8..43b5b80 100644
--- a/zircon/tools/kazoo/test_out_voidptr.test.fidl
+++ b/zircon/tools/kazoo/test_out_voidptr.test.fidl
@@ -2,11 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 using voidptr = uint64;
 
 [Transport = "Syscall"]
 protocol Ovp {
-    ovp_void_pointer_out(handle handle) -> (status status, voidptr details);
+    ovp_void_pointer_out(handle handle) -> (zx.status status, voidptr details);
 };
diff --git a/zircon/tools/kazoo/test_ownership_annotations.test.fidl b/zircon/tools/kazoo/test_ownership_annotations.test.fidl
index 865e7c2..8028a88 100644
--- a/zircon/tools/kazoo/test_ownership_annotations.test.fidl
+++ b/zircon/tools/kazoo/test_ownership_annotations.test.fidl
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall"]
 protocol HandleOwnership {
@@ -10,8 +12,8 @@
     fun1([Release] vector<handle> in);
     fun2([Use] vector<handle> in) -> ([Use] vector<handle> out);
     fun3(vector<handle> in) -> ([Acquire] vector<handle> out);
-    fun4(handle in) -> (status status, handle out);
-    fun5([Release] handle in) -> (status status, [Use] handle out);
+    fun4(handle in) -> (zx.status status, handle out);
+    fun5([Release] handle in) -> (zx.status status, [Use] handle out);
     [HandleUnchecked]
     fun6(vector<handle> in) -> (vector<handle> out);
 };
diff --git a/zircon/tools/kazoo/test_pointers_and_vectors.test.fidl b/zircon/tools/kazoo/test_pointers_and_vectors.test.fidl
index 711ab4a..c80e060 100644
--- a/zircon/tools/kazoo/test_pointers_and_vectors.test.fidl
+++ b/zircon/tools/kazoo/test_pointers_and_vectors.test.fidl
@@ -2,11 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall"]
 protocol TypeMappings {
-    Func0(vector<byte> bytes, string str) -> (status status);
-    Func1(vector<handle> ins) -> (status status);
+    Func0(vector<byte> bytes, string str) -> (zx.status status);
+    Func1(vector<handle> ins) -> (zx.status status);
     Func2();
 };
diff --git a/zircon/tools/kazoo/test_rights_specs.test.fidl b/zircon/tools/kazoo/test_rights_specs.test.fidl
index cd1e49e..50fb9e5 100644
--- a/zircon/tools/kazoo/test_rights_specs.test.fidl
+++ b/zircon/tools/kazoo/test_rights_specs.test.fidl
@@ -2,14 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 [Transport="Syscall"]
 protocol Rights {
     /// Create an exception channel for a given job, process, or thread.
     /// Rights: handle must have ZX_RIGHT_INSPECT and have ZX_RIGHT_DUPLICATE and have ZX_RIGHT_TRANSFER and have ZX_RIGHT_MANAGE_THREAD.
     /// Rights: If handle is of type ZX_OBJ_TYPE_JOB or ZX_OBJ_TYPE_PROCESS, it must have ZX_RIGHT_ENUMERATE.
-    DoThing(handle handle, uint32 options) -> (status status, handle<channel> out);
+    DoThing(handle handle, uint32 options) -> (zx.status status, handle<channel> out);
 
     /// Rights: handle must have ZX_RIGHT_DESTROY.
     NoShortDesc(handle handle) -> ();
diff --git a/zircon/tools/kazoo/test_rust_selection.test.fidl b/zircon/tools/kazoo/test_rust_selection.test.fidl
index 9399dcb..364858d 100644
--- a/zircon/tools/kazoo/test_rust_selection.test.fidl
+++ b/zircon/tools/kazoo/test_rust_selection.test.fidl
@@ -2,17 +2,23 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 using mutable_vector_void = vector<byte>;
+using ticks = int64;
+using time = int64;
+using uintptr = uint64;
+using usize = uint64;
 using voidptr = uint64;
 
-[Transport = "Syscall"]
+[Transport="Syscall"]
 protocol Rust {
     // Simple out ptr.
     SimpleCase() -> (time time);
 
-    MultipleInHandles(vector<handle> handles) -> (status status);
+    MultipleInHandles(vector<handle> handles) -> (zx.status status);
 
     // noreturn handled properly.
     [noreturn]
@@ -23,14 +29,14 @@
 
     // |buffer| treated mutable.
     InoutArgs(handle<vmo> handle,
-              uint32 op,
-              uint64 offset,
-              uint64 size,
-              mutable_vector_void buffer)
-        -> (status status);
+            uint32 op,
+            uint64 offset,
+            uint64 size,
+            mutable_vector_void buffer) ->
+        (zx.status status);
 
     // |input| treated const
-    ConstInput(vector<byte> input) -> (status status);
+    ConstInput(vector<byte> input) -> (zx.status status);
 
     VariousBasicTypeNames(bool a,
                           byte b,
diff --git a/zircon/tools/kazoo/test_selection.test.fidl b/zircon/tools/kazoo/test_selection.test.fidl
index 8697b6b..177a30a 100644
--- a/zircon/tools/kazoo/test_selection.test.fidl
+++ b/zircon/tools/kazoo/test_selection.test.fidl
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 // This file is copies of some syscalls that cover more unusual features (see
 // annotations at the method).
@@ -12,6 +14,9 @@
 using mutable_uint32 = uint32;
 using mutable_vector_void = vector<byte>;
 using optional_signals = signals;
+using signals = uint32;
+using time = int64;
+using usize = uint64;
 using vector_void_u32size = vector<byte>;
 enum Clock : uint32 {
     MONOTONIC = 0;
@@ -29,16 +34,16 @@
                  const_futexptr requeue_ptr,
                  uint32 requeue_count,
                  handle new_requeue_owner) ->
-        (status status);
+        (zx.status status);
 
     // Optional output (signals).
     ObjectWaitOne(handle handle, signals signals, time deadline) ->
-        (status status, optional_signals observed);
+        (zx.status status, optional_signals observed);
 
     // Argument reordering.
     [ArgReorder="handle,data,offset,data_size,actual"]
     KtraceRead(handle<resource> handle, mutable_vector_void data, uint32 offset) ->
-        (status status, usize actual);
+        (zx.status status, usize actual);
 
     // Mutable uint32 in the middle of input parameters (rather than as an
     // output).
@@ -50,12 +55,12 @@
                 mutable_uint32 val,
                 usize width,
                 bool write) ->
-        (status status);
+        (zx.status status);
 
     // uint32_t for size of a "vector".
     JobSetPolicy(handle<job> handle, uint32 options, uint32 topic, vector_void_u32size policy) ->
-        (status status);
+        (zx.status status);
 
     // Handling of enums.
-    ClockGet(Clock clock_id) -> (status status, time out);
+    ClockGet(Clock clock_id) -> (zx.status status, time out);
 };
diff --git a/zircon/tools/kazoo/test_various_categories.test.fidl b/zircon/tools/kazoo/test_various_categories.test.fidl
index 6043f10..60296b0 100644
--- a/zircon/tools/kazoo/test_various_categories.test.fidl
+++ b/zircon/tools/kazoo/test_various_categories.test.fidl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
 
 [Transport="Syscall"]
 protocol Categories {
diff --git a/zircon/tools/kazoo/test_vdsowrappers.test.fidl b/zircon/tools/kazoo/test_vdsowrappers.test.fidl
index 35d2d201..496ca825 100644
--- a/zircon/tools/kazoo/test_vdsowrappers.test.fidl
+++ b/zircon/tools/kazoo/test_vdsowrappers.test.fidl
@@ -2,7 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+library zz;
+
+using zx;
 
 using vector_void = vector<byte>;
 
@@ -12,8 +14,8 @@
 protocol Syscall {
     // Typical case.
     [blocking]
-    BlockingWrite(handle<vmo> handle, vector_void buffer, uint64 offset) -> (status status);
+    BlockingWrite(handle<vmo> handle, vector_void buffer, uint64 offset) -> (zx.status status);
 
     // Special case for abigen's test wrapper.
-    TestWrapper(int32 a, int32 b, int32 c) -> (status status);
+    TestWrapper(int32 a, int32 b, int32 c) -> (zx.status status);
 };
diff --git a/zircon/vdso/BUILD.gn b/zircon/vdso/BUILD.gn
index 652ba00..5cc6006 100644
--- a/zircon/vdso/BUILD.gn
+++ b/zircon/vdso/BUILD.gn
@@ -2,16 +2,16 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("$zx/public/gn/fidl.gni")
 import("$zx/public/gn/toolchain/c_utils.gni")
-import("$zx_build/public/gn/fidl.gni")
 import("vdso.gni")
 
 group("vdso") {
-  public_deps = [ ":zx" ]
+  public_deps = [ ":zz" ]
 }
 
 group("json") {
-  public_deps = [ ":zx.json" ]
+  public_deps = [ ":zz.json" ]
 }
 
 # The system calls are defined as if they were a FIDL library, because
@@ -19,8 +19,8 @@
 # like a normal fidl_library, however.  Only the "json" subtarget is
 # available.
 #
-# TODO(fxbug.dev/7802): Merge with vdso/zx:zx.
-fidl_library("zx") {
+# TODO(39732): Rename to "zx".
+fidl_library("zz") {
   visibility = [ ":*" ]
   targets = [ "fidl_json_rspfile" ]
   sources = [
@@ -68,8 +68,7 @@
     "vcpu.fidl",
     "vmar.fidl",
     "vmo.fidl",
-    "zx_common.fidl",
-    "zx_syscall.fidl",
+    "zx.fidl",
   ]
 }
 
diff --git a/zircon/vdso/alias_workarounds.fidl b/zircon/vdso/alias_workarounds.fidl
index a4c821c0..bdcfc5f 100644
--- a/zircon/vdso/alias_workarounds.fidl
+++ b/zircon/vdso/alias_workarounds.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // These are all aliases that will be subsumed by the future implementation of
 // templating, constraints, etc. in fidlc.
diff --git a/zircon/vdso/bti.fidl b/zircon/vdso/bti.fidl
index f087e2a..8ec1c08 100644
--- a/zircon/vdso/bti.fidl
+++ b/zircon/vdso/bti.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol bti {
diff --git a/zircon/vdso/cache.fidl b/zircon/vdso/cache.fidl
index 71a685e..f1f8567 100644
--- a/zircon/vdso/cache.fidl
+++ b/zircon/vdso/cache.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol cache {
diff --git a/zircon/vdso/channel.fidl b/zircon/vdso/channel.fidl
index 3432636..25c8ca3 100644
--- a/zircon/vdso/channel.fidl
+++ b/zircon/vdso/channel.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 using ObjType = uint32;
 
@@ -44,7 +45,7 @@
     /// Read a message from a channel.
     /// Rights: handle must be of type ZX_OBJ_TYPE_CHANNEL and have ZX_RIGHT_READ.
     [ArgReorder = "handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles",
-    HandleUnchecked]
+     HandleUnchecked]
     channel_read(handle<channel> handle,
                  uint32 options)
         -> (status status,
diff --git a/zircon/vdso/clock.fidl b/zircon/vdso/clock.fidl
index 0094798..5aecb3b 100644
--- a/zircon/vdso/clock.fidl
+++ b/zircon/vdso/clock.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 enum Clock : uint32 {
     MONOTONIC = 0;
diff --git a/zircon/vdso/cprng.fidl b/zircon/vdso/cprng.fidl
index a7fb89c..7431bde 100644
--- a/zircon/vdso/cprng.fidl
+++ b/zircon/vdso/cprng.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol cprng {
diff --git a/zircon/vdso/debug.fidl b/zircon/vdso/debug.fidl
index 000c461..e629799 100644
--- a/zircon/vdso/debug.fidl
+++ b/zircon/vdso/debug.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol debug {
diff --git a/zircon/vdso/debuglog.fidl b/zircon/vdso/debuglog.fidl
index f59efc8..23e1faf 100644
--- a/zircon/vdso/debuglog.fidl
+++ b/zircon/vdso/debuglog.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol debuglog {
diff --git a/zircon/vdso/event.fidl b/zircon/vdso/event.fidl
index b123aa8..4f12cd8 100644
--- a/zircon/vdso/event.fidl
+++ b/zircon/vdso/event.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol event {
diff --git a/zircon/vdso/eventpair.fidl b/zircon/vdso/eventpair.fidl
index 4861f5e..a7a3e38 100644
--- a/zircon/vdso/eventpair.fidl
+++ b/zircon/vdso/eventpair.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol eventpair {
diff --git a/zircon/vdso/exception.fidl b/zircon/vdso/exception.fidl
index fb36bbb..db3e45a 100644
--- a/zircon/vdso/exception.fidl
+++ b/zircon/vdso/exception.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol exception {
diff --git a/zircon/vdso/fifo.fidl b/zircon/vdso/fifo.fidl
index d2969b7..0e9ee21 100644
--- a/zircon/vdso/fifo.fidl
+++ b/zircon/vdso/fifo.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol fifo {
diff --git a/zircon/vdso/framebuffer.fidl b/zircon/vdso/framebuffer.fidl
index 5f3ff5e..2ab69c7 100644
--- a/zircon/vdso/framebuffer.fidl
+++ b/zircon/vdso/framebuffer.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol framebuffer {
diff --git a/zircon/vdso/futex.fidl b/zircon/vdso/futex.fidl
index e60d4bf..69ab6dc 100644
--- a/zircon/vdso/futex.fidl
+++ b/zircon/vdso/futex.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // TODO(scottmg): This is approximately right, but will need to match the
 // current definition of zx_futex_t (atomic_int in some #if branches).
diff --git a/zircon/vdso/guest.fidl b/zircon/vdso/guest.fidl
index 0cbb1b3..a75093e 100644
--- a/zircon/vdso/guest.fidl
+++ b/zircon/vdso/guest.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol guest {
diff --git a/zircon/vdso/handle.fidl b/zircon/vdso/handle.fidl
index abea3a7..b29842b 100644
--- a/zircon/vdso/handle.fidl
+++ b/zircon/vdso/handle.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol handle {
diff --git a/zircon/vdso/interrupt.fidl b/zircon/vdso/interrupt.fidl
index 8c0d18f..506df65 100644
--- a/zircon/vdso/interrupt.fidl
+++ b/zircon/vdso/interrupt.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol interrupt {
diff --git a/zircon/vdso/iommu.fidl b/zircon/vdso/iommu.fidl
index a155de2..84ac2a9 100644
--- a/zircon/vdso/iommu.fidl
+++ b/zircon/vdso/iommu.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol iommu {
diff --git a/zircon/vdso/ioports.fidl b/zircon/vdso/ioports.fidl
index 71782a6..72353d3 100644
--- a/zircon/vdso/ioports.fidl
+++ b/zircon/vdso/ioports.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol ioports {
diff --git a/zircon/vdso/job.fidl b/zircon/vdso/job.fidl
index 969b27e..edbdd2c 100644
--- a/zircon/vdso/job.fidl
+++ b/zircon/vdso/job.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol job {
diff --git a/zircon/vdso/ktrace.fidl b/zircon/vdso/ktrace.fidl
index 68c1710..d3234e65 100644
--- a/zircon/vdso/ktrace.fidl
+++ b/zircon/vdso/ktrace.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol ktrace {
diff --git a/zircon/vdso/misc.fidl b/zircon/vdso/misc.fidl
index 959b0cd..6c0e4c4 100644
--- a/zircon/vdso/misc.fidl
+++ b/zircon/vdso/misc.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // TODO(scottmg): These syscalls don't match the general naming convention of
 // zx_something_name(), they're just zx_name(), so NoProtocolPrefix tells the
@@ -21,7 +22,7 @@
 
     /// Read the number of high-precision timer ticks in a second.
     [const,
-    vdsocall]
+     vdsocall]
     ticks_per_second() -> (ticks ticks);
 
     /// Convert a time relative to now to an absolute deadline.
diff --git a/zircon/vdso/mtrace.fidl b/zircon/vdso/mtrace.fidl
index 896737e..f3c1f1c 100644
--- a/zircon/vdso/mtrace.fidl
+++ b/zircon/vdso/mtrace.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol mtrace {
diff --git a/zircon/vdso/object.fidl b/zircon/vdso/object.fidl
index a5d9c9f..f510fec 100644
--- a/zircon/vdso/object.fidl
+++ b/zircon/vdso/object.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // TODO(scottmg): Apply rights spec from WaitMany on |items| to |handle| here,
 // somehow.
diff --git a/zircon/vdso/pager.fidl b/zircon/vdso/pager.fidl
index e397e8d..6c7c581 100644
--- a/zircon/vdso/pager.fidl
+++ b/zircon/vdso/pager.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol pager {
diff --git a/zircon/vdso/pc.fidl b/zircon/vdso/pc.fidl
index 974940f..cb10baa 100644
--- a/zircon/vdso/pc.fidl
+++ b/zircon/vdso/pc.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol pc {
diff --git a/zircon/vdso/pci.fidl b/zircon/vdso/pci.fidl
index 9598424..d5c80db 100644
--- a/zircon/vdso/pci.fidl
+++ b/zircon/vdso/pci.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // TODO(cja): This makes some assumptions that anything in an arch's PIO region
 // is going to be defined as a base address and size. This will need to be
diff --git a/zircon/vdso/pmt.fidl b/zircon/vdso/pmt.fidl
index b289f9b..0e37311 100644
--- a/zircon/vdso/pmt.fidl
+++ b/zircon/vdso/pmt.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol pmt {
diff --git a/zircon/vdso/port.fidl b/zircon/vdso/port.fidl
index 7f952ac..21fed70 100644
--- a/zircon/vdso/port.fidl
+++ b/zircon/vdso/port.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // port_packet_t::type ZX_PKT_TYPE_USER.
 union PacketUser {
diff --git a/zircon/vdso/process.fidl b/zircon/vdso/process.fidl
index 98dc3c1..b9c3eb3 100644
--- a/zircon/vdso/process.fidl
+++ b/zircon/vdso/process.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol process {
diff --git a/zircon/vdso/profile.fidl b/zircon/vdso/profile.fidl
index 55c68d4..c808f4d 100644
--- a/zircon/vdso/profile.fidl
+++ b/zircon/vdso/profile.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 enum ProfileInfoType {
     ZX_PROFILE_INFO_SCHEDULER = 1;
diff --git a/zircon/vdso/resource.fidl b/zircon/vdso/resource.fidl
index eecf0a1..1854504 100644
--- a/zircon/vdso/resource.fidl
+++ b/zircon/vdso/resource.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol resource {
diff --git a/zircon/vdso/rights.fidl b/zircon/vdso/rights.fidl
index 290815e..69ba88f 100644
--- a/zircon/vdso/rights.fidl
+++ b/zircon/vdso/rights.fidl
@@ -2,33 +2,34 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // TODO(scottmg): (1 << 4) notation or something else for bits would be nice.
 bits rights : uint32 {
     // TODO(scottmg): "bits members must be powers of two"
     // NONE =           0x00000000;
-    DUPLICATE = 0x00000001;
-    TRANSFER = 0x00000002;
-    READ = 0x00000004;
-    WRITE = 0x00000008;
-    EXECUTE = 0x00000010;
-    MAP = 0x00000020;
-    GET_PROPERTY = 0x00000040;
-    SET_PROPERTY = 0x00000080;
-    ENUMERATE = 0x00000100;
-    DESTROY = 0x00000200;
-    SET_POLICY = 0x00000400;
-    GET_POLICY = 0x00000800;
-    SIGNAL = 0x00001000;
-    SIGNAL_PEER = 0x00002000;
-    WAIT = 0x00004000;
-    INSPECT = 0x00008000;
-    MANAGE_JOB = 0x00010000;
+    DUPLICATE =      0x00000001;
+    TRANSFER =       0x00000002;
+    READ =           0x00000004;
+    WRITE =          0x00000008;
+    EXECUTE =        0x00000010;
+    MAP =            0x00000020;
+    GET_PROPERTY =   0x00000040;
+    SET_PROPERTY =   0x00000080;
+    ENUMERATE =      0x00000100;
+    DESTROY =        0x00000200;
+    SET_POLICY =     0x00000400;
+    GET_POLICY =     0x00000800;
+    SIGNAL =         0x00001000;
+    SIGNAL_PEER =    0x00002000;
+    WAIT =           0x00004000;
+    INSPECT =        0x00008000;
+    MANAGE_JOB =     0x00010000;
     MANAGE_PROCESS = 0x00020000;
-    MANAGE_THREAD = 0x00040000;
-    APPLY_PROFILE = 0x00080000;
-    SAME_RIGHTS = 0x80000000;
+    MANAGE_THREAD =  0x00040000;
+    APPLY_PROFILE =  0x00080000;
+    SAME_RIGHTS =    0x80000000;
 
     // TODO(scottmg): Derived settings using |, &, ~, e.g.:
     // BASIC = (TRANSFER | DUPLICATE | WAIT | INSPECT);
diff --git a/zircon/vdso/smc.fidl b/zircon/vdso/smc.fidl
index 3b9e4bb..b039311 100644
--- a/zircon/vdso/smc.fidl
+++ b/zircon/vdso/smc.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 // TODO(scottmg): ARM_SMC_xyz.
 
diff --git a/zircon/vdso/socket.fidl b/zircon/vdso/socket.fidl
index 3054629..00f7159 100644
--- a/zircon/vdso/socket.fidl
+++ b/zircon/vdso/socket.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol socket {
diff --git a/zircon/vdso/stream.fidl b/zircon/vdso/stream.fidl
index 14b2dbe..cf6cdbd 100644
--- a/zircon/vdso/stream.fidl
+++ b/zircon/vdso/stream.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 enum stream_seek_origin : uint32 {
     START = 0;
diff --git a/zircon/vdso/syscall.fidl b/zircon/vdso/syscall.fidl
index 4a786e3..06e5683 100644
--- a/zircon/vdso/syscall.fidl
+++ b/zircon/vdso/syscall.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol syscall {
diff --git a/zircon/vdso/system.fidl b/zircon/vdso/system.fidl
index 4386262..12ada66 100644
--- a/zircon/vdso/system.fidl
+++ b/zircon/vdso/system.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 struct SystemPowerctlArg {
     // TODO(scottmg): More unnamed unions.
diff --git a/zircon/vdso/task.fidl b/zircon/vdso/task.fidl
index 15d113f86..56cc556 100644
--- a/zircon/vdso/task.fidl
+++ b/zircon/vdso/task.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol task {
diff --git a/zircon/vdso/thread.fidl b/zircon/vdso/thread.fidl
index f9f976a..9754d05 100644
--- a/zircon/vdso/thread.fidl
+++ b/zircon/vdso/thread.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol thread {
diff --git a/zircon/vdso/timer.fidl b/zircon/vdso/timer.fidl
index 98e597f..1eae5a9 100644
--- a/zircon/vdso/timer.fidl
+++ b/zircon/vdso/timer.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol timer {
diff --git a/zircon/vdso/vcpu.fidl b/zircon/vdso/vcpu.fidl
index 0a067a7c..72cc954 100644
--- a/zircon/vdso/vcpu.fidl
+++ b/zircon/vdso/vcpu.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol vcpu {
diff --git a/zircon/vdso/vmar.fidl b/zircon/vdso/vmar.fidl
index 483f805..0256623 100644
--- a/zircon/vdso/vmar.fidl
+++ b/zircon/vdso/vmar.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 using VmOption = uint32;
 
diff --git a/zircon/vdso/vmo.fidl b/zircon/vdso/vmo.fidl
index f58174c..060d4cd 100644
--- a/zircon/vdso/vmo.fidl
+++ b/zircon/vdso/vmo.fidl
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library zx;
+// TODO(fxb/39732): This should be read as "library zx".
+library zz;
 
 [Transport = "Syscall"]
 protocol vmo {
diff --git a/zircon/vdso/zx.fidl b/zircon/vdso/zx.fidl
new file mode 100644
index 0000000..ac9903a
--- /dev/null
+++ b/zircon/vdso/zx.fidl
@@ -0,0 +1,41 @@
+// Copyright 2019 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// TODO(scottmg): This library is temporarily "zz" instead of "zx" because a
+// "zx" is force-injected by fidlc. Eventually, we'll stop that and use this one
+// instead as "zx". fxb/39732.
+library zz;
+
+using status = int32;
+
+using time = int64;
+using duration = int64;
+using ticks = uint64;
+
+using koid = uint64;
+
+using vaddr = uint64;
+using paddr = uint64;
+using paddr32 = uint32;
+using gpaddr = uint64;
+using off = uint64;
+
+// TODO(scottmg): Not sure what this is.
+using procarg = uint32;
+
+const uint64 CHANNEL_MAX_MSG_BYTES = 65536;
+const uint64 CHANNEL_MAX_MSG_HANDLES = 64;
+
+// TODO(scottmg): == size_t, not sure if this is a good idea.
+using usize = uint64;
+
+// TODO(scottmg): == uintptr_t, not sure if this is a good idea.
+using uintptr = uint64;
+
+// TODO(scottmg): Maybe a void for vector<void> (or vector<any>?) to distinguish
+// polymorphic arguments that are passed as void* from buffers of bytes.
+
+using signals = uint32;
+// TODO(scottmg): Lots of aliases/variations required here. Not sure if bits
+// make sense.
diff --git a/zircon/vdso/zx/BUILD.gn b/zircon/vdso/zx/BUILD.gn
deleted file mode 100644
index 4e88e5de..0000000
--- a/zircon/vdso/zx/BUILD.gn
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2020 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("$zx_build/public/gn/fidl.gni")
-
-fidl_library("zx") {
-  sources = [ "../zx_common.fidl" ]
-
-  sdk = true
-}
diff --git a/zircon/vdso/zx_common.fidl b/zircon/vdso/zx_common.fidl
deleted file mode 100644
index f1de182..0000000
--- a/zircon/vdso/zx_common.fidl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2020 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-// This specific FIDL file is used in two contexts:
-//
-// 1. Define the `zx` library for plain-vanilla FIDL files, i.e. channel
-//    transport
-// 2. Part of the overall definition of the Kernel ABI, i.e. Syscall transport
-//
-// Since the FIDL compiler does not support splitting definitions per-transport
-// yet, we split definitions by file.
-//
-// Additionally, this file is defined as `Internal` which omits any code from
-// being generated by bindings. As a result, no declaration (e.g. an enum or
-// bits) may be present in this file.
-[Internal]
-library zx;
-
-// zx_status_t and errors.h.
-using status = int32;
-
-// zx_time_t: absolute time in nanoseconds (generally with respect to the
-// monotonic clock).
-using time = int64;
-
-// zx_duration_t: a duration in nanoseconds.
-using duration = int64;
-
-// zx_ticks_t: a duration in hardware ticks.
-using ticks = uint64;
-
-// zx_koid_t: global kernel object id.
-using koid = uint64;
-
-// zx_vaddr_t: virtual address.
-using vaddr = uint64;
-
-// zx_paddr_t: physical address.
-using paddr = uint64;
-
-// zx_paddr32_t: low mem physical address.
-using paddr32 = uint32;
-
-// zx_gpaddr_t: hypervisor guest physical addresses.
-using gpaddr = uint64;
-
-// zx_off_t: offset.
-using off = uint64;
-
-// See zircon/processargs.h.
-using procarg = uint32;
-
-// zx_signals_t.
-using signals = uint32;
-
-// TODO(fxbug.dev/7802): These are currently duplicated with zircon/types.h.
-// Eventually the definitions in zircon/types.h will be generated from this
-// source.
-const uint64 CHANNEL_MAX_MSG_BYTES = 65536;
-const uint64 CHANNEL_MAX_MSG_HANDLES = 64;
-const uint64 MAX_NAME_LEN = 32;
-const uint64 MAX_CPUS = 512;
diff --git a/zircon/vdso/zx_syscall.fidl b/zircon/vdso/zx_syscall.fidl
deleted file mode 100644
index b8f28c0..0000000
--- a/zircon/vdso/zx_syscall.fidl
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2020 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-library zx;
-
-using usize = uint64;
-
-using uintptr = uint64;