1
0
bifurqué depuis xt-sys/exectos

Implement ArGetStackPointer() routine

Cette révision appartient à :
2023-11-19 00:09:16 +01:00
Parent 83c692bfcb
révision 71d0608643
4 fichiers modifiés avec 50 ajouts et 0 suppressions

Voir le fichier

@@ -67,6 +67,26 @@ ArCpuId(IN OUT PCPUID_REGISTERS Registers)
return TRUE;
}
/**
* Gets the address of the current stack register.
*
* @return This routine returns the current stack pointer.
*
* @since XT 1.0
*/
XTASSEMBLY
XTCDECL
ULONG_PTR
ArGetStackPointer()
{
/* Get current stack pointer */
asm volatile("movq %%rsp, %%rax\n"
"retq\n"
:
:
:);
}
/**
* Halts the central processing unit (CPU).
*

Voir le fichier

@@ -67,6 +67,26 @@ ArCpuId(IN OUT PCPUID_REGISTERS Registers)
return TRUE;
}
/**
* Gets the address of the current stack register.
*
* @return This routine returns the current stack pointer.
*
* @since XT 1.0
*/
XTASSEMBLY
XTCDECL
ULONG_PTR
ArGetStackPointer()
{
/* Get current stack pointer */
asm volatile("mov %%esp, %%eax\n"
"ret\n"
:
:
:);
}
/**
* Halts the central processing unit (CPU).
*

Voir le fichier

@@ -21,6 +21,11 @@ XTCDECL
BOOLEAN
ArCpuId(IN OUT PCPUID_REGISTERS Registers);
XTASSEMBLY
XTCDECL
ULONG_PTR
ArGetStackPointer();
XTCDECL
VOID
ArHalt();

Voir le fichier

@@ -21,6 +21,11 @@ XTCDECL
BOOLEAN
ArCpuId(IN OUT PCPUID_REGISTERS Registers);
XTASSEMBLY
XTCDECL
ULONG_PTR
ArGetStackPointer();
XTCDECL
VOID
ArHalt();