summaryrefslogtreecommitdiff
path: root/sys/dev/syscons
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r--sys/dev/syscons/scgfbrndr.c2
-rw-r--r--sys/dev/syscons/scterm.c6
-rw-r--r--sys/dev/syscons/scvgarndr.c2
-rw-r--r--sys/dev/syscons/scvidctl.c6
-rw-r--r--sys/dev/syscons/syscons.h16
5 files changed, 13 insertions, 19 deletions
diff --git a/sys/dev/syscons/scgfbrndr.c b/sys/dev/syscons/scgfbrndr.c
index 85c4418e1036..6767610279b2 100644
--- a/sys/dev/syscons/scgfbrndr.c
+++ b/sys/dev/syscons/scgfbrndr.c
@@ -80,8 +80,6 @@ static vr_draw_border_t vga_grborder;
static void vga_nop(scr_stat *scp, ...);
-static struct linker_set vga_set;
-
static sc_rndr_sw_t txtrndrsw = {
vga_txtclear,
vga_txtborder,
diff --git a/sys/dev/syscons/scterm.c b/sys/dev/syscons/scterm.c
index 99fad9857118..5b9c2f40ce7a 100644
--- a/sys/dev/syscons/scterm.c
+++ b/sys/dev/syscons/scterm.c
@@ -36,6 +36,8 @@
#include <dev/syscons/syscons.h>
#include <dev/syscons/sctermvar.h>
+SET_DECLARE(scterm_set, sc_term_sw_t);
+
/* exported subroutines */
void
@@ -95,8 +97,8 @@ sc_term_sw_t
}
}
} else {
- list = (sc_term_sw_t **)scterm_set.ls_items;
- while ((p = *list++) != NULL) {
+ SET_FOREACH(list, scterm_set) {
+ p = *list;
if ((strcmp(name, p->te_name) == 0)
|| (strcmp(name, "*") == 0)) {
return p;
diff --git a/sys/dev/syscons/scvgarndr.c b/sys/dev/syscons/scvgarndr.c
index 85c4418e1036..6767610279b2 100644
--- a/sys/dev/syscons/scvgarndr.c
+++ b/sys/dev/syscons/scvgarndr.c
@@ -80,8 +80,6 @@ static vr_draw_border_t vga_grborder;
static void vga_nop(scr_stat *scp, ...);
-static struct linker_set vga_set;
-
static sc_rndr_sw_t txtrndrsw = {
vga_txtclear,
vga_txtborder,
diff --git a/sys/dev/syscons/scvidctl.c b/sys/dev/syscons/scvidctl.c
index be9d1e66f30d..72dc7db13045 100644
--- a/sys/dev/syscons/scvidctl.c
+++ b/sys/dev/syscons/scvidctl.c
@@ -40,6 +40,8 @@
#include <dev/fb/fbreg.h>
#include <dev/syscons/syscons.h>
+SET_DECLARE(scrndr_set, const sc_renderer_t);
+
/* for compatibility with previous versions */
/* 3.0-RELEASE used the following structure */
typedef struct old_video_adapter {
@@ -803,8 +805,8 @@ sc_rndr_sw_t
}
}
} else {
- list = (const sc_renderer_t **)scrndr_set.ls_items;
- while ((p = *list++) != NULL) {
+ SET_FOREACH(list, scrndr_set) {
+ p = *list;
if ((strcmp(p->name, name) == 0)
&& (mode == p->mode)) {
scp->status &=
diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h
index d2d605d13038..ef10f4da110f 100644
--- a/sys/dev/syscons/syscons.h
+++ b/sys/dev/syscons/syscons.h
@@ -342,8 +342,6 @@ typedef struct sc_term_sw {
sc_term_input_t *te_input;
} sc_term_sw_t;
-extern struct linker_set scterm_set;
-
#define SCTERM_MODULE(name, sw) \
DATA_SET(scterm_set, sw); \
static int \
@@ -398,8 +396,6 @@ typedef struct sc_renderer {
LIST_ENTRY(sc_renderer) link;
} sc_renderer_t;
-extern struct linker_set scrndr_set;
-
#define RENDERER(name, mode, sw, set) \
static struct sc_renderer scrndr_##name##_##mode## = { \
#name, mode, &sw \
@@ -408,25 +404,23 @@ extern struct linker_set scrndr_set;
DATA_SET(set, scrndr_##name##_##mode##)
#define RENDERER_MODULE(name, set) \
+ SET_DECLARE(set, sc_renderer_t); \
static int \
scrndr_##name##_event(module_t mod, int type, void *data) \
{ \
sc_renderer_t **list; \
- sc_renderer_t *p; \
int error = 0; \
switch (type) { \
case MOD_LOAD: \
- list = (sc_renderer_t **)set.ls_items; \
- while ((p = *list++) != NULL) { \
- error = sc_render_add(p); \
+ SET_FOREACH(list, set) { \
+ error = sc_render_add(*list); \
if (error) \
break; \
} \
break; \
case MOD_UNLOAD: \
- list = (sc_renderer_t **)set.ls_items; \
- while ((p = *list++) != NULL) { \
- error = sc_render_remove(p); \
+ SET_FOREACH(list, set) { \
+ error = sc_render_remove(*list);\
if (error) \
break; \
} \