Exemple #1
0
int fex_set_log(FILE *fp)
{
	mutex_lock(&log_lock);
	log_fp = fp;
	mutex_unlock(&log_lock);
	__fex_update_te();
	return 1;
}
Exemple #2
0
void fex_merge_flags(const fenv_t *p)
{
	unsigned long	fsr;

	__fenv_getfsr(&fsr);
	__fenv_set_ex(fsr, __fenv_get_ex(fsr) | __fenv_get_ex(p->__fsr));
	__fenv_setfsr(&fsr);
	if (fex_get_log())
		__fex_update_te();
}
Exemple #3
0
void fex_setexcepthandler(const fex_handler_t *buf, int e)
{
	struct fex_handler_data	*thr_handlers;
	int						i;

	thr_handlers = __fex_get_thr_handlers();
	for (i = 0; i < FEX_NUM_EXC; i++)
		if (e & (1 << i))
			thr_handlers[i] = (*buf)[i];
	__fex_update_te();
}
Exemple #4
0
int fex_set_handling(int e, int mode, void (*handler)())
{
	struct fex_handler_data	*thr_handlers;
	int						i;

	if (e & ~((1 << FEX_NUM_EXC) - 1))
		return 0;
	thr_handlers = __fex_get_thr_handlers();
	for (i = 0; i < FEX_NUM_EXC; i++) {
		if (e & (1 << i)) {
			thr_handlers[i].__mode = mode;
			thr_handlers[i].__handler = handler;
		}
	}
	__fex_update_te();
	return 1;
}