tree 9e9cc25a91a7b1095566f6375deb3fc449cdc522
parent 7e0d006e3c7f163cf1e3621d77a7366a5a7e828a
author Pablo Neira Ayuso <pablo@gnumonks.org> 1313772218 +0200
committer Pablo Neira Ayuso <pablo@gnumonks.org> 1313772218 +0200

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);
