+int ventoy_strcmp(const char *pattern, const char *str)
+{
+ while (*pattern && *str)
+ {
+ if ((*pattern != *str) && (*pattern != '*'))
+ break;
+
+ pattern++;
+ str++;
+ }
+
+ return (int)(grub_uint8_t)*pattern - (int)(grub_uint8_t)*str;
+}
+
+int ventoy_strncmp (const char *pattern, const char *str, grub_size_t n)
+{
+ if (n == 0)
+ return 0;
+
+ while (*pattern && *str && --n)
+ {
+ if ((*pattern != *str) && (*pattern != '*'))
+ break;
+
+ pattern++;
+ str++;
+ }
+
+ return (int)(grub_uint8_t)*pattern - (int)(grub_uint8_t)*str;
+}
+
+