diff options
author | yokota <yokota@FreeBSD.org> | 1997-07-15 14:49:39 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 1997-07-15 14:49:39 +0000 |
commit | b00b16c7e8417280e1baf4fd2100eb0289c081ee (patch) | |
tree | acca8151fd578dce89fac8fd061b008e563e98c9 /sys/dev/syscons/green | |
parent | 56b7c76d791c0e3042285bea5b2d6dd85c0da4ab (diff) | |
download | FreeBSD-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 'sys/dev/syscons/green')
-rw-r--r-- | sys/dev/syscons/green/green_saver.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/sys/dev/syscons/green/green_saver.c b/sys/dev/syscons/green/green_saver.c index c3c9a7e..0454753 100644 --- a/sys/dev/syscons/green/green_saver.c +++ b/sys/dev/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 |