A
download EtherHostDriver.java
Language: Java
LOC: 58
Project Info
Teaseme Java Virtual Machine(teaseme)
Server: SourceForge
Type: cvs
...sspath\jos\system\net\jeps\
   ARP.java
   ARPPacket.java
   ARPTableEntry.java
   DatagramPacket.java
   DatagramSocket.java
   DummyNetworkInterface.java
   EtherHostDriver.java
   ...etNetworkInterface.java
   EtherPacket.java
   HWAddr.java
   ICMP.java
   ICMPPacket.java
   IllegalRouteException.java
   InetAddress.java
   IP.java
   IPAddr.java
   IPPacket.java
   Main.java
   ...medPacketException.java
   NetworkInterface.java
   NetworkInterfaceCard.java
   NoRouteException.java
   Packet.java
   Protocol.java
   QuoteServerThread.java
   RoutingTableEntry.java
   StackPanic.java
   TCP.java
   UDP.java
   UDPPacket.java
   UDPQueue.java

package jos.system.net.jeps;

/************************************
 * Basic Ethernet interfacing class *
 * "Hosted" by linux with JNI       *
 *                                  *
 *		Ranieri Argentini   *
 ************************************/
 
class EtherHostDriver extends jos.platform.driver.Device 
		    implements NetworkInterfaceCard
{
  public final int MAX_PACKET_LEN=8000;
  
  String dev;

  private native int init(String intf);
  private native int read(byte[] buffer,int length);
  private native int write(byte[] buffer,int length);
  
  public String getVendor() 
    {return "Ranieri Argentini (R.Argentini@student.tudelft.nl)";}
  
  public String getIssueDate() 
    {return "Yesterday ;)";}
    
  public String getChipID() 
    {return "[ID]";}

  public String getCardName() 
    {return "Ethernet Host Driver for Linux.";}
    

  native void getHW(byte[] buffer);
  
  EtherHostDriver(String dev)
  {
    this.dev=dev;
  }

  public HWAddr getHWAddr()
  {
    HWAddr hwaddr= new HWAddr();
    byte[] buffer= new byte[6];
    getHW(buffer);
    hwaddr.setData(buffer);
    return hwaddr;
  }
  
  static 
  {
    System.loadLibrary("ethhost");
  }
 
  public int init ()
  {
    return init(dev);
  }

  public void write(EtherPacket ep)
  {
    write(ep.data,ep.data.length);
  }


  public EtherPacket read()
  {
    byte[] buffer = new byte[MAX_PACKET_LEN];
    int size = read(buffer,MAX_PACKET_LEN);
    if (size==-1)
      {
        return null;
      }
    else
      {
        // THis is dirty and slow. 
	byte[] buff= new byte[size];
	System.arraycopy(buffer,0,buff,0,size);
        return new EtherPacket(buff);
      }
  }
}

About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us