cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

x25.h (3562B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * These are the public elements of the Linux kernel X.25 implementation.
      4 *
      5 * 	History
      6 *	mar/20/00	Daniela Squassoni Disabling/enabling of facilities 
      7 *					  negotiation.
      8 *	apr/02/05	Shaun Pereira Selective sub address matching with
      9 *					call user data
     10 */
     11
     12#ifndef	X25_KERNEL_H
     13#define	X25_KERNEL_H
     14
     15#include <linux/types.h>
     16#include <linux/socket.h>
     17
     18#define	SIOCX25GSUBSCRIP	(SIOCPROTOPRIVATE + 0)
     19#define	SIOCX25SSUBSCRIP	(SIOCPROTOPRIVATE + 1)
     20#define	SIOCX25GFACILITIES	(SIOCPROTOPRIVATE + 2)
     21#define	SIOCX25SFACILITIES	(SIOCPROTOPRIVATE + 3)
     22#define	SIOCX25GCALLUSERDATA	(SIOCPROTOPRIVATE + 4)
     23#define	SIOCX25SCALLUSERDATA	(SIOCPROTOPRIVATE + 5)
     24#define	SIOCX25GCAUSEDIAG	(SIOCPROTOPRIVATE + 6)
     25#define SIOCX25SCUDMATCHLEN	(SIOCPROTOPRIVATE + 7)
     26#define SIOCX25CALLACCPTAPPRV   (SIOCPROTOPRIVATE + 8)
     27#define SIOCX25SENDCALLACCPT    (SIOCPROTOPRIVATE + 9)
     28#define SIOCX25GDTEFACILITIES (SIOCPROTOPRIVATE + 10)
     29#define SIOCX25SDTEFACILITIES (SIOCPROTOPRIVATE + 11)
     30#define SIOCX25SCAUSEDIAG	(SIOCPROTOPRIVATE + 12)
     31
     32/*
     33 *	Values for {get,set}sockopt.
     34 */
     35#define	X25_QBITINCL		1
     36
     37/*
     38 *	X.25 Packet Size values.
     39 */
     40#define	X25_PS16		4
     41#define	X25_PS32		5
     42#define	X25_PS64		6
     43#define	X25_PS128		7
     44#define	X25_PS256		8
     45#define	X25_PS512		9
     46#define	X25_PS1024		10
     47#define	X25_PS2048		11
     48#define	X25_PS4096		12
     49
     50/*
     51 * An X.121 address, it is held as ASCII text, null terminated, up to 15
     52 * digits and a null terminator.
     53 */
     54struct x25_address {
     55	char x25_addr[16];
     56};
     57
     58/*
     59 *	Linux X.25 Address structure, used for bind, and connect mostly.
     60 */
     61struct sockaddr_x25 {
     62	__kernel_sa_family_t sx25_family;	/* Must be AF_X25 */
     63	struct x25_address sx25_addr;		/* X.121 Address */
     64};
     65
     66/*
     67 *	DTE/DCE subscription options.
     68 *
     69 *      As this is missing lots of options, user should expect major
     70 *	changes of this structure in 2.5.x which might break compatibilty.
     71 *      The somewhat ugly dimension 200-sizeof() is needed to maintain
     72 *	backward compatibility.
     73 */
     74struct x25_subscrip_struct {
     75	char device[200-sizeof(unsigned long)];
     76	unsigned long	global_facil_mask;	/* 0 to disable negotiation */
     77	unsigned int	extended;
     78};
     79
     80/* values for above global_facil_mask */
     81
     82#define	X25_MASK_REVERSE	0x01	
     83#define	X25_MASK_THROUGHPUT	0x02
     84#define	X25_MASK_PACKET_SIZE	0x04
     85#define	X25_MASK_WINDOW_SIZE	0x08
     86
     87#define X25_MASK_CALLING_AE 0x10
     88#define X25_MASK_CALLED_AE 0x20
     89
     90
     91/*
     92 *	Routing table control structure.
     93 */
     94struct x25_route_struct {
     95	struct x25_address address;
     96	unsigned int	   sigdigits;
     97	char		   device[200];
     98};
     99
    100/*
    101 *	Facilities structure.
    102 */
    103struct x25_facilities {
    104	unsigned int	winsize_in, winsize_out;
    105	unsigned int	pacsize_in, pacsize_out;
    106	unsigned int	throughput;
    107	unsigned int	reverse;
    108};
    109
    110/*
    111* ITU DTE facilities
    112* Only the called and calling address
    113* extension are currently implemented.
    114* The rest are in place to avoid the struct
    115* changing size if someone needs them later
    116*/
    117
    118struct x25_dte_facilities {
    119	__u16 delay_cumul;
    120	__u16 delay_target;
    121	__u16 delay_max;
    122	__u8 min_throughput;
    123	__u8 expedited;
    124	__u8 calling_len;
    125	__u8 called_len;
    126	__u8 calling_ae[20];
    127	__u8 called_ae[20];
    128};
    129
    130/*
    131 *	Call User Data structure.
    132 */
    133struct x25_calluserdata {
    134	unsigned int	cudlength;
    135	unsigned char	cuddata[128];
    136};
    137
    138/*
    139 *	Call clearing Cause and Diagnostic structure.
    140 */
    141struct x25_causediag {
    142	unsigned char	cause;
    143	unsigned char	diagnostic;
    144};
    145
    146/*
    147 *	Further optional call user data match length selection
    148 */
    149struct x25_subaddr {
    150	unsigned int cudmatchlength;
    151};
    152
    153#endif