summaryrefslogtreecommitdiff
path: root/share/man/man4/man4.hp300/grf.4
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
commitd6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch)
treeece253b876159b39c620e62b6c9b1174642e070e /share/man/man4/man4.hp300/grf.4
initial import of NetBSD tree
Diffstat (limited to 'share/man/man4/man4.hp300/grf.4')
-rw-r--r--share/man/man4/man4.hp300/grf.4214
1 files changed, 214 insertions, 0 deletions
diff --git a/share/man/man4/man4.hp300/grf.4 b/share/man/man4/man4.hp300/grf.4
new file mode 100644
index 00000000000..733de76ac6b
--- /dev/null
+++ b/share/man/man4/man4.hp300/grf.4
@@ -0,0 +1,214 @@
+.\" Copyright (c) 1990, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to Berkeley by
+.\" the Systems Programming Group of the University of Utah Computer
+.\" Science Department.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" from: @(#)grf.4 5.3 (Berkeley) 7/31/91
+.\" $Id: grf.4,v 1.1 1995/10/18 08:44:28 deraadt Exp $
+.\"
+.Dd July 31, 1991
+.Dt GRF 4 hp300
+.Os
+.Sh NAME
+.Nm grf
+.Nd
+.Tn HP
+graphics frame buffer device interface
+.Sh DESCRIPTION
+This is a generic description of the frame buffer device interface.
+The devices to which this applies are the 98544, 98545 and 98547
+Topcat display cards (also known as
+.Tn HP300H
+devices),
+the 98548, 98549 and 98550
+Catseye display cards,
+the 98700
+Gatorbox graphics box,
+the 98720
+Renaissance graphics box,
+and the 98730
+DaVinci graphics box.
+.Pp
+Use of the devices can be effectively approached from two directions.
+The first is through
+.Tn HP-UX
+.Em Starbase
+routines, the second is by direct control in the
+.Bx
+environment.
+In order to use the Starbase libraries,
+code must be compiled in an
+.Tn HP-UX
+environment, either by doing so on an
+.Tn HP-UX
+machine and transferring the binaries to the
+.Bx
+machine, or by compilation
+with the use of the
+.Xr hpux 1
+command.
+Applications using Starbase libraries have been run successfully
+on
+.Bx
+machines using both of these compilation techniques.
+.Pp
+Direct compilation,
+such as that used for the X Window System servers, has also been successful.
+Examples of some frame buffer operations can be found in
+the device dependent X Window system sources, for example the
+.Pa /usr/src/new/X/libhp.fb
+directory. These files contain examples of device dependent color map
+initialization, frame buffer operations, bit moving routines etc.
+.Pp
+The basic programming of the
+.Nm grf Ns ?
+devices involves opening the device
+file, mapping the control registers and frame buffer addresses into user
+space, and then manipulating the device as the application requires.
+The address mapping is controlled by an
+.Xr ioctl 2
+call to map the device into user space, and an unmap call when finished.
+The ioctls supported by
+.Bx
+are:
+.Bl -tag -width indent
+.It Dv GRFIOCGINFO
+Get Graphics Info
+.Pp
+Get info about device, setting the entries in the
+.Em grfinfo
+structure, as defined in <hpdev/grfioctl.h>:
+.Bd -literal
+struct grfinfo {
+ int gd_id; /* HPUX identifier */
+ caddr_t gd_regaddr; /* control registers physaddr */
+ int gd_regsize; /* control registers size */
+ caddr_t gd_fbaddr; /* frame buffer physaddr */
+ int gd_fbsize; /* frame buffer size */
+ short gd_colors; /* number of colors */
+ short gd_planes; /* number of planes */
+/* new stuff */
+ int gd_fbwidth; /* frame buffer width */
+ int gd_fbheight; /* frame buffer height */
+ int gd_dwidth; /* displayed part width */
+ int gd_dheight; /* displayed part height */
+ int gd_pad[6]; /* for future expansion */
+};
+.Ed
+.It Dv GRFIOCON
+Graphics On
+.Pp
+Turn graphics on by enabling
+.Tn CRT
+output. The screen will come on, displaying
+whatever is in the frame buffer, using whatever colormap is in place.
+.It Dv GRFIOCOFF
+Graphics Off
+.Pp
+Turn graphics off by disabling output to the
+.Tn CRT .
+The frame buffer contents
+are not affected.
+.It Dv GRFIOCMAP
+Map Device to user space
+.Pp
+Map in control registers and framebuffer space. Once the device file is
+mapped, the frame buffer structure is accessible.
+.It Dv GRFIOCUNMAP
+Unmap Device
+.Pp
+Unmap control registers and framebuffer space.
+.El
+.Pp
+For further information about the use of ioctl see the man page.
+.Sh EXAMPLE
+This short code fragment is an example of opening some graphics device and
+mapping in the control and frame buffer space:
+.Bd -literal
+#define GRF_DEV <some_graphics_device> /* /dev/grfN */
+{
+ struct fbstruct *regs; /* fbstruct = gboxfb, rboxfb, etc. */
+ u_char *Addr, frame_buffer;
+ struct grfinfo gi;
+ int disp_fd;
+
+ disp_fd = open(GRF_DEV,1);
+ if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
+ (void) ioctl (disp_fd, GRFIOCON, 0);
+
+ Addr = (u_char *) 0;
+ if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
+ (void) ioctl (disp_fd, GRFIOCOFF, 0);
+ return -1;
+ }
+ regs = (fbstruct *) Addr; /* Control Registers */
+ frame_buffer = (u_char *) Addr + gi.gd_regsize; /* Frame buffer mem */
+}
+.Ed
+.Sh FILES
+.Bl -tag -width /dev/*crt*? -compact
+.It Pa /dev/grf?
+.Bx
+interface special files
+.It Pa /dev/*crt*
+.Tn HP-UX
+.Em starbase
+interface special files
+.El
+.Sh DIAGNOSTICS
+None under
+.Bx .
+.Tn HP-UX
+The
+.Tn CE.utilities/Crtadjust
+programs must be used for each specific device.
+.Sh ERRORS
+.Bl -tag -width [EINVAL]
+.It Bq Er ENODEV
+no such device.
+.It Bq Er EBUSY
+Another process has the device open.
+.It Bq Er EINVAL
+Invalid ioctl specification.
+.El
+.Sh SEE ALSO
+.Xr ioctl 2 ,
+.Xr dv 4 ,
+.Xr gb 4 ,
+.Xr rb 4 ,
+.Xr tc 4 ,
+.Xr hil 4
+.Sh HISTORY
+The
+.Nm
+driver
+.Ud