summaryrefslogtreecommitdiffstats
path: root/lkm
diff options
context:
space:
mode:
authoryokota <yokota@FreeBSD.org>1997-07-15 14:49:39 +0000
committeryokota <yokota@FreeBSD.org>1997-07-15 14:49:39 +0000
commitb00b16c7e8417280e1baf4fd2100eb0289c081ee (patch)
treeacca8151fd578dce89fac8fd061b008e563e98c9 /lkm
parent56b7c76d791c0e3042285bea5b2d6dd85c0da4ab (diff)
downloadFreeBSD-src-b00b16c7e8417280e1baf4fd2100eb0289c081ee.zip
FreeBSD-src-b00b16c7e8417280e1baf4fd2100eb0289c081ee.tar.gz
Incorporated lots of fixes and suggestions from Bruce and changes to
facilitate the new saver loading/unloading notification interface in syscons. daemon_saver: - M_NOWAIT was wrong, since NULL returns are not handled. Just use M_WAITOK. - use `ostype' instead of hard-coded "FreeBSD". Now there is no more hard-coded string! (But, who will run this screen saver on other OS?!) - put macros and data declarations in a consistent order. - -DDEAMON_ONLY and -DSHOW_HOSTNAME options added in the previous commit are removed. Options of this kind can go stale and no one notices because no one uses them. DEAMON_ONLY is just removed. SHOW_HOSTNAME is made default. snake_saver: - use `ostype' and `osrelease' as in the daemon saver. The string changes slightly - there was a hyphen after "FreeBSD"; now there is a space. (It is consistent with uname -a, like the daemon server already is.) all screen savers: - Use the new add_scrn_saver()/remove_scrn_saver() in syscons.c to declare loading/unloading of a screen saver. Removed reference to `current_saver' and the variable `old_saver' as they are not necessary anymore. - The blank, fade and green screen savers manipulate VGA registers. Module loading should fail for non-VGA cards. - `scrn_blanked' is consistently treated as a number/counter rather than boolean. - Some savers touch `scp->start' and `scp->end' to force entire screen update when stopping themselves. This is unnecessary now because syscons.c takes care of that. - cleared up many unused or unnecessary #include statements. - Removed -DLKM from Makefiles. YOU NEED TO RECOMPILE BOTH SCREEN SAVERS AND KERNEL AS OF THIS CHANGE.
Diffstat (limited to 'lkm')
-rw-r--r--lkm/syscons/blank/Makefile4
-rw-r--r--lkm/syscons/blank/blank_saver.c21
-rw-r--r--lkm/syscons/daemon/Makefile10
-rw-r--r--lkm/syscons/daemon/daemon_saver.c73
-rw-r--r--lkm/syscons/fade/Makefile4
-rw-r--r--lkm/syscons/fade/fade_saver.c21
-rw-r--r--lkm/syscons/green/Makefile4
-rw-r--r--lkm/syscons/green/green_saver.c21
-rw-r--r--lkm/syscons/saver.h14
-rw-r--r--lkm/syscons/snake/Makefile4
-rw-r--r--lkm/syscons/snake/snake_saver.c67
-rw-r--r--lkm/syscons/star/Makefile4
-rw-r--r--lkm/syscons/star/star_saver.c25
13 files changed, 112 insertions, 160 deletions
diff --git a/lkm/syscons/blank/Makefile b/lkm/syscons/blank/Makefile
index 2c94915..d6a411e 100644
--- a/lkm/syscons/blank/Makefile
+++ b/lkm/syscons/blank/Makefile
@@ -1,9 +1,9 @@
-# $Id$
+# $Id: Makefile,v 1.5 1997/02/22 12:49:02 peter Exp $
KMOD= blank_saver_mod
SRCS= blank_saver.c
NOMAN=
-CFLAGS+= -DLKM -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
+CFLAGS+= -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
.include <bsd.kmod.mk>
diff --git a/lkm/syscons/blank/blank_saver.c b/lkm/syscons/blank/blank_saver.c
index d019428..a534ab3 100644
--- a/lkm/syscons/blank/blank_saver.c
+++ b/lkm/syscons/blank/blank_saver.c
@@ -25,23 +25,21 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: blank_saver.c,v 1.8 1997/02/22 12:49:06 peter Exp $
+ * $Id: blank_saver.c,v 1.9 1997/04/06 10:48:10 dufault Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/conf.h>
#include <sys/exec.h>
#include <sys/sysent.h>
#include <sys/lkm.h>
-#include <sys/errno.h>
+
+#include <i386/isa/isa.h>
+
#include <saver.h>
MOD_MISC(blank_saver);
-void (*current_saver)(int blank);
-void (*old_saver)(int blank);
-
static void
blank_saver(int blank)
{
@@ -61,18 +59,15 @@ blank_saver(int blank)
static int
blank_saver_load(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- old_saver = current_saver;
- current_saver = blank_saver;
- return 0;
+ if (!crtc_vga)
+ return EINVAL;
+ return add_scrn_saver(blank_saver);
}
static int
blank_saver_unload(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- current_saver = old_saver;
- return 0;
+ return remove_scrn_saver(blank_saver);
}
int
diff --git a/lkm/syscons/daemon/Makefile b/lkm/syscons/daemon/Makefile
index 3c5a320..25d2cfe 100644
--- a/lkm/syscons/daemon/Makefile
+++ b/lkm/syscons/daemon/Makefile
@@ -1,15 +1,9 @@
-# $Id: Makefile,v 1.1 1997/05/21 14:18:26 yokota Exp $
+# $Id: Makefile,v 1.2 1997/06/24 12:43:18 yokota Exp $
KMOD= daemon_saver_mod
SRCS= daemon_saver.c
NOMAN=
-CFLAGS+= -DLKM -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
-
-# Omits the bouncing message text and shows only the daemon.
-#CFLAGS+= -DDAEMON_ONLY
-
-# Includes the host name in the message text.
-#CFLAGS+= -DSHOW_HOSTNAME
+CFLAGS+= -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
.include <bsd.kmod.mk>
diff --git a/lkm/syscons/daemon/daemon_saver.c b/lkm/syscons/daemon/daemon_saver.c
index 232f416..3325ad3 100644
--- a/lkm/syscons/daemon/daemon_saver.c
+++ b/lkm/syscons/daemon/daemon_saver.c
@@ -25,28 +25,22 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: daemon_saver.c,v 1.4 1997/05/26 01:02:41 yokota Exp $
+ * $Id: daemon_saver.c,v 1.5 1997/06/24 12:43:18 yokota Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/conf.h>
#include <sys/exec.h>
#include <sys/sysent.h>
#include <sys/lkm.h>
-#include <sys/errno.h>
+#include <sys/malloc.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
-#include <sys/malloc.h>
#include <machine/md_var.h>
+#include <i386/include/pc/display.h>
-#include "saver.h"
-
-MOD_MISC(daemon_saver);
-
-void (*current_saver)(int blank);
-void (*old_saver)(int blank);
+#include <saver.h>
#define CONSOLE_VECT(x, y) \
*((u_short*)(Crtat + (y)*cur_console->xsize + (x)))
@@ -54,10 +48,10 @@ void (*old_saver)(int blank);
#define DAEMON_MAX_WIDTH 32
#define DAEMON_MAX_HEIGHT 19
-/*
- * Define this to disable the bouncing text.
- */
-#undef DAEMON_ONLY
+MOD_MISC(daemon_saver);
+
+static char *message;
+static int messagelen;
/* Who is the author of this ASCII pic? */
@@ -152,10 +146,6 @@ draw_daemon(int xpos, int ypos, int dxdir)
}
}
-#ifndef DAEMON_ONLY
-static char *message;
-static int messagelen;
-
static void
draw_string(int xpos, int ypos, char *s, int len)
{
@@ -165,15 +155,12 @@ draw_string(int xpos, int ypos, char *s, int len)
CONSOLE_VECT(xpos + x, ypos) =
scr_map[s[x]]|(FG_LIGHTGREEN|BG_BLACK)<<8;
}
-#endif
static void
daemon_saver(int blank)
{
-#ifndef DAEMON_ONLY
static int txpos = 10, typos = 10;
static int txdir = -1, tydir = -1;
-#endif
static int dxpos = 0, dypos = 0;
static int dxdir = 1, dydir = 1;
static int moved_daemon = 0;
@@ -204,7 +191,6 @@ daemon_saver(int blank)
dxpos += dxdir; dypos += dydir;
}
-#ifndef DAEMON_ONLY
if (txdir > 0) {
if (txpos == scp->xsize - messagelen)
txdir = -1;
@@ -218,18 +204,13 @@ daemon_saver(int blank)
if (typos == 0) tydir = 1;
}
txpos += txdir; typos += tydir;
-#endif
draw_daemon(dxpos, dypos, dxdir);
-#ifndef DAEMON_ONLY
draw_string(txpos, typos, (char *)message, messagelen);
-#endif
} else {
- if (scrn_blanked) {
+ if (scrn_blanked > 0) {
set_border(scp->border);
scrn_blanked = 0;
- scp->start = 0;
- scp->end = scp->xsize * scp->ysize;
}
}
}
@@ -237,36 +218,28 @@ daemon_saver(int blank)
static int
daemon_saver_load(struct lkm_table *lkmtp, int cmd)
{
-#ifdef SHOW_HOSTNAME
- static const char *freebsd = " - FreeBSD ";
-#else
- static const char *freebsd = "FreeBSD ";
-#endif /* SHOW_HOSTNAME */
+ int err;
- (*current_saver)(0);
- old_saver = current_saver;
- current_saver = daemon_saver;
+ messagelen = strlen(hostname) + 3 + strlen(ostype) + 1 +
+ strlen(osrelease);
+ message = malloc(messagelen + 1, M_DEVBUF, M_WAITOK);
+ sprintf(message, "%s - %s %s", hostname, ostype, osrelease);
-#ifdef SHOW_HOSTNAME
- messagelen = strlen(hostname) + strlen(freebsd) + strlen(osrelease);
- message = malloc(messagelen + 1, M_DEVBUF, M_NOWAIT);
- sprintf(message, "%s%s%s", hostname, freebsd, osrelease);
-#else
- messagelen = strlen(freebsd) + strlen(osrelease);
- message = malloc(messagelen + 1, M_DEVBUF, M_NOWAIT);
- sprintf(message, "%s%s", freebsd, osrelease);
-#endif /* SHOW_HOSTNAME */
- return 0;
+ err = add_scrn_saver(daemon_saver);
+ if (err != 0)
+ free(message, M_DEVBUF);
+ return err;
}
static int
daemon_saver_unload(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- current_saver = old_saver;
+ int err;
- free(message, M_DEVBUF);
- return 0;
+ err = remove_scrn_saver(daemon_saver);
+ if (err == 0)
+ free(message, M_DEVBUF);
+ return err;
}
int
diff --git a/lkm/syscons/fade/Makefile b/lkm/syscons/fade/Makefile
index 15d5331..393912d 100644
--- a/lkm/syscons/fade/Makefile
+++ b/lkm/syscons/fade/Makefile
@@ -1,9 +1,9 @@
-# $Id$
+# $Id: Makefile,v 1.5 1997/02/22 12:49:09 peter Exp $
KMOD= fade_saver_mod
SRCS= fade_saver.c
NOMAN=
-CFLAGS+= -DLKM -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
+CFLAGS+= -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
.include <bsd.kmod.mk>
diff --git a/lkm/syscons/fade/fade_saver.c b/lkm/syscons/fade/fade_saver.c
index 4fda21c..d68bba9 100644
--- a/lkm/syscons/fade/fade_saver.c
+++ b/lkm/syscons/fade/fade_saver.c
@@ -25,23 +25,21 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: fade_saver.c,v 1.9 1997/02/22 12:49:10 peter Exp $
+ * $Id: fade_saver.c,v 1.10 1997/04/06 10:48:18 dufault Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/conf.h>
#include <sys/exec.h>
#include <sys/sysent.h>
#include <sys/lkm.h>
-#include <sys/errno.h>
+
+#include <i386/isa/isa.h>
+
#include <saver.h>
MOD_MISC(fade_saver);
-void (*current_saver)(int blank);
-void (*old_saver)(int blank);
-
static void
fade_saver(int blank)
{
@@ -76,18 +74,15 @@ fade_saver(int blank)
static int
fade_saver_load(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- old_saver = current_saver;
- current_saver = fade_saver;
- return 0;
+ if (!crtc_vga)
+ return EINVAL;
+ return add_scrn_saver(fade_saver);
}
static int
fade_saver_unload(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- current_saver = old_saver;
- return 0;
+ return remove_scrn_saver(fade_saver);
}
int
diff --git a/lkm/syscons/green/Makefile b/lkm/syscons/green/Makefile
index e27e00c..2943a06 100644
--- a/lkm/syscons/green/Makefile
+++ b/lkm/syscons/green/Makefile
@@ -1,9 +1,9 @@
-# $Id$
+# $Id: Makefile,v 1.5 1997/02/22 12:49:13 peter Exp $
KMOD= green_saver_mod
SRCS= green_saver.c
NOMAN=
-CFLAGS+= -DLKM -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
+CFLAGS+= -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
.include <bsd.kmod.mk>
diff --git a/lkm/syscons/green/green_saver.c b/lkm/syscons/green/green_saver.c
index c3c9a7e..0454753 100644
--- a/lkm/syscons/green/green_saver.c
+++ b/lkm/syscons/green/green_saver.c
@@ -25,23 +25,21 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: green_saver.c,v 1.8 1997/02/22 12:49:15 peter Exp $
+ * $Id: green_saver.c,v 1.9 1997/04/06 10:49:13 dufault Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/conf.h>
#include <sys/exec.h>
#include <sys/sysent.h>
#include <sys/lkm.h>
-#include <sys/errno.h>
+
+#include <i386/isa/isa.h>
+
#include <saver.h>
MOD_MISC(green_saver);
-void (*current_saver)(int blank);
-void (*old_saver)(int blank);
-
static void
green_saver(int blank)
{
@@ -65,18 +63,15 @@ green_saver(int blank)
static int
green_saver_load(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- old_saver = current_saver;
- current_saver = green_saver;
- return 0;
+ if (!crtc_vga)
+ return EINVAL;
+ return add_scrn_saver(green_saver);
}
static int
green_saver_unload(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- current_saver = old_saver;
- return 0;
+ return remove_scrn_saver(green_saver);
}
int
diff --git a/lkm/syscons/saver.h b/lkm/syscons/saver.h
index 67ac358..7ba6c11 100644
--- a/lkm/syscons/saver.h
+++ b/lkm/syscons/saver.h
@@ -25,18 +25,12 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: saver.h,v 1.7 1997/02/22 12:49:00 peter Exp $
+ * $Id: saver.h,v 1.8 1997/05/21 14:18:00 yokota Exp $
*/
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/tty.h>
-#include <i386/include/pc/display.h>
-#include <i386/include/console.h>
-#include <i386/include/apm_bios.h>
-#include <i386/i386/cons.h>
-#include <i386/isa/isa.h>
-#include <i386/isa/isa_device.h>
+#include <machine/apm_bios.h>
+#include <machine/console.h>
+
#include <i386/isa/syscons.h>
extern scr_stat *cur_console;
diff --git a/lkm/syscons/snake/Makefile b/lkm/syscons/snake/Makefile
index 38417ae..7288f2c 100644
--- a/lkm/syscons/snake/Makefile
+++ b/lkm/syscons/snake/Makefile
@@ -1,9 +1,9 @@
-# $Id$
+# $Id: Makefile,v 1.5 1997/02/22 12:49:18 peter Exp $
KMOD= snake_saver_mod
SRCS= snake_saver.c
NOMAN=
-CFLAGS+= -DLKM -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
+CFLAGS+= -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
.include <bsd.kmod.mk>
diff --git a/lkm/syscons/snake/snake_saver.c b/lkm/syscons/snake/snake_saver.c
index f0580ae..c5a9842 100644
--- a/lkm/syscons/snake/snake_saver.c
+++ b/lkm/syscons/snake/snake_saver.c
@@ -25,47 +25,52 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: snake_saver.c,v 1.13 1997/02/22 12:49:19 peter Exp $
+ * $Id: snake_saver.c,v 1.14 1997/04/06 10:49:22 dufault Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/conf.h>
#include <sys/exec.h>
#include <sys/sysent.h>
#include <sys/lkm.h>
-#include <sys/errno.h>
+#include <sys/malloc.h>
+#include <sys/kernel.h>
+#include <sys/sysctl.h>
#include <machine/md_var.h>
+#include <i386/include/pc/display.h>
-#include "saver.h"
+#include <saver.h>
MOD_MISC(snake_saver);
-void (*current_saver)(int blank);
-void (*old_saver)(int blank);
+static char *message;
+static u_char **messagep;
+static int messagelen;
static void
snake_saver(int blank)
{
- const char saves[] = {"FreeBSD-3.0-CURRENT"};
- static u_char *savs[sizeof(saves)-1];
static int dirx, diry;
int f;
scr_stat *scp = cur_console;
+/* XXX hack for minimal changes. */
+#define save message
+#define savs messagep
+
if (blank) {
- if (!scrn_blanked) {
+ if (scrn_blanked <= 0) {
fillw((FG_LIGHTGREY|BG_BLACK)<<8 | scr_map[0x20],
Crtat, scp->xsize * scp->ysize);
set_border(0);
dirx = (scp->xpos ? 1 : -1);
diry = (scp->ypos ?
scp->xsize : -scp->xsize);
- for (f=0; f< sizeof(saves)-1; f++)
+ for (f=0; f< messagelen; f++)
savs[f] = (u_char *)Crtat + 2 *
(scp->xpos+scp->ypos*scp->xsize);
- *(savs[0]) = scr_map[*saves];
+ *(savs[0]) = scr_map[*save];
f = scp->ysize * scp->xsize + 5;
outb(crtc_addr, 14);
outb(crtc_addr+1, f >> 8);
@@ -76,8 +81,8 @@ snake_saver(int blank)
if (scrn_blanked++ < 4)
return;
scrn_blanked = 1;
- *(savs[sizeof(saves)-2]) = scr_map[0x20];
- for (f=sizeof(saves)-2; f > 0; f--)
+ *(savs[messagelen-1]) = scr_map[0x20];
+ for (f=messagelen-1; f > 0; f--)
savs[f] = savs[f-1];
f = (savs[0] - (u_char *)Crtat) / 2;
if ((f % scp->xsize) == 0 ||
@@ -89,15 +94,13 @@ snake_saver(int blank)
(random() % 20) == 0)
diry = -diry;
savs[0] += 2*dirx + 2*diry;
- for (f=sizeof(saves)-2; f>=0; f--)
- *(savs[f]) = scr_map[saves[f]];
+ for (f=messagelen-1; f>=0; f--)
+ *(savs[f]) = scr_map[save[f]];
}
else {
- if (scrn_blanked) {
+ if (scrn_blanked > 0) {
set_border(scp->border);
scrn_blanked = 0;
- scp->start = 0;
- scp->end = scp->xsize * scp->ysize;
}
}
}
@@ -105,18 +108,32 @@ snake_saver(int blank)
static int
snake_saver_load(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- old_saver = current_saver;
- current_saver = snake_saver;
- return 0;
+ int err;
+
+ messagelen = strlen(ostype) + 1 + strlen(osrelease);
+ message = malloc(messagelen + 1, M_DEVBUF, M_WAITOK);
+ sprintf(message, "%s %s", ostype, osrelease);
+ messagep = malloc(messagelen * sizeof *messagep, M_DEVBUF, M_WAITOK);
+
+ err = add_scrn_saver(snake_saver);
+ if (err != 0) {
+ free(message, M_DEVBUF);
+ free(messagep, M_DEVBUF);
+ }
+ return err;
}
static int
snake_saver_unload(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- current_saver = old_saver;
- return 0;
+ int err;
+
+ err = remove_scrn_saver(snake_saver);
+ if (err == 0) {
+ free(message, M_DEVBUF);
+ free(messagep, M_DEVBUF);
+ }
+ return err;
}
int
diff --git a/lkm/syscons/star/Makefile b/lkm/syscons/star/Makefile
index 39aa7dd..aa3ed6a 100644
--- a/lkm/syscons/star/Makefile
+++ b/lkm/syscons/star/Makefile
@@ -1,9 +1,9 @@
-# $Id$
+# $Id: Makefile,v 1.5 1997/02/22 12:49:21 peter Exp $
KMOD= star_saver_mod
SRCS= star_saver.c
NOMAN=
-CFLAGS+= -DLKM -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
+CFLAGS+= -I${.CURDIR}/.. -I${.CURDIR}/../../../sys
.include <bsd.kmod.mk>
diff --git a/lkm/syscons/star/star_saver.c b/lkm/syscons/star/star_saver.c
index 465c493..d025b16 100644
--- a/lkm/syscons/star/star_saver.c
+++ b/lkm/syscons/star/star_saver.c
@@ -25,26 +25,22 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: star_saver.c,v 1.10 1997/02/22 12:49:22 peter Exp $
+ * $Id: star_saver.c,v 1.11 1997/04/06 11:07:01 dufault Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/conf.h>
#include <sys/exec.h>
#include <sys/sysent.h>
#include <sys/lkm.h>
-#include <sys/errno.h>
#include <machine/md_var.h>
+#include <i386/include/pc/display.h>
-#include "saver.h"
+#include <saver.h>
MOD_MISC(star_saver);
-void (*current_saver)(int blank);
-void (*old_saver)(int blank);
-
#define NUM_STARS 50
/*
@@ -62,7 +58,7 @@ star_saver(int blank)
static u_short stars[NUM_STARS][2];
if (blank) {
- if (!scrn_blanked) {
+ if (scrn_blanked <= 0) {
scrn_blanked = 1;
fillw((FG_LIGHTGREY|BG_BLACK)<<8|scr_map[0x20], Crtat,
scp->xsize * scp->ysize);
@@ -83,11 +79,9 @@ star_saver(int blank)
}
}
else {
- if (scrn_blanked) {
+ if (scrn_blanked > 0) {
set_border(scp->border);
scrn_blanked = 0;
- scp->start = 0;
- scp->end = scp->xsize * scp->ysize;
}
}
}
@@ -95,18 +89,13 @@ star_saver(int blank)
static int
star_saver_load(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- old_saver = current_saver;
- current_saver = star_saver;
- return 0;
+ return add_scrn_saver(star_saver);
}
static int
star_saver_unload(struct lkm_table *lkmtp, int cmd)
{
- (*current_saver)(0);
- current_saver = old_saver;
- return 0;
+ return remove_scrn_saver(star_saver);
}
int
OpenPOWER on IntegriCloud