phymodes.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * Copyright (c) 2007 Regents of the SIGNET lab, University of Padova.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. Neither the name of the University of Padova (SIGNET lab) nor the 
  14.  *    names of its contributors may be used to endorse or promote products 
  15.  *    derived from this software without specific prior written permission.
  16.  *
  17.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  18.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
  19.  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  20.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  21.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  22.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  23.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
  24.  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
  25.  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
  26.  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  27.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28.  */
  29. #ifndef PHYMODES_H
  30. #define PHYMODES_H
  31. #include<packet.h>
  32. enum PhyMode {
  33.         ModeUnknown=-1,
  34. Mode1Mb,
  35. Mode2Mb,
  36. Mode5_5Mb,
  37. Mode11Mb,
  38. Mode6Mb,
  39. Mode9Mb,
  40. Mode12Mb,
  41. Mode18Mb,
  42. Mode24Mb,
  43. Mode36Mb,
  44. Mode48Mb,
  45. Mode54Mb,
  46. NumPhyModes
  47. };
  48. PhyMode str2PhyMode(const char*);
  49. const char* PhyMode2str(PhyMode pm);
  50. typedef struct MultiRateHdr {
  51. PhyMode mode_;
  52. inline PhyMode& mode() { return mode_; }
  53. static int offset_;
  54. inline static int& offset() { return offset_; }
  55. inline static struct MultiRateHdr* access(const Packet* p) {
  56. return (struct MultiRateHdr*)p->access(offset_);
  57. }
  58. } MultiRateHdr;
  59. #endif /* PHYMODES_H */