diff options
author | bde <bde@FreeBSD.org> | 2002-05-13 14:34:47 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2002-05-13 14:34:47 +0000 |
commit | d6ab52d0b4af6b377189a67f6651755456516e01 (patch) | |
tree | b19953e0c6d7d56a66408c1af1820cbf0d4acab9 /sys/amd64 | |
parent | d9521251f3b2be0b2995701b667cd2046f93becc (diff) | |
download | FreeBSD-src-d6ab52d0b4af6b377189a67f6651755456516e01.zip FreeBSD-src-d6ab52d0b4af6b377189a67f6651755456516e01.tar.gz |
Fixed a semantic error. va_arg(ap, u_short) is nonsense except on i386's
with 16-bit ints, since u_short is promoted when it is passed to a
varargs function. gcc now warns about this. We always pass small
integers (this is well obuscated), so there are no conversion problems.
Fixed a related style bug (bogus cast).
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/bios.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/amd64/amd64/bios.c b/sys/amd64/amd64/bios.c index bfd1afe..0312adf 100644 --- a/sys/amd64/amd64/bios.c +++ b/sys/amd64/amd64/bios.c @@ -362,8 +362,8 @@ bios16(struct bios_args *args, char *fmt, ...) stack -= 2; break; - case 's': /* 16-bit integer */ - i = va_arg(ap, u_short); + case 's': /* 16-bit integer passed as an int */ + i = va_arg(ap, int); stack -= 2; break; @@ -434,8 +434,8 @@ bios16(struct bios_args *args, char *fmt, ...) stack += 2; break; - case 's': /* 16-bit integer */ - i = va_arg(ap, u_short); + case 's': /* 16-bit integer passed as an int */ + i = va_arg(ap, int); *(u_short *)stack = i; stack += 2; break; @@ -559,7 +559,7 @@ pnpbios_identify(driver_t *driver, device_t parent) bzero(pd, bigdev); pda->next = currdev; /* get current configuration */ - if ((error = bios16(&args, PNP_GET_DEVNODE, &pda->next, &pda->node, (u_int16_t)1))) { + if ((error = bios16(&args, PNP_GET_DEVNODE, &pda->next, &pda->node, 1))) { printf("pnpbios: error %d making BIOS16 call\n", error); break; } |