#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<unistd.h>

int stck(unsigned long *addr)
{
	int cc;
	asm volatile (	"stck	%0\n"
			"ipm	%1\n"
			"srl	%1,28\n"
		      :"=Q" (*addr), "=d"(cc)::"memory", "cc");
	return cc;
}

unsigned long clockticks_in_msec(unsigned long b, unsigned long a)
{
	return (b - a) / 4096000UL;
}

int main()
{

	int cc;
	unsigned long start, end, diff;

	cc = stck(&start);
	if (cc)
		printf("cc != 0!\n");
	sleep(1);
	cc = stck(&end);
	if (cc)
		printf("cc != 0!\n");
	diff = clockticks_in_msec(end, start);
	if (diff >= 1000 && diff < 1500)
		printf("OK.....Testcase passed\n");
	else
		printf("FAILED.....Testcase failed\n");
	return 0;

}
