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