//---------------------------------------------------------------------------
//void nasmt_interrupt(void){
void *nasmt_interrupt(void){
//---------------------------------------------------------------------------
  uint8_t cxi;
  char *buffer = NULL;
#ifdef NAS_DEBUG_INTERRUPT
  printk("nasmt_interrupt - begin\n");
#endif
  //spin_lock(&gpriv->lock);
  cxi=0;
  nasmt_COMMON_QOS_receive(gpriv->cx+cxi);
  nasmt_ASCTL_GC_receive(buffer);
  nasmt_ASCTL_DC_receive(gpriv->cx+cxi, buffer);
  //spin_unlock(&gpriv->lock);
#ifdef NAS_DEBUG_INTERRUPT
  printk("nasmt_interrupt: end\n");
#endif
}
// This can also be implemented using thread to get the data from PDCP without blocking.
//---------------------------------------------------------------------------
// Function for transfer with PDCP (from NASLITE)
static void nasmt_nl_data_ready (struct sk_buff *skb)
{
  //---------------------------------------------------------------------------
  struct nlmsghdr *nlh = NULL;

  // Start debug information
#ifdef NETLINK_DEBUG
  printk("nasmt_nl_data_ready - begin \n");
#endif

  if (!skb) {
    printk("nasmt_nl_data_ready - input parameter skb is NULL \n");
    return;
  }

  // End debug information

#ifdef NETLINK_DEBUG
  printk("nasmt_nl_data_ready - Received socket from PDCP\n");
#endif //NETLINK_DEBUG
  nlh = (struct nlmsghdr *)skb->data;
  nasmt_COMMON_QOS_receive(nlh);
}