#include <stdio.h>
#include <stdlib.h>
typedef struct CpuNode
{
struct CpuNode *next;
int cpuid;
}CpuNode;
typedef struct List
{ struct CpuNode *HeadCpuNode;
struct CpuNode *TailCpuNode;
}List;
inline static void push(struct List *q,CpuNode *n){
struct CpuNode *temp;
temp
= (struct CpuNode
*)malloc(sizeof(struct CpuNode
)); temp->cpuid=n->cpuid;
temp->next=NULL;
if (q->HeadCpuNode==NULL) q->HeadCpuNode=q->TailCpuNode=temp;
else {
q->TailCpuNode->next=temp;
q->TailCpuNode=temp;
}
}
void Discover(struct List *Acqcores){
struct CpuNode temp;
temp.cpuid=1;
push(Acqcores,&temp);
}
int main(int argc, char **argv) {
struct List Acq_cores = {NULL, NULL};
Discover(&Acq_cores);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiAgICB0eXBlZGVmIHN0cnVjdCBDcHVOb2RlCiAgICAgICAgeyAgIAogICAgICAgIHN0cnVjdCBDcHVOb2RlICpuZXh0OwogICAgICAgIGludCBjcHVpZDsKICAgICAgICB9Q3B1Tm9kZTsKCiAgICAgICAgdHlwZWRlZiBzdHJ1Y3QgTGlzdAogICAgICAgIHsgICBzdHJ1Y3QgQ3B1Tm9kZSAqSGVhZENwdU5vZGU7CiAgICAgICAgICAgIHN0cnVjdCBDcHVOb2RlICpUYWlsQ3B1Tm9kZTsKCiAgICAgICAgfUxpc3Q7CgogICAgICAgIGlubGluZSBzdGF0aWMgdm9pZCBwdXNoKHN0cnVjdCBMaXN0ICpxLENwdU5vZGUgKm4pewogICAgICAgIHN0cnVjdCBDcHVOb2RlICp0ZW1wOyAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICB0ZW1wPSAoc3RydWN0IENwdU5vZGUgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBDcHVOb2RlKSk7CiAgICAgICAgIHRlbXAtPmNwdWlkPW4tPmNwdWlkOwogICAgICAgICB0ZW1wLT5uZXh0PU5VTEw7CiAgICAgICAgIGlmIChxLT5IZWFkQ3B1Tm9kZT09TlVMTCkgcS0+SGVhZENwdU5vZGU9cS0+VGFpbENwdU5vZGU9dGVtcDsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgcS0+VGFpbENwdU5vZGUtPm5leHQ9dGVtcDsKICAgICAgICAgICAgICBxLT5UYWlsQ3B1Tm9kZT10ZW1wOwogICAgICAgICAgICB9ICAgCiAgICAgICAgfQoKICAgICAgICB2b2lkIERpc2NvdmVyKHN0cnVjdCBMaXN0ICpBY3Fjb3Jlcyl7CiAgICAgICAgIHN0cnVjdCBDcHVOb2RlIHRlbXA7CiAgICAgICAgIHRlbXAuY3B1aWQ9MTsKICAgICAgICAgcHVzaChBY3Fjb3JlcywmdGVtcCk7CiAgICAgICAgfQoKCgogICAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgICBzdHJ1Y3QgTGlzdCBBY3FfY29yZXMgPSB7TlVMTCwgTlVMTH07CiAgICBEaXNjb3ZlcigmQWNxX2NvcmVzKTsKfQ==