diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-12-08 22:56:18 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-12-08 22:56:18 +0000 |
commit | efb545b9bdd3934dcdbf9bc0890a42081b330049 (patch) | |
tree | 4dc9212e49a5dae9890bd324bcc9bf4941e2321d /networking/libiproute | |
parent | d1a84a2880073f6cc5e2f9f4e5f236cd110f01a0 (diff) | |
download | busybox-w32-efb545b9bdd3934dcdbf9bc0890a42081b330049.tar.gz busybox-w32-efb545b9bdd3934dcdbf9bc0890a42081b330049.tar.bz2 busybox-w32-efb545b9bdd3934dcdbf9bc0890a42081b330049.zip |
optimize 16- and 32-bit moves
function old new delta
udhcpd_main 1239 1257 +18
udhcp_add_simple_option 93 92 -1
buffer_read_le_u32 19 18 -1
unpack_gz_stream_with_info 526 520 -6
dnsd_main 1470 1463 -7
udhcp_run_script 1208 1186 -22
send_ACK 255 229 -26
arping_main 1661 1623 -38
send_offer 470 428 -42
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/8 up/down: 18/-143) Total: -125 bytes
Diffstat (limited to 'networking/libiproute')
-rw-r--r-- | networking/libiproute/libnetlink.c | 4 | ||||
-rw-r--r-- | networking/libiproute/ll_addr.c | 38 |
2 files changed, 21 insertions, 21 deletions
diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c index 01454fbf5..6d51d8deb 100644 --- a/networking/libiproute/libnetlink.c +++ b/networking/libiproute/libnetlink.c | |||
@@ -341,7 +341,7 @@ int FAST_FUNC addattr32(struct nlmsghdr *n, int maxlen, int type, uint32_t data) | |||
341 | rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len)); | 341 | rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len)); |
342 | rta->rta_type = type; | 342 | rta->rta_type = type; |
343 | rta->rta_len = len; | 343 | rta->rta_len = len; |
344 | memcpy(RTA_DATA(rta), &data, 4); | 344 | move_to_unaligned32(RTA_DATA(rta), data); |
345 | n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len; | 345 | n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len; |
346 | return 0; | 346 | return 0; |
347 | } | 347 | } |
@@ -372,7 +372,7 @@ int FAST_FUNC rta_addattr32(struct rtattr *rta, int maxlen, int type, uint32_t d | |||
372 | subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len)); | 372 | subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len)); |
373 | subrta->rta_type = type; | 373 | subrta->rta_type = type; |
374 | subrta->rta_len = len; | 374 | subrta->rta_len = len; |
375 | memcpy(RTA_DATA(subrta), &data, 4); | 375 | move_to_unaligned32(RTA_DATA(subrta), data); |
376 | rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len; | 376 | rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len; |
377 | return 0; | 377 | return 0; |
378 | } | 378 | } |
diff --git a/networking/libiproute/ll_addr.c b/networking/libiproute/ll_addr.c index e732efdb2..f50e37193 100644 --- a/networking/libiproute/ll_addr.c +++ b/networking/libiproute/ll_addr.c | |||
@@ -43,6 +43,8 @@ const char *ll_addr_n2a(unsigned char *addr, int alen, int type, char *buf, int | |||
43 | 43 | ||
44 | int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) | 44 | int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) |
45 | { | 45 | { |
46 | int i; | ||
47 | |||
46 | if (strchr(arg, '.')) { | 48 | if (strchr(arg, '.')) { |
47 | inet_prefix pfx; | 49 | inet_prefix pfx; |
48 | if (get_addr_1(&pfx, arg, AF_INET)) { | 50 | if (get_addr_1(&pfx, arg, AF_INET)) { |
@@ -54,26 +56,24 @@ int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) | |||
54 | } | 56 | } |
55 | memcpy(lladdr, pfx.data, 4); | 57 | memcpy(lladdr, pfx.data, 4); |
56 | return 4; | 58 | return 4; |
57 | } else { | 59 | } |
58 | int i; | ||
59 | 60 | ||
60 | for (i=0; i<len; i++) { | 61 | for (i = 0; i < len; i++) { |
61 | int temp; | 62 | int temp; |
62 | char *cp = strchr(arg, ':'); | 63 | char *cp = strchr(arg, ':'); |
63 | if (cp) { | 64 | if (cp) { |
64 | *cp = 0; | 65 | *cp = 0; |
65 | cp++; | 66 | cp++; |
66 | } | 67 | } |
67 | if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) { | 68 | if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) { |
68 | bb_error_msg("\"%s\" is invalid lladdr", arg); | 69 | bb_error_msg("\"%s\" is invalid lladdr", arg); |
69 | return -1; | 70 | return -1; |
70 | } | 71 | } |
71 | lladdr[i] = temp; | 72 | lladdr[i] = temp; |
72 | if (!cp) { | 73 | if (!cp) { |
73 | break; | 74 | break; |
74 | } | ||
75 | arg = cp; | ||
76 | } | 75 | } |
77 | return i+1; | 76 | arg = cp; |
78 | } | 77 | } |
78 | return i+1; | ||
79 | } | 79 | } |