root/drivers/staging/ks7010/ks_hostif.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. is_11b_rate
  2. is_ofdm_rate
  3. is_11bg_rate
  4. is_ofdm_ext_rate
  5. is_hif_ind
  6. is_hif_conf
  7. hif_align_size

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  *   Driver for KeyStream wireless LAN
   4  *
   5  *   Copyright (c) 2005-2008 KeyStream Corp.
   6  *   Copyright (C) 2009 Renesas Technology Corp.
   7  */
   8 
   9 #ifndef _KS_HOSTIF_H_
  10 #define _KS_HOSTIF_H_
  11 
  12 #include <linux/compiler.h>
  13 #include <linux/ieee80211.h>
  14 
  15 /*
  16  * HOST-MAC I/F events
  17  */
  18 #define HIF_DATA_REQ            0xE001
  19 #define HIF_DATA_IND            0xE801
  20 #define HIF_MIB_GET_REQ         0xE002
  21 #define HIF_MIB_GET_CONF        0xE802
  22 #define HIF_MIB_SET_REQ         0xE003
  23 #define HIF_MIB_SET_CONF        0xE803
  24 #define HIF_POWER_MGMT_REQ      0xE004
  25 #define HIF_POWER_MGMT_CONF     0xE804
  26 #define HIF_START_REQ           0xE005
  27 #define HIF_START_CONF          0xE805
  28 #define HIF_CONNECT_IND         0xE806
  29 #define HIF_STOP_REQ            0xE006
  30 #define HIF_STOP_CONF           0xE807
  31 #define HIF_PS_ADH_SET_REQ      0xE007
  32 #define HIF_PS_ADH_SET_CONF     0xE808
  33 #define HIF_INFRA_SET_REQ       0xE008
  34 #define HIF_INFRA_SET_CONF      0xE809
  35 #define HIF_ADH_SET_REQ         0xE009
  36 #define HIF_ADH_SET_CONF        0xE80A
  37 #define HIF_AP_SET_REQ          0xE00A
  38 #define HIF_AP_SET_CONF         0xE80B
  39 #define HIF_ASSOC_INFO_IND      0xE80C
  40 #define HIF_MIC_FAILURE_REQ     0xE00B
  41 #define HIF_MIC_FAILURE_CONF    0xE80D
  42 #define HIF_SCAN_REQ            0xE00C
  43 #define HIF_SCAN_CONF           0xE80E
  44 #define HIF_PHY_INFO_REQ        0xE00D
  45 #define HIF_PHY_INFO_CONF       0xE80F
  46 #define HIF_SLEEP_REQ           0xE00E
  47 #define HIF_SLEEP_CONF          0xE810
  48 #define HIF_PHY_INFO_IND        0xE811
  49 #define HIF_SCAN_IND            0xE812
  50 #define HIF_INFRA_SET2_REQ      0xE00F
  51 #define HIF_INFRA_SET2_CONF     0xE813
  52 #define HIF_ADH_SET2_REQ        0xE010
  53 #define HIF_ADH_SET2_CONF       0xE814
  54 
  55 #define HIF_REQ_MAX             0xE010
  56 
  57 /*
  58  * HOST-MAC I/F data structure
  59  * Byte alignment Little Endian
  60  */
  61 
  62 struct hostif_hdr {
  63         __le16 size;
  64         __le16 event;
  65 } __packed;
  66 
  67 struct hostif_data_request {
  68         struct hostif_hdr header;
  69         __le16 auth_type;
  70 #define TYPE_DATA 0x0000
  71 #define TYPE_AUTH 0x0001
  72         __le16 reserved;
  73         u8 data[0];
  74 } __packed;
  75 
  76 #define TYPE_PMK1 0x0001
  77 #define TYPE_GMK1 0x0002
  78 #define TYPE_GMK2 0x0003
  79 
  80 #define CHANNEL_LIST_MAX_SIZE 14
  81 struct channel_list {
  82         u8 size;
  83         u8 body[CHANNEL_LIST_MAX_SIZE];
  84         u8 pad;
  85 } __packed;
  86 
  87 /**
  88  * enum mib_attribute - Management Information Base attribute
  89  * Attribute value used for accessing and updating MIB
  90  *
  91  * @DOT11_MAC_ADDRESS: MAC Address (R)
  92  * @DOT11_PRODUCT_VERSION: FirmWare Version (R)
  93  * @DOT11_RTS_THRESHOLD: RTS Threshold (R/W)
  94  * @DOT11_FRAGMENTATION_THRESHOLD: Fragment Threshold (R/W)
  95  * @DOT11_PRIVACY_INVOKED: WEP ON/OFF (W)
  96  * @DOT11_WEP_DEFAULT_KEY_ID: WEP Index (W)
  97  * @DOT11_WEP_DEFAULT_KEY_VALUE1: WEP Key#1(TKIP AES: PairwiseTemporalKey) (W)
  98  * @DOT11_WEP_DEFAULT_KEY_VALUE2: WEP Key#2(TKIP AES: GroupKey1) (W)
  99  * @DOT11_WEP_DEFAULT_KEY_VALUE3: WEP Key#3(TKIP AES: GroupKey2) (W)
 100  * @DOT11_WEP_DEFAULT_KEY_VALUE4: WEP Key#4 (W)
 101  * @DOT11_WEP_LIST: WEP LIST
 102  * @DOT11_DESIRED_SSID: SSID
 103  * @DOT11_CURRENT_CHANNEL: channel set
 104  * @DOT11_OPERATION_RATE_SET: rate set
 105  * @LOCAL_AP_SEARCH_INTERVAL: AP search interval (R/W)
 106  * @LOCAL_CURRENTADDRESS: MAC Address change (W)
 107  * @LOCAL_MULTICAST_ADDRESS: Multicast Address (W)
 108  * @LOCAL_MULTICAST_FILTER: Multicast Address Filter enable/disable (W)
 109  * @LOCAL_SEARCHED_AP_LIST: AP list (R)
 110  * @LOCAL_LINK_AP_STATUS: Link AP status (R)
 111  * @LOCAL_PACKET_STATISTICS: tx,rx packets statistics
 112  * @LOCAL_AP_SCAN_LIST_TYPE_SET: AP_SCAN_LIST_TYPE
 113  * @DOT11_RSN_ENABLED: WPA enable/disable (W)
 114  * @LOCAL_RSN_MODE: RSN mode WPA/WPA2 (W)
 115  * @DOT11_RSN_CONFIG_MULTICAST_CIPHER: GroupKeyCipherSuite (W)
 116  * @DOT11_RSN_CONFIG_UNICAST_CIPHER: PairwiseKeyCipherSuite (W)
 117  * @DOT11_RSN_CONFIG_AUTH_SUITE: AuthenticationKeyManagementSuite (W)
 118  * @DOT11_RSN_CONFIG_VERSION: RSN version (W)
 119  * @LOCAL_RSN_CONFIG_ALL: RSN CONFIG ALL (W)
 120  * @DOT11_PMK_TSC: PMK_TSC (W)
 121  * @DOT11_GMK1_TSC: GMK1_TSC (W)
 122  * @DOT11_GMK2_TSC: GMK2_TSC (W)
 123  * @DOT11_GMK3_TSC: GMK3_TSC
 124  * @LOCAL_PMK: Pairwise Master Key cache (W)
 125  * @LOCAL_REGION: Region setting
 126  * @LOCAL_WPS_ENABLE: WiFi Protected Setup
 127  * @LOCAL_WPS_PROBE_REQ: WPS Probe Request
 128  * @LOCAL_GAIN: Carrer sense threshold for demo ato show
 129  * @LOCAL_EEPROM_SUM: EEPROM checksum information
 130  */
 131 enum mib_attribute {
 132         DOT11_MAC_ADDRESS                 = 0x21010100,
 133         DOT11_PRODUCT_VERSION             = 0x31024100,
 134         DOT11_RTS_THRESHOLD               = 0x21020100,
 135         DOT11_FRAGMENTATION_THRESHOLD     = 0x21050100,
 136         DOT11_PRIVACY_INVOKED             = 0x15010100,
 137         DOT11_WEP_DEFAULT_KEY_ID          = 0x15020100,
 138         DOT11_WEP_DEFAULT_KEY_VALUE1      = 0x13020101,
 139         DOT11_WEP_DEFAULT_KEY_VALUE2      = 0x13020102,
 140         DOT11_WEP_DEFAULT_KEY_VALUE3      = 0x13020103,
 141         DOT11_WEP_DEFAULT_KEY_VALUE4      = 0x13020104,
 142         DOT11_WEP_LIST                    = 0x13020100,
 143         DOT11_DESIRED_SSID                = 0x11090100,
 144         DOT11_CURRENT_CHANNEL             = 0x45010100,
 145         DOT11_OPERATION_RATE_SET          = 0x11110100,
 146         LOCAL_AP_SEARCH_INTERVAL          = 0xF1010100,
 147         LOCAL_CURRENTADDRESS              = 0xF1050100,
 148         LOCAL_MULTICAST_ADDRESS           = 0xF1060100,
 149         LOCAL_MULTICAST_FILTER            = 0xF1060200,
 150         LOCAL_SEARCHED_AP_LIST            = 0xF1030100,
 151         LOCAL_LINK_AP_STATUS              = 0xF1040100,
 152         LOCAL_PACKET_STATISTICS           = 0xF1020100,
 153         LOCAL_AP_SCAN_LIST_TYPE_SET       = 0xF1030200,
 154         DOT11_RSN_ENABLED                 = 0x15070100,
 155         LOCAL_RSN_MODE                    = 0x56010100,
 156         DOT11_RSN_CONFIG_MULTICAST_CIPHER = 0x51040100,
 157         DOT11_RSN_CONFIG_UNICAST_CIPHER   = 0x52020100,
 158         DOT11_RSN_CONFIG_AUTH_SUITE       = 0x53020100,
 159         DOT11_RSN_CONFIG_VERSION          = 0x51020100,
 160         LOCAL_RSN_CONFIG_ALL              = 0x5F010100,
 161         DOT11_PMK_TSC                     = 0x55010100,
 162         DOT11_GMK1_TSC                    = 0x55010101,
 163         DOT11_GMK2_TSC                    = 0x55010102,
 164         DOT11_GMK3_TSC                    = 0x55010103,
 165         LOCAL_PMK                         = 0x58010100,
 166         LOCAL_REGION                      = 0xF10A0100,
 167         LOCAL_WPS_ENABLE                  = 0xF10B0100,
 168         LOCAL_WPS_PROBE_REQ               = 0xF10C0100,
 169         LOCAL_GAIN                        = 0xF10D0100,
 170         LOCAL_EEPROM_SUM                  = 0xF10E0100
 171 };
 172 
 173 struct hostif_mib_get_request {
 174         struct hostif_hdr header;
 175         __le32 mib_attribute;
 176 } __packed;
 177 
 178 /**
 179  * enum mib_data_type - Message Information Base data type.
 180  * @MIB_VALUE_TYPE_NULL: NULL type
 181  * @MIB_VALUE_TYPE_INT: INTEGER type
 182  * @MIB_VALUE_TYPE_BOOL: BOOL type
 183  * @MIB_VALUE_TYPE_COUNT32: unused
 184  * @MIB_VALUE_TYPE_OSTRING: Chunk of memory
 185  */
 186 enum mib_data_type {
 187         MIB_VALUE_TYPE_NULL = 0,
 188         MIB_VALUE_TYPE_INT,
 189         MIB_VALUE_TYPE_BOOL,
 190         MIB_VALUE_TYPE_COUNT32,
 191         MIB_VALUE_TYPE_OSTRING
 192 };
 193 
 194 struct hostif_mib_value {
 195         __le16 size;
 196         __le16 type;
 197         u8 body[0];
 198 } __packed;
 199 
 200 struct hostif_mib_get_confirm_t {
 201         struct hostif_hdr header;
 202         __le32 mib_status;
 203 #define MIB_SUCCESS    0
 204 #define MIB_INVALID    1
 205 #define MIB_READ_ONLY  2
 206 #define MIB_WRITE_ONLY 3
 207         __le32 mib_attribute;
 208         struct hostif_mib_value mib_value;
 209 } __packed;
 210 
 211 struct hostif_mib_set_request_t {
 212         struct hostif_hdr header;
 213         __le32 mib_attribute;
 214         struct hostif_mib_value mib_value;
 215 } __packed;
 216 
 217 struct hostif_power_mgmt_request {
 218         struct hostif_hdr header;
 219         __le32 mode;
 220 #define POWER_ACTIVE  1
 221 #define POWER_SAVE    2
 222         __le32 wake_up;
 223 #define SLEEP_FALSE 0
 224 #define SLEEP_TRUE  1   /* not used */
 225         __le32 receive_dtims;
 226 #define DTIM_FALSE 0
 227 #define DTIM_TRUE  1
 228 } __packed;
 229 
 230 enum power_mgmt_mode_type {
 231         POWER_MGMT_ACTIVE,
 232         POWER_MGMT_SAVE1,
 233         POWER_MGMT_SAVE2
 234 };
 235 
 236 #define RESULT_SUCCESS            0
 237 #define RESULT_INVALID_PARAMETERS 1
 238 #define RESULT_NOT_SUPPORTED      2
 239 /* #define      RESULT_ALREADY_RUNNING    3 */
 240 #define RESULT_ALREADY_RUNNING    7
 241 
 242 struct hostif_start_request {
 243         struct hostif_hdr header;
 244         __le16 mode;
 245 #define MODE_PSEUDO_ADHOC   0
 246 #define MODE_INFRASTRUCTURE 1
 247 #define MODE_AP             2   /* not used */
 248 #define MODE_ADHOC          3
 249 } __packed;
 250 
 251 struct ssid {
 252         u8 size;
 253         u8 body[IEEE80211_MAX_SSID_LEN];
 254         u8 ssid_pad;
 255 } __packed;
 256 
 257 #define RATE_SET_MAX_SIZE 16
 258 struct rate_set8 {
 259         u8 size;
 260         u8 body[8];
 261         u8 rate_pad;
 262 } __packed;
 263 
 264 struct fh_parms {
 265         __le16 dwell_time;
 266         u8 hop_set;
 267         u8 hop_pattern;
 268         u8 hop_index;
 269 } __packed;
 270 
 271 struct ds_parms {
 272         u8 channel;
 273 } __packed;
 274 
 275 struct cf_parms {
 276         u8 count;
 277         u8 period;
 278         __le16 max_duration;
 279         __le16 dur_remaining;
 280 } __packed;
 281 
 282 struct ibss_parms {
 283         __le16 atim_window;
 284 } __packed;
 285 
 286 struct rsn_t {
 287         u8 size;
 288 #define RSN_BODY_SIZE 64
 289         u8 body[RSN_BODY_SIZE];
 290 } __packed;
 291 
 292 struct erp_params_t {
 293         u8 erp_info;
 294 } __packed;
 295 
 296 struct rate_set16 {
 297         u8 size;
 298         u8 body[16];
 299         u8 rate_pad;
 300 } __packed;
 301 
 302 struct ap_info {
 303         u8 bssid[6];    /* +00 */
 304         u8 rssi;        /* +06 */
 305         u8 sq;  /* +07 */
 306         u8 noise;       /* +08 */
 307         u8 pad0;        /* +09 */
 308         __le16 beacon_period;   /* +10 */
 309         __le16 capability;      /* +12 */
 310         u8 frame_type;  /* +14 */
 311         u8 ch_info;     /* +15 */
 312         __le16 body_size;       /* +16 */
 313         u8 body[1024];  /* +18 */
 314         /* +1032 */
 315 } __packed;
 316 
 317 struct link_ap_info {
 318         u8 bssid[6];    /* +00 */
 319         u8 rssi;        /* +06 */
 320         u8 sq;  /* +07 */
 321         u8 noise;       /* +08 */
 322         u8 pad0;        /* +09 */
 323         __le16 beacon_period;   /* +10 */
 324         __le16 capability;      /* +12 */
 325         struct rate_set8 rate_set;      /* +14 */
 326         struct fh_parms fh_parameter;   /* +24 */
 327         struct ds_parms ds_parameter;   /* +29 */
 328         struct cf_parms cf_parameter;   /* +30 */
 329         struct ibss_parms ibss_parameter;       /* +36 */
 330         struct erp_params_t erp_parameter;      /* +38 */
 331         u8 pad1;        /* +39 */
 332         struct rate_set8 ext_rate_set;  /* +40 */
 333         u8 DTIM_period; /* +50 */
 334         u8 rsn_mode;    /* +51 */
 335 #define RSN_MODE_NONE   0
 336 #define RSN_MODE_WPA    1
 337 #define RSN_MODE_WPA2   2
 338         struct {
 339                 u8 size;        /* +52 */
 340                 u8 body[128];   /* +53 */
 341         } __packed rsn;
 342 } __packed;
 343 
 344 #define RESULT_CONNECT    0
 345 #define RESULT_DISCONNECT 1
 346 
 347 struct hostif_stop_request {
 348         struct hostif_hdr header;
 349 } __packed;
 350 
 351 #define D_11B_ONLY_MODE         0
 352 #define D_11G_ONLY_MODE         1
 353 #define D_11BG_COMPATIBLE_MODE  2
 354 #define D_11A_ONLY_MODE         3
 355 
 356 #define CTS_MODE_FALSE  0
 357 #define CTS_MODE_TRUE   1
 358 
 359 struct hostif_request {
 360         __le16 phy_type;
 361         __le16 cts_mode;
 362         __le16 scan_type;
 363         __le16 capability;
 364         struct rate_set16 rate_set;
 365 } __packed;
 366 
 367 /**
 368  * struct hostif_ps_adhoc_set_request - pseudo adhoc mode
 369  * @capability: bit5  : preamble
 370  *              bit6  : pbcc - Not supported always 0
 371  *              bit10 : ShortSlotTime
 372  *              bit13 : DSSS-OFDM - Not supported always 0
 373  */
 374 struct hostif_ps_adhoc_set_request {
 375         struct hostif_hdr header;
 376         struct hostif_request request;
 377         __le16 channel;
 378 } __packed;
 379 
 380 #define AUTH_TYPE_OPEN_SYSTEM 0
 381 #define AUTH_TYPE_SHARED_KEY  1
 382 
 383 /**
 384  * struct hostif_infrastructure_set_request
 385  * @capability: bit5  : preamble
 386  *              bit6  : pbcc - Not supported always 0
 387  *              bit10 : ShortSlotTime
 388  *              bit13 : DSSS-OFDM - Not supported always 0
 389  */
 390 struct hostif_infrastructure_set_request {
 391         struct hostif_hdr header;
 392         struct hostif_request request;
 393         struct ssid ssid;
 394         __le16 beacon_lost_count;
 395         __le16 auth_type;
 396         struct channel_list channel_list;
 397         u8 bssid[ETH_ALEN];
 398 } __packed;
 399 
 400 /**
 401  * struct hostif_adhoc_set_request
 402  * @capability: bit5  : preamble
 403  *              bit6  : pbcc - Not supported always 0
 404  *              bit10 : ShortSlotTime
 405  *              bit13 : DSSS-OFDM - Not supported always 0
 406  */
 407 struct hostif_adhoc_set_request {
 408         struct hostif_hdr header;
 409         struct hostif_request request;
 410         struct ssid ssid;
 411         __le16 channel;
 412 } __packed;
 413 
 414 /**
 415  * struct hostif_adhoc_set2_request
 416  * @capability: bit5  : preamble
 417  *              bit6  : pbcc - Not supported always 0
 418  *              bit10 : ShortSlotTime
 419  *              bit13 : DSSS-OFDM - Not supported always 0
 420  */
 421 struct hostif_adhoc_set2_request {
 422         struct hostif_hdr header;
 423         struct hostif_request request;
 424         __le16 reserved;
 425         struct ssid ssid;
 426         struct channel_list channel_list;
 427         u8 bssid[ETH_ALEN];
 428 } __packed;
 429 
 430 struct association_request {
 431         u8 type;
 432         u8 pad;
 433         __le16 capability;
 434         __le16 listen_interval;
 435         u8 ap_address[6];
 436         __le16 req_ies_size;
 437 } __packed;
 438 
 439 struct association_response {
 440         u8 type;
 441         u8 pad;
 442         __le16 capability;
 443         __le16 status;
 444         __le16 association_id;
 445         __le16 resp_ies_size;
 446 } __packed;
 447 
 448 struct hostif_bss_scan_request {
 449         struct hostif_hdr header;
 450         u8 scan_type;
 451 #define ACTIVE_SCAN  0
 452 #define PASSIVE_SCAN 1
 453         u8 pad[3];
 454         __le32 ch_time_min;
 455         __le32 ch_time_max;
 456         struct channel_list channel_list;
 457         struct ssid ssid;
 458 } __packed;
 459 
 460 struct hostif_phy_information_request {
 461         struct hostif_hdr header;
 462         __le16 type;
 463 #define NORMAL_TYPE     0
 464 #define TIME_TYPE       1
 465         __le16 time;    /* unit 100ms */
 466 } __packed;
 467 
 468 enum sleep_mode_type {
 469         SLP_ACTIVE,
 470         SLP_SLEEP
 471 };
 472 
 473 struct hostif_sleep_request {
 474         struct hostif_hdr header;
 475 } __packed;
 476 
 477 struct hostif_mic_failure_request {
 478         struct hostif_hdr header;
 479         __le16 failure_count;
 480         __le16 timer;
 481 } __packed;
 482 
 483 #define BASIC_RATE      0x80
 484 #define RATE_MASK       0x7F
 485 
 486 #define TX_RATE_AUTO      0xff
 487 #define TX_RATE_1M_FIXED  0
 488 #define TX_RATE_2M_FIXED  1
 489 #define TX_RATE_1_2M_AUTO 2
 490 #define TX_RATE_5M_FIXED  3
 491 #define TX_RATE_11M_FIXED 4
 492 
 493 #define TX_RATE_FULL_AUTO       0
 494 #define TX_RATE_11_AUTO         1
 495 #define TX_RATE_11B_AUTO        2
 496 #define TX_RATE_11BG_AUTO       3
 497 #define TX_RATE_MANUAL_AUTO     4
 498 #define TX_RATE_FIXED           5
 499 
 500 /* 11b rate */
 501 #define TX_RATE_1M      (u8)(10 / 5)    /* 11b 11g basic rate */
 502 #define TX_RATE_2M      (u8)(20 / 5)    /* 11b 11g basic rate */
 503 #define TX_RATE_5M      (u8)(55 / 5)    /* 11g basic rate */
 504 #define TX_RATE_11M     (u8)(110 / 5)   /* 11g basic rate */
 505 
 506 /* 11g rate */
 507 #define TX_RATE_6M      (u8)(60 / 5)    /* 11g basic rate */
 508 #define TX_RATE_12M     (u8)(120 / 5)   /* 11g basic rate */
 509 #define TX_RATE_24M     (u8)(240 / 5)   /* 11g basic rate */
 510 #define TX_RATE_9M      (u8)(90 / 5)
 511 #define TX_RATE_18M     (u8)(180 / 5)
 512 #define TX_RATE_36M     (u8)(360 / 5)
 513 #define TX_RATE_48M     (u8)(480 / 5)
 514 #define TX_RATE_54M     (u8)(540 / 5)
 515 
 516 static inline bool is_11b_rate(u8 rate)
 517 {
 518         return (((rate & RATE_MASK) == TX_RATE_1M) ||
 519                 ((rate & RATE_MASK) == TX_RATE_2M) ||
 520                 ((rate & RATE_MASK) == TX_RATE_5M) ||
 521                 ((rate & RATE_MASK) == TX_RATE_11M));
 522 }
 523 
 524 static inline bool is_ofdm_rate(u8 rate)
 525 {
 526         return (((rate & RATE_MASK) == TX_RATE_6M)  ||
 527                 ((rate & RATE_MASK) == TX_RATE_12M) ||
 528                 ((rate & RATE_MASK) == TX_RATE_24M) ||
 529                 ((rate & RATE_MASK) == TX_RATE_9M)  ||
 530                 ((rate & RATE_MASK) == TX_RATE_18M) ||
 531                 ((rate & RATE_MASK) == TX_RATE_36M) ||
 532                 ((rate & RATE_MASK) == TX_RATE_48M) ||
 533                 ((rate & RATE_MASK) == TX_RATE_54M));
 534 }
 535 
 536 static inline bool is_11bg_rate(u8 rate)
 537 {
 538         return (is_11b_rate(rate) || is_ofdm_rate(rate));
 539 }
 540 
 541 static inline bool is_ofdm_ext_rate(u8 rate)
 542 {
 543         return (((rate & RATE_MASK) == TX_RATE_9M)  ||
 544                 ((rate & RATE_MASK) == TX_RATE_18M) ||
 545                 ((rate & RATE_MASK) == TX_RATE_36M) ||
 546                 ((rate & RATE_MASK) == TX_RATE_48M) ||
 547                 ((rate & RATE_MASK) == TX_RATE_54M));
 548 }
 549 
 550 enum connect_status_type {
 551         CONNECT_STATUS,
 552         DISCONNECT_STATUS
 553 };
 554 
 555 enum preamble_type {
 556         LONG_PREAMBLE,
 557         SHORT_PREAMBLE
 558 };
 559 
 560 enum multicast_filter_type {
 561         MCAST_FILTER_MCAST,
 562         MCAST_FILTER_MCASTALL,
 563         MCAST_FILTER_PROMISC,
 564 };
 565 
 566 #define NIC_MAX_MCAST_LIST 32
 567 
 568 #define HIF_EVENT_MASK 0xE800
 569 
 570 static inline bool is_hif_ind(unsigned short event)
 571 {
 572         return (((event & HIF_EVENT_MASK) == HIF_EVENT_MASK) &&
 573                 (((event & ~HIF_EVENT_MASK) == 0x0001) ||
 574                  ((event & ~HIF_EVENT_MASK) == 0x0006) ||
 575                  ((event & ~HIF_EVENT_MASK) == 0x000C) ||
 576                  ((event & ~HIF_EVENT_MASK) == 0x0011) ||
 577                  ((event & ~HIF_EVENT_MASK) == 0x0012)));
 578 }
 579 
 580 static inline bool is_hif_conf(unsigned short event)
 581 {
 582         return (((event & HIF_EVENT_MASK) == HIF_EVENT_MASK) &&
 583                 ((event & ~HIF_EVENT_MASK) > 0x0000) &&
 584                 ((event & ~HIF_EVENT_MASK) < 0x0012) &&
 585                 !is_hif_ind(event));
 586 }
 587 
 588 #ifdef __KERNEL__
 589 
 590 #include "ks_wlan.h"
 591 
 592 /* function prototype */
 593 int hostif_data_request(struct ks_wlan_private *priv, struct sk_buff *skb);
 594 void hostif_receive(struct ks_wlan_private *priv, unsigned char *p,
 595                     unsigned int size);
 596 void hostif_sme_enqueue(struct ks_wlan_private *priv, u16 event);
 597 int hostif_init(struct ks_wlan_private *priv);
 598 void hostif_exit(struct ks_wlan_private *priv);
 599 int ks_wlan_hw_tx(struct ks_wlan_private *priv, void *p, unsigned long size,
 600                   void (*complete_handler)(struct ks_wlan_private *priv,
 601                                            struct sk_buff *skb),
 602                   struct sk_buff *skb);
 603 void send_packet_complete(struct ks_wlan_private *priv, struct sk_buff *skb);
 604 
 605 void ks_wlan_hw_wakeup_request(struct ks_wlan_private *priv);
 606 int ks_wlan_hw_power_save(struct ks_wlan_private *priv);
 607 
 608 #define KS7010_SIZE_ALIGNMENT   32
 609 
 610 static inline size_t hif_align_size(size_t size)
 611 {
 612         return ALIGN(size, KS7010_SIZE_ALIGNMENT);
 613 }
 614 
 615 #endif /* __KERNEL__ */
 616 
 617 #endif /* _KS_HOSTIF_H_ */

/* [<][>][^][v][top][bottom][index][help] */