Update to kernel headers v4.14.

Remove the hiding of the kernel structure binder_fd_array_object. This
structure now matches the structure used in the binder code.

Load the libclang_android.so shared library directly for parsing.
This file changed name in a recent update to the prebuilts.

Test: Compiles arm/arm64/x86/x86_64.
Test: Boots on hikey and boots on a sailfish.
Test: Ran bionic unit tests on hikey and sailfish.
Change-Id: I141a4b93ac3511cd58f4d12bb3c0d4efaa4c2742
diff --git a/libc/kernel/uapi/linux/dvb/ca.h b/libc/kernel/uapi/linux/dvb/ca.h
index c494ad5..fa977c7 100644
--- a/libc/kernel/uapi/linux/dvb/ca.h
+++ b/libc/kernel/uapi/linux/dvb/ca.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _DVBCA_H_
 #define _DVBCA_H_
-typedef struct ca_slot_info {
+struct ca_slot_info {
   int num;
   int type;
 #define CA_CI 1
@@ -29,41 +29,41 @@
   unsigned int flags;
 #define CA_CI_MODULE_PRESENT 1
 #define CA_CI_MODULE_READY 2
-} ca_slot_info_t;
-typedef struct ca_descr_info {
+};
+struct ca_descr_info {
   unsigned int num;
   unsigned int type;
 #define CA_ECD 1
 #define CA_NDS 2
 #define CA_DSS 4
-} ca_descr_info_t;
-typedef struct ca_caps {
+};
+struct ca_caps {
   unsigned int slot_num;
   unsigned int slot_type;
   unsigned int descr_num;
   unsigned int descr_type;
-} ca_caps_t;
-typedef struct ca_msg {
+};
+struct ca_msg {
   unsigned int index;
   unsigned int type;
   unsigned int length;
   unsigned char msg[256];
-} ca_msg_t;
-typedef struct ca_descr {
+};
+struct ca_descr {
   unsigned int index;
   unsigned int parity;
   unsigned char cw[8];
-} ca_descr_t;
-typedef struct ca_pid {
-  unsigned int pid;
-  int index;
-} ca_pid_t;
+};
 #define CA_RESET _IO('o', 128)
-#define CA_GET_CAP _IOR('o', 129, ca_caps_t)
-#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t)
-#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t)
-#define CA_GET_MSG _IOR('o', 132, ca_msg_t)
-#define CA_SEND_MSG _IOW('o', 133, ca_msg_t)
-#define CA_SET_DESCR _IOW('o', 134, ca_descr_t)
-#define CA_SET_PID _IOW('o', 135, ca_pid_t)
+#define CA_GET_CAP _IOR('o', 129, struct ca_caps)
+#define CA_GET_SLOT_INFO _IOR('o', 130, struct ca_slot_info)
+#define CA_GET_DESCR_INFO _IOR('o', 131, struct ca_descr_info)
+#define CA_GET_MSG _IOR('o', 132, struct ca_msg)
+#define CA_SEND_MSG _IOW('o', 133, struct ca_msg)
+#define CA_SET_DESCR _IOW('o', 134, struct ca_descr)
+typedef struct ca_slot_info ca_slot_info_t;
+typedef struct ca_descr_info ca_descr_info_t;
+typedef struct ca_caps ca_caps_t;
+typedef struct ca_msg ca_msg_t;
+typedef struct ca_descr ca_descr_t;
 #endif
diff --git a/libc/kernel/uapi/linux/dvb/dmx.h b/libc/kernel/uapi/linux/dvb/dmx.h
index 438c832..d4ea26e 100644
--- a/libc/kernel/uapi/linux/dvb/dmx.h
+++ b/libc/kernel/uapi/linux/dvb/dmx.h
@@ -27,12 +27,11 @@
   DMX_OUT_TS_TAP,
   DMX_OUT_TSDEMUX_TAP
 };
-typedef enum dmx_output dmx_output_t;
-typedef enum dmx_input {
+enum dmx_input {
   DMX_IN_FRONTEND,
   DMX_IN_DVR
-} dmx_input_t;
-typedef enum dmx_ts_pes {
+};
+enum dmx_ts_pes {
   DMX_PES_AUDIO0,
   DMX_PES_VIDEO0,
   DMX_PES_TELETEXT0,
@@ -54,48 +53,33 @@
   DMX_PES_SUBTITLE3,
   DMX_PES_PCR3,
   DMX_PES_OTHER
-} dmx_pes_type_t;
+};
 #define DMX_PES_AUDIO DMX_PES_AUDIO0
 #define DMX_PES_VIDEO DMX_PES_VIDEO0
 #define DMX_PES_TELETEXT DMX_PES_TELETEXT0
 #define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
 #define DMX_PES_PCR DMX_PES_PCR0
-typedef struct dmx_filter {
+struct dmx_filter {
   __u8 filter[DMX_FILTER_SIZE];
   __u8 mask[DMX_FILTER_SIZE];
   __u8 mode[DMX_FILTER_SIZE];
-} dmx_filter_t;
+};
 struct dmx_sct_filter_params {
   __u16 pid;
-  dmx_filter_t filter;
+  struct dmx_filter filter;
   __u32 timeout;
   __u32 flags;
 #define DMX_CHECK_CRC 1
 #define DMX_ONESHOT 2
 #define DMX_IMMEDIATE_START 4
-#define DMX_KERNEL_CLIENT 0x8000
 };
 struct dmx_pes_filter_params {
   __u16 pid;
-  dmx_input_t input;
-  dmx_output_t output;
-  dmx_pes_type_t pes_type;
+  enum dmx_input input;
+  enum dmx_output output;
+  enum dmx_ts_pes pes_type;
   __u32 flags;
 };
-typedef struct dmx_caps {
-  __u32 caps;
-  int num_decoders;
-} dmx_caps_t;
-typedef enum dmx_source {
-  DMX_SOURCE_FRONT0 = 0,
-  DMX_SOURCE_FRONT1,
-  DMX_SOURCE_FRONT2,
-  DMX_SOURCE_FRONT3,
-  DMX_SOURCE_DVR0 = 16,
-  DMX_SOURCE_DVR1,
-  DMX_SOURCE_DVR2,
-  DMX_SOURCE_DVR3
-} dmx_source_t;
 struct dmx_stc {
   unsigned int num;
   unsigned int base;
@@ -107,9 +91,11 @@
 #define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params)
 #define DMX_SET_BUFFER_SIZE _IO('o', 45)
 #define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5])
-#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t)
-#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t)
 #define DMX_GET_STC _IOWR('o', 50, struct dmx_stc)
 #define DMX_ADD_PID _IOW('o', 51, __u16)
 #define DMX_REMOVE_PID _IOW('o', 52, __u16)
+typedef enum dmx_output dmx_output_t;
+typedef enum dmx_input dmx_input_t;
+typedef enum dmx_ts_pes dmx_pes_type_t;
+typedef struct dmx_filter dmx_filter_t;
 #endif
diff --git a/libc/kernel/uapi/linux/dvb/frontend.h b/libc/kernel/uapi/linux/dvb/frontend.h
index 387e3f1..c8a48c1 100644
--- a/libc/kernel/uapi/linux/dvb/frontend.h
+++ b/libc/kernel/uapi/linux/dvb/frontend.h
@@ -19,12 +19,6 @@
 #ifndef _DVBFRONTEND_H_
 #define _DVBFRONTEND_H_
 #include <linux/types.h>
-enum fe_type {
-  FE_QPSK,
-  FE_QAM,
-  FE_OFDM,
-  FE_ATSC
-};
 enum fe_caps {
   FE_IS_STUPID = 0,
   FE_CAN_INVERSION_AUTO = 0x1,
@@ -58,6 +52,12 @@
   FE_CAN_RECOVER = 0x40000000,
   FE_CAN_MUTE_TS = 0x80000000
 };
+enum fe_type {
+  FE_QPSK,
+  FE_QAM,
+  FE_OFDM,
+  FE_ATSC
+};
 struct dvb_frontend_info {
   char name[128];
   enum fe_type type;
@@ -94,6 +94,7 @@
   SEC_MINI_B
 };
 enum fe_status {
+  FE_NONE = 0x00,
   FE_HAS_SIGNAL = 0x01,
   FE_HAS_CARRIER = 0x02,
   FE_HAS_VITERBI = 0x04,
@@ -308,13 +309,6 @@
 };
 #define NO_STREAM_ID_FILTER (~0U)
 #define LNA_AUTO (~0U)
-struct dtv_cmds_h {
-  char * name;
-  __u32 cmd;
-  __u32 set : 1;
-  __u32 buffer : 1;
-  __u32 reserved : 30;
-};
 enum fecap_scale_params {
   FE_SCALE_NOT_AVAILABLE = 0,
   FE_SCALE_DECIBEL,
@@ -353,6 +347,25 @@
   __u32 num;
   struct dtv_property * props;
 };
+#define FE_TUNE_MODE_ONESHOT 0x01
+#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
+#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
+#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
+#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
+#define FE_DISEQC_SEND_BURST _IO('o', 65)
+#define FE_SET_TONE _IO('o', 66)
+#define FE_SET_VOLTAGE _IO('o', 67)
+#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68)
+#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
+#define FE_READ_BER _IOR('o', 70, __u32)
+#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16)
+#define FE_READ_SNR _IOR('o', 72, __u16)
+#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
+#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81)
+#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
+#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80)
+#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
+#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
 enum fe_bandwidth {
   BANDWIDTH_8_MHZ,
   BANDWIDTH_7_MHZ,
@@ -413,25 +426,6 @@
   fe_status_t status;
   struct dvb_frontend_parameters parameters;
 };
-#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
-#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
-#define FE_TUNE_MODE_ONESHOT 0x01
-#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
-#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
-#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
-#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
-#define FE_DISEQC_SEND_BURST _IO('o', 65)
-#define FE_SET_TONE _IO('o', 66)
-#define FE_SET_VOLTAGE _IO('o', 67)
-#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68)
-#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
-#define FE_READ_BER _IOR('o', 70, __u32)
-#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16)
-#define FE_READ_SNR _IOR('o', 72, __u16)
-#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
 #define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters)
 #define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters)
-#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81)
-#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
-#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80)
 #endif
diff --git a/libc/kernel/uapi/linux/dvb/video.h b/libc/kernel/uapi/linux/dvb/video.h
index e235114..7ada1a0 100644
--- a/libc/kernel/uapi/linux/dvb/video.h
+++ b/libc/kernel/uapi/linux/dvb/video.h
@@ -89,7 +89,7 @@
 #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
 #define VIDEO_EVENT_DECODER_STOPPED 3
 #define VIDEO_EVENT_VSYNC 4
-  __kernel_time_t timestamp;
+  long timestamp;
   union {
     video_size_t size;
     unsigned int frame_rate;