e1_input: rework configuration of virtual E1 line operations
struct e1inp_line_ops {
- enum e1inp_line_role role;
- char *addr;
- void *data;
+ union {
+ struct {
+ enum e1inp_line_role role; /* BSC or BTS mode. */
+ const char *addr; /* IP address .*/
+ void *dev; /* device parameters. */
+ } ipa;
+ struct {
+ const char *port; /* e.g. /dev/ttyUSB0 */
+ unsigned int delay;
+ } rs232;
+ } cfg;
Now this structure contains the configuration details for the
virtual E1 line, instead of using a pointer.
This also get the line_update callback to its original layout:
+ int (*line_update)(struct e1inp_line *line);
diff --git a/src/input/misdn.c b/src/input/misdn.c
index 7adcaa6..bb9145f 100644
--- a/src/input/misdn.c
+++ b/src/input/misdn.c
@@ -380,8 +380,7 @@
return ret;
}
-static int mi_e1_line_update(struct e1inp_line *line,
- enum e1inp_line_role role, const char *addr);
+static int mi_e1_line_update(struct e1inp_line *line);
struct e1inp_driver misdn_driver = {
.name = "misdn",
@@ -479,8 +478,7 @@
return 0;
}
-static int mi_e1_line_update(struct e1inp_line *line,
- enum e1inp_line_role role, const char *addr)
+static int mi_e1_line_update(struct e1inp_line *line)
{
struct mISDN_devinfo devinfo;
int sk, ret, cnt;