1da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/******************************************************************************/
2da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/*                                                                            */
3da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* Copyright (c) 2009 FUJITSU LIMITED                                         */
4da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/*                                                                            */
5da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* This program is free software;  you can redistribute it and/or modify      */
6da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* it under the terms of the GNU General Public License as published by       */
7da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* the Free Software Foundation; either version 2 of the License, or          */
8da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* (at your option) any later version.                                        */
9da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/*                                                                            */
10da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* This program is distributed in the hope that it will be useful,            */
11da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */
12da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */
13da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* the GNU General Public License for more details.                           */
14da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/*                                                                            */
15da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* You should have received a copy of the GNU General Public License          */
16da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* along with this program;  if not, write to the Free Software               */
174548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    */
18da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/*                                                                            */
19da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* Author: Miao Xie <miaox@cn.fujitsu.com>                                    */
20da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/* Restructure for LTP: Shi Weihua <shiwh@cn.fujitsu.com>                     */
21da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/*                                                                            */
22da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak/******************************************************************************/
23da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
24da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#include <stdio.h>
25da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#include <math.h>
26da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#include <err.h>
27da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#include <errno.h>
28da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#include <signal.h>
29da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
30da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#define __USE_GNU
31da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#include <sched.h>
32da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
33da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak#define UNUSED __attribute__ ((unused))
34da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
35da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modakunsigned long count;
36da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modakvolatile int start = 0;
37da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modakvolatile double f = 2744545.34456455;
38da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
39da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modakvoid sighandler(UNUSED int signo)
40da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak{
41da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	start = !start;
42da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak}
43da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
44da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modakint main(void)
45da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak{
46da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	sigset_t sigset;
47da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	struct sigaction sa;
48da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
49da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	sa.sa_handler = sighandler;
50da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	if (sigemptyset(&sa.sa_mask) < 0)
51da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak		err(1, "sigemptyset()");
52da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
53da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	sa.sa_flags = 0;
54da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	if (sigaction(SIGUSR1, &sa, NULL) < 0)
55da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak		err(1, "sigaction()");
56da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
57da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	if (sigemptyset(&sigset) < 0)
58da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak		err(1, "sigemptyset()");
59da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
60da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	sigsuspend(&sigset);
61da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	if (errno != EINTR)
62da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak		err(1, "sigsuspend()");
63da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
64da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	while (start) {
65da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak		f = sqrt(f * f);
66da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak	}
67da35073c509e4ad592b41372cba0c56d532cb91dsubrata_modak
686c4d1c6d4b3c116ff88f9209b4860940fb8659a8Garrett Cooper	return 0;
69ec6edca7aa42b6affd989ef91b5897f96795e40fChris Dearman}
70