Commit Graph

52 Commits

Author SHA1 Message Date
peter
f10fa038c1 With this commit, I hereby pronounce gensetdefs past its use-by date.
Replace the a.out emulation of 'struct linker_set' with something
a little more flexible.  <sys/linker_set.h> now provides macros for
accessing elements and completely hides the implementation.

The linker_set.h macros have been on the back burner in various
forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()),
John Polstra (ELF clue) and myself (cleaned up API and the conversion
of the rest of the kernel to use it).

The macros declare a strongly typed set.  They return elements with the
type that you declare the set with, rather than a generic void *.

For ELF, we use the magic ld symbols (__start_<setname> and
__stop_<setname>).  Thanks to Richard Henderson <rth@redhat.com> for the
trick about how to force ld to provide them for kld's.

For a.out, we use the old linker_set struct.

NOTE: the item lists are no longer null terminated.  This is why
the code impact is high in certain areas.

The runtime linker has a new method to find the linker set
boundaries depending on which backend format is in use.

linker sets are still module/kld unfriendly and should never be used
for anything that may be modular one day.

Reviewed by:	eivind
2001-06-13 10:58:39 +00:00
phk
c47745e977 Send the remains (such as I have located) of "block major numbers" to
the bit-bucket.
2001-03-26 12:41:29 +00:00
jhb
0a04578be4 #if 0 out a variable only used in #if 0'd code to quiet a warning. 2001-03-06 03:07:58 +00:00
peter
6be84866ea Exterminate the use of PSEUDO_SET() with extreme prejudice. 2001-01-31 07:58:58 +00:00
jhb
42f3c7594b #if 0 out local variables only used in #if 0'd code and remove unused
local variables.
2001-01-23 22:02:08 +00:00
nsouch
729a83c25c Add the VESA S3 linear framebuffer driver. It works on top of VESA by replacing
the video switch by another. Exactly as VESA does on top of VGA.

It adds linear framebuffer to S3 VESA 1.2 cards.

Obtained from:	The original S3 ISA code comes from
                Peter Horton <pdh@colonel-panic.com>
2001-01-05 16:53:10 +00:00
dwmalone
dd75d1d73b Convert more malloc+bzero to malloc+M_ZERO.
Submitted by:	josh@zipperup.org
Submitted by:	Robert Drehmel <robd@gmx.net>
2000-12-08 21:51:06 +00:00
nyan
fc137b0cb6 Disabled EGA/VGA 1bpp/4bpp modes support. This is not real fix, but this comes
back to support 8bpp mode.
2000-10-31 07:58:34 +00:00
phk
94a5006c9a Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
nyan
18652ae093 Removed extra calculation for X position (PC-98 only).
Submitted by:	chi@bd.mbn.or.jp (Chiharu Shibata)
2000-10-28 10:59:21 +00:00
dfr
dd8b44b395 * Completely rewrite the alpha busspace to hide the implementation from
the drivers.
* Remove legacy inx/outx support from chipset and replace with macros
  which call busspace.
* Rework pci config accesses to route through the pcib device instead of
  calling a MD function directly.

With these changes it is possible to cleanly support machines which have
more than one independantly numbered PCI busses. As a bonus, the new
busspace implementation should be measurably faster than the old one.
2000-08-28 21:48:13 +00:00
peter
1293ebd9cc Unused include: #include "fb.h" 2000-06-10 06:41:11 +00:00
gallatin
893df8773a Prevent vidcontrol -i from crashing alphas
Reported by: Christian Weisgerber <naddy@mips.inka.de>
Approved by: yokota@FreeBSD.ORG
2000-05-21 01:16:47 +00:00
phk
13995ed718 Peter and I cross-committed: this file needs sys/kernel.h now. 2000-04-29 18:03:52 +00:00
phk
ce2aa22c93 Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
peter
505cc5752f Stick a module dependency on 'splash' in the saver declaration macro so
that all savers are automatically declared dependent on the splash driver.
2000-04-29 13:33:18 +00:00
nyan
a523934af1 Added PC-98 supports.
Submitted by:	Chiharu Shibata <chi@bd.mbn.or.jp>,
		Tomokazu HARADA <tkhara@osk4.3web.ne.jp> and
		yokota
2000-04-27 13:37:40 +00:00
yokota
db28fdf265 - Added support for 1bpp and 4bpp BMP files.
(PC98 part of the commit will follow.)

Submitted (50%) by: Chiharu Shibata <chi@bd.mbn.or.jp>
2000-04-24 10:09:42 +00:00
peter
54dfcd8d2c Remove #include "vga.h" and #if NVGA > 0 as it's implied by config. 2000-01-29 14:43:47 +00:00
peter
62db142ea5 Remove #include "splash.h" and #if NSPLASH > 0" - it's implied by config. 2000-01-29 14:42:57 +00:00
dfr
f0daab572f Add a workaround to which allows alphas to reserve a port range which
doesn't conflict with the parallel port on my miata (0x3bc..0x3bf).
The right solution will be to reserve two port ranges in vga, 0x3b0..0x3ba
and 0x3c0..0x3ca.

Reviewed by: yokota
2000-01-24 09:22:51 +00:00
yokota
fb454a04bb Rework the algorithm to detect MDA/CGA/EGA/VGA cards, so that
the vga driver won't be fooled to believe it has a CGA card when
in fact it is a VGA card.
2000-01-10 08:49:49 +00:00
yokota
90b982fc42 - Fix typo: CGA40 -> CGA80
- Remove erroneous comments.
2000-01-10 08:47:04 +00:00
peter
15b9bcb121 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 04:46:21 +00:00
yokota
6969be1188 Fix the ioctl CONS_FINDMODE and its underlying subroutine
xxx_query_mode() in the vga and vesa drivers.

- xxx_query_mode() returns 0 (success) and a positive error number.
- Copy mode information on success.
- Remove redundant structure copy.

The bug first found in -STABLE by jmg.
1999-12-07 11:23:58 +00:00
n_hibma
389798d4c2 Check whether init and term are actually given 1999-10-05 20:32:53 +00:00
phk
e9e0512210 Remove five now unused fields from struct cdevsw. They should never
have been there in the first place.  A GENERIC kernel shrinks almost 1k.

Add a slightly different safetybelt under nostop for tty drivers.

Add some missing FreeBSD tags
1999-09-25 18:24:47 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
yokota
06ec3ed8b8 Correct the mode information for the VGA mode X.
- This mode uses four planes rather than one.
- "# of bytes in a scan line" = "# of pixels in the line"/2
1999-08-24 04:26:54 +00:00
phk
663cbe4fc2 Convert DEVFS hooks in (most) drivers to make_dev().
Diskslice/label code not yet handled.

Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)

Add the correct hook for devfs to kern_conf.c

The net result of this excercise is that a lot less files depends on DEVFS,
and devtoname() gets more sensible output in many cases.

A few drivers had minor additional cleanups performed relating to cdevsw
registration.

A few drivers don't register a cdevsw{} anymore, but only use make_dev().
1999-08-23 20:59:21 +00:00
phk
2a99fba980 Remove cmaj and bmaj args from DEV_DRIVER_MODULE. 1999-07-04 14:58:56 +00:00
peter
5d1dacac85 Fix printf int/long format problems on the Alpha. 1999-07-01 20:01:03 +00:00
des
81a1333c81 Use the correct value for banksize so splash_pcx works in LFB modes. 1999-06-28 13:52:29 +00:00
peter
fc28486c8d #if 0 an unused function since it generates warnings.. (I have not deleted
it in case it's part of a bigger plan.)
1999-06-26 10:52:54 +00:00
yokota
4f4eb0cfe5 The second phase of syscons reorganization.
- Split syscons source code into manageable chunks and reorganize
  some of complicated functions.

- Many static variables are moved to the softc structure.

- Added a new key function, PREV.  When this key is pressed, the vty
  immediately before the current vty will become foreground.  Analogue
  to PREV, which is usually assigned to the PrntScrn key.
  PR: kern/10113
  Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>

- Modified the kernel console input function sccngetc() so that it
  handles function keys properly.

- Reorganized the screen update routine.

- VT switching code is reorganized.  It now should be slightly more
  robust than before.

- Added the DEVICE_RESUME function so that syscons no longer hooks the
  APM resume event directly.

- New kernel configuration options: SC_NO_CUTPASTE, SC_NO_FONT_LOADING,
  SC_NO_HISTORY and SC_NO_SYSMOUSE.
  Various parts of syscons can be omitted so that the kernel size is
  reduced.

  SC_PIXEL_MODE
  Made the VESA 800x600 mode an option, rather than a standard part of
  syscons.

  SC_DISABLE_DDBKEY
  Disables the `debug' key combination.

  SC_ALT_MOUSE_IMAGE
  Inverse the character cell at the mouse cursor position in the text
  console, rather than drawing an arrow on the screen.
  Submitted by: Nick Hibma (n_hibma@FreeBSD.ORG)

  SC_DFLT_FONT
  makeoptions "SC_DFLT_FONT=_font_name_"
  Include the named font as the default font of syscons.  16-line,
  14-line and 8-line font data will be compiled in.  This option replaces
  the existing STD8X16FONT option, which loads 16-line font data only.

- The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c.

- The video driver provides a set of ioctl commands to manipulate the
  frame buffer.

- New kernel configuration option: VGA_WIDTH90
  Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60.  These
  modes are mot always supported by the video card.
  PR: i386/7510
  Submitted by: kbyanc@freedomnet.com and alexv@sui.gda.itesm.mx.

- The header file machine/console.h is reorganized; its contents is now
  split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h
  (another new file).  machine/console.h is still maintained for
  compatibility reasons.

- Kernel console selection/installation routines are fixed and
  slightly rebumped so that it should now be possible to switch between
  the interanl kernel console (sc or vt) and a remote kernel console
  (sio) again, as it was in 2.x, 3.0 and 3.1.

- Screen savers and splash screen decoders
  Because of the header file reorganization described above, screen
  savers and splash screen decoders are slightly modified.  After this
  update, /sys/modules/syscons/saver.h is no longer necessary and is
  removed.
1999-06-22 14:14:06 +00:00
yokota
ef7a7a001b Print verbose messages when there is error.
Oked by: des
1999-06-16 14:04:45 +00:00
phk
6a5dc97620 Simplify cdevsw registration.
The cdevsw_add() function now finds the major number(s) in the
struct cdevsw passed to it.  cdevsw_add_generic() is no longer
needed, cdevsw_add() does the same thing.

cdevsw_add() will print an message if the d_maj field looks bogus.

Remove nblkdev and nchrdev variables.  Most places they were used
bogusly.  Instead check a dev_t for validity by seeing if devsw()
or bdevsw() returns NULL.

Move bdevsw() and devsw() functions to kern/kern_conf.c

Bump __FreeBSD_version to 400006

This commit removes:
        72 bogus makedev() calls
        26 bogus SYSINIT functions

if_xe.c bogusly accessed cdevsw[], author/maintainer please fix.

I4b and vinum not changed.  Patches emailed to authors.  LINT
probably broken until they catch up.
1999-05-31 11:29:30 +00:00
phk
7e4a9dced9 This commit should be a extensive NO-OP:
Reformat and initialize correctly all "struct cdevsw".

        Initialize the d_maj and d_bmaj fields.

        The d_reset field was not removed, although it is never used.

I used a program to do most of this, so all the files now use the
same consistent format.  Please keep it that way.

Vinum and i4b not modified, patches emailed to respective authors.
1999-05-30 16:53:49 +00:00
des
2dc3d69d77 PCX loader for pseudo-device splash. 1999-04-12 13:39:11 +00:00
des
791f19da95 Centralize and reorganize a few macros. 1999-04-12 13:34:58 +00:00
yokota
3bb5e2e4c7 Make the splash screen alternate "fade out" and "fade in" action at
regular intervals, when the module is used as a screen saver.

Submitted by: asami
1999-03-29 15:13:53 +00:00
yokota
68a0ddeab6 Don't free() a NULL pointer! 1999-03-09 14:23:14 +00:00
yokota
6b5cb42c67 - Don't assume the line length in the video memory is always the same as
the screen width.
- Store the current video mode information in the `video_adapter' struct.
- The size of the `v_offscreensize' field in the VESA mode information
  block is u_int16, not u_int8.
1999-02-05 11:52:13 +00:00
yokota
1979e9dcc4 Oops, one line was accidentally commented out in the previous commit. 1999-01-26 10:00:02 +00:00
yokota
7e6788facb Add VESA mode support. If the VESA support is compiled into the kernel
or the VESA KLD is preloaded by the boot loader, you can load a 256 color
BMP file larger than 320x200.
1999-01-21 18:29:33 +00:00
yokota
293d6c3fb6 syscons
- Bring down the splash screen when a vty is opened for the first
  time.
- Make sure the splash screen/screen saver is stopped before
  switching vtys.
- Read and save initial values in the BIOS data area early.
  VESA BIOS may change BIOS data values when switching modes.
- Fix missing '&' operator.
- Move ISA specific part of driver initialization to syscons_isa.c.

atkbd
- kbdtables.h is now in /sys/dev/kbd.

all
- Adjust for forthcoming alpha port.  Submitted by: dfr
1999-01-19 11:31:22 +00:00
yokota
26948ef460 Calculate the number of bitmap colors in the correct way.
The bug found by: Kevin Street <street@iname.com>
1999-01-13 09:59:30 +00:00
yokota
96dd1fb161 Clean up warnings: get conditional compilation right so that a local
function won't be defined unless it is actually used.
Requested by: eivind
1999-01-12 10:35:58 +00:00
yokota
4e4010d376 Update the pointer into the bitmap correctly. The previous code
had the pointer off by 4 bytes if the width of the bitmap is
a multiple of four.
1999-01-11 17:32:22 +00:00
yokota
c3b11c5ced Add splash screen module. This version has rather limited
capabilities, but should be a good start... Well, sort of.

It can handle W*ndows 256 color BMP file.  (Other color depth probably
won't work.) The size of the image must be 320x200 or less.  *sigh*
1999-01-11 03:34:56 +00:00