Fix two more dead links

This commit is contained in:
Philipp Oppermann
2019-07-07 11:10:57 +02:00
parent 7294471223
commit 323c0ff611
2 changed files with 2 additions and 2 deletions

View File

@@ -299,7 +299,7 @@ By returning a mutual reference to the entry's options, we allow the caller to o
### Loading the IDT ### Loading the IDT
Now we're able to create new interrupt descriptor tables with registered handler functions. We just need a way to load an IDT, so that the CPU uses it. The x86 architecture uses a special register to store the active IDT and its length. In order to load a new IDT we need to update this register through the [lidt] instruction. Now we're able to create new interrupt descriptor tables with registered handler functions. We just need a way to load an IDT, so that the CPU uses it. The x86 architecture uses a special register to store the active IDT and its length. In order to load a new IDT we need to update this register through the [lidt] instruction.
[lidt]: http://x86.renejeschke.de/html/file_module_x86_id_156.html [lidt]: https://www.felixcloutier.com/x86/lgdt:lidt
The `lidt` instruction expects a pointer to a special data structure, which specifies the start address of the IDT and its length: The `lidt` instruction expects a pointer to a special data structure, which specifies the start address of the IDT and its length:

View File

@@ -190,7 +190,7 @@ When printing a byte, the writer checks if the current line is full. In that cas
The `buffer()` auxiliary method converts the raw pointer in the `buffer` field into a safe mutable buffer reference. The unsafe block is needed because the [as_mut()] method of `Unique` is unsafe. But our `buffer()` method itself isn't marked as unsafe, so it must not introduce any unsafety (e.g. cause segfaults). To guarantee that, it's very important that the `buffer` field always points to a valid `Buffer`. It's like a contract that we must stand to every time we create a `Writer`. To ensure that it's not possible to create an invalid `Writer` from outside of the module, the struct must have at least one private field and public creation functions are not allowed either. The `buffer()` auxiliary method converts the raw pointer in the `buffer` field into a safe mutable buffer reference. The unsafe block is needed because the [as_mut()] method of `Unique` is unsafe. But our `buffer()` method itself isn't marked as unsafe, so it must not introduce any unsafety (e.g. cause segfaults). To guarantee that, it's very important that the `buffer` field always points to a valid `Buffer`. It's like a contract that we must stand to every time we create a `Writer`. To ensure that it's not possible to create an invalid `Writer` from outside of the module, the struct must have at least one private field and public creation functions are not allowed either.
[as_mut()]: https://doc.rust-lang.org/nightly/core/ptr/struct.Unique.html#method.as_mut [as_mut()]: https://doc.rust-lang.org/1.10.0/core/ptr/struct.Unique.html#method.as_mut
### Cannot Move out of Borrowed Content ### Cannot Move out of Borrowed Content
When we try to compile it, we get the following error: When we try to compile it, we get the following error: