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

DECLINLINE ( void   ) 

Gets the content of the IDTR CPU register.

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

uOperator CPUID operation (eax).
pvEAX Where to store eax.
pvEBX Where to store ebx.
pvECX Where to store ecx.
pvEDX Where to store edx.
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.

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.

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

Definition at line 216 of file asm.h.

    __asm__ __volatile__ ("sidt %0" : "=m" (*pIdtr));
# else
#  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