]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - drivers/s390/net/qeth_core.h
Merge remote-tracking branches 'spi/fix/armada', 'spi/fix/atmel', 'spi/fix/doc',...
[mirror_ubuntu-hirsute-kernel.git] / drivers / s390 / net / qeth_core.h
index 47a13c5723c6a756fc2616822af3ad54c973f299..badf42acbf95b8104d6167dfc811640b1ec311df 100644 (file)
@@ -183,6 +183,21 @@ struct qeth_sbp_info {
        __u32 reflect_promisc_primary:1;
 };
 
+struct qeth_vnicc_info {
+       /* supported/currently configured VNICCs; updated in IPA exchanges */
+       u32 sup_chars;
+       u32 cur_chars;
+       /* supported commands: bitmasks which VNICCs support respective cmd */
+       u32 set_char_sup;
+       u32 getset_timeout_sup;
+       /* timeout value for the learning characteristic */
+       u32 learning_timeout;
+       /* characteristics wanted/configured by user */
+       u32 wanted_chars;
+       /* has user explicitly enabled rx_bcast while online? */
+       bool rx_bcast_enabled;
+};
+
 static inline int qeth_is_ipa_supported(struct qeth_ipa_info *ipa,
                enum qeth_ipa_funcs func)
 {
@@ -217,20 +232,6 @@ static inline int qeth_is_ipa_enabled(struct qeth_ipa_info *ipa,
 #define QETH_IDX_FUNC_LEVEL_OSD                 0x0101
 #define QETH_IDX_FUNC_LEVEL_IQD                 0x4108
 
-#define QETH_MODELLIST_ARRAY \
-       {{0x1731, 0x01, 0x1732, QETH_CARD_TYPE_OSD, QETH_MAX_QUEUES, 0}, \
-        {0x1731, 0x05, 0x1732, QETH_CARD_TYPE_IQD, QETH_MAX_QUEUES, 0x103}, \
-        {0x1731, 0x06, 0x1732, QETH_CARD_TYPE_OSN, QETH_MAX_QUEUES, 0}, \
-        {0x1731, 0x02, 0x1732, QETH_CARD_TYPE_OSM, QETH_MAX_QUEUES, 0}, \
-        {0x1731, 0x02, 0x1732, QETH_CARD_TYPE_OSX, QETH_MAX_QUEUES, 0}, \
-        {0, 0, 0, 0, 0, 0} }
-#define QETH_CU_TYPE_IND       0
-#define QETH_CU_MODEL_IND      1
-#define QETH_DEV_TYPE_IND      2
-#define QETH_DEV_MODEL_IND     3
-#define QETH_QUEUE_NO_IND      4
-#define QETH_MULTICAST_IND     5
-
 #define QETH_REAL_CARD         1
 #define QETH_VLAN_CARD         2
 #define QETH_BUFSIZE           4096
@@ -564,9 +565,9 @@ enum qeth_cq {
 };
 
 struct qeth_ipato {
-       int enabled;
-       int invert4;
-       int invert6;
+       bool enabled;
+       bool invert4;
+       bool invert6;
        struct list_head entries;
 };
 
@@ -674,6 +675,7 @@ struct qeth_card_options {
        struct qeth_routing_info route6;
        struct qeth_ipa_info ipa6;
        struct qeth_sbp_info sbp; /* SETBRIDGEPORT options */
+       struct qeth_vnicc_info vnicc; /* VNICC options */
        int fake_broadcast;
        int layer2;
        int performance_stats;
@@ -947,13 +949,13 @@ int qeth_get_priority_queue(struct qeth_card *, struct sk_buff *, int, int);
 int qeth_get_elements_no(struct qeth_card *card, struct sk_buff *skb,
                         int extra_elems, int data_offset);
 int qeth_get_elements_for_frags(struct sk_buff *);
-int qeth_do_send_packet_fast(struct qeth_card *card,
-                            struct qeth_qdio_out_q *queue, struct sk_buff *skb,
+int qeth_do_send_packet_fast(struct qeth_qdio_out_q *queue, struct sk_buff *skb,
                             struct qeth_hdr *hdr, unsigned int offset,
                             unsigned int hd_len);
 int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue,
                        struct sk_buff *skb, struct qeth_hdr *hdr,
-                       unsigned int hd_len, unsigned int offset, int elements);
+                       unsigned int offset, unsigned int hd_len,
+                       int elements_needed);
 int qeth_do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 int qeth_core_get_sset_count(struct net_device *, int);
 void qeth_core_get_ethtool_stats(struct net_device *,
@@ -983,8 +985,11 @@ struct qeth_cmd_buffer *qeth_get_setassparms_cmd(struct qeth_card *,
                                                 __u16, __u16,
                                                 enum qeth_prot_versions);
 int qeth_set_features(struct net_device *, netdev_features_t);
-int qeth_recover_features(struct net_device *);
+void qeth_recover_features(struct net_device *dev);
 netdev_features_t qeth_fix_features(struct net_device *, netdev_features_t);
+netdev_features_t qeth_features_check(struct sk_buff *skb,
+                                     struct net_device *dev,
+                                     netdev_features_t features);
 int qeth_vm_request_mac(struct qeth_card *card);
 int qeth_push_hdr(struct sk_buff *skb, struct qeth_hdr **hdr, unsigned int len);