packages feed

sdr-0.1.0.2: c_sources/cpuid.c

#include <stdint.h>

void cpuid(uint32_t op, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d){
    asm volatile(
        "cpuid;"
        : "=a"(*a), "=b"(*b), "=c"(*c), "=d"(*d)
        : "a"(op)
    );
}

void cpuid_extended(uint32_t op, uint32_t sub_op, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d){
    asm volatile(
        "cpuid;"
        : "=a"(*a), "=b"(*b), "=c"(*c), "=d"(*d)
        : "a"(op), "c"(sub_op)
    );
}