Mercurial > hg > Game > Atoc
diff tests/002_090722/002.c @ 0:42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Sep 2009 13:44:18 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/002_090722/002.c Tue Sep 08 13:44:18 2009 +0900 @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <stdint.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> +#include <sys/ioctl.h> + +#include "../../include/ioctl.h" +#include "../../include/spe_process.h" + +#define PROCESSES 100 + + +int main(int argc, char *argv[]) +{ + int fd[PROCESSES]; + spe_process_context_write_data_t spe_write = { 0 }; + spe_process_context_read_data_t spe_read; + + int i; + + + for (i = 0; i < PROCESSES; i++) + { + fd[i] = open("/dev/spe_manager", O_RDWR); + + lseek(fd[i], 0, SEEK_SET); + write(fd[i], &spe_write, sizeof(spe_write)); + ioctl(fd[i], SPE_MANAGER_IOCTL_START_PROCESS); + } + + for (i = 0; i < PROCESSES; i++) + { + do + { + lseek(fd[i], 0, SEEK_SET); + read(fd[i], &spe_read, sizeof(spe_read)); + } + while (spe_read.status != SPE_PROCESS_CONTEXT_STATUS_NOT_RELEASED); + + close(fd[i]); + } + + return 0; +}