Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/ctld/parse.y
Show First 20 Lines • Show All 762 Lines • ▼ Show 20 Lines | | PORTAL_GROUP STR | ||||
free($2); | free($2); | ||||
} | } | ||||
; | ; | ||||
target_port: PORT STR | target_port: PORT STR | ||||
{ | { | ||||
struct pport *pp; | struct pport *pp; | ||||
struct port *tp; | struct port *tp; | ||||
int ret, i_pp, i_vp = 0; | |||||
mav: I would prefer this code to be more port type agnostic. Tomorrow we could possibly add support… | |||||
Not Done Inline ActionsSure, we can add that later, but let's handle one problem at a time. jceel: Sure, we can add that later, but let's handle one problem at a time. | |||||
ret = sscanf($2, "ioctl/%d/%d", &i_pp, &i_vp); | |||||
if (ret > 0) { | |||||
tp = port_new_ioctl(conf, target, i_pp, i_vp); | |||||
if (tp == NULL) { | |||||
log_warnx("can't create new ioctl port for " | |||||
"target \"%s\"", target->t_name); | |||||
free($2); | |||||
return (1); | |||||
} | |||||
} else { | |||||
pp = pport_find(conf, $2); | pp = pport_find(conf, $2); | ||||
if (pp == NULL) { | if (pp == NULL) { | ||||
log_warnx("unknown port \"%s\" for target \"%s\"", | log_warnx("unknown port \"%s\" for target \"%s\"", | ||||
$2, target->t_name); | $2, target->t_name); | ||||
free($2); | free($2); | ||||
return (1); | return (1); | ||||
} | } | ||||
if (!TAILQ_EMPTY(&pp->pp_ports)) { | if (!TAILQ_EMPTY(&pp->pp_ports)) { | ||||
log_warnx("can't link port \"%s\" to target \"%s\", " | log_warnx("can't link port \"%s\" to target \"%s\", " | ||||
"port already linked to some target", | "port already linked to some target", | ||||
$2, target->t_name); | $2, target->t_name); | ||||
free($2); | free($2); | ||||
return (1); | return (1); | ||||
} | } | ||||
tp = port_new_pp(conf, target, pp); | tp = port_new_pp(conf, target, pp); | ||||
if (tp == NULL) { | if (tp == NULL) { | ||||
log_warnx("can't link port \"%s\" to target \"%s\"", | log_warnx("can't link port \"%s\" to target \"%s\"", | ||||
$2, target->t_name); | $2, target->t_name); | ||||
free($2); | free($2); | ||||
return (1); | return (1); | ||||
} | } | ||||
} | |||||
free($2); | free($2); | ||||
} | } | ||||
; | ; | ||||
target_redirect: REDIRECT STR | target_redirect: REDIRECT STR | ||||
{ | { | ||||
int error; | int error; | ||||
▲ Show 20 Lines • Show All 281 Lines • Show Last 20 Lines |
I would prefer this code to be more port type agnostic. Tomorrow we could possibly add support for multiple camsim ports (not sure what for yet, but not impossible).