https://bitbucket.org/hudson/magic-lantern
Raw File
Tip revision: 30d5b8becec8ff31ee76db5b25ddc81957653816 authored by hudson@kremvax on 18 April 2010, 17:20:33 UTC
More explicit logging of unknown events
Tip revision: 30d5b8b
property.c
/** \file
 * Property handler installation
 *
 * These handlers are registered to allow Magic Lantern to interact with
 * the Canon "properties" that are used to exchange globals.
 */

#include "dryos.h"
#include "property.h"


// This must be two instructions long!
static void
prop_token_handler_generic(
	void * token
)
{
	asm( "str r0, [pc, #-12]" );
}


static void
prop_init( void )
{
	extern struct prop_handler _prop_handlers_start[];
	extern struct prop_handler _prop_handlers_end[];
	struct prop_handler * handler = _prop_handlers_start;

	for( ; handler < _prop_handlers_end ; handler++ )
	{
		// Copy the generic token handler into the structure
		memcpy(
			handler->token_handler,
			prop_token_handler_generic,
			8
		);

		prop_register_slave(
			&handler->property,
			1,
			handler->handler,
			&handler->token,
			&handler->token_handler
		);
	}
}


INIT_FUNC( __FILE__, prop_init );
back to top