/************************************************************************* * * * © Copyright 2004 Hewlett-Packard Development Company, L.P. * * * * Confidential computer software. Valid license from HP required for * * possession, use or copying. Consistent with FAR 12.211 and 12.212, * * Commercial Computer Software, Computer Software Documentation, and * * Technical Data for Commercial Items are licensed to the U.S. * * Government under vendor's standard commercial license. * * * **************************************************************************/ #include static int name_len; static char *asciz_string; extern char *ascic_to_asciz (); extern unsigned int demo_entry$user_routine (); extern unsigned int demo_exit$user_routine (); char *ascic_to_asciz( ascic_string ) char *ascic_string; { name_len = ascic_string[ 0 ]; asciz_string = (char *)malloc(name_len+1); strncpy( asciz_string, &ascic_string[1], name_len ); asciz_string[ name_len ] = 0; return( asciz_string ); } unsigned int demo_entry$user_routine ( unsigned int ap_pointer, unsigned int pdr_id, unsigned int cpu_time, char ascic_string[], unsigned int index, unsigned int * user_routine_buffer) { char *name; name = ascic_to_asciz (ascic_string); printf ( "Start Service: %s, %X; AP: %X; CPU:%u; ID: %u; UR: %X; Entry: %X; Exit: %X\n", name, index, ap_pointer, cpu_time, pdr_id, *user_routine_buffer, &demo_entry$user_routine, &demo_exit$user_routine); free(name); *user_routine_buffer = (unsigned int) &demo_entry$user_routine; return 1; } unsigned int demo_exit$user_routine ( unsigned int ap_pointer, unsigned int pdr_id, unsigned int cpu_time, char ascic_string[], unsigned int index, unsigned int *user_routine_buffer) { char *name; name = ascic_to_asciz (ascic_string); printf ( "End Service: %s, %X; AP: %X; CPU:%u; ID: %u; UR: %X; Entry: %X; Exit: %X\n", name, index, ap_pointer, cpu_time, pdr_id, *user_routine_buffer, &demo_entry$user_routine, &demo_exit$user_routine); free(name); *user_routine_buffer = (unsigned int) &demo_exit$user_routine; return 1; }