{"translation":"https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/en/?format=json","source":["Each entry in the `IDT` is 8 bytes long.  Besides the segment/offset information, they also describe the segment type, privilege level, and whether the segment is present in memory or not.  The construction is such that interrupt vectors from `0` to `0xf` (exceptions) are handled by function `intx00`; vector `0x10` (also an exception) is handled by `intx10`; hardware interrupts, which are later configured to start at interrupt vector `0x20` all the way to interrupt vector `0x2f`, are handled by function `intx20`.  Lastly, interrupt vector `0x30`, which is used for system calls, is handled by `intx30`, and vectors `0x31` and `0x32` are handled by `intx31`.  It must be noted that only descriptors for interrupt vectors `0x30`, `0x31` and `0x32` are given privilege level 3, the same privilege level as the [.filename]#boot2# client, which means the client can execute a software-generated interrupt to this vectors through the `int` instruction without failing (this is the way [.filename]#boot2# use the services provided by the BTX server).  Also, note that _only_ software-generated interrupts are protected from code executing in lesser privilege levels.  Hardware-generated interrupts and processor-generated exceptions are _always_ handled adequately, regardless of the actual privileges involved."],"previous_source":"","target":["Each entry in the `IDT` is 8 bytes long.  Besides the segment/offset information, they also describe the segment type, privilege level, and whether the segment is present in memory or not.  The construction is such that interrupt vectors from `0` to `0xf` (exceptions) are handled by function `intx00`; vector `0x10` (also an exception) is handled by `intx10`; hardware interrupts, which are later configured to start at interrupt vector `0x20` all the way to interrupt vector `0x2f`, are handled by function `intx20`.  Lastly, interrupt vector `0x30`, which is used for system calls, is handled by `intx30`, and vectors `0x31` and `0x32` are handled by `intx31`.  It must be noted that only descriptors for interrupt vectors `0x30`, `0x31` and `0x32` are given privilege level 3, the same privilege level as the [.filename]#boot2# client, which means the client can execute a software-generated interrupt to this vectors through the `int` instruction without failing (this is the way [.filename]#boot2# use the services provided by the BTX server).  Also, note that _only_ software-generated interrupts are protected from code executing in lesser privilege levels.  Hardware-generated interrupts and processor-generated exceptions are _always_ handled adequately, regardless of the actual privileges involved."],"id_hash":1987533812313852570,"content_hash":1987533812313852570,"location":"documentation/content/en/books/arch-handbook/boot/_index.adoc:1029","context":"","note":"type: Plain text","flags":"","labels":[],"state":100,"fuzzy":false,"translated":true,"approved":false,"position":183,"has_suggestion":false,"has_comment":false,"has_failing_check":false,"num_words":192,"source_unit":"https://translate-dev.freebsd.org/api/units/1436615/?format=json","priority":100,"id":1436615,"web_url":"https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/en/?checksum=9b952378ce0b8a9a","url":"https://translate-dev.freebsd.org/api/units/1436615/?format=json","explanation":"","extra_flags":"","pending":false,"timestamp":"2022-07-08T02:59:00.764879Z"}