Nut/OS  4.10.3
API Reference
Todo List
Class _NUTTHREADINFO
Sort items while considering alignment.
Global AhdlcAt91Close (NUTFILE *fp)
We may support shared open and use dev_irq as an open counter.
Global AhdlcAvrClose (NUTFILE *fp)
We may support shared open and use dev_irq as an open counter.
Global At91SpiMmCard0Avail (void)
Card change should verify the card identifier. Right now any detection of removing and re-inserting a card counts as a card change.
Global At91SpiMmCard0WrProt (void)
Not implemented.
File bankmem.h
Add configuration items instead of occupying all banks.
Global EdLineRead (EDLINE *el, char *buf, int siz)
Hidden entry for password input.
Global EmacOutput (NUTDEVICE *dev, NETBUF *nb)
This routine does not work.
Global FLASH_CONF_SECTOR
Provide pre-defined flash layouts for all CPUs in one of the architecture specific header files.
Global GetThreadByName (char *name)
Rarely used helper function. Should be placed in a seperate module.
Global MmCardIOCtl (NUTDEVICE *dev, int req, void *conf)
Card change detection should verify the serial card number.
Global ms62_5
To be removed.
Global NplMmCard0Avail (void)
Card change should verify the card identifier. Right now any detection of removing and re-inserting a card counts as a card change.
Global NplMmCard0WrProt (void)
Not implemented.
Global NutDhcpClient (void *arg)
We are using a bunch of global variables, which must be associated to a specific interfase if we want to support more than one Ethernet port.
Global NutInit (void)

Make heap threshold configurable, currently hardcoded at 384.

Make wait states for external memory access configuratble.

Make early UART initialization for kernel debugging configurable.

Global nutmem_onchip [NUTMEM_RESERVED]
Not a nice implementation but works as long as this module is linked first. Should be made a linker option.
Global NutMicroDelay (uint32_t us)
Overflow handling.
Global NutSleep (uint32_t ms)
Code size can be reduced by trying to create the timer before removing the thread from the run queue.
Global NutTcpError (TCPSOCKET *sock)
Not all error codes are properly set right now. Some socket functions return an error without setting an error code.
Global NutThreadExit (void)
NutThreadKill() can be used instead of setting the priority level to 255.
Global NutThreadResume (void)
Removing a single thread from a wait queue only improves context switching, but may result in an event time-out for remaining threads, although events had been posted already.
Global NutThreadSetPriority (uint8_t level)
Using a specific priority level for killing a thread is actually not the best idea. NutThreadKill() can be used instead.
Global NutThreadWake (HANDLE timer, HANDLE th)
Used by the timer module. Should be moved there, because not all applications will use of NutSleep().
Global NutTimerCreate (uint32_t ticks, void(*callback)(HANDLE, void *), void *arg, uint8_t flags)
Make this local function static or directly integrate it into NutTimerStartTicks().
Global NutTimerInsert (NUTTIMERINFO *tn)
Make this local function static.
Global NutUdpError (UDPSOCKET *sock, uint32_t *addr, uint16_t *port)
Not all error codes are properly set right now. Some socket functions return an error without setting an error code.
Global NutWatchDogStart (uint32_t ms, uint32_t xmode)
AVR implementation.
Global SbiMmCard0Avail (void)
Card change should verify the card identifier. Right now any detection of removing and re-inserting a card counts as a card change.
Global SbiMmCard0WrProt (void)
Not implemented.
Global SpiMmcIOCtl (NUTDEVICE *dev, int req, void *conf)
Card change detection should verify the serial card number.
Global TermWrite (NUTFILE *fp, CONST void *buffer, int len)
TAB should be interpreted.
Global TwMasterIndexes (uint8_t idx)
Do we really need this. It may not work with competing threads.
Global u_char
We should switch to stdint.h as suggested by Dirk Kaufmann. See feature request #1282721.
Global UsartClose (NUTFILE *fp)
We may support shared open and use dev_irq as an open counter.
Global UsartInit (NUTDEVICE *dev)
Read initial settings from EEPROM.
Global UsartIOCtl (NUTDEVICE *dev, int req, void *conf)
Hardware handshake is not available with AT91 targets.
Global UsartOpen (NUTDEVICE *dev, CONST char *name, int mode, int acc)
We may support shared open and use dev_irq as an open counter.
Group xgARP

Add functions to manually add or remove ARP entries.

Add function to query ARP tables.

Response may reuse received ARP packet.

Group xgBankMem
At least some parts should be moved to the device section.
Group xgBasePro
IGMP support.
Group xgEthernet
Multicast support.
Group xgIP
Configurable checksum calculation for incoming datagrams.
Group xgNutArchArmDevIrqAt91
Handle AT91 interrupts nicely.
Group xgSntp
Enhance documentation.
Group xgSocket
An ICMP socket API would be nice.
Group xgTCP
Use an indirect call for NutTcpInput(). Right now, the whole TCP code is linked to any application, even if only UDP is used.
Group xgThread
Using the special priority 255 to kill a thread is not required and should be removed.
Group xgUdpSocket
There is no similar call like NutTcpError() available for UDP.
Group xgUserPro
Adding more protocols would be helpful, e.g. SMTP. Right now, applications must implement them with the Socket API.