A következokben ismertetett kernel hívások mind a hagyományos, mind pedig a STREAMS device driverek készítésénél jól használhatóak. Ezek használata gyakran szükséges, de ronthatják a program hordozhatóságát. (Például a Release 4.0 UNIX módosított major/minor device number kezelése miatt ha áttérünk erre a UNIX rendszerre, akkor módosítani kell a drivereknek azt a részét, amely a minor() vagy major() rutinokat használják. Ez természetesen nem nagy munka - baj csak akkor van, ha ezt elfelejtjük.)
--- - cmn_err - driver hibaüzenetek kiírása konzolra - ---
#include "sys/cmn_err.h" int cmn_err(severity, format, arguments) char *format; int severity, arguments;Figyelmeztetés: egy hibásan megadott severity érték a rendszert azonnal panic állapotba viszi.
CE_CONT
: Ez kb. egy printf() hívással egyenértéku - nem ír
az üzenet elé semmit.
CE_NOTE
: Kiírja a paraméterekben megadott szöveget, egy
NOTICE:
üzenetet követoen.
CE_WARN
: Kiírja a paraméterekben megadott szöveget, egy
WARNING:
üzenetet követoen.
CE_PANIC
: Kiírja a paraméterekben megadott szöveget, egy
PANIC:
üzenetet követoen, és a rendszert panic állapotba viszi.
(Ekkor a UNIX azonnal leáll, és egy memória dump kerül a swap egységre.)
%b
: Két hexadecimális számjegy (egy byte)
%c
: Karakteres
%d
: Elojeles decimális szám
%o
: Elojel nélküli oktális szám
%s
: String (karakter-pointer)
%x
: Hexadecimális (vezeto nullákkal együtt írja ki)
CE_CONT
,
akkor az üzenet kiírása után a rendszer még egy újsor karaktert is kiír,
míg CE_CONT
severity érték megadása esetén ilyen újsor karakter
nem lesz automatikusan kiírva.
--- - major - megadja a major device numbert - ---
#include "sys/sysmacros.h" int major(dev) dev_t dev;Ez a kernel hívás arra szolgál, hogy az open() rutinnak átadott major és minor device numbert tartalmazó paraméterbol kinyerje a major device numbert. Megvalósítása egyes UNIX rendszrekben makroval történik. A dev paraméterben leggyakrabban az open() rutinnak átadott azonos nevu paraméter lesz megadva. Megjegyzés:Az ISC 3.2 UNIX rendszer alatt a dev_t típus short integer típust jelöl.
--- - minor - megadja a minor device numbert - ---
#include "sys/sysmacros.h" int minor(dev) dev_t dev;A minor() kernel hívás arra szolgál, hogy az open() rutinnak átadott major és minor device numbert tartalmazó paraméterbol kinyerje a minor device numbert. Megvalósítása egyes UNIX rendszrekben makroval történik.