/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
Copyright ( C ) 2004 - 2009 Ivo van Doorn < IvDoorn @ gmail . com >
< http : //rt2x00.serialmonkey.com>
*/
/*
Module : rt2x00dump
Abstract :
Data structures for the rt2x00debug & userspace .
The declarations in this file can be used by both rt2x00
and userspace and therefore should be kept together in
this file .
*/
#ifndef RT2X00DUMP_H
#define RT2X00DUMP_H
/**
* DOC : Introduction
*
* This header is intended to be exported to userspace ,
* to make the structures and enumerations available to userspace
* applications . This means that all data types should be exportable .
*
* When rt2x00 is compiled with debugfs support enabled ,
* it is possible to capture all data coming in and out of the device
* by reading the frame dump file . This file can have only a single reader .
* The following frames will be reported :
* - All incoming frames ( rx )
* - All outgoing frames ( tx , including beacon and atim )
* - All completed frames ( txdone including atim )
*
* The data is send to the file using the following format :
*
* [ rt2x00dump header ] [ hardware descriptor ] [ ieee802 . 11 frame ]
*
* rt2x00dump header : The description of the dumped frame , as well as
* additional information useful for debugging . See & rt2x00dump_hdr .
* hardware descriptor : Descriptor that was used to receive or transmit
* the frame .
* ieee802 . 11 frame : The actual frame that was received or transmitted .
*/
/**
* enum rt2x00_dump_type - Frame type
*
* These values are used for the @ type member of & rt2x00dump_hdr .
* @ DUMP_FRAME_RXDONE : This frame has been received by the hardware .
* @ DUMP_FRAME_TX : This frame is queued for transmission to the hardware .
* @ DUMP_FRAME_TXDONE : This frame indicates the device has handled
* the tx event which has either succeeded or failed . A frame
* with this type should also have been reported with as a
* % DUMP_FRAME_TX frame .
* @ DUMP_FRAME_BEACON : This beacon frame is queued for transmission to the
* hardware .
*/
enum rt2x00_dump_type {
DUMP_FRAME_RXDONE = 1 ,
DUMP_FRAME_TX = 2 ,
DUMP_FRAME_TXDONE = 3 ,
DUMP_FRAME_BEACON = 4 ,
};
/**
* struct rt2x00dump_hdr - Dump frame header
*
* Each frame dumped to the debugfs file starts with this header
* attached . This header contains the description of the actual
* frame which was dumped .
*
* New fields inside the structure must be appended to the end of
* the structure . This way userspace tools compiled for earlier
* header versions can still correctly handle the frame dump
* ( although they will not handle all data passed to them in the dump ) .
*
* @ version : Header version should always be set to % DUMP_HEADER_VERSION .
* This field must be checked by userspace to determine if it can
* handle this frame .
* @ header_length : The length of the & rt2x00dump_hdr structure . This is
* used for compatibility reasons so userspace can easily determine
* the location of the next field in the dump .
* @ desc_length : The length of the device descriptor .
* @ data_length : The length of the frame data ( including the ieee802 . 11 header .
* @ chip_rt : RT chipset
* @ chip_rf : RF chipset
* @ chip_rev : Chipset revision
* @ type : The frame type ( & rt2x00_dump_type )
* @ queue_index : The index number of the data queue .
* @ entry_index : The index number of the entry inside the data queue .
* @ timestamp_sec : Timestamp - seconds
* @ timestamp_usec : Timestamp - microseconds
*/
struct rt2x00dump_hdr {
__le32 version;
#define DUMP_HEADER_VERSION 3
__le32 header_length;
__le32 desc_length;
__le32 data_length;
__le16 chip_rt;
__le16 chip_rf;
__le16 chip_rev;
__le16 type;
__u8 queue_index;
__u8 entry_index;
__le32 timestamp_sec;
__le32 timestamp_usec;
};
#endif /* RT2X00DUMP_H */
Messung V0.5 in Prozent C=100 H=98 G=98
¤ Dauer der Verarbeitung: 0.6 Sekunden
¤
*© Formatika GbR, Deutschland