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

dn.h (4642B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2#ifndef _LINUX_DN_H
      3#define _LINUX_DN_H
      4
      5#include <linux/ioctl.h>
      6#include <linux/types.h>
      7#include <linux/if_ether.h>
      8
      9/*
     10
     11	DECnet Data Structures and Constants
     12
     13*/
     14
     15/* 
     16 * DNPROTO_NSP can't be the same as SOL_SOCKET, 
     17 * so increment each by one (compared to ULTRIX)
     18 */
     19#define DNPROTO_NSP     2                       /* NSP protocol number       */
     20#define DNPROTO_ROU     3                       /* Routing protocol number   */
     21#define DNPROTO_NML     4                       /* Net mgt protocol number   */
     22#define DNPROTO_EVL     5                       /* Evl protocol number (usr) */
     23#define DNPROTO_EVR     6                       /* Evl protocol number (evl) */
     24#define DNPROTO_NSPT    7                       /* NSP trace protocol number */
     25
     26
     27#define DN_ADDL		2
     28#define DN_MAXADDL	2 /* ULTRIX headers have 20 here, but pathworks has 2 */
     29#define DN_MAXOPTL	16
     30#define DN_MAXOBJL	16
     31#define DN_MAXACCL	40
     32#define DN_MAXALIASL	128
     33#define DN_MAXNODEL	256
     34#define DNBUFSIZE	65023
     35
     36/* 
     37 * SET/GET Socket options  - must match the DSO_ numbers below
     38 */
     39#define SO_CONDATA      1
     40#define SO_CONACCESS    2
     41#define SO_PROXYUSR     3
     42#define SO_LINKINFO     7
     43
     44#define DSO_CONDATA     1        /* Set/Get connect data                */
     45#define DSO_DISDATA     10       /* Set/Get disconnect data             */
     46#define DSO_CONACCESS   2        /* Set/Get connect access data         */
     47#define DSO_ACCEPTMODE  4        /* Set/Get accept mode                 */
     48#define DSO_CONACCEPT   5        /* Accept deferred connection          */
     49#define DSO_CONREJECT   6        /* Reject deferred connection          */
     50#define DSO_LINKINFO    7        /* Set/Get link information            */
     51#define DSO_STREAM      8        /* Set socket type to stream           */
     52#define DSO_SEQPACKET   9        /* Set socket type to sequenced packet */
     53#define DSO_MAXWINDOW   11       /* Maximum window size allowed         */
     54#define DSO_NODELAY	12       /* Turn off nagle                      */
     55#define DSO_CORK        13       /* Wait for more data!                 */
     56#define DSO_SERVICES	14       /* NSP Services field                  */
     57#define DSO_INFO	15       /* NSP Info field                      */
     58#define DSO_MAX         15       /* Maximum option number               */
     59
     60
     61/* LINK States */
     62#define LL_INACTIVE	0
     63#define LL_CONNECTING	1
     64#define LL_RUNNING	2
     65#define LL_DISCONNECTING 3
     66
     67#define ACC_IMMED 0
     68#define ACC_DEFER 1
     69
     70#define SDF_WILD        1                  /* Wild card object          */
     71#define SDF_PROXY       2                  /* Addr eligible for proxy   */
     72#define SDF_UICPROXY    4                  /* Use uic-based proxy       */
     73
     74/* Structures */
     75
     76
     77struct dn_naddr {
     78	__le16		a_len;
     79	__u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
     80};
     81
     82struct sockaddr_dn {
     83	__u16		sdn_family;
     84	__u8		sdn_flags;
     85	__u8		sdn_objnum;
     86	__le16		sdn_objnamel;
     87	__u8		sdn_objname[DN_MAXOBJL];
     88	struct   dn_naddr	sdn_add;
     89};
     90#define sdn_nodeaddrl   sdn_add.a_len   /* Node address length  */
     91#define sdn_nodeaddr    sdn_add.a_addr  /* Node address         */
     92
     93
     94
     95/*
     96 * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
     97 */
     98struct optdata_dn {
     99        __le16  opt_status;     /* Extended status return */
    100#define opt_sts opt_status
    101        __le16  opt_optl;       /* Length of user data    */
    102        __u8   opt_data[16];   /* User data              */
    103};
    104
    105struct accessdata_dn {
    106	__u8		acc_accl;
    107	__u8		acc_acc[DN_MAXACCL];
    108	__u8 		acc_passl;
    109	__u8		acc_pass[DN_MAXACCL];
    110	__u8 		acc_userl;
    111	__u8		acc_user[DN_MAXACCL];
    112};
    113
    114/*
    115 * DECnet logical link information structure
    116 */
    117struct linkinfo_dn {
    118        __u16  idn_segsize;    /* Segment size for link */
    119        __u8   idn_linkstate;  /* Logical link state    */
    120};
    121
    122/*
    123 * Ethernet address format (for DECnet)
    124 */
    125union etheraddress {
    126        __u8 dne_addr[ETH_ALEN];      /* Full ethernet address */
    127  struct {
    128                __u8 dne_hiord[4];    /* DECnet HIORD prefix   */
    129                __u8 dne_nodeaddr[2]; /* DECnet node address   */
    130  } dne_remote;
    131};
    132
    133
    134/*
    135 * DECnet physical socket address format
    136 */
    137struct dn_addr {
    138        __le16 dna_family;      /* AF_DECnet               */
    139        union etheraddress dna_netaddr; /* DECnet ethernet address */
    140};
    141
    142#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */
    143
    144#define SIOCSNETADDR  _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr)
    145#define SIOCGNETADDR  _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr)
    146#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int)
    147#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int)
    148
    149#endif /* _LINUX_DN_H */