/*
 * tz_arcounter_msg.h
 */

#ifndef TZ_ARCOUNTER_MSG_H_
#define TZ_ARCOUNTER_MSG_H_

#include "tz_msg.h"		/* providing tz_msg_header_t definition */

//#include "tz_getfn_msg.h"
#include "tz_init_msg.h"
#include "tz_arcounter_finalize_msg.h"
#include "tz_arcounter_storertctime_msg.h"
#include "tz_arcounter_updatetick_msg.h"
#include "tz_arcounter_settimer_msg.h"
#include "tz_arcounter_changetime_msg.h"
#include "tz_arcounter_getreferencetime_msg.h"
#include "tz_arcounter_gettimer_msg.h"
#include "tz_arcounter_getremainingtime_msg.h"
#include "tz_arcounter_canceltimer_msg.h"

typedef struct tz_arcounter_message {
	tz_msg_header_t header;
	union arcounter_message_u {
		tz_init_payload_t init;
		tz_arcounter_finalize_payload_t finalize;
		tz_arcounter_storertctime_payload_t storertctime;
		tz_arcounter_updatetick_payload_t updatetick;
		tz_arcounter_settimer_payload_t settimer;
		tz_arcounter_changetime_payload_t changetime;
		tz_arcounter_getreferencetime_payload_t getreftime;
		tz_arcounter_gettimer_payload_t gettimer;
		tz_arcounter_getremainingtime_payload_t getremainingtime;
		tz_arcounter_canceltimer_payload_t canceltimer;
	} __attribute__ ((packed)) payload;
} __attribute__ ((packed)) tz_arcounter_message_t;

typedef tz_arcounter_message_t tciMessage_t;

#endif /* TZ_ARCOUNTER_MSG_H_ */
