Bug 14566

Summary: Non-kernel programs have little/no control over VGA/VESA devices
Product: Base System Reporter: Ronald F. Guilmette <rfg>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 3.3-RELEASE   
Hardware: Any   
OS: Any   

Description Ronald F. Guilmette 1999-10-28 01:50:00 UTC
	I typed `man 4 vga' and was surprised to find that there doesn't
	seem to be even so much as single ioctl() control call for manipu-
	lating vga devices(!)

	What the hay!?

	Then I went and started perusing the kernel vga driver sources.  There
	is a LOT of functionality in there for various stuff (e.g. diddling
	cursor, getting its location, setting border color, loading fonts,
	and on and on) and it seems to me that all of that functionality
	should be brought out and made directly available in user land.
	No?

	More specifically, I personally would like to be able to get at
	the VESA functionality.  In particular , I'd like to be able to
	switch my monitor into power-saving VESA "standby" mode.

	Surely, there ought to be an ioctl() for THAT!

	Oh yes, and if this gets fixed, and if all of the functionality is
	ever made available at the user level, PLEASE also create a file
	called /usr/include/vgaio.h and put all of the IOCTL control code
	definitions in it.  Thanks.

	P.S.  I'd really _like_ to go and rag on the Xfree86 people and
	tell them to get their you-know-what together, and that they should
	be supporting the VESA "standby" power-saving mode in their X servers,
	but how can I do that when the FreeBSD kernel doesn't even permit
	user-land processes to get at this bit of hardware functionality?

Fix: 

Jump in your time machine and fast forward to the future, when, I'm
	sure, all of this functionality will be directly available in user
	land. :-)
How-To-Repeat: 
	man 4 vga
Comment 1 Alexey Zelkin freebsd_committer freebsd_triage 1999-10-28 11:51:55 UTC
hi,

On Wed, Oct 27, 1999 at 05:42:20PM -0700, Ronald F. Guilmette wrote:
> 
> >Number:         14566
> >Category:       kern
> >Synopsis:       Non-kernel programs have little/no control over VGA/VESA devices

Please refer to vgl(3) manpage. It describes VGA library.

PS: I'll add refernce to this library to vga(4) soon. Thanks for report!

-- 
/* Alexey Zelkin                       && phantom@cris.net    */
/* Tavric National University          && phantom@crimea.edu  */
/* http://www.ccssu.crimea.ua/~phantom && phantom@FreeBSD.org */
Comment 2 Ronald F. Guilmette 1999-10-28 21:21:27 UTC
In message <19991028145155.B357@scorpion.crimea.ua>, you wrote:

>hi,
>
>On Wed, Oct 27, 1999 at 05:42:20PM -0700, Ronald F. Guilmette wrote:
>> 
>> >Number:         14566
>> >Category:       kern
>> >Synopsis:       Non-kernel programs have little/no control over VGA/VESA de
>vices
>
>Please refer to vgl(3) manpage. It describes VGA library.
>
>PS: I'll add refernce to this library to vga(4) soon. Thanks for report!

Thank you for your response.

Yes, the vgl(3) library contains functions which implement the kinds of
things that I was talking about, and yes, there should be a reference to
vgl(3) _somewhere_ on the vga(4) man page.

However, I think that my bug report is still very valid.

The vgl(3) library is an ordinary, user-level library, properly documented
in Section 3 of the manual.  But the functionality it provides *must* be
implemented in terms of some lower-level (kernel) capabilities.  Those
lower level (direct hardware control) capabilities are obviously available
in user land (or else the vgl(3) library could not have been built) but I
still don't know how _I_, as a programmer, can get at those lower level
capabilities directly.

But I would like to know.  And I think that it makes sense for the kernel
to export these lower level capabilities as ioctl() calls which are then
implemented by the vga driver (not by the higher-level syscons driver).

Well, that's my opinion anyway.

As I mentioned, the code for implementing all of these fun things _does_
seem to be present in the kernel's vga driver.  Now its just a matter of
attaching each one of those internal vga driver functions to some special
(new?) ioctl() code.
Comment 3 Alexey Zelkin freebsd_committer freebsd_triage 1999-12-25 17:32:51 UTC
Responsible Changed
From-To: freebsd-bugs->yokota

Yokota's area 
Comment 4 Mark Linimon freebsd_committer freebsd_triage 2004-08-26 04:25:41 UTC
State Changed
From-To: open->feedback

Is this still a problem with modern versions of FreeBSD? 


Comment 5 Mark Linimon freebsd_committer freebsd_triage 2004-08-26 04:25:41 UTC
Responsible Changed
From-To: yokota->freebsd-bugs

With bugmeister hat on, reassign from inactive committer.
Comment 6 Kris Kennaway freebsd_committer freebsd_triage 2005-07-30 02:10:07 UTC
State Changed
From-To: feedback->closed

Feedback timeout