Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/954153/?format=api
{ "id": 954153, "url": "http://patchwork.ozlabs.org/api/patches/954153/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1533574847-19294-73-git-send-email-aleksandar.markovic@rt-rk.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1533574847-19294-73-git-send-email-aleksandar.markovic@rt-rk.com>", "list_archive_url": null, "date": "2018-08-06T17:00:39", "name": "[v7,72/80] linux-user: Add signal.c for nanoMIPS", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "0509e6af46fc5c54d46671b43c3080c39eb78285", "submitter": { "id": 68635, "url": "http://patchwork.ozlabs.org/api/people/68635/?format=api", "name": "Aleksandar Markovic", "email": "aleksandar.markovic@rt-rk.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1533574847-19294-73-git-send-email-aleksandar.markovic@rt-rk.com/mbox/", "series": [ { "id": 59520, "url": "http://patchwork.ozlabs.org/api/series/59520/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=59520", "date": "2018-08-06T16:59:27", "name": "Add nanoMIPS support to QEMU", "version": 7, "mbox": "http://patchwork.ozlabs.org/series/59520/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/954153/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/954153/checks/", "tags": {}, "related": [], "headers": { "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;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=rt-rk.com" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 41km3X1qPsz9s3x\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 7 Aug 2018 04:13:10 +1000 (AEST)", "from localhost ([::1]:35579 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1fmk0B-00070j-LX\n\tfor incoming@patchwork.ozlabs.org; Mon, 06 Aug 2018 14:13:07 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:42167)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <aleksandar.markovic@rt-rk.com>) id 1fmjHH-0008MC-Ml\n\tfor qemu-devel@nongnu.org; Mon, 06 Aug 2018 13:26:46 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <aleksandar.markovic@rt-rk.com>) id 1fmjHF-0002pw-FZ\n\tfor qemu-devel@nongnu.org; Mon, 06 Aug 2018 13:26:43 -0400", "from mx2.rt-rk.com ([89.216.37.149]:47444 helo=mail.rt-rk.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <aleksandar.markovic@rt-rk.com>)\n\tid 1fmjHE-0002mf-Vg\n\tfor qemu-devel@nongnu.org; Mon, 06 Aug 2018 13:26:41 -0400", "from localhost (localhost [127.0.0.1])\n\tby mail.rt-rk.com (Postfix) with ESMTP id 7A9711A2176;\n\tMon, 6 Aug 2018 19:26:38 +0200 (CEST)", "from rtrkw774-lin.domain.local (rtrkw774-lin.domain.local\n\t[10.10.13.43])\n\tby mail.rt-rk.com (Postfix) with ESMTPSA id 52A3E1A218D;\n\tMon, 6 Aug 2018 19:26:38 +0200 (CEST)" ], "X-Virus-Scanned": "amavisd-new at rt-rk.com", "From": "Aleksandar Markovic <aleksandar.markovic@rt-rk.com>", "To": "qemu-devel@nongnu.org", "Date": "Mon, 6 Aug 2018 19:00:39 +0200", "Message-Id": "<1533574847-19294-73-git-send-email-aleksandar.markovic@rt-rk.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1533574847-19294-1-git-send-email-aleksandar.markovic@rt-rk.com>", "References": "<1533574847-19294-1-git-send-email-aleksandar.markovic@rt-rk.com>", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [fuzzy]", "X-Received-From": "89.216.37.149", "Subject": "[Qemu-devel] [PATCH v7 72/80] linux-user: Add signal.c for nanoMIPS", "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>,\n\t<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>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "peter.maydell@linaro.org, thuth@redhat.com, pburton@wavecomp.com,\n\tsmarkovic@wavecomp.com, riku.voipio@iki.fi,\n\trichard.henderson@linaro.org, laurent@vivier.eu,\n\tarmbru@redhat.com, arikalo@wavecomp.com,\n\tphilippe.mathieu.daude@gmail.com, amarkovic@wavecomp.com,\n\tpjovanovic@wavecomp.com, aurelien@aurel32.net", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "From: Dimitrije Nikolic <dnikolic@wavecomp.com>\n\nAdd signal.c as a redirection to regular mips' signal.c, but at the\nsame time amend regular mips' signal.c with bits and pieces specific\nfor nanoMIPS. This was done this way to avoid duplication of large\npieces of code.\n\nSigned-off-by: Aleksandar Rikalo <arikalo@wavecomp.com>\nSigned-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>\nSigned-off-by: Stefan Markovic <smarkovic@wavecomp.com>\n---\n linux-user/mips/signal.c | 25 ++++++++++++++++++++-----\n linux-user/nanomips/signal.c | 1 +\n 2 files changed, 21 insertions(+), 5 deletions(-)\n create mode 100644 linux-user/nanomips/signal.c", "diff": "diff --git a/linux-user/mips/signal.c b/linux-user/mips/signal.c\nindex 6aa303e..ab66429 100644\n--- a/linux-user/mips/signal.c\n+++ b/linux-user/mips/signal.c\n@@ -21,7 +21,15 @@\n #include \"signal-common.h\"\n #include \"linux-user/trace.h\"\n \n-# if defined(TARGET_ABI_MIPSO32)\n+#if defined(TARGET_ABI_MIPSP32)\n+struct target_sigcontext {\n+ uint64_t sc_regs[32];\n+ uint64_t sc_pc;\n+ uint32_t sc_used_math;\n+ uint32_t sc_reserved;\n+};\n+#define TARGET_ALMASK (~15)\n+#elif defined(TARGET_ABI_MIPSO32)\n struct target_sigcontext {\n uint32_t sc_regmask; /* Unused */\n uint32_t sc_status;\n@@ -43,6 +51,7 @@ struct target_sigcontext {\n target_ulong sc_hi3;\n target_ulong sc_lo3;\n };\n+#define TARGET_ALMASK (~7)\n # else /* N32 || N64 */\n struct target_sigcontext {\n uint64_t sc_regs[32];\n@@ -61,6 +70,7 @@ struct target_sigcontext {\n uint32_t sc_dsp;\n uint32_t sc_reserved;\n };\n+#define TARGET_ALMASK (~15)\n # endif /* O32 */\n \n struct sigframe {\n@@ -100,6 +110,7 @@ static inline int install_sigtramp(unsigned int *tramp, unsigned int syscall)\n \n __put_user(0x24020000 + syscall, tramp + 0);\n __put_user(0x0000000c , tramp + 1);\n+\n return err;\n }\n \n@@ -116,6 +127,7 @@ static inline void setup_sigcontext(CPUMIPSState *regs,\n __put_user(regs->active_tc.gpr[i], &sc->sc_regs[i]);\n }\n \n+#if !defined(TARGET_ABI_MIPSP32)\n __put_user(regs->active_tc.HI[0], &sc->sc_mdhi);\n __put_user(regs->active_tc.LO[0], &sc->sc_mdlo);\n \n@@ -137,6 +149,7 @@ static inline void setup_sigcontext(CPUMIPSState *regs,\n for (i = 0; i < 32; ++i) {\n __put_user(regs->active_fpu.fpr[i].d, &sc->sc_fpregs[i]);\n }\n+#endif\n }\n \n static inline void\n@@ -146,13 +159,14 @@ restore_sigcontext(CPUMIPSState *regs, struct target_sigcontext *sc)\n \n __get_user(regs->CP0_EPC, &sc->sc_pc);\n \n- __get_user(regs->active_tc.HI[0], &sc->sc_mdhi);\n- __get_user(regs->active_tc.LO[0], &sc->sc_mdlo);\n-\n for (i = 1; i < 32; ++i) {\n __get_user(regs->active_tc.gpr[i], &sc->sc_regs[i]);\n }\n \n+#if !defined(TARGET_ABI_MIPSP32)\n+ __get_user(regs->active_tc.HI[0], &sc->sc_mdhi);\n+ __get_user(regs->active_tc.LO[0], &sc->sc_mdlo);\n+\n __get_user(regs->active_tc.HI[1], &sc->sc_hi1);\n __get_user(regs->active_tc.HI[2], &sc->sc_hi2);\n __get_user(regs->active_tc.HI[3], &sc->sc_hi3);\n@@ -168,6 +182,7 @@ restore_sigcontext(CPUMIPSState *regs, struct target_sigcontext *sc)\n for (i = 0; i < 32; ++i) {\n __get_user(regs->active_fpu.fpr[i].d, &sc->sc_fpregs[i]);\n }\n+#endif\n }\n \n /*\n@@ -185,7 +200,7 @@ get_sigframe(struct target_sigaction *ka, CPUMIPSState *regs, size_t frame_size)\n */\n sp = target_sigsp(get_sp_from_cpustate(regs) - 32, ka);\n \n- return (sp - frame_size) & ~7;\n+ return (sp - frame_size) & TARGET_ALMASK;\n }\n \n static void mips_set_hflags_isa_mode_from_pc(CPUMIPSState *env)\ndiff --git a/linux-user/nanomips/signal.c b/linux-user/nanomips/signal.c\nnew file mode 100644\nindex 0000000..86efc21\n--- /dev/null\n+++ b/linux-user/nanomips/signal.c\n@@ -0,0 +1 @@\n+#include \"../mips/signal.c\"\n", "prefixes": [ "v7", "72/80" ] }