Author: colin Date: 2010-01-11 15:16:52 +0100 (Mon, 11 Jan 2010) New Revision: 35008 Changeset: http://dev.haiku-os.org/changeset/35008/haiku Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.h haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.h haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_device.h haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.cpp haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.cpp haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.h Removed: haiku/branches/developer/colin/wireless/headers/private/net/ieee80211.h Modified: haiku/branches/developer/colin/wireless/headers/posix/sys/sockio.h haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/Jamfile haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.cpp Log: * Basic design concept of the IEEE 802.11 stack layed out. The ieee80211 device will be tightly coupled with the object oriented Ieee80211::Stack. Using module mechanism to load & access Ieee80211::Stack seems inappropriate, as this stack is needed concurrent to the ieee80211 device, only. * Separating C based and C++ based code into different file naming schemes: - ieee80211*.cpp files are handling transition from C to C++ and vice versa. - stack/[A-Z]*.cpp files contain C++ code, only. * Locating all ieee80211 related headers in devices/ieee80211/ as long as their scope is somewhat unclear. * Adding two socket ioctls for managing IEEE 802.11 states. Their naming has been kept compatible to FreeBSD. By using ioctls there is no need for structural changes in Haiku's network stack. * Code cleanup mainly geared towards comment usage and pointer style. Modified: haiku/branches/developer/colin/wireless/headers/posix/sys/sockio.h =================================================================== --- haiku/branches/developer/colin/wireless/headers/posix/sys/sockio.h 2010-01-11 13:39:27 UTC (rev 35007) +++ haiku/branches/developer/colin/wireless/headers/posix/sys/sockio.h 2010-01-11 14:16:52 UTC (rev 35008) @@ -1,65 +1,68 @@ /* - * Copyright 2002-2007, Haiku Inc. All Rights Reserved. + * Copyright 2002-2010, Haiku Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef _SYS_SOCKIO_H #define _SYS_SOCKIO_H -#define SIOCADDRT 8900 /* add route */ -#define SIOCDELRT 8901 /* delete route */ -#define SIOCSIFADDR 8902 /* set interface address */ -#define SIOCGIFADDR 8903 /* get interface address */ -#define SIOCSIFDSTADDR 8904 /* set point-to-point address */ -#define SIOCGIFDSTADDR 8905 /* get point-to-point address */ -#define SIOCSIFFLAGS 8906 /* set interface flags */ -#define SIOCGIFFLAGS 8907 /* get interface flags */ -#define SIOCGIFBRDADDR 8908 /* get broadcast address */ -#define SIOCSIFBRDADDR 8909 /* set broadcast address */ -#define SIOCGIFCOUNT 8910 /* count interfaces */ -#define SIOCGIFCONF 8911 /* get interface list */ -#define SIOCGIFINDEX 8912 /* interface name -> index */ -#define SIOCGIFNAME 8913 /* interface index -> name */ -#define SIOCGIFNETMASK 8914 /* get net address mask */ -#define SIOCSIFNETMASK 8915 /* set net address mask */ -#define SIOCGIFMETRIC 8916 /* get interface metric */ -#define SIOCSIFMETRIC 8917 /* set interface metric */ -#define SIOCDIFADDR 8918 /* delete interface address */ -#define SIOCAIFADDR 8919 /* configure interface alias */ -#define SIOCADDMULTI 8920 /* add multicast address */ -#define SIOCDELMULTI 8921 /* delete multicast address */ -#define SIOCGIFMTU 8922 /* get interface MTU */ -#define SIOCSIFMTU 8923 /* set interface MTU */ -#define SIOCSIFMEDIA 8924 /* set net media */ -#define SIOCGIFMEDIA 8925 /* get net media */ +#define SIOCADDRT 8900 // add route +#define SIOCDELRT 8901 // delete route +#define SIOCSIFADDR 8902 // set interface address +#define SIOCGIFADDR 8903 // get interface address +#define SIOCSIFDSTADDR 8904 // set point-to-point address +#define SIOCGIFDSTADDR 8905 // get point-to-point address +#define SIOCSIFFLAGS 8906 // set interface flags +#define SIOCGIFFLAGS 8907 // get interface flags +#define SIOCGIFBRDADDR 8908 // get broadcast address +#define SIOCSIFBRDADDR 8909 // set broadcast address +#define SIOCGIFCOUNT 8910 // count interfaces +#define SIOCGIFCONF 8911 // get interface list +#define SIOCGIFINDEX 8912 // interface name -> index +#define SIOCGIFNAME 8913 // interface index -> name +#define SIOCGIFNETMASK 8914 // get net address mask +#define SIOCSIFNETMASK 8915 // set net address mask +#define SIOCGIFMETRIC 8916 // get interface metric +#define SIOCSIFMETRIC 8917 // set interface metric +#define SIOCDIFADDR 8918 // delete interface address +#define SIOCAIFADDR 8919 // configure interface alias +#define SIOCADDMULTI 8920 // add multicast address +#define SIOCDELMULTI 8921 // delete multicast address +#define SIOCGIFMTU 8922 // get interface MTU +#define SIOCSIFMTU 8923 // set interface MTU +#define SIOCSIFMEDIA 8924 // set net media +#define SIOCGIFMEDIA 8925 // get net media -#define SIOCGRTSIZE 8926 /* get route table size */ -#define SIOCGRTTABLE 8927 /* get route table */ -#define SIOCGETRT 8928 /* get route information for destination */ +#define SIOCGRTSIZE 8926 // get route table size +#define SIOCGRTTABLE 8927 // get route table +#define SIOCGETRT 8928 // get route information for destination -#define SIOCGIFSTATS 8929 /* get interface stats */ -#define SIOCGIFPARAM 8930 /* get interface parameter */ -#define SIOCGIFTYPE 8931 /* get interface type */ +#define SIOCGIFSTATS 8929 // get interface stats +#define SIOCGIFPARAM 8930 // get interface parameter +#define SIOCGIFTYPE 8931 // get interface type -#define SIOCSPACKETCAP 8932 /* Start capturing packets on an interface */ -#define SIOCCPACKETCAP 8933 /* Stop capturing packets on an interface */ +#define SIOCSPACKETCAP 8932 // Start capturing packets on an interface +#define SIOCCPACKETCAP 8933 // Stop capturing packets on an interface -#define SIOCSHIWAT 8934 /* set high watermark */ -#define SIOCGHIWAT 8935 /* get high watermark */ -#define SIOCSLOWAT 8936 /* set low watermark */ -#define SIOCGLOWAT 8937 /* get low watermark */ -#define SIOCATMARK 8938 /* at out-of-band mark? */ -#define SIOCSPGRP 8939 /* set process group */ -#define SIOCGPGRP 8940 /* get process group */ +#define SIOCSHIWAT 8934 // set high watermark +#define SIOCGHIWAT 8935 // get high watermark +#define SIOCSLOWAT 8936 // set low watermark +#define SIOCGLOWAT 8937 // get low watermark +#define SIOCATMARK 8938 // at out-of-band mark? +#define SIOCSPGRP 8939 // set process group +#define SIOCGPGRP 8940 // get process group -#define SIOCGPRIVATE_0 8941 /* device private 0 */ -#define SIOCGPRIVATE_1 8942 /* device private 1 */ -#define SIOCSDRVSPEC 8943 /* set driver-specific parameters */ -#define SIOCGDRVSPEC 8944 /* get driver-specific parameters */ +#define SIOCGPRIVATE_0 8941 // device private 0 +#define SIOCGPRIVATE_1 8942 // device private 1 +#define SIOCSDRVSPEC 8943 // set driver-specific parameters +#define SIOCGDRVSPEC 8944 // get driver-specific parameters -#define SIOCSIFGENERIC 8945 /* generic IF set op */ -#define SIOCGIFGENERIC 8946 /* generic IF get op */ +#define SIOCSIFGENERIC 8945 // generic IF set op +#define SIOCGIFGENERIC 8946 // generic IF get op -#define SIOCEND 9000 /* SIOCEND >= highest SIOC* */ +#define SIOCG80211 8947 // get IEEE 802.11 data +#define SIOCS80211 8948 // set IEEE 802.11 data -#endif /* _SYS_SOCKIO_H */ +#define SIOCEND 9000 // SIOCEND >= highest SIOC* + +#endif // _SYS_SOCKIO_H Modified: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/Jamfile =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/Jamfile 2010-01-11 13:39:27 UTC (rev 35007) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/Jamfile 2010-01-11 14:16:52 UTC (rev 35008) @@ -1,8 +1,15 @@ +SubInclude HAIKU_TOP src add-ons kernel network devices ieee80211 stack ; + SubDir HAIKU_TOP src add-ons kernel network devices ieee80211 ; +UseHeaders [ FDirName $(SUBDIR) ] : true ; +UseHeaders [ FDirName $(SUBDIR) stack ] ; + UsePrivateKernelHeaders ; UsePrivateHeaders net ; KernelAddon ieee80211 : ieee80211.cpp + ieee80211_control.cpp + : libieee80211.a ; Modified: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.cpp =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.cpp 2010-01-11 13:39:27 UTC (rev 35007) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.cpp 2010-01-11 14:16:52 UTC (rev 35008) @@ -1,5 +1,5 @@ /* - * Copyright 2010, Haiku, Inc. All Rights Reserved. + * Copyright 2010 Haiku Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -7,15 +7,17 @@ */ +#include <sys/sockio.h> + #include <ieee80211.h> +#include <ieee80211_control.h> +#include <ieee80211_device.h> #include <net_buffer.h> -#include <net_device.h> #include <net_stack.h> #include <lock.h> #include <util/AutoLock.h> -#include <util/DoublyLinkedList.h> #include <KernelExport.h> @@ -29,30 +31,25 @@ #include <string.h> -struct ieee80211_device : net_device, - DoublyLinkedListLinkImpl<ieee80211_device> { - int fd; -}; +net_buffer_module_info* gBufferModule; +static net_stack_module_info* sStackModule; -net_buffer_module_info *gBufferModule; -static net_stack_module_info *sStackModule; - // #pragma mark - status_t -ieee80211_init(const char *name, net_device **_device) +ieee80211_init(const char* name, net_device** _device) { if (strncmp(name, "/dev/net/ieee80211/", 19)) return B_BAD_VALUE; status_t status = get_module(NET_BUFFER_MODULE_NAME, - (module_info **)&gBufferModule); + reinterpret_cast<module_info**>(&gBufferModule)); if (status < B_OK) return status; - ieee80211_device *device = new (std::nothrow) ieee80211_device; + ieee80211_device* device = new (std::nothrow) ieee80211_device; if (device == NULL) { put_module(NET_BUFFER_MODULE_NAME); return B_NO_MEMORY; @@ -60,36 +57,49 @@ memset(device, 0, sizeof(ieee80211_device)); - strcpy(device->name, name); + strncpy(device->name, name, IF_NAMESIZE); device->flags = IFF_BROADCAST | IFF_LINK | IFF_SIMPLEX; device->type = IFT_IEEE80211; device->mtu = IEEE80211_MTU; device->media = IFM_ACTIVE | IFM_IEEE80211; device->header_length = IEEE80211_NON_QOS_3_ADDRESS_DATA_HEADER_LENGTH; - device->fd = -1; - + *_device = device; return B_OK; } status_t -ieee80211_uninit(net_device *device) +ieee80211_uninit(net_device* _device) { + Ieee80211::Device* device + = reinterpret_cast<ieee80211_device*>(_device)->genericDevice; + put_module(NET_BUFFER_MODULE_NAME); delete device; + delete _device; return B_OK; } status_t -ieee80211_up(net_device *_device) +ieee80211_up(net_device* _device) { - ieee80211_device *device = (ieee80211_device *)_device; + ieee80211_device* device = reinterpret_cast<ieee80211_device*>(_device); - device->fd = open(device->name, O_RDWR); - if (device->fd < 0) + device->genericDevice = new (std::nothrow) Ieee80211::Device(); + if (device->genericDevice == NULL) + return B_NO_MEMORY; + + status_t status = device->genericDevice->InitCheck(); + if (device->genericDevice->InitCheck() < B_OK) { + delete device->genericDevice; + return status; + } + + device->genericDevice->fFileDescriptor = open(_device->name, O_RDWR); + if (device->genericDevice->fFileDescriptor < 0) return errno; return B_OK; @@ -97,68 +107,79 @@ void -ieee80211_down(net_device *_device) +ieee80211_down(net_device* _device) { - ieee80211_device *device = (ieee80211_device *)_device; + Ieee80211::Device* device + = reinterpret_cast<ieee80211_device*>(_device)->genericDevice; - close(device->fd); - device->fd = -1; + close(device->fFileDescriptor); + device->fFileDescriptor = -1; } status_t -ieee80211_control(net_device *_device, int32 op, void *argument, - size_t length) +ieee80211_control(net_device* _device, int32 op, void* argument, size_t length) { - ieee80211_device *device = (ieee80211_device *)_device; - return ioctl(device->fd, op, argument, length); + ieee80211_device* device + = reinterpret_cast<ieee80211_device*>(_device); + ieee80211req_t* request + = reinterpret_cast<ieee80211req_t*>(argument); + + switch (op) { + case SIOCG80211: + return ieee80211_from_management(device, request, length); + case SIOCS80211: + return ieee80211_to_management(device, request, length); + } + + return ioctl(device->genericDevice->fFileDescriptor, op, argument, length); } status_t -ieee80211_send_data(net_device *_device, net_buffer *buffer) +ieee80211_send_data(net_device* _device, net_buffer* buffer) { return B_OK; } status_t -ieee80211_receive_data(net_device *_device, net_buffer **_buffer) +ieee80211_receive_data(net_device* _device, net_buffer** _buffer) { return B_OK; } status_t -ieee80211_set_mtu(net_device *_device, size_t mtu) +ieee80211_set_mtu(net_device* _device, size_t mtu) { return B_OK; } status_t -ieee80211_set_promiscuous(net_device *_device, bool promiscuous) +ieee80211_set_promiscuous(net_device* _device, bool promiscuous) { return B_OK; } status_t -ieee80211_set_media(net_device *device, uint32 media) +ieee80211_set_media(net_device* _device, uint32 media) { return EOPNOTSUPP; } status_t -ieee80211_add_multicast(struct net_device *_device, const sockaddr *_address) +ieee80211_add_multicast(struct net_device* _device, const sockaddr* _address) { return EOPNOTSUPP; } status_t -ieee80211_remove_multicast(struct net_device *_device, const sockaddr *_address) +ieee80211_remove_multicast(struct net_device* _device, const sockaddr* _address) { return EOPNOTSUPP; } @@ -171,9 +192,11 @@ case B_MODULE_INIT: { status_t status = get_module(NET_STACK_MODULE_NAME, - (module_info **)&sStackModule); + reinterpret_cast<module_info**>(&sStackModule)); if (status < B_OK) return status; + + // TODO construct Ieee80211::Stack object return B_OK; } @@ -181,6 +204,8 @@ case B_MODULE_UNINIT: { put_module(NET_STACK_MODULE_NAME); + + // TODO destruct Ieee80211::Stack object return B_OK; } @@ -190,7 +215,7 @@ } -net_device_module_info sIeee80211Module = { +net_device_module_info sIeee80211DeviceModule = { { "network/devices/ieee80211/v1", 0, @@ -210,7 +235,7 @@ ieee80211_remove_multicast, }; -module_info *modules[] = { - (module_info *)&sIeee80211Module, +module_info* modules[] = { + reinterpret_cast<module_info*>(&sIeee80211DeviceModule), NULL }; Copied: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.h (from rev 34887, haiku/branches/developer/colin/wireless/headers/private/net/ieee80211.h) =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.h (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211.h 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,15 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef IEEE80211_H_ +#define IEEE80211_H_ + + +#define IEEE80211_MTU 2304 + // IEEE 802.11-2007, p.60 + +#define IEEE80211_NON_QOS_3_ADDRESS_DATA_HEADER_LENGTH 24 + // IEEE 802.11-2007, p.77 + +#endif // IEEE80211_H_ Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,45 @@ +/* + * Copyright 2010 Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Colin Günther, coling@xxxxxx + */ + + +#include <ieee80211_control.h> +#include <ieee80211_device.h> + + +/*! Handles flow of information from the Station Management Entity. + For retrieving data from the Station Management Entity (SME), like getting + properties or detected wireless networks. + + \param _device on which the SME will operate. + \param _request to be performed by the SME. + \param length of _request in byte. Needed to copy-out the _request data + into userland memory. + */ +status_t +ieee80211_from_management(ieee80211_device* _device, ieee80211req_t* _request, + size_t length) +{ + return B_NOT_SUPPORTED; +} + + +/*! Handles flow of information into the Station Management Entity. + For delivering new data to the Station Management Entity (SME), like + setting properties or scanning for wireless networks. + + \param _device on which the SME will operate. + \param _request to be performed by the SME. + \param length of _request in byte. Needed to copy-in the _request data + from userland memory. + */ +status_t +ieee80211_to_management(ieee80211_device* _device, ieee80211req_t* _request, + size_t length) +{ + return B_NOT_SUPPORTED; +} Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.h =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.h (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.h 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,43 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef IEEE80211_CONTROL_H_ +#define IEEE80211_CONTROL_H_ + + +#include <SupportDefs.h> + +#include <ieee80211_device.h> + + +// #pragma mark - request types + + +enum request_t { + IEEE80211_IOC_CHANNEL, // get/set channel number + IEEE80211_IOC_BSSID, // get/set BSSID of desired WLAN + IEEE80211_IOC_CONN_REQ // connect to a specific WLAN +}; + + +// #pragma mark - request structures + + +struct request_data { + uint16 lengthInByte; + void* data; +}; +typedef struct request_data request_data_t; + +struct ieee80211req { + request_t type; + request_data_t data; +}; +typedef struct ieee80211req ieee80211req_t; + + +status_t ieee80211_from_management(ieee80211_device*, ieee80211req_t*, size_t); +status_t ieee80211_to_management(ieee80211_device*, ieee80211req_t*, size_t); + +#endif // IEEE80211_CONTROL_H_ Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_control.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_device.h =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_device.h (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_device.h 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,21 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef IEEE80211_DEVICE_H_ +#define IEEE80211_DEVICE_H_ + + +#include <net_device.h> + +#include <DoublyLinkedList.h> + +#include "Device.h" + + +struct ieee80211_device : net_device, + DoublyLinkedListLinkImpl<ieee80211_device> { + Ieee80211::Device* genericDevice; +}; + +#endif /* IEEE80211_DEVICE_H_ */ Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/ieee80211_device.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.cpp =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.cpp (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.cpp 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,26 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Colin Günther, coling@xxxxxx + */ + + +/*! Implementation of the stack part of the generic IEEE 802.11 device. + This class embeds all methods for interacting with the the driver part + of the generic IEEE 802.11 device via io controls. + */ + + +#include "Device.h" + + +using namespace Ieee80211; + + +status_t +Device::InitCheck() +{ + return B_OK; +} Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,23 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef DEVICE_H_ +#define DEVICE_H_ + + +#include <SupportDefs.h> + + +namespace Ieee80211 { + +class Device { +public: + status_t InitCheck(); + + int fFileDescriptor; +}; + +} // namespace Ieee80211 + +#endif // DEVICE_H_ Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Device.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,6 @@ +SubDir HAIKU_TOP src add-ons kernel network devices ieee80211 stack ; + +KernelStaticLibrary libieee80211.a : + Device.cpp + Management.cpp + ; Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.cpp =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.cpp (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.cpp 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,25 @@ +/* + * Copyright 2010 Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Colin Günther, coling@xxxxxx + */ + + +/*! Implementation of the Station Management Entity (SME). + The term SME refers to the concept as described in the IEEE 802.11 + documentation. + It handles all management related tasks, needed for operating the + wireless connection properly. + + \sa IEEE Std 802.11-2007, section 10 "Layer Management" + */ + + +#include "Management.h" + + +namespace Ieee80211 { + +} // namespace Ieee80211 Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.h =================================================================== --- haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.h (rev 0) +++ haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.h 2010-01-11 14:16:52 UTC (rev 35008) @@ -0,0 +1,9 @@ +/* + * Copyright 2010 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef MANAGEMENT_H_ +#define MANAGEMENT_H_ + + +#endif // MANAGEMENT_H_ Property changes on: haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Management.h ___________________________________________________________________ Added: svn:mime-type + text/plain