diff options
| author | Ben Pfaff <blp@nicira.com> | 2011-05-06 12:59:51 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2011-05-16 13:45:53 -0700 |
| commit | 6506f45c0818618e96deb858bbabdf2cc90eb2df (patch) | |
| tree | ef898fc14eade893c460fcbd1b3d01c960595c96 /include/sparse/netinet | |
| parent | c4cac9abf211b74c777b86ad7281e7b0f42a3a39 (diff) | |
| download | openvswitch-6506f45c0818618e96deb858bbabdf2cc90eb2df.tar.gz | |
Make the source tree sparse clean.
With this commit, the tree compiles clean with sparse commit 87f4a7fda3d
"Teach 'already_tokenized()' to use the stream name hash table" with patch
"evaluate: Allow sizeof(_Bool) to succeed" available at
http://permalink.gmane.org/gmane.comp.parsers.sparse/2461 applied, as long
as the "include/sparse" directory is included for use by sparse (only),
e.g.:
make CC="CHECK='sparse -I../include/sparse' cgcc"
Diffstat (limited to 'include/sparse/netinet')
| -rw-r--r-- | include/sparse/netinet/in.h | 95 | ||||
| -rw-r--r-- | include/sparse/netinet/ip6.h | 61 |
2 files changed, 156 insertions, 0 deletions
diff --git a/include/sparse/netinet/in.h b/include/sparse/netinet/in.h new file mode 100644 index 000000000..d86431ada --- /dev/null +++ b/include/sparse/netinet/in.h @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2011 Nicira Networks. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CHECKER__ +#error "Use this header only with sparse. It is not a correct implementation." +#endif + +#ifndef __NETINET_IN_SPARSE +#define __NETINET_IN_SPARSE 1 + +#include "openvswitch/types.h" +#include <inttypes.h> +#include <sys/socket.h> + +typedef ovs_be16 in_port_t; +typedef ovs_be32 in_addr_t; + +struct in_addr { + in_addr_t s_addr; +}; + +struct sockaddr_in { + sa_family_t sin_family; + in_port_t sin_port; + struct in_addr sin_addr; +}; + +struct in6_addr { + union { + uint8_t u_s6_addr[16]; + } u; +}; + +#define s6_addr u.u_s6_addr + +extern const struct in6_addr in6addr_any; + +#define IPPROTO_IP 0 +#define IPPROTO_HOPOPTS 0 +#define IPPROTO_ICMP 1 +#define IPPROTO_TCP 6 +#define IPPROTO_UDP 17 +#define IPPROTO_ROUTING 43 +#define IPPROTO_FRAGMENT 44 +#define IPPROTO_AH 51 +#define IPPROTO_ICMPV6 58 +#define IPPROTO_NONE 59 +#define IPPROTO_DSTOPTS 60 + +#define INADDR_ANY 0x00000000 +#define INADDR_BROADCAST 0xffffffff +#define INADDR_NONE 0xffffffff + +#define INET6_ADDRSTRLEN 46 + +static inline ovs_be32 htonl(uint32_t x) +{ + return (OVS_FORCE ovs_be32) x; +} + +static inline ovs_be16 htons(uint16_t x) +{ + return (OVS_FORCE ovs_be16) x; +} + +static inline uint32_t ntohl(ovs_be32 x) +{ + return (OVS_FORCE uint32_t) x; +} + +static inline uint16_t ntohs(ovs_be16 x) +{ + return (OVS_FORCE uint16_t) x; +} + +in_addr_t inet_addr(const char *); +int inet_aton (const char *, struct in_addr *); +char *inet_ntoa(struct in_addr); +const char *inet_ntop(int, const void *, char *, socklen_t); +int inet_pton(int, const char *, void *); + +#endif /* <netinet/in.h> sparse */ diff --git a/include/sparse/netinet/ip6.h b/include/sparse/netinet/ip6.h new file mode 100644 index 000000000..c6608a144 --- /dev/null +++ b/include/sparse/netinet/ip6.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2011 Nicira Networks. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CHECKER__ +#error "Use this header only with sparse. It is not a correct implementation." +#endif + +#ifndef __NETINET_IP6_SPARSE +#define __NETINET_IP6_SPARSE 1 + +#include <netinet/in.h> + +struct ip6_hdr { + union { + struct ip6_hdrctl { + ovs_be32 ip6_un1_flow; + ovs_be16 ip6_un1_plen; + uint8_t ip6_un1_nxt; + uint8_t ip6_un1_hlim; + } ip6_un1; + uint8_t ip6_un2_vfc; + } ip6_ctlun; + struct in6_addr ip6_src; + struct in6_addr ip6_dst; +}; + +#define ip6_vfc ip6_ctlun.ip6_un2_vfc +#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow +#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen +#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt +#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim +#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim + +struct ip6_ext { + uint8_t ip6e_nxt; + uint8_t ip6e_len; +}; + +struct ip6_frag { + uint8_t ip6f_nxt; + uint8_t ip6f_reserved; + ovs_be16 ip6f_offlg; + ovs_be32 ip6f_ident; +}; + +#define IP6F_OFF_MASK ((OVS_FORCE ovs_be16) 0xfff8) + +#endif /* netinet/ip6.h sparse */ |
