diff options
| author | Mike Smith <msmith@FreeBSD.org> | 1999-08-20 21:08:41 +0000 |
|---|---|---|
| committer | Mike Smith <msmith@FreeBSD.org> | 1999-08-20 21:08:41 +0000 |
| commit | f996ef639507f381eda2074825b17c6d87ae5752 (patch) | |
| tree | fc3a936cbb0fc08f60cbcf29bc19c99da5943f08 | |
| parent | 89f6acf96aaf928b693b36c19807f24b7c76c323 (diff) | |
Notes
| -rw-r--r-- | sys/amd64/amd64/bios.c | 13 | ||||
| -rw-r--r-- | sys/i386/i386/bios.c | 13 |
2 files changed, 6 insertions, 20 deletions
diff --git a/sys/amd64/amd64/bios.c b/sys/amd64/amd64/bios.c index bc1e535f8e0d..980c0b52a4d2 100644 --- a/sys/amd64/amd64/bios.c +++ b/sys/amd64/amd64/bios.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: bios.c,v 1.16 1999/08/17 07:10:29 msmith Exp $ + * $Id: bios.c,v 1.17 1999/08/18 02:19:52 msmith Exp $ */ /* @@ -287,13 +287,6 @@ set_bios_selectors(struct bios_segments *seg, int flags) } } -/* - * for pointers, we don't know how much space is supposed to be allocated, - * so we assume a minimum size of 256 bytes. If more than this is needed, - * then this can be revisited, such as adding a length specifier. - */ -#define ASSUMED_ARGSIZE 256 - extern int vm86pa; /* @@ -329,7 +322,7 @@ bios16(struct bios_args *args, char *fmt, ...) case 'p': /* 32-bit pointer */ i = va_arg(ap, u_int); arg_start = min(arg_start, i); - arg_end = max(arg_end, i + ASSUMED_ARGSIZE); + arg_end = max(arg_end, i); flags |= BIOSARGS_FLAG; stack -= 4; break; @@ -361,7 +354,7 @@ bios16(struct bios_args *args, char *fmt, ...) if (arg_end - arg_start > ctob(16)) return (EACCES); args->seg.args.base = arg_start; - args->seg.args.limit = arg_end - arg_start; + args->seg.args.limit = 0xffff; } args->seg.code32.base = (u_int)&bios16_call & PG_FRAME; diff --git a/sys/i386/i386/bios.c b/sys/i386/i386/bios.c index bc1e535f8e0d..980c0b52a4d2 100644 --- a/sys/i386/i386/bios.c +++ b/sys/i386/i386/bios.c @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: bios.c,v 1.16 1999/08/17 07:10:29 msmith Exp $ + * $Id: bios.c,v 1.17 1999/08/18 02:19:52 msmith Exp $ */ /* @@ -287,13 +287,6 @@ set_bios_selectors(struct bios_segments *seg, int flags) } } -/* - * for pointers, we don't know how much space is supposed to be allocated, - * so we assume a minimum size of 256 bytes. If more than this is needed, - * then this can be revisited, such as adding a length specifier. - */ -#define ASSUMED_ARGSIZE 256 - extern int vm86pa; /* @@ -329,7 +322,7 @@ bios16(struct bios_args *args, char *fmt, ...) case 'p': /* 32-bit pointer */ i = va_arg(ap, u_int); arg_start = min(arg_start, i); - arg_end = max(arg_end, i + ASSUMED_ARGSIZE); + arg_end = max(arg_end, i); flags |= BIOSARGS_FLAG; stack -= 4; break; @@ -361,7 +354,7 @@ bios16(struct bios_args *args, char *fmt, ...) if (arg_end - arg_start > ctob(16)) return (EACCES); args->seg.args.base = arg_start; - args->seg.args.limit = arg_end - arg_start; + args->seg.args.limit = 0xffff; } args->seg.code32.base = (u_int)&bios16_call & PG_FRAME; |
