return 0;
if (0 != parse_chan_pair(line->init_str, &line->chan_list,
- line->init_pri, co->index, opts))
+ co->index, opts))
return -1;
if (0 != open_chan(&line->chan_list))
return -1;
#endif
};
-static struct chan *parse_chan(char *str, int pri, int device,
- struct chan_opts *opts)
+static struct chan *parse_chan(char *str, int device, struct chan_opts *opts)
{
struct chan_type *entry;
struct chan_ops *ops;
.output = 0,
.opened = 0,
.fd = -1,
- .pri = pri,
.ops = ops,
.data = data });
return chan;
}
-int parse_chan_pair(char *str, struct list_head *chans, int pri, int device,
+int parse_chan_pair(char *str, struct list_head *chans, int device,
struct chan_opts *opts)
{
struct chan *new, *chan;
if(!list_empty(chans)){
chan = list_entry(chans->next, struct chan, list);
- if(chan->pri >= pri)
- return 0;
free_chan(chans);
INIT_LIST_HEAD(chans);
}
in = str;
*out = '\0';
out++;
- new = parse_chan(in, pri, device, opts);
+ new = parse_chan(in, device, opts);
if(new == NULL)
return -1;
new->input = 1;
list_add(&new->list, chans);
- new = parse_chan(out, pri, device, opts);
+ new = parse_chan(out, device, opts);
if(new == NULL)
return -1;
new->output = 1;
}
else {
- new = parse_chan(str, pri, device, opts);
+ new = parse_chan(str, device, opts);
if(new == NULL)
return -1;
}
if (list_empty(&line->chan_list)) {
err = parse_chan_pair(line->init_str, &line->chan_list,
- line->init_pri, tty->index, opts);
+ tty->index, opts);
if(err) goto out;
err = open_chan(&line->chan_list);
if(err) goto out;
unsigned int output:1;
unsigned int opened:1;
int fd;
- enum chan_init_pri pri;
struct chan_ops *ops;
void *data;
};
extern void chan_interrupt(struct list_head *chans, struct work_struct *task,
struct tty_struct *tty, int irq);
-extern int parse_chan_pair(char *str, struct list_head *chans, int pri,
- int device, struct chan_opts *opts);
+extern int parse_chan_pair(char *str, struct list_head *chans, int device,
+ struct chan_opts *opts);
extern int open_chan(struct list_head *chans);
extern int write_chan(struct list_head *chans, const char *buf, int len,
int write_irq);