middleware/netware/ethernetudp.c File Reference

Go to the source code of this file.

Functions

void F_EthernetUdpInit (void)
INT8U F_EthernetUdpPacketReceive (ETHBUFFER *pBuffer)
INT8U F_EthernetUdpPacketSend (ETHBUFFER *pBuffer, INT8U *pIpAddress, INT16U SourcePort, INT16U DestinationPort)
INT8U F_EthernetUdpBufferReserve (ETHBUFFER *pBuffer)
INT16U F_EthernetUdpSourcePortGet (ETHBUFFER *pBuffer)

Variables

UDP_CONTROL UdpCtrl


Function Documentation

INT8U F_EthernetUdpBufferReserve ( ETHBUFFER *  pBuffer  ) 

Definition at line 52 of file ethernetudp.c.

00052                                                     {
00053     F_EthernetBufferReserve(pBuffer,sizeof(ETHERNET_HEAD));
00054     F_EthernetBufferReserve(pBuffer,sizeof(IP_HEAD)); 
00055     F_EthernetBufferReserve(pBuffer,sizeof(UDP_HEAD));
00056     return TRUE;
00057 }

void F_EthernetUdpInit ( void   ) 

Definition at line 15 of file ethernetudp.c.

00015                             {
00016     UdpCtrl.InUse=FALSE;
00017     //UdpCtrl.Id=ID_ETHERNET_UDP;
00018     UdpCtrl.State=EthernetUdpIdleState;
00019 }

INT8U F_EthernetUdpPacketReceive ( ETHBUFFER *  pBuffer  ) 

Definition at line 20 of file ethernetudp.c.

00020                                                     {
00021     UDP_HEAD *pUdpHead=(UDP_HEAD *)(pBuffer->pData);
00022     
00023     #if(DEBUG_ETHERNET_UDP==1)
00024         printf("\n UDP receive");
00025     #endif
00026     pBuffer->Length=F_EthernetUnsignedShortN2H(pUdpHead->Length);
00027     F_EthernetBufferPull(pBuffer,sizeof(UDP_HEAD)); // point to pBuffer.Data[0+EHTHERNET_HEAD+IP_HEAD+UDP_HEAD]
00028     if(F_EthernetUnsignedShortN2H(pUdpHead->Destination)==TFTP) 
00029         F_EthernetTftpPacketReceive(pBuffer);
00030     //else if(F_EthernetUnsignedShortN2H(pUdpHead->Destination)==SNMP){
00031     //
00032     //}        
00033     return TRUE;
00034 }

INT8U F_EthernetUdpPacketSend ( ETHBUFFER *  pBuffer,
INT8U *  pIpAddress,
INT16U  SourcePort,
INT16U  DestinationPort 
)

Definition at line 35 of file ethernetudp.c.

00038                                                      {
00039     UDP_HEAD *pUdpHead;
00040     
00041     #if(DEBUG_ETHERNET_UDP==1)
00042         printf("\n UDP send ");
00043     #endif
00044     pUdpHead=(UDP_HEAD *)F_EthernetBufferPush(pBuffer,sizeof(UDP_HEAD));                         
00045     pUdpHead->Source=F_EthernetUnsignedShortH2N(SourcePort);
00046     pUdpHead->Destination=F_EthernetUnsignedShortH2N(DestinationPort);         
00047     pUdpHead->Length=F_EthernetUnsignedShortH2N(12); // 12 byte packet length??
00048     pUdpHead->Check=0;
00049     F_EthernetIpSend(pBuffer,pIpAddress,UDP);
00050     return TRUE;
00051 }

INT16U F_EthernetUdpSourcePortGet ( ETHBUFFER *  pBuffer  ) 

Definition at line 58 of file ethernetudp.c.

00058                                                      {
00059     UDP_HEAD *pUdpHead;
00060     
00061     pUdpHead=(UDP_HEAD *)(pBuffer->Data+ETHERNET_HEAD_LENGTH+sizeof(IP_HEAD));
00062     return F_EthernetUnsignedShortN2H(pUdpHead->Source);
00063 }


Variable Documentation

UDP_CONTROL UdpCtrl

Definition at line 13 of file ethernetudp.c.


Generated on Tue Sep 2 08:45:42 2008 for A Simple operation System using S3C2410 by  doxygen 1.5.6