diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2017-03-06 02:15:28 +0100 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2017-03-06 02:15:28 +0100 |
commit | 28301499381cb541eec4eb99f61e3d1a193c5a2d (patch) | |
tree | ec59121d1b3a83d66d9105c3e0b828f49a56dc10 | |
parent | 9113c143c377876cc750e007e99f76c844bc95e8 (diff) | |
download | garmos-28301499381cb541eec4eb99f61e3d1a193c5a2d.tar.gz garmos-28301499381cb541eec4eb99f61e3d1a193c5a2d.tar.bz2 |
gdt: expose code segment offset in GDT
gdt_get_code_offset() returns the offset of the code segment in the GDT
relative to the address of the GDT itself. This offset is for example
required when setting the interrupt desriptor table.
-rw-r--r-- | core/gdt.c | 5 | ||||
-rw-r--r-- | include/garmos/gdt.h | 1 |
2 files changed, 6 insertions, 0 deletions
@@ -74,3 +74,8 @@ void gdt_init(void) gdtset(gdtp); } + +uint16_t gdt_get_code_offset(void) +{ + return GDT_SGMT_CODE * sizeof(*gdt); +} diff --git a/include/garmos/gdt.h b/include/garmos/gdt.h index b49f42d..d353437 100644 --- a/include/garmos/gdt.h +++ b/include/garmos/gdt.h @@ -18,5 +18,6 @@ #include <garmos/types.h> void gdt_init(void); +uint16_t gdt_get_code_offset(void); #endif |