From nobody Mon Feb 9 07:27:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1532430082434985.8785973351378; Tue, 24 Jul 2018 04:01:22 -0700 (PDT) Received: from localhost ([::1]:39495 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhv4D-00018r-7y for importer@patchew.org; Tue, 24 Jul 2018 07:01:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34051) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhv1m-0007PV-AI for qemu-devel@nongnu.org; Tue, 24 Jul 2018 06:58:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fhv1k-0000kW-QE for qemu-devel@nongnu.org; Tue, 24 Jul 2018 06:58:50 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:40107) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fhv1k-0000kK-GV for qemu-devel@nongnu.org; Tue, 24 Jul 2018 06:58:48 -0400 Received: by mail-wm0-x244.google.com with SMTP id y9-v6so1252638wma.5 for ; Tue, 24 Jul 2018 03:58:48 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id q188-v6sm2321523wmd.36.2018.07.24.03.58.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 24 Jul 2018 03:58:46 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 37ABA3E072C; Tue, 24 Jul 2018 11:51:11 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hxKEMlC/fwAWde72FJ/A17vNzuwLpn2MYRkDcIREctA=; b=VzyXmC9o9oeBoacUgf0RnSAK2Z7EaYtdU2VWyB/J4azAHBY76f5LClx9ha8xD3rNfQ drXplB61SD1rwCHeyd6C/0/usL86SCVPZQsOOtDlgMXYIUFYezlaxNRWrc/js83sDlMB 98jiMqU3vN6vDcgNAU+dsKtpGLaMHdwits1Qw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hxKEMlC/fwAWde72FJ/A17vNzuwLpn2MYRkDcIREctA=; b=e64clh+u4SAGAtdN/SBdiQi/A7EWmZ1GC96OqAjLNvU992D6NZgamq7MG5GCHAx7Eu Tlci8wV+XmruHzRIyG2nDYtyMqCCKiRpDDmYz8sQABTLtJf64hXaQA7wVTsPX3tc3ADb J5+0libfG3sLtXuTAvMmaIgMi7B/JS07zj9C/RjxAiZuixsI0eag2laO2hcoa/YdFK/8 qjARGqL+H9+3O6Sff0mWZkPzTtnVEkN9JTiUJMJpYey+NdefNroQPOEPSuZy96pjE40m +JZVYXNTcWsKkrxIPxmaKN8pRsyF6n9uebVcgDwhkS1KpeosIsSEqhZWE+btKnuZNA2u 8CWA== X-Gm-Message-State: AOUpUlEvQdgR9Jrr+AQcYnJ4KCc6dYx79loku4DnUHaLx5ekaKPb4N8p K97b4ayFhNZGWbh7av+rCAvT+g== X-Google-Smtp-Source: AAOMgpfXV5+ojwM6E5rtWeDrHMCl7KLvsmRxtzO7z6DHcnIptiuwd/eUcTy7Tg8D0/+NuuF8646TSA== X-Received: by 2002:a1c:4d09:: with SMTP id o9-v6mr1787619wmh.111.1532429927287; Tue, 24 Jul 2018 03:58:47 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Tue, 24 Jul 2018 11:51:09 +0100 Message-Id: <20180724105109.8392-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180724105109.8392-1-alex.bennee@linaro.org> References: <20180724105109.8392-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PULL 17/17] tests/tcg: remove runcom test X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 The combination of being rather esoteric and needing to support mmap @ 0 means this only ever worked under translation. It has now regressed even further and is no longer useful. Kill it. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Peter Maydell diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index c1997a1624..b4033ba3d1 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -29,11 +29,6 @@ test-i386: test-i386.c test-i386-code16.S test-i386-vm86= .S test-i386.h test-i386 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ \ $( -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -extern int vm86 (unsigned long int subfunction, - struct vm86plus_struct *info); - -#define VIF_MASK 0x00080000 - -//#define SIGTEST - -#define COM_BASE_ADDR 0x10100 - -static void usage(void) -{ - printf("runcom version 0.1 (c) 2003 Fabrice Bellard\n" - "usage: runcom file.com\n" - "VM86 Run simple .com DOS executables (linux vm86 test mode)\n"= ); - exit(1); -} - -static inline void set_bit(uint8_t *a, unsigned int bit) -{ - a[bit / 8] |=3D (1 << (bit % 8)); -} - -static inline uint8_t *seg_to_linear(unsigned int seg, unsigned int reg) -{ - return (uint8_t *)((seg << 4) + (reg & 0xffff)); -} - -static inline void pushw(struct vm86_regs *r, int val) -{ - r->esp =3D (r->esp & ~0xffff) | ((r->esp - 2) & 0xffff); - *(uint16_t *)seg_to_linear(r->ss, r->esp) =3D val; -} - -void dump_regs(struct vm86_regs *r) -{ - fprintf(stderr, - "EAX=3D%08lx EBX=3D%08lx ECX=3D%08lx EDX=3D%08lx\n" - "ESI=3D%08lx EDI=3D%08lx EBP=3D%08lx ESP=3D%08lx\n" - "EIP=3D%08lx EFL=3D%08lx\n" - "CS=3D%04x DS=3D%04x ES=3D%04x SS=3D%04x FS=3D%04x GS=3D%04x\n= ", - r->eax, r->ebx, r->ecx, r->edx, r->esi, r->edi, r->ebp, r->esp, - r->eip, r->eflags, - r->cs, r->ds, r->es, r->ss, r->fs, r->gs); -} - -#ifdef SIGTEST -void alarm_handler(int sig) -{ - fprintf(stderr, "alarm signal=3D%d\n", sig); - alarm(1); -} -#endif - -int main(int argc, char **argv) -{ - uint8_t *vm86_mem; - const char *filename; - int fd, ret, seg; - struct vm86plus_struct ctx; - struct vm86_regs *r; - - if (argc !=3D 2) - usage(); - filename =3D argv[1]; - - vm86_mem =3D mmap((void *)0x00000000, 0x110000, - PROT_WRITE | PROT_READ | PROT_EXEC, - MAP_FIXED | MAP_ANON | MAP_PRIVATE, -1, 0); - if (vm86_mem =3D=3D MAP_FAILED) { - perror("mmap"); - exit(1); - } -#ifdef SIGTEST - { - struct sigaction act; - - act.sa_handler =3D alarm_handler; - sigemptyset(&act.sa_mask); - act.sa_flags =3D 0; - sigaction(SIGALRM, &act, NULL); - alarm(1); - } -#endif - - /* load the MSDOS .com executable */ - fd =3D open(filename, O_RDONLY); - if (fd < 0) { - perror(filename); - exit(1); - } - ret =3D read(fd, vm86_mem + COM_BASE_ADDR, 65536 - 256); - if (ret < 0) { - perror("read"); - exit(1); - } - close(fd); - - memset(&ctx, 0, sizeof(ctx)); - /* init basic registers */ - r =3D &ctx.regs; - r->eip =3D 0x100; - r->esp =3D 0xfffe; - seg =3D (COM_BASE_ADDR - 0x100) >> 4; - r->cs =3D seg; - r->ss =3D seg; - r->ds =3D seg; - r->es =3D seg; - r->fs =3D seg; - r->gs =3D seg; - r->eflags =3D VIF_MASK; - - /* put return code */ - set_bit((uint8_t *)&ctx.int_revectored, 0x21); - *seg_to_linear(r->cs, 0) =3D 0xb4; /* mov ah, $0 */ - *seg_to_linear(r->cs, 1) =3D 0x00; - *seg_to_linear(r->cs, 2) =3D 0xcd; /* int $0x21 */ - *seg_to_linear(r->cs, 3) =3D 0x21; - pushw(&ctx.regs, 0x0000); - - /* the value of these registers seem to be assumed by pi_10.com */ - r->esi =3D 0x100; - r->ecx =3D 0xff; - r->ebp =3D 0x0900; - r->edi =3D 0xfffe; - - for(;;) { - ret =3D vm86(VM86_ENTER, &ctx); - switch(VM86_TYPE(ret)) { - case VM86_INTx: - { - int int_num, ah; - - int_num =3D VM86_ARG(ret); - if (int_num !=3D 0x21) - goto unknown_int; - ah =3D (r->eax >> 8) & 0xff; - switch(ah) { - case 0x00: /* exit */ - exit(0); - case 0x02: /* write char */ - { - uint8_t c =3D r->edx; - write(1, &c, 1); - } - break; - case 0x09: /* write string */ - { - uint8_t c; - for(;;) { - c =3D *seg_to_linear(r->ds, r->edx); - if (c =3D=3D '$') - break; - write(1, &c, 1); - } - r->eax =3D (r->eax & ~0xff) | '$'; - } - break; - default: - unknown_int: - fprintf(stderr, "unsupported int 0x%02x\n", int_num); - dump_regs(&ctx.regs); - // exit(1); - } - } - break; - case VM86_SIGNAL: - /* a signal came, we just ignore that */ - break; - case VM86_STI: - break; - default: - fprintf(stderr, "unhandled vm86 return code (0x%x)\n", ret); - dump_regs(&ctx.regs); - exit(1); - } - } -} --=20 2.17.1