#pragma once

namespace thrdlib {
	typedef void * thread_t;

	//--------------------
	// Basic thread support
	extern thread_t (*create)( void (*main)( thread_t ) );
	extern void (*join)( thread_t handle );
	extern void (*park)( thread_t handle );
	extern void (*unpark)( thread_t handle );
	extern void (*yield)( void ) ;

	//--------------------
	// Basic kernel features
	extern void init( const char * name, int procs );
	extern void clean( void );
};