From patchwork Tue Jul 17 19:55:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 142212 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp4077699ljj; Tue, 17 Jul 2018 13:05:44 -0700 (PDT) X-Google-Smtp-Source: AAOMgpc3m+yoTDAGhzzeihwlNIqp6a+d2PbZaTuyp2U1iCj+2dvvKdz6me7A7Q47aA0PFV1RJDK0 X-Received: by 2002:a0c:9208:: with SMTP id a8-v6mr3395125qva.47.1531857944789; Tue, 17 Jul 2018 13:05:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531857944; cv=none; d=google.com; s=arc-20160816; b=fvmT/PGXjVslLTQX0vZl6Jfh/Ke5pUfEvB7Rjeh/iWcROgScxRZxtBHECGhXPcxuVY mVmH9l+VEmHqMCFPbNmane9ZZZSe1Zola59uHlfFDM4ISb9VXYc30Sv3LmObmgwOC7i6 Q5HSrHw1U+mIooQXS3K3SajbCX7NWy+19ZT8YdiGxxJs+GpKy7prRvBllztAVCpRfV8h Lpz11lqmQabBHKZz+GCVuSiU4IjbTDRHueo0E2KkNAkx/zo+RRMBHMLX4Ttvsxf/XQtk Y5Dn0TjLzpPuJNU22irTF2qcBmqPXTNpR4g5/lJMqXh63o9eJNVXqEng6eonQ2Y3GLNE UfvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:arc-authentication-results; bh=md6KBT6sv4D2C7CTWsFSg25vSfxSxCtAwGwKddLSd4w=; b=q59ycd3koK7zSNuprZT6WmoNysTORbdKp/xR2euc2qLP2ZO26GFmTuJTgKqimJCbKA TaR2FOv11H3I0Vr1Z1OOD4Ef9YZJeWmzqlWNMW44S3SYdPR+9Y9KcKl0spjZ2B/X1WGL CP8kLvN285AIKZuJlOMT9vh794HM4t4XIU/zrVEa0dc2YDZWaCkOxLfPIAhOqjop7dh1 i6hw7uCfQn1sGStlPdpH2GuLp+AodpFtf9SytWwPF3tpGbXh7plF+071K671mDTn+lXz 6/SuEjWBljNWtIBaA7EKL9mCo2Mw0Hv0Gm52H1Av2O5jGiphzmhQGgzqAS7JZGoCZ62H DTig== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=T5FjqH2c; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id m5-v6si1603741qte.73.2018.07.17.13.05.44 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 17 Jul 2018 13:05:44 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=T5FjqH2c; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:32958 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ffWEC-0001IK-0T for patch@linaro.org; Tue, 17 Jul 2018 16:05:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40975) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ffW4z-00039u-At for qemu-devel@nongnu.org; Tue, 17 Jul 2018 15:56:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ffW4w-0004nE-RE for qemu-devel@nongnu.org; Tue, 17 Jul 2018 15:56:13 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:42529) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ffW4w-0004mr-Gh for qemu-devel@nongnu.org; Tue, 17 Jul 2018 15:56:10 -0400 Received: by mail-wr1-x441.google.com with SMTP id e7-v6so2378472wrs.9 for ; Tue, 17 Jul 2018 12:56:10 -0700 (PDT) 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=md6KBT6sv4D2C7CTWsFSg25vSfxSxCtAwGwKddLSd4w=; b=T5FjqH2cZWc/QjmlqmfrWroGLrv42qz+XdUtbqKta2VyUgFinSd83lBK83g4Lx2ra3 6q8CBHcKv/tbhDbS6FjebJE/YCL7uDDkrweyq6YjVBncbcodhe8XizNzBp88smV3KX3W 2Jwf5Ko3wxFHu6CyOGptNWLHXj8YystwvVxyk= 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=md6KBT6sv4D2C7CTWsFSg25vSfxSxCtAwGwKddLSd4w=; b=FgUqiHdAlyZkemcI1ebW/LNe1oy9PHP24XWpcENM87s4y3ttjJaRsgQrwHTrDVHZWy bHPBPLQ7GakKCfcBdP1rQ6gIjmmMkQCfDt8jmD3chAncX5UGFEw4IbOdjEOghvxUFzHI LBt3vXtcfCcmnty+8pgsh1fhzerHV6sOH0ruzjiA7+5DWU9tu0vnMoudKG0fLCgiEMBe vrcgQRsVDR1H+qaPkemdQ8eoRcGmPK239LKqym1c2FWMQGRhJ2YyEVkHjxpYwIeKV6G1 B/YQPtfYAvu7Vx2JZPK/tfsDTxqzfY+TQsLccqC4ffmm2wcw0e3V8eoAi/dvHKP6yegV vesw== X-Gm-Message-State: AOUpUlFDZEKTaPjO1P+vHDGJxZZRjAjOmRKDSOT4HlvUfTjyhr8+S/4K dDqA4/croQ9JqiAoIYxwST77zw== X-Received: by 2002:a5d:4643:: with SMTP id j3-v6mr2275684wrs.52.1531857369168; Tue, 17 Jul 2018 12:56:09 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id t70-v6sm780623wme.7.2018.07.17.12.55.59 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 17 Jul 2018 12:56:02 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 477393E0D8A; Tue, 17 Jul 2018 20:55:55 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Tue, 17 Jul 2018 20:55:53 +0100 Message-Id: <20180717195553.9111-19-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180717195553.9111-1-alex.bennee@linaro.org> References: <20180717195553.9111-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 Subject: [Qemu-devel] [PATCH v3 for 3.0 18/18] 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_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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ée --- tests/tcg/i386/Makefile.target | 5 - tests/tcg/i386/README | 3 - tests/tcg/i386/pi_10.com | Bin 54 -> 0 bytes tests/tcg/i386/runcom.c | 192 --------------------------------- 4 files changed, 200 deletions(-) delete mode 100644 tests/tcg/i386/pi_10.com delete mode 100644 tests/tcg/i386/runcom.c -- 2.17.1 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] |= (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 = (r->esp & ~0xffff) | ((r->esp - 2) & 0xffff); - *(uint16_t *)seg_to_linear(r->ss, r->esp) = val; -} - -void dump_regs(struct vm86_regs *r) -{ - fprintf(stderr, - "EAX=%08lx EBX=%08lx ECX=%08lx EDX=%08lx\n" - "ESI=%08lx EDI=%08lx EBP=%08lx ESP=%08lx\n" - "EIP=%08lx EFL=%08lx\n" - "CS=%04x DS=%04x ES=%04x SS=%04x FS=%04x GS=%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=%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 != 2) - usage(); - filename = argv[1]; - - vm86_mem = mmap((void *)0x00000000, 0x110000, - PROT_WRITE | PROT_READ | PROT_EXEC, - MAP_FIXED | MAP_ANON | MAP_PRIVATE, -1, 0); - if (vm86_mem == MAP_FAILED) { - perror("mmap"); - exit(1); - } -#ifdef SIGTEST - { - struct sigaction act; - - act.sa_handler = alarm_handler; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - sigaction(SIGALRM, &act, NULL); - alarm(1); - } -#endif - - /* load the MSDOS .com executable */ - fd = open(filename, O_RDONLY); - if (fd < 0) { - perror(filename); - exit(1); - } - ret = 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 = &ctx.regs; - r->eip = 0x100; - r->esp = 0xfffe; - seg = (COM_BASE_ADDR - 0x100) >> 4; - r->cs = seg; - r->ss = seg; - r->ds = seg; - r->es = seg; - r->fs = seg; - r->gs = seg; - r->eflags = VIF_MASK; - - /* put return code */ - set_bit((uint8_t *)&ctx.int_revectored, 0x21); - *seg_to_linear(r->cs, 0) = 0xb4; /* mov ah, $0 */ - *seg_to_linear(r->cs, 1) = 0x00; - *seg_to_linear(r->cs, 2) = 0xcd; /* int $0x21 */ - *seg_to_linear(r->cs, 3) = 0x21; - pushw(&ctx.regs, 0x0000); - - /* the value of these registers seem to be assumed by pi_10.com */ - r->esi = 0x100; - r->ecx = 0xff; - r->ebp = 0x0900; - r->edi = 0xfffe; - - for(;;) { - ret = vm86(VM86_ENTER, &ctx); - switch(VM86_TYPE(ret)) { - case VM86_INTx: - { - int int_num, ah; - - int_num = VM86_ARG(ret); - if (int_num != 0x21) - goto unknown_int; - ah = (r->eax >> 8) & 0xff; - switch(ah) { - case 0x00: /* exit */ - exit(0); - case 0x02: /* write char */ - { - uint8_t c = r->edx; - write(1, &c, 1); - } - break; - case 0x09: /* write string */ - { - uint8_t c; - for(;;) { - c = *seg_to_linear(r->ds, r->edx); - if (c == '$') - break; - write(1, &c, 1); - } - r->eax = (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); - } - } -}