summaryrefslogtreecommitdiff
path: root/sys/dev/syscons/syscons.c
diff options
context:
space:
mode:
authorNik Clayton <nik@FreeBSD.org>2001-05-18 08:52:56 +0000
committerNik Clayton <nik@FreeBSD.org>2001-05-18 08:52:56 +0000
commit96bf38f272780fdf94071cb9580afd2bb7cf9851 (patch)
tree73d3bea6a2fd48315439407d0b2ae1c4b2ffd68b /sys/dev/syscons/syscons.c
parent10fa1684ed3be7246e2704dfa94e1dd53f306d45 (diff)
Notes
Diffstat (limited to 'sys/dev/syscons/syscons.c')
-rw-r--r--sys/dev/syscons/syscons.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index da11de91c9a4..f3305c4eb8e9 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -838,6 +838,24 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
splx(s);
return 0;
+ case CONS_SCRSHOT: /* get a screen shot */
+ {
+ scrshot_t *ptr = (scrshot_t*)data;
+ s = spltty();
+ if (ISGRAPHSC(scp)) {
+ splx(s);
+ return EOPNOTSUPP;
+ }
+ if (scp->xsize != ptr->xsize || scp->ysize != ptr->ysize) {
+ splx(s);
+ return EINVAL;
+ }
+ copyout ((void*)scp->vtb.vtb_buffer, ptr->buf,
+ ptr->xsize * ptr->ysize * sizeof(u_int16_t));
+ splx(s);
+ return 0;
+ }
+
case VT_SETMODE: /* set screen switcher mode */
{
struct vt_mode *mode;