Message ID | 1474264368-4104-3-git-send-email-suravee.suthikulpanit@amd.com |
---|---|
State | New |
Headers | show
Delivered-To: patch@linaro.org Received: by 10.140.106.72 with SMTP id d66csp794738qgf; Sun, 18 Sep 2016 22:56:09 -0700 (PDT) X-Received: by 10.107.169.84 with SMTP id s81mr9452871ioe.50.1474264568973; Sun, 18 Sep 2016 22:56:08 -0700 (PDT) Return-Path: <xen-devel-bounces@lists.xen.org> Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id 199si23944104itb.51.2016.09.18.22.56.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Sep 2016 22:56:08 -0700 (PDT) Received-SPF: neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) client-ip=192.237.175.120; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@amdcloud.onmicrosoft.com; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from <xen-devel-bounces@lists.xen.org>) id 1blrWA-0004Fx-6i; Mon, 19 Sep 2016 05:53:26 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from <Suravee.Suthikulpanit@amd.com>) id 1blrW8-0004Fo-Tx for xen-devel@lists.xen.org; Mon, 19 Sep 2016 05:53:25 +0000 Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id F1/2A-06971-35D7FD75; Mon, 19 Sep 2016 05:53:23 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSf0gTYRjHe2+/TvPkPC2f1gwcZmbNFAwE/yg QxX4Y5T+CEXrqtY22uXZbTjRaYkaWqWXFTETLinJi+IddJIQ/c4UVWhQpCZpow2xlKZVWd940 u7+eez/f7/d5n5cHl1AzMiXO2K2MxUQb1HJ/qW5HVJQm/eRoRuy1l6qEpi83pbtRau+jX9hBl CnTm3Ly7dky3cKdDsxcEWh3PeiVOND02nLkj0vJUglwFTWoHPnhiMyCmdEGmQAo0oFB66JbJg A5mQieuhGFUIeQYdBcXqcQRBLyLIKqH2+W3MGkFlzTHA9wPnYz/BmTCMcEuR+avnqXaiA3gbv v8lKmH5kGk2MDSJBTvGby/jZRHgRu5wepUEtIgM6pKZ9VDc52h1xoC2QZAs51Y0lEkdEw1NMp F0Vp0Dky4jPMYzA4nCnWKfC8rx8T60Y5zHsKxaBbcuirdvqAAbxzT3zmBDjfuIBEURcC7wCHi T/fJVBW8sznUMG5ngsKEZyRAfe21jdPFvysSxI1TQEwPpguaoYV8Ph2iUx8LiV85tyoCkXWrp q7dtXcDQi7h7awjOUEY9HEx+RY9Fqd1UjrDZq42J0xRoZlaS1joHPYmNx8Yxvi92AN/3Ho3cW kLrQBx9TrCM76PoMKzMnPK9TRrC7LYjMwbBdS4bgaiNPFoxlUkIXRMvajegO/TMsY8AB1CFEg YII100ZWrxXRUxSuDCVCBEAKQGczrdiW13AQhSmDCcRfhAowMxaj3vo/96BQHKmDif4iPiVAb 7KupHv4xhjfuLl2WGhspf8hpQMZxl2H9a2zsL4lmTqSt3HaW/Nw9oCtJTuE0FTsu1QfsXf8VG WNk5u9smd7kqopa84zYRtJTTx+tfT1iwi/xaGPGpsqZSo4ly12RZoLIho73Nf9jv12dCeWz23 FIoMq5UXx3bvaqiNd30YnHGH1zYvt4dRd8lW0J/mQKU2RHP1JLWV1dFy0xMLSfwFQcsHCgQMA AA== X-Env-Sender: Suravee.Suthikulpanit@amd.com X-Msg-Ref: server-15.tower-206.messagelabs.com!1474264400!46442492!1 X-Originating-IP: [104.47.40.40] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.84; banners=-,-,- X-VirusChecked: Checked Received: (qmail 8544 invoked from network); 19 Sep 2016 05:53:22 -0000 Received: from mail-co1nam03on0040.outbound.protection.outlook.com (HELO NAM03-CO1-obe.outbound.protection.outlook.com) (104.47.40.40) by server-15.tower-206.messagelabs.com with AES256-SHA256 encrypted SMTP; 19 Sep 2016 05:53:22 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=eTgVHu0DLWSAnAltyZDrUufxBFDqreHa2N1UfjkzqFw=; b=zNnqgfFU+XDu6uxaDxh7ofrblom/cPE/UNzs+kph6uJpl6rxD+hn5hBBPALEbiU55j35bGbFo8vArJ6WlQ4//TjBbtsqfOesreF1y2prgpv5eeTNyMtrfLHdvJFCLTgruraCHqLSGMGQ5vQHW0qNLcudXFHSc/Hp4mGYSlUfu04= Received: from localhost.localdomain (114.109.128.54) by BN6PR12MB1442.namprd12.prod.outlook.com (10.172.24.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Mon, 19 Sep 2016 05:53:17 +0000 From: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> To: <xen-devel@lists.xen.org> Date: Mon, 19 Sep 2016 00:52:41 -0500 Message-ID: <1474264368-4104-3-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1474264368-4104-1-git-send-email-suravee.suthikulpanit@amd.com> References: <1474264368-4104-1-git-send-email-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [114.109.128.54] X-ClientProxiedBy: HK2PR02CA0002.apcprd02.prod.outlook.com (10.163.104.140) To BN6PR12MB1442.namprd12.prod.outlook.com (10.172.24.19) X-MS-Office365-Filtering-Correlation-Id: e0174342-1588-4afb-ee48-08d3e0514214 X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1442; 2:xoW+uLGolwFLGQDSYLm8Sb268zmlHfAA/djzJ52jbBgm2ovu7Goo+XZUSMEQr6TEC7KJFmANYQb07PW2dTKdPI/ORd8o+ozNNSHgZuGwcPM7OPrdwXg7pSEYIlLRkmdEjE+MBtSk8Q8qqQ79fGsy1HABtWMsWP7TSfQBbxyPuK35dGYDTXPKtc8w2wipLahi; 3:Wm2mGLW3dclhAR6zKtoTn/wk8Iy/YMNXDY0RKhoEwYeUeUtQmhKEtyvet+Is1SUQNkxgUImJKFyjITIotN3qQeoL5N8k2QHctUe0tyxK69+NbAJ6caB10KSANsSXS31y X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1442; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1442; 25:F1gSZBTXgaKbQLCbOAG+xTFvdXMKVCcWZ9+gj4TLF8UuqFp57O7Hj3UBSe5tFem2sjj6Ye1YAAPIQ/3krhke2eMYuy1v4/BW66Vo99HcFmvuhDxcJ7Pef8OMh87XP7dNKx5r9nGBuvogk3f/t0jbBLCgeFu9n8sgmVzuftPBMx08pCdUZdL9bqNIE5H+obm3wik1C9p41d6iSPbqeeHrz34KtG0am1HwF+gvy5yYErBT9KgH3O9vKe4rRTAjIqqlGesRiRiN2MyBYtoB5UoVYL1pzoYi9ENC9BwuAU2yO4T8s9R+Fq9sZsqDqg7wx5Lyd2+gZ5232V1VvlG9IjsqYQGUCbN/0KsaWqIsJ/mPvOqK84p0gOoQQ+OI+kOAAk60fcsDLK/ZoUocV6bfedTLUBzUV/gFWQ98fqWYKPdVefGoOxqqZepXRUzHhMbirm9KGFVFkgjLs/jfpVm7A6+2ptvl20Pb7nVwAv7wru+VRIRFkhtu1bUAiS9ghRFLL18+5mKMFIzQGlwnMCsc66yBOXaBIOLpGCvgEiV+6frJ2293P/ngLMnbsiVXUliUt+D4H2kO4Pi+ar1T1glFq6d3z1KYgL2hgKcXShMqXYzJxJFGxvmbAjzf1xT/8ZWyHXy501R96wEenEDcOKXzDVPV6caSjmPAK2YssDlaSwawKbw7wEVVZCbca166Iz9I7YOokbITYg7raCpIbmRKwo+c2lm7XU8DLfMYLfllKtvVA68= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1442; 31:WdORBB4SO+Lo29j4y9Y1m+xHmFvE7EI7BOwRJFB9qGlIR3k5TyB2FWmjs5uMyVP3mPD8ObOW+tVMRqGANABpMB5I3huUWNgUDtKzKeiLzEHAO1o+c4EiHlIEo4YIjY6/uro9qaESllGTFQueBbLiQiQ2u8eoE0qUGbSGmpCUuVZ8YLS7b4rI7B0yH8LWW50aRVkn9HuUJ1cYBW2pcbr/lidsEp+rKqgMCBQiN/LpEME=; 20:wzA9KfXuBPq9/Hh5goxej3DeR0mieuO2kL4LkRc3a0gJ7TTjp57oVdnUi7cg4VetwcpGXeBNfJOaWWYAmoUY8m5Nm8l98GqXoLImGtEga6At58mzGiCSkI9NhFzzkRP4fAdnhotPYI0Nrk8j7BFQuSrf4I4rNdxQF8DQbIkjfmcMjkBx/RW1I0gHSN4yZjnxN4Yki7DNtXXSvqeTzbfuzNskuudyJ2MrIoWpAjG/IZnAsIMqQINL/Kgc9lgZBx80WLvUFezQ6xjDsQ/3bHl4sULHW5t/t7zsheHyZtgGq/LCQD8FGP+o8PwuGptk55LGyzoC2484V2ChMR/wasun3C+bezoiRZs/5gYyY8mobZlJa8nJFQBJ5kANeo0fpTvoPdU1QSSchhEEJFkKol8f3agfH+ZjJlbj/hsX1cwqYGtQDILuSnOPdejxL1TXGbaHslOns1amth0dwvOrmBk+mB6+LQZuid8BW0Gq/JmPlLvOjSBWI9lbiHnjQVeQ2YvH X-Microsoft-Antispam-PRVS: <BN6PR12MB1442610789AB0BA139F49E30F3F40@BN6PR12MB1442.namprd12.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:BN6PR12MB1442; BCL:0; PCL:0; RULEID:; SRVR:BN6PR12MB1442; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1442; 4:7nr6q2tNLlVh4nMmof/oiifXzcZrXTl/8mMJGG375nrq751tuPaWmk0jCdlTJM7lFGDCVRrQqa0lno2P06kIa5UrqLqY9IbD1hUCMPf3jGASF+n/FHDIAKwYyTsvQ1CMaWbXD9iqTT8WQhzle9CghQBVUIgebVew2bLtAg+IFmKKZEf7rUXmRIs7rDd+q9fDWGbk4Sf2OYsdqMB8tuwbJyZNjgwNOFFatD/QQOdo3KZw7ve7WS1J5fAShyeTsuF08kGt8gLmxP52iWkMqY/5dM7ifEhNuLzLhAUA3hTapkLzJmPZ5MbUaxBMwKcUZmVwDW5pw+5PNRgpb3e0rA4XY4TYmLY22Np5LAFX/N9IZd9hiEUbIA9rvfOA0XWGJiMbkAXwRhrZUQOscVqGj7y1PRBfD7cisQFjj0/S3K+pSzTmC0wCVwNkor1JCGbbEy6r X-Forefront-PRVS: 0070A8666B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(2351001)(229853001)(5660300001)(81156014)(81166006)(33646002)(8666005)(8676002)(19580405001)(7846002)(5003940100001)(7736002)(19580395003)(77096005)(305945005)(110136003)(2950100001)(92566002)(105586002)(106356001)(101416001)(2906002)(586003)(86362001)(4326007)(6116002)(3846002)(42186005)(66066001)(97736004)(47776003)(50986999)(36756003)(76176999)(48376002)(50466002)(189998001)(68736007)(50226002)(7059030)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1442; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1442; 23:WL3B+2fkeUM22BTlE3hrzeaoWGGBemOzH/Q9TxCE7?= =?us-ascii?Q?Kcl8XiJEh5lad3rCFZEplDzoRRF5c77DpH9Qv6GfV+tEFACgod+g0N7VYfgj?= =?us-ascii?Q?wds/X25omSHYbOhMhdGmKVB23CJIUxS3x4XaxCxIpZThFHEB5V1247YknPGY?= =?us-ascii?Q?wOAZR8hepY3Igb460qqZN8lA/BuHRzFc9iEY1HRry/9h8Y1X0+/Z7RMJXCfT?= =?us-ascii?Q?uCtiTLiQFwwMBsg8nsIRV7ghGpfy3FKkUMu6P2fPqYK4MCgyQx63o3BFsvIa?= =?us-ascii?Q?Qe4OrLknm5rP56ban8Du9EOiywZca9Gupzai45J0LXZg6WVap+pgxZyReWSk?= =?us-ascii?Q?O1Xhs5hmleHMqnJucYJpFT1pcey+qWIYMbw5JqbFJ5aIsbCPSjk8MxMogMK5?= =?us-ascii?Q?zpFrcWjtdgHU9U51N0XJD1NufmaVScKC42xkge1fKwks89vZVkD+GYkzpvRZ?= =?us-ascii?Q?Za6mGmC9TUQnmua/TNK8J82HVDDHtirFZP3R0JQw0L3nESlxhJx0Gy6EU3dH?= =?us-ascii?Q?RQvjJKUK5uWNfSHgZsZ3HlHmlC9ecXRWoHnF2UFRBmXOFKVMyyAIbTxMZg+0?= =?us-ascii?Q?hEjx9VZPYLviX3vN0vOjwUaNQkhmxeItsJMCGNNg2/Khe39b+WlQHhbfglAT?= =?us-ascii?Q?wdmpZW1rKg4mnxJuhjCV4B9dgmZW7HrTbEVvpUkfvwRFJlPm2gEytno0Sf0L?= =?us-ascii?Q?5WTyqRvSI0jCsH2m+vcPC+NmkWm3cORF7oFLYEG4Co7SjNaU4VdE9iOBgenX?= =?us-ascii?Q?YdoDjok1fAeZMiya8WXhpCLW+LamztkvPRa6JBJ5TG43a0ZP91DF2X3grg7Q?= =?us-ascii?Q?OoqjHwIr4+ILgJ2TZ6Sq5YMQGP6NNdzhqyCqwVF9+JO6elWCwVjof+kdXNYP?= =?us-ascii?Q?KaTBZ74bIObcKWeVANmMCE89RJKo8GnUx1aUjAXqg7X8BosxH5UFkgZziWgH?= =?us-ascii?Q?FrEvQB9i0quUXABKOZrrAAuZo0f8OIECskjvDtE89LeZbkHxDlIQVdtvem9s?= =?us-ascii?Q?S7ArGBTgOIp95Nhgdpi0SqrEE/VbPRGU19Aw0eg9l/IkKjhruv7kVgnmfjAQ?= =?us-ascii?Q?xg64NN0s4Y6+expixynkIL2+K/YjTx7mN+JKaQURzLCRHTJfwHdD011LFpSk?= =?us-ascii?Q?jnPtMpC9phNi7bxdaFiP4NLiMB7Zxuu3k31K6RxR7xn52s0ZmCbmQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1442; 6:nDw4N/uo4ZaHl0DFeJ2yPHX2zAE2gNdHyQXTR9fFENWhZAwUDcOPKkjZyWFt2/86TkDu7M51Sy959Olm4x30ffOvbMBIZU/gRXuk77O40upe8qapeiFeilZx88WaeLSK9oW9j7sO2g1b6tR3DmfqcetF00BPLH+rjbdThkZGfGeMadAmXRVQ+i8kwBFQOCdvJ85xu+0nNrwCqFYQpUTo+1QKXmBS5TkshWMEC8yoKZTREc66Du8WBko6SlzWtzyrzUd1tNlOjNjMdLKN1o30kDe0Igx5CUY/sbiMgrQJknQlgFGUAel5knlTyjRCtHPawmeXsZVXUwnQFrMOTG834Q==; 5:w0KH9Jz0XFGmdDCf7gjQm81nAbeqCKSFcETe/ZZmdi1P6ubyuugVBSOnfjcAnqcGKb+/KTZoCni0zS2F8oIwh8CUpncdvP7swQ13/NgCtinF3oIZgVN/xZpL6vW0NXvQyaoSYA9IGK47FuDAyvK87A==; 24:rbA1kk14/eKiFjoMnqy/prJe4MPKQZgSNUujktQkPgcZuskRvHZ4QaH00zXVuZze1faSGo/LqxTKBRX1YM2TlS+/GzxIjtXSzShYOZLzGFE=; 7:lINpz0AMriFFRUOK6aQhi0wfGkTYfOh5LP4412oOVuM0AUb+iPBzRQXQ6AQbqxFor/RfP+ahM8ryGR/98eh6Sxhf4EcC328yHELdl9LIVQBzA5mZJY4uhxDGd8DBHXSZBWHIpSZcjYjjYCOAqf0GwOY3b7Ao23ES4UkheA94+BS7n8etjwvQs3iJrptd4DayzsKz5HXUNXNvQgxuvcTH8+LVj2oZltm+8xnPBQjJyBc7tfMGLqE5BpBXOcvQhoQTD5vNVlrk/rspKpzLLds0jvmOFHQ7E8woIN4IV7H34RNte+43T+87V3n5BtK1tlG5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1442; 20:9DZTPZWvHeEXIJ0a/0t2L+XRZk562qQDBWSQYQ0CeKGelIeLqshRwzipt+tZs1sCs+uhEusINZHlbo7J9wY2TV1797FenRqUgBUr3kx8EerV/Q5J3N2IdfD9WBh7w6mXOZC+9LrI7u5UathHPCNS3lMDBgaZxpkMlPntbjk61MUuoE38cwFWvqyII41rU5/wB7AqmQyVU41ihJt6566Rk5AXz53fx/tfIqHWfJ9t3SfEz55a8t4qLA6cieA3yG4L X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2016 05:53:17.3154 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1442 Cc: andrew.cooper3@citrix.com, Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>, jbeulich@suse.com, sherry.hurwitz@amd.com Subject: [Xen-devel] [RFC PATCH 2/9] x86/vLAPIC: Declare vlapic_read_aligned() and vlapic_reg_write() as non-static X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion <xen-devel.lists.xen.org> List-Unsubscribe: <https://lists.xen.org/cgi-bin/mailman/options/xen-devel>, <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe> List-Post: <mailto:xen-devel@lists.xen.org> List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help> List-Subscribe: <https://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xen.org?subject=subscribe> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" <xen-devel-bounces@lists.xen.org> |
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c index 1d5d287..0f52067 100644 --- a/xen/arch/x86/hvm/vlapic.c +++ b/xen/arch/x86/hvm/vlapic.c @@ -562,7 +562,7 @@ static void vlapic_set_tdcr(struct vlapic *vlapic, unsigned int val) "timer_divisor: %d", vlapic->hw.timer_divisor); } -static uint32_t vlapic_read_aligned(struct vlapic *vlapic, unsigned int offset) +uint32_t vlapic_read_aligned(struct vlapic *vlapic, unsigned int offset) { switch ( offset ) { @@ -680,8 +680,7 @@ static void vlapic_tdt_pt_cb(struct vcpu *v, void *data) vcpu_vlapic(v)->hw.tdt_msr = 0; } -static void vlapic_reg_write(struct vcpu *v, - unsigned int offset, uint32_t val) +void vlapic_reg_write(struct vcpu *v, unsigned int offset, uint32_t val) { struct vlapic *vlapic = vcpu_vlapic(v); diff --git a/xen/include/asm-x86/hvm/vlapic.h b/xen/include/asm-x86/hvm/vlapic.h index 4656293..48ab3a6 100644 --- a/xen/include/asm-x86/hvm/vlapic.h +++ b/xen/include/asm-x86/hvm/vlapic.h @@ -132,6 +132,10 @@ void vlapic_ipi(struct vlapic *vlapic, uint32_t icr_low, uint32_t icr_high); int vlapic_apicv_write(struct vcpu *v, unsigned int offset); +void vlapic_reg_write(struct vcpu *v, unsigned int offset, uint32_t val); + +uint32_t vlapic_read_aligned(struct vlapic *vlapic, unsigned int offset); + struct vlapic *vlapic_lowest_prio( struct domain *d, const struct vlapic *source, int short_hand, uint32_t dest, bool_t dest_mode);
Expose vlapic_read_aligned and vlapic_reg_write() to be used by AVIC. Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> --- xen/arch/x86/hvm/vlapic.c | 5 ++--- xen/include/asm-x86/hvm/vlapic.h | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-)