home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Headers / driverkit / IOEthernet.h < prev    next >
Text File  |  1993-08-06  |  2KB  |  73 lines

  1. /*
  2.  * Copyright (c) 1992 NeXT Computer, Inc.
  3.  *
  4.  * Device independent abstract superclass for Ethernet.
  5.  *
  6.  * HISTORY
  7.  *
  8.  * 25 September 1992 David E. Bohman at NeXT
  9.  *    Created.
  10.  */
  11.  
  12. #ifdef    KERNEL
  13.  
  14. #import <driverkit/IODirectDevice.h>
  15. #import <driverkit/IONetwork.h>
  16. #import <kernserv/ns_timer.h>
  17. #import <kernserv/queue.h>
  18.  
  19. #import <bsd/net/etherdefs.h>
  20.  
  21.  
  22. @interface IOEthernet:IODirectDevice<IONetworkDeviceMethods>
  23. {
  24. @private
  25.     BOOL        _isRunning;
  26.     BOOL        _promiscEnabled;
  27.     id            _driverCmd;
  28.     ns_time_t        _absTimeout;
  29.     id                  _multiLock;        // NXLock, protects multicastQ
  30.     enet_addr_t      _multiAddr;        // current multicast addr 
  31.     queue_head_t    _multicastQueue;     // queue of multicast addresses
  32.     IONetwork        *_netif;
  33.     enet_addr_t        _ethernetAddress;
  34.     int            _IOEthernet_reserved[4];
  35. }
  36.  
  37. - initFromDeviceDescription:(IODeviceDescription *)devDesc;
  38. - free;
  39.  
  40. - (BOOL)isRunning;
  41. - (void)setRunning:(BOOL)running;
  42.  
  43. - (unsigned int)relativeTimeout;
  44.  
  45. - (void)setRelativeTimeout:(unsigned int)timeout;
  46.  
  47. - (void)clearTimeout;
  48.  
  49. - (BOOL)isUnwantedMulticastPacket:(ether_header_t *)header; 
  50.  
  51. - (void)performLoopback:(netbuf_t)pkt;
  52.  
  53. @end
  54.  
  55. @interface IOEthernet(DriverInterface)
  56.  
  57. - (BOOL)resetAndEnable:(BOOL)enable;
  58. - (IONetwork *)attachToNetworkWithAddress:(enet_addr_t)addrs;
  59.  
  60. - (void)transmit:(netbuf_t)pkt;
  61.  
  62. - (BOOL)enablePromiscuousMode;     
  63. - (void)disablePromiscuousMode;     
  64. - (BOOL)enableMulticastMode;     
  65. - (void)disableMulticastMode;     
  66.  
  67. - (void)addMulticastAddress:(enet_addr_t *)addr;
  68. - (void)removeMulticastAddress:(enet_addr_t *)addr;
  69.  
  70. @end
  71.  
  72. #endif
  73.