From patchwork Thu Sep 28 18:04:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Volodymyr Babchuk X-Patchwork-Id: 9976649 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0862560375 for ; Thu, 28 Sep 2017 18:18:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EA8A029700 for ; Thu, 28 Sep 2017 18:18:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E8FDF2970F; Thu, 28 Sep 2017 18:18:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EEDD229700 for ; Thu, 28 Sep 2017 18:18:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QiHp7XmRLwtPSt1R1Y9s5BPbPMqXLKAzqZpVSexxcBE=; b=jXwVepDn3wpzmX NySjIV46OokPxhMzN78v8cgpU6DBdFcWOmOqZ7z0gvTYkt2aohtWisfvEsoW+2JqXLofo0YiRWOYa FojgHIoVrGPDpUKZAtkcTXHp6bGy5HJes9bvOSjjErkX04X2BGpmDbHFwJNLDvm7bFU0V6BesgZw1 4s1PsZLVwKoRQneMdnS4KfMh80g/2QQs2FydLgChUanPA9Ao0xL2W9yu9nrtAeUT4w6O65JBVVU23 33z9mz5XmgyK36Ari3/SO4IBywZcr+nXiPUTDBVhnAyKa5HhlWad2S0xuZlpranlwtSZBBte1j2+f bcidLrlk5KZAs1APp/7w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dxdO9-0006pj-TL; Thu, 28 Sep 2017 18:18:21 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dxdO7-0006jC-2h for linux-arm-kernel@bombadil.infradead.org; Thu, 28 Sep 2017 18:18:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=QPR87IbnUngJR+f4ooYMgdXOdSuPWqjy17KMp3D0lr4=; b=J/1ke6yO7wYmbxN6smhH9xgMz gKiU/e8Vr1obHN2z9CBRDLWCjYYoS9RsnAUJmwPQMNp3uMwWFqOfWXAZh2+SI5cF4HV4pUpJsU6u0 SB/nh96Y3m5/D7yhg1542IJygYqnZzTifApYIwWIbvvvNXmZALH713wI2RcZXmOjN0JhojlMqZdHB m7FIV7MQK/Uu6EHQWN0hu6StzP5lv+tfrngdalfBc5ZxP+4Hx6NOJpwAPukRUGrVtpUwOcJfWnpgR pEjrZtl2e3GkAwNRuRiCwa/aHNnZtPqH4c+PoqWOseTAHdcp7xxXR5HgtFLRFE42NIdAuSBkVNFNT YBX4eh13g==; Received: from mail-eopbgr30068.outbound.protection.outlook.com ([40.107.3.68] helo=EUR03-AM5-obe.outbound.protection.outlook.com) by casper.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dxdCJ-0001JP-Hk for linux-arm-kernel@lists.infradead.org; Thu, 28 Sep 2017 18:06:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=EPAM.onmicrosoft.com; s=selector1-epam-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QPR87IbnUngJR+f4ooYMgdXOdSuPWqjy17KMp3D0lr4=; b=bepF6ND4AxJJYl9kpF2GyiixoAiitfcpGSRF6545rL+EqO6+HZJc9d65V42wqWZ/9KcadPP8VmWOJ4fKHQsPcdrl7Cab9qAqVsC7swqTA8cVgSlkBMLDYbRFTiupGOBQWvpqlli0d/FfQkmX3mJe3qbXDc+z012vU+/eHRw6CP0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Volodymyr_Babchuk@epam.com; Received: from EPUAKYIW2556.kyiv.epam.com (85.223.209.59) by VI1PR0301MB2142.eurprd03.prod.outlook.com (2603:10a6:800:26::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 28 Sep 2017 18:05:43 +0000 Received: by EPUAKYIW2556.kyiv.epam.com (sSMTP sendmail emulation); Thu, 28 Sep 2017 21:05:40 +0300 From: Volodymyr Babchuk To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tee-dev@lists.linaro.org, Jens Wiklander Subject: [PATCH v1 11/14] tee: optee: add optee-specific shared pool implementation Date: Thu, 28 Sep 2017 21:04:08 +0300 Message-Id: <1506621851-6929-12-git-send-email-volodymyr_babchuk@epam.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506621851-6929-1-git-send-email-volodymyr_babchuk@epam.com> References: <1506621851-6929-1-git-send-email-volodymyr_babchuk@epam.com> MIME-Version: 1.0 X-Originating-IP: [85.223.209.59] X-ClientProxiedBy: AM5PR0601CA0040.eurprd06.prod.outlook.com (2603:10a6:203:68::26) To VI1PR0301MB2142.eurprd03.prod.outlook.com (2603:10a6:800:26::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b5723268-b6e1-4800-28ba-08d5069b894a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:VI1PR0301MB2142; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0301MB2142; 3:mAzityLf57+tGFtWgzbBLbWNUuGyoGZCwrAK8+0QXEdL9CoL/ki8ip5wXEDgEieyR+8Eu/WgjDLuOHn14I/92I0DwxIXS8W7ohne+Q8kOKNCOF+t+IvrUnuUMRH4j01o/NBqLCUabNUEMtyLlNyJMAHqWspljgNyfFyx7G6gcdLfLhPDvi5pXuoIjX8Egvsx7k9W4sUWtDMB+o0JYpHb3VE/HqWihSqSxnH8AUd8RBvCZhahV8vXFE902FPQ/s9Q; 25:FR6va1jLv3AZlrMaOw8RFc1NpSc0keTQEp+S3NYZoexuvtPfDied7jkcokGT60VEiT3fnXWK3mNu+ic16xRfLMuhCSVlzcUmW1Uu97GGjLgNHISc3bZ2Tg07aoIiMup9/U4A2eB8z4DpUGj9aRjSHvlJFc3chIO9NdQxOCYA92oItkHrE4Yw+9KAlt0uvrgPJuhRkdARMdKJ3+noyKVH42iI9gAGFiJ/B6UaJLOifX+/w17dcILmg+E+i5Nu4OWMHz68zXMrWgcgMm7W1ZKsj8sA1fYsFBc6RL6IsmpJqFThWgCzTw+uounSd0IOJHaOuTmpzvG+RBOnQXzi55Ml1Q==; 31:0uVHL4dejfvixuY2BUG5tltKxNtpI+JkZDgnCdGSy9zEWX62Rj0ZTb7AjB55ALawt22IJWp/2gv7m9oOrd9McZbd0REWdtKm2/oU2v9wpR8We36Ne8rflOcEaSZ2skxDp1zbBXouBtzy7UGwl2eyr79Zo6g3RHbn8l7Ul/mAHODpyEDj1RHXEQGE3JlQrZDCBAXGyA0VbooIdinhTFnYCuoDXRJRecbYTs165CWlBNA= X-MS-TrafficTypeDiagnostic: VI1PR0301MB2142: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0301MB2142; 20:mArfxKR8FJE8OZXR3qggncCav/aBCiiX1ov7QDYouWzogy4tZovMWM57B7d0xeUe1mJtHao0rnP3/OqyeRdUfv65lrw8f3f6d6uK05n0qcOpq5J34F8u2hWhKcKUWy80MaHp1/emWh2Kx58xmxE3POTkEM9nFrztbL8AxPwEY6cDZpTjYeCNbD6C1XaUmBkT2PuQRNhiE3a4rhtKncgv3R/gNkyMCFWco5JSQrDrPczbjMf07VZ3r60Eslm5SEc8A3WFGcfwc9LsmEBiPBKjQ0aqnH8rgrvlfhqTTEp3MQnkQXen/9ekLUe8Fl8ny+5+0dh03hEMTG2CdXqF5G4B1H765rwWpYApoH+FtEH3aPsZoE+Sdhw8ZFTCIuo3zfcphyjHSuMamq/0+uaz7Ns0a9GYw0Af48mRR4nO3Ms/rBPeZkBpcncof+7eJYf8DyyADs+VQritM1ANJxu75BOJDO4B/g5DOnHGCR/GRCyYxEZYmwXyFXhJwvwRCDremXlh; 4:2jYWDdviFiRdelVXXROvLoTyC8NglflPGjUDNt6xCDIREo0uZ7SyV9uyNjhsXBTT49lqfQ6zU6oAveQBCiXNmEbSZTh5x06BG3pUAGg5lMN4SWQDCwDYxrnVL41TlSp7YDHkAG9ZodEbjPGTpmtm06Ziq+DD4SOjnV0Jhvc2E+u361upCBQaCx4PBsreG5m5OrYOUMZUMbxoEe7qFNDwWzP6qjwz1AleYIAMaf4kE9cI+9FaOECVZHQ6TPOFIyCx X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR0301MB2142; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR0301MB2142; X-Forefront-PRVS: 0444EB1997 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(189002)(199003)(6116002)(97736004)(42186006)(66066001)(53936002)(80792005)(316002)(16586007)(5660300001)(86362001)(50466002)(122856001)(4326008)(3846002)(478600001)(47776003)(72206003)(6666003)(68736007)(81166006)(36756003)(105586002)(50986999)(5003940100001)(81156014)(8936002)(76176999)(101416001)(106356001)(50226002)(8676002)(189998001)(2950100002)(39060400002)(6916009)(48376002)(33646002)(7736002)(305945005)(2906002)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0301MB2142; H:EPUAKYIW2556.kyiv.epam.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: epam.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0301MB2142; 23:rofo/dqeh+EPQ6y9qxv+yEjJ1Cef7D3fLvnXePa?= =?us-ascii?Q?gI/w/C3qpJVWo3N4elD3ZFjFRGFPreXwwyuTWyNe26t4nMjs46Jhwj338sDB?= =?us-ascii?Q?TZLUcopOhWbsF7jxXwbgfTaClckaVFZqsOs9oaaqS7Opu97Ve56qZsAjfasn?= =?us-ascii?Q?neqfdvXi4yqaBuEXiqpjIqLjAOjmMl+tz1MzRVKSIZH/ojqxTZnDz7SnRG6k?= =?us-ascii?Q?CfPTvDP2ooYeYcAtoPPT1f3jTdPgBa9GSv6Bi3WOynPGkIIp31dvhf1k0O0A?= =?us-ascii?Q?Rq1T8m0n4Rlh4+nOLXlLbQlpvrhZun627GEfu7Mc1gtRbnhiNh4ktanguOf7?= =?us-ascii?Q?0AP6mnj+jZlNYle/Ii9c2ErFUmFSsP5KwiUntohpb1MLqcS7mOxFb9i2v0qO?= =?us-ascii?Q?WlTgWWfYwktwWgGbl9F3/kzZaQphTpqWLKj1/6c8401+n8FMQoQNkCQYrm0j?= =?us-ascii?Q?UR7O3WUUaCNvy1z9XNWTyc+BBgxKgl20QEsLkqz7EeysVCAeWorXW8qrY2g4?= =?us-ascii?Q?SvQaWm+UBajTixPKM+LmSlk7BkaFn6YWQxOMkcCaF0adNEGzUSdtSE7bxkDP?= =?us-ascii?Q?939YDTdiZOA34ZLefkTLAb9j8UfW0+TKX/nzEm8dI+keoC4XKv27xR/lkUVT?= =?us-ascii?Q?xz7MOH+5kexYWAVgnig7rRNjT5TFsbT6d4BwmHjQVFPR4i4p6CxefsA7dnlD?= =?us-ascii?Q?HGMEkwQOmylvK/1rDsQXjPOuR+FpHQXeN2Gqo9amUM9jQBubtqPPVa5NRm2k?= =?us-ascii?Q?UYRbq0TA6CIYKemHS6KMnCuPFPRK9+/roWB1cbKbiea0XiBDQ/HfuzNwzRf+?= =?us-ascii?Q?Cw0n0GgXEa8Itm4MCKC4elRrYLHQpvARfyFMc462Ms4g+eMoWvCb+A0UPa4k?= =?us-ascii?Q?TQkZqtVA5HAfx9V7hjx4ENpcZ7xRtL2gbdHLZsis8ENb3w5wKL05fPbSUufs?= =?us-ascii?Q?jIFSpqd/d54RCD758VZYsOjGyN0guNt2QjiMfOiB0H3xCTFM6Vqx2MiKH92C?= =?us-ascii?Q?QeZRXLAHD2WQpM6RliXI7YVRNGD0Eq2fJZOsZlMtt9Fkci+I9TYe/n6anwfr?= =?us-ascii?Q?ngoE0heHCs15opruHUAhjz0z8/X+WinjNvW/CIVUIxb0NWb8Gww=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0301MB2142; 6:XaYrwrSWn8fFTjlAh3yatWIZXFeJ+8Y/sG5KsTQUgc4hYYCB/55+TWPKf/x+8B9rChZ2LHVZ+e7oNxACKPV8SE6ZmeFyCoATylBqH01dCMW4UWPeZKLjMHMxgS6Vkwj/Wl+PITmTEi4AQPJVfmofSQ1bcxo/G/4gSs+lYyuIVTmD9OrolJ4eKnxJ8XwkLYAcr+FLvom6rMD26IhUGTgk2oZLWTTlLRqmAsggkXF0eeqlSIYjzMfQTY1LkvlifsCD372tXpqHhh7cipUQOUDoreLTvkox2o/S7WmgdMTkmAyZ/LWBkW/DhbsMfVphUAfAEnH5IzDSQUfHlpQdK5gUng==; 5:RxAJ4+wOxR3nOwOBTtiJRloSRUWwqXpvaw/0cZzT7YH/m0wvkLNUmVjgJAO/eqa6Jz4P6KVa08v/zG+U3Gas0SkGKFkPph32cJpLRnCyGE5qrtBMd/VIFefsNAipJmcOX5UylRI1LN/Ql7hZgMjqbA==; 24:xCAiTttPj1FES0tVL+ve8aFtdabXK5Sv/WrWVO3IKtgy9Yg5blt1bNpYJeIzeeCGSUu+dHbFaDjKbE3n3hiDg2OKhXEpLnU6q4VDf/1gq84=; 7:Jn/Pn7WP3h/r8E4BPIYov6Ss1OjDrZ9xEa9wfXj8Nmfgd0fEFAJL9PN+2V/bW4Om3LInB4Sxc/9o+SvcvNH/1j6dpqJs6s9bQ4S/+sbq/AFVPVGUVr01I5d2fcAyeNiwlpS0nYkreRsYF7Rri5gk/NE4uBe04O9G8ltwj+Mi+iFYnvJOwukx/9VyFmOsZrKsmizMI4N4SN42ywpOW8TJqMtKDquATXon4O0wwhl0A6Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2017 18:05:43.1298 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0301MB2142 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170928_190607_653212_CA3207AE X-CRM114-Status: GOOD ( 18.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Volodymyr Babchuk Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Volodymyr Babchuk This is simple pool that uses kernel page allocator. This pool can be used in case OP-TEE supports dynamic shared memory. Signed-off-by: Volodymyr Babchuk --- drivers/tee/optee/Makefile | 1 + drivers/tee/optee/shm_pool.c | 75 ++++++++++++++++++++++++++++++++++++++++++++ drivers/tee/optee/shm_pool.h | 23 ++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 drivers/tee/optee/shm_pool.c create mode 100644 drivers/tee/optee/shm_pool.h diff --git a/drivers/tee/optee/Makefile b/drivers/tee/optee/Makefile index 92fe578..220cf42 100644 --- a/drivers/tee/optee/Makefile +++ b/drivers/tee/optee/Makefile @@ -3,3 +3,4 @@ optee-objs += core.o optee-objs += call.o optee-objs += rpc.o optee-objs += supp.o +optee-objs += shm_pool.o diff --git a/drivers/tee/optee/shm_pool.c b/drivers/tee/optee/shm_pool.c new file mode 100644 index 0000000..4939781 --- /dev/null +++ b/drivers/tee/optee/shm_pool.c @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2015, Linaro Limited + * Copyright (c) 2017, EPAM Systems + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include "optee_private.h" +#include "optee_smc.h" +#include "shm_pool.h" + +static int pool_op_alloc(struct tee_shm_pool_mgr *poolm, + struct tee_shm *shm, size_t size) +{ + unsigned int order = get_order(size); + struct page *page; + + page = alloc_pages(GFP_KERNEL | __GFP_ZERO, order); + if (!page) + return -ENOMEM; + + shm->kaddr = page_address(page); + shm->paddr = page_to_phys(page); + shm->size = PAGE_SIZE << order; + + return 0; +} + +static void pool_op_free(struct tee_shm_pool_mgr *poolm, + struct tee_shm *shm) +{ + free_pages((unsigned long)shm->kaddr, get_order(shm->size)); + shm->kaddr = NULL; +} + +static void pool_op_destroy_poolmgr(struct tee_shm_pool_mgr *poolm) +{ + kfree(poolm); +} + +static const struct tee_shm_pool_mgr_ops pool_ops = { + .alloc = pool_op_alloc, + .free = pool_op_free, + .destroy_poolmgr = pool_op_destroy_poolmgr, +}; + +/** + * optee_shm_pool_alloc_pages() - create page-based allocator pool + * + * This pool is used when OP-TEE supports dymanic SHM. In this case + * command buffers and such are allocated from kernel's own memory. + */ +struct tee_shm_pool_mgr *optee_shm_pool_alloc_pages(void) +{ + struct tee_shm_pool_mgr *mgr = kzalloc(sizeof(*mgr), GFP_KERNEL); + + if (!mgr) + return ERR_PTR(-ENOMEM); + + mgr->ops = &pool_ops; + + return mgr; +} diff --git a/drivers/tee/optee/shm_pool.h b/drivers/tee/optee/shm_pool.h new file mode 100644 index 0000000..4e753c3 --- /dev/null +++ b/drivers/tee/optee/shm_pool.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2015, Linaro Limited + * Copyright (c) 2016, EPAM Systems + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef SHM_POOL_H +#define SHM_POOL_H + +#include + +struct tee_shm_pool_mgr *optee_shm_pool_alloc_pages(void); + +#endif