The Pedigree Project  0.1
Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Rtl8139 Class Reference

#include <Rtl8139.h>

+ Inheritance diagram for Rtl8139:
+ Collaboration diagram for Rtl8139:

Classes

struct  packet
 

Public Member Functions

 Rtl8139 (Network *pDev)
 
virtual void getName (String &str)
 
virtual bool send (size_t nBytes, uintptr_t buffer)
 
virtual bool setStationInfo (StationInfo info)
 
virtual StationInfo getStationInfo ()
 
virtual bool isConnected ()
 
virtual bool irq (irq_id_t number, InterruptState &state)
 
- Public Member Functions inherited from Network
 Network (Network *pDev)
 
virtual Type getType ()
 
virtual void dump (String &str)
 
virtual bool setStationInfo (const StationInfo &info)
 
virtual void gotPacket ()
 
virtual void droppedPacket ()
 Called when a packet is dropped by the system.
 
virtual void badPacket ()
 
- Public Member Functions inherited from Device
 Device (Device *p)
 
DevicegetParent () const
 
void setParent (Device *p)
 
virtual String getSpecificType ()
 
virtual void setSpecificType (String str)
 
void setPciPosition (uint32_t bus, uint32_t device, uint32_t func)
 
void setPciIdentifiers (uint8_t classCode, uint8_t subclassCode, uint16_t vendorId, uint16_t deviceId, uint8_t progIf)
 
void setPciConfigHeader (const PciBus::ConfigSpace &space)
 
PciBus::ConfigSpace getPciConfigHeader () const
 
uint8_t getPciClassCode ()
 
uint8_t getPciSubclassCode ()
 
uint16_t getPciVendorId ()
 
uint16_t getPciDeviceId ()
 
uint8_t getPciProgInterface ()
 
uint32_t getPciBusPosition ()
 
uint32_t getPciDevicePosition ()
 
uint32_t getPciFunctionNumber ()
 
virtual Vector< Address * > & addresses ()
 
virtual uintptr_t getInterruptNumber ()
 
virtual void setInterruptNumber (uintptr_t n)
 
void addChild (Device *pDevice)
 
DevicegetChild (size_t n)
 
size_t getNumChildren ()
 
void removeChild (size_t n)
 
void removeChild (Device *d)
 
void replaceChild (Device *src, Device *dest)
 

Public Attributes

IoBasem_pBase
 

Private Member Functions

void recv ()
 
void reset ()
 
 Rtl8139 (const Rtl8139 &)
 
void operator= (const Rtl8139 &)
 

Private Attributes

StationInfo m_StationInfo
 
uint32_t m_RxCurr
 
uint8_t m_TxCurr
 
volatile bool m_RxLock
 
Spinlock m_TxLock
 
uint8_t * m_pRxBuffVirt
 
uint8_t * m_pTxBuffVirt
 
uintptr_t m_pRxBuffPhys
 
uintptr_t m_pTxBuffPhys
 
MemoryRegion m_RxBuffMR
 
MemoryRegion m_TxBuffMR
 

Additional Inherited Members

- Public Types inherited from Device
enum  Type {
  Generic, Root, Disk, Bus,
  Display, Network, Sound, Console,
  Mouse, Controller, UsbController, UsbGeneric,
  UsbContainer
}
 
typedef Device *(* Callback) (Device *)
 
- Static Public Member Functions inherited from Network
static EXPORTED_PUBLIC uint32_t convertToIpv4 (uint8_t a, uint8_t b, uint8_t c, uint8_t d)
 
static EXPORTED_PUBLIC IpAddress convertToIpv6 (uint8_t a, uint8_t b=0, uint8_t c=0, uint8_t d=0, uint8_t e=0, uint8_t f=0, uint8_t g=0, uint8_t h=0, uint8_t i=0, uint8_t j=0, uint8_t k=0, uint8_t l=0, uint8_t m=0, uint8_t n=0, uint8_t o=0, uint8_t p=0)
 
static EXPORTED_PUBLIC uint16_t calculateChecksum (uintptr_t buffer, size_t nBytes)
 
- Static Public Member Functions inherited from Device
static void foreach (Callback callback, Device *root=0)
 
template<class F , class... Args>
static void foreach (pedigree_std::Callable< F > &callback, Device *root, Args...args)
 
static void addToRoot (Device *device)
 
static void searchByVendorId (uint16_t vendorId, void(*callback)(Device *), Device *root=0)
 
static void searchByVendorIdAndDeviceId (uint16_t vendorId, uint16_t deviceId, void(*callback)(Device *), Device *root=0)
 
static void searchByClass (uint16_t classCode, void(*callback)(Device *), Device *root=0)
 
static void searchByClassAndSubclass (uint16_t classCode, uint16_t subclassCode, void(*callback)(Device *), Device *root=0)
 
static void searchByClassSubclassAndProgInterface (uint16_t classCode, uint16_t subclassCode, uint8_t progInterface, void(*callback)(Device *), Device *root=0)
 
- Protected Member Functions inherited from Device
 NOT_COPYABLE_OR_ASSIGNABLE (Device)
 
- Protected Member Functions inherited from IrqHandler
virtual ~IrqHandler ()
 
- Static Protected Member Functions inherited from Device
static Deviceroot ()
 
- Protected Attributes inherited from Network
StationInfo m_StationInfo
 
- Protected Attributes inherited from Device
Vector< Address * > m_Addresses
 
Vector< Device * > m_Children
 
Devicem_pParent
 
uintptr_t m_InterruptNumber
 
String m_SpecificType
 
PciBus::ConfigSpace m_ConfigHeader
 
uint8_t m_ClassCode
 
uint8_t m_SubclassCode
 
uint16_t m_VendorId
 
uint16_t m_DeviceId
 
uint8_t m_ProgInterface
 
uint32_t m_PciBusPos
 
uint32_t m_PciDevicePos
 
uint32_t m_PciFunctionNum
 
- Static Protected Attributes inherited from Device
static Device m_Root
 
static Mutex m_TreeLock
 

Detailed Description

Device driver for the RTL8139 class of network device

Definition at line 38 of file Rtl8139.h.

Member Function Documentation

virtual void Rtl8139::getName ( String str)
inlinevirtual

Stores the device's name in str.

Reimplemented from Network.

Definition at line 44 of file Rtl8139.h.

References getStationInfo(), irq(), isConnected(), and send().

StationInfo Rtl8139::getStationInfo ( )
virtual

Gets station information (such as IP addresses)

Reimplemented from Network.

Definition at line 266 of file Rtl8139.cc.

Referenced by getName().

+ Here is the caller graph for this function:

bool Rtl8139::irq ( irq_id_t  number,
InterruptState &  state 
)
virtual

Called when the handler is registered with the irq manager and the irq occurred

Note
If this function returns false you have to call IrqManager::acknowledgeIrq() when you removed the interrupt reason.
Parameters
[in]numberthe irq number
Returns
should return true, if the interrupt reason was removed, or false otherwise

Implements IrqHandler.

Definition at line 276 of file Rtl8139.cc.

References WARNING.

Referenced by getName().

+ Here is the caller graph for this function:

bool Rtl8139::isConnected ( )
virtual

Is this device actually connected to a network?

Reimplemented from Network.

Definition at line 271 of file Rtl8139.cc.

Referenced by getName().

+ Here is the caller graph for this function:

bool Rtl8139::send ( size_t  nBytes,
uintptr_t  buffer 
)
virtual

Sends a given packet through the device.

Parameters
nBytesThe number of bytes to send.
bufferA buffer with the packet to send

Implements Network.

Definition at line 149 of file Rtl8139.cc.

References Dec, ERROR, StationInfo::gateway, Hex, NetworkStack::instance(), StationInfo::nDnsServers, NOTICE, NetworkStack::receive(), and WARNING.

Referenced by getName().

+ Here is the caller graph for this function:


The documentation for this class was generated from the following files: