|  | /* | 
|  | * Copyright (c) 2011-2012, 2014 Wind River Systems, Inc. | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | /** | 
|  | * @file | 
|  | * @brief Stack frame created by swap (IA-32) | 
|  | * | 
|  | * This file details the stack frame generated by _Swap() when it saves a task | 
|  | * or thread's context. This is specific to the IA-32 processor architecture. | 
|  | * | 
|  | * NOTE: _Swap() does not use this file as it uses the push instruction to | 
|  | * save a context. Changes to the file will not automatically be picked up by | 
|  | * _Swap().  Conversely, changes to _Swap() should be mirrored here if the | 
|  | * stack frame is modified. | 
|  | */ | 
|  |  | 
|  | #ifndef _SWAPSTK_H | 
|  | #define _SWAPSTK_H | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifndef _ASMLANGUAGE | 
|  |  | 
|  | /* Stack of a saved context */ | 
|  | typedef struct s_SwapStk { | 
|  | unsigned int eax;     /* EAX register */ | 
|  | unsigned int ebp;     /* EBP register */ | 
|  | unsigned int ebx;     /* EBX register */ | 
|  | unsigned int esi;     /* ESI register */ | 
|  | unsigned int edi;     /* EDI register */ | 
|  | unsigned int retAddr; /* Return address of caller of _Swap() */ | 
|  | unsigned int param;   /* Parameter passed to _Swap() */ | 
|  | } tSwapStk; | 
|  |  | 
|  | #endif /* _ASMLANGUAGE */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* _SWAPSTK_H */ |