tty: vt: use _IO() to define ioctl numbers
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Wed, 11 Jun 2025 10:02:53 +0000 (12:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jun 2025 11:42:34 +0000 (13:42 +0200)
_IO*() is the proper way of defining ioctl numbers. All these vt numbers
were synthetically built up the same way the _IO() macro does.

So instead of implicit hex numbers, use _IO() properly.

To not change the pre-existing numbers, use only _IO() (and not _IOR()
or _IOW()). The latter would change the numbers indeed.

Objdump of vt_ioctl.o reveals no difference with this patch.

Again, VT_GETCONSIZECSRPOS already uses _IOR(), so everything is paved
for this patch.

Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Cc: Nicolas Pitre <nico@fluxnic.net>
Reviewed-by: Nicolas Pitre <npitre@baylibre.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20250611100319.186924-8-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/uapi/linux/vt.h

index 714483d68c696f13f7c4da8fce3f899350bf2bee..b60fcdfb2746ead1bf383bf24c5b912ba56967eb 100644 (file)
@@ -14,9 +14,9 @@
                /* Note: the ioctl VT_GETSTATE does not work for
                   consoles 16 and higher (since it returns a short) */
 
-/* 0x56 is 'V', to avoid collision with termios and kd */
+/* 'V' to avoid collision with termios and kd */
 
-#define VT_OPENQRY     0x5600  /* find available vt */
+#define VT_OPENQRY             _IO('V', 0x00)  /* find available vt */
 
 struct vt_mode {
        __u8 mode;              /* vt mode */
@@ -25,8 +25,8 @@ struct vt_mode {
        __s16 acqsig;           /* signal to raise on acquisition */
        __s16 frsig;            /* unused (set to 0) */
 };
-#define VT_GETMODE     0x5601  /* get mode of active vt */
-#define VT_SETMODE     0x5602  /* set mode of active vt */
+#define VT_GETMODE             _IO('V', 0x01)  /* get mode of active vt */
+#define VT_SETMODE             _IO('V', 0x02)  /* set mode of active vt */
 #define                VT_AUTO         0x00    /* auto vt switching */
 #define                VT_PROCESS      0x01    /* process controls switching */
 #define                VT_ACKACQ       0x02    /* acknowledge switch */
@@ -36,21 +36,21 @@ struct vt_stat {
        __u16 v_signal; /* signal to send */
        __u16 v_state;          /* vt bitmask */
 };
-#define VT_GETSTATE    0x5603  /* get global vt state info */
-#define VT_SENDSIG     0x5604  /* signal to send to bitmask of vts */
+#define VT_GETSTATE            _IO('V', 0x03)  /* get global vt state info */
+#define VT_SENDSIG             _IO('V', 0x04)  /* signal to send to bitmask of vts */
 
-#define VT_RELDISP     0x5605  /* release display */
+#define VT_RELDISP             _IO('V', 0x05)  /* release display */
 
-#define VT_ACTIVATE    0x5606  /* make vt active */
-#define VT_WAITACTIVE  0x5607  /* wait for vt active */
-#define VT_DISALLOCATE 0x5608  /* free memory associated to vt */
+#define VT_ACTIVATE            _IO('V', 0x06)  /* make vt active */
+#define VT_WAITACTIVE          _IO('V', 0x07)  /* wait for vt active */
+#define VT_DISALLOCATE         _IO('V', 0x08)  /* free memory associated to vt */
 
 struct vt_sizes {
        __u16 v_rows;           /* number of rows */
        __u16 v_cols;           /* number of columns */
        __u16 v_scrollsize;     /* number of lines of scrollback */
 };
-#define VT_RESIZE      0x5609  /* set kernel's idea of screensize */
+#define VT_RESIZE              _IO('V', 0x09)  /* set kernel's idea of screensize */
 
 struct vt_consize {
        __u16 v_rows;   /* number of rows */
@@ -60,10 +60,10 @@ struct vt_consize {
        __u16 v_vcol;   /* number of pixel columns on screen */
        __u16 v_ccol;   /* number of pixel columns per character */
 };
-#define VT_RESIZEX      0x560A  /* set kernel's idea of screensize + more */
-#define VT_LOCKSWITCH   0x560B  /* disallow vt switching */
-#define VT_UNLOCKSWITCH 0x560C  /* allow vt switching */
-#define VT_GETHIFONTMASK 0x560D  /* return hi font mask */
+#define VT_RESIZEX             _IO('V', 0x0A)  /* set kernel's idea of screensize + more */
+#define VT_LOCKSWITCH          _IO('V', 0x0B)  /* disallow vt switching */
+#define VT_UNLOCKSWITCH                _IO('V', 0x0C)  /* allow vt switching */
+#define VT_GETHIFONTMASK       _IO('V', 0x0D)  /* return hi font mask */
 
 struct vt_event {
        __u32 event;
@@ -77,14 +77,14 @@ struct vt_event {
        __u32 pad[4];           /* Padding for expansion */
 };
 
-#define VT_WAITEVENT   0x560E  /* Wait for an event */
+#define VT_WAITEVENT           _IO('V', 0x0E)  /* Wait for an event */
 
 struct vt_setactivate {
        __u32 console;
        struct vt_mode mode;
 };
 
-#define VT_SETACTIVATE 0x560F  /* Activate and set the mode of a console */
+#define VT_SETACTIVATE         _IO('V', 0x0F)  /* Activate and set the mode of a console */
 
 /* get console size and cursor position */
 struct vt_consizecsrpos {