[CSE]  Advanced Operating Systems 
 COMP9242 2003/S2 
UNSW

PRINTER Printer-Friendly Version
Administration               
- Notices
- Course Intro
- Consultations
- Survey Results
 
Work
- Lectures
- Selected Papers
- Milestone 0
- Project Spec
  (Milestones 1, 2, ...)
- Project FAQ
- Exam
 
Documentation
- ASysT Lab
- L4Ka::Pistachio FAQ
# L4 source browser
- Sulima ISA Simulator
R4x00 ISA Summary 
MIPS R4700 ReferenceMIPS R4000 User Manual 
- GT64111
# Network Driver
 
Related Info
- Aurema OS Prize
- OS Hall of Fame
 
History
- 2002
- 2000
- 1999
- 1998
 
Staff
- Gernot Heiser (LiC)
- Kevin Elphinstone
- Guest Lecturers (TBA)
 
Stureps
- Student Reps

 
Valid HTML 4.0!

Tulip Library

The Tulip library provides access to the U4600's PCI network card. The tulip library is used directly by liblwip (the IP stack), you shouldn't need to use any of these functions directly. Most of these function are used lib/lwip/sos/sosif.c if you are interested.

tulip_init

struct tulip * tulip_init(bs_seq spaces, dma_handle_t dma, bus_space_t pciconf);

tulip_init initalises the state of the tulip driver and returns a handle to the driver.

tulip_get_macaddr

int tulip_get_macaddr(struct tulip *tulip, uint8_t macaddr[6]);

This will return the MAC address of the ethernet card.

tulip_interrupt_handler

int tulip_interrupt_handler(struct tulip *tulip);

This should be called whenever an interrupt occurs on the card.

tulip_enable_receive

int tulip_enable_receive(struct tulip *tulip);

This must be called before the card will recieve packets.

tulip_feedpacket

int tulip_feedpacket(struct tulip *tulip, uint32_t buffer_addr, size_t size, uint8_t first, uint8_t more, uint32_t key);

This sends a packet given packet.

tulip_freepacket

int tulip_freepacket(struct tulip *tulip, uint32_t buffer_addr, size_t size, uint32_t key);

This provides a buffer for the card to receive packets into.


Last modified: 10 Sep 2003.