tunables: Specify a default value for tunables

Enhance dl-tunables.list to allow specifying a default value for a
tunable that it would be initialized to.

	* scripts/gen-tunables.awk: Recognize 'default' keyword in
	dl-tunables.list.
	* README.tunables: Document it.
This commit is contained in:
Siddhesh Poyarekar 2017-05-17 13:11:00 +05:30
parent c79a72aa5c
commit d13103074a
3 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2017-05-17 Siddhesh Poyarekar <siddhesh@sourceware.org>
* scripts/gen-tunables.awk: Recognize 'default' keyword in
dl-tunables.list.
* README.tunables: Document it.
2017-05-15 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/posix/preadv.c: Use sysdeps/posix/preadv_common.c.

View File

@ -56,6 +56,8 @@ The list of allowed attributes are:
- maxval: Optional maximum acceptable value. For a string type
this is the maximum length of the value.
- default: Specify an optional default value for the tunable.
- env_alias: An alias environment variable
- security_level: Specify security level of the tunable. Valid values:

View File

@ -113,6 +113,14 @@ $1 == "}" {
exit 1
}
}
else if (attr == "default") {
if (types[top_ns][ns][tunable] == "STRING") {
default_val[top_ns][ns][tunable] = sprintf(".strval = \"%s\"", val);
}
else {
default_val[top_ns][ns][tunable] = sprintf(".numval = %s", val)
}
}
}
END {
@ -146,9 +154,9 @@ END {
for (n in types[t]) {
for (m in types[t][n]) {
printf (" {TUNABLE_NAME_S(%s, %s, %s)", t, n, m)
printf (", {TUNABLE_TYPE_%s, %s, %s}, {.numval = 0}, NULL, TUNABLE_SECLEVEL_%s, %s},\n",
printf (", {TUNABLE_TYPE_%s, %s, %s}, {%s}, NULL, TUNABLE_SECLEVEL_%s, %s},\n",
types[t][n][m], minvals[t][n][m], maxvals[t][n][m],
security_level[t][n][m], env_alias[t][n][m]);
default_val[t][n][m], security_level[t][n][m], env_alias[t][n][m]);
}
}
}