summaryrefslogblamecommitdiffstats
path: root/drivers/staging/csr/csr_wifi_router_serialize.c
blob: 4eccf5d6c289f2f2358c7638b58bd3ff2a753c48 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                                              
                       
                        




                                      
               


 
                                                         
 
                          

                                                                                     
                                                      
                                                                              
                                                  
                                             



                      
                                                                         



                                                                                            
                                                          
                                                         
                                                      
                                                 



                
                                                                     
 
                                                                                                                  
                  


                                                           
                                                                    
                                                                   
                                                                
                                                           




                     
                                                

                                                                           
                          

                                                                                     
                                                                           
                                                                                
                                                                          
                                                                   

                                                                                                      
                                                                      
                                                                          



                      
                                                                



                                                                          
                                                          
                                                              
                                                         

                               
                                                                                                  

                                                                                             
                                                      
                                                     
                                                        



                
                                                            
 
                                                                                                
                  


                                                           
                                                                    
                                                                        
                                                                   

                               
                                                                       
                                                                                          






                                                                          
                                                                
                                                               
                                                                  







                                                                                            

                            


 
                                                
 
                          

                                                                                    
                                                      
                                                           




                                                      
                                                                



                                                                          
                                                          
                                                              
                                                    



                
                                                            
 
                                                                                                
                  


                                                           
                                                                    
                                                                        
                                                              




                     
                                                      
 
                          

                                                                                     
                                                      
                                                 
                                                                    
                                                            



                      
                                                                      



                                                                                      
                                                          
                                                     

                                                                                    



                
                                                                  
 
                                                                                                            
                  


                                                           
                                                                    
                                                               

                                                                            




                     
                                                         
 
                          

                                                                                     
                                                      
                                                           
                                                      
                                                     



                      
                                                                         



                                                                                            
                                                          
                                                              

                                                         



                
                                                                     
 
                                                                                                                  
                  


                                                           
                                                                    
                                                                        

                                                                   




                     
                                                           
 
                          

                                                                                    
                                                      




                                                      
                                                                           



                                                                                                

                                                          



                
                                                                       
 
                                                                                                                      
                  


                                                           

                                                                    




                     
                                                
 
                          

                                                                                     
                                                      
                                                      
                                                 
                                              



                      
                                                                



                                                                          

                                                          
                                                     
                                                  



                
                                                            
 
                                                                                                
                  


                                                           

                                                                    
                                                               
                                                            




                     
                                                

                                                                           
                          

                                                                                     
                                                                           
                                                                                
                                                                           
                                                                          
                                                                   
                                                                                                      

                                                                   
                                                                   



                      
                                                                



                                                                          
                                                          
                                                              

                                                         

                               
                                                                                                  

                                                                                             


                                                  



                
                                                            
 
                                                                                                
                  


                                                           
                                                                    
                                                                        

                                                                   

                               
                                                                       
                                                                                          






                                                                          


                                                            







                                                                                            

                            


 
/*****************************************************************************

            (c) Cambridge Silicon Radio Limited 2011
            All rights reserved and confidential information of CSR

            Refer to LICENSE.txt included with this source for details
            on the license terms.

*****************************************************************************/

/* Note: this is an auto-generated file. */
#include <linux/slab.h>
#include "csr_msgconv.h"
#include "csr_wifi_router_prim.h"
#include "csr_wifi_router_serialize.h"

void CsrWifiRouterPfree(void *ptr)
{
    kfree(ptr);
}


size_t CsrWifiRouterMaPacketSubscribeReqSizeof(void *msg)
{
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 12) */
    bufferSize += 2; /* u16 primitive->interfaceTag */
    bufferSize += 1; /* CsrWifiRouterEncapsulation primitive->encapsulation */
    bufferSize += 2; /* u16 primitive->protocol */
    bufferSize += 4; /* u32 primitive->oui */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketSubscribeReqSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketSubscribeReq *primitive = (CsrWifiRouterMaPacketSubscribeReq *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint8Ser(ptr, len, (u8) primitive->encapsulation);
    CsrUint16Ser(ptr, len, (u16) primitive->protocol);
    CsrUint32Ser(ptr, len, (u32) primitive->oui);
    return(ptr);
}


void* CsrWifiRouterMaPacketSubscribeReqDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketSubscribeReq *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketSubscribeReq), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint8Des((u8 *) &primitive->encapsulation, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->protocol, buffer, &offset);
    CsrUint32Des((u32 *) &primitive->oui, buffer, &offset);

    return primitive;
}


size_t CsrWifiRouterMaPacketReqSizeof(void *msg)
{
    CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *) msg;
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 20) */
    bufferSize += 2;                      /* u16 primitive->interfaceTag */
    bufferSize += 1;                      /* u8 primitive->subscriptionHandle */
    bufferSize += 2;                      /* u16 primitive->frameLength */
    bufferSize += primitive->frameLength; /* u8 primitive->frame */
    bufferSize += 4;                      /* CsrWifiRouterFrameFreeFunction primitive->freeFunction */
    bufferSize += 2;                      /* CsrWifiRouterPriority primitive->priority */
    bufferSize += 4;                      /* u32 primitive->hostTag */
    bufferSize += 1;                      /* u8 primitive->cfmRequested */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketReqSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle);
    CsrUint16Ser(ptr, len, (u16) primitive->frameLength);
    if (primitive->frameLength)
    {
        CsrMemCpySer(ptr, len, (const void *) primitive->frame, ((u16) (primitive->frameLength)));
    }
    CsrUint32Ser(ptr, len, 0); /* Special for Function Pointers... primitive->freeFunction */
    CsrUint16Ser(ptr, len, (u16) primitive->priority);
    CsrUint32Ser(ptr, len, (u32) primitive->hostTag);
    CsrUint8Ser(ptr, len, (u8) primitive->cfmRequested);
    return(ptr);
}


void* CsrWifiRouterMaPacketReqDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketReq *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketReq), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->frameLength, buffer, &offset);
    if (primitive->frameLength)
    {
        primitive->frame = kmalloc(primitive->frameLength, GFP_KERNEL);
        CsrMemCpyDes(primitive->frame, buffer, &offset, ((u16) (primitive->frameLength)));
    }
    else
    {
        primitive->frame = NULL;
    }
    primitive->freeFunction = NULL; /* Special for Function Pointers... */
    offset += 4;
    CsrUint16Des((u16 *) &primitive->priority, buffer, &offset);
    CsrUint32Des((u32 *) &primitive->hostTag, buffer, &offset);
    CsrUint8Des((u8 *) &primitive->cfmRequested, buffer, &offset);

    return primitive;
}


void CsrWifiRouterMaPacketReqSerFree(void *voidPrimitivePointer)
{
    CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *) voidPrimitivePointer;
    kfree(primitive->frame);
    kfree(primitive);
}


size_t CsrWifiRouterMaPacketResSizeof(void *msg)
{
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 8) */
    bufferSize += 2; /* u16 primitive->interfaceTag */
    bufferSize += 1; /* u8 primitive->subscriptionHandle */
    bufferSize += 2; /* CsrResult primitive->result */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketResSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketRes *primitive = (CsrWifiRouterMaPacketRes *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle);
    CsrUint16Ser(ptr, len, (u16) primitive->result);
    return(ptr);
}


void* CsrWifiRouterMaPacketResDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketRes *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketRes), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->result, buffer, &offset);

    return primitive;
}


size_t CsrWifiRouterMaPacketCancelReqSizeof(void *msg)
{
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 17) */
    bufferSize += 2; /* u16 primitive->interfaceTag */
    bufferSize += 4; /* u32 primitive->hostTag */
    bufferSize += 2; /* CsrWifiRouterPriority primitive->priority */
    bufferSize += 6; /* u8 primitive->peerMacAddress.a[6] */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketCancelReqSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketCancelReq *primitive = (CsrWifiRouterMaPacketCancelReq *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint32Ser(ptr, len, (u32) primitive->hostTag);
    CsrUint16Ser(ptr, len, (u16) primitive->priority);
    CsrMemCpySer(ptr, len, (const void *) primitive->peerMacAddress.a, ((u16) (6)));
    return(ptr);
}


void* CsrWifiRouterMaPacketCancelReqDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketCancelReq *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketCancelReq), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint32Des((u32 *) &primitive->hostTag, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->priority, buffer, &offset);
    CsrMemCpyDes(primitive->peerMacAddress.a, buffer, &offset, ((u16) (6)));

    return primitive;
}


size_t CsrWifiRouterMaPacketSubscribeCfmSizeof(void *msg)
{
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 10) */
    bufferSize += 2; /* u16 primitive->interfaceTag */
    bufferSize += 1; /* u8 primitive->subscriptionHandle */
    bufferSize += 2; /* CsrResult primitive->status */
    bufferSize += 2; /* u16 primitive->allocOffset */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketSubscribeCfmSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketSubscribeCfm *primitive = (CsrWifiRouterMaPacketSubscribeCfm *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle);
    CsrUint16Ser(ptr, len, (u16) primitive->status);
    CsrUint16Ser(ptr, len, (u16) primitive->allocOffset);
    return(ptr);
}


void* CsrWifiRouterMaPacketSubscribeCfmDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketSubscribeCfm *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketSubscribeCfm), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->status, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->allocOffset, buffer, &offset);

    return primitive;
}


size_t CsrWifiRouterMaPacketUnsubscribeCfmSizeof(void *msg)
{
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 7) */
    bufferSize += 2; /* u16 primitive->interfaceTag */
    bufferSize += 2; /* CsrResult primitive->status */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketUnsubscribeCfmSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketUnsubscribeCfm *primitive = (CsrWifiRouterMaPacketUnsubscribeCfm *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint16Ser(ptr, len, (u16) primitive->status);
    return(ptr);
}


void* CsrWifiRouterMaPacketUnsubscribeCfmDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketUnsubscribeCfm *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketUnsubscribeCfm), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->status, buffer, &offset);

    return primitive;
}


size_t CsrWifiRouterMaPacketCfmSizeof(void *msg)
{
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 13) */
    bufferSize += 2; /* u16 primitive->interfaceTag */
    bufferSize += 2; /* CsrResult primitive->result */
    bufferSize += 4; /* u32 primitive->hostTag */
    bufferSize += 2; /* u16 primitive->rate */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketCfmSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketCfm *primitive = (CsrWifiRouterMaPacketCfm *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint16Ser(ptr, len, (u16) primitive->result);
    CsrUint32Ser(ptr, len, (u32) primitive->hostTag);
    CsrUint16Ser(ptr, len, (u16) primitive->rate);
    return(ptr);
}


void* CsrWifiRouterMaPacketCfmDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketCfm *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketCfm), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->result, buffer, &offset);
    CsrUint32Des((u32 *) &primitive->hostTag, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->rate, buffer, &offset);

    return primitive;
}


size_t CsrWifiRouterMaPacketIndSizeof(void *msg)
{
    CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *) msg;
    size_t bufferSize = 2;

    /* Calculate the Size of the Serialised Data. Could be more efficient (Try 21) */
    bufferSize += 2;                      /* u16 primitive->interfaceTag */
    bufferSize += 1;                      /* u8 primitive->subscriptionHandle */
    bufferSize += 2;                      /* CsrResult primitive->result */
    bufferSize += 2;                      /* u16 primitive->frameLength */
    bufferSize += primitive->frameLength; /* u8 primitive->frame */
    bufferSize += 4;                      /* CsrWifiRouterFrameFreeFunction primitive->freeFunction */
    bufferSize += 2;                      /* s16 primitive->rssi */
    bufferSize += 2;                      /* s16 primitive->snr */
    bufferSize += 2;                      /* u16 primitive->rate */
    return bufferSize;
}


u8* CsrWifiRouterMaPacketIndSer(u8 *ptr, size_t *len, void *msg)
{
    CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *)msg;
    *len = 0;
    CsrUint16Ser(ptr, len, primitive->common.type);
    CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
    CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle);
    CsrUint16Ser(ptr, len, (u16) primitive->result);
    CsrUint16Ser(ptr, len, (u16) primitive->frameLength);
    if (primitive->frameLength)
    {
        CsrMemCpySer(ptr, len, (const void *) primitive->frame, ((u16) (primitive->frameLength)));
    }
    CsrUint32Ser(ptr, len, 0); /* Special for Function Pointers... primitive->freeFunction */
    CsrUint16Ser(ptr, len, (u16) primitive->rssi);
    CsrUint16Ser(ptr, len, (u16) primitive->snr);
    CsrUint16Ser(ptr, len, (u16) primitive->rate);
    return(ptr);
}


void* CsrWifiRouterMaPacketIndDes(u8 *buffer, size_t length)
{
    CsrWifiRouterMaPacketInd *primitive = kmalloc(sizeof(CsrWifiRouterMaPacketInd), GFP_KERNEL);
    size_t offset;
    offset = 0;

    CsrUint16Des(&primitive->common.type, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
    CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->result, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->frameLength, buffer, &offset);
    if (primitive->frameLength)
    {
        primitive->frame = kmalloc(primitive->frameLength, GFP_KERNEL);
        CsrMemCpyDes(primitive->frame, buffer, &offset, ((u16) (primitive->frameLength)));
    }
    else
    {
        primitive->frame = NULL;
    }
    primitive->freeFunction = NULL; /* Special for Function Pointers... */
    offset += 4;
    CsrUint16Des((u16 *) &primitive->rssi, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->snr, buffer, &offset);
    CsrUint16Des((u16 *) &primitive->rate, buffer, &offset);

    return primitive;
}


void CsrWifiRouterMaPacketIndSerFree(void *voidPrimitivePointer)
{
    CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *) voidPrimitivePointer;
    kfree(primitive->frame);
    kfree(primitive);
}