diff options
author | Ben Pfaff <blp@ovn.org> | 2017-05-05 18:18:09 -0400 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2017-05-07 08:58:06 -0400 |
commit | 6973b40a43c6f5e279dbcfee0ac00a96933f7a7d (patch) | |
tree | ef5dd6dc0b036678ca9cdba013382a1e2b1111d6 /include | |
parent | 49e04890ad2fb4863f3dcd9c82eedf7360fe83e3 (diff) | |
download | openvswitch-6973b40a43c6f5e279dbcfee0ac00a96933f7a7d.tar.gz |
sparse: Add rte_memcpy.h replacement header.
Without this replacement header, building netdev-dpdk.c provokes several
"sparse" warnings on i386:
/usr/include/dpdk/rte_memcpy.h:515:33: warning: incorrect type in argument 1 (different type sizes)
/usr/include/dpdk/rte_memcpy.h:515:33: expected long long const [usertype] *__P
/usr/include/dpdk/rte_memcpy.h:515:33: got int const [usertype] *<noident>
/usr/lib/gcc/i686-linux-gnu/6//include/emmintrin.h:698:20: error: undefined identifier '__builtin_ia32_loaddqu'
/usr/lib/gcc/i686-linux-gnu/6//include/emmintrin.h:698:11: error: cast from unknown type
/usr/lib/gcc/i686-linux-gnu/6//include/emmintrin.h:716:3: error: undefined identifier '__builtin_ia32_storedqu'
/usr/lib/gcc/i686-linux-gnu/6//include/emmintrin.h:698:43: error: not a function <noident>
/usr/lib/gcc/i686-linux-gnu/6//include/emmintrin.h:716:27: error: not a function <noident>
...
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Darrell Ball <dlu998@gmail.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/sparse/automake.mk | 1 | ||||
-rw-r--r-- | include/sparse/rte_memcpy.h | 39 |
2 files changed, 40 insertions, 0 deletions
diff --git a/include/sparse/automake.mk b/include/sparse/automake.mk index 0456ee67d..f3282c260 100644 --- a/include/sparse/automake.mk +++ b/include/sparse/automake.mk @@ -10,6 +10,7 @@ noinst_HEADERS += \ include/sparse/pthread.h \ include/sparse/rte_atomic.h \ include/sparse/rte_lcore.h \ + include/sparse/rte_memcpy.h \ include/sparse/rte_vect.h \ include/sparse/sys/socket.h \ include/sparse/sys/wait.h diff --git a/include/sparse/rte_memcpy.h b/include/sparse/rte_memcpy.h new file mode 100644 index 000000000..5cd3f013e --- /dev/null +++ b/include/sparse/rte_memcpy.h @@ -0,0 +1,39 @@ +/* Copyright (c) 2017 Nicira, Inc. + * + * 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 RTE_MEMCPY_H +#define RTE_MEMCPY_H 1 + +#ifndef __CHECKER__ +#error "Use this header only with sparse. It is not a correct implementation." +#endif + +/* Include the same headers as the real rte_memcpy(). */ +#include <stdio.h> +#include <stdint.h> +#include <string.h> +#include <rte_vect.h> + +/* Declare the same functions as the real rte_memcpy.h, without defining them. + * This gives sparse the information it needs without provoking sparse's + * complaints about the implementations. */ +void rte_mov16(uint8_t *, const uint8_t *); +void rte_mov32(uint8_t *, const uint8_t *); +void rte_mov64(uint8_t *, const uint8_t *); +void rte_mov128(uint8_t *, const uint8_t *); +void rte_mov256(uint8_t *, const uint8_t *); +void *rte_memcpy(void *, const void *, size_t); + +#endif /* RTE_MEMCPY_H_WRAPPER */ |