Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3173 → Rev 3174

/branches/dynload/uspace/app/init/init.c
82,35 → 82,17
 
static void spawn(char *fname)
{
char *argv[2];
 
printf(NAME ": Spawning %s\n", fname);
 
if (task_spawn_ex(fname, NULL) != 0) {
argv[0] = fname;
argv[1] = NULL;
 
if (task_spawn_ex(fname, argv) != 0) {
/* Success */
sleep(1);
}
return;
int fd = open(fname, O_RDONLY);
if (fd >= 0) {
ssize_t rd;
size_t len = 0;
// FIXME: cannot do long reads yet
do {
rd = read(fd, buf + len, 1024);
if (rd > 0)
len += rd;
} while (rd > 0);
if (len > 0) {
task_spawn(buf, len);
sleep(1); // FIXME
}
close(fd);
}
}
 
int main(int argc, char *argv[])
/branches/dynload/uspace/app/tester/tester.c
107,8 → 107,17
printf("*\t\t\tRun all safe tests\n");
}
 
int main(void)
int main(int argc, char **argv)
{
printf("Number of arguments: %d\n", argc);
if (argv) {
printf("Arguments:");
while (*argv) {
printf(" '%s'", *argv++);
}
printf("\n");
}
 
while (1) {
char c;
test_t *test;
/branches/dynload/uspace/app/cli/cli.c
41,7 → 41,10
#define LINE_BUFFER_SIZE 128
static char line_buffer[LINE_BUFFER_SIZE];
 
void read_line(char *buffer, int n)
#define MAX_ARGS 16
static char *argv_buf[MAX_ARGS + 1];
 
static void read_line(char *buffer, int n)
{
char c;
int chars;
69,7 → 72,35
buffer[chars] = '\0';
}
 
static void program_run(void)
{
char *p;
int n;
 
p = line_buffer;
n = 0;
 
while (n < MAX_ARGS) {
argv_buf[n++] = p;
p = strchr(p, ' ');
if (p == NULL) break;
 
*p++ = '\0';
}
argv_buf[n] = NULL;
 
printf("spawn task '%s' with %d args\n", argv_buf[0], n);
printf("args:");
int i;
for (i = 0; i < n; ++i) {
printf(" '%s'", argv_buf[i]);
}
printf("\n");
 
task_spawn_ex(argv_buf[0], argv_buf);
}
 
 
int main(int argc, char *argv[])
{
printf("This is CLI\n");
79,9 → 110,9
printf("'%s'\n", line_buffer);
if (strcmp(line_buffer, "exit") == 0)
break;
printf("spawn task\n");
if (line_buffer[0] != '\0')
task_spawn_ex(line_buffer, NULL);
program_run();
}
 
printf("Bye\n");