summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2019-03-01 23:09:52 +0200
committerToomas Soome <tsoome@me.com>2019-03-12 17:30:03 +0200
commitcb0ea096588eb33ca26ea8853cda93b3372af2c7 (patch)
tree4c8df2023adb2d54c03eebb3055c4d40531b811b
parent6e4a33937f4aeff3a5b207e49607138445d66674 (diff)
downloadillumos-joyent-cb0ea096588eb33ca26ea8853cda93b3372af2c7.tar.gz
10482 loader: console.c cstyle cleanup
Reviewed by: Gergő Doma <domag02@gmail.com> Reviewed by: Andy Fiddaman <andy@omniosce.org> Approved by: Robert Mustacchi <rm@joyent.com>
-rw-r--r--usr/src/boot/sys/boot/common/console.c357
1 files changed, 183 insertions, 174 deletions
diff --git a/usr/src/boot/sys/boot/common/console.c b/usr/src/boot/sys/boot/common/console.c
index 34488a886f..a3bc90cb3b 100644
--- a/usr/src/boot/sys/boot/common/console.c
+++ b/usr/src/boot/sys/boot/common/console.c
@@ -48,67 +48,68 @@ static int twiddle_set(struct env_var *ev, int flags, const void *value);
void
cons_probe(void)
{
- int cons;
- int active;
- char *prefconsole;
-
- /* We want a callback to install the new value when this var changes. */
- env_setenv("twiddle_divisor", EV_VOLATILE, "1", twiddle_set, env_nounset);
-
- /* Do all console probes */
- for (cons = 0; consoles[cons] != NULL; cons++) {
- consoles[cons]->c_flags = 0;
- consoles[cons]->c_probe(consoles[cons]);
- }
- /* Now find the first working one */
- active = -1;
- for (cons = 0; consoles[cons] != NULL && active == -1; cons++) {
- consoles[cons]->c_flags = 0;
- consoles[cons]->c_probe(consoles[cons]);
- if (consoles[cons]->c_flags == (C_PRESENTIN | C_PRESENTOUT))
- active = cons;
- }
- /* Force a console even if all probes failed */
- if (active == -1)
- active = 0;
+ int cons;
+ int active;
+ char *prefconsole;
- /* Check to see if a console preference has already been registered */
- prefconsole = getenv("console");
- if (prefconsole != NULL)
- prefconsole = strdup(prefconsole);
- if (prefconsole != NULL) {
- unsetenv("console"); /* we want to replace this */
- cons_change(prefconsole);
- } else {
- consoles[active]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT;
- consoles[active]->c_init(consoles[active], 0);
- prefconsole = strdup(consoles[active]->c_name);
- }
-
- printf("Consoles: ");
- for (cons = 0; consoles[cons] != NULL; cons++)
- if (consoles[cons]->c_flags & (C_ACTIVEIN | C_ACTIVEOUT))
- printf("%s ", consoles[cons]->c_desc);
- printf("\n");
-
- if (prefconsole != NULL) {
- env_setenv("console", EV_VOLATILE, prefconsole, cons_set,
+ /* We want a callback to install the new value when this var changes. */
+ env_setenv("twiddle_divisor", EV_VOLATILE, "1", twiddle_set,
env_nounset);
- free(prefconsole);
- }
+
+ /* Do all console probes */
+ for (cons = 0; consoles[cons] != NULL; cons++) {
+ consoles[cons]->c_flags = 0;
+ consoles[cons]->c_probe(consoles[cons]);
+ }
+ /* Now find the first working one */
+ active = -1;
+ for (cons = 0; consoles[cons] != NULL && active == -1; cons++) {
+ consoles[cons]->c_flags = 0;
+ consoles[cons]->c_probe(consoles[cons]);
+ if (consoles[cons]->c_flags == (C_PRESENTIN | C_PRESENTOUT))
+ active = cons;
+ }
+ /* Force a console even if all probes failed */
+ if (active == -1)
+ active = 0;
+
+ /* Check to see if a console preference has already been registered */
+ prefconsole = getenv("console");
+ if (prefconsole != NULL)
+ prefconsole = strdup(prefconsole);
+ if (prefconsole != NULL) {
+ unsetenv("console"); /* we want to replace this */
+ cons_change(prefconsole);
+ } else {
+ consoles[active]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT;
+ consoles[active]->c_init(consoles[active], 0);
+ prefconsole = strdup(consoles[active]->c_name);
+ }
+
+ printf("Consoles: ");
+ for (cons = 0; consoles[cons] != NULL; cons++)
+ if (consoles[cons]->c_flags & (C_ACTIVEIN | C_ACTIVEOUT))
+ printf("%s ", consoles[cons]->c_desc);
+ printf("\n");
+
+ if (prefconsole != NULL) {
+ env_setenv("console", EV_VOLATILE, prefconsole, cons_set,
+ env_nounset);
+ free(prefconsole);
+ }
}
void
cons_mode(int raw)
{
- int cons;
-
- for (cons = 0; consoles[cons] != NULL; cons++) {
- if (raw == 0)
- consoles[cons]->c_flags &= ~C_MODERAW;
- else
- consoles[cons]->c_flags |= C_MODERAW;
- }
+ int cons;
+
+ for (cons = 0; consoles[cons] != NULL; cons++) {
+ if (raw == 0)
+ consoles[cons]->c_flags &= ~C_MODERAW;
+ else
+ consoles[cons]->c_flags |= C_MODERAW;
+ }
}
int
@@ -123,11 +124,11 @@ getchar(void)
* this code expects all ->c_in() implementations to effectively do an
* ischar() check first, returning -1 if there's not a char ready.
*/
- for(;;) {
+ for (;;) {
for (cons = 0; consoles[cons] != NULL; cons++) {
if ((consoles[cons]->c_flags & flags) == flags &&
((rv = consoles[cons]->c_in(consoles[cons])) != -1))
- return(rv);
+ return (rv);
}
delay(30 * 1000); /* delay 30ms */
}
@@ -136,29 +137,30 @@ getchar(void)
int
ischar(void)
{
- int cons;
-
- for (cons = 0; consoles[cons] != NULL; cons++)
- if ((consoles[cons]->c_flags & (C_PRESENTIN | C_ACTIVEIN)) ==
- (C_PRESENTIN | C_ACTIVEIN) &&
- (consoles[cons]->c_ready(consoles[cons]) != 0))
- return(1);
- return(0);
+ int cons;
+
+ for (cons = 0; consoles[cons] != NULL; cons++)
+ if ((consoles[cons]->c_flags & (C_PRESENTIN | C_ACTIVEIN)) ==
+ (C_PRESENTIN | C_ACTIVEIN) &&
+ (consoles[cons]->c_ready(consoles[cons]) != 0))
+ return (1);
+ return (0);
}
void
putchar(int c)
{
- int cons;
-
- /* Expand newlines if not in raw mode */
- for (cons = 0; consoles[cons] != NULL; cons++)
- if ((consoles[cons]->c_flags & (C_PRESENTOUT | C_ACTIVEOUT)) ==
- (C_PRESENTOUT | C_ACTIVEOUT)) {
- if (c == '\n' && (consoles[cons]->c_flags & C_MODERAW) == 0)
- consoles[cons]->c_out(consoles[cons], '\r');
- consoles[cons]->c_out(consoles[cons], c);
- }
+ int cons;
+
+ /* Expand newlines if not in raw mode */
+ for (cons = 0; consoles[cons] != NULL; cons++)
+ if ((consoles[cons]->c_flags & (C_PRESENTOUT | C_ACTIVEOUT)) ==
+ (C_PRESENTOUT | C_ACTIVEOUT)) {
+ if (c == '\n' &&
+ (consoles[cons]->c_flags & C_MODERAW) == 0)
+ consoles[cons]->c_out(consoles[cons], '\r');
+ consoles[cons]->c_out(consoles[cons], c);
+ }
}
/*
@@ -167,12 +169,12 @@ putchar(int c)
static int
cons_find(const char *name)
{
- int cons;
+ int cons;
- for (cons = 0; consoles[cons] != NULL; cons++)
- if (!strcmp(consoles[cons]->c_name, name))
- return (cons);
- return (-1);
+ for (cons = 0; consoles[cons] != NULL; cons++)
+ if (strcmp(consoles[cons]->c_name, name) == 0)
+ return (cons);
+ return (-1);
}
/*
@@ -181,22 +183,23 @@ cons_find(const char *name)
static int
cons_set(struct env_var *ev, int flags, const void *value)
{
- int ret;
-
- if ((value == NULL) || (cons_check(value) == 0)) {
- /*
- * Return CMD_OK instead of CMD_ERROR to prevent forth syntax error,
- * which would prevent it processing any further loader.conf entries.
- */
- return (CMD_OK);
- }
+ int ret;
+
+ if ((value == NULL) || (cons_check(value) == 0)) {
+ /*
+ * Return CMD_OK instead of CMD_ERROR to prevent forth syntax
+ * error, which would prevent it processing any further
+ * loader.conf entries.
+ */
+ return (CMD_OK);
+ }
- ret = cons_change(value);
- if (ret != CMD_OK)
- return (ret);
+ ret = cons_change(value);
+ if (ret != CMD_OK)
+ return (ret);
- env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL);
- return (CMD_OK);
+ env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL);
+ return (CMD_OK);
}
/*
@@ -205,36 +208,36 @@ cons_set(struct env_var *ev, int flags, const void *value)
static int
cons_check(const char *string)
{
- int cons, found, failed;
- char *curpos, *dup, *next;
-
- dup = next = strdup(string);
- found = failed = 0;
- while (next != NULL) {
- curpos = strsep(&next, " ,");
- if (*curpos != '\0') {
- cons = cons_find(curpos);
- if (cons == -1) {
- printf("console %s is invalid!\n", curpos);
- failed++;
- } else {
- found++;
- }
+ int cons, found, failed;
+ char *curpos, *dup, *next;
+
+ dup = next = strdup(string);
+ found = failed = 0;
+ while (next != NULL) {
+ curpos = strsep(&next, " ,");
+ if (*curpos != '\0') {
+ cons = cons_find(curpos);
+ if (cons == -1) {
+ printf("console %s is invalid!\n", curpos);
+ failed++;
+ } else {
+ found++;
+ }
+ }
}
- }
- free(dup);
+ free(dup);
- if (found == 0)
- printf("no valid consoles!\n");
+ if (found == 0)
+ printf("no valid consoles!\n");
- if (found == 0 || failed != 0) {
- printf("Available consoles:\n");
- for (cons = 0; consoles[cons] != NULL; cons++)
- printf(" %s\n", consoles[cons]->c_name);
- }
+ if (found == 0 || failed != 0) {
+ printf("Available consoles:\n");
+ for (cons = 0; consoles[cons] != NULL; cons++)
+ printf(" %s\n", consoles[cons]->c_name);
+ }
- return (found);
+ return (found);
}
/*
@@ -243,57 +246,63 @@ cons_check(const char *string)
static int
cons_change(const char *string)
{
- int cons, active;
- char *curpos, *dup, *next;
-
- /* Disable all consoles */
- for (cons = 0; consoles[cons] != NULL; cons++) {
- consoles[cons]->c_flags &= ~(C_ACTIVEIN | C_ACTIVEOUT);
- }
-
- /* Enable selected consoles */
- dup = next = strdup(string);
- active = 0;
- while (next != NULL) {
- curpos = strsep(&next, " ,");
- if (*curpos == '\0')
- continue;
- cons = cons_find(curpos);
- if (cons >= 0) {
- consoles[cons]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT;
- consoles[cons]->c_init(consoles[cons], 0);
- if ((consoles[cons]->c_flags & (C_PRESENTIN | C_PRESENTOUT)) ==
- (C_PRESENTIN | C_PRESENTOUT)) {
- active++;
- continue;
- }
-
- if (active != 0) {
- /* If no consoles have initialised we wouldn't see this. */
- printf("console %s failed to initialize\n",
- consoles[cons]->c_name);
- }
+ int cons, active;
+ char *curpos, *dup, *next;
+
+ /* Disable all consoles */
+ for (cons = 0; consoles[cons] != NULL; cons++) {
+ consoles[cons]->c_flags &= ~(C_ACTIVEIN | C_ACTIVEOUT);
}
- }
- free(dup);
+ /* Enable selected consoles */
+ dup = next = strdup(string);
+ active = 0;
+ while (next != NULL) {
+ curpos = strsep(&next, " ,");
+ if (*curpos == '\0')
+ continue;
+ cons = cons_find(curpos);
+ if (cons >= 0) {
+ consoles[cons]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT;
+ consoles[cons]->c_init(consoles[cons], 0);
+ if ((consoles[cons]->c_flags &
+ (C_PRESENTIN | C_PRESENTOUT)) ==
+ (C_PRESENTIN | C_PRESENTOUT)) {
+ active++;
+ continue;
+ }
+
+ if (active != 0) {
+ /*
+ * If no consoles have initialised we wouldn't
+ * see this.
+ */
+ printf("console %s failed to initialize\n",
+ consoles[cons]->c_name);
+ }
+ }
+ }
- if (active == 0) {
- /* All requested consoles failed to initialise, try to recover. */
- for (cons = 0; consoles[cons] != NULL; cons++) {
- consoles[cons]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT;
- consoles[cons]->c_init(consoles[cons], 0);
- if ((consoles[cons]->c_flags &
- (C_PRESENTIN | C_PRESENTOUT)) ==
- (C_PRESENTIN | C_PRESENTOUT))
- active++;
+ free(dup);
+
+ if (active == 0) {
+ /*
+ * All requested consoles failed to initialise, try to recover.
+ */
+ for (cons = 0; consoles[cons] != NULL; cons++) {
+ consoles[cons]->c_flags |= C_ACTIVEIN | C_ACTIVEOUT;
+ consoles[cons]->c_init(consoles[cons], 0);
+ if ((consoles[cons]->c_flags &
+ (C_PRESENTIN | C_PRESENTOUT)) ==
+ (C_PRESENTIN | C_PRESENTOUT))
+ active++;
}
if (active == 0)
- return (CMD_ERROR); /* Recovery failed. */
- }
+ return (CMD_ERROR); /* Recovery failed. */
+ }
- return (CMD_OK);
+ return (CMD_OK);
}
/*
@@ -307,16 +316,16 @@ cons_change(const char *string)
static int
twiddle_set(struct env_var *ev, int flags, const void *value)
{
- u_long tdiv;
- char * eptr;
-
- tdiv = strtoul(value, &eptr, 0);
- if (*(const char *)value == 0 || *eptr != 0) {
- printf("invalid twiddle_divisor '%s'\n", (const char *)value);
- return (CMD_ERROR);
- }
- twiddle_divisor((u_int)tdiv);
- env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL);
-
- return(CMD_OK);
+ ulong_t tdiv;
+ char *eptr;
+
+ tdiv = strtoul(value, &eptr, 0);
+ if (*(const char *)value == 0 || *eptr != 0) {
+ printf("invalid twiddle_divisor '%s'\n", (const char *)value);
+ return (CMD_ERROR);
+ }
+ twiddle_divisor((uint_t)tdiv);
+ env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL);
+
+ return (CMD_OK);
}