From nobody Mon Aug 08 14:04:16 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M1dH46NsKz4Y4dx; Mon, 8 Aug 2022 14:04:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4M1dH460YXz3vG1; Mon, 8 Aug 2022 14:04:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659967456; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2kYyqQmEiD22UwDGdAvAA03fo+14S0cZ+hZatiNV2RI=; b=yov8wZZuqnqxubq7Wz58twIiAYo3uRX5Kz52boUGl6pLuu+Zu/KLWfeDV6v6JLps+Qrr+t gzUDh/4u0BJX0FXaxz6820P68/hGir2X35zjIvRVHfRtEKY9otGTQN/NGTUdaBN6YQPWcd OeNRmXMtdaz8sqjEn2MIuYgDmOGab9kkfHovlnIyoQafK+dmnarzm1P0rIWfkwZBq02prN pZN6e0B2cJ1WfnFNPFnPfq7LHCDqy+rkDQlEa6hcd7IIvHDN+368H6+W2zmHv31kfcEejn 425OAugujD3354vr6P7mdF9CrJE3lN5KjQrsm7OaA1v5lixPeLEqb8q6Wg9bBQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4M1dH44qwyztTD; Mon, 8 Aug 2022 14:04:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 278E4G7U088785; Mon, 8 Aug 2022 14:04:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 278E4Gsh088784; Mon, 8 Aug 2022 14:04:16 GMT (envelope-from git) Date: Mon, 8 Aug 2022 14:04:16 GMT Message-Id: <202208081404.278E4Gsh088784@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Emmanuel Vadot Subject: git: a0c171328f66 - main - linuxkpi: Add pagevec implementation List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a0c171328f6689fb88e3881b8b5ee61d813b8c6d Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659967456; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2kYyqQmEiD22UwDGdAvAA03fo+14S0cZ+hZatiNV2RI=; b=ISde1WCweFIRF4Xs/lTWT7or9kAXLrQnDZrY5y0akTw1hd86oGQYV9uezfylyZMLDd2CE6 z/kGoYzfLJ06GsU5wa7yJJRq8iR4qwoNORsCPUN01DO3h4kWwKZKe0NDzjEKRN7SPHopB7 mjgpcsL3cqA1nFdmbUnEA3IapKJ5U4IDErQJWfuiuSFNKsgPU72+mv+YhDUytkolPFq1li Hc86XbqujB37ZsymoT1Kso5Cm6Zv/rtIc947EeWF6ZbwH6xQoTuNweJjDVAAla851eTDKp QQuIx0b3Uj5TjwuGjm0NOVn2tTquVZaCtDeIT6lWJ4ih2FTQjfAgMBWsOYU9gQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1659967456; a=rsa-sha256; cv=none; b=ZXCqzfUOuFYe4e6rchAsrdRLBsjS4tAfV9ywGwnWWOYAuji4spznSlBLyyFcm9I9rhg5jQ M9D0RzGwEsZbFwaqs9nvZKVuWeCn2OV69lUVQqjwZfqlz6nrMUlpb8KE0KOoOGr99dWe0Y ciBfH8mSDQkklUEaM5qtxR4x5OjtWqGmVn39DPXsiCKfAgd+jo8RViBS8E1xkD8XhW/tjy hkeJ5DlEiCZLf+Fx3dzx2ipq+6m4UP2MFEu+l9GXOXOo1C5XDzb5A/F7I2l3A/om1IWPjy +5iHa2Dl0L972qN53TrOJD+jngvO0EGS3j4JwvvWv7PRHRfh05dQM4dPZB1X1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=a0c171328f6689fb88e3881b8b5ee61d813b8c6d commit a0c171328f6689fb88e3881b8b5ee61d813b8c6d Author: Emmanuel Vadot AuthorDate: 2022-07-26 08:15:12 +0000 Commit: Emmanuel Vadot CommitDate: 2022-08-08 13:22:35 +0000 linuxkpi: Add pagevec implementation Needed by drm-kmod. Reviewed by: hselasky Obtained from: OpenBSD Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D35941 --- sys/compat/linuxkpi/common/include/linux/pagevec.h | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pagevec.h b/sys/compat/linuxkpi/common/include/linux/pagevec.h new file mode 100644 index 000000000000..4224124c4fe4 --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/pagevec.h @@ -0,0 +1,69 @@ +/* Public domain. */ + +#ifndef _LINUXKPI_LINUX_PAGEVEC_H_ +#define _LINUXKPI_LINUX_PAGEVEC_H_ + +#include +#include +#include + +#include + +#define PAGEVEC_SIZE 15 + +struct pagevec { + uint8_t nr; + struct vm_page *pages[PAGEVEC_SIZE]; +}; + +static inline unsigned int +pagevec_space(struct pagevec *pvec) +{ + return PAGEVEC_SIZE - pvec->nr; +} + +static inline void +pagevec_init(struct pagevec *pvec) +{ + pvec->nr = 0; +} + +static inline void +pagevec_reinit(struct pagevec *pvec) +{ + pvec->nr = 0; +} + +static inline unsigned int +pagevec_count(struct pagevec *pvec) +{ + return pvec->nr; +} + +static inline unsigned int +pagevec_add(struct pagevec *pvec, struct vm_page *page) +{ + pvec->pages[pvec->nr++] = page; + return PAGEVEC_SIZE - pvec->nr; +} + +static inline void +__pagevec_release(struct pagevec *pvec) +{ + release_pages(pvec->pages, pagevec_count(pvec)); + pagevec_reinit(pvec); +} + +static inline void +pagevec_release(struct pagevec *pvec) +{ + if (pagevec_count(pvec)) + __pagevec_release(pvec); +} + +static inline void +check_move_unevictable_pages(struct pagevec *pvec) +{ +} + +#endif /* _LINUXKPI_LINUX_PAGEVEC_H_ */