int rdseed16_step (uint16_t *seed) { unsigned char ok; asm volatile ("rdseed %0; setc %1" : "=r" (*seed), "=qm" (ok)); return (int) ok; } int rdseed32_step (uint32_t *seed) { unsigned char ok; asm volatile ("rdseed %0; setc %1" : "=r" (*seed), "=qm" (ok)); return (int) ok; } int rdseed64_step (uint64_t *seed) { unsigned char ok; asm volatile ("rdseed %0; setc %1" : "=r" (*seed), "=qm" (ok)); return (int) ok; }