Linux Audio

Check our new training course

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