Skip to content

Commit 841f9e3

Browse files
ellertpablodelara
authored andcommitted
Address type mismatch warnings on aarch64
The PROVIDER_INFO macro used in the aarch64 code declares all functions with the signature: extern void function(void); The actual return type and parameter list of the functions are however different. The declarations provided by the PROVIDER_INFO macro therfore conflicts with the actual declarations of the functions elsewhere in the code, causing compiler warnings. This commit drops the PROVIDER_INFO macro and provides proper function declarations, eiter by including a header file or by providing a forward declaration. This corresponds to how the code for the other architectures are handlinging this issue. Signed-off-by: Mattias Ellert <[email protected]>
1 parent 3e03e91 commit 841f9e3

File tree

7 files changed

+285
-151
lines changed

7 files changed

+285
-151
lines changed

crc/aarch64/crc_aarch64_dispatcher.c

Lines changed: 82 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -27,45 +27,88 @@
2727
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
**********************************************************************/
2929
#include <aarch64_multibinary.h>
30+
#include "crc.h"
31+
#include "crc64.h"
32+
33+
extern uint16_t
34+
crc16_t10dif_pmull(uint16_t, uint8_t *, uint64_t);
35+
36+
extern uint16_t
37+
crc16_t10dif_copy_pmull(uint16_t, uint8_t *, uint8_t *, uint64_t);
38+
39+
extern uint32_t
40+
crc32_ieee_norm_pmull(uint32_t, uint8_t *, uint64_t);
41+
42+
extern unsigned int
43+
crc32_iscsi_crc_ext(unsigned char *, int, unsigned int);
44+
extern unsigned int
45+
crc32_iscsi_3crc_fold(unsigned char *, int, unsigned int);
46+
extern unsigned int
47+
crc32_iscsi_refl_pmull(unsigned char *, int, unsigned int);
48+
49+
extern uint32_t
50+
crc32_gzip_refl_crc_ext(uint32_t, uint8_t *, uint64_t);
51+
extern uint32_t
52+
crc32_gzip_refl_3crc_fold(uint32_t, uint8_t *, uint64_t);
53+
extern uint32_t
54+
crc32_gzip_refl_pmull(uint32_t, uint8_t *, uint64_t);
55+
56+
extern uint64_t
57+
crc64_ecma_refl_pmull(uint64_t, const unsigned char *, uint64_t);
58+
59+
extern uint64_t
60+
crc64_ecma_norm_pmull(uint64_t, const unsigned char *, uint64_t);
61+
62+
extern uint64_t
63+
crc64_iso_refl_pmull(uint64_t, const unsigned char *, uint64_t);
64+
65+
extern uint64_t
66+
crc64_iso_norm_pmull(uint64_t, const unsigned char *, uint64_t);
67+
68+
extern uint64_t
69+
crc64_jones_refl_pmull(uint64_t, const unsigned char *, uint64_t);
70+
71+
extern uint64_t
72+
crc64_jones_norm_pmull(uint64_t, const unsigned char *, uint64_t);
3073

3174
DEFINE_INTERFACE_DISPATCHER(crc16_t10dif)
3275
{
3376
#if defined(__linux__)
3477
unsigned long auxval = getauxval(AT_HWCAP);
3578
if (auxval & HWCAP_PMULL)
36-
return PROVIDER_INFO(crc16_t10dif_pmull);
79+
return crc16_t10dif_pmull;
3780
#elif defined(__APPLE__)
3881
if (sysctlEnabled(SYSCTL_PMULL_KEY))
39-
return PROVIDER_INFO(crc16_t10dif_pmull);
82+
return crc16_t10dif_pmull;
4083
#endif
41-
return PROVIDER_BASIC(crc16_t10dif);
84+
return crc16_t10dif_base;
4285
}
4386

4487
DEFINE_INTERFACE_DISPATCHER(crc16_t10dif_copy)
4588
{
4689
#if defined(__linux__)
4790
unsigned long auxval = getauxval(AT_HWCAP);
4891
if (auxval & HWCAP_PMULL)
49-
return PROVIDER_INFO(crc16_t10dif_copy_pmull);
92+
return crc16_t10dif_copy_pmull;
5093
#elif defined(__APPLE__)
5194
if (sysctlEnabled(SYSCTL_PMULL_KEY))
52-
return PROVIDER_INFO(crc16_t10dif_copy_pmull);
95+
return crc16_t10dif_copy_pmull;
5396
#endif
54-
return PROVIDER_BASIC(crc16_t10dif_copy);
97+
return crc16_t10dif_copy_base;
5598
}
5699

57100
DEFINE_INTERFACE_DISPATCHER(crc32_ieee)
58101
{
59102
#if defined(__linux__)
60103
unsigned long auxval = getauxval(AT_HWCAP);
61104
if (auxval & HWCAP_PMULL) {
62-
return PROVIDER_INFO(crc32_ieee_norm_pmull);
105+
return crc32_ieee_norm_pmull;
63106
}
64107
#elif defined(__APPLE__)
65108
if (sysctlEnabled(SYSCTL_PMULL_KEY))
66-
return PROVIDER_INFO(crc32_ieee_norm_pmull);
109+
return crc32_ieee_norm_pmull;
67110
#endif
68-
return PROVIDER_BASIC(crc32_ieee);
111+
return crc32_ieee_base;
69112
}
70113

71114
DEFINE_INTERFACE_DISPATCHER(crc32_iscsi)
@@ -77,23 +120,23 @@ DEFINE_INTERFACE_DISPATCHER(crc32_iscsi)
77120
case MICRO_ARCH_ID(ARM, NEOVERSE_N1):
78121
case MICRO_ARCH_ID(ARM, CORTEX_A57):
79122
case MICRO_ARCH_ID(ARM, CORTEX_A72):
80-
return PROVIDER_INFO(crc32_iscsi_crc_ext);
123+
return crc32_iscsi_crc_ext;
81124
}
82125
}
83126
if ((HWCAP_CRC32 | HWCAP_PMULL) == (auxval & (HWCAP_CRC32 | HWCAP_PMULL))) {
84-
return PROVIDER_INFO(crc32_iscsi_3crc_fold);
127+
return crc32_iscsi_3crc_fold;
85128
}
86129

87130
if (auxval & HWCAP_PMULL) {
88-
return PROVIDER_INFO(crc32_iscsi_refl_pmull);
131+
return crc32_iscsi_refl_pmull;
89132
}
90133
#elif defined(__APPLE__)
91134
if (sysctlEnabled(SYSCTL_CRC32_KEY))
92-
return PROVIDER_INFO(crc32_iscsi_3crc_fold);
135+
return crc32_iscsi_3crc_fold;
93136
if (sysctlEnabled(SYSCTL_PMULL_KEY))
94-
return PROVIDER_INFO(crc32_iscsi_refl_pmull);
137+
return crc32_iscsi_refl_pmull;
95138
#endif
96-
return PROVIDER_BASIC(crc32_iscsi);
139+
return crc32_iscsi_base;
97140
}
98141

99142
DEFINE_INTERFACE_DISPATCHER(crc32_gzip_refl)
@@ -106,22 +149,22 @@ DEFINE_INTERFACE_DISPATCHER(crc32_gzip_refl)
106149
case MICRO_ARCH_ID(ARM, NEOVERSE_N1):
107150
case MICRO_ARCH_ID(ARM, CORTEX_A57):
108151
case MICRO_ARCH_ID(ARM, CORTEX_A72):
109-
return PROVIDER_INFO(crc32_gzip_refl_crc_ext);
152+
return crc32_gzip_refl_crc_ext;
110153
}
111154
}
112155
if ((HWCAP_CRC32 | HWCAP_PMULL) == (auxval & (HWCAP_CRC32 | HWCAP_PMULL))) {
113-
return PROVIDER_INFO(crc32_gzip_refl_3crc_fold);
156+
return crc32_gzip_refl_3crc_fold;
114157
}
115158

116159
if (auxval & HWCAP_PMULL)
117-
return PROVIDER_INFO(crc32_gzip_refl_pmull);
160+
return crc32_gzip_refl_pmull;
118161
#elif defined(__APPLE__)
119162
if (sysctlEnabled(SYSCTL_CRC32_KEY))
120-
return PROVIDER_INFO(crc32_gzip_refl_3crc_fold);
163+
return crc32_gzip_refl_3crc_fold;
121164
if (sysctlEnabled(SYSCTL_PMULL_KEY))
122-
return PROVIDER_INFO(crc32_gzip_refl_pmull);
165+
return crc32_gzip_refl_pmull;
123166
#endif
124-
return PROVIDER_BASIC(crc32_gzip_refl);
167+
return crc32_gzip_refl_base;
125168
}
126169

127170
DEFINE_INTERFACE_DISPATCHER(crc64_ecma_refl)
@@ -130,75 +173,75 @@ DEFINE_INTERFACE_DISPATCHER(crc64_ecma_refl)
130173
unsigned long auxval = getauxval(AT_HWCAP);
131174

132175
if (auxval & HWCAP_PMULL)
133-
return PROVIDER_INFO(crc64_ecma_refl_pmull);
176+
return crc64_ecma_refl_pmull;
134177
#elif defined(__APPLE__)
135178
if (sysctlEnabled(SYSCTL_PMULL_KEY))
136-
return PROVIDER_INFO(crc64_ecma_refl_pmull);
179+
return crc64_ecma_refl_pmull;
137180
#endif
138-
return PROVIDER_BASIC(crc64_ecma_refl);
181+
return crc64_ecma_refl_base;
139182
}
140183

141184
DEFINE_INTERFACE_DISPATCHER(crc64_ecma_norm)
142185
{
143186
#if defined(__linux__)
144187
unsigned long auxval = getauxval(AT_HWCAP);
145188
if (auxval & HWCAP_PMULL)
146-
return PROVIDER_INFO(crc64_ecma_norm_pmull);
189+
return crc64_ecma_norm_pmull;
147190
#elif defined(__APPLE__)
148191
if (sysctlEnabled(SYSCTL_PMULL_KEY))
149-
return PROVIDER_INFO(crc64_ecma_norm_pmull);
192+
return crc64_ecma_norm_pmull;
150193
#endif
151-
return PROVIDER_BASIC(crc64_ecma_norm);
194+
return crc64_ecma_norm_base;
152195
}
153196

154197
DEFINE_INTERFACE_DISPATCHER(crc64_iso_refl)
155198
{
156199
#if defined(__linux__)
157200
unsigned long auxval = getauxval(AT_HWCAP);
158201
if (auxval & HWCAP_PMULL)
159-
return PROVIDER_INFO(crc64_iso_refl_pmull);
202+
return crc64_iso_refl_pmull;
160203
#elif defined(__APPLE__)
161204
if (sysctlEnabled(SYSCTL_PMULL_KEY))
162-
return PROVIDER_INFO(crc64_iso_refl_pmull);
205+
return crc64_iso_refl_pmull;
163206
#endif
164-
return PROVIDER_BASIC(crc64_iso_refl);
207+
return crc64_iso_refl_base;
165208
}
166209

167210
DEFINE_INTERFACE_DISPATCHER(crc64_iso_norm)
168211
{
169212
#if defined(__linux__)
170213
unsigned long auxval = getauxval(AT_HWCAP);
171214
if (auxval & HWCAP_PMULL)
172-
return PROVIDER_INFO(crc64_iso_norm_pmull);
215+
return crc64_iso_norm_pmull;
173216
#elif defined(__APPLE__)
174217
if (sysctlEnabled(SYSCTL_PMULL_KEY))
175-
return PROVIDER_INFO(crc64_iso_norm_pmull);
218+
return crc64_iso_norm_pmull;
176219
#endif
177-
return PROVIDER_BASIC(crc64_iso_norm);
220+
return crc64_iso_norm_base;
178221
}
179222

180223
DEFINE_INTERFACE_DISPATCHER(crc64_jones_refl)
181224
{
182225
#if defined(__linux__)
183226
unsigned long auxval = getauxval(AT_HWCAP);
184227
if (auxval & HWCAP_PMULL)
185-
return PROVIDER_INFO(crc64_jones_refl_pmull);
228+
return crc64_jones_refl_pmull;
186229
#elif defined(__APPLE__)
187230
if (sysctlEnabled(SYSCTL_PMULL_KEY))
188-
return PROVIDER_INFO(crc64_jones_refl_pmull);
231+
return crc64_jones_refl_pmull;
189232
#endif
190-
return PROVIDER_BASIC(crc64_jones_refl);
233+
return crc64_jones_refl_base;
191234
}
192235

193236
DEFINE_INTERFACE_DISPATCHER(crc64_jones_norm)
194237
{
195238
#if defined(__linux__)
196239
unsigned long auxval = getauxval(AT_HWCAP);
197240
if (auxval & HWCAP_PMULL)
198-
return PROVIDER_INFO(crc64_jones_norm_pmull);
241+
return crc64_jones_norm_pmull;
199242
#elif defined(__APPLE__)
200243
if (sysctlEnabled(SYSCTL_PMULL_KEY))
201-
return PROVIDER_INFO(crc64_jones_norm_pmull);
244+
return crc64_jones_norm_pmull;
202245
#endif
203-
return PROVIDER_BASIC(crc64_jones_norm);
246+
return crc64_jones_norm_base;
204247
}

erasure_code/aarch64/ec_aarch64_dispatcher.c

Lines changed: 53 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,49 @@
2727
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
**********************************************************************/
2929
#include <aarch64_multibinary.h>
30+
#include "erasure_code.h"
31+
#include "gf_vect_mul.h"
32+
33+
extern void
34+
gf_vect_dot_prod_sve(int, int, unsigned char *, unsigned char **, unsigned char *);
35+
extern void
36+
gf_vect_dot_prod_neon(int, int, unsigned char *, unsigned char **, unsigned char *);
37+
38+
extern void
39+
gf_vect_mad_sve(int, int, int, unsigned char *, unsigned char *, unsigned char *);
40+
extern void
41+
gf_vect_mad_neon(int, int, int, unsigned char *, unsigned char *, unsigned char *);
42+
43+
extern void
44+
ec_encode_data_sve(int, int, int, unsigned char *, unsigned char **, unsigned char **coding);
45+
extern void
46+
ec_encode_data_neon(int, int, int, unsigned char *, unsigned char **, unsigned char **);
47+
48+
extern void
49+
ec_encode_data_update_sve(int, int, int, int, unsigned char *, unsigned char *, unsigned char **);
50+
extern void
51+
ec_encode_data_update_neon(int, int, int, int, unsigned char *, unsigned char *, unsigned char **);
52+
53+
extern int
54+
gf_vect_mul_sve(int, unsigned char *, unsigned char *, unsigned char *);
55+
extern int
56+
gf_vect_mul_neon(int, unsigned char *, unsigned char *, unsigned char *);
3057

3158
DEFINE_INTERFACE_DISPATCHER(gf_vect_dot_prod)
3259
{
3360
#if defined(__linux__)
3461
unsigned long auxval = getauxval(AT_HWCAP);
3562

3663
if (auxval & HWCAP_SVE)
37-
return PROVIDER_INFO(gf_vect_dot_prod_sve);
64+
return gf_vect_dot_prod_sve;
3865
if (auxval & HWCAP_ASIMD)
39-
return PROVIDER_INFO(gf_vect_dot_prod_neon);
66+
return gf_vect_dot_prod_neon;
4067
#elif defined(__APPLE__)
4168
if (sysctlEnabled(SYSCTL_SVE_KEY))
42-
return PROVIDER_INFO(gf_vect_dot_prod_sve);
43-
return PROVIDER_INFO(gf_vect_dot_prod_neon);
69+
return gf_vect_dot_prod_sve;
70+
return gf_vect_dot_prod_neon;
4471
#endif
45-
return PROVIDER_BASIC(gf_vect_dot_prod);
72+
return gf_vect_dot_prod_base;
4673
}
4774

4875
DEFINE_INTERFACE_DISPATCHER(gf_vect_mad)
@@ -51,15 +78,15 @@ DEFINE_INTERFACE_DISPATCHER(gf_vect_mad)
5178
unsigned long auxval = getauxval(AT_HWCAP);
5279

5380
if (auxval & HWCAP_SVE)
54-
return PROVIDER_INFO(gf_vect_mad_sve);
81+
return gf_vect_mad_sve;
5582
if (auxval & HWCAP_ASIMD)
56-
return PROVIDER_INFO(gf_vect_mad_neon);
83+
return gf_vect_mad_neon;
5784
#elif defined(__APPLE__)
5885
if (sysctlEnabled(SYSCTL_SVE_KEY))
59-
return PROVIDER_INFO(gf_vect_mad_sve);
60-
return PROVIDER_INFO(gf_vect_mad_neon);
86+
return gf_vect_mad_sve;
87+
return gf_vect_mad_neon;
6188
#endif
62-
return PROVIDER_BASIC(gf_vect_mad);
89+
return gf_vect_mad_base;
6390
}
6491

6592
DEFINE_INTERFACE_DISPATCHER(ec_encode_data)
@@ -68,15 +95,15 @@ DEFINE_INTERFACE_DISPATCHER(ec_encode_data)
6895
unsigned long auxval = getauxval(AT_HWCAP);
6996

7097
if (auxval & HWCAP_SVE)
71-
return PROVIDER_INFO(ec_encode_data_sve);
98+
return ec_encode_data_sve;
7299
if (auxval & HWCAP_ASIMD)
73-
return PROVIDER_INFO(ec_encode_data_neon);
100+
return ec_encode_data_neon;
74101
#elif defined(__APPLE__)
75102
if (sysctlEnabled(SYSCTL_SVE_KEY))
76-
return PROVIDER_INFO(ec_encode_data_sve);
77-
return PROVIDER_INFO(ec_encode_data_neon);
103+
return ec_encode_data_sve;
104+
return ec_encode_data_neon;
78105
#endif
79-
return PROVIDER_BASIC(ec_encode_data);
106+
return ec_encode_data_base;
80107
}
81108

82109
DEFINE_INTERFACE_DISPATCHER(ec_encode_data_update)
@@ -85,15 +112,15 @@ DEFINE_INTERFACE_DISPATCHER(ec_encode_data_update)
85112
unsigned long auxval = getauxval(AT_HWCAP);
86113

87114
if (auxval & HWCAP_SVE)
88-
return PROVIDER_INFO(ec_encode_data_update_sve);
115+
return ec_encode_data_update_sve;
89116
if (auxval & HWCAP_ASIMD)
90-
return PROVIDER_INFO(ec_encode_data_update_neon);
117+
return ec_encode_data_update_neon;
91118
#elif defined(__APPLE__)
92119
if (sysctlEnabled(SYSCTL_SVE_KEY))
93-
return PROVIDER_INFO(ec_encode_data_update_sve);
94-
return PROVIDER_INFO(ec_encode_data_update_neon);
120+
return ec_encode_data_update_sve;
121+
return ec_encode_data_update_neon;
95122
#endif
96-
return PROVIDER_BASIC(ec_encode_data_update);
123+
return ec_encode_data_update_base;
97124
}
98125

99126
DEFINE_INTERFACE_DISPATCHER(gf_vect_mul)
@@ -102,15 +129,15 @@ DEFINE_INTERFACE_DISPATCHER(gf_vect_mul)
102129
unsigned long auxval = getauxval(AT_HWCAP);
103130

104131
if (auxval & HWCAP_SVE)
105-
return PROVIDER_INFO(gf_vect_mul_sve);
132+
return gf_vect_mul_sve;
106133
if (auxval & HWCAP_ASIMD)
107-
return PROVIDER_INFO(gf_vect_mul_neon);
134+
return gf_vect_mul_neon;
108135
#elif defined(__APPLE__)
109136
if (sysctlEnabled(SYSCTL_SVE_KEY))
110-
return PROVIDER_INFO(gf_vect_mul_sve);
111-
return PROVIDER_INFO(gf_vect_mul_neon);
137+
return gf_vect_mul_sve;
138+
return gf_vect_mul_neon;
112139
#endif
113-
return PROVIDER_BASIC(gf_vect_mul);
140+
return gf_vect_mul_base;
114141
}
115142

116-
DEFINE_INTERFACE_DISPATCHER(ec_init_tables) { return PROVIDER_BASIC(ec_init_tables); }
143+
DEFINE_INTERFACE_DISPATCHER(ec_init_tables) { return ec_init_tables_base; }

igzip/aarch64/igzip_isal_adler32_neon.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Macros
5151
.endm
5252

5353
/*
54-
uint32_t adler32_neon(uint32_t adler32, uint8_t * start, uint32_t length);
54+
uint32_t adler32_neon(uint32_t adler32, uint8_t * start, uint64_t length);
5555
*/
5656
/*
5757
Arguments list

0 commit comments

Comments
 (0)