refine SGW/UPF selection code

This commit is contained in:
Sukchan Lee
2020-07-09 01:38:09 -04:00
parent 8ddbb03f65
commit a71d2ee3db
119 changed files with 1927 additions and 2037 deletions

View File

@@ -155,3 +155,65 @@ char ogs_from_hex(char ch)
{
return isdigit(ch) ? ch - '0' : tolower(ch) - 'a' + 10;
}
char *ogs_uint24_to_string(ogs_uint24_t x)
{
return ogs_msprintf("%06x", x.v);
}
char *ogs_uint28_to_string(uint32_t x)
{
return ogs_msprintf("%07x", x);
}
char *ogs_uint32_to_string(uint32_t x)
{
return ogs_msprintf("%08x", x);
}
char *ogs_uint36_to_string(uint64_t x)
{
return ogs_msprintf("%09llx", (long long)x);
}
ogs_uint24_t ogs_uint24_from_string(char *str)
{
ogs_uint24_t x;
ogs_assert(str);
ogs_ascii_to_hex(str, strlen(str), &x, 3);
return ogs_be24toh(x);
}
uint32_t ogs_uint28_from_string(char *str)
{
uint32_t x;
ogs_assert(str);
x = 0;
ogs_ascii_to_hex(str, strlen(str), &x, 4);
return be32toh(x) >> 4;
}
uint32_t ogs_uint32_from_string(char *str)
{
uint32_t x;
ogs_assert(str);
ogs_ascii_to_hex(str, strlen(str), &x, 4);
return be32toh(x);
}
uint64_t ogs_uint36_from_string(char *str)
{
uint64_t x;
ogs_assert(str);
x = 0;
ogs_ascii_to_hex(str, strlen(str), &x, 5);
return be64toh(x) >> 28;
}