I will state the problem once more
As per the specifications when the L2CAP layer receives a L2CAP_Data it sends a L2CA_Read to the upper layer (see Bluetooth Specification 1.1 page 276 )
The upper layer then sends a L2CA_DataRead specifying where it wants the data to be copied to, and how much of it is to be copied.
The L2CAP layer copies the data to the location specified by the upper layer and returns a parameter of Result and N (number of bytes copied).
I believe this is not the way it has been axis code. Instead the L2CAP layer sends a pointer of where the data is stored to the upper layer. This definitely is a lot more easier but it could always have been done as per the specifications.
Is it that I am misinterpreting the specifications ?
Could somebody provide an insight into the matter.