]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
plat/common/x86: Add `auxsp` getter/setter for `struct lcpu`
authorSergiu Moga <sergiu@unikraft.io>
Wed, 1 Nov 2023 06:53:56 +0000 (08:53 +0200)
committerSergiu Moga <sergiu@unikraft.io>
Sat, 25 Nov 2023 11:07:01 +0000 (13:07 +0200)
Implement basic getter/setter methods for the `auxsp` field that
exists in `struct lcpu`.

Signed-off-by: Sergiu Moga <sergiu@unikraft.io>
plat/common/x86/lcpu.c

index 32d4d53ad594db830f6cfe1ca19602838b6ee90b..97d280a16625b4327267696ffb911636ddc253cd 100644 (file)
@@ -132,6 +132,20 @@ struct lcpu *lcpu_get_current(void)
        return lcpu_get(ukplat_lcpu_idx());
 }
 
+__uptr ukplat_lcpu_get_auxsp(void)
+{
+       UK_ASSERT(IS_LCPU_PTR(lcpu_get_current()));
+
+       return rdgsbase64(LCPU_AUXSP_OFFSET);
+}
+
+void ukplat_lcpu_set_auxsp(__uptr auxsp)
+{
+       UK_ASSERT(IS_LCPU_PTR(lcpu_get_current()));
+
+       wrgsbase64(auxsp, LCPU_AUXSP_OFFSET);
+}
+
 #if CONFIG_HAVE_SMP
 IMPORT_START16_SYM(gdt32_ptr, 2, MOV);
 IMPORT_START16_SYM(gdt32, 4, DATA);