hikey: Add UEFI sources for reference

UEFI needs to be built outside Android build system.
Please follow the instructions in README.

The sources correspond to:
https://github.com/96boards/edk2/commit/14eae0c12e71fd33c4c0fc51e4475e8db02566cf
https://github.com/96boards/arm-trusted-firmware/commit/e9b4909dcd75fc4ae7041cfb83d28ab9adb7afdf
https://github.com/96boards/l-loader/commit/6b784ad5c4ab00e2b1c6f53cd5f74054e5d00a78
https://git.linaro.org/uefi/uefi-tools.git/commit/abe618f8ab72034fff1ce46c9c006a2c6bd40a7e

Change-Id: Ieeefdb63e673e0c8e64e0a1f02c7bddc63b2c7fb
Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
diff --git a/uefi/linaro-edk2/StdLib/LibC/String/strlcat.c b/uefi/linaro-edk2/StdLib/LibC/String/strlcat.c
new file mode 100644
index 0000000..fc9aba7
--- /dev/null
+++ b/uefi/linaro-edk2/StdLib/LibC/String/strlcat.c
@@ -0,0 +1,86 @@
+/*  $NetBSD: strlcat.c,v 1.3 2007/06/04 18:19:27 christos Exp $ */

+/*  $OpenBSD: strlcat.c,v 1.10 2003/04/12 21:56:39 millert Exp $  */

+

+/*

+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>

+ *

+ * Permission to use, copy, modify, and distribute this software for any

+ * purpose with or without fee is hereby granted, provided that the above

+ * copyright notice and this permission notice appear in all copies.

+ *

+ * THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL

+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES

+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE

+ * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES

+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION

+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN

+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

+ */

+#include  <LibConfig.h>

+

+#if !defined(_KERNEL) && !defined(_STANDALONE)

+#if HAVE_NBTOOL_CONFIG_H

+#include "nbtool_config.h"

+#endif

+

+#include <sys/cdefs.h>

+#if defined(LIBC_SCCS) && !defined(lint)

+__RCSID("$NetBSD: strlcat.c,v 1.3 2007/06/04 18:19:27 christos Exp $");

+#endif /* LIBC_SCCS and not lint */

+

+#ifdef _LIBC

+#include "namespace.h"

+#endif

+#include <sys/types.h>

+#include <assert.h>

+#include <string.h>

+

+#ifdef _LIBC

+# ifdef __weak_alias

+__weak_alias(strlcat, _strlcat)

+# endif

+#endif

+

+#else

+#include <lib/libkern/libkern.h>

+#endif /* !_KERNEL && !_STANDALONE */

+

+#ifndef HAVE_STRLCAT

+/*

+ * Appends src to string dst of size siz (unlike strncat, siz is the

+ * full size of dst, not space left).  At most siz-1 characters

+ * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).

+ * Returns strlen(src) + MIN(siz, strlen(initial dst)).

+ * If retval >= siz, truncation occurred.

+ */

+size_t

+strlcat(char *dst, const char *src, size_t siz)

+{

+  char *d = dst;

+  const char *s = src;

+  size_t n = siz;

+  size_t dlen;

+

+  _DIAGASSERT(dst != NULL);

+  _DIAGASSERT(src != NULL);

+

+  /* Find the end of dst and adjust bytes left but don't go past end */

+  while (n-- != 0 && *d != '\0')

+    d++;

+  dlen = d - dst;

+  n = siz - dlen;

+

+  if (n == 0)

+    return(dlen + strlen(s));

+  while (*s != '\0') {

+    if (n != 1) {

+      *d++ = *s;

+      n--;

+    }

+    s++;

+  }

+  *d = '\0';

+

+  return(dlen + (s - src)); /* count does not include NUL */

+}

+#endif