home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.1 (Developer) [x86] / NeXT Step 3.1 Intel dev.cdr.dmg / NextDeveloper / Headers / driverkit / IOEthernet.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-17  |  1.6 KB  |  83 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. @protected
  25.     IONetwork        *netif;
  26.     enet_addr_t        ethernetAddress;
  27. @private
  28.     BOOL        _isRunning;
  29.     BOOL        _promiscEnabled;
  30.     id            _driverCmd;
  31.     ns_time_t        _absTimeout;
  32.     id                  _multiLock;    // NXLock, protects multicastQ
  33.     enet_addr_t      _multiAddr;    // current multicast addr 
  34.     queue_head_t    _multicastQueue; // queue of multicast addresses
  35. }
  36.  
  37. - initFromDeviceDescription:(IODeviceDescription *)devDesc;
  38. - free;
  39.  
  40. - (BOOL)isRunning;
  41.  
  42. - (unsigned int)relativeTimeout;
  43.  
  44. - (void)setRelativeTimeout:(unsigned int)timeout;
  45.  
  46. - (void)clearTimeout;
  47.  
  48. - (BOOL)isUnwantedMulticastPacket:(ether_header_t *)header; 
  49.  
  50. - (void)performLoopback : (netbuf_t)pkt;
  51.  
  52. @end
  53.  
  54. @interface IOEthernet(DriverInterface)
  55.  
  56. - (BOOL)resetAndEnable:(BOOL)enable;
  57.  
  58. - (void)interruptOccurred;
  59.  
  60. - (void)transmit:(netbuf_t)pkt;
  61.  
  62. - (void)timeoutOccurred;
  63.  
  64. - (void)receivePacket:(void *)pkt
  65.         length:(unsigned int *)pkt_len
  66.         timeout:(unsigned int)timeout;
  67.         
  68. - (void)sendPacket:(void *)pkt
  69.         length:(unsigned int)pkt_len;
  70.  
  71. - (BOOL)enablePromiscuousMode;     
  72. - (void)disablePromiscuousMode;     
  73. - (BOOL)enableMulticastMode;     
  74. - (void)disableMulticastMode;     
  75.  
  76. - (void)addMulticastAddress:(enet_addr_t *)addr;
  77. - (void)removeMulticastAddress:(enet_addr_t *)addr;
  78.  
  79.  
  80. @end
  81.  
  82. #endif
  83.