From patchwork Thu Mar 10 20:50:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1604152 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.a=rsa-sha256 header.s=selector1 header.b=FrfbMwJp; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KF1ZY1cVjz9sGB for ; Fri, 11 Mar 2022 07:56:37 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6892D83C39; Thu, 10 Mar 2022 21:54:24 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=seco.com header.i=@seco.com header.b="FrfbMwJp"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 469CC83B30; Thu, 10 Mar 2022 21:52:34 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03on0628.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe09::628]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 3106183B29 for ; Thu, 10 Mar 2022 21:51:54 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QdAz1NG5ETNicafnF5FcNhZo6GAAgeDs1VpKhl4dxxxJ2hPGPgLhgfOfz5E9YFzQnfb+W+EPEVc6ii9wREz1HxvsWiv4rpf2Xdeae+81OsSutwh03dPIxewIumQbl7gZVbORITk92uVVAhAH5cuoPJyx1mC/kUUj1uNROfp8CLQIumo04R4Cwq91yodrXGZi0J0aRcl+e6tBecHuY11i8Sbep+LEZxAgdF3XJklr/9Fqn1TWgiVy9ybKD7jzYnkYRZl7SC4yCdOG3zQuHJtJSpGhy+zY2DJjHImIFpbw9iWZPJpAuRmQ9TI9vmL0Px40sXndv8u8JVGgm7JfyeAxeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wBDWIf32ekFrMMnQyIWCRWk0NJ2O1YHQ4kAXj7Z6uWs=; b=aJOQQSM36oBoEvh3G//RYYrfwJ6/1LVA6bnJtrQNz54xw9HQV461xGg8vRfM6P8u7bIb262u8NANPz9SjruqeA+uQdh9n4WfDULLyMBQpOb37IzuQgxbriS3mQOINudVUDgWX49gzOZYFpTMazDgkq9u4BR97HuyFBnE2AraxeCNY/sc6PZgWNSVAKopqUMHYT5mIeV37dZ9UxJSaVTDNVkb1HCpLFtYYjhxCl7OsjLzq59y030dEyxwuFi7DEqP0gtfMIOo/ngf+90dGg0C9Nd8B8Xe9YKhceDpUAe+Yh9sbAvJdBipOHqPISkDuRYPWPKn+awdLOH9dHU+dTg96A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=seco.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wBDWIf32ekFrMMnQyIWCRWk0NJ2O1YHQ4kAXj7Z6uWs=; b=FrfbMwJpHnTe059KcVjj9XwTmH467I4+ZRQexJOxyOvPMO8fs8S/PNIJrWw02nxfzEEa3sIkRjL8ng3p8GnmR/QEGmm8RXjDfdTer+FAOGniIz5yzKSjJsiXFDv5gu16LsXMpEsl2soBbgeV9ylporwCDlmLfVYEZVA7tgt02wXE/450JyQkI4/P23L0vbEPiZq89hvOSOqMGZ1zag6/IgWRiVK/KlMRT1UaUj2Oy71g/JmlnM/Nh3niY5SsKNxEtyLua53LNQHbu9V9+n+8hAruVSCK7AsSTPvJ9XXlEmoyeBMflA7R+wUSN7VlnzIir4NH2phV677xO+Wp0nDKcg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DB6PR0301MB2439.eurprd03.prod.outlook.com (2603:10a6:4:5b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 10 Mar 2022 20:51:52 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::9860:b15b:f166:5896]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::9860:b15b:f166:5896%3]) with mapi id 15.20.5061.022; Thu, 10 Mar 2022 20:51:52 +0000 From: Sean Anderson To: Tom Rini Cc: Liviu Dudau , u-boot@lists.denx.de, Simon Glass , Linus Walleij , Andre Przywara , Sean Anderson Subject: [PATCH v2 27/28] serial: sandbox: Implement puts Date: Thu, 10 Mar 2022 15:50:57 -0500 Message-Id: <20220310205059.499269-28-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220310205059.499269-1-sean.anderson@seco.com> References: <20220310205059.499269-1-sean.anderson@seco.com> X-ClientProxiedBy: BL1PR13CA0433.namprd13.prod.outlook.com (2603:10b6:208:2c3::18) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a65fb43e-4db2-46e3-0b29-08da02d7ce39 X-MS-TrafficTypeDiagnostic: DB6PR0301MB2439:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h03n7HMgvh21AQ3MqEoyQTLYtdZLPA0j1amVT4e0wrRVk8h4u0D2QDqT8x0wol1lzHLddSgn63+aNNMLy4q+Yeedgw8u8IsSOc1qePLTbgtnMcCkMdrmOTgDMkaal4tB/Ncq1jVyhCBE3J+gUvEiinjeV23Ko375bvKtxBi+XCf0hiTEgz/TctbbD4ozzaIFOV4dLlY+Mo/IDKvkRfjxA+ZPBWKFUFEzuj71PW6Lt1zvpd1JLRm81UNQxvf5GCpnyTj6lMMQ2MdqlAZ1iU/ge7daiuAGw07dI1+78rFC03+Hqhk9qJGi2nRQGWLwcht1Wp3iWWbWrI8X7Cv44D9r3vvQMZjhtTiXclfftvZ69B+P+iYvWT2wraK8U5iG1R0+xiZZAY01R7UaPn/x8hgsBQu5KbS/5ojFShqdEoK5QFzYjb/LxR1fE0X6gNQxJXa76ZjjL5kNdry14mOmQ0LVAKQcJmPO2FuxRCx8kj7ufAjAZOXyiQyDezgNRz5yGxmRb4Pr/+hp12ciaB6OYP0Nz5o7GhTZpOFlEMTVLIW/30YKd+E63gm2u/LWaHjjtnq+s1smCfMVHQLqgBkDug3cd5D/ce08oSG88IMtL+PA2Rwf54s79oDUXBkz0LxdWD+krxup1lgW8hOC+7I76brX3GIvDcGphPXx8sORU/Zzbz0eetz/sdOEZHNtjMpyIchKeV/ka6ner2rDrkeRdWD0ig== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(54906003)(66476007)(316002)(4326008)(66556008)(6916009)(8676002)(66946007)(44832011)(36756003)(86362001)(2906002)(38350700002)(38100700002)(5660300002)(8936002)(6512007)(52116002)(6486002)(6506007)(508600001)(186003)(26005)(2616005)(107886003)(1076003)(83380400001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pEbZ4xSRljYNdPcG3x1CYfsgGs4qKLM+eIl9qzwZa8BcffLcZiA8v+tkC7D0JLz6Ej6oQCqhwyKSt9U9OJZPSh5FXScwx+PrGs1FsXU0hH5nddacawzEgA5OOATahyY4ogM/+0GoHLFX4lwpUKk6dt0wg/3dqa8XYtf7WnyBoGdAOwVJxadiCXRr2dmvRDvv1L2UoxJLlMsQcUTqjPuS0WK8+bq3+WgmmXJrlUqfNMsOCy5H59/udKPPG77b/H3nj7clqcP04DZJvagh/XW2UoidJc4dksmj0mVJUgWPxXZiISjbauZpoqs87Po4bmMcRAZfnWMP2zxWqJyAwR3G3evYxHhetXZKQ93E8L4xQusmfTmezaOhVjR5ihrpnS2IDWhAsT0NH/ucA3WwBuu6M1anL3eMEDXksIQgcnLcg2rUtxIFjB52o7Va7X/jNQVwIc7O9eMgkhnl9nimOsgMDJ3VdpyWW3MS3xe3HLY0ZgugrnRjEho9KgqEdMCiRaVmBWfEiKpOhWtx7km4U8t/+K0I1oIEy+nKOTVurMoIribKI8CGPDmQYSrAGtGoAu9rk24NuQkByr30Niew9SHp5yccCsG1mABMT/xw3al8BSeSUbUTBFq/cUxFbzr61dr3amt70mnH6PpKG5TvQGIBgcXg6YPhtJKfk6r6hnzkYS0MDAQKi0iaeydrz+RrwSxdYK1wHYhLSEWQFn/Ejeg8jR1AipczsIdj2W/on6gB20qfQl8gk89cHnuqjd+qAnWb7DzPXluJYQfBgBvDklN7UrdmoepqXWmROdcHhhBWIc9c+ITsy/a3+p+1XmbyixSgzwqVvexS2VY2WnepjZ70ckawuCPAYJ0AmSAfVS5K6VtamUbmu5BP8Y/ha6KF4y2AJqi1mcq2pFrrbbfsPpSJdixYyEMYnlIMzV9lYYgKAsbyfqA3z6O3hQMe7biqk6eaizeMHi0EuoQGhYzr7JocDknZmStJYPar5l+2Zg99Hv1WA4VixSyclfaD/YtmUpDF+M9jkQihizEik1UsERpnNG8z3JWOnpoiVwt8WtwJzRe3FeCElW8XiU7TLaqtB2detNwyXTbb2mebjtW2Zu1YsFlnSrryhaHg5DmSE9PwPjw3eIyYDhF4lFuGNa4auZJ8Azfhso2HEQkIROMUfLrDkr2wtFQ1z4LNO24eHAZH8bmMst5yHrgW22XxpwC5TAr5rjKOKj/Pjbtgv7LXaO27QpscvSXBtmpmfa1R7nBU2cDTmVypO+zADEmqFlqPuRZnlhcWpbBNLRcN3STdDGONFvhb8LYh1bE8wHrSxj27PyyGcOfpUQaBA2q2o7VJVtFdWe8kA87T23pL4MJRtgXOlGRT3nzlrbJkQO2m4+cfZ0dzNOp4xWD2D6Zmkh73A9W1t5vzja+wNytWfW3LWxtfb95CgxMSHJ+5p9xpkAxU5pUN9VPczbDDtphIaQJ6w8qPUQaLifv2+udS9TTk0fY4GouuR0e5sk002hTgarTB+EIpwCITWTV8bzH0O+nsVuKMwNEr/xJluBArISFDtvevSAF+WBJnKHn916etFRXgAT6NIyAjVmdKkXKdxG5HpHGuwouxmojOlEPGO4DfnBhXmQRDYvGTvD8IM8JcFlr9NXI= X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: a65fb43e-4db2-46e3-0b29-08da02d7ce39 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2022 20:51:52.8196 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xG+Ut0XI0B2LQlcd1VzQ3qZPAe/IpBw9fkXluYIxIdc9zQS3ftUx8oeb8n5Uh4CAY88T2Bwb8TA5FW3GoCpnXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0301MB2439 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean This implements puts for sandbox. It is fairly straightforward, except that we break out the shared color printing functionality into its own function. Signed-off-by: Sean Anderson --- Changes in v2: - New drivers/serial/sandbox.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/serial/sandbox.c b/drivers/serial/sandbox.c index 0b1756f5c0..9843e4a70d 100644 --- a/drivers/serial/sandbox.c +++ b/drivers/serial/sandbox.c @@ -67,7 +67,7 @@ static int sandbox_serial_remove(struct udevice *dev) return 0; } -static int sandbox_serial_putc(struct udevice *dev, const char ch) +static void sandbox_print_color(struct udevice *dev) { struct sandbox_serial_priv *priv = dev_get_priv(dev); struct sandbox_serial_plat *plat = dev_get_plat(dev); @@ -78,7 +78,13 @@ static int sandbox_serial_putc(struct udevice *dev, const char ch) priv->start_of_line = false; output_ansi_colour(plat->colour); } +} +static int sandbox_serial_putc(struct udevice *dev, const char ch) +{ + struct sandbox_serial_priv *priv = dev_get_priv(dev); + + sandbox_print_color(dev); os_write(1, &ch, 1); if (ch == '\n') priv->start_of_line = true; @@ -86,6 +92,18 @@ static int sandbox_serial_putc(struct udevice *dev, const char ch) return 0; } +static int sandbox_serial_puts(struct udevice *dev, const char *s, size_t *len) +{ + struct sandbox_serial_priv *priv = dev_get_priv(dev); + + sandbox_print_color(dev); + os_write(1, s, *len); + if (s[*len - 1] == '\n') + priv->start_of_line = true; + + return 0; +} + static int sandbox_serial_pending(struct udevice *dev, bool input) { struct sandbox_serial_priv *priv = dev_get_priv(dev); @@ -212,6 +230,7 @@ static int sandbox_serial_of_to_plat(struct udevice *dev) static const struct dm_serial_ops sandbox_serial_ops = { .putc = sandbox_serial_putc, + .puts = sandbox_serial_puts, .pending = sandbox_serial_pending, .getc = sandbox_serial_getc, .getconfig = sandbox_serial_getconfig,