Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 1
/* atm_tcp.h - Driver-specific declarations of the ATMTCP driver (for use by
2
               driver-specific utilities) */
3
 
4
/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */
5
 
6
 
7
#ifndef LINUX_ATM_TCP_H
8
#define LINUX_ATM_TCP_H
9
 
10
#include <linux/atmapi.h>
11
 
12
#ifdef __KERNEL__
13
#include <linux/types.h>
14
#endif
15
#include <linux/atmioc.h>
16
 
17
 
18
/*
19
 * All values in struct atmtcp_hdr are in network byte order
20
 */
21
 
22
struct atmtcp_hdr {
23
        uint16_t        vpi;
24
        uint16_t        vci;
25
        uint32_t        length;         /* ... of data part */
26
};
27
 
28
/*
29
 * All values in struct atmtcp_command are in host byte order
30
 */
31
 
32
#define ATMTCP_HDR_MAGIC        (~0)    /* this length indicates a command */
33
#define ATMTCP_CTRL_OPEN        1       /* request/reply */
34
#define ATMTCP_CTRL_CLOSE       2       /* request/reply */
35
 
36
struct atmtcp_control {
37
        struct atmtcp_hdr hdr;  /* must be first */
38
        int type;               /* message type; both directions */
39
        atm_kptr_t vcc;         /* both directions */
40
        struct sockaddr_atmpvc addr; /* suggested value from kernel */
41
        struct atm_qos  qos;    /* both directions */
42
        int result;             /* to kernel only */
43
} __ATM_API_ALIGN;
44
 
45
/*
46
 * Field usage:
47
 * Messge type  dir.    hdr.v?i type    addr    qos     vcc     result
48
 * -----------  ----    ------- ----    ----    ---     ---     ------
49
 * OPEN         K->D    Y       Y       Y       Y       Y       0
50
 * OPEN         D->K    -       Y       Y       Y       Y       Y
51
 * CLOSE        K->D    -       -       Y       -       Y       0
52
 * CLOSE        D->K    -       -       -       -       Y       Y
53
 */
54
 
55
#define SIOCSIFATMTCP   _IO('a',ATMIOC_ITF)     /* set ATMTCP mode */
56
#define ATMTCP_CREATE   _IO('a',ATMIOC_ITF+14)  /* create persistent ATMTCP
57
                                                   interface */
58
#define ATMTCP_REMOVE   _IO('a',ATMIOC_ITF+15)  /* destroy persistent ATMTCP
59
                                                   interface */
60
 
61
 
62
#ifdef __KERNEL__
63
 
64
struct atm_tcp_ops {
65
        int (*attach)(struct atm_vcc *vcc,int itf);
66
        int (*create_persistent)(int itf);
67
        int (*remove_persistent)(int itf);
68
        struct module *owner;
69
};
70
 
71
extern struct atm_tcp_ops atm_tcp_ops;
72
 
73
#endif
74
 
75
#endif