Passa al contenuto principale

8. Encoding of Terminal Modes (Codifica delle modalità del terminale)

8. Encoding of Terminal Modes (Codifica delle modalità del terminale)​

Tutte le encoded terminal modes (così come passate in una richiesta pty) sono codificate in un flusso di byte. Si intende che la codifica sia portabile tra ambienti diversi. Il flusso è costituito da coppie opcode-argomento in cui l'opcode è un valore di un byte. Gli opcode da 1 a 159 hanno un singolo argomento uint32. Gli opcode da 160 a 255 non sono ancora definiti e causano l'interruzione dell'analisi (devono essere usati solo dopo eventuali altri dati). Il flusso è terminato dall'opcode TTY_OP_END (0x00).

Il client DOVREBBE inserire nel flusso tutte le modalità che conosce, e il server PUÒ ignorare le modalità che non conosce. Questo consente un certo grado di indipendenza dalla macchina, almeno tra i sistemi che utilizzano un'interfaccia tty di tipo POSIX. Il protocollo può supportare anche altri sistemi, ma il client potrebbe dover inserire valori ragionevoli per una serie di parametri affinché il pty del server venga impostato su una modalità ragionevole (il server lascia tutti i bit di modalità non specificati ai loro valori predefiniti e solo alcune combinazioni hanno senso).

La denominazione dei valori opcode segue per lo più i flag di modalità del terminale POSIX. Sono stati definiti i seguenti valori opcode. Si noti che i valori riportati di seguito sono in formato decimale per leggibilità, ma sono in realtà valori di un byte.

opcodemnemonicdescription
0TTY_OP_ENDIndica la fine delle opzioni.
1VINTRCarattere di interruzione; 255 se assente. Analogamente per gli altri caratteri. Non tutti questi caratteri sono supportati su tutti i sistemi.
2VQUITIl carattere di uscita (invia il segnale SIGQUIT sui sistemi POSIX).
3VERASECancella il carattere a sinistra del cursore.
4VKILLElimina la riga di input corrente.
5VEOFCarattere di fine file (invia EOF dal terminale).
6VEOLCarattere di fine riga in aggiunta al ritorno a capo e/o all'avanamento di riga.
7VEOL2Carattere di fine riga aggiuntivo.
8VSTARTContinua l'output in pausa (normalmente control-Q).
9VSTOPSospende l'output (normalmente control-S).
10VSUSPSospende il programma corrente.
11VDSUSPUn altro carattere di sospensione.
12VREPRINTRistampa la riga di input corrente.
13VWERASECancella una parola a sinistra del cursore.
14VLNEXTInserisce il carattere successivo digitato letteralmente, anche se si tratta di un carattere speciale.
15VFLUSHCarattere per svuotare l'output.
16VSWTCHPassa a un diverso livello di shell.
17VSTATUSStampa la riga di stato di sistema (carico, comando, pid, ecc.).
18VDISCARDAttiva/disattiva lo svuotamento dell'output del terminale.
30IGNPARIl flag ignora parità. Il parametro DOVREBBE essere 0 se questo flag è FALSE e 1 se è TRUE.
31PARMRKContrassegna errori di parità e di framing.
32INPCKAbilita il controllo degli errori di parità.
33ISTRIPRimuove l'ottavo bit dai caratteri.
34INLCRMappa NL in CR in input.
35IGNCRIgnora CR in input.
36ICRNLMappa CR in NL in input.
37IUCLCConverte i caratteri maiuscoli in minuscoli.
38IXONAbilita il controllo di flusso in output.
39IXANYQualsiasi carattere riavvia dopo lo stop.
40IXOFFAbilita il controllo di flusso in input.
41IMAXBELSuona il campanello alla coda di input piena.
50ISIGAbilita i segnali INTR, QUIT, [D]SUSP.
51ICANONCanonizza le righe di input.
52XCASEAbilita l'input e l'output di caratteri maiuscoli facendo precedere le loro controparti minuscole da "\".
53ECHOAbilita l'eco.
54ECHOECancella i caratteri visivamente.
55ECHOKIl carattere kill scarta la riga corrente.
56ECHONLEmette echo di NL anche se ECHO è disattivato.
57NOFLSHNon svuotare dopo l'interruzione.
58TOSTOPImpedisce ai job in background di emettere output.
59IEXTENAbilita le estensioni.
60ECHOCTLEmette echo dei caratteri di controllo come ^(Char).
61ECHOKECancellazione visiva per il kill di riga.
62PENDINDigitare nuovamente l'input in sospeso.
70OPOSTAbilita l'elaborazione in output.
71OLCUCConverte minuscole in maiuscole.
72ONLCRMappa NL in CR-NL.
73OCRNLTraduce il ritorno a capo in nuova riga (output).
74ONOCRTraduce nuova riga in ritorno a capo-nuova riga (output).
75ONLRETLa nuova riga esegue un ritorno a capo (output).
90CS7Modalità a 7 bit.
91CS8Modalità a 8 bit.
92PARENBAbilitazione parità.
93PARODDParità dispari, altrimenti pari.
128TTY_OP_ISPEEDSpecifica la velocità in baud in input in bit al secondo.
129TTY_OP_OSPEEDSpecifica la velocità in baud in output in bit al secondo.