[Barrelfish-users] requesting for Help
ben eslami
beneslami72 at gmail.com
Sat Jun 30 16:23:11 CEST 2018
Hi all.
In inter core communication, I can send "hello world" from client to
server. But how can I send response message from server to client in
xmpl-msg ?
On Mon, Jun 4, 2018 at 11:36 AM, Simon Gerber <simon.gerber at inf.ethz.ch>
wrote:
> Hi Ben,
>
> I've put answers to your questions inline below.
>
> On 02.06.2018 16:16, ben eslami wrote:
> > Hi again.
> > I used xmpl-msg. Here is my procedures:
> > 1- ../hake/hake.sh -s .. -a x86_64
> > 2- make x86_64/sbin/examples/xmpl-msg
> > but in the second stage, I encounter this error which is showed in
> attachment.
>
> You can fix the compilation error by changing the signature of
> rx_msg_string to
>
> static void rx_msg_string(struct xmplmsg_binding *b, const char *str)
>
>
> >
> > If someone knows how to fix this, I would appreciate in advance.
> >
> > On Sat, Jun 2, 2018 at 3:46 PM, ben eslami <beneslami72 at gmail.com
> <mailto:beneslami72 at gmail.com>> wrote:
> >
> > Hi all,
> > I have decided to run simple Hello World program using IDC.
> > I follow the document 'TN-018-PracticalGuide' to implement the
> simple scenario. but I have some questions and one problem that I face
> every time I do procedures:
> > ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -------------------------------
> > Question 1:First of all, I've created a folder in usr/ directory
> called myapp. Inside of it, I have some C files and a Hakefile such that :
> > myapp.c -> main of my program
> > start_server.c -> server code
> > start_client.c -> client code
> > Hakefile
> > and menu.lst.
> > Should I type all these C codes just in one file?
>
> I'm not sure what you mean by this question. You should structure your
> application in whatever way you would usually structure a C application.
> The simplest case is show-cased in xmpl-msg, where you have a single C file
> which contains all the application code. In the Hakefile you need to have
> a "build application" block which refers to all the C files that are
> necessary to build the application.
>
> > ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -------------------------------
> > Question 2: I have to include some files to my codes as the document
> says like `barrelfish.h' and 'nameservice_client.h`. As my codes are in
> usr/myapp/ directory, should I include these headers like this
> > #include <../../include/barrelfish/barrelfish.h>
> > #include <../../include/barrelfish/nameservice_client.h>>
>
> The build system (hake) adds a number of include paths to each call to
> gcc, so you can simply use
> #include <barrelfish/barrelfish.h>
> #include <barrelfish/nameservice_client.h>
>
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -------------------------------
> > Problem: When I complete all the documents instructions, I run
> `../hake/hake.sh -s .. -a x86_64' in build directory, but I see outputs
> like this:
> > Makefile:7127: x86_64/usr/myapp/_for_app_
> myapp/myapp_flounder_bindings.o.depend: No such file or directory
> > Makefiel:7221: x86_64/usr/myapp/_for_app_myapp/start_client.o.depend:
> No such file or directory
> > Makefiel:7238: x86_64/usr/myapp/_for_app_myapp/start_server.o.depend: No
> such file or directory
> > make:*** No rule to make target 'x86_64/include/if/myapp_defs.h',
> needed by 'x86_64/usr/myapp/_for_app_myapp/start_server.o.depend'. stop.
> > ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------------------------------------------------
> -------------------------------
> >
> >
> >
> >
> > I assume myapp_defs.h is not created when I define an interface
> called hello.if and append "hello" in if/Hakefile.
> > I would be happy if you could help me.
>
> If you have an interface called hello.if and append hello in if/Hakefile,
> "hello_defs.h" will be generated. That's the file you'll have to include to
> use the interface specified in hello.if. Note that you'll also have to add
> flounderBindings = [ "hello" ] in your application's Hakefile (cf.
> usr/examples/xmpl-msg/Hakefile).
>
> Best,
> -- Simon
>
> >
> > Thank you
> >
> > On Wed, Apr 4, 2018 at 11:21 AM, Reto Achermann <
> reto.achermann at inf.ethz.ch <mailto:reto.achermann at inf.ethz.ch>> wrote:
> >
> > Dear Ben,
> >
> > please always write to the list. Answers inline below.
> >
> > -- Reto
> >
> > On 04/03/2018 11:33 AM, ben eslami wrote:
> >
> > Dear Reto
> > I am so sorry to email you directly, but I've stuck in a bad
> situation.
> > I understand what you said about running an app on
> Barrelfish, but there are still some problems.
> >
> > 1- I wrote a Hakefile in 'usr/example/xmpl-hello/Hakefile'
> like this:
> > [ build application {target = {"examples/xmpl-hello", cFiles
> = ["hello.c"] } }
> >
> >
> > seems good to me.
> >
> >
> > 2- I need to tell Hake to include this when building the
> Makefile. It means I have to add the created Hakefile to
> 'platforms/Hakefile' in order to automatically build the app. So the
> problem is where should I put the address of the created Hakefile in
> 'platform/Hakefile' ? There are several fields and I can see the address of
> the created Hakefile in field 'modules_xmpl'. So I assume there is no need
> to add anything in 'platform/Hakefile'. and run '../hake/hake.sh -s .. -a
> x86_64' in build dir.
> >
> >
> > Yes, you are right, if you use examples/xmpl-hello, this is
> already added in modules_xmpl. The command for runnin hake is fine too.
> Yous should be able to do make x86_64/sbin/examples/xmpl-hello now.
> >
> > In general, for new modules, you can add just them to
> 'modules_x86_64'. (for x86_64)
> >
> > 3- Weh I run '../hake/hake.sh -s .. -a x86_64' , there is a
> Makefile appeared in build directory. I can see the path
> './x86_64/usr/examples/xmpl-hello/_for_app_examples/xmpl-hello/hello.o'
> and other similar paths for hello.s and hello.o.depend inside Makefile. So
> I assume the app is ready to be built. Now I run 'make -j 4 X86_64_Basic'
> >
> >
> > Not exactly, when you look at the platform directive in the
> platforms/Hakefile, you see that the 'modules_xmpl' are part of the
> X86_64_Full. So you need to run make X86_64_Full in order to build the
> examples.
> >
> >
> >
> > 4-Now in this stage, I look for built/platform/x86/menu.lst.x86_64,
> but there is nothing there until I run 'make qemu_x86_64'. I realized that
> menu.lst is built after running 'make qemu_x86_64'. So I open
> 'built/platform/x86/menu.lst.x86_64' and add 'module >
> >
> > /x86_64/usr/examples/xmpl-hello/_for_app_examples/xmpl-
> hello/hello.o.depend'.
> >
> > No, you need to add the targets as defined in the hake file.
> >
> > module /x86_64/sbin/examples/xmpl-hello
> >
> > Also note, that make qemu_x86_64 will only build the modules
> defined in modules_x86_64 and modules_generic.
> >
> >
> > I understand your instructions as like above but I got
> nothing. I was wondering if you could explain in more detail please.
> >
> > Regards,
> > Ben
> >
> >
> > On Mon, Apr 2, 2018 at 11:44 PM, Reto Achermann <
> reto.achermann at inf.ethz.ch <mailto:reto.achermann at inf.ethz.ch> <mailto:
> reto.achermann at inf.ethz.ch <mailto:reto.achermann at inf.ethz.ch>>> wrote:
> >
> > Dear Ben,
> >
> > When you like run something on Barrelfish a few things
> need to be in
> > place
> >
> > 1) You need to write a Hakefile, which contains the
> target to be
> > built and how it is built.
> >
> > 2) Then you need to tell Hake to include this when
> building the
> > Makefile, This is done by re-running hake. After this
> step you can
> > actually type 'make x86_64/sbin/<target>' assuming you
> want to build
> > it for x86.
> >
> > 2) In order to have it build automatically when you type
> 'make
> > X86_64_Basic' or 'make qemu_x86_64' you need to add it
> to the list
> > of targets in platforms/Hakefile.
> >
> > 3) You need to tell grub or qemu to load your binary.
> For this you
> > will need to add it to the menu.lst used by grub or
> qemu. In case of
> > qemu, its located in $build/platforms/x86/ (again for
> x86 platforms)
> >
> > 4) then your program will either run directly after
> Barrelfish has
> > booted or you can type <target> in Fish.
> >
> > -- Reto
> >
> >
> >
> > On 02/04/18 18:58, ben eslami wrote:
> >
> > There is some examples in usr/examples/. As a first
> step, I want
> > to run xmpl-hello.
> > -what I should do is first I should introduce
> xmpl-hello to
> > Hakefile in platform/Hakefile, but I can see
> "modules_xmpl" that
> > contains all of examples including xmpl-hello. So I
> assume there
> > is no need to add xmpl-hello to the Hakefile. Am I
> right or not?
> > - The second thing I should do is to add "module
> > build/x86_64/sbin/examples/xmpl-hello" to
> > build/platform/x86/menu.lst.x86_64, but there is
> nothing in
> > build/x86_64/sbin/examples. Should I copy examples
> from
> > usr/examples to build/x86_64/sbin/examples ??
> >
> > Could anyone pleeeaase help me ?
> >
> > On Mon, Apr 2, 2018 at 4:13 PM, ben eslami
> > <beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>
> <mailto:beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>>
> > <mailto:beneslami72 at gmail.com <mailto:
> beneslami72 at gmail.com> <mailto:beneslami72 at gmail.com <mailto:
> beneslami72 at gmail.com>>>>
> > wrote:
> >
> > Hi
> > Can anyone please help me to run "hello world"
> in BarrelFish?
> > I think the tutorial is not up to date.
> >
> > Thanks
> >
> > On Sat, Mar 17, 2018 at 6:13 PM, ben eslami
> > <beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>
> <mailto:beneslami72 at gmail.com <mailto:beneslami72 at gmail.com>>
> > <mailto:beneslami72 at gmail.com <mailto:
> beneslami72 at gmail.com>
> > <mailto:beneslami72 at gmail.com <mailto:
> beneslami72 at gmail.com>>>> wrote:
> >
> > -in the file platform/Hakefile, there are
> some
> > sections. In section of
> > modules_common, I should add the following
> line
> > "/sbin/examples/xmpl-hello", but in section
> > modules_xmpl, the mentioned
> > line exists. Is this correct or I should
> add in the
> > sections of
> > "modules_common" and "modules_x86_64"
> >
> > -in the file build/platform/x86/menu.lst.x86_64,
> I
> > added the following
> > line " module /x86_64/sbin/examples/xmpl-hello
> in the
> > General user
> > domain section.
> >
> > "../hake/hake.sh -s .. -a x86_64" and "make
> -j 4
> > X86_64_Basic" are run
> > without error. But "make qemu_x86_64"
> encounters this
> > error:
> > Failed to open file
> 'x86_64/sbin/examples/xmpl-hello
> >
> > what should I do now ?
> >
> > On Sat, Mar 17, 2018 at 3:00 PM, Joel Busch
> > <buschjo at student.ethz.ch <mailto:
> buschjo at student.ethz.ch> <mailto:buschjo at student.ethz.ch <mailto:
> buschjo at student.ethz.ch>>
> > <mailto:buschjo at student.ethz.ch <mailto:
> buschjo at student.ethz.ch>
> >
> > <mailto:buschjo at student.ethz.ch <mailto:
> buschjo at student.ethz.ch>>>> wrote:
> >
> > Hello Ben
> >
> > This is actually one I can help with I
> think,
> > because I ran into
> > some of the same roadblocks.
> >
> > symbolic_targets.mk <http://symbolic_targets.mk> <
> http://symbolic_targets.mk>
> > <http://symbolic_targets.mk> does no longer
> > exists, instead you can add modules to
> the file
> > platforms/Hakefile
> > there are different sections just make
> sure you use
> > the one that's
> > generic or the one specific to the
> architecture you
> > want to run on.
> >
> > The menu.lst is now platform specific
> and you can
> > either change the
> > one generated during hake in
> > build/platforms/<arch>/menu.ls <http://menu.ls> <
> http://menu.ls>
> > <http://menu.ls>t.<plat> or the one
> that is read
> > during the hake
> > process in hake/menu.lst.<plat>, in
> your case
> > <arch> is x86 and
> > <plat> is x86_64.
> >
> > And yes the make target sim doesn't
> exist anymore
> > and qemu_x86_64 is
> > what you want to use instead.
> >
> > Best Regards,
> > Joel Busch
> >
> >
> > On 17.03.2018 11:10, ben eslami wrote:
> >
> > Dear folks,
> > -after booting Barrelfish, I tend
> to run "hello
> > world". According
> > to
> > "http://wiki.barrelfish.org/
> Programming_for_Barrelfish <http://wiki.barrelfish.org/
> Programming_for_Barrelfish>
> > <http://wiki.barrelfish.org/
> Programming_for_Barrelfish <http://wiki.barrelfish.org/
> Programming_for_Barrelfish>>
> > <
> http://wiki.barrelfish.org/Programming_for_Barrelfish <
> http://wiki.barrelfish.org/Programming_for_Barrelfish>
> > <http://wiki.barrelfish.org/
> Programming_for_Barrelfish <http://wiki.barrelfish.org/
> Programming_for_Barrelfish>>>",
> > To get
> > Hake to include a target for the
> hello world
> > program in the
> > generated Makefile, we must first
> add the
> > target to the
> > symbolic_targets.mk <http://symbolic_targets.mk>
> <http://symbolic_targets.mk>
> > <http://symbolic_targets.mk> file, located in
> > the build directory. But I don't
> have this
> > file. should I create
> > it first?
> >
> > -Suppose I created "
> symbolic_targets.mk <http://symbolic_targets.mk>
> > <http://symbolic_targets.mk>
> > <http://symbolic_targets.mk>" in
> build/ , then
> > I did
> > "../hake/hake.sh -s .. -a x86_64"
> in build/
> > directory. After
> > this, i run "make -j 8
> X86_64_Basic" to compile
> > Hello World file.
> > But fir I should append "module
> > /x86_64/sbin/examples/xmpl-hello"
> > in menu.lst, but I don't see any
> file named
> > menu.lst either.
> > Should I create this first also ?
> >
> > -After all of these, I should run
> make sim.
> > Does this mean that I
> > should run "make qemu_x86_64?
> >
> > Thank you
> >
> >
> >
> >
> > ______________________________
> _________________
> > Barrelfish-users mailing list
> > Barrelfish-users at lists.inf.ethz.ch <mailto:
> Barrelfish-users at lists.inf.ethz.ch>
> > <mailto:Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>>
> > <mailto:Barrelfish-users@
> lists.inf.ethz.ch <mailto:Barrelfish-users at lists.inf.ethz.ch>
> > <mailto:Barrelfish-users at lists.inf.ethz.ch
> <mailto:Barrelfish-users at lists.inf.ethz.ch>>>
> > https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>
> > <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>>
> > <
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users <
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users>
> > <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>>>
> >
> >
> >
> > ______________________________
> _________________
> > Barrelfish-users mailing list
> > Barrelfish-users at lists.inf.ethz.ch <mailto:
> Barrelfish-users at lists.inf.ethz.ch>
> > <mailto:Barrelfish-users at lists.inf.ethz.ch <mailto:
> Barrelfish-users at lists.inf.ethz.ch>>
> > <mailto:Barrelfish-users@
> lists.inf.ethz.ch <mailto:Barrelfish-users at lists.inf.ethz.ch>
> > <mailto:Barrelfish-users at lists.inf.ethz.ch <mailto:
> Barrelfish-users at lists.inf.ethz.ch>>>
> > https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>
> > <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>>
> > <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>
> > <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>>>
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > Barrelfish-users mailing list
> > Barrelfish-users at lists.inf.ethz.ch <mailto:
> Barrelfish-users at lists.inf.ethz.ch>
> > <mailto:Barrelfish-users at lists.inf.ethz.ch <mailto:
> Barrelfish-users at lists.inf.ethz.ch>>
> > https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>
> > <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users <https://lists.inf.ethz.ch/
> mailman/listinfo/barrelfish-users>>
> >
> >
> >
> > --
> > Reto Achermann,
> > http://people.inf.ethz.ch/acreto <http://people.inf.ethz.ch/
> acreto>
> >
> >
> >
> >
> >
> > _______________________________________________
> > Barrelfish-users mailing list
> > Barrelfish-users at lists.inf.ethz.ch
> > https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20180630/32ebf7b7/attachment-0001.html>
More information about the Barrelfish-users
mailing list