Screensaver
Ivan Voras
ivoras at geri.cc.fer.hr
Tue Feb 24 14:52:39 PST 2004
I'm thinking of writing a console screen saver for fun and learning
about kernel programming, and I have several questions (actually there
are many, I'm just starting here :) ).
- Can VESA_800x600 mode be used in a screen-saver? What are the issues
concering supporting more video modes both for console framebuffer and
screensavers (IIRC, VESA 2.0 modes are all alike - simple linear
framebuffers)?
- I've been studying existing screen savers, and I find that in FreeBSD
5 (which is the only system I intend to support), the sources for the
screen saver modules are located in /usr/src/sys/dev/syscons/ but the
Makefiles are in /usr/src/sys/modules/syscons/. I find this strange. Why
is this so and should I continue to use such layout?
- I have basic and general knowledge about locking, mutextes, and
reading the source of dragon_saver i see this code in dragon_saver()
function:
...
int pl;
...
if (blanked <= 0) {
pl = splhigh();
set_video_mode(adp, VIDEO_MODE);
vid = (u_char *)adp->va_window;
curve = CURVE + 1;
++blanked;
splx(pl);
}
a) why the calls to spl...() functions? What do they do in this case?
b) I read in the manpages that the spl...() functions are deprecated and
I should use mutex(9) functions. How would the above code use mutexes?
- what functions can I call in a kernel module (kld)? Can sysctl(3) be
called? The rest of libc? External libraries? (actually, what are the
things that I can and can't do in a kld?)
Thanks for your time, I'll probably be back with more :)
--
`\|/' .---------------.
,'Y`. _( To think.... )_________
)|._.|( ( Doesn't that involve little )
/(___)\ ""( little lightbulbs over )"
( ) ""( My head ??? )"""""""
`..-.,' """""""""""""
|"|
.--' `--.
More information about the freebsd-hackers
mailing list