/** Copyright 2004, Axel DΓΆrfler, axeld@pinc-software.de. All rights reserved.* Distributed under the terms of the MIT License.** Copyright 2001, Travis Geiselbrecht. All rights reserved.* Distributed under the terms of the NewOS License.*/#include <asm_defs.h>.text/* void get_current_cpuid(cpuid_info *info, uint32 eaxRegister,uint32 ecxRegister) */FUNCTION(get_current_cpuid):pushl %ebxpushl %edimovl 12(%esp),%edi /* first arg points to the cpuid_info structure */movl 16(%esp),%eax /* second arg sets up eax */movl 20(%esp),%ecx /* third arg sets up ecx */cpuidmovl %eax,0(%edi) /* copy the regs into the cpuid_info structure */movl %ebx,4(%edi)movl %edx,8(%edi)movl %ecx,12(%edi)popl %edipopl %ebxxorl %eax, %eax /* return B_OK */retFUNCTION_END(get_current_cpuid)/* unsigned int get_eflags(void) */FUNCTION(get_eflags):pushflpopl %eaxretFUNCTION_END(get_eflags)/* void set_eflags(unsigned int val) */FUNCTION(set_eflags):pushl 4(%esp)popflretFUNCTION_END(set_eflags)