-/*
-** test_queue_signal.c
-**
-** Made by (Miguel marciano)
-** Login <miguel@namir.ctr.unican.es>
-**
-** Started on Thu Nov 8 16:22:18 2007 Miguel marciano
-** Last update Sun May 12 01:17:25 2002 Speed Blue
-*/
+// -----------------------------------------------------------------------
+// Copyright (C) 2006 - 2008 FRESCOR consortium partners:
+//
+// Universidad de Cantabria, SPAIN
+// University of York, UK
+// Scuola Superiore Sant'Anna, ITALY
+// Kaiserslautern University, GERMANY
+// Univ. Politécnica Valencia, SPAIN
+// Czech Technical University in Prague, CZECH REPUBLIC
+// ENEA SWEDEN
+// Thales Communication S.A. FRANCE
+// Visual Tools S.A. SPAIN
+// Rapita Systems Ltd UK
+// Evidence ITALY
+//
+// See http://www.frescor.org for a link to partners' websites
+//
+// FRESCOR project (FP6/2005/IST/5-034026) is funded
+// in part by the European Union Sixth Framework Programme
+// The European Union is not liable of any use that may be
+// made of this code.
+//
+//
+// based on previous work (FSF) done in the FIRST project
+//
+// Copyright (C) 2005 Mälardalen University, SWEDEN
+// Scuola Superiore S.Anna, ITALY
+// Universidad de Cantabria, SPAIN
+// University of York, UK
+//
+// FSF API web pages: http://marte.unican.es/fsf/docs
+// http://shark.sssup.it/contrib/first/docs/
+//
+// This file is part of FOSA (Frsh Operating System Adaption)
+//
+// FOSA is free software; you can redistribute it and/or modify it
+// under terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option) any
+// later version. FOSA 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 FOSA; see file
+// COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,
+// Cambridge, MA 02139, USA.
+//
+// As a special exception, including FOSA header files in a file,
+// instantiating FOSA generics or templates, or linking other files
+// with FOSA objects to produce an executable application, does not
+// by itself cause the resulting executable application to be covered
+// by the GNU General Public License. This exception does not
+// however invalidate any other reasons why the executable file might be
+// covered by the GNU Public License.
+// -----------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
-#include "frsh.h"
#include "fosa.h"
-#include "eat.h"
-#include "frsh_debug.h"
-#include "frsh_error.h"
+#define TEST_SIGNAL (SIGRTMIN + 6)
int main()
{
int terror = -1;
- struct timespec past_time = {-1, 1};
- struct timespec current_time = {-1, 1};
+ fosa_abs_time_t past_time;
+ fosa_abs_time_t current_time;
fosa_timer_id_t timer;
- frsh_signal_t signal_set[1];
- frsh_signal_info_t signal_info;
- frsh_signal_t signal_received;
+ fosa_signal_t signal_set[1];
+ fosa_signal_info_t signal_info;
+ fosa_signal_t signal_received;
int my_test_value = 42;
- struct timespec eat_time = {2, 0};
+ fosa_rel_time_t eat_time = fosa_msec_to_rel_time(2000);
- memset(¤t_time, 0, sizeof(current_time) );
- memset(&signal_info, 0, sizeof(signal_info) );
- memset(&timer, 0, sizeof(timer) );
- memset(&signal_set, 0, sizeof(signal_set) );
- memset(&signal_received, 0, sizeof(signal_received) );
-
/* We block the signals that we are going to process */
/*****************************************************/
- signal_set[0] = FRSH_SCHEDULER_SIGNAL;
+ signal_set[0] = TEST_SIGNAL;
terror = fosa_set_accepted_signals(signal_set, 1);
if (terror != 0) exit(1);
-
+
/* We create a timer based on the FOSA_CLOCK_REALTIME */
/******************************************************/
signal_info.sival_int = my_test_value;
- terror = fosa_timer_create(FOSA_CLOCK_REALTIME, FRSH_SCHEDULER_SIGNAL, signal_info, &timer);
+ terror = fosa_timer_create(FOSA_CLOCK_REALTIME, TEST_SIGNAL, signal_info, &timer);
if (terror != 0) exit(1);
/* I get the time BEFORE doing the eat */
/***************************************/
terror = fosa_clock_get_time(FOSA_CLOCK_REALTIME, &past_time);
if (terror != 0) exit(1);
- printf("Current time: %d sec, %d nsec\n", past_time.tv_sec, past_time.tv_nsec);
+ printf("Current time: %ld msec\n", fosa_abs_time_to_msec(past_time) );
/* Now I do some work for some secs */
/************************************/
- frsh_eat(&eat_time);
+ fosa_eat(&eat_time);
/* I read the time again */
/*************************/
terror = fosa_clock_get_time(FOSA_CLOCK_REALTIME, ¤t_time);
if (terror != 0) exit(1);
- printf("Current time: %d sec, %d nsec\n", current_time.tv_sec, current_time.tv_nsec);
-
+ printf("Current time: %ld msec\n", fosa_abs_time_to_msec(current_time) );
+
/* I arm the timer to the past */
/* Since we have blocked this signal, the signal should be stored */
/******************************************************************/
printf("Arming the timer\n");
- terror = fosa_timer_arm(timer, true, &past_time);
+ terror = fosa_abs_timer_arm(timer, &past_time);
/* Now I do the sigwait */