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.
Az egyes paraméterek jelentése a következo :
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.