Commit | Line | Data |
---|---|---|
7040e556 D |
1 | /******************************************************************************/ |
2 | /* */ | |
3 | /* Silicom Bypass Control Utility, Copyright (c) 2005-2007 Silicom */ | |
4 | /* All rights reserved. */ | |
5 | /* */ | |
6 | /* This program is free software; you can redistribute it and/or modify */ | |
7 | /* it under the terms of the GNU General Public License as published by */ | |
8 | /* the Free Software Foundation, located in the file LICENSE. */ | |
9 | /* */ | |
10 | /* */ | |
11 | /******************************************************************************/ | |
12 | ||
13 | #ifndef BP_IOCTL_H | |
14 | #define BP_IOCTL_H | |
15 | ||
8b22b0b2 D |
16 | #define BP_CAP 0x01 /* BIT_0 */ |
17 | #define BP_STATUS_CAP 0x02 | |
18 | #define BP_STATUS_CHANGE_CAP 0x04 | |
19 | #define SW_CTL_CAP 0x08 | |
20 | #define BP_DIS_CAP 0x10 | |
21 | #define BP_DIS_STATUS_CAP 0x20 | |
22 | #define STD_NIC_CAP 0x40 | |
23 | #define BP_PWOFF_ON_CAP 0x80 | |
24 | #define BP_PWOFF_OFF_CAP 0x0100 | |
25 | #define BP_PWOFF_CTL_CAP 0x0200 | |
26 | #define BP_PWUP_ON_CAP 0x0400 | |
27 | #define BP_PWUP_OFF_CAP 0x0800 | |
28 | #define BP_PWUP_CTL_CAP 0x1000 | |
29 | #define WD_CTL_CAP 0x2000 | |
30 | #define WD_STATUS_CAP 0x4000 | |
31 | #define WD_TIMEOUT_CAP 0x8000 | |
32 | #define TX_CTL_CAP 0x10000 | |
33 | #define TX_STATUS_CAP 0x20000 | |
34 | #define TAP_CAP 0x40000 | |
35 | #define TAP_STATUS_CAP 0x80000 | |
36 | #define TAP_STATUS_CHANGE_CAP 0x100000 | |
37 | #define TAP_DIS_CAP 0x200000 | |
38 | #define TAP_DIS_STATUS_CAP 0x400000 | |
39 | #define TAP_PWUP_ON_CAP 0x800000 | |
40 | #define TAP_PWUP_OFF_CAP 0x1000000 | |
41 | #define TAP_PWUP_CTL_CAP 0x2000000 | |
42 | #define NIC_CAP_NEG 0x4000000 | |
43 | #define TPL_CAP 0x8000000 | |
44 | #define DISC_CAP 0x10000000 | |
45 | #define DISC_DIS_CAP 0x20000000 | |
46 | #define DISC_PWUP_CTL_CAP 0x40000000 | |
7040e556 D |
47 | |
48 | #define TPL2_CAP_EX 0x01 | |
49 | #define DISC_PORT_CAP_EX 0x02 | |
50 | ||
51 | #define WD_MIN_TIME_MASK(val) (val & 0xf) | |
52 | #define WD_STEP_COUNT_MASK(val) ((val & 0xf) << 5) | |
8b22b0b2 | 53 | #define WDT_STEP_TIME 0x10 /* BIT_4 */ |
7040e556 D |
54 | |
55 | #define WD_MIN_TIME_GET(desc) (desc & 0xf) | |
6690da5f | 56 | #define WD_STEP_COUNT_GET(desc) ((desc>>5) & 0xf) |
7040e556 D |
57 | |
58 | typedef enum { | |
59 | IF_SCAN, | |
60 | GET_DEV_NUM, | |
61 | IS_BYPASS, | |
62 | GET_BYPASS_SLAVE, | |
63 | GET_BYPASS_CAPS, | |
64 | GET_WD_SET_CAPS, | |
65 | SET_BYPASS, | |
66 | GET_BYPASS, | |
67 | GET_BYPASS_CHANGE, | |
68 | SET_BYPASS_WD, | |
69 | GET_BYPASS_WD, | |
70 | GET_WD_EXPIRE_TIME, | |
71 | RESET_BYPASS_WD_TIMER, | |
72 | SET_DIS_BYPASS, | |
73 | GET_DIS_BYPASS, | |
74 | SET_BYPASS_PWOFF, | |
75 | GET_BYPASS_PWOFF, | |
76 | SET_BYPASS_PWUP, | |
77 | GET_BYPASS_PWUP, | |
78 | SET_STD_NIC, | |
79 | GET_STD_NIC, | |
80 | SET_TX, | |
81 | GET_TX, | |
82 | SET_TAP, | |
83 | GET_TAP, | |
84 | GET_TAP_CHANGE, | |
85 | SET_DIS_TAP, | |
86 | GET_DIS_TAP, | |
87 | SET_TAP_PWUP, | |
88 | GET_TAP_PWUP, | |
89 | SET_WD_EXP_MODE, | |
90 | GET_WD_EXP_MODE, | |
91 | SET_WD_AUTORESET, | |
92 | GET_WD_AUTORESET, | |
93 | SET_TPL, | |
94 | GET_TPL, | |
95 | SET_DISC, | |
96 | GET_DISC, | |
97 | GET_DISC_CHANGE, | |
98 | SET_DIS_DISC, | |
99 | GET_DIS_DISC, | |
100 | SET_DISC_PWUP, | |
101 | GET_DISC_PWUP, | |
102 | GET_BYPASS_INFO = 100, | |
103 | GET_BP_WAIT_AT_PWUP, | |
104 | SET_BP_WAIT_AT_PWUP, | |
105 | GET_BP_HW_RESET, | |
106 | SET_BP_HW_RESET, | |
107 | SET_DISC_PORT, | |
108 | GET_DISC_PORT, | |
109 | SET_DISC_PORT_PWUP, | |
110 | GET_DISC_PORT_PWUP, | |
111 | SET_BP_FORCE_LINK, | |
112 | GET_BP_FORCE_LINK, | |
113 | #ifdef BP_SELF_TEST | |
114 | SET_BP_SELF_TEST = 200, | |
115 | GET_BP_SELF_TEST, | |
116 | #endif | |
117 | ||
118 | } CMND_TYPE_SD; | |
119 | ||
120 | /* | |
121 | * The major device number. We can't rely on dynamic | |
122 | * registration any more, because ioctls need to know | |
123 | * it. | |
124 | */ | |
125 | ||
126 | #define MAGIC_NUM 'J' | |
127 | ||
128 | /* for passing single values */ | |
129 | struct bpctl_cmd { | |
130 | int status; | |
131 | int data[8]; | |
132 | int in_param[8]; | |
133 | int out_param[8]; | |
134 | }; | |
135 | ||
136 | #define IOCTL_TX_MSG(cmd) _IOWR(MAGIC_NUM, cmd, struct bpctl_cmd) | |
137 | ||
7040e556 D |
138 | #define DEVICE_NAME "bpctl" |
139 | ||
140 | #endif |