Mercurial > hg > Game > Atoc
annotate tests/004_090809/004.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 |
rev | line source |
---|---|
0
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <stdio.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #include <stdint.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 #include <sys/types.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 #include <sys/stat.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 #include <fcntl.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 #include <unistd.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 #include <sys/ioctl.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 #include <sys/mman.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 #include <memory.h> |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 #include "../../include/ioctl.h" |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 #include "../../include/spe_process.h" |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 uint64_t hoge[4] __attribute__((aligned(128))) = { 0x5c812625b0c98a84UL, 0xb0589ae8e319ca7bUL, 0xc797c3af5d2807eaUL, 0x7df3ed18fa5dc081UL }; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 volatile unsigned char a[1024] __attribute__((aligned(128))); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 int main(int argc, char *argv[]) |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 { |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 int fd; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 fd = open("/dev/spe_manager", O_RDWR); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 printf("fd: %d\n", fd); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 int fd_mmap; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 fd_mmap = open("./004", O_RDONLY); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 printf("fd_mmap: %d\n", fd_mmap); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 volatile void *mapped = mmap(NULL, 1024, PROT_READ, MAP_SHARED, fd_mmap, 0); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 printf("ADDR(mapped): 0x%016lx\n", (uint64_t)mapped); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 printf("ADDR(mapped): 0x%016lx\n", (uint64_t)a); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 memcpy(a, mapped, 1024); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 spe_process_context_write_data_t spe_write = { 0 }; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 // spe_write.pid = (int32_t)getpid(); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 spe_write.pgm_start = (uint64_t)a; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 spe_write.pgm_size = 1024; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 spe_write.arg = 0x5c812625b0c98a84UL; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 spe_process_context_read_data_t spe_read; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 lseek(fd, 0, SEEK_SET); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 write(fd, &spe_write, sizeof(spe_write)); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 ioctl(fd, SPE_MANAGER_IOCTL_START_PROCESS); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 do |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 { |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 lseek(fd, 0, SEEK_SET); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 read(fd, &spe_read, sizeof(spe_read)); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 } |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 while (spe_read.status != SPE_PROCESS_CONTEXT_STATUS_NOT_RELEASED); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 printf("spe_read.ret: 0x%016lx\n", spe_read.ret); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 close(fd_mmap); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 close(fd); |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 return 0; |
42f240cc4bc6
From: 太田 篤志 <atoc@namikilab.tuat.ac.jp>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 } |