From patchwork Thu May 17 23:16:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Kelly X-Patchwork-Id: 10407841 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 47F3C60155 for ; Thu, 17 May 2018 23:16:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 32EDF287C9 for ; Thu, 17 May 2018 23:16:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 27114287E9; Thu, 17 May 2018 23:16:37 +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=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A0E00287C9 for ; Thu, 17 May 2018 23:16:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751880AbeEQXQg (ORCPT ); Thu, 17 May 2018 19:16:36 -0400 Received: from mail-bl2nam02on0059.outbound.protection.outlook.com ([104.47.38.59]:47949 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751907AbeEQXQe (ORCPT ); Thu, 17 May 2018 19:16:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uievolution.onmicrosoft.com; s=selector1-xevo-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nXGqgHEd3s0c0+bYJ01zruTClbyJV0SeZf35o/ZXrRw=; b=Bvu/uiN1VzT2zrlJRQx7fsHQeIinjAw25BAvhgEpIlt1WnmppGr6Bz7JXC06NhgLYLwr8eKciqJOzTNIJIzXFbyHxp+1l3S+JLRgXHBxM1Cy+hYGrZnOb9aiLIAKYTkOa565pmEICRfXe1GstviWD1KH4gmBc8SDkEMEFHyFd5M= Received: from columbia.corp.xevo.com (65.122.179.226) by MW2PR0102MB3417.prod.exchangelabs.com (2603:10b6:302:3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.776.11; Thu, 17 May 2018 23:16:33 +0000 From: Martin Kelly To: linux-iio@vger.kernel.org Cc: Jonathan Cameron , Martin Kelly Subject: [PATCH 2/2] tools: iio: iio_generic_buffer: allow continuous looping Date: Thu, 17 May 2018 16:16:07 -0700 Message-Id: <20180517231607.10856-2-mkelly@xevo.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180517231607.10856-1-mkelly@xevo.com> References: <20180517231607.10856-1-mkelly@xevo.com> MIME-Version: 1.0 X-Originating-IP: [65.122.179.226] X-ClientProxiedBy: MWHPR1001CA0027.namprd10.prod.outlook.com (2603:10b6:301:2a::40) To MW2PR0102MB3417.prod.exchangelabs.com (2603:10b6:302:3::10) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR0102MB3417; X-Microsoft-Exchange-Diagnostics: 1; MW2PR0102MB3417; 3:Fld3sLhjG68T0ipM1DTEPdy+eNDGTuf2ZYb07Oisggi4sQcNW95gv5L837SIW9H512yjkzAWhjDYOlEnA4jHboSEmtB+whr9SPlftyK+NQV1Ttx2nYbSqnJWhE27c571m7iEBRc2GyXjfuUTrRuP8QOGcDuFIOTfNKyKpR5+5Reu2CW7JBKpn6Oa3GUh9M8tMbn2sho6ohIgQeIbBolnJdu6wJuyjZ4K+ULUSj8P3qmkxAeX9HIuP/l1bsaT4w+7; 25:IFVnavefweMYYgAc4NIEjYvzniNWOKblL8pNpLU6qT0L5xCPv/frewUWQqmpTdQcxov1J3CXlHl8SHQmZFfyfN651TV2kH5gJyYMfMmpL5NqPdQR2HmD9h7IcC6ht9cEer45C2mGQ7lblxtWofvma7G1x3xdt+4eLqZBAJ/6DIRiMNWfQM+IXyij+5QjODc4ZlkKo3wcRTYLkmfa0bxnKhY+HeB2XC2aWZqxjPvVr1SwDQv7gQ/JxSYvZyQezqriPhmQOQNa3Sz+biTJhX5JeGBmLBmF9h15kXBDqjwiV8/vWcvBJEY10UwXV4yF12yzOyuTO4LzrcJevwWw9V+qSg==; 31:oHkLAeRMOPBXxjo7/0V/+82y8xb0h3vRHoIrFZQvS1weslPJTuf6tnCPSewk+ppgVIJZvOphd7E/9yPrbCsswnAI9+WeF/HGRQOqOALU4ZuhcPaMcP1cW18ZVExfw6hilxeVLbBU5I/DQzQdhXeV6tf30oSF4dWahrtIBaOh03o2IJCKZWtafL/J082AmHg9r3orMFmQF7nShHlANaqvJUrdrT+GyAQcRDFXVks+bmY= X-MS-TrafficTypeDiagnostic: MW2PR0102MB3417: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=mkelly@xevo.com; X-Microsoft-Exchange-Diagnostics: 1; MW2PR0102MB3417; 20:w/vtqyW7BytGvAWxSpKwff5Qh/jFty+9QsFlKcKihOc70fBBNLiZeqqw8Lr63uULvnSw/WASTvgiHjR16F4pMAeAaCJUaWRvYoKF41eWm4+nmNHWICHn0B+sd+fAC6msE/CjePGaDArX47AjIloR1Xgr2+TKYAicYUfqTl0EKxejcKl+JmNMtPZSbpy+q65dUeoy/2k5fgKVP8iFvCze6eX9HqWsb+M1BCOMFFMBmxFeNnFXwmkJvVqFRr8BAMDfkzLUUO3p9ObuSoE/TFLrJNI5pSP5RsIv73bi/NYSdjW7EsPKc5JEeC+JdW8vNL1/Io/qNwMMWrkBsK0Z6s1Qp+r6Zdcz2DCheqHlrfOrawERpCMeXf+qhEjZwbjLTv7dvg7LqxyopUP3IwRRf+KKZG227dP7JsxBoc6CWFLBmm4mQGOFIXv3AMR+UaabNg2hc1Wto3hbcwZcsCAX3TKiClbhOJyFnogI0IiFpo5lNJWd3iIslET0QXxKkfeX5YYL; 4:xNS/cx45CzRCOt5vwBsIPN7a0bdxubdHLlSpUYPLTiRyxnlqGqDfQWaxJ3DLzpi7yPDJjdGnBu3mKbhTHkh1PIM0Op08S1QE/p3Phse+n2EysSTq2WbPnYK8plE938PFeUVDA8+oLarQtFAufFvfR0V0aTHicBKFt4nsCh1XmW0H/BRSYmGRwdyPvE9M3D9+MtHvLF1vztBcSBpL1B83DjafvkpZkOintaptBCycpoJSIxtq0hmYhaDtTNoIo3EO7Jtz54nys8LlH4HX9pKTHw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:MW2PR0102MB3417; BCL:0; PCL:0; RULEID:; SRVR:MW2PR0102MB3417; X-Forefront-PRVS: 067553F396 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(39840400004)(39380400002)(346002)(376002)(189003)(199004)(3846002)(54906003)(2906002)(25786009)(575784001)(86362001)(50226002)(6486002)(8676002)(81156014)(97736004)(81166006)(8936002)(48376002)(47776003)(316002)(66066001)(6116002)(5660300001)(50466002)(1076002)(16586007)(106356001)(105586002)(6916009)(68736007)(2361001)(6666003)(386003)(59450400001)(16526019)(2351001)(76176011)(7736002)(2616005)(305945005)(51416003)(956004)(26005)(486006)(52116002)(7696005)(446003)(11346002)(36756003)(478600001)(4326008)(476003)(186003)(53936002)(107886003)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR0102MB3417; H:columbia.corp.xevo.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: xevo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR0102MB3417; 23:JaWWeuNRSnLlcR2uj5hyRxL+7afVuY8dCTATb4z?= =?us-ascii?Q?Iy7FUuI9UKaE/RSSshSz5sdOnQOSxAflqcZjt2hKeenTUcEGvqq4sfU9Qwxi?= =?us-ascii?Q?gSL7sKaUYoLmarja6in8JMexZKqHnrSUb5cA538/9L/FG96+rglmM6CX1vTy?= =?us-ascii?Q?tAXsGrq7oLDN+6hFThQQiZ70YwFi5MTGaBeqEb/KTtVmg4t4/5gO79hQM7B4?= =?us-ascii?Q?+8UVdCJfymWPKAeNP9VPRamX/q9FwLfFg8oqqrQIAmcUNNgLqIFl2Lw5wiLM?= =?us-ascii?Q?ZgH9bjz8UOmlyUmYgn74Yll/zLHhLBP13iT0kkcJhRukVLBP1Xb3xF7NHI08?= =?us-ascii?Q?iuS/UQ0EYQ72NUKENoRMgb7rbLt8QrYbdBX/tegT4uyqPDpXBlQDPLZuxa/B?= =?us-ascii?Q?DPDqQzg2nffOY71rfSTh3kd9rypv1o9u7jx2ViFEeKlgc3kMcD6cTJUNrh7B?= =?us-ascii?Q?OW4fUdDuQPA+SHTZ+ZRXt2Jrr4MQJ4DGwR2lZixhfSG8Pt6KO7mTh88GyakM?= =?us-ascii?Q?5iHQCU4D2lasddOqptZ855U0KxCGNQBmQo/p/R5VLag4zYaw/4dxepTwA4NI?= =?us-ascii?Q?L5kxv1BTeMbiI0UEe6POaEay1LR84V6QCK0InMuRJdxq7vs+/ehyy1gsHUF7?= =?us-ascii?Q?2JYDVuTyTWRgdzcNCWyF6XzEU1Zfitf4RBORmVhOzcFyEyUmJbds/JAfBXMH?= =?us-ascii?Q?rCv7MUwnFIAhouO0Do2ZgilhWlsmTIOEIleVemx2HcmgYcqfgCDX4GCFtss/?= =?us-ascii?Q?r55lulWSkny9oSG1PnL5IaRI6vCiIwGhZzGUA5P+NQRIug6fFxB3pIdg8lMm?= =?us-ascii?Q?a2+uHd0As+QtKLhp3dSURGSHGE3d5SIFhkpr11KOTNqi3GK02zNs1S7ahX4Q?= =?us-ascii?Q?sIXRxVm63TgbnJVWPqExp2YeW8t+jtCvld2nxdiNBEaAeFf/rcUXUeZsw0v5?= =?us-ascii?Q?HXbdNupkLGHr3tQOKHXh8vRqyQ4bz8gb0e1Ay1ygvmVlIkzv5fpcb3eEX4yy?= =?us-ascii?Q?BgD5zE0YShxk4Xxbtdrk1glotQ/9/HcUAspvEhJK618VdNZ6oIgbPRJLkMGU?= =?us-ascii?Q?rT7TeE1MMV7N1AsONXVNZF9eVEHeGaXgmTG1Dr3TJaAkprxq4LxpkEomrRhY?= =?us-ascii?Q?oCD37DnSOE4gMSHrBONzd7EpbmsC0PGsuwpdveNIEYg1kBQcfJtG9I5Ydlem?= =?us-ascii?Q?W3384HcUoRiMKMeckUl867/MVTJNpjWmWc4qhVViTiRTnX3rSnFmVSNMgi7/?= =?us-ascii?Q?6hwDWplwNwLMl6/7T7gCuE536g2zJqjBZs3PQNevDNbpnb1BJDfTzJ6viP0E?= =?us-ascii?Q?uGkSN5jJz5UOR0pd2bR/NzD/25i8dnVpeikh9bTIhtGGC?= X-Microsoft-Antispam-Message-Info: 7iNpNBh02Qbhlbq4jhFgJu+SbSYDqyTt82+oIyGyRr7qbHaadcvUHFZG76CopUWdolIgbGZnl5BFxF48LkIvoHAMgObkc3Hq5vRDDKGfxi2VDFJbCsI4D4/X/tPIw+cCBi1nzn5zdxHRvdQjIDRZiIERfq17bJ3mHM5jZzClHr5XxD217XgVc9kUU99O+kuD X-Microsoft-Exchange-Diagnostics: 1; MW2PR0102MB3417; 6:jbUXAhKdHNWt2FpG6lNlewL7McBt2C0UmmRmP0j4wI5J04qwURfMwpoW03hmLDx1V4ftda2Pr2kDOL5TZi7AKpKD3QJNUvyaA3Dm3WINGYadSskUpvpayxweqCXs0EbEXun79rvWQiKMAFLcJOVziJuU9N2z19NhwFed3WX/TVQA8iVt5j8/jqAu5YB3YAhXq337B7jnVEQxi//Kq9B0HxOkRK+sy5pweemDRhtBhlUsAXfl3tNKYAdN+zJlkelyVKdCPC3ioIJhQ2PeGGfpiSGzOC/IwWsA4/xn5kit+AyTlV8K9wpz90iz50U/JybVPRPe84NC6w+MeBcfaJW67rd5wWIcUdavgRQEuLUpZJYWl7Paj12EQFvSwiXAz8jr3qcHWCLezYqSxyQsB+rB1eM1jkoxW4NsbOhsel9XBNLFEwT+qI9TCdVRH/Y98avlE2K3Tm5Lf5eiw+R5T3jE7g==; 5:oE0OPseNlfzN3H10b/ATAtUY1uTcelCjLHZcIBweWsDCT8za3hG5vkYahvf4vnW7EOxxC7vUi5Kw5rfQS3X4b7H8bnHUw6waEMgdtxDxe9fufYuhKJPSvIPQrcQjtkrAlIt8QJhS+DkWAXXuwafwRYu5/GxWqA3KquKaj/cOCJI=; 24:ud3n6XyRApldz4teRv9K5GRhdjrTEFVxda6nPqMZffx+3aTzwZfpzNCwq+wwbWLaMscI60ZA5VFkNwFSntVtNpoPHbzM/ND0tquMWwW4B1I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR0102MB3417; 7:IkytAgK+QosfP2Wn4gbLoLagDagfsW1lQymot22/HgkN30K9YuC+MDMP8Imbme24dQH73XuvDP7EU2YXAySZO/JJml+VP7kR1vqeyp4feBo6mnMrs1ejDvK6QqxNkKFyb8rPdXUG0U3wW7IA/onRgKU7z9eGUStFZkDpu632Nr1I+Fv9w/peyT644klZiQ3WgoGmwC/9MQRNkvaw/7BH4ZEGYvHk7jyDWkbFxjLRLcQePEHAr4ImtAy67kC2GDQG X-MS-Office365-Filtering-Correlation-Id: 8922b691-2aee-4c31-6297-08d5bc4c3aab X-OriginatorOrg: xevo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2018 23:16:33.0327 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8922b691-2aee-4c31-6297-08d5bc4c3aab X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e0a7ca1f-2458-4cd6-a7c7-d733c07495ab X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR0102MB3417 Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Sometimes it's useful to stream samples forever, such as when stress-testing a driver overnight to check for memory leaks or other issues. When the program receives a signal, it will gracefully cleanup, so it is still safe to terminate at any time. Add support for specifying a negative -c option, meaning that we should loop forever. To do so, we need to use a long long (instead of just long) for num_loops so that current code specifying num_loops greater than UNSIGNED_LONG_MAX doesn't break. Signed-off-by: Martin Kelly --- Another option for implementing this would be to implicitly assume looping forever if -c is not specified (instead of the current default of 2). I did not do this out of fear of breaking existing users but would be OK with doing so, as I like it as a default. If you'd like to go this route, let me know. tools/iio/iio_generic_buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/iio/iio_generic_buffer.c b/tools/iio/iio_generic_buffer.c index aa765c11992b..116c65cd0d14 100644 --- a/tools/iio/iio_generic_buffer.c +++ b/tools/iio/iio_generic_buffer.c @@ -248,7 +248,7 @@ void print_usage(void) "Capture, convert and output data from IIO device buffer\n" " -a Auto-activate all available channels\n" " -A Force-activate ALL channels\n" - " -c Do n conversions\n" + " -c Do n conversions, or loop forever if n < 0\n" " -e Disable wait for event (new data)\n" " -g Use trigger-less mode\n" " -l Set buffer length to n samples\n" @@ -330,7 +330,7 @@ static const struct option longopts[] = { int main(int argc, char **argv) { - unsigned long num_loops = 2; + unsigned long long num_loops = 2; unsigned long timedelay = 1000000; unsigned long buf_len = 128; @@ -369,7 +369,7 @@ int main(int argc, char **argv) break; case 'c': errno = 0; - num_loops = strtoul(optarg, &dummy, 10); + num_loops = strtoll(optarg, &dummy, 10); if (errno) { ret = -errno; goto error; @@ -637,7 +637,7 @@ int main(int argc, char **argv) goto error; } - for (j = 0; j < num_loops; j++) { + for (j = 0; j < num_loops || num_loops < 0; j++) { if (!noevents) { struct pollfd pfd = { .fd = fp,