Commit 0debd094 authored by David S. Miller's avatar David S. Miller

Merge bk://kernel.bkbits.net/acme/net-2.5

into nuts.ninka.net:/home/davem/src/BK/net-2.5
parents 83a66c22 6373e8bb
...@@ -67,8 +67,8 @@ MODULE_DESCRIPTION("Cyclom 2x Sync Card Driver"); ...@@ -67,8 +67,8 @@ MODULE_DESCRIPTION("Cyclom 2x Sync Card Driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
/* Hardware-specific functions */ /* Hardware-specific functions */
static int load_cyc2x(cycxhw_t *hw, struct cycx_firmware *cfm, u32 len); static int load_cyc2x(struct cycx_hw *hw, struct cycx_firmware *cfm, u32 len);
static void cycx_bootcfg(cycxhw_t *hw); static void cycx_bootcfg(struct cycx_hw *hw);
static int reset_cyc2x(u32 addr); static int reset_cyc2x(u32 addr);
static int detect_cyc2x(u32 addr); static int detect_cyc2x(u32 addr);
...@@ -135,7 +135,7 @@ void cycx_drv_cleanup(void) ...@@ -135,7 +135,7 @@ void cycx_drv_cleanup(void)
* Return: 0 ok. * Return: 0 ok.
* < 0 error */ * < 0 error */
EXPORT_SYMBOL(cycx_setup); EXPORT_SYMBOL(cycx_setup);
int cycx_setup(cycxhw_t *hw, void *cfm, u32 len) int cycx_setup(struct cycx_hw *hw, void *cfm, u32 len)
{ {
unsigned long dpmbase = hw->dpmbase; unsigned long dpmbase = hw->dpmbase;
int err; int err;
...@@ -179,7 +179,7 @@ int cycx_setup(cycxhw_t *hw, void *cfm, u32 len) ...@@ -179,7 +179,7 @@ int cycx_setup(cycxhw_t *hw, void *cfm, u32 len)
} }
EXPORT_SYMBOL(cycx_down); EXPORT_SYMBOL(cycx_down);
int cycx_down(cycxhw_t *hw) int cycx_down(struct cycx_hw *hw)
{ {
iounmap((u32 *)hw->dpmbase); iounmap((u32 *)hw->dpmbase);
...@@ -188,14 +188,14 @@ int cycx_down(cycxhw_t *hw) ...@@ -188,14 +188,14 @@ int cycx_down(cycxhw_t *hw)
/* Enable interrupt generation. */ /* Enable interrupt generation. */
EXPORT_SYMBOL(cycx_inten); EXPORT_SYMBOL(cycx_inten);
void cycx_inten(cycxhw_t *hw) void cycx_inten(struct cycx_hw *hw)
{ {
writeb(0, hw->dpmbase); writeb(0, hw->dpmbase);
} }
/* Generate an interrupt to adapter's CPU. */ /* Generate an interrupt to adapter's CPU. */
EXPORT_SYMBOL(cycx_intr); EXPORT_SYMBOL(cycx_intr);
void cycx_intr(cycxhw_t *hw) void cycx_intr(struct cycx_hw *hw)
{ {
writew(0, hw->dpmbase + GEN_CYCX_INTR); writew(0, hw->dpmbase + GEN_CYCX_INTR);
} }
...@@ -222,7 +222,7 @@ int cycx_exec(u32 addr) ...@@ -222,7 +222,7 @@ int cycx_exec(u32 addr)
/* Read absolute adapter memory. /* Read absolute adapter memory.
* Transfer data from adapter's memory to data buffer. */ * Transfer data from adapter's memory to data buffer. */
EXPORT_SYMBOL(cycx_peek); EXPORT_SYMBOL(cycx_peek);
int cycx_peek(cycxhw_t *hw, u32 addr, void *buf, u32 len) int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len)
{ {
if (len == 1) if (len == 1)
*(u8*)buf = readb(hw->dpmbase + addr); *(u8*)buf = readb(hw->dpmbase + addr);
...@@ -235,7 +235,7 @@ int cycx_peek(cycxhw_t *hw, u32 addr, void *buf, u32 len) ...@@ -235,7 +235,7 @@ int cycx_peek(cycxhw_t *hw, u32 addr, void *buf, u32 len)
/* Write Absolute Adapter Memory. /* Write Absolute Adapter Memory.
* Transfer data from data buffer to adapter's memory. */ * Transfer data from data buffer to adapter's memory. */
EXPORT_SYMBOL(cycx_poke); EXPORT_SYMBOL(cycx_poke);
int cycx_poke(cycxhw_t *hw, u32 addr, void *buf, u32 len) int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len)
{ {
if (len == 1) if (len == 1)
writeb(*(u8*)buf, hw->dpmbase + addr); writeb(*(u8*)buf, hw->dpmbase + addr);
...@@ -385,7 +385,7 @@ static int cycx_code_boot(u32 addr, u8 *code, u32 len) ...@@ -385,7 +385,7 @@ static int cycx_code_boot(u32 addr, u8 *code, u32 len)
/* Load adapter from the memory image of the CYCX firmware module. /* Load adapter from the memory image of the CYCX firmware module.
* o verify firmware integrity and compatibility * o verify firmware integrity and compatibility
* o start adapter up */ * o start adapter up */
static int load_cyc2x(cycxhw_t *hw, struct cycx_firmware *cfm, u32 len) static int load_cyc2x(struct cycx_hw *hw, struct cycx_firmware *cfm, u32 len)
{ {
int i, j; int i, j;
struct cycx_fw_header *img_hdr; struct cycx_fw_header *img_hdr;
...@@ -514,7 +514,7 @@ static int load_cyc2x(cycxhw_t *hw, struct cycx_firmware *cfm, u32 len) ...@@ -514,7 +514,7 @@ static int load_cyc2x(cycxhw_t *hw, struct cycx_firmware *cfm, u32 len)
- As of now, only static buffers are available to the user. - As of now, only static buffers are available to the user.
So, the bit VD_RXDIRC must be set in 'valid'. That means that user So, the bit VD_RXDIRC must be set in 'valid'. That means that user
wants to use the static transmission and reception buffers. */ wants to use the static transmission and reception buffers. */
static void cycx_bootcfg(cycxhw_t *hw) static void cycx_bootcfg(struct cycx_hw *hw)
{ {
/* use fixed buffers */ /* use fixed buffers */
writeb(FIXED_BUFFERS, hw->dpmbase + CONF_OFFSET); writeb(FIXED_BUFFERS, hw->dpmbase + CONF_OFFSET);
......
...@@ -220,7 +220,7 @@ static int setup(struct wan_device *wandev, wandev_conf_t *conf) ...@@ -220,7 +220,7 @@ static int setup(struct wan_device *wandev, wandev_conf_t *conf)
} }
/* Configure hardware, load firmware, etc. */ /* Configure hardware, load firmware, etc. */
memset(&card->hw, 0, sizeof(cycxhw_t)); memset(&card->hw, 0, sizeof(card->hw));
card->hw.irq = irq; card->hw.irq = irq;
card->hw.dpmbase = conf->maddr; card->hw.dpmbase = conf->maddr;
card->hw.dpmsize = CYCX_WINDOWSIZE; card->hw.dpmsize = CYCX_WINDOWSIZE;
......
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
/* Data Structures */ /* Data Structures */
/* This is an extension of the 'struct net_device' we create for each network /* This is an extension of the 'struct net_device' we create for each network
interface to keep the rest of X.25 channel-specific data. */ interface to keep the rest of X.25 channel-specific data. */
typedef struct x25_channel { struct cycx_x25_channel {
/* This member must be first. */ /* This member must be first. */
struct net_device *slave; /* WAN slave */ struct net_device *slave; /* WAN slave */
...@@ -119,7 +119,7 @@ typedef struct x25_channel { ...@@ -119,7 +119,7 @@ typedef struct x25_channel {
struct sk_buff *rx_skb; /* receive socket buffer */ struct sk_buff *rx_skb; /* receive socket buffer */
struct cycx_device *card; /* -> owner */ struct cycx_device *card; /* -> owner */
struct net_device_stats ifstats;/* interface statistics */ struct net_device_stats ifstats;/* interface statistics */
} x25_channel_t; };
/* Function Prototypes */ /* Function Prototypes */
/* WAN link driver entry points. These are called by the WAN router module. */ /* WAN link driver entry points. These are called by the WAN router module. */
...@@ -156,7 +156,8 @@ static int x25_configure(struct cycx_device *card, TX25Config *conf), ...@@ -156,7 +156,8 @@ static int x25_configure(struct cycx_device *card, TX25Config *conf),
x25_get_stats(struct cycx_device *card), x25_get_stats(struct cycx_device *card),
x25_send(struct cycx_device *card, u8 link, u8 lcn, u8 bitm, int len, x25_send(struct cycx_device *card, u8 link, u8 lcn, u8 bitm, int len,
void *buf), void *buf),
x25_connect_response(struct cycx_device *card, x25_channel_t *chan), x25_connect_response(struct cycx_device *card,
struct cycx_x25_channel *chan),
x25_disconnect_response(struct cycx_device *card, u8 link, u8 lcn); x25_disconnect_response(struct cycx_device *card, u8 link, u8 lcn);
/* channel functions */ /* channel functions */
...@@ -350,7 +351,7 @@ static int new_if(struct wan_device *wandev, struct net_device *dev, ...@@ -350,7 +351,7 @@ static int new_if(struct wan_device *wandev, struct net_device *dev,
wanif_conf_t *conf) wanif_conf_t *conf)
{ {
struct cycx_device *card = wandev->private; struct cycx_device *card = wandev->private;
x25_channel_t *chan; struct cycx_x25_channel *chan;
int err = 0; int err = 0;
if (!conf->name[0] || strlen(conf->name) > WAN_IFNAME_SZ) { if (!conf->name[0] || strlen(conf->name) > WAN_IFNAME_SZ) {
...@@ -360,10 +361,11 @@ static int new_if(struct wan_device *wandev, struct net_device *dev, ...@@ -360,10 +361,11 @@ static int new_if(struct wan_device *wandev, struct net_device *dev,
} }
/* allocate and initialize private data */ /* allocate and initialize private data */
if ((chan = kmalloc(sizeof(x25_channel_t), GFP_KERNEL)) == NULL) chan = kmalloc(sizeof(struct cycx_x25_channel), GFP_KERNEL);
if (!chan)
return -ENOMEM; return -ENOMEM;
memset(chan, 0, sizeof(x25_channel_t)); memset(chan, 0, sizeof(*chan));
strcpy(chan->name, conf->name); strcpy(chan->name, conf->name);
chan->card = card; chan->card = card;
chan->link = conf->port; chan->link = conf->port;
...@@ -439,7 +441,7 @@ static int new_if(struct wan_device *wandev, struct net_device *dev, ...@@ -439,7 +441,7 @@ static int new_if(struct wan_device *wandev, struct net_device *dev,
static int del_if(struct wan_device *wandev, struct net_device *dev) static int del_if(struct wan_device *wandev, struct net_device *dev)
{ {
if (dev->priv) { if (dev->priv) {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
if (chan->svc) { if (chan->svc) {
if (chan->local_addr) if (chan->local_addr)
...@@ -464,7 +466,7 @@ static int del_if(struct wan_device *wandev, struct net_device *dev) ...@@ -464,7 +466,7 @@ static int del_if(struct wan_device *wandev, struct net_device *dev)
* registration. */ * registration. */
static int if_init(struct net_device *dev) static int if_init(struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
struct cycx_device *card = chan->card; struct cycx_device *card = chan->card;
struct wan_device *wandev = &card->wandev; struct wan_device *wandev = &card->wandev;
...@@ -522,7 +524,7 @@ static int if_open(struct net_device *dev) ...@@ -522,7 +524,7 @@ static int if_open(struct net_device *dev)
* o if there's no more open channels then disconnect physical link. */ * o if there's no more open channels then disconnect physical link. */
static int if_close(struct net_device *dev) static int if_close(struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
netif_stop_queue(dev); netif_stop_queue(dev);
...@@ -573,7 +575,7 @@ static int if_rebuild_hdr(struct sk_buff *skb) ...@@ -573,7 +575,7 @@ static int if_rebuild_hdr(struct sk_buff *skb)
* protocol stack and can be used for flow control with protocol layer. */ * protocol stack and can be used for flow control with protocol layer. */
static int if_send(struct sk_buff *skb, struct net_device *dev) static int if_send(struct sk_buff *skb, struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
struct cycx_device *card = chan->card; struct cycx_device *card = chan->card;
if (!chan->svc) if (!chan->svc)
...@@ -647,7 +649,7 @@ static int if_send(struct sk_buff *skb, struct net_device *dev) ...@@ -647,7 +649,7 @@ static int if_send(struct sk_buff *skb, struct net_device *dev)
* Return a pointer to struct net_device_stats */ * Return a pointer to struct net_device_stats */
static struct net_device_stats *if_stats(struct net_device *dev) static struct net_device_stats *if_stats(struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
return chan ? &chan->ifstats : NULL; return chan ? &chan->ifstats : NULL;
} }
...@@ -741,7 +743,7 @@ static void rx_intr(struct cycx_device *card, TX25Cmd *cmd) ...@@ -741,7 +743,7 @@ static void rx_intr(struct cycx_device *card, TX25Cmd *cmd)
{ {
struct wan_device *wandev = &card->wandev; struct wan_device *wandev = &card->wandev;
struct net_device *dev; struct net_device *dev;
x25_channel_t *chan; struct cycx_x25_channel *chan;
struct sk_buff *skb; struct sk_buff *skb;
u8 bitm, lcn; u8 bitm, lcn;
int pktlen = cmd->len - 5; int pktlen = cmd->len - 5;
...@@ -825,7 +827,7 @@ static void connect_intr(struct cycx_device *card, TX25Cmd *cmd) ...@@ -825,7 +827,7 @@ static void connect_intr(struct cycx_device *card, TX25Cmd *cmd)
{ {
struct wan_device *wandev = &card->wandev; struct wan_device *wandev = &card->wandev;
struct net_device *dev = NULL; struct net_device *dev = NULL;
x25_channel_t *chan; struct cycx_x25_channel *chan;
u8 d[32], u8 d[32],
loc[24], loc[24],
rem[24]; rem[24];
...@@ -867,7 +869,7 @@ static void connect_confirm_intr(struct cycx_device *card, TX25Cmd *cmd) ...@@ -867,7 +869,7 @@ static void connect_confirm_intr(struct cycx_device *card, TX25Cmd *cmd)
{ {
struct wan_device *wandev = &card->wandev; struct wan_device *wandev = &card->wandev;
struct net_device *dev; struct net_device *dev;
x25_channel_t *chan; struct cycx_x25_channel *chan;
u8 lcn, key; u8 lcn, key;
cycx_peek(&card->hw, cmd->buf, &lcn, sizeof(lcn)); cycx_peek(&card->hw, cmd->buf, &lcn, sizeof(lcn));
...@@ -920,7 +922,7 @@ static void disconnect_intr(struct cycx_device *card, TX25Cmd *cmd) ...@@ -920,7 +922,7 @@ static void disconnect_intr(struct cycx_device *card, TX25Cmd *cmd)
dprintk(1, KERN_INFO "disconnect_intr:lcn=%d\n", lcn); dprintk(1, KERN_INFO "disconnect_intr:lcn=%d\n", lcn);
if ((dev = get_dev_by_lcn(wandev, lcn)) != NULL) { if ((dev = get_dev_by_lcn(wandev, lcn)) != NULL) {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
x25_disconnect_response(card, chan->link, lcn); x25_disconnect_response(card, chan->link, lcn);
set_chan_state(dev, WAN_DISCONNECTED); set_chan_state(dev, WAN_DISCONNECTED);
...@@ -1153,7 +1155,8 @@ static void nibble_to_byte(u8 *s, u8 *d, u8 len, u8 nibble) ...@@ -1153,7 +1155,8 @@ static void nibble_to_byte(u8 *s, u8 *d, u8 len, u8 nibble)
} }
/* Place X.25 call. */ /* Place X.25 call. */
static int x25_place_call(struct cycx_device *card, x25_channel_t *chan) static int x25_place_call(struct cycx_device *card,
struct cycx_x25_channel *chan)
{ {
int err = 0, int err = 0,
len; len;
...@@ -1199,7 +1202,8 @@ static int x25_place_call(struct cycx_device *card, x25_channel_t *chan) ...@@ -1199,7 +1202,8 @@ static int x25_place_call(struct cycx_device *card, x25_channel_t *chan)
} }
/* Place X.25 CONNECT RESPONSE. */ /* Place X.25 CONNECT RESPONSE. */
static int x25_connect_response(struct cycx_device *card, x25_channel_t *chan) static int x25_connect_response(struct cycx_device *card,
struct cycx_x25_channel *chan)
{ {
u8 d[8]; u8 d[8];
...@@ -1258,10 +1262,10 @@ static int x25_send(struct cycx_device *card, u8 link, u8 lcn, u8 bitm, int len, ...@@ -1258,10 +1262,10 @@ static int x25_send(struct cycx_device *card, u8 link, u8 lcn, u8 bitm, int len,
static struct net_device *get_dev_by_lcn(struct wan_device *wandev, s16 lcn) static struct net_device *get_dev_by_lcn(struct wan_device *wandev, s16 lcn)
{ {
struct net_device *dev = wandev->dev; struct net_device *dev = wandev->dev;
x25_channel_t *chan; struct cycx_x25_channel *chan;
while (dev) { while (dev) {
chan = (x25_channel_t*)dev->priv; chan = (struct cycx_x25_channel*)dev->priv;
if (chan->lcn == lcn) if (chan->lcn == lcn)
break; break;
...@@ -1275,10 +1279,10 @@ static struct net_device *get_dev_by_dte_addr(struct wan_device *wandev, ...@@ -1275,10 +1279,10 @@ static struct net_device *get_dev_by_dte_addr(struct wan_device *wandev,
char *dte) char *dte)
{ {
struct net_device *dev = wandev->dev; struct net_device *dev = wandev->dev;
x25_channel_t *chan; struct cycx_x25_channel *chan;
while (dev) { while (dev) {
chan = (x25_channel_t*)dev->priv; chan = (struct cycx_x25_channel*)dev->priv;
if (!strcmp(chan->addr, dte)) if (!strcmp(chan->addr, dte))
break; break;
...@@ -1296,7 +1300,7 @@ static struct net_device *get_dev_by_dte_addr(struct wan_device *wandev, ...@@ -1296,7 +1300,7 @@ static struct net_device *get_dev_by_dte_addr(struct wan_device *wandev,
* <0 failure */ * <0 failure */
static int chan_connect(struct net_device *dev) static int chan_connect(struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
struct cycx_device *card = chan->card; struct cycx_device *card = chan->card;
if (chan->svc) { if (chan->svc) {
...@@ -1321,7 +1325,7 @@ static int chan_connect(struct net_device *dev) ...@@ -1321,7 +1325,7 @@ static int chan_connect(struct net_device *dev)
* o if SVC then clear X.25 call */ * o if SVC then clear X.25 call */
static void chan_disconnect(struct net_device *dev) static void chan_disconnect(struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
if (chan->svc) { if (chan->svc) {
x25_clear_call(chan->card, chan->link, chan->lcn, 0, 0); x25_clear_call(chan->card, chan->link, chan->lcn, 0, 0);
...@@ -1334,7 +1338,7 @@ static void chan_disconnect(struct net_device *dev) ...@@ -1334,7 +1338,7 @@ static void chan_disconnect(struct net_device *dev)
static void chan_timer(unsigned long d) static void chan_timer(unsigned long d)
{ {
struct net_device *dev = (struct net_device *)d; struct net_device *dev = (struct net_device *)d;
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
if (chan->state == WAN_CONNECTED) if (chan->state == WAN_CONNECTED)
chan_disconnect(dev); chan_disconnect(dev);
...@@ -1346,7 +1350,7 @@ static void chan_timer(unsigned long d) ...@@ -1346,7 +1350,7 @@ static void chan_timer(unsigned long d)
/* Set logical channel state. */ /* Set logical channel state. */
static void set_chan_state(struct net_device *dev, u8 state) static void set_chan_state(struct net_device *dev, u8 state)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
struct cycx_device *card = chan->card; struct cycx_device *card = chan->card;
unsigned long flags; unsigned long flags;
char *string_state = NULL; char *string_state = NULL;
...@@ -1412,7 +1416,7 @@ static void set_chan_state(struct net_device *dev, u8 state) ...@@ -1412,7 +1416,7 @@ static void set_chan_state(struct net_device *dev, u8 state)
* to the router. */ * to the router. */
static int chan_send(struct net_device *dev, struct sk_buff *skb) static int chan_send(struct net_device *dev, struct sk_buff *skb)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
struct cycx_device *card = chan->card; struct cycx_device *card = chan->card;
int bitm = 0; /* final packet */ int bitm = 0; /* final packet */
unsigned len = skb->len; unsigned len = skb->len;
...@@ -1510,7 +1514,7 @@ static unsigned dec_to_uint(u8 *str, int len) ...@@ -1510,7 +1514,7 @@ static unsigned dec_to_uint(u8 *str, int len)
static void reset_timer(struct net_device *dev) static void reset_timer(struct net_device *dev)
{ {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
if (chan->svc) if (chan->svc)
mod_timer(&chan->timer, jiffies+chan->idle_tmout*HZ); mod_timer(&chan->timer, jiffies+chan->idle_tmout*HZ);
...@@ -1563,7 +1567,7 @@ static void x25_dump_devs(struct wan_device *wandev) ...@@ -1563,7 +1567,7 @@ static void x25_dump_devs(struct wan_device *wandev)
printk(KERN_INFO "---------------------------------------\n"); printk(KERN_INFO "---------------------------------------\n");
while(dev) { while(dev) {
x25_channel_t *chan = dev->priv; struct cycx_x25_channel *chan = dev->priv;
printk(KERN_INFO "%-5.5s %-15.15s %d ETH_P_%s\n", printk(KERN_INFO "%-5.5s %-15.15s %d ETH_P_%s\n",
chan->name, chan->addr, netif_queue_stopped(dev), chan->name, chan->addr, netif_queue_stopped(dev),
......
...@@ -44,8 +44,8 @@ ...@@ -44,8 +44,8 @@
* static data would do it. * static data would do it.
*/ */
struct cycx_device { struct cycx_device {
char devname[WAN_DRVNAME_SZ+1]; /* card name */ char devname[WAN_DRVNAME_SZ + 1];/* card name */
cycxhw_t hw; /* hardware configuration */ struct cycx_hw hw; /* hardware configuration */
struct wan_device wandev; /* WAN device data space */ struct wan_device wandev; /* WAN device data space */
u32 state_tick; /* link state timestamp */ u32 state_tick; /* link state timestamp */
spinlock_t lock; spinlock_t lock;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br> * Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
* *
* Copyright: (c) 1998-2000 Arnaldo Carvalho de Melo * Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo
* *
* Based on sdladrv.h by Gene Kozin <genek@compuserve.com> * Based on sdladrv.h by Gene Kozin <genek@compuserve.com>
* *
...@@ -41,24 +41,29 @@ ...@@ -41,24 +41,29 @@
#define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif #endif
/* Data Structures */ /**
/* Adapter hardware configuration. Pointer to this structure is passed to all * struct cycx_hw - Adapter hardware configuration
* APIs. */ * @fwid - firmware ID
typedef struct cycxhw { * @irq - interrupt request level
u32 fwid; /* firmware ID */ * @dpmbase - dual-port memory base
int irq; /* interrupt request level */ * @dpmsize - dual-port memory size
u32 dpmbase; /* dual-port memory base */ * @reserved - reserved for future use
u32 dpmsize; /* dual-port memory size */ */
struct cycx_hw {
u32 fwid;
int irq;
u32 dpmbase;
u32 dpmsize;
u32 reserved[5]; u32 reserved[5];
} cycxhw_t; };
/* Function Prototypes */ /* Function Prototypes */
extern int cycx_setup (cycxhw_t *hw, void *sfm, u32 len); extern int cycx_setup(struct cycx_hw *hw, void *sfm, u32 len);
extern int cycx_down (cycxhw_t *hw); extern int cycx_down(struct cycx_hw *hw);
extern int cycx_peek (cycxhw_t *hw, u32 addr, void *buf, u32 len); extern int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
extern int cycx_poke (cycxhw_t *hw, u32 addr, void *buf, u32 len); extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
extern int cycx_exec (u32 addr); extern int cycx_exec(u32 addr);
extern void cycx_inten (cycxhw_t *hw); extern void cycx_inten(struct cycx_hw *hw);
extern void cycx_intr (cycxhw_t *hw); extern void cycx_intr(struct cycx_hw *hw);
#endif /* _CYCX_DRV_H */ #endif /* _CYCX_DRV_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment