Files
Shrine/SnailNet/MakeSnailNet.HC

46 lines
1.2 KiB
HolyC

// vim: set ft=c:
#exe {
#include "::/Adam/HwSupp/Pci"
U8* native_driver = NULL;
I64 b, d, f;
if (PciFindByID(0x1022, 0x2000, &b, &d, &f))
native_driver = "PCNet";
// If we're using the native stack, load it system-wide
if (native_driver != NULL) {
StreamPrint("U8* SNAILNET_NATIVE_DRIVER = \"%s\";\n", native_driver);
// Hardware support
StreamPrint("#include \"::/Adam/Net/NetFifo\"");
StreamPrint("#include \"::/Adam/HwSupp/%s\"", native_driver);
// Contains a lot of common definitions, probably should be cleaned up
StreamPrint("#include \"::/Adam/Net/NativeSocket\"");
// L2
StreamPrint("#include \"::/Adam/Net/Ethernet\"");
// L3
StreamPrint("#include \"::/Adam/Net/Arp\"");
StreamPrint("#include \"::/Adam/Net/IPv4\"");
// L4
StreamPrint("#include \"::/Adam/Net/Icmp\"");
StreamPrint("#include \"::/Adam/Net/Tcp\"");
StreamPrint("#include \"::/Adam/Net/Udp\"");
// L7
StreamPrint("#include \"::/Adam/Net/Dns\"");
// Handler Task
StreamPrint("#include \"::/Adam/Net/NetHandlerTask\"");
StreamPrint("#include \"::/Adam/Net/Netcfg\"");
}
else
StreamPrint("U8* SNAILNET_NATIVE_DRIVER = NULL;\n", native_driver);
}