From nobody Wed Nov 5 01:53:03 2025 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 1531858847293755.3426377934978; Tue, 17 Jul 2018 13:20:47 -0700 (PDT) Received: from localhost ([::1]:32958 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ffWD9-0001IK-J7 for importer@patchew.org; Tue, 17 Jul 2018 16:04:39 -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) 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) 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-Google-Smtp-Source: AAOMgpcK7GT8zkA9LV1v3XW6mcEX0TozFdFt/EpL4f+p9B0g3/lPxAtgNnpK1SUF3wCxyZsx25l8Hg== X-Received: by 2002:a5d:4643:: with SMTP id j3-v6mr2275684wrs.52.1531857369168; Tue, 17 Jul 2018 12:56:09 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=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 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: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=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 --- 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 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