random-util: allow RDRAND to be used in 32-bit x86 binaries
Rename rdrand64 to rdrand, and switch from uint64_t to unsigned long. This produces code that will compile/assemble on both x86-64 and x86-32. This could be useful when running a 32-bit copy of systemd on a modern Intel processor. RDRAND is inherently arch-specific, so relying on the compiler-defined 'long' type seems reasonable.
This commit is contained in:
committed by
Lennart Poettering
parent
e29a9fcb29
commit
33dbab6fde
@@ -35,19 +35,19 @@ static void test_pseudo_random_bytes(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static void test_rdrand64(void) {
|
||||
static void test_rdrand(void) {
|
||||
int r, i;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
uint64_t x = 0;
|
||||
unsigned long x = 0;
|
||||
|
||||
r = rdrand64(&x);
|
||||
r = rdrand(&x);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "RDRAND failed: %m");
|
||||
return;
|
||||
}
|
||||
|
||||
printf("%" PRIx64 "\n", x);
|
||||
printf("%lx\n", x);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
test_pseudo_random_bytes();
|
||||
|
||||
test_rdrand64();
|
||||
test_rdrand();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user