Fixed MTP to work with TWRP

This commit is contained in:
awab228 2018-06-19 23:16:04 +02:00
commit f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions

View file

@ -0,0 +1,109 @@
#
# Appletalk driver configuration
#
config ATALK
tristate "Appletalk protocol support"
select LLC
---help---
AppleTalk is the protocol that Apple computers can use to communicate
on a network. If your Linux box is connected to such a network and you
wish to connect to it, say Y. You will need to use the netatalk package
so that your Linux box can act as a print and file server for Macs as
well as access AppleTalk printers. Check out
<http://www.zettabyte.net/netatalk/> on the WWW for details.
EtherTalk is the name used for AppleTalk over Ethernet and the
cheaper and slower LocalTalk is AppleTalk over a proprietary Apple
network using serial links. EtherTalk and LocalTalk are fully
supported by Linux.
General information about how to connect Linux, Windows machines and
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The
NET3-4-HOWTO, available from
<http://www.tldp.org/docs.html#howto>, contains valuable
information as well.
To compile this driver as a module, choose M here: the module will be
called appletalk. You almost certainly want to compile it as a
module so you can restart your AppleTalk stack without rebooting
your machine. I hear that the GNU boycott of Apple is over, so
even politically correct people are allowed to say Y here.
config DEV_APPLETALK
tristate "Appletalk interfaces support"
depends on ATALK
help
AppleTalk is the protocol that Apple computers can use to communicate
on a network. If your Linux box is connected to such a network, and wish
to do IP over it, or you have a LocalTalk card and wish to use it to
connect to the AppleTalk network, say Y.
config LTPC
tristate "Apple/Farallon LocalTalk PC support"
depends on DEV_APPLETALK && (ISA || EISA) && ISA_DMA_API
help
This allows you to use the AppleTalk PC card to connect to LocalTalk
networks. The card is also known as the Farallon PhoneNet PC card.
If you are in doubt, this card is the one with the 65C02 chip on it.
You also need version 1.3.3 or later of the netatalk package.
This driver is experimental, which means that it may not work.
See the file <file:Documentation/networking/ltpc.txt>.
config COPS
tristate "COPS LocalTalk PC support"
depends on DEV_APPLETALK && (ISA || EISA)
help
This allows you to use COPS AppleTalk cards to connect to LocalTalk
networks. You also need version 1.3.3 or later of the netatalk
package. This driver is experimental, which means that it may not
work. This driver will only work if you choose "AppleTalk DDP"
networking support, above.
Please read the file <file:Documentation/networking/cops.txt>.
config COPS_DAYNA
bool "Dayna firmware support"
depends on COPS
help
Support COPS compatible cards with Dayna style firmware (Dayna
DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC
III, Farallon PhoneNET PC II).
config COPS_TANGENT
bool "Tangent firmware support"
depends on COPS
help
Support COPS compatible cards with Tangent style firmware (Tangent
ATB_II, Novell NL-1000, Daystar Digital LT-200.
config IPDDP
tristate "Appletalk-IP driver support"
depends on DEV_APPLETALK && ATALK
---help---
This allows IP networking for users who only have AppleTalk
networking available. This feature is experimental. With this
driver, you can encapsulate IP inside AppleTalk (e.g. if your Linux
box is stuck on an AppleTalk only network) or decapsulate (e.g. if
you want your Linux box to act as an Internet gateway for a zoo of
AppleTalk connected Macs). Please see the file
<file:Documentation/networking/ipddp.txt> for more information.
If you say Y here, the AppleTalk-IP support will be compiled into
the kernel. In this case, you can either use encapsulation or
decapsulation, but not both. With the following two questions, you
decide which one you want.
To compile the AppleTalk-IP support as a module, choose M here: the
module will be called ipddp.
In this case, you will be able to use both encapsulation and
decapsulation simultaneously, by loading two copies of the module
and specifying different values for the module option ipddp_mode.
config IPDDP_ENCAP
bool "IP to Appletalk-IP Encapsulation support"
depends on IPDDP
help
If you say Y here, the AppleTalk-IP code will be able to encapsulate
IP packets inside AppleTalk frames; this is useful if your Linux box
is stuck on an AppleTalk network (which hopefully contains a
decapsulator somewhere). Please see
<file:Documentation/networking/ipddp.txt> for more information.

View file

@ -0,0 +1,7 @@
#
# Makefile for drivers/net/appletalk
#
obj-$(CONFIG_IPDDP) += ipddp.o
obj-$(CONFIG_COPS) += cops.o
obj-$(CONFIG_LTPC) += ltpc.o

1010
drivers/net/appletalk/cops.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,60 @@
/* cops.h: LocalTalk driver for Linux.
*
* Authors:
* - Jay Schulist <jschlst@samba.org>
*/
#ifndef __LINUX_COPSLTALK_H
#define __LINUX_COPSLTALK_H
#ifdef __KERNEL__
/* Max LLAP size we will accept. */
#define MAX_LLAP_SIZE 603
/* Tangent */
#define TANG_CARD_STATUS 1
#define TANG_CLEAR_INT 1
#define TANG_RESET 3
#define TANG_TX_READY 1
#define TANG_RX_READY 2
/* Dayna */
#define DAYNA_CMD_DATA 0
#define DAYNA_CLEAR_INT 1
#define DAYNA_CARD_STATUS 2
#define DAYNA_INT_CARD 3
#define DAYNA_RESET 4
#define DAYNA_RX_READY 0
#define DAYNA_TX_READY 1
#define DAYNA_RX_REQUEST 3
/* Same on both card types */
#define COPS_CLEAR_INT 1
/* LAP response codes received from the cards. */
#define LAP_INIT 1 /* Init cmd */
#define LAP_INIT_RSP 2 /* Init response */
#define LAP_WRITE 3 /* Write cmd */
#define DATA_READ 4 /* Data read */
#define LAP_RESPONSE 4 /* Received ALAP frame response */
#define LAP_GETSTAT 5 /* Get LAP and HW status */
#define LAP_RSPSTAT 6 /* Status response */
#endif
/*
* Structure to hold the firmware information.
*/
struct ltfirmware
{
unsigned int length;
const unsigned char *data;
};
#define DAYNA 1
#define TANGENT 2
#endif

View file

@ -0,0 +1,532 @@
/*
* The firmware this driver downloads into the Localtalk card is a
* separate program and is not GPL'd source code, even though the Linux
* side driver and the routine that loads this data into the card are.
*
* It is taken from the COPS SDK and is under the following license
*
* This material is licensed to you strictly for use in conjunction with
* the use of COPS LocalTalk adapters.
* There is no charge for this SDK. And no waranty express or implied
* about its fitness for any purpose. However, we will cheerefully
* refund every penny you paid for this SDK...
* Regards,
*
* Thomas F. Divine
* Chief Scientist
*/
/* cops_ffdrv.h: LocalTalk driver firmware dump for Linux.
*
* Authors:
* - Jay Schulist <jschlst@samba.org>
*/
#ifdef CONFIG_COPS_DAYNA
static const unsigned char ffdrv_code[] = {
58,3,0,50,228,149,33,255,255,34,226,149,
249,17,40,152,33,202,154,183,237,82,77,68,
11,107,98,19,54,0,237,176,175,50,80,0,
62,128,237,71,62,32,237,57,51,62,12,237,
57,50,237,57,54,62,6,237,57,52,62,12,
237,57,49,33,107,137,34,32,128,33,83,130,
34,40,128,33,86,130,34,42,128,33,112,130,
34,36,128,33,211,130,34,38,128,62,0,237,
57,16,33,63,148,34,34,128,237,94,205,15,
130,251,205,168,145,24,141,67,111,112,121,114,
105,103,104,116,32,40,67,41,32,49,57,56,
56,32,45,32,68,97,121,110,97,32,67,111,
109,109,117,110,105,99,97,116,105,111,110,115,
32,32,32,65,108,108,32,114,105,103,104,116,
115,32,114,101,115,101,114,118,101,100,46,32,
32,40,68,40,68,7,16,8,34,7,22,6,
16,5,12,4,8,3,6,140,0,16,39,128,
0,4,96,10,224,6,0,7,126,2,64,11,
118,12,6,13,0,14,193,15,0,5,96,3,
192,1,64,9,8,62,9,211,66,62,192,211,
66,62,100,61,32,253,6,28,33,205,129,14,
66,237,163,194,253,129,6,28,33,205,129,14,
64,237,163,194,9,130,201,62,47,50,71,152,
62,47,211,68,58,203,129,237,57,20,58,204,
129,237,57,21,33,77,152,54,132,205,233,129,
58,228,149,254,209,40,6,56,4,62,0,24,
2,219,96,33,233,149,119,230,62,33,232,149,
119,213,33,8,152,17,7,0,25,119,19,25,
119,209,201,251,237,77,245,197,213,229,221,229,
205,233,129,62,1,50,106,137,205,158,139,221,
225,225,209,193,241,251,237,77,245,197,213,219,
72,237,56,16,230,46,237,57,16,237,56,12,
58,72,152,183,32,26,6,20,17,128,2,237,
56,46,187,32,35,237,56,47,186,32,29,219,
72,230,1,32,3,5,32,232,175,50,72,152,
229,221,229,62,1,50,106,137,205,158,139,221,
225,225,24,25,62,1,50,72,152,58,201,129,
237,57,12,58,202,129,237,57,13,237,56,16,
246,17,237,57,16,209,193,241,251,237,77,245,
197,229,213,221,229,237,56,16,230,17,237,57,
16,237,56,20,58,34,152,246,16,246,8,211,
68,62,6,61,32,253,58,34,152,246,8,211,
68,58,203,129,237,57,20,58,204,129,237,57,
21,237,56,16,246,34,237,57,16,221,225,209,
225,193,241,251,237,77,33,2,0,57,126,230,
3,237,100,1,40,2,246,128,230,130,245,62,
5,211,64,241,211,64,201,229,213,243,237,56,
16,230,46,237,57,16,237,56,12,251,70,35,
35,126,254,175,202,77,133,254,129,202,15,133,
230,128,194,191,132,43,58,44,152,119,33,76,
152,119,35,62,132,119,120,254,255,40,4,58,
49,152,119,219,72,43,43,112,17,3,0,237,
56,52,230,248,237,57,52,219,72,230,1,194,
141,131,209,225,237,56,52,246,6,237,57,52,
62,1,55,251,201,62,3,211,66,62,192,211,
66,62,48,211,66,0,0,219,66,230,1,40,
4,219,67,24,240,205,203,135,58,75,152,254,
255,202,128,132,58,49,152,254,161,250,207,131,
58,34,152,211,68,62,10,211,66,62,128,211,
66,62,11,211,66,62,6,211,66,24,0,62,
14,211,66,62,33,211,66,62,1,211,66,62,
64,211,66,62,3,211,66,62,209,211,66,62,
100,71,219,66,230,1,32,6,5,32,247,195,
248,132,219,67,71,58,44,152,184,194,248,132,
62,100,71,219,66,230,1,32,6,5,32,247,
195,248,132,219,67,62,100,71,219,66,230,1,
32,6,5,32,247,195,248,132,219,67,254,133,
32,7,62,0,50,74,152,24,17,254,173,32,
7,62,1,50,74,152,24,6,254,141,194,248,
132,71,209,225,58,49,152,254,132,32,10,62,
50,205,2,134,205,144,135,24,27,254,140,32,
15,62,110,205,2,134,62,141,184,32,5,205,
144,135,24,8,62,10,205,2,134,205,8,134,
62,1,50,106,137,205,158,139,237,56,52,246,
6,237,57,52,175,183,251,201,62,20,135,237,
57,20,175,237,57,21,237,56,16,246,2,237,
57,16,237,56,20,95,237,56,21,123,254,10,
48,244,237,56,16,230,17,237,57,16,209,225,
205,144,135,62,1,50,106,137,205,158,139,237,
56,52,246,6,237,57,52,175,183,251,201,209,
225,243,219,72,230,1,40,13,62,10,211,66,
0,0,219,66,230,192,202,226,132,237,56,52,
246,6,237,57,52,62,1,55,251,201,205,203,
135,62,1,50,106,137,205,158,139,237,56,52,
246,6,237,57,52,183,251,201,209,225,62,1,
50,106,137,205,158,139,237,56,52,246,6,237,
57,52,62,2,55,251,201,209,225,243,219,72,
230,1,202,213,132,62,10,211,66,0,0,219,
66,230,192,194,213,132,229,62,1,50,106,137,
42,40,152,205,65,143,225,17,3,0,205,111,
136,62,6,211,66,58,44,152,211,66,237,56,
52,246,6,237,57,52,183,251,201,209,197,237,
56,52,230,248,237,57,52,219,72,230,1,32,
15,193,225,237,56,52,246,6,237,57,52,62,
1,55,251,201,14,23,58,37,152,254,0,40,
14,14,2,254,1,32,5,62,140,119,24,3,
62,132,119,43,43,197,205,203,135,193,62,1,
211,66,62,64,211,66,62,3,211,66,62,193,
211,66,62,100,203,39,71,219,66,230,1,32,
6,5,32,247,195,229,133,33,238,151,219,67,
71,58,44,152,184,194,229,133,119,62,100,71,
219,66,230,1,32,6,5,32,247,195,229,133,
219,67,35,119,13,32,234,193,225,62,1,50,
106,137,205,158,139,237,56,52,246,6,237,57,
52,175,183,251,201,33,234,151,35,35,62,255,
119,193,225,62,1,50,106,137,205,158,139,237,
56,52,246,6,237,57,52,175,251,201,243,61,
32,253,251,201,62,3,211,66,62,192,211,66,
58,49,152,254,140,32,19,197,229,213,17,181,
129,33,185,129,1,2,0,237,176,209,225,193,
24,27,229,213,33,187,129,58,49,152,230,15,
87,30,2,237,92,25,17,181,129,126,18,19,
35,126,18,209,225,58,34,152,246,8,211,68,
58,49,152,254,165,40,14,254,164,40,10,62,
10,211,66,62,224,211,66,24,25,58,74,152,
254,0,40,10,62,10,211,66,62,160,211,66,
24,8,62,10,211,66,62,128,211,66,62,11,
211,66,62,6,211,66,205,147,143,62,5,211,
66,62,224,211,66,62,5,211,66,62,96,211,
66,62,5,61,32,253,62,5,211,66,62,224,
211,66,62,14,61,32,253,62,5,211,66,62,
233,211,66,62,128,211,66,58,181,129,61,32,
253,62,1,211,66,62,192,211,66,1,254,19,
237,56,46,187,32,6,13,32,247,195,226,134,
62,192,211,66,0,0,219,66,203,119,40,250,
219,66,203,87,40,250,243,237,56,16,230,17,
237,57,16,237,56,20,251,62,5,211,66,62,
224,211,66,58,182,129,61,32,253,229,33,181,
129,58,183,129,203,63,119,35,58,184,129,119,
225,62,10,211,66,62,224,211,66,62,11,211,
66,62,118,211,66,62,47,211,68,62,5,211,
66,62,233,211,66,58,181,129,61,32,253,62,
5,211,66,62,224,211,66,58,182,129,61,32,
253,62,5,211,66,62,96,211,66,201,229,213,
58,50,152,230,15,87,30,2,237,92,33,187,
129,25,17,181,129,126,18,35,19,126,18,209,
225,58,71,152,246,8,211,68,58,50,152,254,
165,40,14,254,164,40,10,62,10,211,66,62,
224,211,66,24,8,62,10,211,66,62,128,211,
66,62,11,211,66,62,6,211,66,195,248,135,
62,3,211,66,62,192,211,66,197,229,213,17,
181,129,33,183,129,1,2,0,237,176,209,225,
193,62,47,211,68,62,10,211,66,62,224,211,
66,62,11,211,66,62,118,211,66,62,1,211,
66,62,0,211,66,205,147,143,195,16,136,62,
3,211,66,62,192,211,66,197,229,213,17,181,
129,33,183,129,1,2,0,237,176,209,225,193,
62,47,211,68,62,10,211,66,62,224,211,66,
62,11,211,66,62,118,211,66,205,147,143,62,
5,211,66,62,224,211,66,62,5,211,66,62,
96,211,66,62,5,61,32,253,62,5,211,66,
62,224,211,66,62,14,61,32,253,62,5,211,
66,62,233,211,66,62,128,211,66,58,181,129,
61,32,253,62,1,211,66,62,192,211,66,1,
254,19,237,56,46,187,32,6,13,32,247,195,
88,136,62,192,211,66,0,0,219,66,203,119,
40,250,219,66,203,87,40,250,62,5,211,66,
62,224,211,66,58,182,129,61,32,253,62,5,
211,66,62,96,211,66,201,197,14,67,6,0,
62,3,211,66,62,192,211,66,62,48,211,66,
0,0,219,66,230,1,40,4,219,67,24,240,
62,5,211,66,62,233,211,66,62,128,211,66,
58,181,129,61,32,253,237,163,29,62,192,211,
66,219,66,230,4,40,250,237,163,29,32,245,
219,66,230,4,40,250,62,255,71,219,66,230,
4,40,3,5,32,247,219,66,230,4,40,250,
62,5,211,66,62,224,211,66,58,182,129,61,
32,253,62,5,211,66,62,96,211,66,58,71,
152,254,1,202,18,137,62,16,211,66,62,56,
211,66,62,14,211,66,62,33,211,66,62,1,
211,66,62,248,211,66,237,56,48,246,153,230,
207,237,57,48,62,3,211,66,62,221,211,66,
193,201,58,71,152,211,68,62,10,211,66,62,
128,211,66,62,11,211,66,62,6,211,66,62,
6,211,66,58,44,152,211,66,62,16,211,66,
62,56,211,66,62,48,211,66,0,0,62,14,
211,66,62,33,211,66,62,1,211,66,62,248,
211,66,237,56,48,246,145,246,8,230,207,237,
57,48,62,3,211,66,62,221,211,66,193,201,
44,3,1,0,70,69,1,245,197,213,229,175,
50,72,152,237,56,16,230,46,237,57,16,237,
56,12,62,1,211,66,0,0,219,66,95,230,
160,32,3,195,20,139,123,230,96,194,72,139,
62,48,211,66,62,1,211,66,62,64,211,66,
237,91,40,152,205,207,143,25,43,55,237,82,
218,70,139,34,42,152,98,107,58,44,152,190,
194,210,138,35,35,62,130,190,194,200,137,62,
1,50,48,152,62,175,190,202,82,139,62,132,
190,32,44,50,50,152,62,47,50,71,152,229,
175,50,106,137,42,40,152,205,65,143,225,54,
133,43,70,58,44,152,119,43,112,17,3,0,
62,10,205,2,134,205,111,136,195,158,138,62,
140,190,32,19,50,50,152,58,233,149,230,4,
202,222,138,62,1,50,71,152,195,219,137,126,
254,160,250,185,138,254,166,242,185,138,50,50,
152,43,126,35,229,213,33,234,149,95,22,0,
25,126,254,132,40,18,254,140,40,14,58,50,
152,230,15,87,126,31,21,242,65,138,56,2,
175,119,58,50,152,230,15,87,58,233,149,230,
62,31,21,242,85,138,218,98,138,209,225,195,
20,139,58,50,152,33,100,137,230,15,95,22,
0,25,126,50,71,152,209,225,58,50,152,254,
164,250,135,138,58,73,152,254,0,40,4,54,
173,24,2,54,133,43,70,58,44,152,119,43,
112,17,3,0,205,70,135,175,50,106,137,205,
208,139,58,199,129,237,57,12,58,200,129,237,
57,13,237,56,16,246,17,237,57,16,225,209,
193,241,251,237,77,62,129,190,194,227,138,54,
130,43,70,58,44,152,119,43,112,17,3,0,
205,144,135,195,20,139,35,35,126,254,132,194,
227,138,175,50,106,137,205,158,139,24,42,58,
201,154,254,1,40,7,62,1,50,106,137,24,
237,58,106,137,254,1,202,222,138,62,128,166,
194,222,138,221,229,221,33,67,152,205,127,142,
205,109,144,221,225,225,209,193,241,251,237,77,
58,106,137,254,1,202,44,139,58,50,152,254,
164,250,44,139,58,73,152,238,1,50,73,152,
221,229,221,33,51,152,205,127,142,221,225,62,
1,50,106,137,205,158,139,195,13,139,24,208,
24,206,24,204,230,64,40,3,195,20,139,195,
20,139,43,126,33,8,152,119,35,58,44,152,
119,43,237,91,35,152,205,203,135,205,158,139,
195,13,139,175,50,78,152,62,3,211,66,62,
192,211,66,201,197,33,4,0,57,126,35,102,
111,62,1,50,106,137,219,72,205,141,139,193,
201,62,1,50,78,152,34,40,152,54,0,35,
35,54,0,195,163,139,58,78,152,183,200,229,
33,181,129,58,183,129,119,35,58,184,129,119,
225,62,47,211,68,62,14,211,66,62,193,211,
66,62,10,211,66,62,224,211,66,62,11,211,
66,62,118,211,66,195,3,140,58,78,152,183,
200,58,71,152,211,68,254,69,40,4,254,70,
32,17,58,73,152,254,0,40,10,62,10,211,
66,62,160,211,66,24,8,62,10,211,66,62,
128,211,66,62,11,211,66,62,6,211,66,62,
6,211,66,58,44,152,211,66,62,16,211,66,
62,56,211,66,62,48,211,66,0,0,219,66,
230,1,40,4,219,67,24,240,62,14,211,66,
62,33,211,66,42,40,152,205,65,143,62,1,
211,66,62,248,211,66,237,56,48,246,145,246,
8,230,207,237,57,48,62,3,211,66,62,221,
211,66,201,62,16,211,66,62,56,211,66,62,
48,211,66,0,0,219,66,230,1,40,4,219,
67,24,240,62,14,211,66,62,33,211,66,62,
1,211,66,62,248,211,66,237,56,48,246,153,
230,207,237,57,48,62,3,211,66,62,221,211,
66,201,229,213,33,234,149,95,22,0,25,126,
254,132,40,4,254,140,32,2,175,119,123,209,
225,201,6,8,14,0,31,48,1,12,16,250,
121,201,33,4,0,57,94,35,86,33,2,0,
57,126,35,102,111,221,229,34,89,152,237,83,
91,152,221,33,63,152,205,127,142,58,81,152,
50,82,152,58,80,152,135,50,80,152,205,162,
140,254,3,56,16,58,81,152,135,60,230,15,
50,81,152,175,50,80,152,24,23,58,79,152,
205,162,140,254,3,48,13,58,81,152,203,63,
50,81,152,62,255,50,79,152,58,81,152,50,
82,152,58,79,152,135,50,79,152,62,32,50,
83,152,50,84,152,237,56,16,230,17,237,57,
16,219,72,62,192,50,93,152,62,93,50,94,
152,58,93,152,61,50,93,152,32,9,58,94,
152,61,50,94,152,40,44,62,170,237,57,20,
175,237,57,21,237,56,16,246,2,237,57,16,
219,72,230,1,202,29,141,237,56,20,71,237,
56,21,120,254,10,48,237,237,56,16,230,17,
237,57,16,243,62,14,211,66,62,65,211,66,
251,58,39,152,23,23,60,50,39,152,71,58,
82,152,160,230,15,40,22,71,14,10,219,66,
230,16,202,186,141,219,72,230,1,202,186,141,
13,32,239,16,235,42,89,152,237,91,91,152,
205,47,131,48,7,61,202,186,141,195,227,141,
221,225,33,0,0,201,221,33,55,152,205,127,
142,58,84,152,61,50,84,152,40,19,58,82,
152,246,1,50,82,152,58,79,152,246,1,50,
79,152,195,29,141,221,225,33,1,0,201,221,
33,59,152,205,127,142,58,80,152,246,1,50,
80,152,58,82,152,135,246,1,50,82,152,58,
83,152,61,50,83,152,194,29,141,221,225,33,
2,0,201,221,229,33,0,0,57,17,4,0,
25,126,50,44,152,230,128,50,85,152,58,85,
152,183,40,6,221,33,88,2,24,4,221,33,
150,0,58,44,152,183,40,53,60,40,50,60,
40,47,61,61,33,86,152,119,35,119,35,54,
129,175,50,48,152,221,43,221,229,225,124,181,
40,42,33,86,152,17,3,0,205,189,140,17,
232,3,27,123,178,32,251,58,48,152,183,40,
224,58,44,152,71,62,7,128,230,127,71,58,
85,152,176,50,44,152,24,162,221,225,201,183,
221,52,0,192,221,52,1,192,221,52,2,192,
221,52,3,192,55,201,245,62,1,211,100,241,
201,245,62,1,211,96,241,201,33,2,0,57,
126,35,102,111,237,56,48,230,175,237,57,48,
62,48,237,57,49,125,237,57,32,124,237,57,
33,62,0,237,57,34,62,88,237,57,35,62,
0,237,57,36,237,57,37,33,128,2,125,237,
57,38,124,237,57,39,237,56,48,246,97,230,
207,237,57,48,62,0,237,57,0,62,0,211,
96,211,100,201,33,2,0,57,126,35,102,111,
237,56,48,230,175,237,57,48,62,12,237,57,
49,62,76,237,57,32,62,0,237,57,33,237,
57,34,125,237,57,35,124,237,57,36,62,0,
237,57,37,33,128,2,125,237,57,38,124,237,
57,39,237,56,48,246,97,230,207,237,57,48,
62,1,211,96,201,33,2,0,57,126,35,102,
111,229,237,56,48,230,87,237,57,48,125,237,
57,40,124,237,57,41,62,0,237,57,42,62,
67,237,57,43,62,0,237,57,44,58,106,137,
254,1,32,5,33,6,0,24,3,33,128,2,
125,237,57,46,124,237,57,47,237,56,50,230,
252,246,2,237,57,50,225,201,33,4,0,57,
94,35,86,33,2,0,57,126,35,102,111,237,
56,48,230,87,237,57,48,125,237,57,40,124,
237,57,41,62,0,237,57,42,62,67,237,57,
43,62,0,237,57,44,123,237,57,46,122,237,
57,47,237,56,50,230,244,246,0,237,57,50,
237,56,48,246,145,230,207,237,57,48,201,213,
237,56,46,95,237,56,47,87,237,56,46,111,
237,56,47,103,183,237,82,32,235,33,128,2,
183,237,82,209,201,213,237,56,38,95,237,56,
39,87,237,56,38,111,237,56,39,103,183,237,
82,32,235,33,128,2,183,237,82,209,201,245,
197,1,52,0,237,120,230,253,237,121,193,241,
201,245,197,1,52,0,237,120,246,2,237,121,
193,241,201,33,2,0,57,126,35,102,111,126,
35,110,103,201,33,0,0,34,102,152,34,96,
152,34,98,152,33,202,154,34,104,152,237,91,
104,152,42,226,149,183,237,82,17,0,255,25,
34,100,152,203,124,40,6,33,0,125,34,100,
152,42,104,152,35,35,35,229,205,120,139,193,
201,205,186,149,229,42,40,152,35,35,35,229,
205,39,144,193,124,230,3,103,221,117,254,221,
116,255,237,91,42,152,35,35,35,183,237,82,
32,12,17,5,0,42,42,152,205,171,149,242,
169,144,42,40,152,229,205,120,139,193,195,198,
149,237,91,42,152,42,98,152,25,34,98,152,
19,19,19,42,102,152,25,34,102,152,237,91,
100,152,33,158,253,25,237,91,102,152,205,171,
149,242,214,144,33,0,0,34,102,152,62,1,
50,95,152,205,225,144,195,198,149,58,95,152,
183,200,237,91,96,152,42,102,152,205,171,149,
242,5,145,237,91,102,152,33,98,2,25,237,
91,96,152,205,171,149,250,37,145,237,91,96,
152,42,102,152,183,237,82,32,7,42,98,152,
125,180,40,13,237,91,102,152,42,96,152,205,
171,149,242,58,145,237,91,104,152,42,102,152,
25,35,35,35,229,205,120,139,193,175,50,95,
152,201,195,107,139,205,206,149,250,255,243,205,
225,144,251,58,230,149,183,194,198,149,17,1,
0,42,98,152,205,171,149,250,198,149,62,1,
50,230,149,237,91,96,152,42,104,152,25,221,
117,252,221,116,253,237,91,104,152,42,96,152,
25,35,35,35,221,117,254,221,116,255,35,35,
35,229,205,39,144,124,230,3,103,35,35,35,
221,117,250,221,116,251,235,221,110,252,221,102,
253,115,35,114,35,54,4,62,1,211,100,211,
84,195,198,149,33,0,0,34,102,152,34,96,
152,34,98,152,33,202,154,34,104,152,237,91,
104,152,42,226,149,183,237,82,17,0,255,25,
34,100,152,33,109,152,54,0,33,107,152,229,
205,240,142,193,62,47,50,34,152,62,132,50,
49,152,205,241,145,205,61,145,58,39,152,60,
50,39,152,24,241,205,206,149,251,255,33,109,
152,126,183,202,198,149,110,221,117,251,33,109,
152,54,0,221,126,251,254,1,40,28,254,3,
40,101,254,4,202,190,147,254,5,202,147,147,
254,8,40,87,33,107,152,229,205,240,142,195,
198,149,58,201,154,183,32,21,33,111,152,126,
50,229,149,205,52,144,33,110,152,110,38,0,
229,205,11,142,193,237,91,96,152,42,104,152,
25,221,117,254,221,116,255,35,35,54,2,17,
2,0,43,43,115,35,114,58,44,152,35,35,
119,58,228,149,35,119,62,1,211,100,211,84,
62,1,50,201,154,24,169,205,153,142,58,231,
149,183,40,250,175,50,231,149,33,110,152,126,
254,255,40,91,58,233,149,230,63,183,40,83,
94,22,0,33,234,149,25,126,183,40,13,33,
110,152,94,33,234,150,25,126,254,3,32,36,
205,81,148,125,180,33,110,152,94,22,0,40,
17,33,234,149,25,54,0,33,107,152,229,205,
240,142,193,195,198,149,33,234,150,25,54,0,
33,110,152,94,22,0,33,234,149,25,126,50,
49,152,254,132,32,37,62,47,50,34,152,42,
107,152,229,33,110,152,229,205,174,140,193,193,
125,180,33,110,152,94,22,0,33,234,150,202,
117,147,25,52,195,120,147,58,49,152,254,140,
32,7,62,1,50,34,152,24,210,62,32,50,
106,152,24,19,58,49,152,95,58,106,152,163,
183,58,106,152,32,11,203,63,50,106,152,58,
106,152,183,32,231,254,2,40,51,254,4,40,
38,254,8,40,26,254,16,40,13,254,32,32,
158,62,165,50,49,152,62,69,24,190,62,164,
50,49,152,62,70,24,181,62,163,50,49,152,
175,24,173,62,162,50,49,152,62,1,24,164,
62,161,50,49,152,62,3,24,155,25,54,0,
221,126,251,254,8,40,7,58,230,149,183,202,
32,146,33,107,152,229,205,240,142,193,211,84,
195,198,149,237,91,96,152,42,104,152,25,221,
117,254,221,116,255,35,35,54,6,17,2,0,
43,43,115,35,114,58,228,149,35,35,119,58,
233,149,35,119,205,146,142,195,32,146,237,91,
96,152,42,104,152,25,229,205,160,142,193,58,
231,149,183,40,250,175,50,231,149,243,237,91,
96,152,42,104,152,25,221,117,254,221,116,255,
78,35,70,221,113,252,221,112,253,89,80,42,
98,152,183,237,82,34,98,152,203,124,40,19,
33,0,0,34,98,152,34,102,152,34,96,152,
62,1,50,95,152,24,40,221,94,252,221,86,
253,19,19,19,42,96,152,25,34,96,152,237,
91,100,152,33,158,253,25,237,91,96,152,205,
171,149,242,55,148,33,0,0,34,96,152,175,
50,230,149,251,195,32,146,245,62,1,50,231,
149,62,16,237,57,0,211,80,241,251,237,77,
201,205,186,149,229,229,33,0,0,34,37,152,
33,110,152,126,50,234,151,58,44,152,33,235,
151,119,221,54,253,0,221,54,254,0,195,230,
148,33,236,151,54,175,33,3,0,229,33,234,
151,229,205,174,140,193,193,33,236,151,126,254,
255,40,74,33,245,151,110,221,117,255,33,249,
151,126,221,166,255,221,119,255,33,253,151,126,
221,166,255,221,119,255,58,232,149,95,221,126,
255,163,221,119,255,183,40,15,230,191,33,110,
152,94,22,0,33,234,149,25,119,24,12,33,
110,152,94,22,0,33,234,149,25,54,132,33,
0,0,195,198,149,221,110,253,221,102,254,35,
221,117,253,221,116,254,17,32,0,221,110,253,
221,102,254,205,171,149,250,117,148,58,233,149,
203,87,40,84,33,1,0,34,37,152,221,54,
253,0,221,54,254,0,24,53,33,236,151,54,
175,33,3,0,229,33,234,151,229,205,174,140,
193,193,33,236,151,126,254,255,40,14,33,110,
152,94,22,0,33,234,149,25,54,140,24,159,
221,110,253,221,102,254,35,221,117,253,221,116,
254,17,32,0,221,110,253,221,102,254,205,171,
149,250,12,149,33,2,0,34,37,152,221,54,
253,0,221,54,254,0,24,54,33,236,151,54,
175,33,3,0,229,33,234,151,229,205,174,140,
193,193,33,236,151,126,254,255,40,15,33,110,
152,94,22,0,33,234,149,25,54,132,195,211,
148,221,110,253,221,102,254,35,221,117,253,221,
116,254,17,32,0,221,110,253,221,102,254,205,
171,149,250,96,149,33,1,0,195,198,149,124,
170,250,179,149,237,82,201,124,230,128,237,82,
60,201,225,253,229,221,229,221,33,0,0,221,
57,233,221,249,221,225,253,225,201,233,225,253,
229,221,229,221,33,0,0,221,57,94,35,86,
35,235,57,249,235,233,0,0,0,0,0,0,
62,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
175,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,133,1,0,0,0,63,
255,255,255,255,0,0,0,63,0,0,0,0,
0,0,0,0,0,0,0,24,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0
} ;
#endif

View file

@ -0,0 +1,241 @@
/*
* The firmware this driver downloads into the Localtalk card is a
* separate program and is not GPL'd source code, even though the Linux
* side driver and the routine that loads this data into the card are.
*
* It is taken from the COPS SDK and is under the following license
*
* This material is licensed to you strictly for use in conjunction with
* the use of COPS LocalTalk adapters.
* There is no charge for this SDK. And no waranty express or implied
* about its fitness for any purpose. However, we will cheerefully
* refund every penny you paid for this SDK...
* Regards,
*
* Thomas F. Divine
* Chief Scientist
*/
/* cops_ltdrv.h: LocalTalk driver firmware dump for Linux.
*
* Authors:
* - Jay Schulist <jschlst@samba.org>
*/
#ifdef CONFIG_COPS_TANGENT
static const unsigned char ltdrv_code[] = {
58,3,0,50,148,10,33,143,15,62,85,119,
190,32,9,62,170,119,190,32,3,35,24,241,
34,146,10,249,17,150,10,33,143,15,183,237,
82,77,68,11,107,98,19,54,0,237,176,62,
16,237,57,51,62,0,237,57,50,237,57,54,
62,12,237,57,49,62,195,33,39,2,50,56,
0,34,57,0,237,86,205,30,2,251,205,60,
10,24,169,67,111,112,121,114,105,103,104,116,
32,40,99,41,32,49,57,56,56,45,49,57,
57,50,44,32,80,114,105,110,116,105,110,103,
32,67,111,109,109,117,110,105,99,97,116,105,
111,110,115,32,65,115,115,111,99,105,97,116,
101,115,44,32,73,110,99,46,65,108,108,32,
114,105,103,104,116,115,32,114,101,115,101,114,
118,101,100,46,32,32,4,4,22,40,255,60,
4,96,10,224,6,0,7,126,2,64,11,246,
12,6,13,0,14,193,15,0,5,96,3,192,
1,0,9,8,62,3,211,82,62,192,211,82,
201,62,3,211,82,62,213,211,82,201,62,5,
211,82,62,224,211,82,201,62,5,211,82,62,
224,211,82,201,62,5,211,82,62,96,211,82,
201,6,28,33,180,1,14,82,237,163,194,4,
2,33,39,2,34,64,0,58,3,0,230,1,
192,62,11,237,121,62,118,237,121,201,33,182,
10,54,132,205,253,1,201,245,197,213,229,42,
150,10,14,83,17,98,2,67,20,237,162,58,
179,1,95,219,82,230,1,32,6,29,32,247,
195,17,3,62,1,211,82,219,82,95,230,160,
32,10,237,162,32,225,21,32,222,195,15,3,
237,162,123,230,96,194,21,3,62,48,211,82,
62,1,211,82,175,211,82,237,91,150,10,43,
55,237,82,218,19,3,34,152,10,98,107,58,
154,10,190,32,81,62,1,50,158,10,35,35,
62,132,190,32,44,54,133,43,70,58,154,10,
119,43,112,17,3,0,205,137,3,62,16,211,
82,62,56,211,82,205,217,1,42,150,10,14,
83,17,98,2,67,20,58,178,1,95,195,59,
2,62,129,190,194,227,2,54,130,43,70,58,
154,10,119,43,112,17,3,0,205,137,3,195,
254,2,35,35,126,254,132,194,227,2,205,61,
3,24,20,62,128,166,194,222,2,221,229,221,
33,175,10,205,93,6,205,144,7,221,225,225,
209,193,241,251,237,77,221,229,221,33,159,10,
205,93,6,221,225,205,61,3,195,247,2,24,
237,24,235,24,233,230,64,40,2,24,227,24,
225,175,50,179,10,205,208,1,201,197,33,4,
0,57,126,35,102,111,205,51,3,193,201,62,
1,50,179,10,34,150,10,54,0,58,179,10,
183,200,62,14,211,82,62,193,211,82,62,10,
211,82,62,224,211,82,62,6,211,82,58,154,
10,211,82,62,16,211,82,62,56,211,82,62,
48,211,82,219,82,230,1,40,4,219,83,24,
242,62,14,211,82,62,33,211,82,62,1,211,
82,62,9,211,82,62,32,211,82,205,217,1,
201,14,83,205,208,1,24,23,14,83,205,208,
1,205,226,1,58,174,1,61,32,253,205,244,
1,58,174,1,61,32,253,205,226,1,58,175,
1,61,32,253,62,5,211,82,62,233,211,82,
62,128,211,82,58,176,1,61,32,253,237,163,
27,62,192,211,82,219,82,230,4,40,250,237,
163,27,122,179,32,243,219,82,230,4,40,250,
58,178,1,71,219,82,230,4,40,3,5,32,
247,219,82,230,4,40,250,205,235,1,58,177,
1,61,32,253,205,244,1,201,229,213,35,35,
126,230,128,194,145,4,43,58,154,10,119,43,
70,33,181,10,119,43,112,17,3,0,243,62,
10,211,82,219,82,230,128,202,41,4,209,225,
62,1,55,251,201,205,144,3,58,180,10,254,
255,202,127,4,205,217,1,58,178,1,71,219,
82,230,1,32,6,5,32,247,195,173,4,219,
83,71,58,154,10,184,194,173,4,58,178,1,
71,219,82,230,1,32,6,5,32,247,195,173,
4,219,83,58,178,1,71,219,82,230,1,32,
6,5,32,247,195,173,4,219,83,254,133,194,
173,4,58,179,1,24,4,58,179,1,135,61,
32,253,209,225,205,137,3,205,61,3,183,251,
201,209,225,243,62,10,211,82,219,82,230,128,
202,164,4,62,1,55,251,201,205,144,3,205,
61,3,183,251,201,209,225,62,2,55,251,201,
243,62,14,211,82,62,33,211,82,251,201,33,
4,0,57,94,35,86,33,2,0,57,126,35,
102,111,221,229,34,193,10,237,83,195,10,221,
33,171,10,205,93,6,58,185,10,50,186,10,
58,184,10,135,50,184,10,205,112,6,254,3,
56,16,58,185,10,135,60,230,15,50,185,10,
175,50,184,10,24,23,58,183,10,205,112,6,
254,3,48,13,58,185,10,203,63,50,185,10,
62,255,50,183,10,58,185,10,50,186,10,58,
183,10,135,50,183,10,62,32,50,187,10,50,
188,10,6,255,219,82,230,16,32,3,5,32,
247,205,180,4,6,40,219,82,230,16,40,3,
5,32,247,62,10,211,82,219,82,230,128,194,
46,5,219,82,230,16,40,214,237,95,71,58,
186,10,160,230,15,40,32,71,14,10,62,10,
211,82,219,82,230,128,202,119,5,205,180,4,
195,156,5,219,82,230,16,202,156,5,13,32,
229,16,225,42,193,10,237,91,195,10,205,252,
3,48,7,61,202,156,5,195,197,5,221,225,
33,0,0,201,221,33,163,10,205,93,6,58,
188,10,61,50,188,10,40,19,58,186,10,246,
1,50,186,10,58,183,10,246,1,50,183,10,
195,46,5,221,225,33,1,0,201,221,33,167,
10,205,93,6,58,184,10,246,1,50,184,10,
58,186,10,135,246,1,50,186,10,58,187,10,
61,50,187,10,194,46,5,221,225,33,2,0,
201,221,229,33,0,0,57,17,4,0,25,126,
50,154,10,230,128,50,189,10,58,189,10,183,
40,6,221,33,88,2,24,4,221,33,150,0,
58,154,10,183,40,49,60,40,46,61,33,190,
10,119,35,119,35,54,129,175,50,158,10,221,
43,221,229,225,124,181,40,42,33,190,10,17,
3,0,205,206,4,17,232,3,27,123,178,32,
251,58,158,10,183,40,224,58,154,10,71,62,
7,128,230,127,71,58,189,10,176,50,154,10,
24,166,221,225,201,183,221,52,0,192,221,52,
1,192,221,52,2,192,221,52,3,192,55,201,
6,8,14,0,31,48,1,12,16,250,121,201,
33,2,0,57,94,35,86,35,78,35,70,35,
126,35,102,105,79,120,68,103,237,176,201,33,
2,0,57,126,35,102,111,62,17,237,57,48,
125,237,57,40,124,237,57,41,62,0,237,57,
42,62,64,237,57,43,62,0,237,57,44,33,
128,2,125,237,57,46,124,237,57,47,62,145,
237,57,48,211,68,58,149,10,211,66,201,33,
2,0,57,126,35,102,111,62,33,237,57,48,
62,64,237,57,32,62,0,237,57,33,237,57,
34,125,237,57,35,124,237,57,36,62,0,237,
57,37,33,128,2,125,237,57,38,124,237,57,
39,62,97,237,57,48,211,67,58,149,10,211,
66,201,237,56,46,95,237,56,47,87,237,56,
46,111,237,56,47,103,183,237,82,32,235,33,
128,2,183,237,82,201,237,56,38,95,237,56,
39,87,237,56,38,111,237,56,39,103,183,237,
82,32,235,33,128,2,183,237,82,201,205,106,
10,221,110,6,221,102,7,126,35,110,103,195,
118,10,205,106,10,33,0,0,34,205,10,34,
198,10,34,200,10,33,143,15,34,207,10,237,
91,207,10,42,146,10,183,237,82,17,0,255,
25,34,203,10,203,124,40,6,33,0,125,34,
203,10,42,207,10,229,205,37,3,195,118,10,
205,106,10,229,42,150,10,35,35,35,229,205,
70,7,193,124,230,3,103,221,117,254,221,116,
255,237,91,152,10,35,35,35,183,237,82,32,
12,17,5,0,42,152,10,205,91,10,242,203,
7,42,150,10,229,205,37,3,195,118,10,237,
91,152,10,42,200,10,25,34,200,10,42,205,
10,25,34,205,10,237,91,203,10,33,158,253,
25,237,91,205,10,205,91,10,242,245,7,33,
0,0,34,205,10,62,1,50,197,10,205,5,
8,33,0,0,57,249,195,118,10,205,106,10,
58,197,10,183,202,118,10,237,91,198,10,42,
205,10,205,91,10,242,46,8,237,91,205,10,
33,98,2,25,237,91,198,10,205,91,10,250,
78,8,237,91,198,10,42,205,10,183,237,82,
32,7,42,200,10,125,180,40,13,237,91,205,
10,42,198,10,205,91,10,242,97,8,237,91,
207,10,42,205,10,25,229,205,37,3,175,50,
197,10,195,118,10,205,29,3,33,0,0,57,
249,195,118,10,205,106,10,58,202,10,183,40,
22,205,14,7,237,91,209,10,19,19,19,205,
91,10,242,139,8,33,1,0,195,118,10,33,
0,0,195,118,10,205,126,10,252,255,205,108,
8,125,180,194,118,10,237,91,200,10,33,0,
0,205,91,10,242,118,10,237,91,207,10,42,
198,10,25,221,117,254,221,116,255,35,35,35,
229,205,70,7,193,124,230,3,103,35,35,35,
221,117,252,221,116,253,229,221,110,254,221,102,
255,229,33,212,10,229,205,124,6,193,193,221,
110,252,221,102,253,34,209,10,33,211,10,54,
4,33,209,10,227,205,147,6,193,62,1,50,
202,10,243,221,94,252,221,86,253,42,200,10,
183,237,82,34,200,10,203,124,40,17,33,0,
0,34,200,10,34,205,10,34,198,10,50,197,
10,24,37,221,94,252,221,86,253,42,198,10,
25,34,198,10,237,91,203,10,33,158,253,25,
237,91,198,10,205,91,10,242,68,9,33,0,
0,34,198,10,205,5,8,33,0,0,57,249,
251,195,118,10,205,106,10,33,49,13,126,183,
40,16,205,42,7,237,91,47,13,19,19,19,
205,91,10,242,117,9,58,142,15,198,1,50,
142,15,195,118,10,33,49,13,126,254,1,40,
25,254,3,202,7,10,254,5,202,21,10,33,
49,13,54,0,33,47,13,229,205,207,6,195,
118,10,58,141,15,183,32,72,33,51,13,126,
50,149,10,205,86,7,33,50,13,126,230,127,
183,32,40,58,142,15,230,127,50,142,15,183,
32,5,198,1,50,142,15,33,50,13,126,111,
23,159,103,203,125,58,142,15,40,5,198,128,
50,142,15,33,50,13,119,33,50,13,126,111,
23,159,103,229,205,237,5,193,33,211,10,54,
2,33,2,0,34,209,10,58,154,10,33,212,
10,119,58,148,10,33,213,10,119,33,209,10,
229,205,147,6,193,24,128,42,47,13,229,33,
50,13,229,205,191,4,193,24,239,33,211,10,
54,6,33,3,0,34,209,10,58,154,10,33,
212,10,119,58,148,10,33,213,10,119,33,214,
10,54,5,33,209,10,229,205,147,6,24,200,
205,106,10,33,49,13,54,0,33,47,13,229,
205,207,6,33,209,10,227,205,147,6,193,205,
80,9,205,145,8,24,248,124,170,250,99,10,
237,82,201,124,230,128,237,82,60,201,225,253,
229,221,229,221,33,0,0,221,57,233,221,249,
221,225,253,225,201,233,225,253,229,221,229,221,
33,0,0,221,57,94,35,86,35,235,57,249,
235,233,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0
} ;
#endif

View file

@ -0,0 +1,335 @@
/*
* ipddp.c: IP to Appletalk-IP Encapsulation driver for Linux
* Appletalk-IP to IP Decapsulation driver for Linux
*
* Authors:
* - DDP-IP Encap by: Bradford W. Johnson <johns393@maroon.tc.umn.edu>
* - DDP-IP Decap by: Jay Schulist <jschlst@samba.org>
*
* Derived from:
* - Almost all code already existed in net/appletalk/ddp.c I just
* moved/reorginized it into a driver file. Original IP-over-DDP code
* was done by Bradford W. Johnson <johns393@maroon.tc.umn.edu>
* - skeleton.c: A network driver outline for linux.
* Written 1993-94 by Donald Becker.
* - dummy.c: A dummy net driver. By Nick Holloway.
* - MacGate: A user space Daemon for Appletalk-IP Decap for
* Linux by Jay Schulist <jschlst@samba.org>
*
* Copyright 1993 United States Government as represented by the
* Director, National Security Agency.
*
* This software may be used and distributed according to the terms
* of the GNU General Public License, incorporated herein by reference.
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ip.h>
#include <linux/atalk.h>
#include <linux/if_arp.h>
#include <linux/slab.h>
#include <net/route.h>
#include <asm/uaccess.h>
#include "ipddp.h" /* Our stuff */
static const char version[] = KERN_INFO "ipddp.c:v0.01 8/28/97 Bradford W. Johnson <johns393@maroon.tc.umn.edu>\n";
static struct ipddp_route *ipddp_route_list;
static DEFINE_SPINLOCK(ipddp_route_lock);
#ifdef CONFIG_IPDDP_ENCAP
static int ipddp_mode = IPDDP_ENCAP;
#else
static int ipddp_mode = IPDDP_DECAP;
#endif
/* Index to functions, as function prototypes. */
static netdev_tx_t ipddp_xmit(struct sk_buff *skb,
struct net_device *dev);
static int ipddp_create(struct ipddp_route *new_rt);
static int ipddp_delete(struct ipddp_route *rt);
static struct ipddp_route* __ipddp_find_route(struct ipddp_route *rt);
static int ipddp_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
static const struct net_device_ops ipddp_netdev_ops = {
.ndo_start_xmit = ipddp_xmit,
.ndo_do_ioctl = ipddp_ioctl,
.ndo_change_mtu = eth_change_mtu,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
};
static struct net_device * __init ipddp_init(void)
{
static unsigned version_printed;
struct net_device *dev;
int err;
dev = alloc_etherdev(0);
if (!dev)
return ERR_PTR(-ENOMEM);
netif_keep_dst(dev);
strcpy(dev->name, "ipddp%d");
if (version_printed++ == 0)
printk(version);
/* Initialize the device structure. */
dev->netdev_ops = &ipddp_netdev_ops;
dev->type = ARPHRD_IPDDP; /* IP over DDP tunnel */
dev->mtu = 585;
dev->flags |= IFF_NOARP;
/*
* The worst case header we will need is currently a
* ethernet header (14 bytes) and a ddp header (sizeof ddpehdr+1)
* We send over SNAP so that takes another 8 bytes.
*/
dev->hard_header_len = 14+8+sizeof(struct ddpehdr)+1;
err = register_netdev(dev);
if (err) {
free_netdev(dev);
return ERR_PTR(err);
}
/* Let the user now what mode we are in */
if(ipddp_mode == IPDDP_ENCAP)
printk("%s: Appletalk-IP Encap. mode by Bradford W. Johnson <johns393@maroon.tc.umn.edu>\n",
dev->name);
if(ipddp_mode == IPDDP_DECAP)
printk("%s: Appletalk-IP Decap. mode by Jay Schulist <jschlst@samba.org>\n",
dev->name);
return dev;
}
/*
* Transmit LLAP/ELAP frame using aarp_send_ddp.
*/
static netdev_tx_t ipddp_xmit(struct sk_buff *skb, struct net_device *dev)
{
__be32 paddr = skb_rtable(skb)->rt_gateway;
struct ddpehdr *ddp;
struct ipddp_route *rt;
struct atalk_addr *our_addr;
spin_lock(&ipddp_route_lock);
/*
* Find appropriate route to use, based only on IP number.
*/
for(rt = ipddp_route_list; rt != NULL; rt = rt->next)
{
if(rt->ip == paddr)
break;
}
if(rt == NULL) {
spin_unlock(&ipddp_route_lock);
return NETDEV_TX_OK;
}
our_addr = atalk_find_dev_addr(rt->dev);
if(ipddp_mode == IPDDP_DECAP)
/*
* Pull off the excess room that should not be there.
* This is due to a hard-header problem. This is the
* quick fix for now though, till it breaks.
*/
skb_pull(skb, 35-(sizeof(struct ddpehdr)+1));
/* Create the Extended DDP header */
ddp = (struct ddpehdr *)skb->data;
ddp->deh_len_hops = htons(skb->len + (1<<10));
ddp->deh_sum = 0;
/*
* For Localtalk we need aarp_send_ddp to strip the
* long DDP header and place a shot DDP header on it.
*/
if(rt->dev->type == ARPHRD_LOCALTLK)
{
ddp->deh_dnet = 0; /* FIXME more hops?? */
ddp->deh_snet = 0;
}
else
{
ddp->deh_dnet = rt->at.s_net; /* FIXME more hops?? */
ddp->deh_snet = our_addr->s_net;
}
ddp->deh_dnode = rt->at.s_node;
ddp->deh_snode = our_addr->s_node;
ddp->deh_dport = 72;
ddp->deh_sport = 72;
*((__u8 *)(ddp+1)) = 22; /* ddp type = IP */
skb->protocol = htons(ETH_P_ATALK); /* Protocol has changed */
dev->stats.tx_packets++;
dev->stats.tx_bytes += skb->len;
aarp_send_ddp(rt->dev, skb, &rt->at, NULL);
spin_unlock(&ipddp_route_lock);
return NETDEV_TX_OK;
}
/*
* Create a routing entry. We first verify that the
* record does not already exist. If it does we return -EEXIST
*/
static int ipddp_create(struct ipddp_route *new_rt)
{
struct ipddp_route *rt = kmalloc(sizeof(*rt), GFP_KERNEL);
if (rt == NULL)
return -ENOMEM;
rt->ip = new_rt->ip;
rt->at = new_rt->at;
rt->next = NULL;
if ((rt->dev = atrtr_get_dev(&rt->at)) == NULL) {
kfree(rt);
return -ENETUNREACH;
}
spin_lock_bh(&ipddp_route_lock);
if (__ipddp_find_route(rt)) {
spin_unlock_bh(&ipddp_route_lock);
kfree(rt);
return -EEXIST;
}
rt->next = ipddp_route_list;
ipddp_route_list = rt;
spin_unlock_bh(&ipddp_route_lock);
return 0;
}
/*
* Delete a route, we only delete a FULL match.
* If route does not exist we return -ENOENT.
*/
static int ipddp_delete(struct ipddp_route *rt)
{
struct ipddp_route **r = &ipddp_route_list;
struct ipddp_route *tmp;
spin_lock_bh(&ipddp_route_lock);
while((tmp = *r) != NULL)
{
if(tmp->ip == rt->ip &&
tmp->at.s_net == rt->at.s_net &&
tmp->at.s_node == rt->at.s_node)
{
*r = tmp->next;
spin_unlock_bh(&ipddp_route_lock);
kfree(tmp);
return 0;
}
r = &tmp->next;
}
spin_unlock_bh(&ipddp_route_lock);
return -ENOENT;
}
/*
* Find a routing entry, we only return a FULL match
*/
static struct ipddp_route* __ipddp_find_route(struct ipddp_route *rt)
{
struct ipddp_route *f;
for(f = ipddp_route_list; f != NULL; f = f->next)
{
if(f->ip == rt->ip &&
f->at.s_net == rt->at.s_net &&
f->at.s_node == rt->at.s_node)
return f;
}
return NULL;
}
static int ipddp_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
struct ipddp_route __user *rt = ifr->ifr_data;
struct ipddp_route rcp, rcp2, *rp;
if(!capable(CAP_NET_ADMIN))
return -EPERM;
if(copy_from_user(&rcp, rt, sizeof(rcp)))
return -EFAULT;
switch(cmd)
{
case SIOCADDIPDDPRT:
return ipddp_create(&rcp);
case SIOCFINDIPDDPRT:
spin_lock_bh(&ipddp_route_lock);
rp = __ipddp_find_route(&rcp);
if (rp)
memcpy(&rcp2, rp, sizeof(rcp2));
spin_unlock_bh(&ipddp_route_lock);
if (rp) {
if (copy_to_user(rt, &rcp2,
sizeof(struct ipddp_route)))
return -EFAULT;
return 0;
} else
return -ENOENT;
case SIOCDELIPDDPRT:
return ipddp_delete(&rcp);
default:
return -EINVAL;
}
}
static struct net_device *dev_ipddp;
MODULE_LICENSE("GPL");
module_param(ipddp_mode, int, 0);
static int __init ipddp_init_module(void)
{
dev_ipddp = ipddp_init();
if (IS_ERR(dev_ipddp))
return PTR_ERR(dev_ipddp);
return 0;
}
static void __exit ipddp_cleanup_module(void)
{
struct ipddp_route *p;
unregister_netdev(dev_ipddp);
free_netdev(dev_ipddp);
while (ipddp_route_list) {
p = ipddp_route_list->next;
kfree(ipddp_route_list);
ipddp_route_list = p;
}
}
module_init(ipddp_init_module);
module_exit(ipddp_cleanup_module);

View file

@ -0,0 +1,27 @@
/*
* ipddp.h: Header for IP-over-DDP driver for Linux.
*/
#ifndef __LINUX_IPDDP_H
#define __LINUX_IPDDP_H
#ifdef __KERNEL__
#define SIOCADDIPDDPRT (SIOCDEVPRIVATE)
#define SIOCDELIPDDPRT (SIOCDEVPRIVATE+1)
#define SIOCFINDIPDDPRT (SIOCDEVPRIVATE+2)
struct ipddp_route
{
struct net_device *dev; /* Carrier device */
__be32 ip; /* IP address */
struct atalk_addr at; /* Gateway appletalk address */
int flags;
struct ipddp_route *next;
};
#define IPDDP_ENCAP 1
#define IPDDP_DECAP 2
#endif /* __KERNEL__ */
#endif /* __LINUX_IPDDP_H */

1285
drivers/net/appletalk/ltpc.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,73 @@
/*** ltpc.h
*
*
***/
#define LT_GETRESULT 0x00
#define LT_WRITEMEM 0x01
#define LT_READMEM 0x02
#define LT_GETFLAGS 0x04
#define LT_SETFLAGS 0x05
#define LT_INIT 0x10
#define LT_SENDLAP 0x13
#define LT_RCVLAP 0x14
/* the flag that we care about */
#define LT_FLAG_ALLLAP 0x04
struct lt_getresult {
unsigned char command;
unsigned char mailbox;
};
struct lt_mem {
unsigned char command;
unsigned char mailbox;
unsigned short addr; /* host order */
unsigned short length; /* host order */
};
struct lt_setflags {
unsigned char command;
unsigned char mailbox;
unsigned char flags;
};
struct lt_getflags {
unsigned char command;
unsigned char mailbox;
};
struct lt_init {
unsigned char command;
unsigned char mailbox;
unsigned char hint;
};
struct lt_sendlap {
unsigned char command;
unsigned char mailbox;
unsigned char dnode;
unsigned char laptype;
unsigned short length; /* host order */
};
struct lt_rcvlap {
unsigned char command;
unsigned char dnode;
unsigned char snode;
unsigned char laptype;
unsigned short length; /* host order */
};
union lt_command {
struct lt_getresult getresult;
struct lt_mem mem;
struct lt_setflags setflags;
struct lt_getflags getflags;
struct lt_init init;
struct lt_sendlap sendlap;
struct lt_rcvlap rcvlap;
};
typedef union lt_command lt_command;