Module Name: src
Committed By: mlelstv
Date: Sun Oct 20 09:25:00 UTC 2024
Modified Files:
src/sys/dev/wscons: wsconsio.h wsdisplay_vcons.c
Log Message:
Add WSDISPLAYIO_GFONT ioctl to query the installed font name.
To generate a diff of this commit:
cvs rdiff -u -r1.128 -r1.129 src/sys/dev/wscons/wsconsio.h
cvs rdiff -u -r1.68 -r1.69 src/sys/dev/wscons/wsdisplay_vcons.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/wscons/wsconsio.h
diff -u src/sys/dev/wscons/wsconsio.h:1.128 src/sys/dev/wscons/wsconsio.h:1.129
--- src/sys/dev/wscons/wsconsio.h:1.128 Sun Oct 20 08:44:22 2024
+++ src/sys/dev/wscons/wsconsio.h Sun Oct 20 09:25:00 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: wsconsio.h,v 1.128 2024/10/20 08:44:22 mlelstv Exp $ */
+/* $NetBSD: wsconsio.h,v 1.129 2024/10/20 09:25:00 mlelstv Exp $ */
/*
* Copyright (c) 1996, 1997 Christopher G. Demetriou. All rights reserved.
@@ -730,4 +730,20 @@ struct wsdisplayio_fontinfo {
#define WSDISPLAYIO_LISTFONTS _IOWR('W', 107, struct wsdisplayio_fontinfo)
+struct wsdisplay_getfont {
+ char *gf_name;
+ uint32_t gf_size;
+ uint32_t gf_actual;
+};
+
+/*
+ * return currently active font
+ *
+ * gf_name points to a buffer of gf_size bytes, the result may be truncated
+ * and NUL-terminated.
+ * gf_actual is set to the size of full name.
+ */
+
+#define WSDISPLAYIO_GFONT _IOWR('W', 108, struct wsdisplay_getfont)
+
#endif /* _DEV_WSCONS_WSCONSIO_H_ */
Index: src/sys/dev/wscons/wsdisplay_vcons.c
diff -u src/sys/dev/wscons/wsdisplay_vcons.c:1.68 src/sys/dev/wscons/wsdisplay_vcons.c:1.69
--- src/sys/dev/wscons/wsdisplay_vcons.c:1.68 Fri Feb 9 22:08:37 2024
+++ src/sys/dev/wscons/wsdisplay_vcons.c Sun Oct 20 09:25:00 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: wsdisplay_vcons.c,v 1.68 2024/02/09 22:08:37 andvar Exp $ */
+/* $NetBSD: wsdisplay_vcons.c,v 1.69 2024/10/20 09:25:00 mlelstv Exp $ */
/*-
* Copyright (c) 2005, 2006 Michael Lorenz
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsdisplay_vcons.c,v 1.68 2024/02/09 22:08:37 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsdisplay_vcons.c,v 1.69 2024/10/20 09:25:00 mlelstv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -841,6 +841,20 @@ vcons_ioctl(void *v, void *vs, u_long cm
}
break;
+ case WSDISPLAYIO_GFONT: {
+ struct wsdisplay_getfont *gf = data;
+ size_t actual;
+ struct wsdisplay_font *font;
+ const char *fontname;
+
+ font = ((struct vcons_screen *)vs)->scr_ri.ri_font;
+ fontname = font && font->name ? font->name : "";
+ error = copyoutstr(fontname, gf->gf_name, gf->gf_size, &actual);
+ if (!error)
+ gf->gf_actual = actual;
+ }
+ break;
+
default:
if (vdp->ioctl != NULL)
error = (*vdp->ioctl)(v, vs, cmd, data, flag, l);