Nut/OS  5.0.5
API Reference
Nut/OS API

Operating System API. More...

Collaboration diagram for Nut/OS API:

Modules

 System Initialization
 

Nut/OS initialization.


 System Configuration
 

Nut/OS configuration structure.


 Event Management
 

Thread synchronization support.


 Timer Management
 

Asynchronous timer support.


 Memory Management
 

Dynamic memory management.


 Device Management
 

Device driver support.


 Interrupt Management
 

Interrupt support.


 Version Information
 

Nut/OS version number.


 Application Candies
 

In order to keep the kernel clean and small, it uses very basic functions only:


 Thread Management
 

Cooperative multi-threading support.


Defines

#define NUTMEM_ALIGNMENT   sizeof(int)
#define NUTMEM_BOTTOM_ALIGN(s)   ((s) & ~(NUTMEM_ALIGNMENT - 1))
 Return the next lower aligned value.
#define NUTMEM_TOP_ALIGN(s)   NUTMEM_BOTTOM_ALIGN((s + (NUTMEM_ALIGNMENT - 1)))
 Return the next higher aligned value.
#define __byte_swap2(val)
#define __byte_swap4(val)
#define htons(x)   __byte_swap2(x)
 Convert short value from host to network byte order.
#define htonl(x)   __byte_swap4(x)
 Convert long value from host to network byte order.
#define ntohs(x)   __byte_swap2(x)
 Convert short value from network to host byte order.
#define ntohl(x)   __byte_swap4(x)
 Convert long value from network to host byte order.

Typedefs

typedef unsigned char u_char
 Unsigned 8-bit value.
typedef unsigned short u_short
 Unsigned 16-bit value.
typedef unsigned int u_int
 Unsigned int value.
typedef unsigned long u_long
 Unsigned 32-bit value.
typedef unsigned long long u_longlong
 Unsigned 64-bit value.
typedef void * HANDLE
 Void pointer.
typedef unsigned short ureg_t
 Unsigned register type.
typedef unsigned short reg_t
 Signed register type.
typedef unsigned __PTRDIFF_TYPE__ uptr_t
 Unsigned pointer value type.

Detailed Description

Operating System API.

This API supports the following features:


Define Documentation

#define NUTMEM_ALIGNMENT   sizeof(int)
#define NUTMEM_BOTTOM_ALIGN (   s)    ((s) & ~(NUTMEM_ALIGNMENT - 1))

Return the next lower aligned value.

Referenced by NutHeapRootAdd().

#define NUTMEM_TOP_ALIGN (   s)    NUTMEM_BOTTOM_ALIGN((s + (NUTMEM_ALIGNMENT - 1)))

Return the next higher aligned value.

Referenced by NutHeapRootAdd(), NutHeapRootAlloc(), and NutHeapRootRealloc().

#define __byte_swap2 (   val)
Value:
((((val) & 0xff) << 8) |        \
     (((val) & 0xff00) >> 8))
#define __byte_swap4 (   val)
Value:
((((val) & 0xff) << 24) |       \
     (((val) & 0xff00) << 8) |      \
     (((val) & 0xff0000) >> 8) |    \
     (((val) & 0xff000000) >> 24))
#define htonl (   x)    __byte_swap4(x)

Convert long value from host to network byte order.

Examples:
pingnet/pingnet.c.

Referenced by LcpTxConfReq(), main(), NutIpOutput(), NutTcpOutput(), NutTcpReject(), NutWinsNameQuery(), and StreamClientAccept().

#define ntohs (   x)    __byte_swap2(x)
#define ntohl (   x)    __byte_swap4(x)

Convert long value from network to host byte order.

Examples:
pingnet/pingnet.c.

Referenced by main(), NutDumpLcpOption(), NutDumpTcpHeader(), NutSNTPGetTime(), NutTcpOutput(), and NutTcpReject().


Typedef Documentation

typedef unsigned char u_char

Unsigned 8-bit value.

Todo:
We should switch to stdint.h as suggested by Dirk Kaufmann. See feature request #1282721.
typedef unsigned short u_short

Unsigned 16-bit value.

typedef unsigned int u_int

Unsigned int value.

typedef unsigned long u_long

Unsigned 32-bit value.

typedef unsigned long long u_longlong

Unsigned 64-bit value.

typedef void* HANDLE

Void pointer.

typedef unsigned short ureg_t

Unsigned register type.

The size of this type is equal to the size of a register, the hardware datapath or whatever might fit to give optimum performance for values from 0 to 255.

Typically 8 bit CPUs will use unsigned characters, 16 bit CPUs will use unsigned shorts etc.

typedef unsigned short reg_t

Signed register type.

Similar to ureg_t, but for signed values from -128 to +127.

typedef unsigned __PTRDIFF_TYPE__ uptr_t

Unsigned pointer value type.

The size of this type is at least the size of a memory pointer. For CPUs with 16 address bits this will be an unsigned short.