timer_callback_request_c (ul_threaded)

	status.i4.v = timer_callback_request_c(timer_type.i4.v,
					       callback_func.f.v, func_data.g.v,
					       handle.i1a.r, options.u4.v)

	This routine will create a timer callback.  Presently, the timer
	can be set to expire on a delay of a number of milliseconds or
	at an absolute time.

	timer_type	type of timer
			(TIMER_TYPE_DELAY -> timer will expire after a requested
					     number of milliseconds,
			 TIMER_TYPE_ABSOLUTE -> timer will expire at an
						absolute time)
			(constants are in 'ul_threaded:threadedlib')
	timer_value	requested timer value
			(either a number of milliseconds or an absolute time
			 depending on "timer_type")
	callback_func	function to be called when the timer has expired
			(called as follows:
			 callback_func(handle.i1a.r, clinks.u4.v,
				       nanoseconds.u4.v, func_data.g.v))
	func_data	pointer to user data to be passed to the callback
			function (A value of NULL can be passed for this
			argument if it is not needed.)
	handle		null terminated ASCII handle to be passed as an
			argument to this callback
			(Note: If this argument is not needed, a value of
			 NULL can be passed for it.)
	options		timer options (not used)

	This function returns ACNET status values as follows:

	OK			success
	CLIB_INVARG		a value of NULL was passed for the
				callback function argument
	CLIB_MEMFAIL		failed in allocating dynamic memory
	CLIB_BUGCHK		error creating timer thread

	This function requires the following include files:

	ul_threaded_h:threadedlib_h, acnet_errors_h

	Related functions:

	periodic_callback_init_c, periodic_callback_term_c

	C/C++ usage:

	char	*handle = (char *) NULL;
	int	status;
	int	timer_type = TIMER_TYPE_DELAY;
	int	timer_value = DELAY_VALUE;
	unsigned int	options = 0;
	void	*func_data = (void *) NULL;
	void	callback_func(char const *handle, unsigned int clinks,
			      unsigned int nanoseconds, void *func_data);

	status = timer_callback_request_c(timer_type,timer_value,callback_func,