2 // Network handling for Fiasco-UX
16 static void bootstrap();
19 // ------------------------------------------------------------------------
26 #include "boot_info.h"
27 #include "initcalls.h"
30 #include "irq_chip_ux.h"
41 snprintf (s_net_fd, sizeof (s_net_fd), "%u", tunfd);
43 execl (Boot_info::net_program(), Boot_info::net_program(),
44 "-t", s_net_fd, NULL);
51 // Check if frame buffer is available
52 if (!Boot_info::net())
55 if ((tunfd = open("/dev/net/tun", O_RDWR)) < 0)
57 perror("open of /dev/net/tun");
61 // Setup virtual interrupt
62 auto chip = Irq_chip_ux::main;
63 auto const irq = Irq_chip_ux::Irq_net;
64 if (!chip->setup_irq_prov(irq, Boot_info::net_program(), bootstrap))
66 puts("Problems setting up network interrupt!");
70 Kip::k()->vhw()->set_desc(Vhw_entry::TYPE_NET,
71 0, 0, irq, chip->pid_for_irq_prov(irq), tunfd);
73 printf("Starting Network.\n\n");