From patchwork Sun Jun 10 03:02:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 138166 Delivered-To: patch@linaro.org Received: by 2002:a2e:970d:0:0:0:0:0 with SMTP id r13-v6csp2610612lji; Sat, 9 Jun 2018 21:08:40 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJXsAl3STZjTPSAE2dU45+PAv/63sLrswIX7u3KeR7wskUevPqvUrVQfFXgU/rUPSdtSs8n X-Received: by 2002:ac8:18d7:: with SMTP id o23-v6mr11830321qtk.28.1528603720018; Sat, 09 Jun 2018 21:08:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528603720; cv=none; d=google.com; s=arc-20160816; b=WRKdd54G9eSpaPo0h8f3kP+fCVHdwgxgBdQ74T6/3wo9e+ekjJi6+zDOXuzAPZzW51 ZuAxEWewWaqtmHgE5jYA7xg9y7RQNbPBXFYnZawiVyuce2qyJlW6LjItDmlWnCEK0Gt1 67f7rnTuUW6SUw24HDIE7AB/VdOy0KeNnDDTIP4uHTspkVmH3eFRkUdxFQUGqoX8a3dY hNN9YKlUPgpcThCM9slgjIf1nOkDnWCSBy8we/5Ko3pn4Ha8QueHq5qsZMeYLxH9QxA2 2qCXss5h7062pg9bIPGnTFfCkQ5AOTHuFuMWC8E4LmW6sfSTqJtTmsNDBaiFGRPeNLjv ntpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from:dkim-signature:arc-authentication-results; bh=3LyIbHTjQGN5bnL/kExH2mN76H+cGaaU2z9AwSujrBM=; b=acACs1kKbXohibbAxA1yZjAlamryIW3eK4csk4DBkl6LGh344N2FhsGr1Fy19lv+PS FDCf42tYd2o8lVbeSk0UaTaB9YDt6aewgcuumVGVW+ce/rWy9VTtM/7lOdiG3qJb+yBP 5fKdLEW7IhKrFrKFd/np7U3Wxrj9u8RRt+TxydvvTzuX8x9Z5+MhjuipPCP/QZbvdK5u hywYOPPvSyJQ5IKcp3foscfvtl2J/GNXGXXDuHq52TCOdBl9JE4+5Bsa0q2bolDTXTLR 94w60OVnD7BLq816Gz0EREpOuCu3t4tiHoRTnBacoaJR/Xe49H8XdKChhkhPgGVcqWpM 2/2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=dtUKLZGV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id 8-v6si1750675qvs.51.2018.06.09.21.08.39 for (version=TLS1 cipher=AES128-SHA bits=128/128); Sat, 09 Jun 2018 21:08:40 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=dtUKLZGV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:42540 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRreh-0003Bf-D7 for patch@linaro.org; Sun, 10 Jun 2018 00:08:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRqfd-0004KM-Kl for qemu-devel@nongnu.org; Sat, 09 Jun 2018 23:05:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRqfb-0004c2-L7 for qemu-devel@nongnu.org; Sat, 09 Jun 2018 23:05:33 -0400 Received: from mail-pl0-x241.google.com ([2607:f8b0:400e:c01::241]:40343) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fRqfb-0004b4-ET for qemu-devel@nongnu.org; Sat, 09 Jun 2018 23:05:31 -0400 Received: by mail-pl0-x241.google.com with SMTP id t12-v6so10377377plo.7 for ; Sat, 09 Jun 2018 20:05:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3LyIbHTjQGN5bnL/kExH2mN76H+cGaaU2z9AwSujrBM=; b=dtUKLZGV9VkkE4I1XDfhIw0iLUwfF2M465W4hWFN7v1UoVfX1o5yX4oeJ/DqXV1KuS qtcD+v6DMKnV8/9RHqpzy8/s6UFjVXWkMJrQVD3cWlC5tw8IocKY/og91QZrMdOzqLYq AGTCpmt7DBLxt1jUC4DdvvF1SJjDjw3ZGrvAc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3LyIbHTjQGN5bnL/kExH2mN76H+cGaaU2z9AwSujrBM=; b=JuerZ/bZN/dWomZg540x2O83wCQpASdCkbQsYMoLveIqY/mLsgpflkkFY1kyiNEcyW q9nIm/hX4tc8qV8Gt9ZH2kIyvRq3T3UD6WQFCkg/FOBHU3okuZXTMcnxVOoSjr8PmolP 3sd7oHp160VE2mzwp16XtXjPPOhSW6qokI2hcn61xT3GeEZspFWPYQHgbakhJ3Y1LztC sBQ3y6N+B4YaB9Zy0mKFkNTLrWKBqVqbD4LyEfvTh3gOfKWGPNI9Ic9Q0BsfyXicGhe7 h49/SAeP1VjLctBxQFpjHnPTUdbC7ymMZeAQQp247I3yywp5LXGZKseXcGO0Ek3IyiMJ NalQ== X-Gm-Message-State: APt69E2cXruA0Mvgv7SmV4CqlRjmXVcGpq1Y+4q79syO4qZaZDuGNVu/ PfsLRw3dcllwdKkdTwF3kI0inJnrq8w= X-Received: by 2002:a17:902:aa01:: with SMTP id be1-v6mr12814921plb.296.1528599930321; Sat, 09 Jun 2018 20:05:30 -0700 (PDT) Received: from cloudburst.twiddle.net (rrcs-173-198-77-219.west.biz.rr.com. [173.198.77.219]) by smtp.gmail.com with ESMTPSA id y17-v6sm31712718pfe.33.2018.06.09.20.05.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 09 Jun 2018 20:05:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sat, 9 Jun 2018 17:02:01 -1000 Message-Id: <20180610030220.3777-90-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180610030220.3777-1-richard.henderson@linaro.org> References: <20180610030220.3777-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c01::241 Subject: [Qemu-devel] [PATCH v2 089/108] linux-user: Split out clock syscalls X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This includes clock_getres, clock_gettime, clock_nanosleep, clock_settime. All targets define all of these; remove the ifdefs. Signed-off-by: Richard Henderson --- linux-user/syscall.c | 115 ++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 55 deletions(-) -- 2.17.1 diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 285612dfe5..6f19f75c67 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -7855,6 +7855,62 @@ IMPL(clock_adjtime) } #endif +IMPL(clock_getres) +{ + struct timespec ts; + abi_long ret; + + ret = get_errno(clock_getres(arg1, &ts)); + if (!is_error(ret)) { + ret = host_to_target_timespec(arg2, &ts); + } + return ret; +} + +IMPL(clock_gettime) +{ + struct timespec ts; + abi_long ret; + + ret = get_errno(clock_gettime(arg1, &ts)); + if (!is_error(ret)) { + ret = host_to_target_timespec(arg2, &ts); + } + return ret; +} + +IMPL(clock_nanosleep) +{ + struct timespec ts; + abi_long ret; + + target_to_host_timespec(&ts, arg3); + ret = get_errno(safe_clock_nanosleep(arg1, arg2, &ts, arg4 ? &ts : NULL)); + if (arg4) { + host_to_target_timespec(arg4, &ts); + } +#if defined(TARGET_PPC) + /* clock_nanosleep is odd in that it returns positive errno values. + * On PPC, CR0 bit 3 should be set in such a situation. */ + if (ret && ret != -TARGET_ERESTARTSYS) { + ((CPUPPCState *)cpu_env)->crf[0] |= 1; + } +#endif + return ret; +} + +IMPL(clock_settime) +{ + struct timespec ts; + abi_long ret; + + ret = target_to_host_timespec(&ts, arg2); + if (!is_error(ret)) { + ret = get_errno(clock_settime(arg1, &ts)); + } + return ret; +} + IMPL(clone) { /* Linux manages to have three different orderings for its @@ -12504,61 +12560,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned num, abi_long arg1, void *p; switch(num) { -#ifdef TARGET_NR_clock_settime - case TARGET_NR_clock_settime: - { - struct timespec ts; - - ret = target_to_host_timespec(&ts, arg2); - if (!is_error(ret)) { - ret = get_errno(clock_settime(arg1, &ts)); - } - return ret; - } -#endif -#ifdef TARGET_NR_clock_gettime - case TARGET_NR_clock_gettime: - { - struct timespec ts; - ret = get_errno(clock_gettime(arg1, &ts)); - if (!is_error(ret)) { - ret = host_to_target_timespec(arg2, &ts); - } - return ret; - } -#endif -#ifdef TARGET_NR_clock_getres - case TARGET_NR_clock_getres: - { - struct timespec ts; - ret = get_errno(clock_getres(arg1, &ts)); - if (!is_error(ret)) { - host_to_target_timespec(arg2, &ts); - } - return ret; - } -#endif -#ifdef TARGET_NR_clock_nanosleep - case TARGET_NR_clock_nanosleep: - { - struct timespec ts; - target_to_host_timespec(&ts, arg3); - ret = get_errno(safe_clock_nanosleep(arg1, arg2, - &ts, arg4 ? &ts : NULL)); - if (arg4) - host_to_target_timespec(arg4, &ts); - -#if defined(TARGET_PPC) - /* clock_nanosleep is odd in that it returns positive errno values. - * On PPC, CR0 bit 3 should be set in such a situation. */ - if (ret && ret != -TARGET_ERESTARTSYS) { - ((CPUPPCState *)cpu_env)->crf[0] |= 1; - } -#endif - return ret; - } -#endif - #if defined(TARGET_NR_set_tid_address) && defined(__NR_set_tid_address) case TARGET_NR_set_tid_address: return get_errno(set_tid_address((int *)g2h(arg1))); @@ -13292,6 +13293,10 @@ static impl_fn *syscall_table(unsigned num) #ifdef CONFIG_CLOCK_ADJTIME SYSCALL(clock_adjtime); #endif + SYSCALL(clock_getres); + SYSCALL(clock_gettime); + SYSCALL(clock_nanosleep); + SYSCALL(clock_settime); SYSCALL(clone); SYSCALL(close); SYSCALL(chdir);