{"id":2220215,"url":"http://patchwork.ozlabs.org/api/patches/2220215/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260406165120.166928-2-wenzhaoliao@ruc.edu.cn/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260406165120.166928-2-wenzhaoliao@ruc.edu.cn>","list_archive_url":null,"date":"2026-04-06T16:51:15","name":"[RFC,v3,1/6] uapi: add goldfish_address_space userspace ABI header","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"0ff495f16d9c549d5b294c311f383fbb5d6bcb65","submitter":{"id":93071,"url":"http://patchwork.ozlabs.org/api/people/93071/?format=json","name":"Wenzhao Liao","email":"wenzhaoliao@ruc.edu.cn"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260406165120.166928-2-wenzhaoliao@ruc.edu.cn/mbox/","series":[{"id":498880,"url":"http://patchwork.ozlabs.org/api/series/498880/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=498880","date":"2026-04-06T16:51:15","name":"Rust goldfish_address_space driver (ioctl-only subset)","version":3,"mbox":"http://patchwork.ozlabs.org/series/498880/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2220215/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2220215/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-51967-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=ruc.edu.cn header.i=@ruc.edu.cn header.a=rsa-sha256\n header.s=default header.b=mr0jnYGJ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-51967-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=ruc.edu.cn header.i=@ruc.edu.cn\n header.b=\"mr0jnYGJ\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=103.209.128.214","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=ruc.edu.cn","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=ruc.edu.cn"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqFkQ3j28z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 02:52:46 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 7CF463036EC0\n\tfor <incoming@patchwork.ozlabs.org>; Mon,  6 Apr 2026 16:51:44 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id C07AA38AC93;\n\tMon,  6 Apr 2026 16:51:43 +0000 (UTC)","from mail-m128214.netease.com (mail-m128214.netease.com\n [103.209.128.214])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 9ABA035F5E9;\n\tMon,  6 Apr 2026 16:51:37 +0000 (UTC)","from lwz.tail698a0e.ts.net\n (gy-adaptive-ssl-proxy-1-entmail-virt204.gy.ntes [36.112.3.244])\n\tby smtp.qiye.163.com (Hmail) with ESMTP id 39aaefbdb;\n\tTue, 7 Apr 2026 00:51:25 +0800 (GMT+08:00)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775494303; cv=none;\n b=e81+kLR9+Tkxby+5D0LgP4dfNdtUA2rDG/0W7SVEiGD6xVAtQlUlNxpASYVhX9HvIsd8h7e1IGKH67asIqgH8Ed6YPA4z1FUUMo7jm9MxDWG9J8Ve/HjRaQXmnUD9VR0eR4l4q5qryBrEzm/GAIoa5q3fB29dCiQCHjGV7a06s0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775494303; c=relaxed/simple;\n\tbh=JGV9wifkkNiF1MU+26HGbW/+ymbUBkjqNWmmDG9ejug=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version;\n b=bW/3SXJtPHfhCsVNaiUrsoMTPHSaDUGVXBv6CTjHb8YpvoiJYN/1d2zCREFlza3cWqnXd1Tto4+s0JjpoGcBthDATUnEK4L1jLoWKuLqph3dLYHeRgtmFTBov6xXHJUVzQvHxUI39fh3z4aKuIs0/a5IDn2ohLi62+GQI4KfDEk=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=ruc.edu.cn;\n spf=pass smtp.mailfrom=ruc.edu.cn;\n dkim=pass (1024-bit key) header.d=ruc.edu.cn header.i=@ruc.edu.cn\n header.b=mr0jnYGJ; arc=none smtp.client-ip=103.209.128.214","From":"Wenzhao Liao <wenzhaoliao@ruc.edu.cn>","To":"rust-for-linux@vger.kernel.org,\n\tlinux-pci@vger.kernel.org","Cc":"ojeda@kernel.org,\n\tdakr@kernel.org,\n\tbhelgaas@google.com,\n\tkwilczynski@kernel.org,\n\tarnd@arndb.de,\n\tgregkh@linuxfoundation.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-api@vger.kernel.org","Subject":"[RFC PATCH v3 1/6] uapi: add goldfish_address_space userspace ABI\n header","Date":"Mon,  6 Apr 2026 12:51:15 -0400","Message-Id":"<20260406165120.166928-2-wenzhaoliao@ruc.edu.cn>","X-Mailer":"git-send-email 2.34.1","In-Reply-To":"<20260406165120.166928-1-wenzhaoliao@ruc.edu.cn>","References":"<cover.1775456181.git.wenzhaoliao@ruc.edu.cn>\n <20260406165120.166928-1-wenzhaoliao@ruc.edu.cn>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-HM-Tid":"0a9d63b4ca8003a2kunm562d3b0d647e63","X-HM-MType":"10","X-HM-Spam-Status":"e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly\n\ttZV1koWUFITzdXWS1ZQUlXWQ8JGhUIEh9ZQVkZSkgYVhoeS0pCQkJOS0geTFYeHw5VEwETFhoSFy\n\tQUDg9ZV1kYEgtZQVlITVVKSklVSFVJT09ZV1kWGg8SFR0UWUFZT0tIVUpLSEpOTE5VSktLVUpCS0\n\ttZBg++","DKIM-Signature":"a=rsa-sha256;\n\tb=mr0jnYGJNn7jdQdmGx9snQukeD3Qle86rk2rjHNwRxzlq3z1QnTC5xPCsUs6ScNU2TzPr+pLNsIN/bPqVMJ0aW6R6lYp4m4VrAAZ/g1m48og8sJJnNcg94vYyd1Z9om1QI14x9/viFF0QyRbedvCJWQVQO79LFtSyIGorAbn7L0=;\n c=relaxed/relaxed; s=default; d=ruc.edu.cn; v=1;\n\tbh=2PkcM2WRjNh0KqsyA+Q2Us0R9IhzckDTKUqyovFSI74=;\n\th=date:mime-version:subject:message-id:from;"},"content":"The external goldfish address-space driver exposes its userspace\ncontract through a dedicated header. Land the ioctl definitions in\ninclude/uapi/linux so the Rust driver can depend on an in-tree UAPI\nsurface instead of carrying an external private header.\n\nThis RFC intentionally narrows the first upstream step to the\nopen/release/ioctl ABI subset. Userspace mmap and PING_WITH_DATA stay\nout of this series until they have their own review and validation\nstory.\n\nSigned-off-by: Wenzhao Liao <wenzhaoliao@ruc.edu.cn>\n---\n MAINTAINERS                                 |  8 +++\n include/uapi/linux/goldfish_address_space.h | 54 +++++++++++++++++++++\n 2 files changed, 62 insertions(+)\n create mode 100644 include/uapi/linux/goldfish_address_space.h","diff":"diff --git a/MAINTAINERS b/MAINTAINERS\nindex a62f6af55c3a..800b2fe0e648 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -1882,6 +1882,14 @@ S:\tSupported\n F:\tDocumentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.yaml\n F:\tdrivers/irqchip/irq-goldfish-pic.c\n \n+ANDROID GOLDFISH ADDRESS SPACE DRIVER\n+M:\tWenzhao Liao <wenzhaoliao@ruc.edu.cn>\n+L:\tlinux-kernel@vger.kernel.org\n+L:\tlinux-pci@vger.kernel.org\n+L:\trust-for-linux@vger.kernel.org\n+S:\tMaintained\n+F:\tinclude/uapi/linux/goldfish_address_space.h\n+\n ANDROID GOLDFISH RTC DRIVER\n M:\tJiaxun Yang <jiaxun.yang@flygoat.com>\n S:\tSupported\ndiff --git a/include/uapi/linux/goldfish_address_space.h b/include/uapi/linux/goldfish_address_space.h\nnew file mode 100644\nindex 000000000000..b782d82f53df\n--- /dev/null\n+++ b/include/uapi/linux/goldfish_address_space.h\n@@ -0,0 +1,54 @@\n+/* SPDX-License-Identifier: GPL-2.0 */\n+#ifndef _UAPI_LINUX_GOLDFISH_ADDRESS_SPACE_H\n+#define _UAPI_LINUX_GOLDFISH_ADDRESS_SPACE_H\n+\n+#include <linux/ioctl.h>\n+#include <linux/types.h>\n+\n+#define GOLDFISH_ADDRESS_SPACE_DEVICE_NAME \"goldfish_address_space\"\n+\n+struct goldfish_address_space_allocate_block {\n+\t__u64 size;\n+\t__u64 offset;\n+\t__u64 phys_addr;\n+};\n+\n+struct goldfish_address_space_ping {\n+\t__u64 offset;\n+\t__u64 size;\n+\t__u64 metadata;\n+\t__u32 version;\n+\t__u32 wait_fd;\n+\t__u32 wait_flags;\n+\t__u32 direction;\n+};\n+\n+struct goldfish_address_space_claim_shared {\n+\t__u64 offset;\n+\t__u64 size;\n+};\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_MAGIC 'G'\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_OP(OP, T) \\\n+\t_IOWR(GOLDFISH_ADDRESS_SPACE_IOCTL_MAGIC, OP, T)\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_ALLOCATE_BLOCK \\\n+\tGOLDFISH_ADDRESS_SPACE_IOCTL_OP(10, \\\n+\t\tstruct goldfish_address_space_allocate_block)\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_DEALLOCATE_BLOCK \\\n+\tGOLDFISH_ADDRESS_SPACE_IOCTL_OP(11, __u64)\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_PING \\\n+\tGOLDFISH_ADDRESS_SPACE_IOCTL_OP(12, \\\n+\t\tstruct goldfish_address_space_ping)\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_CLAIM_SHARED \\\n+\tGOLDFISH_ADDRESS_SPACE_IOCTL_OP(13, \\\n+\t\tstruct goldfish_address_space_claim_shared)\n+\n+#define GOLDFISH_ADDRESS_SPACE_IOCTL_UNCLAIM_SHARED \\\n+\tGOLDFISH_ADDRESS_SPACE_IOCTL_OP(14, __u64)\n+\n+#endif /* _UAPI_LINUX_GOLDFISH_ADDRESS_SPACE_H */\n","prefixes":["RFC","v3","1/6"]}