Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

DECLINLINE ( void   ) 

Gets the content of the IDTR CPU register.

Parameters:
pIdtr Where to store the IDTR contents.
Sets the content of the IDTR CPU register.
Parameters:
pIdtr Where to load the IDTR contents from
Gets the content of the GDTR CPU register.
Parameters:
pGdtr Where to store the GDTR contents.
Set the [RE]FLAGS register.
Parameters:
uFlags The new [RE]FLAGS value.
Performs the cpuid instruction returning all registers.

Parameters:
uOperator CPUID operation (eax).
pvEAX Where to store eax.
pvEBX Where to store ebx.
pvECX Where to store ecx.
pvEDX Where to store edx.
Remarks:
We're using void pointers to ease the use of special bitfield structures and such.
Probes a buffer for read access page by page.

While the function will fault if the buffer is not fully read accessible, the idea is to do this in a safe place like before acquiring locks and such like.

Also, this functions guarantees that an eager compiler is not going to optimize the probing away.

Parameters:
pvBuf Pointer to the buffer.
cbBuf The size of the buffer in bytes. Must be >= 1.
Undoing rtstrFormatTypeWriteLock.

Locks the stuff for reading.

This is just cheap stuff to make sure the caller is doing the right thing.

Undoing rtstrFormatTypeReadLock.

Prints a progress indicator dot.

Parameters:
iCur The current operation. (can be decending too)
cMax The max number of operations (exclusive).

Definition at line 216 of file asm.h.

{
# if RT_INLINE_ASM_GNU_STYLE
    __asm__ __volatile__ ("sidt %0" : "=m" (*pIdtr));
# else
    __asm
    {
#  ifdef RT_ARCH_AMD64
        mov     rax, [pIdtr]
        sidt    [rax]
#  else
        mov     eax, [pIdtr]
        sidt    [eax]
#  endif
    }
# endif
}


Generated by  Doxygen 1.6.0   Back to index