Changeset View
Changeset View
Standalone View
Standalone View
head/usr.bin/iscsictl/parse.y
Show First 20 Lines • Show All 127 Lines • ▼ Show 20 Lines | target_entry: | ||||
| | | | ||||
offload | offload | ||||
| | | | ||||
protocol | protocol | ||||
| | | | ||||
ignored | ignored | ||||
| | | | ||||
dscp | dscp | ||||
| | |||||
pcp | |||||
; | ; | ||||
target_name: TARGET_NAME EQUALS STR | target_name: TARGET_NAME EQUALS STR | ||||
{ | { | ||||
if (target->t_name != NULL) | if (target->t_name != NULL) | ||||
xo_errx(1, "duplicated TargetName at line %d", lineno); | xo_errx(1, "duplicated TargetName at line %d", lineno); | ||||
target->t_name = $3; | target->t_name = $3; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 157 Lines • ▼ Show 20 Lines | ignored: IGNORED EQUALS STR | ||||
xo_warnx("obsolete statement ignored at line %d", lineno); | xo_warnx("obsolete statement ignored at line %d", lineno); | ||||
} | } | ||||
; | ; | ||||
dscp: DSCP EQUALS STR | dscp: DSCP EQUALS STR | ||||
{ | { | ||||
uint64_t tmp; | uint64_t tmp; | ||||
if (target->t_dscp != -1) | |||||
xo_errx(1, "duplicated dscp at line %d", lineno); | |||||
if (strcmp($3, "0x") == 0) { | if (strcmp($3, "0x") == 0) { | ||||
tmp = strtol($3 + 2, NULL, 16); | tmp = strtol($3 + 2, NULL, 16); | ||||
} else if (expand_number($3, &tmp) != 0) { | } else if (expand_number($3, &tmp) != 0) { | ||||
yyerror("invalid numeric value"); | yyerror("invalid numeric value"); | ||||
free($3); | free($3); | ||||
return(1); | return(1); | ||||
} | } | ||||
if (tmp >= 0x40) { | if (tmp >= 0x40) { | ||||
Show All 20 Lines | dscp: DSCP EQUALS STR | ||||
| DSCP EQUALS AF22 { target->t_dscp = IPTOS_DSCP_AF22 >> 2 ; } | | DSCP EQUALS AF22 { target->t_dscp = IPTOS_DSCP_AF22 >> 2 ; } | ||||
| DSCP EQUALS AF23 { target->t_dscp = IPTOS_DSCP_AF23 >> 2 ; } | | DSCP EQUALS AF23 { target->t_dscp = IPTOS_DSCP_AF23 >> 2 ; } | ||||
| DSCP EQUALS AF31 { target->t_dscp = IPTOS_DSCP_AF31 >> 2 ; } | | DSCP EQUALS AF31 { target->t_dscp = IPTOS_DSCP_AF31 >> 2 ; } | ||||
| DSCP EQUALS AF32 { target->t_dscp = IPTOS_DSCP_AF32 >> 2 ; } | | DSCP EQUALS AF32 { target->t_dscp = IPTOS_DSCP_AF32 >> 2 ; } | ||||
| DSCP EQUALS AF33 { target->t_dscp = IPTOS_DSCP_AF33 >> 2 ; } | | DSCP EQUALS AF33 { target->t_dscp = IPTOS_DSCP_AF33 >> 2 ; } | ||||
| DSCP EQUALS AF41 { target->t_dscp = IPTOS_DSCP_AF41 >> 2 ; } | | DSCP EQUALS AF41 { target->t_dscp = IPTOS_DSCP_AF41 >> 2 ; } | ||||
| DSCP EQUALS AF42 { target->t_dscp = IPTOS_DSCP_AF42 >> 2 ; } | | DSCP EQUALS AF42 { target->t_dscp = IPTOS_DSCP_AF42 >> 2 ; } | ||||
| DSCP EQUALS AF43 { target->t_dscp = IPTOS_DSCP_AF43 >> 2 ; } | | DSCP EQUALS AF43 { target->t_dscp = IPTOS_DSCP_AF43 >> 2 ; } | ||||
; | |||||
pcp: PCP EQUALS STR | |||||
{ | |||||
uint64_t tmp; | |||||
if (target->t_pcp != -1) | |||||
xo_errx(1, "duplicated pcp at line %d", lineno); | |||||
if (expand_number($3, &tmp) != 0) { | |||||
yyerror("invalid numeric value"); | |||||
free($3); | |||||
return(1); | |||||
} | |||||
if (!((tmp >=0) && (tmp <= 7))) { | |||||
yyerror("invalid pcp value"); | |||||
return(1); | |||||
} | |||||
target->t_pcp = tmp; | |||||
} | |||||
; | ; | ||||
%% | %% | ||||
void | void | ||||
yyerror(const char *str) | yyerror(const char *str) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |