Update to android-mainline kernel headers v5.4.

Update generate_uapi_headers.sh to checkout the android mainline
kernel. Also, add a small modification to look for the kernel directory
in common not linux-stable.

Remove deprecated android headers from android/uapi/linux. Also,
remove f_accessory.h since it's in the android mainline kernel.

Test: Builds and runs on walleye.
Change-Id: Ia371305e19f56e6bcc2db6d5b4d299819f07ffc6
diff --git a/libc/kernel/uapi/linux/nfsd/cld.h b/libc/kernel/uapi/linux/nfsd/cld.h
index ed99e73..92b89c0 100644
--- a/libc/kernel/uapi/linux/nfsd/cld.h
+++ b/libc/kernel/uapi/linux/nfsd/cld.h
@@ -19,19 +19,31 @@
 #ifndef _NFSD_CLD_H
 #define _NFSD_CLD_H
 #include <linux/types.h>
-#define CLD_UPCALL_VERSION 1
+#define CLD_UPCALL_VERSION 2
 #define NFS4_OPAQUE_LIMIT 1024
+#ifndef SHA256_DIGEST_SIZE
+#define SHA256_DIGEST_SIZE 32
+#endif
 enum cld_command {
   Cld_Create,
   Cld_Remove,
   Cld_Check,
   Cld_GraceDone,
   Cld_GraceStart,
+  Cld_GetVersion,
 };
 struct cld_name {
   __u16 cn_len;
   unsigned char cn_id[NFS4_OPAQUE_LIMIT];
 } __attribute__((packed));
+struct cld_princhash {
+  __u8 cp_len;
+  unsigned char cp_data[SHA256_DIGEST_SIZE];
+} __attribute__((packed));
+struct cld_clntinfo {
+  struct cld_name cc_name;
+  struct cld_princhash cc_princhash;
+} __attribute__((packed));
 struct cld_msg {
   __u8 cm_vers;
   __u8 cm_cmd;
@@ -40,6 +52,24 @@
   union {
     __s64 cm_gracetime;
     struct cld_name cm_name;
+    __u8 cm_version;
   } __attribute__((packed)) cm_u;
 } __attribute__((packed));
+struct cld_msg_v2 {
+  __u8 cm_vers;
+  __u8 cm_cmd;
+  __s16 cm_status;
+  __u32 cm_xid;
+  union {
+    struct cld_name cm_name;
+    __u8 cm_version;
+    struct cld_clntinfo cm_clntinfo;
+  } __attribute__((packed)) cm_u;
+} __attribute__((packed));
+struct cld_msg_hdr {
+  __u8 cm_vers;
+  __u8 cm_cmd;
+  __s16 cm_status;
+  __u32 cm_xid;
+} __attribute__((packed));
 #endif