Message ID | 1549390526-24246-28-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show
Return-Path: <qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=<UNKNOWN>) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="GfL2+O/p"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43vD1r2L2qz9s7h for <incoming@patchwork.ozlabs.org>; Wed, 6 Feb 2019 05:41:36 +1100 (AEDT) Received: from localhost ([127.0.0.1]:37718 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>) id 1gr5f4-00063e-6U for incoming@patchwork.ozlabs.org; Tue, 05 Feb 2019 13:41:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <paolo.bonzini@gmail.com>) id 1gr5GL-0002O5-S8 for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:16:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <paolo.bonzini@gmail.com>) id 1gr5GI-0003p5-JG for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:16:01 -0500 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:37118) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from <paolo.bonzini@gmail.com>) id 1gr5GI-0003m4-5f for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:15:58 -0500 Received: by mail-wr1-x42d.google.com with SMTP id s12so4725308wrt.4 for <qemu-devel@nongnu.org>; Tue, 05 Feb 2019 10:15:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=UXyS4oytJv/8m9wGAlfBZOKtbRXet6YcGon6c7w/awI=; b=GfL2+O/pjqYijJJJz9jECBPcA7I4kVwakK3pxoAO8ZxjGNZSII3dnkHyBNCS1GCdj1 Q80h8ztjVG6cUNvIqEjScCeasJHCP4x6ZhdKvVqUPHnfWdeGLaD1pcPx5ypF6DBMWn+P QfBpDCRRXWL74zO6oVztJ1D5Bqzs4xkMkL2vEPw9MbOVtu2pR5kCFFcWlkBOaJhSAMml +jVNXZ9BowyTwe2TEj/i5KqG44ow0yaO0s23QZcWeRyLi1x5FG0LWWDDhHAkJPjsLbzu qmAK+FEwHGggK0nXwp4C4NaawxEqx/negm6IcW6vmnNM1SYyJkdAwKAtB0ZPZ+w4QsWe L3og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=UXyS4oytJv/8m9wGAlfBZOKtbRXet6YcGon6c7w/awI=; b=F5fBr3jRF8AOlXn+d/ykC6vTP+WbGQ83j5sfRUKQdN3rSSlQobJGd8tptzgYZstFzy 4KE2JGiISkApVFcpsmHWz7BMTZ0e3kDcLpTVFIxbqTR8da6wGw6SHq2MMnQKdOjTTupO sp+ZQEMIeipx22YUfeNHbyV4mMNdNB70T5klPiD+1tL/qPgAWuuc/Abz4WUk/9CHwv2j ga+yoAbog2F7JBtJZLk6y7Pq2N3CHfMTIAS+lbRkEfocx3ak/coG68SPbJ7kh58+eV8O ndXnpD+PMDXpqfj6HZPhPIn02V3+9r8CWjvVvDToiOoYT0a8jK1N8YoJ6gq3eWoRhjOi qoaQ== X-Gm-Message-State: AHQUAubaI5pow/8GYYkM8v7NyJNKfrpUIEov/eQpX1o6rgyW3dU5sNyV 0PKPsAM9Zmpeh55qYmEafRMxp5dz X-Google-Smtp-Source: AHgI3IaBUI7+Q7x9lTZMUbvFy6dnE/c83Oro2/c/JqAVF/l7FyqLWvZJMXVgj+TZYkgIFSPtVgzSEQ== X-Received: by 2002:adf:fbc8:: with SMTP id d8mr4627985wrs.318.1549390556482; Tue, 05 Feb 2019 10:15:56 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id p5sm8931665wmh.16.2019.02.05.10.15.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Feb 2019 10:15:55 -0800 (PST) From: Paolo Bonzini <pbonzini@redhat.com> To: qemu-devel@nongnu.org Date: Tue, 5 Feb 2019 19:14:37 +0100 Message-Id: <1549390526-24246-28-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1549390526-24246-1-git-send-email-pbonzini@redhat.com> References: <1549390526-24246-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42d Subject: [Qemu-devel] [PULL 27/76] contrib/elf2dmp: use GLib in ELF processing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <http://lists.nongnu.org/archive/html/qemu-devel/> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Cc: Viktor Prutyanov <viktor.prutyanov@phystech.edu> Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" <qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org> |
Series |
[PULL,01/76] vhost-user-test: use g_cond_broadcast
|
expand
|
diff --git a/contrib/elf2dmp/qemu_elf.c b/contrib/elf2dmp/qemu_elf.c index e9c0d25..0db7816 100644 --- a/contrib/elf2dmp/qemu_elf.c +++ b/contrib/elf2dmp/qemu_elf.c @@ -120,25 +120,17 @@ static void exit_states(QEMU_Elf *qe) int QEMU_Elf_init(QEMU_Elf *qe, const char *filename) { + GError *gerr = NULL; int err = 0; - struct stat st; - qe->fd = open(filename, O_RDONLY, 0); - if (qe->fd == -1) { - eprintf("Failed to open ELF dump file \'%s\'\n", filename); + qe->gmf = g_mapped_file_new(filename, TRUE, &gerr); + if (gerr) { + eprintf("Failed to map ELF dump file \'%s\'\n", filename); return 1; } - fstat(qe->fd, &st); - qe->size = st.st_size; - - qe->map = mmap(NULL, qe->size, PROT_READ | PROT_WRITE, - MAP_PRIVATE, qe->fd, 0); - if (qe->map == MAP_FAILED) { - eprintf("Failed to map ELF file\n"); - err = 1; - goto out_fd; - } + qe->map = g_mapped_file_get_contents(qe->gmf); + qe->size = g_mapped_file_get_length(qe->gmf); if (init_states(qe)) { eprintf("Failed to extract QEMU CPU states\n"); @@ -149,9 +141,7 @@ int QEMU_Elf_init(QEMU_Elf *qe, const char *filename) return 0; out_unmap: - munmap(qe->map, qe->size); -out_fd: - close(qe->fd); + g_mapped_file_unref(qe->gmf); return err; } @@ -159,6 +149,5 @@ out_fd: void QEMU_Elf_exit(QEMU_Elf *qe) { exit_states(qe); - munmap(qe->map, qe->size); - close(qe->fd); + g_mapped_file_unref(qe->gmf); } diff --git a/contrib/elf2dmp/qemu_elf.h b/contrib/elf2dmp/qemu_elf.h index da70aff..2a79638 100644 --- a/contrib/elf2dmp/qemu_elf.h +++ b/contrib/elf2dmp/qemu_elf.h @@ -33,7 +33,7 @@ typedef struct QEMUCPUState { int is_system(QEMUCPUState *s); typedef struct QEMU_Elf { - int fd; + GMappedFile *gmf; size_t size; void *map; QEMUCPUState **state;