[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MiNT] .xif module load problem



Hi!

In the module.c there is the section you can read at the bottom of this mail. I tried the same approach for the inet4.xdd XIF loader function and it solved my problem with loading the .xif drivers in ARAnyM.

Does anyone have idea why it doesn't work for the module init() function and all the registers need to be saved?

regards

STanda


#if 0
/*
 * this don't work?!
 * why need the registers to be preserved?
 * all the modules are gcc compiled too ...
 */
static void *
module_init(void *initfunc, struct kerinfo *k)
{
	void * _cdecl (*init)(struct kerinfo *);

	init = initfunc;
	return (*init)(k);
}
#else
static void *	
module_init(void *initfunc, struct kerinfo *k)
{
	register void *ret __asm__("d0");	

	__asm__ volatile	
	(	
		"moveml	d3-d7/a3-a6,sp@-;"	
		"movl	%2,sp@-;"	
		"movl	%1,a0;"	
		"jsr	a0@;"	
		"addqw	#4,sp;"	
		"moveml	sp@+,d3-d7/a3-a6;"	
		: "=r"(ret)				/* outputs */	
		: "g"(initfunc), "r"(k)			/* inputs  */	
		: "d0", "d1", "d2", "a0", "a1", "a2",	/* clobbered regs */	
		"memory"	
	);	

	return ret;	
}
#endif