Designing Embedded Networking Applications: Essential Insights for Developers of Intel IXP4XX Network Processor Systems

An Operating System Abstraction Layer (OSAL) is provided as part of the Intel IXP400 software version 1.5 and higher. The OSAL provides a set of abstracted operating-system services. We have provided implementations of these services for VxWorks, Linux kernel mode, and Windows CE. All access-layer components abstract their OS dependencies to this layer. Though primarily intended for use by the Intel IXP400 software access-layer components, these services are also available for use by your application-layer software. The OSAL layer includes the following modules:
Core operating system services module
Buffer pool management module
Virtual memory mapping of peripherals and endian adaptation.
For details of the OSAL API, please see the Intel IXP4XX software programmer's guide (Intel 2004c).
The OSAL's core operating system services module defines the following functionality:
Memory allocation
Thread management
Interrupt handling
Thread synchronization
Delay functions
Time-related functions and macros
Interthread communication
Logging services
Each function is described in more detail below.
The memory allocation API provides mechanisms to allocate and free memory. In particular, it provides the ability to allocate memory for use by device drivers. This memory is aligned on 32-byte boundaries. Macros are provided to manage the coherence of the memory when both the NPEs and the Intel XScale core are accessing the memory.
The module allows you to create, destroy, and control execution of threads in the operating system. The threads are mapped to different constructs in each operating system. For...