diff --git a/libs/vr/libdvr/build_sdk.py b/libs/vr/libdvr/build_sdk.py
deleted file mode 100755
index b3c2e44..0000000
--- a/libs/vr/libdvr/build_sdk.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/python
-import sys
-import os
-import argparse
-
-# Run this script to generate dvr_api.h in the current directory.
-
-def make_argument_parser():
-  parser = argparse.ArgumentParser(
-      description='Process DVR API headers into exportable SDK files.')
-  return parser
-
-parser = make_argument_parser()
-
-in_file = open("include/dvr/dvr_api.h", "r")
-out_file = open("./dvr_api.h", "w")
-
-h_filename = ""
-for line in in_file:
-  if line.startswith("// dvr_") and line.endswith(".h\n"):
-    h_filename = "include/dvr/" + line[3:].strip()
-  if line.startswith("typedef ") and "(*Dvr" in line:
-    start = line.find("(*Dvr") + 5
-    end = line.find("Ptr)")
-    if end != -1:
-      name = "dvr" + line[start:end]
-      # Find the comments for this function and insert into output.
-      with open(h_filename, 'r') as h_file:
-        h_lines = h_file.readlines()
-        i = 1
-        while i < len(h_lines):
-          if name in h_lines[i]:
-            end_i = i
-            while h_lines[i - 1].startswith("//"): i -= 1
-            while i < end_i:
-              out_file.write(h_lines[i])
-              i += 1
-            break
-          i += 1
-  if line.startswith('#include "dvr_api_entries.h"'):
-    with open("include/dvr/dvr_api_entries.h") as f:
-      out_file.write(f.read())
-  else:
-    out_file.write(line)
-
-in_file.close()
-out_file.close()
diff --git a/libs/vr/libdvr/include/dvr/dvr_api.h b/libs/vr/libdvr/include/dvr/dvr_api.h
index 0eb393e..99dfd2f 100644
--- a/libs/vr/libdvr/include/dvr/dvr_api.h
+++ b/libs/vr/libdvr/include/dvr/dvr_api.h
@@ -4,12 +4,15 @@
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
-#include <sys/cdefs.h>
-#include <unistd.h>
+#include <cstdio>
 
+#include <dvr/dvr_display_types.h>
 #include <dvr/dvr_hardware_composer_defs.h>
+#include <dvr/dvr_pose.h>
 
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 typedef struct ANativeWindow ANativeWindow;
 
@@ -38,6 +41,11 @@
 typedef struct DvrSurfaceAttributeValue DvrSurfaceAttributeValue;
 typedef struct DvrSurfaceAttribute DvrSurfaceAttribute;
 
+// native_handle contains the fds for the underlying ION allocations inside
+// the gralloc buffer. This is needed temporarily while GPU vendors work on
+// better support for AHardwareBuffer via glBindSharedBuffer APIs. See
+// b/37207909. For now we can declare the native_handle struct where it is
+// used for GPU late latching. See cutils/native_handle.h for the struct layout.
 struct native_handle;
 
 // Device metrics data type enums.
@@ -181,7 +189,7 @@
     uint32_t layer_count, uint64_t usage, size_t capacity,
     DvrWriteBufferQueue** queue_out);
 
-// vsync_client_api.h
+// dvr_vsync.h
 typedef int (*DvrVSyncClientCreatePtr)(DvrVSyncClient** client_out);
 typedef void (*DvrVSyncClientDestroyPtr)(DvrVSyncClient* client);
 typedef int (*DvrVSyncClientGetSchedInfoPtr)(DvrVSyncClient* client,
@@ -324,6 +332,8 @@
 
 int dvrGetApi(void* api, size_t struct_size, int version);
 
-__END_DECLS
+#ifdef __cplusplus
+}  // extern "C"
+#endif
 
 #endif  // ANDROID_DVR_API_H_
diff --git a/libs/vr/libdvr/include/dvr/dvr_display_manager.h b/libs/vr/libdvr/include/dvr/dvr_display_manager.h
index 0f80e20..4bb0a2f 100644
--- a/libs/vr/libdvr/include/dvr/dvr_display_manager.h
+++ b/libs/vr/libdvr/include/dvr/dvr_display_manager.h
@@ -1,5 +1,5 @@
-#ifndef DVR_DISPLAY_MANAGER_CLIENT_H_
-#define DVR_DISPLAY_MANAGER_CLIENT_H_
+#ifndef ANDROID_DVR_DISPLAY_MANAGER_H_
+#define ANDROID_DVR_DISPLAY_MANAGER_H_
 
 #include <stdbool.h>
 #include <stddef.h>
@@ -145,4 +145,4 @@
 
 __END_DECLS
 
-#endif  // DVR_DISPLAY_MANAGER_CLIENT_H_
+#endif  // ANDROID_DVR_DISPLAY_MANAGER_H_
diff --git a/libs/vr/libdisplay/include/dvr/dvr_display_types.h b/libs/vr/libdvr/include/dvr/dvr_display_types.h
similarity index 100%
rename from libs/vr/libdisplay/include/dvr/dvr_display_types.h
rename to libs/vr/libdvr/include/dvr/dvr_display_types.h
