History log of /haiku/src/system/kernel/arch/x86/32/descriptors.cpp (Results 1 – 14 of 14)
Revision Date Author Comments
# 8d63c2f6 29-May-2024 Augustin Cavalier <waddlesplash@gmail.com>

kernel/x86: Fix double fault stack allocation.

This has been broken since January 2014, from a change made during
the scheduler refactor (527da4ca8a4c008b58da456c01a49dcf16a98fbc).

How nobody seems

kernel/x86: Fix double fault stack allocation.

This has been broken since January 2014, from a change made during
the scheduler refactor (527da4ca8a4c008b58da456c01a49dcf16a98fbc).

How nobody seems to have figured this out since then, I have no idea,
especially since the 32-bit initialization routine had the
critical function (x86_get_double_fault_stack) commented out entirely.

Even if it wasn't commented out (and it wasn't for 64-bit), it wouldn't
have worked, because the double-fault stacks were not allocated
until "post-VM", while the TSS is set up during "preboot" (basically
just after kernel entry.)

We now take care of this by allocating the virtual address for
the stacks immediately, and then creating an area for it
in the "post-VM" stage. This means that any double-faults
which occur before the post-VM stage will just triple-fault,
but seeing as all double-faults have been triple-faults
for the past decade, that's probably fine. (In order to get a
double-fault stack that early, we would probably need to
have the bootloader allocate it for us.)

This must be working, because it changes #18692
from a triple-fault (instant reboot) into a double-fault KDL.

show more ...


# 527da4ca 27-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

x86[_64]: Separate bootloader and kernel GDT and IDT logic

From now on bootloader sets up its own minimal valid GDT and IDT. Then
the kernel replaces them with its own tables.


# d0f2d828 17-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

Merge branch 'scheduler'

Conflicts:
build/jam/packages/Haiku
headers/os/kernel/OS.h
headers/os/opengl/GLRenderer.h
headers/private/shared/cpu_type.h
src/add-ons/kernel/drivers/power/acpi_batter

Merge branch 'scheduler'

Conflicts:
build/jam/packages/Haiku
headers/os/kernel/OS.h
headers/os/opengl/GLRenderer.h
headers/private/shared/cpu_type.h
src/add-ons/kernel/drivers/power/acpi_battery/acpi_battery.h
src/bin/sysinfo.cpp
src/bin/top.c
src/system/kernel/arch/x86/arch_system_info.cpp
src/system/kernel/port.cpp

show more ...


# 611376fe 17-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

x86: Let each CPU have its own GDT


# e6ea745e 06-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: Use SMP_MAX_CPUS instead of B_MAX_CPU_COUNT


# 6a164daa 18-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: Track load produced by interrupt handlers


# 25a7b01d 05-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
needed by packagefs.
* BuildFeatures: Add a build feature

Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
package instead.

Conflicts:
.gitignore
build/jam/BuildSetup
build/jam/FileRules
build/jam/FloppyBootImage
build/jam/HaikuImage
build/jam/ImageRules
build/jam/KernelRules
build/jam/NetBootArchive
build/jam/OptionalBuildFeatures
build/jam/OptionalLibPackages
build/jam/OptionalPackageDependencies
build/jam/OptionalPackages
build/scripts/build_haiku_image
configure
data/bin/installoptionalpackage
data/system/boot/Bootscript
headers/os/app/Message.h
headers/os/package/PackageInfo.h
headers/os/package/PackageInfoAttributes.h
headers/os/package/PackageInfoSet.h
headers/os/package/PackageRoster.h
headers/os/package/PackageVersion.h
headers/os/package/hpkg/PackageInfoAttributeValue.h
headers/os/storage/FindDirectory.h
headers/os/storage/Node.h
headers/os/support/StringList.h
headers/private/system/directories.h
src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
src/add-ons/kernel/file_systems/packagefs/Jamfile
src/add-ons/kernel/file_systems/packagefs/Package.cpp
src/add-ons/kernel/file_systems/packagefs/Package.h
src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
src/add-ons/kernel/file_systems/packagefs/PackageNode.h
src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
src/add-ons/kernel/file_systems/packagefs/Version.cpp
src/add-ons/kernel/file_systems/packagefs/Version.h
src/add-ons/kernel/file_systems/packagefs/Volume.cpp
src/add-ons/kernel/file_systems/packagefs/Volume.h
src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
src/apps/deskbar/BarApp.cpp
src/apps/deskbar/BarMenuBar.cpp
src/apps/deskbar/BarMenuBar.h
src/apps/deskbar/BarView.cpp
src/apps/deskbar/BarView.h
src/apps/deskbar/BarWindow.cpp
src/apps/deskbar/BarWindow.h
src/apps/deskbar/DeskbarMenu.cpp
src/apps/deskbar/DeskbarMenu.h
src/apps/deskbar/DeskbarUtils.cpp
src/apps/deskbar/DeskbarUtils.h
src/apps/deskbar/ExpandoMenuBar.cpp
src/apps/deskbar/ExpandoMenuBar.h
src/apps/deskbar/TeamMenu.cpp
src/apps/processcontroller/ProcessController.cpp
src/apps/remotedesktop/RemoteDesktop.cpp
src/bin/bash/config-top.h
src/bin/finddir.c
src/bin/package/Jamfile
src/bin/package/command_add.cpp
src/bin/package/command_create.cpp
src/bin/package/command_list.cpp
src/bin/package_repo/command_list.cpp
src/bin/pkgman/command_refresh.cpp
src/build/libbe/support/Jamfile
src/build/libpackage/Jamfile
src/build/libroot/Jamfile
src/build/libroot/fs.cpp
src/build/libroot/remapped_functions.h
src/kits/locale/MutableLocaleRoster.cpp
src/kits/opengl/GLRendererRoster.cpp
src/kits/package/PackageInfo.cpp
src/kits/package/PackageInfoSet.cpp
src/kits/package/PackageRoster.cpp
src/kits/package/PackageVersion.cpp
src/kits/package/RepositoryCache.cpp
src/kits/package/hpkg/PackageWriterImpl.cpp
src/kits/package/hpkg/ReaderImplBase.cpp
src/kits/package/hpkg/WriterImplBase.cpp
src/kits/print/PrintTransport.cpp
src/kits/print/Printer.cpp
src/kits/screensaver/ScreenSaverRunner.cpp
src/kits/support/StringList.cpp
src/kits/tracker/ContainerWindow.cpp
src/kits/tracker/DeskWindow.cpp
src/kits/tracker/PoseView.cpp
src/libs/print/libprint/Transport.cpp
src/preferences/printers/AddPrinterDialog.cpp
src/preferences/screensaver/ScreenSaverWindow.cpp
src/servers/debug/DebugServer.cpp
src/servers/input/AddOnManager.cpp
src/servers/media_addon/MediaAddonServer.cpp
src/system/boot/Jamfile
src/system/boot/loader/Jamfile
src/system/boot/loader/loader.cpp
src/system/boot/loader/vfs.cpp
src/system/kernel/fs/vfs.cpp
src/system/kernel/fs/vfs_boot.cpp
src/system/libroot/os/find_directory.cpp
src/system/runtime_loader/runtime_loader.cpp
src/tools/package/Jamfile

show more ...


# 28d17018 29-Dec-2012 François Revol <revol@free.fr>

Merge branch 'master' into sam460ex


# d1f280c8 01-Apr-2012 Hamish Morrison <hamishm53@gmail.com>

Add support for pthread_attr_get/setguardsize()

* Added the aforementioned functions.
* create_area_etc() now takes a guard size parameter.
* The thread_info::stack_base/end range now refers to the

Add support for pthread_attr_get/setguardsize()

* Added the aforementioned functions.
* create_area_etc() now takes a guard size parameter.
* The thread_info::stack_base/end range now refers to the usable range
only.

show more ...


# 97b9539c 05-Dec-2012 François Revol <revol@free.fr>

Merge branch 'master' into sam460ex


# 86f0f139 30-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Fix kernel build with KDEBUG_LEVEL 0.


# 77d95e1d 18-Nov-2012 François Revol <revol@free.fr>

Merge branch 'master' into sam460ex

Conflicts:
src/system/boot/platform/u-boot/arch/ppc/Jamfile


# 30afb18c 18-Nov-2012 Alex Smith <alex@alex-smith.me.uk>

Merge branch 'x86_64'


# d2a1be1c 18-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Cleaner separation of 32-/64-bit specific CPU/interrupt code.

Renamed {32,64}/int.cpp to {32,64}/descriptors.cpp, which now contain
functions for GDT and TSS setup that were previously in arch_cpu.c

Cleaner separation of 32-/64-bit specific CPU/interrupt code.

Renamed {32,64}/int.cpp to {32,64}/descriptors.cpp, which now contain
functions for GDT and TSS setup that were previously in arch_cpu.cpp,
as well as the IDT setup code. These get called from the init functions
in arch_cpu.cpp, rather than having a bunch of ifdef'd chunks of code
for 32/64.

show more ...