diff options
Diffstat (limited to 'drivers/net/skfp/h/osdef1st.h')
-rw-r--r-- | drivers/net/skfp/h/osdef1st.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/net/skfp/h/osdef1st.h b/drivers/net/skfp/h/osdef1st.h index 69f27707d..a6866248a 100644 --- a/drivers/net/skfp/h/osdef1st.h +++ b/drivers/net/skfp/h/osdef1st.h @@ -97,22 +97,27 @@ * * Note: The size of these structures must follow this rule: * - * size = 8 + n * 16, n >= 0 + * sizeof(struct) + 2*sizeof(void*) == n * 16, n >= 1 * - * NOTE: The size of this structures may not be changed, because - * libskfddi.a depends on it. But the dummy fields can be - * used freely. + * We use the dma_addr fields under Linux to keep track of the + * DMA address of the packet data, for later pci_unmap_single. -DaveM */ struct s_txd_os { // os-specific part of transmit descriptor struct sk_buff *skb; - long dummy; + dma_addr_t dma_addr; } ; struct s_rxd_os { // os-specific part of receive descriptor struct sk_buff *skb; - long dummy; + dma_addr_t dma_addr; } ; +/* + * So we do not need to make too many modifications to the generic driver + * parts, we take advantage of the AIX byte swapping macro interface. + */ +#define AIX_REVERSE(x) ((u32)le32_to_cpu((u32)(x))) +#define MDR_REVERSE(x) ((u32)le32_to_cpu((u32)(x))) |