URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
/* PR optimization/13260 */
|
/* PR optimization/13260 */
|
|
|
#include <string.h>
|
#include <string.h>
|
|
|
typedef unsigned long u32;
|
typedef unsigned long u32;
|
|
|
u32 in_aton(const char* x)
|
u32 in_aton(const char* x)
|
{
|
{
|
return 0x0a0b0c0d;
|
return 0x0a0b0c0d;
|
}
|
}
|
|
|
u32 root_nfs_parse_addr(char *name)
|
u32 root_nfs_parse_addr(char *name)
|
{
|
{
|
u32 addr;
|
u32 addr;
|
int octets = 0;
|
int octets = 0;
|
char *cp, *cq;
|
char *cp, *cq;
|
|
|
cp = cq = name;
|
cp = cq = name;
|
while (octets < 4) {
|
while (octets < 4) {
|
while (*cp >= '0' && *cp <= '9')
|
while (*cp >= '0' && *cp <= '9')
|
cp++;
|
cp++;
|
if (cp == cq || cp - cq > 3)
|
if (cp == cq || cp - cq > 3)
|
break;
|
break;
|
if (*cp == '.' || octets == 3)
|
if (*cp == '.' || octets == 3)
|
octets++;
|
octets++;
|
if (octets < 4)
|
if (octets < 4)
|
cp++;
|
cp++;
|
cq = cp;
|
cq = cp;
|
}
|
}
|
|
|
if (octets == 4 && (*cp == ':' || *cp == '\0')) {
|
if (octets == 4 && (*cp == ':' || *cp == '\0')) {
|
if (*cp == ':')
|
if (*cp == ':')
|
*cp++ = '\0';
|
*cp++ = '\0';
|
addr = in_aton(name);
|
addr = in_aton(name);
|
strcpy(name, cp);
|
strcpy(name, cp);
|
} else
|
} else
|
addr = (-1);
|
addr = (-1);
|
|
|
return addr;
|
return addr;
|
}
|
}
|
|
|
int
|
int
|
main()
|
main()
|
{
|
{
|
static char addr[] = "10.11.12.13:/hello";
|
static char addr[] = "10.11.12.13:/hello";
|
u32 result = root_nfs_parse_addr(addr);
|
u32 result = root_nfs_parse_addr(addr);
|
if (result != 0x0a0b0c0d) { abort(); }
|
if (result != 0x0a0b0c0d) { abort(); }
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.