/*
 * service_activation_types.h
 *
 *  Created on: 27 Sep 2015
 *      Author: Niall.Donovan
 */

#ifndef SERVICE_ACTIVATION_TYPES_H_
#define SERVICE_ACTIVATION_TYPES_H_

#include <api_oam_sdk/service_activation/inc/rfc2544.h>
#include <api_oam_sdk/service_activation/inc/y1564.h>
#include "egl_log.h"
#include "egl_types.h"

void setSaLogLevel(log_level_t logLevel);
void saInit(void);

int rfc2544UpdateConfig(rfc2544Cfg_t *rfc2544Cfg);
int rfc2544RunTests(void);

int y1564UpdateConfig(y1564Cfg_t *y1564Cfg);
int y1564RunTests(void);
int saStopTest(void);

// These read locks are used selectively to protect corruption of the results read back
// from test while the test is still running. The writing of some large block or results
// are non-atomic so can result in corruption of numeric values (i.e. d-words and floats)
void LOCK_SA_READ(uint32_t timeout);
void UNLOCK_SA_READ(void);

#endif /* SERVICE_ACTIVATION_TYPES_H_ */
