/*
 * Copyright 2015, Michael Neuling, IBM Corp.
 * Licensed under GPLv2.
 *
 * Edited: Rashmica Gupta, Nov 2015
 *
 * This test does a fork syscall inside a transaction. Basic sniff test
 * to see if we can enter the kernel during a transaction.
 */

#include <errno.h>
#include <inttypes.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include "utils.h"
#include "tm.h"

int test_fork(void)
{
	SKIP_IF(!have_htm());

	asm __volatile__(
		"tbegin.;"
		"blt    1f; "
		"li     0, 2;"  /* fork syscall */
		"sc  ;"
		"tend.;"
		"1: ;"
		: : : "memory", "r0");
	/* If we reach here, we've passed.  Otherwise we've probably crashed
	 * the kernel */

	return 0;
}

int main(int argc, char *argv[])
{
	return test_harness(test_fork, "tm_fork");
}
