diff --git a/src/include/switch_utils.h b/src/include/switch_utils.h index 92618a81d5..b23ebf5445 100644 --- a/src/include/switch_utils.h +++ b/src/include/switch_utils.h @@ -51,6 +51,37 @@ static inline uint32_t switch_toupper(uint32_t eax) return eax - ebx; } + +static inline void switch_toupper_max(char *s) +{ + uint32_t *b,*p; + char *c; + size_t l; + int div = 0, rem = 0; + int i; + + l = strlen(s); + div = l / 4; + rem = l % 4; + + p = (uint32_t *) s; + + for (i = 0; i < div; i++) { + b = p; + *b = (uint32_t) switch_toupper(*b); + b++; + p++; + } + + c = (char *)p; + + for (i = 0; i < rem; i++) { + *c = (char) switch_toupper(*c); + c++; + } +} + + SWITCH_DECLARE(int) old_switch_toupper(int c); SWITCH_DECLARE(int) switch_tolower(int c); SWITCH_DECLARE(int) switch_isalnum(int c);