[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/build/uClibc/libc/unistd/swab.c b/ap/build/uClibc/libc/unistd/swab.c
new file mode 100644
index 0000000..70ea464
--- /dev/null
+++ b/ap/build/uClibc/libc/unistd/swab.c
@@ -0,0 +1,23 @@
+#include <unistd.h>
+#include <sys/types.h>
+#include <byteswap.h>
+
+/* Updated implementation based on byteswap.h from Miles Bader
+ * <miles@gnu.org>.  This should be much faster on arches with machine
+ * specific, optimized definitions in include/bits/byteswap.h (i.e. on
+ * x86, use the bswap instruction on i486 and better boxes).  For
+ * platforms that lack such support, this should be no slower than it
+ * was before... */
+void swab (const void *source, void *dest, ssize_t count)
+{
+    const unsigned short *from = source, *from_end = from + (count >> 1);
+    unsigned short junk;
+    unsigned short *to = dest;
+
+    while (from < from_end) {
+	/* Don't put '*from++'into the bswap_16() macros
+	 * or mad things will happen on macro expansion */
+	junk=*from++;
+	*to++ = bswap_16 (junk);
+    }
+}