Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/cons.h
Show First 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | struct consdev_ops { | ||||
cn_getc_t *cn_getc; | cn_getc_t *cn_getc; | ||||
/* kernel getchar interface */ | /* kernel getchar interface */ | ||||
cn_putc_t *cn_putc; | cn_putc_t *cn_putc; | ||||
/* kernel putchar interface */ | /* kernel putchar interface */ | ||||
cn_grab_t *cn_grab; | cn_grab_t *cn_grab; | ||||
/* grab console for exclusive kernel use */ | /* grab console for exclusive kernel use */ | ||||
cn_ungrab_t *cn_ungrab; | cn_ungrab_t *cn_ungrab; | ||||
/* ungrab console */ | /* ungrab console */ | ||||
cn_init_t *cn_resume; | |||||
/* set up console after sleep, optional */ | |||||
}; | }; | ||||
struct consdev { | struct consdev { | ||||
const struct consdev_ops *cn_ops; | const struct consdev_ops *cn_ops; | ||||
/* console device operations. */ | /* console device operations. */ | ||||
short cn_pri; /* pecking order; the higher the better */ | short cn_pri; /* pecking order; the higher the better */ | ||||
void *cn_arg; /* drivers method argument */ | void *cn_arg; /* drivers method argument */ | ||||
int cn_flags; /* capabilities of this console */ | int cn_flags; /* capabilities of this console */ | ||||
Show All 23 Lines | |||||
#define CONSOLE_DEVICE(name, ops, arg) \ | #define CONSOLE_DEVICE(name, ops, arg) \ | ||||
static struct consdev name = { \ | static struct consdev name = { \ | ||||
.cn_ops = &ops, \ | .cn_ops = &ops, \ | ||||
.cn_arg = (arg), \ | .cn_arg = (arg), \ | ||||
}; \ | }; \ | ||||
DATA_SET(cons_set, name) | DATA_SET(cons_set, name) | ||||
#define CONSOLE_DRIVER(name) \ | #define CONSOLE_DRIVER(name, ...) \ | ||||
static const struct consdev_ops name##_consdev_ops = { \ | static const struct consdev_ops name##_consdev_ops = { \ | ||||
/* Mandatory methods. */ \ | |||||
.cn_probe = name##_cnprobe, \ | .cn_probe = name##_cnprobe, \ | ||||
.cn_init = name##_cninit, \ | .cn_init = name##_cninit, \ | ||||
.cn_term = name##_cnterm, \ | .cn_term = name##_cnterm, \ | ||||
.cn_getc = name##_cngetc, \ | .cn_getc = name##_cngetc, \ | ||||
.cn_putc = name##_cnputc, \ | .cn_putc = name##_cnputc, \ | ||||
.cn_grab = name##_cngrab, \ | .cn_grab = name##_cngrab, \ | ||||
.cn_ungrab = name##_cnungrab, \ | .cn_ungrab = name##_cnungrab, \ | ||||
/* Optional fields. */ \ | |||||
__VA_ARGS__ \ | |||||
}; \ | }; \ | ||||
CONSOLE_DEVICE(name##_consdev, name##_consdev_ops, NULL) | CONSOLE_DEVICE(name##_consdev, name##_consdev_ops, NULL) | ||||
/* Other kernel entry points. */ | /* Other kernel entry points. */ | ||||
void cninit(void); | void cninit(void); | ||||
void cninit_finish(void); | void cninit_finish(void); | ||||
int cnadd(struct consdev *); | int cnadd(struct consdev *); | ||||
void cnavailable(struct consdev *, int); | void cnavailable(struct consdev *, int); | ||||
void cnremove(struct consdev *); | void cnremove(struct consdev *); | ||||
void cnselect(struct consdev *); | void cnselect(struct consdev *); | ||||
void cngrab(void); | void cngrab(void); | ||||
void cnungrab(void); | void cnungrab(void); | ||||
void cnresume(void); | |||||
int cncheckc(void); | int cncheckc(void); | ||||
int cngetc(void); | int cngetc(void); | ||||
void cngets(char *, size_t, int); | void cngets(char *, size_t, int); | ||||
void cnputc(int); | void cnputc(int); | ||||
void cnputs(char *); | void cnputs(char *); | ||||
int cnunavailable(void); | int cnunavailable(void); | ||||
void constty_set(struct tty *tp); | void constty_set(struct tty *tp); | ||||
void constty_clear(void); | void constty_clear(void); | ||||
Show All 10 Lines |