/* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */
/*
* include / linux / serial . h
*
* Copyright ( C ) 1992 by Theodore Ts ' o .
*
* Redistribution of this file is permitted under the terms of the GNU
* Public License ( GPL )
*/
#ifndef _UAPI_LINUX_SERIAL_H
#define _UAPI_LINUX_SERIAL_H
#include <linux/const .h>
#include <linux/types.h>
#include <linux/tty_flags.h>
struct serial_struct {
int type;
int line;
unsigned int port;
int irq;
int flags;
int xmit_fifo_size;
int custom_divisor;
int baud_base;
unsigned short close_delay;
char io_type;
char reserved_char[1 ];
int hub6;
unsigned short closing_wait; /* time to wait before closing */
unsigned short closing_wait2; /* no longer used... */
unsigned char *iomem_base;
unsigned short iomem_reg_shift;
unsigned int port_high;
unsigned long iomap_base; /* cookie passed into ioremap */
};
/*
* For the close wait times , 0 means wait forever for serial port to
* flush its output . 65535 means don ' t wait at all .
*/
#define ASYNC_CLOSING_WAIT_INF 0
#define ASYNC_CLOSING_WAIT_NONE 65535
/*
* These are the supported serial types .
*/
#define PORT_UNKNOWN 0
#define PORT_8250 1
#define PORT_16450 2
#define PORT_16550 3
#define PORT_16550A 4
#define PORT_CIRRUS 5
#define PORT_16650 6
#define PORT_16650V2 7
#define PORT_16750 8
#define PORT_STARTECH 9
#define PORT_16C950 10 /* Oxford Semiconductor */
#define PORT_16654 11
#define PORT_16850 12
#define PORT_RSA 13 /* RSA-DV II/S card */
#define PORT_MAX 13
#define SERIAL_IO_PORT 0
#define SERIAL_IO_HUB6 1
#define SERIAL_IO_MEM 2
#define SERIAL_IO_MEM32 3
#define SERIAL_IO_AU 4
#define SERIAL_IO_TSI 5
#define SERIAL_IO_MEM32BE 6
#define SERIAL_IO_MEM16 7
#define UART_CLEAR_FIFO 0 x01
#define UART_USE_FIFO 0 x02
#define UART_STARTECH 0 x04
#define UART_NATSEMI 0 x08
/*
* Multiport serial configuration structure - - - external structure
*/
struct serial_multiport_struct {
int irq;
int port1;
unsigned char mask1, match1;
int port2;
unsigned char mask2, match2;
int port3;
unsigned char mask3, match3;
int port4;
unsigned char mask4, match4;
int port_monitor;
int reserved[32 ];
};
/*
* Serial input interrupt line counters - - external structure
* Four lines can interrupt : CTS , DSR , RI , DCD
*/
struct serial_icounter_struct {
int cts, dsr, rng, dcd;
int rx, tx;
int frame, overrun, parity, brk;
int buf_overrun;
int reserved[9 ];
};
/**
* struct serial_rs485 - serial interface for controlling RS485 settings .
* @ flags : RS485 feature flags .
* @ delay_rts_before_send : Delay before send ( milliseconds ) .
* @ delay_rts_after_send : Delay after send ( milliseconds ) .
* @ addr_recv : Receive filter for RS485 addressing mode
* ( used only when % SER_RS485_ADDR_RECV is set ) .
* @ addr_dest : Destination address for RS485 addressing mode
* ( used only when % SER_RS485_ADDR_DEST is set ) .
* @ padding0 : Padding ( set to zero ) .
* @ padding1 : Padding ( set to zero ) .
* @ padding : Deprecated , use @ padding0 and @ padding1 instead .
* Do not use with @ addr_recv and @ addr_dest ( due to
* overlap ) .
*
* Serial interface for controlling RS485 settings on chips with suitable
* support . Set with TIOCSRS485 and get with TIOCGRS485 if supported by your
* platform . The set function returns the new state , with any unsupported bits
* reverted appropriately .
*
* The flag bits are :
*
* * % SER_RS485_ENABLED - RS485 enabled .
* * % SER_RS485_RTS_ON_SEND - Logical level for RTS pin when sending .
* * % SER_RS485_RTS_AFTER_SEND - Logical level for RTS pin after sent .
* * % SER_RS485_RX_DURING_TX - Full - duplex RS485 line .
* * % SER_RS485_TERMINATE_BUS - Enable bus termination ( if supported ) .
* * % SER_RS485_ADDRB - Enable RS485 addressing mode .
* * % SER_RS485_ADDR_RECV - Receive address filter ( enables @ addr_recv ) . Requires % SER_RS485_ADDRB .
* * % SER_RS485_ADDR_DEST - Destination address ( enables @ addr_dest ) . Requires % SER_RS485_ADDRB .
* * % SER_RS485_MODE_RS422 - Enable RS422 . Requires % SER_RS485_ENABLED .
*/
struct serial_rs485 {
__u32 flags;
#define SER_RS485_ENABLED _BITUL(0 )
#define SER_RS485_RTS_ON_SEND _BITUL(1 )
#define SER_RS485_RTS_AFTER_SEND _BITUL(2 )
/* Placeholder for bit 3: SER_RS485_RTS_BEFORE_SEND, which isn't used anymore */
#define SER_RS485_RX_DURING_TX _BITUL(4 )
#define SER_RS485_TERMINATE_BUS _BITUL(5 )
#define SER_RS485_ADDRB _BITUL(6 )
#define SER_RS485_ADDR_RECV _BITUL(7 )
#define SER_RS485_ADDR_DEST _BITUL(8 )
#define SER_RS485_MODE_RS422 _BITUL(9 )
__u32 delay_rts_before_send;
__u32 delay_rts_after_send;
/* The fields below are defined by flags */
union {
__u32 padding[5 ]; /* Memory is cheap, new structs are a pain */
struct {
__u8 addr_recv;
__u8 addr_dest;
__u8 padding0[2 ];
__u32 padding1[4 ];
};
};
};
/*
* Serial interface for controlling ISO7816 settings on chips with suitable
* support . Set with TIOCSISO7816 and get with TIOCGISO7816 if supported by
* your platform .
*/
struct serial_iso7816 {
__u32 flags; /* ISO7816 feature flags */
#define SER_ISO7816_ENABLED (1 << 0 )
#define SER_ISO7816_T_PARAM (0 x0f << 4 )
#define SER_ISO7816_T(t) (((t) & 0 x0f) << 4 )
__u32 tg;
__u32 sc_fi;
__u32 sc_di;
__u32 clk;
__u32 reserved[5 ];
};
#endif /* _UAPI_LINUX_SERIAL_H */
Messung V0.5 in Prozent C=90 H=98 G=94
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland