From patchwork Tue Jul 26 12:46:53 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 3145 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id C129724142 for ; Tue, 26 Jul 2011 12:53:04 +0000 (UTC) Received: from mail-qy0-f180.google.com (mail-qy0-f180.google.com [209.85.216.180]) by fiordland.canonical.com (Postfix) with ESMTP id 8772EA185D4 for ; Tue, 26 Jul 2011 12:53:04 +0000 (UTC) Received: by qyk30 with SMTP id 30so254547qyk.11 for ; Tue, 26 Jul 2011 05:53:04 -0700 (PDT) Received: by 10.229.25.212 with SMTP id a20mr557780qcc.148.1311684783992; Tue, 26 Jul 2011 05:53:03 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.229.217.78 with SMTP id hl14cs111135qcb; Tue, 26 Jul 2011 05:53:03 -0700 (PDT) Received: by 10.227.206.82 with SMTP id ft18mr4861618wbb.64.1311684423830; Tue, 26 Jul 2011 05:47:03 -0700 (PDT) Received: from mtagate1.uk.ibm.com (mtagate1.uk.ibm.com [194.196.100.161]) by mx.google.com with ESMTPS id ev16si824625wbb.92.2011.07.26.05.47.01 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jul 2011 05:47:02 -0700 (PDT) Received-SPF: neutral (google.com: 194.196.100.161 is neither permitted nor denied by best guess record for domain of daniel.lezcano@linaro.org) client-ip=194.196.100.161; Authentication-Results: mx.google.com; spf=neutral (google.com: 194.196.100.161 is neither permitted nor denied by best guess record for domain of daniel.lezcano@linaro.org) smtp.mail=daniel.lezcano@linaro.org Received: from d06nrmr1707.portsmouth.uk.ibm.com (d06nrmr1707.portsmouth.uk.ibm.com [9.149.39.225]) by mtagate1.uk.ibm.com (8.13.1/8.13.1) with ESMTP id p6QCl1BS032282; Tue, 26 Jul 2011 12:47:01 GMT Received: from d06av05.portsmouth.uk.ibm.com (d06av05.portsmouth.uk.ibm.com [9.149.37.229]) by d06nrmr1707.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6QCl10S1954036; Tue, 26 Jul 2011 13:47:01 +0100 Received: from d06av05.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av05.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6QCl0KK031804; Tue, 26 Jul 2011 06:47:00 -0600 Received: from smtp.lab.toulouse-stg.fr.ibm.com (srv01.lab.toulouse-stg.fr.ibm.com [9.101.4.1]) by d06av05.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6QCl0Ms031791; Tue, 26 Jul 2011 06:47:00 -0600 Received: from mai.lab.toulouse-stg.fr.ibm.com (dhcp7.lab.toulouse-stg.fr.ibm.com [9.101.4.207]) by smtp.lab.toulouse-stg.fr.ibm.com (Postfix) with ESMTP id 6C1F8210FBC; Tue, 26 Jul 2011 14:47:00 +0200 (CEST) From: Daniel Lezcano To: linaro-dev@lists.linaro.org Cc: amit.kucheria@linaro.org Subject: [pm-qa 03/14] add a nanosleep utility Date: Tue, 26 Jul 2011 14:46:53 +0200 Message-Id: <1311684424-8057-4-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1311684424-8057-1-git-send-email-daniel.lezcano@linaro.org> References: <1311684424-8057-1-git-send-email-daniel.lezcano@linaro.org> This utility gives a finer grain to wait for smaller amount of time. This is useful for waiting the delay between each frequency change. Signed-off-by: Daniel Lezcano --- utils/nanosleep.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-) create mode 100644 utils/nanosleep.c diff --git a/utils/nanosleep.c b/utils/nanosleep.c new file mode 100644 index 0000000..f366e53 --- /dev/null +++ b/utils/nanosleep.c @@ -0,0 +1,55 @@ +/******************************************************************************* + * PM-QA validation test suite for the power management on ARM + * + * Copyright (C) 2011, Linaro Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * Daniel Lezcano (IBM Corporation) + * - initial API and implementation + * + *******************************************************************************/ +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + struct timespec req = { 0 }, rem = { 0 }; + + if (argc != 2) { + fprintf(stderr, "%s \n", argv[0]); + return 1; + } + + req.tv_nsec = atoi(argv[1]); + + for (;;) { + if (!nanosleep(&req, &rem)) + break; + + if (errno == EINTR) { + req = rem; + continue; + } + + perror("failed to nanosleep"); + return 1; + } + + return 0; +}