Komponenty | |
struct | netbuf |
struct | ethernet_address |
struct | ip_address |
struct | netmask_t |
struct | outbound_packet |
struct | netif |
struct | packet_t |
Przestrzenie nazw | |
namespace | Arp |
namespace | ICMP |
namespace | IP |
namespace | TCP |
Funkcje | |
uint16 | htons (uint16 hostshort) |
uint16 | ntohs (uint16 netshort) |
uint32 | htonl (uint32 hostlong) |
uint32 | ntohl (uint32 netlong) |
void | init () |
proste operacje na sieci porozumiewa sie z pci32 by znalezc karte sieciowa 3c556 | |
int | init_3c556 () |
struct netbuf * | netbuf_alloc (uint32 datasize) |
void | netbuf_free (struct netbuf *nb) |
void | netbuf_push_front (struct netbuf *chain, struct netbuf *nb) |
void | netbuf_push_back (struct netbuf *chain, struct netbuf *nb) |
struct netbuf * | onFramesReceived (struct netif *nif) |
uzywana przez irq handler karty sieciowej; przenosi bufor na ramke do listy otrzymanych ramek i tworzy nomwy pusty | |
void | onFramesTransmitted (struct netif *nif) |
int | eth_poll (struct netbuf **nb) |
void | eth_transmit (struct netif *nif, struct ethernet_address eth_addr, unsigned int t, struct netbuf *nb) |
exported function that transmits a packet. | |
void | ip_transmit (struct ip_address addr, struct netbuf *nb) |
void | ip_onNewArpEntry (struct ethernet_address eth_addr, struct ip_address ip_addr) |
uint16 | count_checksum16 (uint16 *data, uint32 len) |
void | EthernetFrameReceptionThread () |
ten watek zbiera ramki ethernetowe od karty sieciowej e3c556 | |
void | EthernetFrameDemultiplexingThread () |
struct packet_t * | pbuf_alloc (uint32 capacity) |
void | pbuf_free (struct packet_t *&p) |
Zmienne | |
struct Net::ethernet_address | packed |
struct stack_t | frame_stack |
struct Collection::List < struct netif > | netif_list |
class IPC::Lock::lock_t | frame_stack_lock |
struct Memory::Heap::heapbox | pbuf_heapbox |
len : ile uint8 sie miesci
Definicja w linii 542 pliku net.cpp.
Odwołuje się do prin i println.
Odwołania w Net::ICMP::count_checksum16_icmph(), Net::IP::count_checksum_iph() i Net::IP::ip_transmit().
int Net::eth_poll | ( | struct netbuf ** | nb | ) |
Definicja w linii 438 pliku net.cpp.
Odwołuje się do frame_stack, frame_stack_lock, stack_t::lgth(), IPC::Lock::lock_t::lock2(), stack_t::pop() i IPC::Lock::lock_t::ulock().
Odwołania w EthernetFrameDemultiplexingThread().
void Net::eth_transmit | ( | struct netif * | nif, | |
struct ethernet_address | eth_addr, | |||
unsigned int | t, | |||
struct netbuf * | nb | |||
) |
exported function that transmits a packet.
t | protocol type (ARP, IP, etc); | |
p | the pointer to the packet data itself. |
Definicja w linii 488 pliku net.cpp.
Odwołuje się do Net::ethernet_address::d, Net::netbuf::data, DUMP_OUTBOUND_ETHERNET_FRAMES_BYTES, Thread::i, kprintf(), Net::netbuf::len, IPC::Lock::lock_t::lock(), MAX, MIN, Net::netif::outbound, Net::netif::outbound_lock, Net::netif::transmit i IPC::Lock::lock_t::ulock().
Odwołania w Net::Arp::arp_transmit(), Net::Arp::arp_transmit_request(), Net::IP::ip_onNewArpEntry() i Net::IP::ip_transmit().
void Net::EthernetFrameDemultiplexingThread | ( | ) |
Definicja w linii 180 pliku net.cpp.
Odwołuje się do complain, Net::ethernet_address::d, Net::netbuf::data, Net::netif::eth_addr, eth_poll(), Thread::i, kprintf(), Net::netbuf::len, netbuf_free(), Net::netbuf::nif, null, Net::IP::onIpReception(), println, Net::Arp::processArpPacket(), Thread::sleep() i testif.
void Net::EthernetFrameReceptionThread | ( | ) |
ten watek zbiera ramki ethernetowe od karty sieciowej e3c556
Definicja w linii 133 pliku net.cpp.
Odwołuje się do current_thread, e3c556_poll(), frame_stack, frame_stack_lock, Thread::i, kmalloc, kprintf(), IPC::Lock::lock_t::lock2(), stack_t::push(), Thread::sleep(), Thread::ThreadKill() i IPC::Lock::lock_t::ulock().
Definicja w linii 112 pliku net.cpp.
Odwołania w Net::Arp::arp_transmit(), Net::Arp::arp_transmit_request(), Net::IP::ip_transmit(), print() i Net::Arp::processArpPacket().
void Net::init | ( | ) |
proste operacje na sieci porozumiewa sie z pci32 by znalezc karte sieciowa 3c556
ustawienie timera ktory seeduje linear congruential generator DEF_SECOND/32 na sekunde i czeka na pierwsze seedowanie. w momencie gdy rtc timer pracuje, malo mozliwe jest by parzystosc rdtsc() zmieniala sie miedzy wywolaniami rdtsc_runner() w przewidywalny sposob
Definicja w linii 38 pliku cpuid.cpp.
Odwołuje się do _Pf, Thread::ABCThread(), Arch::x86::RTC::ack_rtc(), Arch::x86::RTC::add_proc(), Mboot::mboot_sht::addr, align_up(), Memory::zone::alloc(), alloc4k(), Memory::Heap::allocate_heapbox(), Memory::Pager::allocate_memtree(), Net::Arp::arp_cache, Net::Arp::arp_heapbox, Memory::Physical::ballocate(), Arch::x86::check_cpuid(), Arch::x86::GDT::code_sel_kernel, Arch::x86::GDT::code_sel_user, Collection::collection_heapbox, complain, Syms::core_syms, Syms::core_syms_str, cout(), Arch::x86::cpu_flags, Arch::x86::CPU_SEP, Arch::x86::cpu_signature, Arch::x86::CPU_TCS, Arch::x86::cpu_vendor_name, Arch::x86::cpuid(), Arch::x86::cpuid_success, Memory::Pager::memtree::cr3, create_ehdr(), Thread::process_t::create_thread(), CRT_STACK, Arch::x86::GDT::data_sel_kernel, Arch::x86::GDT::data_sel_user, Arch::x86::Interr::DEF_INTERRUPT_COUNT, DEF_RTC_IRQ, Memory::Physical::disable_balloc(), elf_t::done(), Arch::x86::Interr::double_fault(), Elf32_ehdr::e_shnum, elf_t::ehdr, Arch::x86::RTC::enable_rtc(), Mboot::mboot_sht::entry_size, ESUCCESS, ET_EXEC, FAC_IDT, FAC_INTERR, FAC_SYMS, FAC_SYMTAB, FAC_THREAD, FAC_THRLIST, FAC_THRSLEEP, Memory::Physical::first_free_page, Memory::Physical::free_pages_high, Memory::Physical::free_pages_low, Memory::Physical::get_high_memory_size(), Memory::Physical::get_memory_size(), Thread::heap, Thread::process_t::heap, Memory::Heap::heap0, Memory::Physical::heap_area_addend, Memory::Heap::HEAP_STACK_GRAN, Memory::Heap::HeapList, Thread::i, Thread::IdleThread(), Thread::IdleThreadHandle, Arch::x86::Interr::idt_service::idt, Arch::x86::Interr::idt_service::idtr, elf_t::image, Thread::process_t::init(), elf_t::init(), mmap_t::init(), Memory::Pager::memtree::init(), blist_t::init(), Memory::zone::init(), Arch::x86::GDT::gdt_t::init(), Arch::x86::Interr::init_int_chains(), Arch::x86::Interr::init_pic(), Thread::process_t::InitKeepHeap(), string::inval(), Net::IP::ip_outbound, Net::IP::ip_outbound_cmp(), Arch::x86::GDT::kernel_gdt, Arch::x86::Interr::kernel_idt, Arch::x86::Interr::kernel_pic, Thread::kernel_process, Arch::x86::GDT::kernel_tss, Arch::x86::GDT::kernel_tss_df, Arch::x86::GDT::kernel_tss_sf, kmalloc, Memory::Pager::kmem, Arch::x86::Interr::idt_service::lidt(), LMA2VIRT, Thread::lock_queues, Thread::Scheduler::lock_scheduler, Thread::m3, Memory::Heap::heapbox::malloc(), MAX, Mboot::mboot_syms(), mem_exec, mem_heap_end, mem_heap_start, mem_kernel_start, mem_ksize, mem_low_end, mem_low_start, mem_physical, mem_space_krnend, mem_space_start, mem_user_end, memmove(), Memory::Pager::memmove2(), Memory::Pager::memtree::memory_map, memset(), Thread::MemsetThread(), Thread::MemsetThreadHandle, Mboot::mod_info::mod_end, Mboot::mod_info::mod_start, Mboot::mods_count(), Mboot::mods_info(), NO_ALIGN, NULL, Mboot::mboot_sht::num, PAGE_ALIGN, PAGE_SIZE, Memory::Physical::PAGESCLEANMAX, Preturn, preturn, Thread::prior_thread(), PRNG::prng_seeded, Thread::proc3, Thread::Processes, Thread::ProcessRegister(), Memory::Pager::memtree::pte_map(), PTE_PRESENT, PTE_STACKGUARD, PTE_USER, Memory::Pager::memtree::pte_val(), PTE_WRITEABLE, qsort(), PRNG::rdtsc_runner(), Arch::x86::RTC::rtc_funcs, Arch::x86::RTC::rtc_handler(), Arch::x86::RTC::rtc_id, Arch::x86::RTC::rtc_lock, elf_t::sect_addr(), elf_t::section(), string::set(), elf_t::set_ehdr(), Memory::zone::set_length(), Elf32_shdr::sh_addr, Elf32_shdr::sh_entsize, Elf32_shdr::sh_offset, Elf32_shdr::sh_size, Elf32_shdr::sh_type, Mboot::mboot_sht::shndx, SHT_NOBITS, SHT_PROGBITS, SHT_SYMTAB, Arch::x86::Interr::stack_fault(), Thread::thread_t::state, string::strcmp(), Syms::syms_count, Syms::syms_size, Syms::symscompar(), Arch::x86::SYSENTER_CS_MSR, Arch::x86::SYSENTER_EIP_MSR, Arch::x86::SYSENTER_ESP_MSR, Arch::x86::Sysenter::SysenterTempBuf, Arch::x86::Sysenter::sysentry(), Arch::x86::Sysenter::SYSENTTEMPBUF, sysfail, Arch::x86::GDT::temp_tss_stack, Thread::TH_IDLE, Thread::THREAD_QUEUES, Thread::threads_dead, Thread::threads_queue, Thread::threads_sleep, Arch::x86::GDT::tss_sel_kernel, Arch::x86::GDT::tss_sel_kernel_df, Arch::x86::GDT::tss_sel_kernel_sf, IPC::Lock::lock_t::ulock(), Arch::x86::RTC::up_time, Memory::Pager::virtual_frame, Memory::Heap::virtual_pages, Thread::thread_t::work_time, Arch::x86::wrmsr(), PRNG::x, Memory::Physical::zero_pages_high, Memory::Physical::zero_pages_low, Memory::Physical::ZeroVirtFrame i Thread::ZombieSlayerThread().
Odwołania w main().
int Net::init_3c556 | ( | ) |
Definicja w linii 345 pliku net.cpp.
Odwołuje się do Arch::x86::Interr::add2interr_chain(), bios32_service(), e3c556_irq(), e3c556_poll(), e3c556_probe(), e3c556_transmit(), find_bios32_service_directory_header(), HIWORD, Net::netif::ip_addr, kprintf(), LOWORD, Net::IP::my_ip_address(), Net::IP::my_netmask(), Net::netif::name, netif_list, Net::netif::netmask, NULL, Pci32_Addr, pci32_base_class_name(), PCI32_CLASS, PCI32_DEVICEID, pci32_installation_check(), pci32_read_configuration_dword(), pci32_sub_class_name(), pci32_vendor_name(), PCI_BASECLASS, PCI_SUBCLASS, Net::netif::poll i Net::netif::transmit.
void Net::ip_onNewArpEntry | ( | struct ethernet_address | eth_addr, | |
struct ip_address | ip_addr | |||
) |
void Net::ip_transmit | ( | struct ip_address | addr, | |
struct netbuf * | nb | |||
) |
Definicja w linii 261 pliku net.cpp.
Odwołuje się do Net::netbuf::data, Net::netbuf::freeptr, Memory::Heap::heap0, Net::netbuf::len, Net::netbuf::next, null i testifdbg.
Odwołania w Net::Arp::arp_transmit(), Net::Arp::arp_transmit_request(), Net::netif::netif() i onFramesReceived().
void Net::netbuf_free | ( | struct netbuf * | nb | ) |
Definicja w linii 272 pliku net.cpp.
Odwołuje się do Net::netbuf::data i Memory::Heap::heap0.
Odwołania w EthernetFrameDemultiplexingThread(), onFramesTransmitted(), Net::IP::onIpReception() i Net::Arp::processArpPacket().
void Net::netbuf_push_back | ( | struct netbuf * | chain, | |
struct netbuf * | nb | |||
) |
void Net::netbuf_push_front | ( | struct netbuf * | chain, | |
struct netbuf * | nb | |||
) |
Definicja w linii 115 pliku net.cpp.
Odwołania w Net::IP::onIpReception(), print() i Net::ICMP::processDatagram().
struct netbuf * Net::onFramesReceived | ( | struct netif * | nif | ) | [read] |
uzywana przez irq handler karty sieciowej; przenosi bufor na ramke do listy otrzymanych ramek i tworzy nomwy pusty
Definicja w linii 404 pliku net.cpp.
Odwołuje się do Net::netbuf::data, DUMP_INBOUND_ETHERNET_FRAMES_BYTES, eth_dbg_write, frame_stack, frame_stack_lock, Thread::i, kmalloc, kprintf(), Net::netbuf::len, IPC::Lock::lock_t::lock2(), MIN, netbuf_alloc(), Net::netif::netbuf_curr, Net::netbuf::nif, stack_t::push() i IPC::Lock::lock_t::ulock().
Odwołania w e3c556_irq().
void Net::onFramesTransmitted | ( | struct netif * | nif | ) |
Definicja w linii 452 pliku net.cpp.
Odwołuje się do Net::ethernet_address::d, Net::netbuf::data, DUMP_OUTBOUND_ETHERNET_FRAMES_BYTES, Net::outbound_packet::eth_addr, Thread::i, kprintf(), Net::netbuf::len, IPC::Lock::lock_t::lock(), MAX, MIN, Net::outbound_packet::nb, netbuf_free(), Net::netif::outbound, Net::netif::outbound_lock, Net::outbound_packet::t, Net::netif::transmit i IPC::Lock::lock_t::ulock().
Odwołania w e3c556_irq().
Definicja w linii 280 pliku net.cpp.
Odwołuje się do Net::packet_t::buf, Net::packet_t::capacity, Net::packet_t::end, Memory::Heap::heapbox::malloc(), null, Net::packet_t::off i pbuf_heapbox.
Odwołania w Net::ICMP::processDatagram().
void Net::pbuf_free | ( | struct packet_t *& | p | ) |
Definicja w linii 291 pliku net.cpp.
Odwołuje się do Net::packet_t::buf, Memory::Heap::heapbox::free(), null, pbuf_heapbox i testif.
struct stack_t Net::frame_stack |
Definicja w linii 106 pliku net.cpp.
Odwołania w eth_poll(), EthernetFrameReceptionThread() i onFramesReceived().
Definicja w linii 110 pliku net.cpp.
Odwołania w eth_poll(), EthernetFrameReceptionThread() i onFramesReceived().
struct Collection::List< struct netif > Net::netif_list |
struct Net::ip_address Net::packed |