[Barrelfish-users] Barrelfish networking and the rtl8029 driver

Georgios Varisteas yorgos at kth.se
Thu Jan 27 11:43:52 CET 2011


Hi,

My name is Georgios Varisteas and I recently started work on Barrelfish as a PhD student at KTH. I have been trying to set up Barrelfish in a virtual machine with networking enabled but I have run into various troubles. I am using barrelfish-20100810 snapshot. All three virtualization options available to me (Qemu, Vmware and Virtualbox) emulate a single network chipset for which there is a driver included in my snapshot and that is rtl8029. However, trying to build the driver has resulted in compilation errors which I do not really know how I should treat. After going through the source of the driver I've come to the conclusion that it is incomplete as there are data types being used that are not defined anywhere else in Barrelfish; I've relied on grep to verify this though. I include the GCC output at the end. Is it possible to somehow acquire the full version of the driver? What about the emulated e1000 chipsets: 82540EM, 82543GC and 82545EM? How easy would it be to extend the e1000n driver to support them? Finally, it would really help to know what to expect to see as output when a supported adapter is found by the PCI module and how addressing works inside Barrelfish.

regards,
Georgios


gcc -Wno-packed-bitfield-compat -fno-builtin -nostdinc -std=c99 -m64 -mno-red-zone -fPIE -fno-stack-protector -U__linux__ -Wall -Wshadow -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-field-initializers -Wredundant-decls -imacros ../include/deputy/nodeputy.h -DBARRELFISH -DMAX_CPUS=64 -DCONFIG_INTERCONNECT_DRIVER_LMP -DCONFIG_INTERCONNECT_DRIVER_UMP -DCONFIG_FLOUNDER_BACKEND_LMP -DCONFIG_FLOUNDER_BACKEND_UMP -g -O2 -I../include -I../include/arch/x86_64 -I../include/ipv4 -I./x86_64/include -I./x86_64/include/dev -I../usr/drivers/rtl8029 -I./x86_64/usr/drivers/rtl8029 -o ./x86_64/usr/drivers/rtl8029/_for_app_rtl8029/rtl8029.o -c ../usr/drivers/rtl8029/rtl8029.c 
In file included from ../usr/drivers/rtl8029/rtl8029.c:21:
../usr/drivers/rtl8029/rtl8029.h:20: warning: ‘struct pci_address’ declared inside parameter list
../usr/drivers/rtl8029/rtl8029.h:20: warning: its scope is only this definition or declaration, which is probably not what you want
../usr/drivers/rtl8029/rtl8029.c:53: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘handler’
../usr/drivers/rtl8029/rtl8029.c:130: warning: ‘struct pbuf’ declared inside parameter list
../usr/drivers/rtl8029/rtl8029.c: In function ‘write_page’:
../usr/drivers/rtl8029/rtl8029.c:139: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c:143: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c:144: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c:153: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c:159: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c: At top level:
../usr/drivers/rtl8029/rtl8029.c:250: warning: no previous prototype for ‘ethernet_get_next_packet’
../usr/drivers/rtl8029/rtl8029.c:256: error: expected ‘)’ before ‘input’
../usr/drivers/rtl8029/rtl8029.c:271: warning: ‘struct pbuf’ declared inside parameter list
../usr/drivers/rtl8029/rtl8029.c:271: warning: no previous prototype for ‘ethernet_send_packet’
../usr/drivers/rtl8029/rtl8029.c: In function ‘ethernet_send_packet’:
../usr/drivers/rtl8029/rtl8029.c:273: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c:276: warning: passing argument 2 of ‘write_page’ from incompatible pointer type
../usr/drivers/rtl8029/rtl8029.c:130: note: expected ‘struct pbuf *’ but argument is of type ‘struct pbuf *’
../usr/drivers/rtl8029/rtl8029.c:280: error: dereferencing pointer to incomplete type
../usr/drivers/rtl8029/rtl8029.c: In function ‘rtl8029_handle_interrupt’:
../usr/drivers/rtl8029/rtl8029.c:391: error: ‘handler’ undeclared (first use in this function)
../usr/drivers/rtl8029/rtl8029.c:391: error: (Each undeclared identifier is reported only once
../usr/drivers/rtl8029/rtl8029.c:391: error: for each function it appears in.)
../usr/drivers/rtl8029/rtl8029.c:392: warning: implicit declaration of function ‘handler’
../usr/drivers/rtl8029/rtl8029.c:392: warning: declaration of ‘handler’ shadows previous non-variable
../usr/drivers/rtl8029/rtl8029.c: At top level:
../usr/drivers/rtl8029/rtl8029.c:404: warning: no previous prototype for ‘ethernet_get_mac_address’
../usr/drivers/rtl8029/rtl8029.c:416: warning: ‘struct pci_address’ declared inside parameter list
../usr/drivers/rtl8029/rtl8029.c:416: error: conflicting types for ‘rtl8029_initialize_card’
../usr/drivers/rtl8029/rtl8029.h:20: note: previous declaration of ‘rtl8029_initialize_card’ was here
../usr/drivers/rtl8029/rtl8029.c: In function ‘rtl8029_initialize_card’:
../usr/drivers/rtl8029/rtl8029.c:421: warning: implicit declaration of function ‘pci_read_conf_header’
../usr/drivers/rtl8029/rtl8029.c:478: warning: implicit declaration of function ‘idc_handler_register’
../usr/drivers/rtl8029/rtl8029.c:481: error: too few arguments to function ‘endpoint_create’
../usr/drivers/rtl8029/rtl8029.c:485: warning: implicit declaration of function ‘irq_handle’
make: *** [x86_64/usr/drivers/rtl8029/_for_app_rtl8029/rtl8029.o] Error 1


More information about the Barrelfish-users mailing list