+unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id,
+ char *rel_exec, char *rel_startdir,
+ char *args,
+ unsigned int clockspeed, unsigned int options )
+{
+ pnd_disco_t d;
+ bzero ( &d, sizeof(pnd_disco_t) );
+
+ char cpuspeed [ 10 ];
+ sprintf ( cpuspeed, "%u", clockspeed );
+
+ char hackpath [ PATH_MAX ];
+ strncpy ( hackpath, fullpath, PATH_MAX );
+ char *c = strrchr ( hackpath, '/' );
+ if ( c ) {
+ *c = '\0';
+ d.object_path = hackpath;
+ d.object_filename = c + 1;
+ } else {
+ d.object_path = fullpath;
+ }
+
+ d.unique_id = unique_id;
+ d.exec = rel_exec;
+ d.startdir = rel_startdir;
+ d.execargs = args;
+ if ( clockspeed ) {
+ d.clockspeed = cpuspeed;
+ } else {
+ d.clockspeed = NULL;
+ }
+
+ return ( pnd_apps_exec_disco ( pndrun, &d, options, NULL ) );
+}
+