From nobody Mon Feb 9 16:33:44 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1641913141; cv=none; d=zohomail.com; s=zohoarc; b=Z4s0KLAJctb35Te3jCKdZM10u0slLy5l6j4TSOAqXbEpHyG7zZDAL3D5XXyKSg64oLG4k7UexboBrrDsINZEr9hx0CqFOApBhPt3CCCYPwbs/GTZL4VQK7gfXWIf3+JzrIfcohUr4pcMHtrwF/uBrSoEAgGYQPryl7fkeS8bnAY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641913141; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B1qIgvUq07hNrHG3qYVz9ZnwoNPkdqDFYkWrq9AIUhQ=; b=kErkP1ZSzkLe5ZvhFsrm5Xx3KWXykm+k/CtjEo6m7BhWjkeEcgsjvwl00m4+jDCA/ZU2caX++BMldqHy5hNGrfUQOT5KcVhtZ2NXkhs9PDocJTeR2r/jU0Lvzz8CgfqFXUHRZo1o5CzxeACws/H1HlX7wV+QgbJUcsAE/LpHSv8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1641913141879121.61120877564554; Tue, 11 Jan 2022 06:59:01 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.255781.438497 (Exim 4.92) (envelope-from ) id 1n7Ibd-0004un-Fo; Tue, 11 Jan 2022 14:58:37 +0000 Received: by outflank-mailman (output) from mailman id 255781.438497; Tue, 11 Jan 2022 14:58:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n7Ibc-0004qm-KJ; Tue, 11 Jan 2022 14:58:36 +0000 Received: by outflank-mailman (input) for mailman id 255781; Tue, 11 Jan 2022 14:58:32 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n7IbY-0002Oa-DR for xen-devel@lists.xenproject.org; Tue, 11 Jan 2022 14:58:32 +0000 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id eaa6c309-72ee-11ec-9ce5-af14b9085ebd; Tue, 11 Jan 2022 15:58:22 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 8B1AB212C5; Tue, 11 Jan 2022 14:58:20 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 63AD313DDD; Tue, 11 Jan 2022 14:58:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mNItFwyb3WH9eQAAMHmgww (envelope-from ); Tue, 11 Jan 2022 14:58:20 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: eaa6c309-72ee-11ec-9ce5-af14b9085ebd DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1641913100; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=B1qIgvUq07hNrHG3qYVz9ZnwoNPkdqDFYkWrq9AIUhQ=; b=Hm+0JCHE/qFCO0PSAk6d7BkNGhNjVFHbFcBonMcRxLYHDPJf9AuEnTDIGW4d+8Glr7g2hn FH4Z2mIWkoOvxwp8LcedDRrPQeaej4OqKw+A/bVxTpdFbfenwQqcizECq/SLYRMGHXyC19 lFAXftWBn3Ac8Cic1GjyT3P3igyPKVk= From: Juergen Gross To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org Cc: samuel.thibault@ens-lyon.org, wl@xen.org, Juergen Gross Subject: [PATCH v2 03/18] mini-os: make offset a common struct file member for all types Date: Tue, 11 Jan 2022 15:58:02 +0100 Message-Id: <20220111145817.22170-4-jgross@suse.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20220111145817.22170-1-jgross@suse.com> References: <20220111145817.22170-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1641913143942100001 Content-Type: text/plain; charset="utf-8" Currently 4 file types have an offset member in their private struct file part. Make offset a common struct member shared by all file types. Signed-off-by: Juergen Gross Reviewed-by: Samuel Thibault --- blkfront.c | 5 ++--- include/lib.h | 5 +---- lib/sys.c | 14 +++++--------- tpm_tis.c | 11 +++++------ tpmfront.c | 11 +++++------ 5 files changed, 18 insertions(+), 28 deletions(-) diff --git a/blkfront.c b/blkfront.c index 7c8eb74..8137106 100644 --- a/blkfront.c +++ b/blkfront.c @@ -563,14 +563,13 @@ int blkfront_open(struct blkfront_dev *dev) dev->fd =3D alloc_fd(FTYPE_BLK); printk("blk_open(%s) -> %d\n", dev->nodename, dev->fd); files[dev->fd].blk.dev =3D dev; - files[dev->fd].blk.offset =3D 0; return dev->fd; } =20 int blkfront_posix_rwop(int fd, uint8_t* buf, size_t count, int write) { struct blkfront_dev* dev =3D files[fd].blk.dev; - off_t offset =3D files[fd].blk.offset; + off_t offset =3D files[fd].offset; struct blkfront_aiocb aiocb; unsigned long long disksize =3D dev->info.sectors * dev->info.sector_si= ze; unsigned int blocksize =3D dev->info.sector_size; @@ -712,7 +711,7 @@ int blkfront_posix_rwop(int fd, uint8_t* buf, size_t co= unt, int write) } =20 free(copybuf); - files[fd].blk.offset +=3D rc; + files[fd].offset +=3D rc; return rc; =20 } diff --git a/include/lib.h b/include/lib.h index df2de9e..4d9b14b 100644 --- a/include/lib.h +++ b/include/lib.h @@ -185,6 +185,7 @@ struct evtchn_port_info { struct file { enum fd_type type; bool read; /* maybe available for read */ + off_t offset; union { struct { /* lwIP fd */ @@ -193,7 +194,6 @@ struct file { struct { /* FS import fd */ int fd; - off_t offset; } file; struct { struct evtchn_port_list ports; @@ -204,7 +204,6 @@ struct file { } tap; struct { struct blkfront_dev *dev; - off_t offset; } blk; struct { struct kbdfront_dev *dev; @@ -219,14 +218,12 @@ struct file { struct { struct tpmfront_dev *dev; int respgot; - off_t offset; } tpmfront; #endif #ifdef CONFIG_TPM_TIS struct { struct tpm_chip *dev; int respgot; - off_t offset; } tpm_tis; #endif #ifdef CONFIG_XENBUS diff --git a/lib/sys.c b/lib/sys.c index e8d5eb2..e1cea70 100644 --- a/lib/sys.c +++ b/lib/sys.c @@ -107,6 +107,7 @@ int alloc_fd(enum fd_type type) for (i=3D0; ifd >=3D 0) { files[tpm->fd].read =3D false; files[tpm->fd].tpm_tis.respgot =3D 0; - files[tpm->fd].tpm_tis.offset =3D 0; + files[tpm->fd].offset =3D 0; } #endif return len; @@ -1290,7 +1290,6 @@ int tpm_tis_open(struct tpm_chip* tpm) tpm->fd =3D alloc_fd(FTYPE_TPM_TIS); printk("tpm_tis_open() -> %d\n", tpm->fd); files[tpm->fd].tpm_tis.dev =3D tpm; - files[tpm->fd].tpm_tis.offset =3D 0; files[tpm->fd].tpm_tis.respgot =3D 0; return tpm->fd; } @@ -1340,13 +1339,13 @@ int tpm_tis_posix_read(int fd, uint8_t* buf, size_t= count) =20 =20 /* Handle EOF case */ - if(files[fd].tpm_tis.offset >=3D tpm->data_len) { + if(files[fd].offset >=3D tpm->data_len) { rc =3D 0; } else { - rc =3D min(tpm->data_len - files[fd].tpm_tis.offset, count); - memcpy(buf, tpm->data_buffer + files[fd].tpm_tis.offset, rc); + rc =3D min(tpm->data_len - files[fd].offset, count); + memcpy(buf, tpm->data_buffer + files[fd].offset, rc); } - files[fd].tpm_tis.offset +=3D rc; + files[fd].offset +=3D rc; /* Reset the data pending flag */ return rc; } diff --git a/tpmfront.c b/tpmfront.c index d825b49..8b2a910 100644 --- a/tpmfront.c +++ b/tpmfront.c @@ -440,7 +440,7 @@ int tpmfront_send(struct tpmfront_dev* dev, const uint8= _t* msg, size_t length) if(dev->fd >=3D 0) { files[dev->fd].read =3D false; files[dev->fd].tpmfront.respgot =3D 0; - files[dev->fd].tpmfront.offset =3D 0; + files[dev->fd].offset =3D 0; } #endif wmb(); @@ -539,7 +539,6 @@ int tpmfront_open(struct tpmfront_dev* dev) dev->fd =3D alloc_fd(FTYPE_TPMFRONT); printk("tpmfront_open(%s) -> %d\n", dev->nodename, dev->fd); files[dev->fd].tpmfront.dev =3D dev; - files[dev->fd].tpmfront.offset =3D 0; files[dev->fd].tpmfront.respgot =3D 0; return dev->fd; } @@ -589,14 +588,14 @@ int tpmfront_posix_read(int fd, uint8_t* buf, size_t = count) } =20 /* handle EOF case */ - if(files[dev->fd].tpmfront.offset >=3D dev->resplen) { + if(files[dev->fd].offset >=3D dev->resplen) { return 0; } =20 /* Compute the number of bytes and do the copy operation */ - if((rc =3D min(count, dev->resplen - files[dev->fd].tpmfront.offset)) != =3D 0) { - memcpy(buf, dev->respbuf + files[dev->fd].tpmfront.offset, rc); - files[dev->fd].tpmfront.offset +=3D rc; + if((rc =3D min(count, dev->resplen - files[dev->fd].offset)) !=3D 0) { + memcpy(buf, dev->respbuf + files[dev->fd].offset, rc); + files[dev->fd].offset +=3D rc; } =20 return rc; --=20 2.26.2