Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
574ad93f
Commit
574ad93f
authored
May 15, 2003
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/acme/net-2.5
into nuts.ninka.net:/home/davem/src/BK/net-2.5
parents
0debd094
7f47833c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
87 additions
and
65 deletions
+87
-65
drivers/net/wan/cycx_x25.c
drivers/net/wan/cycx_x25.c
+33
-28
include/linux/cyclomx.h
include/linux/cyclomx.h
+2
-2
include/linux/cycx_cfm.h
include/linux/cycx_cfm.h
+8
-8
include/linux/cycx_x25.h
include/linux/cycx_x25.h
+44
-27
No files found.
drivers/net/wan/cycx_x25.c
View file @
574ad93f
...
...
@@ -141,18 +141,21 @@ static struct net_device_stats *if_stats(struct net_device *dev);
/* Interrupt handlers */
static
void
cyx_isr
(
struct
cycx_device
*
card
),
tx_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
rx_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
log_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
stat_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
connect_confirm_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
disconnect_confirm_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
connect_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
disconnect_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
),
spur_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
);
tx_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
rx_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
log_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
stat_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
connect_confirm_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
disconnect_confirm_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
connect_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
disconnect_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
),
spur_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
);
/* X.25 firmware interface functions */
static
int
x25_configure
(
struct
cycx_device
*
card
,
TX25Config
*
conf
),
static
int
x25_configure
(
struct
cycx_device
*
card
,
struct
cycx_x25_config
*
conf
),
x25_get_stats
(
struct
cycx_device
*
card
),
x25_send
(
struct
cycx_device
*
card
,
u8
link
,
u8
lcn
,
u8
bitm
,
int
len
,
void
*
buf
),
...
...
@@ -185,8 +188,8 @@ static struct net_device *get_dev_by_dte_addr(struct wan_device *wandev,
#ifdef CYCLOMX_X25_DEBUG
static
void
hex_dump
(
char
*
msg
,
unsigned
char
*
p
,
int
len
);
static
void
x25_dump_config
(
TX25C
onfig
*
conf
);
static
void
x25_dump_stats
(
TX25S
tats
*
stats
);
static
void
x25_dump_config
(
struct
cycx_x25_c
onfig
*
conf
);
static
void
x25_dump_stats
(
struct
cycx_x25_s
tats
*
stats
);
static
void
x25_dump_devs
(
struct
wan_device
*
wandev
);
#else
#define hex_dump(msg, p, len)
...
...
@@ -207,7 +210,7 @@ static void x25_dump_devs(struct wan_device *wandev);
* < 0 failure. */
int
cyx_init
(
struct
cycx_device
*
card
,
wandev_conf_t
*
conf
)
{
TX25C
onfig
cfg
;
struct
cycx_x25_c
onfig
cfg
;
/* Verify configuration ID */
if
(
conf
->
config_id
!=
WANCONFIG_X25
)
{
...
...
@@ -658,7 +661,7 @@ static struct net_device_stats *if_stats(struct net_device *dev)
/* X.25 Interrupt Service Routine. */
static
void
cyx_isr
(
struct
cycx_device
*
card
)
{
TX25C
md
cmd
;
struct
cycx_x25_c
md
cmd
;
u16
z
=
0
;
card
->
in_isr
=
1
;
...
...
@@ -708,7 +711,7 @@ static void cyx_isr(struct cycx_device *card)
/* Transmit interrupt handler.
* o Release socket buffer
* o Clear 'tbusy' flag */
static
void
tx_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
tx_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
struct
net_device
*
dev
;
struct
wan_device
*
wandev
=
&
card
->
wandev
;
...
...
@@ -739,7 +742,7 @@ static void tx_intr(struct cycx_device *card, TX25Cmd *cmd)
* expected on this channel.
* 2. If something goes wrong and X.25 packet has to be dropped (e.g. no
* socket buffers available) the whole packet sequence must be discarded. */
static
void
rx_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
rx_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
struct
wan_device
*
wandev
=
&
card
->
wandev
;
struct
net_device
*
dev
;
...
...
@@ -823,7 +826,7 @@ static void rx_intr(struct cycx_device *card, TX25Cmd *cmd)
}
/* Connect interrupt handler. */
static
void
connect_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
connect_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
struct
wan_device
*
wandev
=
&
card
->
wandev
;
struct
net_device
*
dev
=
NULL
;
...
...
@@ -865,7 +868,8 @@ static void connect_intr(struct cycx_device *card, TX25Cmd *cmd)
}
/* Connect confirm interrupt handler. */
static
void
connect_confirm_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
)
static
void
connect_confirm_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
)
{
struct
wan_device
*
wandev
=
&
card
->
wandev
;
struct
net_device
*
dev
;
...
...
@@ -892,7 +896,8 @@ static void connect_confirm_intr(struct cycx_device *card, TX25Cmd *cmd)
}
/* Disconnect confirm interrupt handler. */
static
void
disconnect_confirm_intr
(
struct
cycx_device
*
card
,
TX25Cmd
*
cmd
)
static
void
disconnect_confirm_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_cmd
*
cmd
)
{
struct
wan_device
*
wandev
=
&
card
->
wandev
;
struct
net_device
*
dev
;
...
...
@@ -912,7 +917,7 @@ static void disconnect_confirm_intr(struct cycx_device *card, TX25Cmd *cmd)
}
/* disconnect interrupt handler. */
static
void
disconnect_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
disconnect_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
struct
wan_device
*
wandev
=
&
card
->
wandev
;
struct
net_device
*
dev
;
...
...
@@ -931,7 +936,7 @@ static void disconnect_intr(struct cycx_device *card, TX25Cmd *cmd)
}
/* LOG interrupt handler. */
static
void
log_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
log_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
#if CYCLOMX_X25_DEBUG
char
bf
[
20
];
...
...
@@ -959,7 +964,7 @@ static void log_intr(struct cycx_device *card, TX25Cmd *cmd)
}
/* STATISTIC interrupt handler. */
static
void
stat_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
stat_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
cycx_peek
(
&
card
->
hw
,
cmd
->
buf
,
&
card
->
u
.
x
.
stats
,
sizeof
(
card
->
u
.
x
.
stats
));
...
...
@@ -972,7 +977,7 @@ static void stat_intr(struct cycx_device *card, TX25Cmd *cmd)
/* Spurious interrupt handler.
* o print a warning
* If number of spurious interrupts exceeded some limit, then ??? */
static
void
spur_intr
(
struct
cycx_device
*
card
,
TX25C
md
*
cmd
)
static
void
spur_intr
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
md
*
cmd
)
{
printk
(
KERN_INFO
"%s: spurious interrupt (0x%X)!
\n
"
,
card
->
devname
,
cmd
->
command
);
...
...
@@ -1000,7 +1005,7 @@ static void hex_dump(char *msg, unsigned char *p, int len)
static
int
x25_exec
(
struct
cycx_device
*
card
,
int
command
,
int
link
,
void
*
d1
,
int
len1
,
void
*
d2
,
int
len2
)
{
TX25C
md
c
;
struct
cycx_x25_c
md
c
;
unsigned
long
flags
;
u32
addr
=
0x1200
+
0x2E0
*
link
+
0x1E2
;
u8
retry
=
MAX_CMD_RETRY
;
...
...
@@ -1045,11 +1050,11 @@ static int x25_exec(struct cycx_device *card, int command, int link,
}
/* Configure adapter. */
static
int
x25_configure
(
struct
cycx_device
*
card
,
TX25C
onfig
*
conf
)
static
int
x25_configure
(
struct
cycx_device
*
card
,
struct
cycx_x25_c
onfig
*
conf
)
{
struct
{
u16
nlinks
;
TX25C
onfig
conf
[
2
];
struct
cycx_x25_c
onfig
conf
[
2
];
}
x25_cmd_conf
;
memset
(
&
x25_cmd_conf
,
0
,
sizeof
(
x25_cmd_conf
));
...
...
@@ -1520,7 +1525,7 @@ static void reset_timer(struct net_device *dev)
mod_timer
(
&
chan
->
timer
,
jiffies
+
chan
->
idle_tmout
*
HZ
);
}
#ifdef CYCLOMX_X25_DEBUG
static
void
x25_dump_config
(
TX25C
onfig
*
conf
)
static
void
x25_dump_config
(
struct
cycx_x25_c
onfig
*
conf
)
{
printk
(
KERN_INFO
"X.25 configuration
\n
"
);
printk
(
KERN_INFO
"-----------------
\n
"
);
...
...
@@ -1542,7 +1547,7 @@ static void x25_dump_config(TX25Config *conf)
printk
(
KERN_INFO
"flags=0x%x
\n
"
,
conf
->
flags
);
}
static
void
x25_dump_stats
(
TX25S
tats
*
stats
)
static
void
x25_dump_stats
(
struct
cycx_x25_s
tats
*
stats
)
{
printk
(
KERN_INFO
"X.25 statistics
\n
"
);
printk
(
KERN_INFO
"--------------
\n
"
);
...
...
include/linux/cyclomx.h
View file @
574ad93f
...
...
@@ -6,7 +6,7 @@
*
* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
*
* Copyright: (c) 1998-200
0
Arnaldo Carvalho de Melo
* Copyright: (c) 1998-200
3
Arnaldo Carvalho de Melo
*
* Based on wanpipe.h by Gene Kozin <genek@compuserve.com>
*
...
...
@@ -62,7 +62,7 @@ struct cycx_device {
u32
hi_pvc
;
u32
lo_svc
;
u32
hi_svc
;
TX25S
tats
stats
;
struct
cycx_x25_s
tats
stats
;
spinlock_t
lock
;
u32
connection_keys
;
}
x
;
...
...
include/linux/cycx_cfm.h
View file @
574ad93f
...
...
@@ -74,14 +74,14 @@ struct cycx_fw_info {
};
/**
*
struct cycx_firmware - CYCX firmware file structure
*
@signature - CFM file signature
*
@version - file format version
*
@checksum - info + image
*
@reserved - reserved
*
@descr - description string
*
@info - firmware module info
*
@image - code image (variable size)
*
struct cycx_firmware - CYCX firmware file structure
*
@signature - CFM file signature
*
@version - file format version
*
@checksum - info + image
*
@reserved - reserved
*
@descr - description string
*
@info - firmware module info
*
@image - code image (variable size)
*/
struct
cycx_firmware
{
char
signature
[
80
];
...
...
include/linux/cycx_x25.h
View file @
574ad93f
#ifndef _CYCX_X25_H
#define _CYCX_X25_H
/*
* cycx_x25.h Cyclom X.25 firmware API definitions.
*
* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
*
* Copyright: (c) 1998-200
0
Arnaldo Carvalho de Melo
* Copyright: (c) 1998-200
3
Arnaldo Carvalho de Melo
*
* Based on sdla_x25.h by Gene Kozin <74604.152@compuserve.com>
*
...
...
@@ -20,9 +22,6 @@
* TX25Cmd & TX25Config structs
* typedef'ed
*/
#ifndef _CYCX_X25_H
#define _CYCX_X25_H
#ifndef PACKED
#define PACKED __attribute__((packed))
#endif
...
...
@@ -38,13 +37,12 @@ extern unsigned int cycx_debug;
/* Data Structures */
/* X.25 Command Block. */
typedef
struct
X25Cmd
{
struct
cycx_x25_cmd
{
u16
command
PACKED
;
u16
link
PACKED
;
/* values: 0 or 1 */
u16
len
PACKED
;
/* values: 0 thru 0x205 (517) */
u32
buf
PACKED
;
}
TX25Cmd
;
};
/* Defines for the 'command' field. */
#define X25_CONNECT_REQUEST 0x4401
...
...
@@ -74,26 +72,45 @@ typedef struct X25Cmd
#define X25_N2TRACEXC 0x4702
#define X25_N3TRACEXC 0x4703
typedef
struct
X25Config
{
u8
link
PACKED
;
/* link number */
u8
speed
PACKED
;
/* line speed */
u8
clock
PACKED
;
/* internal/external */
u8
n2
PACKED
;
/* # of level 2 retransm.(values: 1 thru FF) */
u8
n2win
PACKED
;
/* level 2 window (values: 1 thru 7) */
u8
n3win
PACKED
;
/* level 3 window (values: 1 thru 7) */
u8
nvc
PACKED
;
/* # of logical channels (values: 1 thru 64) */
u8
pktlen
PACKED
;
/* level 3 packet lenght - log base 2 of size */
u8
locaddr
PACKED
;
/* my address */
u8
remaddr
PACKED
;
/* remote address */
u16
t1
PACKED
;
/* time, in seconds */
u16
t2
PACKED
;
/* time, in seconds */
u8
t21
PACKED
;
/* time, in seconds */
u8
npvc
PACKED
;
/* # of permanent virt. circuits (1 thru nvc) */
u8
t23
PACKED
;
/* time, in seconds */
u8
flags
PACKED
;
/* see dosx25.doc, in portuguese, for details */
}
TX25Config
;
/**
* struct cycx_x25_config - cyclom2x x25 firmware configuration
* @link - link number
* @speed - line speed
* @clock - internal/external
* @n2 - # of level 2 retransm.(values: 1 thru FF)
* @n2win - level 2 window (values: 1 thru 7)
* @n3win - level 3 window (values: 1 thru 7)
* @nvc - # of logical channels (values: 1 thru 64)
* @pktlen - level 3 packet lenght - log base 2 of size
* @locaddr - my address
* @remaddr - remote address
* @t1 - time, in seconds
* @t2 - time, in seconds
* @t21 - time, in seconds
* @npvc - # of permanent virt. circuits (1 thru nvc)
* @t23 - time, in seconds
* @flags - see dosx25.doc, in portuguese, for details
*/
struct
cycx_x25_config
{
u8
link
PACKED
;
u8
speed
PACKED
;
u8
clock
PACKED
;
u8
n2
PACKED
;
u8
n2win
PACKED
;
u8
n3win
PACKED
;
u8
nvc
PACKED
;
u8
pktlen
PACKED
;
u8
locaddr
PACKED
;
u8
remaddr
PACKED
;
u16
t1
PACKED
;
u16
t2
PACKED
;
u8
t21
PACKED
;
u8
npvc
PACKED
;
u8
t23
PACKED
;
u8
flags
PACKED
;
};
typedef
struct
X25S
tats
{
struct
cycx_x25_s
tats
{
u16
rx_crc_errors
PACKED
;
u16
rx_over_errors
PACKED
;
u16
n2_tx_frames
PACKED
;
...
...
@@ -104,5 +121,5 @@ typedef struct X25Stats {
u16
n3_rx_packets
PACKED
;
u16
tx_aborts
PACKED
;
u16
rx_aborts
PACKED
;
}
TX25Stats
;
};
#endif
/* _CYCX_X25_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment