# HG changeset patch # User anatofuz # Date 1576385003 -32400 # Node ID eef045e9772aaaad8ed3fac797d0faa8796d807f # Parent f70c4ec3fb8a27d9c4a076a57fa3df024a184bf6 update pipe_read diff -r f70c4ec3fb8a -r eef045e9772a src/gearsTools/trans_impl.pl --- a/src/gearsTools/trans_impl.pl Sat Dec 14 18:52:21 2019 +0900 +++ b/src/gearsTools/trans_impl.pl Sun Dec 15 13:43:23 2019 +0900 @@ -114,6 +114,12 @@ } } + + for my $code (@{$impl_ir->{codes}}) { + my $code_gear = $code->{name}; + print $out " ${instance_impl}->$code_gear = C_$code_gear$impl_ir->{name};\n" + } + for my $code (@{$inter_ir->{codes}}) { my $code_gear = $code->{name}; print $out " ${instance_inter}->$code_gear = C_$code_gear$impl_ir->{name};\n" diff -r f70c4ec3fb8a -r eef045e9772a src/impl/PipeRead.cbc --- a/src/impl/PipeRead.cbc Sat Dec 14 18:52:21 2019 +0900 +++ b/src/impl/PipeRead.cbc Sun Dec 15 13:43:23 2019 +0900 @@ -1,11 +1,15 @@ -#include "../context.h"; -#interface "SysRead.h"; +#include "../context.h" +#interface "SysRead.h" // ---- // typedef struct PipeRead impl SysRead { -// struct CbCPipe *pipe; -// struct String *addr; -// struct Integer* i; +// struct pipe* p; +// int i; +// int n; +// __code cbc_piperead1(Type* sys_read, struct pipe* p, __code next(...)); +// __code cbc_piperead2(Type* sys_read, int i, int n, struct pipe* p, __code next(...)); +// __code cbc_piperead3(Type* sys_read, int i, struct pipe* p, __code next(...)); +// __code next(...); // } PipeRead; // ---- @@ -13,12 +17,47 @@ struct SysRead* sys_read = new SysRead(); struct PipeRead* pipe_read = new PipeRead(); sys_read->sys_read = (union Data*)pipe_read; - pipe_read->num = NULL; + pipe_read->p = NULL; + pipe_read->i = 0; + pipe_read->n = 0; + sys_read->impl = NULL; + sys_read->addr = NULL; + sys_read->n = 0; + pipe_read->cbc_piperead1 = C_cbc_piperead1PipeRead; + pipe_read->cbc_piperead2 = C_cbc_piperead2PipeRead; + pipe_read->cbc_piperead3 = C_cbc_piperead3PipeRead; + pipe_read->next = C_nextPipeRead; sys_read->read = C_readPipeRead; sys_read->next = C_nextPipeRead; return sys_read; } -__code readPipeRead(__code next(...)) { + +SysRead* createPipeReadUseArgs(struct Context* cbc_context,struct pipe* p, char* addr, int n) { + struct SysRead* sys_read = new SysRead(); + struct PipeRead* pipe_read = new PipeRead(); + sys_read->sys_read = (union Data*)pipe_read; + pipe_read->p = p; + pipe_read->i = 0; + pipe_read->n = n; + sys_read->impl = (union Data*)p; + sys_read->addr = addr; + sys_read->n = n; + sys_read->read = C_readPipeRead; + sys_read->next = C_nextPipeRead; + return sys_read; +} + +__code cbc_piperead1PipeRead(struct PipeRead* sys_read, struct pipe* p, __code next(...)) { + + goto next(...); +} + +__code cbc_piperead2PipeRead(struct PipeRead* sys_read, int i, int n, struct pipe* p, __code next(...)) { + + goto next(...); +} + +__code cbc_piperead3PipeRead(struct PipeRead* sys_read, int i, struct pipe* p, __code next(...)) { goto next(...); } @@ -27,3 +66,12 @@ } +__code readPipeRead(struct PipeRead* sys_read, union Data* impl, char* addr, int n, __code next(int ret,...)) { + + goto next(int ret,...); +} + +__code nextPipeRead(...) { + +} +