Fix mbtk from v1265 GSW
Change-Id: I5d8d395616f284bc74c8b9448cfa347164b5a668
diff --git a/mbtk/test/libgsw_lib/gsw_uuid_test.c b/mbtk/test/libgsw_lib/gsw_uuid_test.c
new file mode 100755
index 0000000..f02ccb2
--- /dev/null
+++ b/mbtk/test/libgsw_lib/gsw_uuid_test.c
@@ -0,0 +1,70 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+
+#define CPMEM_DEVICE "/dev/cpmem"
+#define CPLOAD_IOC_MAGIC 'Z'
+#define CPLOAD_IOCTL_SET_CP_ADDR _IOW(CPLOAD_IOC_MAGIC, 1, int)
+#define CPLOAD_IOCTL_GET_CP_FUSE _IOR(CPLOAD_IOC_MAGIC, 2, int)
+
+static int getUniqueKey(unsigned char *key, int keylen)
+{
+ unsigned char ukey[24];
+ int fd;
+
+ if (keylen < 16)
+ {
+ fprintf(stderr, "Error: Key length must be at least 16 bytes.\n");
+ return -1;
+ }
+
+ fd = open(CPMEM_DEVICE, O_RDONLY);
+ if (fd == -1)
+ {
+ perror("Error opening device");
+ return -1;
+ }
+
+ memset(ukey, 0, sizeof(ukey));
+
+ if (ioctl(fd, CPLOAD_IOCTL_GET_CP_FUSE, ukey) == -1)
+ {
+ perror("Error in ioctl");
+ close(fd);
+ return -1;
+ }
+
+ close(fd);
+
+ memcpy(key, ukey, 8);
+ memcpy(&key[8], ukey, 8);
+
+ return 0;
+}
+
+int main()
+{
+ unsigned char key[16];
+ int ret;
+
+ ret = getUniqueKey(key, sizeof(key));
+ if (ret == 0)
+ {
+ printf("Unique Key: ");
+ for (int i = 0; i < sizeof(key)/2; i++)
+ {
+ printf("%02x", key[i]);
+ }
+ printf("\n");
+ }
+ else
+ {
+ fprintf(stderr, "Failed to get unique key.\n");
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
\ No newline at end of file