--- /dev/null
+--- a/src/Mayaqua/Secure.c
++++ b/src/Mayaqua/Secure.c
+@@ -417,11 +417,11 @@ bool SignSecByObject(SECURE *sec, SEC_OB
+ // Perform Signing\r
+ size = 128;\r
+ // First try with 1024 bit\r
+- ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, &size);\r
++ ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, (CK_ULONG*)&size);\r
+ if (ret != CKR_OK && 128 < size && size <= 4096/8)\r
+ {\r
+ // Retry with expanded bits\r
+- ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, &size);\r
++ ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, (CK_ULONG*)&size);\r
+ }\r
+ if (ret != CKR_OK || size == 0 || size > 4096/8)\r
+ {\r
+@@ -474,7 +474,7 @@ bool WriteSecKey(SECURE *sec, bool priva
+ UINT key_type = CKK_RSA;\r
+ CK_BBOOL b_true = true, b_false = false, b_private_obj = private_obj;\r
+ UINT obj_class = CKO_PRIVATE_KEY;\r
+- UINT object;\r
++ CK_ULONG object;\r
+ UINT ret;\r
+ BUF *b;\r
+ RSA *rsa;\r
+@@ -716,7 +716,7 @@ bool WriteSecCert(SECURE *sec, bool priv
+ UCHAR value[4096];\r
+ UINT ret;\r
+ BUF *b;\r
+- UINT object;\r
++ CK_ULONG object;\r
+ CK_ATTRIBUTE a[] =\r
+ {\r
+ {CKA_SUBJECT, subject, 0}, // 0\r
+@@ -1264,7 +1264,7 @@ LIST *CloneEnumSecObject(LIST *o)
+ LIST *EnumSecObject(SECURE *sec)\r
+ {\r
+ CK_BBOOL b_true = true, b_false = false;\r
+- UINT objects[MAX_OBJ];\r
++ CK_ULONG objects[MAX_OBJ];\r
+ UINT i;\r
+ UINT ret;\r
+ LIST *o;\r
+@@ -1273,7 +1273,7 @@ LIST *EnumSecObject(SECURE *sec)
+ {\r
+ {CKA_TOKEN, &b_true, sizeof(b_true)},\r
+ };\r
+- UINT num_objects = MAX_OBJ;\r
++ CK_ULONG num_objects = MAX_OBJ;\r
+ // Validate arguments\r
+ if (sec == NULL)\r
+ {\r
+@@ -1389,7 +1389,7 @@ bool WriteSecData(SECURE *sec, bool priv
+ {\r
+ UINT object_class = CKO_DATA;\r
+ CK_BBOOL b_true = true, b_false = false, b_private_obj = private_obj;\r
+- UINT object;\r
++ CK_ULONG object;\r
+ CK_ATTRIBUTE a[] =\r
+ {\r
+ {CKA_TOKEN, &b_true, sizeof(b_true)},\r
+@@ -1713,7 +1713,7 @@ void CloseSecSession(SECURE *sec)
+ bool OpenSecSession(SECURE *sec, UINT slot_number)\r
+ {\r
+ UINT err = 0;\r
+- UINT session;\r
++ CK_ULONG session;\r
+ // Validate arguments\r
+ if (sec == NULL)\r
+ {\r
+@@ -1827,7 +1827,7 @@ SECURE *OpenSec(UINT id)
+ \r
+ // Get the slot list\r
+ sec->NumSlot = 0;\r
+- if ((err = sec->Api->C_GetSlotList(true, NULL, &sec->NumSlot)) != CKR_OK || sec->NumSlot == 0)\r
++ if ((err = sec->Api->C_GetSlotList(true, NULL, (CK_ULONG*)&sec->NumSlot)) != CKR_OK || sec->NumSlot == 0)\r
+ {\r
+ // Failure\r
+ FreeSecModule(sec);\r
+@@ -1837,7 +1837,7 @@ SECURE *OpenSec(UINT id)
+ \r
+ sec->SlotIdList = (UINT *)ZeroMalloc(sizeof(UINT) * sec->NumSlot);\r
+ \r
+- if (sec->Api->C_GetSlotList(TRUE, sec->SlotIdList, &sec->NumSlot) != CKR_OK)\r
++ if (sec->Api->C_GetSlotList(TRUE, (CK_ULONG*)sec->SlotIdList, (CK_ULONG*)&sec->NumSlot) != CKR_OK)\r
+ {\r
+ // Failure\r
+ Free(sec->SlotIdList);\r
+--- a/src/Mayaqua/Unix.c
++++ b/src/Mayaqua/Unix.c
+@@ -309,9 +309,8 @@ OS_DISPATCH_TABLE *UnixGetDispatchTable(
+ return &t;\r
+ }\r
+ \r
+-static void *signal_received_for_ignore(int sig, siginfo_t *info, void *ucontext) \r
++static void signal_received_for_ignore(int sig, siginfo_t *info, void *ucontext) \r
+ {\r
+- return NULL;\r
+ }\r
+ \r
+ // Ignore the signal flew to the thread\r
+--- a/src/Cedar/BridgeUnix.c
++++ b/src/Cedar/BridgeUnix.c
+@@ -151,6 +151,7 @@ struct my_tpacket_auxdata
+ #endif // UNIX_LINUX\r
+ \r
+ static LIST *eth_offload_list = NULL;\r
++extern void FreeTap(VLAN *v);\r
+ \r
+ // Initialize\r
+ void InitEth()\r
+--- a/src/Cedar/Console.c
++++ b/src/Cedar/Console.c
+@@ -104,6 +104,7 @@
+ \r
+ #include "CedarPch.h"\r
+ \r
++extern int getch(void);\r
+ \r
+ // Display the help for the command\r
+ void PrintCmdHelp(CONSOLE *c, char *cmd_name, TOKEN_LIST *param_list)\r