table of contents
| subpage_prot(2) | System Calls Manual | subpage_prot(2) |
NAVN¶
subpage_prot - definer en undersidebeskyttelse for et adresseinterval
BIBLIOTEK¶
Standard C library (libc, -lc)
SYNOPSIS¶
#include <sys/syscall.h> /* Definition af SYS_* konstanter */ #include <unistd.h>
int syscall(SYS_subpage_prot, unsigned long addr, unsigned long størrelse,
uint32_t *map);
Bemærk: glibc tilbyder ikke et omslag for subpage_prot(), hvilket medfører brug af syscall(2).
BESKRIVELSE¶
Det PowerPC-specifikke systemkald subpage_prot() tilbyder en facilitet til at kontrollere adgangsrettighederne på individuelle 4 kB-undersider på systemer konfigureret med en sidestørrelse på 64 kB.
Beskyttelseskortet bruges på hukommelsessider i regionen startende på addr og fortsættende for størrelse byte. Begge disse argumenter skal være justeret til en 64-kB grænse.
Beskyttelseskortet er angivet i mellemlageret peget på af map. Kortet har 2 bit per 4 kB-underside; hvert 32-bit ord angiver beskyttelsen af 16 4 kB-undersider i en 64 kB-side (så antallet af 32-bit ord peget på af map bør svare til antallet af 64-kB-sider angivet af størrelse). Hvert 2-bit felt i beskyttelseskortet er enten 0 for at tillade enhver adgang, 1 for at forhindre skrivninger, eller 2 eller 3 for at forhindre alle adgange.
RETURVÆRDI¶
Ved succes returnerer subpage_prot() 0. Ellers returneres en af fejlkoderne angivet nedenfor.
FEJL¶
- EFAULT
- Mellemlageret refereret til af map kan ikke tilgås.
- EINVAL
- Argumenterne addr eller størrelse er ukorrekte. Begge disse argumenter skal være justeret til et multiplum af systemsidestørrelsen, og de må ikke referere til en region uden for adresserummet for processen eller til en region, der består af store sider.
- ENOMEM
- Ikke nok hukommelse.
STANDARDER¶
Linux.
HISTORIK¶
Linux 2.6.25 (PowerPC).
Systemkaldet tilbydes kun hvis kernen er konfigureret med CONFIG_PPC_64K_PAGES.
NOTER¶
Normale sidebeskyttelser (på 64-kB-sideniveauet) gælder også; beskyttelsesmekanismen for undersider er en yderligere begrænsning, så placering af 0 i et 2-bit felt vil ikke tillade skrivninger til en side, der ellers er skrivebeskyttet.
Rationale¶
Dette systemkald tilbydes for at assistere med at skrive emulatorere, der fungerer via 64-kB-sider på PowerPC-systemer. Når der emuleres systemer såsom x86, der bruger en mindre sidestørrelse, så kan emulatoren ikke længere bruge memory-management unit (MMU) og normale systemkald til at kontrollere sidebeskyttelser. (Emulatoren kan emulere MMU'en ved at tjekke og muligvis ændre adressen for hver hukommelsesadgang i programmer, men det er langsomt). Ideen er at emulatoren leverer en tabel med beskyttelsesmasker, der bruges på et angivet interval af virtuelle adresser. Disse masker anvendes på niveauet hvor udstyrets page-table entries (PTE'er) indsættes i udstyrets sidetabel baseret på Linux-PTE'erne, så Linux-PTE'erne påvirkes ikke. Implicit i dette er at regionerne for adresserummet, der er beskyttet skiftes til at bruge 4-kB-udstyrssider frem for 64-kB-udstyrssider (på maskiner med 64-kB-sideunderstøttelse for udstyr).
SE OGSŶ
Documentation/admin-guide/mm/hugetlbpage.rst i Linuxkernekildetræet
OVERSÆTTELSE¶
Oversættere af denne manual til dansk Joe Dalton <joedalton2@yahoo.dk>
Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.
Hvis du støder på fejl i oversættelsen af denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.
| 8. februar 2026 | Linux man-pages 6.17 |