diff options
Diffstat (limited to 'drivers/atm/nicstar.h')
-rw-r--r-- | drivers/atm/nicstar.h | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/drivers/atm/nicstar.h b/drivers/atm/nicstar.h index 43eb2db1fb88..9bc27ea5088e 100644 --- a/drivers/atm/nicstar.h +++ b/drivers/atm/nicstar.h | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <linux/pci.h> | 18 | #include <linux/pci.h> |
19 | #include <linux/idr.h> | ||
19 | #include <linux/uio.h> | 20 | #include <linux/uio.h> |
20 | #include <linux/skbuff.h> | 21 | #include <linux/skbuff.h> |
21 | #include <linux/atmdev.h> | 22 | #include <linux/atmdev.h> |
@@ -636,14 +637,22 @@ enum ns_regs { | |||
636 | 637 | ||
637 | /* Device driver structures */ | 638 | /* Device driver structures */ |
638 | 639 | ||
639 | struct ns_skb_cb { | 640 | struct ns_skb_prv { |
640 | u32 buf_type; /* BUF_SM/BUF_LG/BUF_NONE */ | 641 | u32 buf_type; /* BUF_SM/BUF_LG/BUF_NONE */ |
642 | u32 dma; | ||
643 | int iovcnt; | ||
641 | }; | 644 | }; |
642 | 645 | ||
643 | #define NS_SKB_CB(skb) ((struct ns_skb_cb *)((skb)->cb)) | 646 | #define NS_PRV_BUFTYPE(skb) \ |
647 | (((struct ns_skb_prv *)(ATM_SKB(skb)+1))->buf_type) | ||
648 | #define NS_PRV_DMA(skb) \ | ||
649 | (((struct ns_skb_prv *)(ATM_SKB(skb)+1))->dma) | ||
650 | #define NS_PRV_IOVCNT(skb) \ | ||
651 | (((struct ns_skb_prv *)(ATM_SKB(skb)+1))->iovcnt) | ||
644 | 652 | ||
645 | typedef struct tsq_info { | 653 | typedef struct tsq_info { |
646 | void *org; | 654 | void *org; |
655 | dma_addr_t dma; | ||
647 | ns_tsi *base; | 656 | ns_tsi *base; |
648 | ns_tsi *next; | 657 | ns_tsi *next; |
649 | ns_tsi *last; | 658 | ns_tsi *last; |
@@ -651,6 +660,7 @@ typedef struct tsq_info { | |||
651 | 660 | ||
652 | typedef struct scq_info { | 661 | typedef struct scq_info { |
653 | void *org; | 662 | void *org; |
663 | dma_addr_t dma; | ||
654 | ns_scqe *base; | 664 | ns_scqe *base; |
655 | ns_scqe *last; | 665 | ns_scqe *last; |
656 | ns_scqe *next; | 666 | ns_scqe *next; |
@@ -668,6 +678,7 @@ typedef struct scq_info { | |||
668 | 678 | ||
669 | typedef struct rsq_info { | 679 | typedef struct rsq_info { |
670 | void *org; | 680 | void *org; |
681 | dma_addr_t dma; | ||
671 | ns_rsqe *base; | 682 | ns_rsqe *base; |
672 | ns_rsqe *next; | 683 | ns_rsqe *next; |
673 | ns_rsqe *last; | 684 | ns_rsqe *last; |
@@ -693,13 +704,6 @@ typedef struct vc_map { | |||
693 | int tbd_count; | 704 | int tbd_count; |
694 | } vc_map; | 705 | } vc_map; |
695 | 706 | ||
696 | struct ns_skb_data { | ||
697 | struct atm_vcc *vcc; | ||
698 | int iovcnt; | ||
699 | }; | ||
700 | |||
701 | #define NS_SKB(skb) (((struct ns_skb_data *) (skb)->cb)) | ||
702 | |||
703 | typedef struct ns_dev { | 707 | typedef struct ns_dev { |
704 | int index; /* Card ID to the device driver */ | 708 | int index; /* Card ID to the device driver */ |
705 | int sram_size; /* In k x 32bit words. 32 or 128 */ | 709 | int sram_size; /* In k x 32bit words. 32 or 128 */ |
@@ -709,6 +713,7 @@ typedef struct ns_dev { | |||
709 | int vpibits; | 713 | int vpibits; |
710 | int vcibits; | 714 | int vcibits; |
711 | struct pci_dev *pcidev; | 715 | struct pci_dev *pcidev; |
716 | struct idr idr; | ||
712 | struct atm_dev *atmdev; | 717 | struct atm_dev *atmdev; |
713 | tsq_info tsq; | 718 | tsq_info tsq; |
714 | rsq_info rsq; | 719 | rsq_info rsq; |
@@ -729,11 +734,12 @@ typedef struct ns_dev { | |||
729 | buf_nr iovnr; | 734 | buf_nr iovnr; |
730 | int sbfqc; | 735 | int sbfqc; |
731 | int lbfqc; | 736 | int lbfqc; |
732 | u32 sm_handle; | 737 | struct sk_buff *sm_handle; |
733 | u32 sm_addr; | 738 | u32 sm_addr; |
734 | u32 lg_handle; | 739 | struct sk_buff *lg_handle; |
735 | u32 lg_addr; | 740 | u32 lg_addr; |
736 | struct sk_buff *rcbuf; /* Current raw cell buffer */ | 741 | struct sk_buff *rcbuf; /* Current raw cell buffer */ |
742 | struct ns_rcqe *rawcell; | ||
737 | u32 rawch; /* Raw cell queue head */ | 743 | u32 rawch; /* Raw cell queue head */ |
738 | unsigned intcnt; /* Interrupt counter */ | 744 | unsigned intcnt; /* Interrupt counter */ |
739 | spinlock_t int_lock; /* Interrupt lock */ | 745 | spinlock_t int_lock; /* Interrupt lock */ |