mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-26 08:51:08 +00:00
d9a4773194
This patch reintroduces the LwIP stack to libc as a VFS plugin implementing the socket_fs interface. Rather than use LwIP's socket emulation layer this plugin interfaces directly to LwIP raw API and is single threaded. The internal TCP parameters of the stack are untuned. Fix #2050 Fix #2335
88 lines
1.8 KiB
Plaintext
88 lines
1.8 KiB
Plaintext
source ${genode_dir}/repos/base/run/platform_drv.inc
|
|
|
|
if {[have_spec linux]} {
|
|
puts "The [run_name] scenario requires QEMU networking."
|
|
exit 1
|
|
}
|
|
|
|
set build_components {
|
|
core init
|
|
drivers/timer
|
|
lib/vfs/lwip
|
|
test/libc_getaddrinfo
|
|
}
|
|
|
|
append_platform_drv_build_components
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
append config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="CPU"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="IRQ"/>
|
|
<service name="LOG"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="ROM"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<default caps="128"/>}
|
|
|
|
append_platform_drv_config
|
|
|
|
append config {
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Timer"/> </provides>
|
|
</start>
|
|
<start name="nic_drv">
|
|
<binary name="} [nic_drv_binary] {"/>
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="Nic"/> </provides>
|
|
</start>
|
|
|
|
<start name="test-libc_getaddrinfo" caps="256">
|
|
<resource name="RAM" quantum="16M"/>
|
|
<config>
|
|
<vfs>
|
|
<dir name="dev"> <log/> </dir>
|
|
<dir name="socket"> <lwip dhcp="yes"/> </dir>
|
|
</vfs>
|
|
<libc stdout="/dev/log" socket="/socket"/>
|
|
<arg value="test-libc_getenv"/>
|
|
<arg value="genode.org"/>
|
|
<arg value="hypervisor.org"/>
|
|
<arg value="example.com"/>
|
|
</config>
|
|
</start>
|
|
</config>
|
|
}
|
|
|
|
install_config $config
|
|
|
|
set boot_modules {
|
|
core init ld.lib.so
|
|
libc.lib.so libm.lib.so posix.lib.so
|
|
vfs_lwip.lib.so
|
|
test-libc_getaddrinfo
|
|
vfs.lib.so
|
|
timer
|
|
}
|
|
|
|
# platform-specific modules
|
|
append_platform_drv_boot_modules
|
|
lappend boot_modules [nic_drv_binary]
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -nographic -net nic,model=e1000 -net user"
|
|
|
|
run_genode_until "child .* exited with exit value 0.*\n" 20
|