/*************************************************************************//* *//* Copyright Mentor Graphics Corporation 2002 *//* All Rights Reserved. *//* *//* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS *//* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS *//* SUBJECT TO LICENSE TERMS. *//* *//*************************************************************************//*************************************************************************//* *//* FILE NAME VERSION *//* *//* smi.c Nucleus PLUS 1.14 *//* *//* COMPONENT *//* *//* SM - Semaphore Management *//* *//* DESCRIPTION *//* *//* This file contains the initialization routine for the semaphore *//* management component. *//* *//* DATA STRUCTURES *//* *//* None *//* *//* FUNCTIONS *//* *//* SMI_Initialize Semaphore Management Init. *//* *//* DEPENDENCIES *//* *//* sm_defs.h Semaphore component constants*//* *//* HISTORY *//* *//* DATE REMARKS *//* *//* 03-01-1993 Created initial version 1.0 *//* 04-19-1993 Verified version 1.0 *//* 03-01-1994 Modified copyright, resulting in *//* version 1.1 *//* *//* 03-18-1994 Verified version 1.1 *//* 04-17-1996 updated to version 1.2 *//* 03-24-1998 Released version 1.3. *//* 03-26-1999 Released 1.11m (new release *//* numbering scheme) *//* 04-17-2002 Released version 1.13m *//* 11-07-2002 Released version 1.14 *//*************************************************************************/#define NU_SOURCE_FILE#include "sm_defs.h" /* Semaphore constants */#include "sm_extr.h" /* Semaphore interfaces *//* Define external inner-component global data references. */extern CS_NODE *SMD_Created_Semaphores_List;extern UNSIGNED SMD_Total_Semaphores;extern TC_PROTECT SMD_List_Protect;/*************************************************************************//* *//* FUNCTION *//* *//* SMI_Initialize *//* *//* DESCRIPTION *//* *//* This function initializes the data structures that control the *//* operation of the Semaphore component (SM). There are no *//* semaphores initially. This routine must be called from *//* Supervisor mode in Supervisor/User mode switching kernels. *//* *//* CALLED BY *//* *//* INC_Initialize System initialization *//* *//* CALLS *//* *//* None *//* *//* INPUTS *//* *//* None *//* *//* OUTPUTS *//* *//* SMD_Created_Semaphores_List List of created semaphores *//* SMD_Total_Semaphores Number of created semaphores *//* SMD_List_Protect Protection for semaphore list*//* *//* HISTORY *//* *//* DATE REMARKS *//* *//* 03-01-1993 Created initial version 1.0 *//* 04-19-1993 Verified version 1.0 *//* *//*************************************************************************/VOID SMI_Initialize(VOID){ /* Initialize the created semaphore list to NU_NULL. */ SMD_Created_Semaphores_List = NU_NULL; /* Initialize the total number of created semaphores to 0. */ SMD_Total_Semaphores = 0; /* Initialize the list protection structure. */ SMD_List_Protect.tc_tcb_pointer = NU_NULL;}