Changeset 56c0930 in mainline for uspace/lib/net/include/ieee80211.h


Ignore:
Timestamp:
2015-02-20T14:33:29Z (10 years ago)
Author:
Jan Kolarik <kolarik@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4cb0148
Parents:
ab365c4
Message:

Started writing TX and RX handlers, VIF init, setting RX filter, PLL init and calibration, some corrections. Added HW values array initialization, registered diagnostic polling fibril. But still not receiving any packets…

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/include/ieee80211.h

    rab365c4 r56c0930  
    4141#include <ddf/driver.h>
    4242#include <sys/types.h>
     43#include <nic.h>
    4344
    4445/** Initial channel frequency. */
    45 #define IEEE80211_FIRST_CHANNEL 2412
     46#define IEEE80211_FIRST_FREQ 2412
    4647
    4748/** Max supported channel frequency. */
    48 #define IEEE80211_MAX_CHANNEL 2472
     49#define IEEE80211_MAX_FREQ 2472
    4950
    5051/* Gap between IEEE80211 channels in MHz. */
    5152#define IEEE80211_CHANNEL_GAP 5
     53
     54#define IEEE80211_FRAME_CTRL_FRAME_TYPE 0x000C
     55#define IEEE80211_FRAME_CTRL_DATA_FRAME 0x0008
    5256
    5357struct ieee80211_dev;
     
    6569        int (*start)(struct ieee80211_dev *);
    6670        int (*scan)(struct ieee80211_dev *);
     71        int (*tx_handler)(struct ieee80211_dev *, void *, size_t);
    6772} ieee80211_ops_t;
    6873
     
    7782        /** Pointer to driver specific data. */
    7883        void *driver_data;
     84       
     85        /** Current operating frequency. */
     86        uint16_t current_freq;
     87       
     88        /** Current operating mode. */
     89        ieee80211_operating_mode_t current_op_mode;
     90       
     91        /* TODO: Probably to be removed later - nic.open function is now
     92         * executed multiple times, have to find out reason and fix it.
     93         */
     94        /** Indicates whether driver has already started. */
     95        bool started;
    7996} ieee80211_dev_t;
    8097
     98/** IEEE 802.11 header structure. */
     99typedef struct {
     100        uint16_t frame_ctrl;            /**< Little Endian value! */
     101        uint16_t duration_id;           /**< Little Endian value! */
     102        uint8_t address1[ETH_ADDR];
     103        uint8_t address2[ETH_ADDR];
     104        uint8_t address3[ETH_ADDR];
     105        uint16_t seq_ctrl;              /**< Little Endian value! */
     106        uint8_t address4[ETH_ADDR];
     107} __attribute__((packed)) __attribute__ ((aligned(2))) ieee80211_header_t;
     108
     109extern bool ieee80211_is_data_frame(ieee80211_header_t *header);
    81110extern int ieee80211_device_init(ieee80211_dev_t *ieee80211_dev,
    82111        void *driver_data, ddf_dev_t *ddf_dev);
Note: See TracChangeset for help on using the changeset viewer.