annotate src/sys_open_impl.cbc @ 149:654f2dadd744

add inode.h
author menikon
date Mon, 16 Dec 2019 15:45:51 +0900
parents 86cd551e5b38
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
148
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include "../context.h"
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #interface "SysOpen.h"
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 // ----
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 // typedef struct SysOpenImpl <Type, Isa> impl SysOpen {
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 //
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 // } SysOpenImpl;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 // ----
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 SysOpen* createSysOpenImpl(struct Context* cbc_context) {
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 struct SysOpen* sys_open = new SysOpen();
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 struct SysOpenImpl* sys_open_impl = new SysOpenImpl();
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 sys_open->sys_open = (union Data*)sys_open_impl;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 sys_open->fd = 0;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 sys_open->omode = 0;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 sys_open->addr = NULL;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 sys_open->file = NULL;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 sys_open->ip = NULL;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 sys_open->open = C_openSysOpenImpl;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 sys_open->next = C_nextSysOpenImpl;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 return sys_open;
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 }
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 __code openSysOpenImpl(struct SysOpenImpl* sys_open, int fd, int omode, char* addr, struct file* file, struct inode* ip, __code next(...)) {
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 goto next(...);
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 __code nextSysOpenImpl(...) {
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
86cd551e5b38 add sys_open_impl.cbc
menikon <e165723@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 }