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

qeth.h (3119B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * ioctl definitions for qeth driver
      4 *
      5 * Copyright IBM Corp. 2004
      6 *
      7 * Author(s):	Thomas Spatzier <tspat@de.ibm.com>
      8 *
      9 */
     10#ifndef __ASM_S390_QETH_IOCTL_H__
     11#define __ASM_S390_QETH_IOCTL_H__
     12#include <linux/types.h>
     13#include <linux/ioctl.h>
     14
     15#define SIOC_QETH_ARP_SET_NO_ENTRIES    (SIOCDEVPRIVATE)
     16#define SIOC_QETH_ARP_QUERY_INFO        (SIOCDEVPRIVATE + 1)
     17#define SIOC_QETH_ARP_ADD_ENTRY         (SIOCDEVPRIVATE + 2)
     18#define SIOC_QETH_ARP_REMOVE_ENTRY      (SIOCDEVPRIVATE + 3)
     19#define SIOC_QETH_ARP_FLUSH_CACHE       (SIOCDEVPRIVATE + 4)
     20#define SIOC_QETH_ADP_SET_SNMP_CONTROL  (SIOCDEVPRIVATE + 5)
     21#define SIOC_QETH_GET_CARD_TYPE         (SIOCDEVPRIVATE + 6)
     22#define SIOC_QETH_QUERY_OAT		(SIOCDEVPRIVATE + 7)
     23
     24struct qeth_arp_cache_entry {
     25	__u8  macaddr[6];
     26	__u8  reserved1[2];
     27	__u8  ipaddr[16]; /* for both  IPv4 and IPv6 */
     28	__u8  reserved2[32];
     29} __attribute__ ((packed));
     30
     31enum qeth_arp_ipaddrtype {
     32	QETHARP_IP_ADDR_V4 = 1,
     33	QETHARP_IP_ADDR_V6 = 2,
     34};
     35struct qeth_arp_entrytype {
     36	__u8 mac;
     37	__u8 ip;
     38} __attribute__((packed));
     39
     40#define QETH_QARP_MEDIASPECIFIC_BYTES 32
     41#define QETH_QARP_MACADDRTYPE_BYTES 1
     42struct qeth_arp_qi_entry7 {
     43	__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
     44	struct qeth_arp_entrytype type;
     45	__u8 macaddr[6];
     46	__u8 ipaddr[4];
     47} __attribute__((packed));
     48
     49struct qeth_arp_qi_entry7_ipv6 {
     50	__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
     51	struct qeth_arp_entrytype type;
     52	__u8 macaddr[6];
     53	__u8 ipaddr[16];
     54} __attribute__((packed));
     55
     56struct qeth_arp_qi_entry7_short {
     57	struct qeth_arp_entrytype type;
     58	__u8 macaddr[6];
     59	__u8 ipaddr[4];
     60} __attribute__((packed));
     61
     62struct qeth_arp_qi_entry7_short_ipv6 {
     63	struct qeth_arp_entrytype type;
     64	__u8 macaddr[6];
     65	__u8 ipaddr[16];
     66} __attribute__((packed));
     67
     68struct qeth_arp_qi_entry5 {
     69	__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
     70	struct qeth_arp_entrytype type;
     71	__u8 ipaddr[4];
     72} __attribute__((packed));
     73
     74struct qeth_arp_qi_entry5_ipv6 {
     75	__u8 media_specific[QETH_QARP_MEDIASPECIFIC_BYTES];
     76	struct qeth_arp_entrytype type;
     77	__u8 ipaddr[16];
     78} __attribute__((packed));
     79
     80struct qeth_arp_qi_entry5_short {
     81	struct qeth_arp_entrytype type;
     82	__u8 ipaddr[4];
     83} __attribute__((packed));
     84
     85struct qeth_arp_qi_entry5_short_ipv6 {
     86	struct qeth_arp_entrytype type;
     87	__u8 ipaddr[16];
     88} __attribute__((packed));
     89/*
     90 * can be set by user if no "media specific information" is wanted
     91 * -> saves a lot of space in user space buffer
     92 */
     93#define QETH_QARP_STRIP_ENTRIES  0x8000
     94#define QETH_QARP_WITH_IPV6	 0x4000
     95#define QETH_QARP_REQUEST_MASK   0x00ff
     96
     97/* data sent to user space as result of query arp ioctl */
     98#define QETH_QARP_USER_DATA_SIZE 20000
     99#define QETH_QARP_MASK_OFFSET    4
    100#define QETH_QARP_ENTRIES_OFFSET 6
    101struct qeth_arp_query_user_data {
    102	union {
    103		__u32 data_len;		/* set by user space program */
    104		__u32 no_entries;	/* set by kernel */
    105	} u;
    106	__u16 mask_bits;
    107	char *entries;
    108} __attribute__((packed));
    109
    110struct qeth_query_oat_data {
    111	__u32 command;
    112	__u32 buffer_len;
    113	__u32 response_len;
    114	__u64 ptr;
    115};
    116#endif /* __ASM_S390_QETH_IOCTL_H__ */