Intel® IXP400 Software

Operating System Abstraction Layer (OSAL)

24.3OS-Independent Core Module

As shown in Figure 105, the OS-independent component includes all the core functionality such as buffer management, platform- and module-specific OS-independent implementations, I/O memory map function implementations, and OSAL core services implementations. The Buffer Management module defines a memory buffer structure and functions for creating and managing buffer pools.

The I/O Memory and Endianness module includes support for I/O memory mapping under different operating systems as well as big and little endian support.

Core Module

The OSAL core module defines the following functionality:

Memory allocation

Threading

Interrupt handling

Thread synchronization

Delay functions

Time-related functions and macros

Inter-thread communication

Logging

Buffer Management Module

The OSAL Buffer Management Module implements the following functionality:

Buffer pool management (pool initialization and allocation)

Buffer management (buffer allocation and freeing)

I/O Memory and Endianness Module

The I/O memory management defines a set of macros allowing the user to gain and release access to memory-mapped I/O in an operating-system-independent fashion. Depending on the target platform and OS, gaining access can vary between no special behavior (statically mapped I/O), to dynamically mapped I/O through OS-specific functions (for example, ioremap() in Linux*). The Endianness module supports big and little endian.

24.4OS-Dependent Module

The OS-dependent component for a respective OS gets selected by the build system at build time. This component provides operating system services like timers, mutex, semaphores, and thread management. The OS translation functions are implemented for respective operating systems to translate the header fields of the OS buffers to IXP buffer format and vice versa. The OS-dependent component is also responsible for providing backward compatibility to Intel® IXP400 Software v1.4 software release. The core module is an non-optional module containing fundamental types, constants, functions and macros provided by the OSAL, and many of these items are used in the other modules as well.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

315

Page 315
Image 315
Intel IXP400 manual OS-Independent Core Module, OS-Dependent Module, Buffer Management Module, Memory and Endianness Module