mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 21:51:40 +00:00
tty: vt: name, reflow and document enum vc_ctl_state
The enum for states is currently compact and undocumented. Put each definition on a separate line and document them all using kernel-doc. Document the same on the use sites. Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org> Link: https://lore.kernel.org/r/20240202065608.14019-16-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7c1c9c1494
commit
22795b3c47
@ -2091,9 +2091,44 @@ static void restore_cur(struct vc_data *vc)
|
||||
vc->vc_need_wrap = 0;
|
||||
}
|
||||
|
||||
enum { ESnormal, ESesc, ESsquare, ESgetpars, ESfunckey,
|
||||
EShash, ESsetG0, ESsetG1, ESpercent, EScsiignore, ESnonstd,
|
||||
ESpalette, ESosc, ESapc, ESpm, ESdcs };
|
||||
/**
|
||||
* enum vc_ctl_state - control characters state of a vt
|
||||
*
|
||||
* @ESnormal: initial state, no control characters parsed
|
||||
* @ESesc: ESC parsed
|
||||
* @ESsquare: CSI parsed -- modifiers/parameters/ctrl chars expected
|
||||
* @ESgetpars: CSI parsed -- parameters/ctrl chars expected
|
||||
* @ESfunckey: CSI [ parsed
|
||||
* @EShash: ESC # parsed
|
||||
* @ESsetG0: ESC ( parsed
|
||||
* @ESsetG1: ESC ) parsed
|
||||
* @ESpercent: ESC % parsed
|
||||
* @EScsiignore: CSI [0x20-0x3f] parsed
|
||||
* @ESnonstd: OSC parsed
|
||||
* @ESpalette: OSC P parsed
|
||||
* @ESosc: OSC [0-9] parsed
|
||||
* @ESapc: ESC _ parsed
|
||||
* @ESpm: ESC ^ parsed
|
||||
* @ESdcs: ESC P parsed
|
||||
*/
|
||||
enum vc_ctl_state {
|
||||
ESnormal,
|
||||
ESesc,
|
||||
ESsquare,
|
||||
ESgetpars,
|
||||
ESfunckey,
|
||||
EShash,
|
||||
ESsetG0,
|
||||
ESsetG1,
|
||||
ESpercent,
|
||||
EScsiignore,
|
||||
ESnonstd,
|
||||
ESpalette,
|
||||
ESosc,
|
||||
ESapc,
|
||||
ESpm,
|
||||
ESdcs,
|
||||
};
|
||||
|
||||
/* console_lock is held (except via vc_init()) */
|
||||
static void reset_terminal(struct vc_data *vc, int do_clear)
|
||||
@ -2527,10 +2562,10 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
return;
|
||||
|
||||
switch(vc->vc_state) {
|
||||
case ESesc:
|
||||
case ESesc: /* ESC */
|
||||
handle_esc(tty, vc, c);
|
||||
return;
|
||||
case ESnonstd:
|
||||
case ESnonstd: /* ESC ] aka OSC */
|
||||
if (c=='P') { /* palette escape sequence */
|
||||
for (vc->vc_npar = 0; vc->vc_npar < NPAR; vc->vc_npar++)
|
||||
vc->vc_par[vc->vc_npar] = 0;
|
||||
@ -2545,7 +2580,7 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
else
|
||||
vc->vc_state = ESnormal;
|
||||
return;
|
||||
case ESpalette:
|
||||
case ESpalette: /* ESC ] P aka OSC P */
|
||||
if (isxdigit(c)) {
|
||||
vc->vc_par[vc->vc_npar++] = hex_to_bin(c);
|
||||
if (vc->vc_npar == 7) {
|
||||
@ -2562,7 +2597,7 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
} else
|
||||
vc->vc_state = ESnormal;
|
||||
return;
|
||||
case ESsquare:
|
||||
case ESsquare: /* ESC [ aka CSI, parameters or modifiers expected */
|
||||
for (vc->vc_npar = 0; vc->vc_npar < NPAR; vc->vc_npar++)
|
||||
vc->vc_par[vc->vc_npar] = 0;
|
||||
vc->vc_npar = 0;
|
||||
@ -2587,7 +2622,7 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
}
|
||||
vc->vc_priv = EPecma;
|
||||
fallthrough;
|
||||
case ESgetpars:
|
||||
case ESgetpars: /* ESC [ aka CSI, parameters expected */
|
||||
if (c == ';' && vc->vc_npar < NPAR - 1) {
|
||||
vc->vc_npar++;
|
||||
return;
|
||||
@ -2600,6 +2635,9 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
vc->vc_state = EScsiignore;
|
||||
return;
|
||||
}
|
||||
|
||||
/* parameters done, handle the control char @c */
|
||||
|
||||
vc->vc_state = ESnormal;
|
||||
|
||||
switch (vc->vc_priv) {
|
||||
@ -2617,7 +2655,7 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
return;
|
||||
vc->vc_state = ESnormal;
|
||||
return;
|
||||
case ESpercent:
|
||||
case ESpercent: /* ESC % */
|
||||
vc->vc_state = ESnormal;
|
||||
switch (c) {
|
||||
case '@': /* defined in ISO 2022 */
|
||||
@ -2629,10 +2667,10 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
return;
|
||||
}
|
||||
return;
|
||||
case ESfunckey:
|
||||
case ESfunckey: /* ESC [ [ aka CSI [ */
|
||||
vc->vc_state = ESnormal;
|
||||
return;
|
||||
case EShash:
|
||||
case EShash: /* ESC # */
|
||||
vc->vc_state = ESnormal;
|
||||
if (c == '8') {
|
||||
/* DEC screen alignment test. kludge :-) */
|
||||
@ -2644,21 +2682,21 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, u8 c)
|
||||
do_update_region(vc, vc->vc_origin, vc->vc_screenbuf_size / 2);
|
||||
}
|
||||
return;
|
||||
case ESsetG0:
|
||||
case ESsetG0: /* ESC ( */
|
||||
vc_setGx(vc, 0, c);
|
||||
vc->vc_state = ESnormal;
|
||||
return;
|
||||
case ESsetG1:
|
||||
case ESsetG1: /* ESC ) */
|
||||
vc_setGx(vc, 1, c);
|
||||
vc->vc_state = ESnormal;
|
||||
return;
|
||||
case ESapc:
|
||||
case ESapc: /* ESC _ */
|
||||
return;
|
||||
case ESosc:
|
||||
case ESosc: /* ESC ] [0-9] aka OSC [0-9] */
|
||||
return;
|
||||
case ESpm:
|
||||
case ESpm: /* ESC ^ */
|
||||
return;
|
||||
case ESdcs:
|
||||
case ESdcs: /* ESC P */
|
||||
return;
|
||||
default:
|
||||
vc->vc_state = ESnormal;
|
||||
|
Loading…
Reference in New Issue
Block a user