Enable Windows host compilation of gatekeeper am: 55b287d6bf am: 0adbed35cf am: 3336572119

Original change: https://android-review.googlesource.com/c/platform/system/gatekeeper/+/2417999

Change-Id: Iaf09a708dff521ff18b15459df9f2655c39cfe28
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index 790b4a5..a8be361 100644
--- a/Android.bp
+++ b/Android.bp
@@ -38,7 +38,14 @@
     header_libs: [
         "libhardware_headers",
     ],
-
+    target: {
+        windows: {
+            enabled: true,
+            host_ldlibs: [
+                "-lws2_32",
+            ],
+        },
+    },
     export_include_dirs: ["include"],
 
 }
diff --git a/gatekeeper.cpp b/gatekeeper.cpp
index 57be100..cc6b1a3 100644
--- a/gatekeeper.cpp
+++ b/gatekeeper.cpp
@@ -16,11 +16,24 @@
 #include <gatekeeper/UniquePtr.h>
 #include <gatekeeper/gatekeeper.h>
 
+#ifdef _WIN32
+#include <winsock2.h>
+#define htobe32 htonl
+#define htobe64 htonll_gk
+#else
 #include <endian.h>
+#endif
+
 #include <stddef.h>
 
 #define DAY_IN_MS (1000 * 60 * 60 * 24)
 
+#ifdef _WIN32
+__forceinline uint64_t htonll_gk(uint64_t value) {
+    return (((uint64_t)htonl(value & 0xFFFFFFFFUL)) << 32) | htonl((uint32_t)(value >> 32));
+}
+#endif
+
 namespace gatekeeper {
 
 void GateKeeper::Enroll(const EnrollRequest &request, EnrollResponse *response) {