[Barrelfish-users] About ump_impl.h
tomsun.0.7 at gmail.com
Mon Feb 2 08:15:19 CET 2015
I am the one who is porting applications to Barrelfish. Again, I come
across some problems on C++ compatibility.
At first, I tried test program for e1000 driver, and it worked well.
However, when I port an application using this driver, I found something
../include/barrelfish/ump_impl.h: In function ‘errval_t
> ump_chan_state_init(ump_chan_state*, volatile void*, size_t,
../include/barrelfish/ump_impl.h:127:12: error: *invalid conversion*
> void**’ to ‘*volatile ump_message**’ [-fpermissive]
c->buf = buf;
../include/barrelfish/ump_impl.h: In function ‘volatile ump_message*
../include/barrelfish/ump_impl.h:152:53: error: *no matching function* for
> call to ‘*ump_control::ump_control(volatile ump_control&)*’
struct ump_control ctrl = c->buf[c->pos].header.control;
In a word, C++ thinks *it is dangerous to cast a volatile type into a
non-volatile type* and I think so, too.
So, is there any elegant solution to solve this problem?
Looking forward to your kind reply, thanks a lot!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Barrelfish-users