/* Program generated by Cbasic 6.0.0 */ /******************************************************************************* Copyright by Telesoft Europe AB 1990, 1991. Copyright by Telelogic Malmoe AB 1991, 1992, 1993, 1994. Copyright by Telelogic AB 1994 - 2007. This Program is owned by Telelogic and is protected by national copyright laws and international copyright treaties. Telelogic grants you the right to use this Program on one computer or in one local computer network at any one time. Under this License you may only modify the source code for the purpose of adapting it to your environment. You must reproduce and include any copyright and trademark notices on all copies of the source code. You may not use, copy, merge, modify or transfer the Program except as provided in this License. Telelogic does not warrant that the Program will meet your requirements or that the operation of the Program will be uninterrupted and error free. You are solely responsible that the selection of the Program and the modification of the source code will achieve your intended results and that the results are actually obtained. *******************************************************************************/ /* # $FileId: scttypes.h 145 : 2007/05/08 pon */ /* FILE INDEX 00 Utility macros 01 Main User oriented #ifdef 02 Dependent #ifdef 03 C Library 04 SDL Model macro expansions 05 Utility #ifdef 06 Constants 07 Forward Declarations 08 SDL predefined types (except SDL_PId) 09 SDL_PId 10 Signal Set 11 Procedure ( = Prd ) 12 Process ( = Prs ) 13 Timer 14 Signal 15 Symbol Table 16 Global Data Structure 17 sctos 18 sctenv 19 sctsdl 20 sctpost 21 sctutil 22 sctmon 23 THREADED integration */ /****+*************************************************************** 00 Utility macros ********************************************************************/ /* to be used for inserting comments in in-line C-code in SDL. the syntax is: COMMENT(( your free format comment text )) */ struct _xSystemData; /****+*************************************************************** 01 Main User oriented #ifdef ********************************************************************/ /*---+--------------------------------------------------------------- #ifdef SCTDEBCOM -------------------------------------------------------------------*/ /* Simulator for host. Can be executed from SDL Suite or from OS. Requires post.o */ /* This is kernel Simulation in Generate-Options. */ /*---+--------------------------------------------------------------- #ifdef SCTDEB -------------------------------------------------------------------*/ /* Stand alone simulator for any environment. Should be executed from OS. */ /*---+--------------------------------------------------------------- #ifdef SCTDEBCLCOM -------------------------------------------------------------------*/ /* Simulator with real time for host. Can be executed from SDL Suite or from OS. Requires post.o */ /* This is kernel RealTimeSimulation in Generate-Options. */ /*---+--------------------------------------------------------------- #ifdef SCTDEBCLENVCOM -------------------------------------------------------------------*/ /* Simulator, with real time and env functions, for any environment. May be executed from OS or form Sim-UI. */ /* This is kernel ApplicationDebug in Generate-Options. */ /*---+--------------------------------------------------------------- #ifdef SCTDEBCL -------------------------------------------------------------------*/ /* Stand alone simulator with real time for any environment. Should be executed from OS. */ /*---+--------------------------------------------------------------- #ifdef SCTDEBCLENV -------------------------------------------------------------------*/ /* Stand alone simulator, with real time and env functions, for any environment. Should be executed from OS. */ /*---+--------------------------------------------------------------- #ifdef SCTAPPLENV -------------------------------------------------------------------*/ /* Application without clock. */ /*---+--------------------------------------------------------------- #ifdef SCTAPPLCLENV -------------------------------------------------------------------*/ /* Application!. */ /* This is kernel Application in Generate-Options. */ /*---+--------------------------------------------------------------- #ifdef SCTOPT1APPLCLENV -------------------------------------------------------------------*/ /* Application with minimal memory requirements. Real cannot be used. no Channel information */ /*---+--------------------------------------------------------------- #ifdef SCTOPT2APPLCLENV -------------------------------------------------------------------*/ /* Application with minimal memory requirements. Real cannot be used. const for all Channel information */ /*---+--------------------------------------------------------------- #ifdef SCTPERFSIM -------------------------------------------------------------------*/ /* Suitable for execution of performance simulations. */ /****+*************************************************************** 02 Dependent #ifdef ********************************************************************/ /*---+--------------------------------------------------------------- #ifdef THREADED_POSIX_THREADS -------------------------------------------------------------------*/ /* Threaded Light OS-integration. Application using POSIX threads. Currently tested only on Linux. */ /*---+--------------------------------------------------------------- Dependent user oriented #ifdef -------------------------------------------------------------------*/ /* Turn on all XE... .*/ /*---+--------------------------------------------------------------- Dependent function oriented #ifdef -------------------------------------------------------------------*/ /****+*************************************************************** 03 C Library ********************************************************************/ /*---+--------------------------------------------------------------- Compiler -------------------------------------------------------------------*/ /*---+--------------------------------------------------------------- General ANSI section -------------------------------------------------------------------*/ /*** *string.h - declarations for string manipulation functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function declarations for the string * manipulation functions. * [ANSI/System V] * * [Public] * ****/ #pragma once /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ /* Note on use of "deprecate": * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them. * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards. * In fact, these functions are NOT deprecated from the standard. * * Full details can be found in our documentation by searching for "Security Enhancements in the CRT". */ /*** *sal.h - markers for documenting the semantics of APIs * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * sal.h provides a set of annotations to describe how a function uses its * parameters - the assumptions it makes about them, and the guarantees it makes * upon finishing. * * [Public] * ****/ /* ------------------------------------------------------------------------------- Introduction sal.h provides a set of annotations to describe how a function uses its parameters - the assumptions it makes about them, and the guarantees it makes upon finishing. Annotations may be placed before either a function parameter's type or its return type, and describe the function's behavior regarding the parameter or return value. There are two classes of annotations: buffer annotations and advanced annotations. Buffer annotations describe how functions use their pointer parameters, and advanced annotations either describe complex/unusual buffer behavior, or provide additional information about a parameter that is not otherwise expressible. ------------------------------------------------------------------------------- Buffer Annotations The most important annotations in sal.h provide a consistent way to annotate buffer parameters or return values for a function. Each of these annotations describes a single buffer (which could be a string, a fixed-length or variable-length array, or just a pointer) that the function interacts with: where it is, how large it is, how much is initialized, and what the function does with it. The appropriate macro for a given buffer can be constructed using the table below. Just pick the appropriate values from each category, and combine them together with a leading underscore. Some combinations of values do not make sense as buffer annotations. Only meaningful annotations can be added to your code; for a list of these, see the buffer annotation definitions section. Only a single buffer annotation should be used for each parameter. |------------|------------|---------|--------|----------|----------|---------------| | Level | Usage | Size | Output | NullTerm | Optional | Parameters | |------------|------------|---------|--------|----------|----------|---------------| | <> | <> | <> | <> | _z | <> | <> | | _deref | _in | _ecount | _full | _nz | _opt | (size) | | _deref_opt | _out | _bcount | _part | | | (size,length) | | | _inout | | | | | | | | | | | | | | |------------|------------|---------|--------|----------|----------|---------------| Level: Describes the buffer pointer's level of indirection from the parameter or return value 'p'. <> : p is the buffer pointer. _deref : *p is the buffer pointer. p must not be NULL. _deref_opt : *p may be the buffer pointer. p may be NULL, in which case the rest of the annotation is ignored. Usage: Describes how the function uses the buffer. <> : The buffer is not accessed. If used on the return value or with _deref, the function will provide the buffer, and it will be uninitialized at exit. Otherwise, the caller must provide the buffer. This should only be used for alloc and free functions. _in : The function will only read from the buffer. The caller must provide the buffer and initialize it. Cannot be used with _deref. _out : The function will only write to the buffer. If used on the return value or with _deref, the function will provide the buffer and initialize it. Otherwise, the caller must provide the buffer, and the function will initialize it. _inout : The function may freely read from and write to the buffer. The caller must provide the buffer and initialize it. If used with _deref, the buffer may be reallocated by the function. Size: Describes the total size of the buffer. This may be less than the space actually allocated for the buffer, in which case it describes the accessible amount. <> : No buffer size is given. If the type specifies the buffer size (such as with LPSTR and LPWSTR), that amount is used. Otherwise, the buffer is one element long. Must be used with _in, _out, or _inout. _ecount : The buffer size is an explicit element count. _bcount : The buffer size is an explicit byte count. Output: Describes how much of the buffer will be initialized by the function. For _inout buffers, this also describes how much is initialized at entry. Omit this category for _in buffers; they must be fully initialized by the caller. <> : The type specifies how much is initialized. For instance, a function initializing an LPWSTR must NULL-terminate the string. _full : The function initializes the entire buffer. _part : The function initializes part of the buffer, and explicitly indicates how much. NullTerm: States if the present of a '\0' marks the end of valid elements in the buffer. _z : A '\0' indicated the end of the buffer _nz : The buffer may not be null terminated and a '\0' does not indicate the end of the buffer. Optional: Describes if the buffer itself is optional. <> : The pointer to the buffer must not be NULL. _opt : The pointer to the buffer might be NULL. It will be checked before being dereferenced. Parameters: Gives explicit counts for the size and length of the buffer. <> : There is no explicit count. Use when neither _ecount nor _bcount is used. (size) : Only the buffer's total size is given. Use with _ecount or _bcount but not _part. (size,length) : The buffer's total size and initialized length are given. Use with _ecount_part and _bcount_part. ------------------------------------------------------------------------------- Buffer Annotation Examples LWSTDAPI_(BOOL) StrToIntExA( LPCSTR pszString, -- No annotation required, const implies __in. DWORD dwFlags, __out int *piRet -- A pointer whose dereference will be filled in. ); void MyPaintingFunction( __in HWND hwndControl, -- An initialized read-only parameter. __in_opt HDC hdcOptional, -- An initialized read-only parameter that might be NULL. __inout IPropertyStore *ppsStore -- An initialized parameter that may be freely used -- and modified. ); LWSTDAPI_(BOOL) PathCompactPathExA( __out_ecount(cchMax) LPSTR pszOut, -- A string buffer with cch elements that will -- be NULL terminated on exit. LPCSTR pszSrc, -- No annotation required, const implies __in. UINT cchMax, DWORD dwFlags ); HRESULT SHLocalAllocBytes( size_t cb, __deref_bcount(cb) T **ppv -- A pointer whose dereference will be set to an -- uninitialized buffer with cb bytes. ); __inout_bcount_full(cb) : A buffer with cb elements that is fully initialized at entry and exit, and may be written to by this function. __out_ecount_part(count, *countOut) : A buffer with count elements that will be partially initialized by this function. The function indicates how much it initialized by setting *countOut. ------------------------------------------------------------------------------- Advanced Annotations Advanced annotations describe behavior that is not expressible with the regular buffer macros. These may be used either to annotate buffer parameters that involve complex or conditional behavior, or to enrich existing annotations with additional information. __success(expr) f : indicates whether function f succeeded or not. If is true at exit, all the function's guarantees (as given by other annotations) must hold. If is false at exit, the caller should not expect any of the function's guarantees to hold. If not used, the function must always satisfy its guarantees. Added automatically to functions that indicate success in standard ways, such as by returning an HRESULT. __nullterminated p : Pointer p is a buffer that may be read or written up to and including the first NULL character or pointer. May be used on typedefs, which marks valid (properly initialized) instances of that type as being NULL-terminated. __nullnullterminated p : Pointer p is a buffer that may be read or written up to and including the first sequence of two NULL characters or pointers. May be used on typedefs, which marks valid instances of that type as being double-NULL terminated. __reserved v : Value v must be 0/NULL, reserved for future use. __checkReturn v : Return value v must not be ignored by callers of this function. __typefix(ctype) v : Value v should be treated as an instance of ctype, rather than its declared type. __override f : Specify C#-style 'override' behaviour for overriding virtual methods. __callback f : Function f can be used as a function pointer. __format_string p : Pointer p is a string that contains % markers in the style of printf. __blocksOn(resource) f : Function f blocks on the resource 'resource'. __fallthrough : Annotates switch statement labels where fall-through is desired, to distinguish from forgotten break statements. ------------------------------------------------------------------------------- Advanced Annotation Examples __success(return == TRUE) LWSTDAPI_(BOOL) PathCanonicalizeA(__out_ecount(MAX_PATH) LPSTR pszBuf, LPCSTR pszPath) : pszBuf is only guaranteed to be NULL-terminated when TRUE is returned. typedef __nullterminated WCHAR* LPWSTR : Initialized LPWSTRs are NULL-terminated strings. __out_ecount(cch) __typefix(LPWSTR) void *psz : psz is a buffer parameter which will be a NULL-terminated WCHAR string at exit, and which initially contains cch WCHARs. ------------------------------------------------------------------------------- */ #pragma once /* ------------------------------------------------------------------------------- Helper Macro Definitions These express behavior common to many of the high-level annotations. DO NOT USE THESE IN YOUR CODE. ------------------------------------------------------------------------------- */ /* The helper annotations are only understood by the compiler version used by various defect detection tools. When the regular compiler is running, they are defined into nothing, and do not affect the compiled code. */ /* ------------------------------------------------------------------------------- Buffer Annotation Definitions Any of these may be used to directly annotate functions, but only one should be used for each parameter. To determine which annotation to use for a given buffer, use the table in the buffer annotations section. ------------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------------- Advanced Annotation Definitions Any of these may be used to directly annotate functions, and may be used in combination with each other or with regular buffer macros. For an explanation of each annotation, see the advanced annotations section. ------------------------------------------------------------------------------- */ #pragma pack(push,8) /*** *vadefs.h - defines helper macros for stdarg.h * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This is a helper file for stdarg.h * * [Public] * ****/ #pragma once /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) typedef __w64 unsigned int uintptr_t; typedef char * va_list; #pragma pack(pop) /* preprocessor string helpers */ /* Define _CRTIMP_NOIA64 */ /* Define _CRTIMP2 */ /* Define _CRTIMP_ALTERNATIVE */ /* Define _MRTIMP */ /* Define _MRTIMP2 */ /* define a specific constant for mixed mode */ /* Define __STDC_SECURE_LIB__ */ /* Retain__GOT_SECURE_LIB__ for back-compat */ /* Default value for __STDC_WANT_SECURE_LIB__ is 1 */ /* Turn off warnings if __STDC_WANT_SECURE_LIB__ is 0 */ /* See note on use of deprecate at the top of this file */ /* Define _CRT_INSECURE_DEPRECATE */ /* See note on use of deprecate at the top of this file */ /* Define _CRT_INSECURE_DEPRECATE_MEMORY */ /* See note on use of deprecate at the top of this file */ /* Define _CRT_INSECURE_DEPRECATE_GLOBALS */ /* See note on use of deprecate at the top of this file */ /* Define _CRT_MANAGED_HEAP_DEPRECATE */ /* See note on use of deprecate at the top of this file */ /* _SECURECRT_FILL_BUFFER_PATTERN is the same as _bNoMansLandFill */ /* obsolete stuff */ /* Define _CRT_OBSOLETE */ /* See note on use of deprecate at the top of this file */ /* jit64 instrinsic stuff */ /* Define overload switches */ /* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0 */ /* Define _CRT_NONSTDC_DEPRECATE */ /* See note on use of deprecate at the top of this file */ typedef __w64 unsigned int size_t; typedef size_t rsize_t; typedef __w64 int intptr_t; typedef __w64 int ptrdiff_t; typedef unsigned short wchar_t; typedef unsigned short wint_t; typedef unsigned short wctype_t; /* errcode is deprecated in favor or errno_t, which is part of the standard proposal */ __declspec(deprecated("This name was supported during some Whidbey pre-releases. Instead, use the standard name errno_t.")) typedef int errcode; typedef int errno_t; typedef __w64 long __time32_t; /* 32-bit time value */ typedef __int64 __time64_t; /* 64-bit time value */ typedef __time64_t time_t; /* time value */ /* Define _CRTNOALIAS, _CRTRESTRICT */ /* Define __cdecl for non-Microsoft compilers */ /* _TRUNCATE */ /* helper macros for cpp overloads */ struct threadlocaleinfostruct; struct threadmbcinfostruct; typedef struct threadlocaleinfostruct * pthreadlocinfo; typedef struct threadmbcinfostruct * pthreadmbcinfo; struct __lc_time_data; typedef struct localeinfo_struct { pthreadlocinfo locinfo; pthreadmbcinfo mbcinfo; } _locale_tstruct, *_locale_t; typedef struct tagLC_ID { unsigned short wLanguage; unsigned short wCountry; unsigned short wCodePage; } LC_ID, *LPLC_ID; typedef struct threadlocaleinfostruct { int refcount; unsigned int lc_codepage; unsigned int lc_collate_cp; unsigned long lc_handle[6]; /* LCID */ LC_ID lc_id[6]; struct { char *locale; wchar_t *wlocale; int *refcount; int *wrefcount; } lc_category[6]; int lc_clike; int mb_cur_max; int * lconv_intl_refcount; int * lconv_num_refcount; int * lconv_mon_refcount; struct lconv * lconv; int * ctype1_refcount; unsigned short * ctype1; const unsigned short * pctype; const unsigned char * pclmap; const unsigned char * pcumap; struct __lc_time_data * lc_time_curr; } threadlocinfo; #pragma pack(pop) /* Define NULL pointer value */ /* For backwards compatibility */ /* Function prototypes */ void * __cdecl _memccpy( void * _Dst, const void * _Src, int _Val, size_t _MaxCount); void * __cdecl memchr( const void * _Buf , int _Val, size_t _MaxCount); int __cdecl _memicmp( const void * _Buf1, const void * _Buf2, size_t _Size); int __cdecl _memicmp_l( const void * _Buf1, const void * _Buf2, size_t _Size, _locale_t _Locale); int __cdecl memcmp( const void * _Buf1, const void * _Buf2, size_t _Size); void * __cdecl memcpy( void * _Dst, const void * _Src, size_t _Size); errno_t __cdecl memcpy_s( void * _Dst, rsize_t _DstSize, const void * _Src, rsize_t _MaxCount); void * __cdecl memset( void * _Dst, int _Val, size_t _Size); /* Non-ANSI names for compatibility */ __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_memccpy" ". See online help for details.")) void * __cdecl memccpy( void * _Dst, const void * _Src, int _Val, size_t _Size); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_memicmp" ". See online help for details.")) int __cdecl memicmp( const void * _Buf1, const void * _Buf2, size_t _Size); errno_t __cdecl _strset_s( char * _Dst, size_t _DstSize, int _Value); char * __cdecl _strset( char *_Dest, int _Value); errno_t __cdecl strcpy_s( char * _Dst, rsize_t _DstSize, const char * _Src); char * __cdecl strcpy( char *_Dest, const char * _Source); errno_t __cdecl strcat_s( char * _Dst, rsize_t _DstSize, const char * _Src); char * __cdecl strcat( char *_Dest, const char * _Source); int __cdecl strcmp( const char * _Str1, const char * _Str2); size_t __cdecl strlen( const char * _Str); size_t __cdecl strnlen( const char * _Str, size_t _MaxCount); static __inline size_t __cdecl strnlen_s( const char * _Str, size_t _MaxCount) { return strnlen(_Str, _MaxCount); } errno_t __cdecl memmove_s( void * _Dst, rsize_t _DstSize, const void * _Src, rsize_t _MaxCount); void * __cdecl memmove( void * _Dst, const void * _Src, size_t _Size); char * __cdecl _strdup( const char * _Src); char * __cdecl strchr( const char * _Str, int _Val); int __cdecl _stricmp( const char * _Str1, const char * _Str2); int __cdecl _strcmpi( const char * _Str1, const char * _Str2); int __cdecl _stricmp_l( const char * _Str1, const char * _Str2, _locale_t _Locale); int __cdecl strcoll( const char * _Str1, const char * _Str2); int __cdecl _strcoll_l( const char * _Str1, const char * _Str2, _locale_t _Locale); int __cdecl _stricoll( const char * _Str1, const char * _Str2); int __cdecl _stricoll_l( const char * _Str1, const char * _Str2, _locale_t _Locale); int __cdecl _strncoll ( const char * _Str1, const char * _Str2, size_t _MaxCount); int __cdecl _strncoll_l( const char * _Str1, const char * _Str2, size_t _MaxCount, _locale_t _Locale); int __cdecl _strnicoll ( const char * _Str1, const char * _Str2, size_t _MaxCount); int __cdecl _strnicoll_l( const char * _Str1, const char * _Str2, size_t _MaxCount, _locale_t _Locale); size_t __cdecl strcspn( const char * _Str, const char * _Control); char * __cdecl _strerror( const char * _ErrMsg); errno_t __cdecl _strerror_s( char * _Buf, size_t _SizeInBytes, const char * _ErrMsg); char * __cdecl strerror( int); errno_t __cdecl strerror_s( char * _Buf, size_t _SizeInBytes, int _ErrNum); errno_t __cdecl _strlwr_s( char * _Str, size_t _Size); char * __cdecl _strlwr( char *_String); errno_t __cdecl _strlwr_s_l( char * _Str, size_t _Size, _locale_t _Locale); char * __cdecl _strlwr_l( char *_String, _locale_t _Locale); errno_t __cdecl strncat_s( char * _Dst, rsize_t _DstSize, const char * _Src, rsize_t _MaxCount); #pragma warning(push) #pragma warning(disable:6059) /* prefast noise VSW 489802 */ char * __cdecl strncat( char *_Dest, const char * _Source, size_t _Count); #pragma warning(pop) int __cdecl strncmp( const char * _Str1, const char * _Str2, size_t _MaxCount); int __cdecl _strnicmp( const char * _Str1, const char * _Str2, size_t _MaxCount); int __cdecl _strnicmp_l( const char * _Str1, const char * _Str2, size_t _MaxCount, _locale_t _Locale); errno_t __cdecl strncpy_s( char * _Dst, rsize_t _DstSize, const char * _Src, rsize_t _MaxCount); char * __cdecl strncpy( char *_Dest, const char * _Source, size_t _Count); errno_t __cdecl _strnset_s( char * _Str, size_t _Size, int _Val, size_t _MaxCount); char * __cdecl _strnset( char *_Dest, int _Val, size_t _Count); char * __cdecl strpbrk( const char * _Str, const char * _Control); char * __cdecl strrchr( const char * _Str, int _Ch); char * __cdecl _strrev( char * _Str); size_t __cdecl strspn( const char * _Str, const char * _Control); char * __cdecl strstr( const char * _Str, const char * _SubStr); char * __cdecl strtok( char * _Str, const char * _Delim); char * __cdecl strtok_s( char * _Str, const char * _Delim, char ** _Context); errno_t __cdecl _strupr_s( char * _Str, size_t _Size); char * __cdecl _strupr( char *_String); errno_t __cdecl _strupr_s_l( char * _Str, size_t _Size, _locale_t _Locale); char * __cdecl _strupr_l( char *_String, _locale_t _Locale); size_t __cdecl strxfrm ( char * _Dst, const char * _Src, size_t _MaxCount); size_t __cdecl _strxfrm_l( char * _Dst, const char * _Src, size_t _MaxCount, _locale_t _Locale); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strdup" ". See online help for details.")) char * __cdecl strdup( const char * _Src); /* prototypes for oldnames.lib functions */ __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strcmpi" ". See online help for details.")) int __cdecl strcmpi( const char * _Str1, const char * _Str2); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_stricmp" ". See online help for details.")) int __cdecl stricmp( const char * _Str1, const char * _Str2); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strlwr" ". See online help for details.")) char * __cdecl strlwr( char * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strnicmp" ". See online help for details.")) int __cdecl strnicmp( const char * _Str1, const char * _Str, size_t _MaxCount); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strnset" ". See online help for details.")) char * __cdecl strnset( char * _Str, int _Val, size_t _MaxCount); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strrev" ". See online help for details.")) char * __cdecl strrev( char * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strset" ". See online help for details.")) char * __cdecl strset( char * _Str, int _Val); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_strupr" ". See online help for details.")) char * __cdecl strupr( char * _Str); /* wide function prototypes, also declared in wchar.h */ wchar_t * __cdecl _wcsdup( const wchar_t * _Str); errno_t __cdecl wcscat_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src); wchar_t * __cdecl wcscat( wchar_t *_Dest, const wchar_t * _Source); wchar_t * __cdecl wcschr( const wchar_t * _Str, wchar_t _Ch); int __cdecl wcscmp( const wchar_t * _Str1, const wchar_t * _Str2); errno_t __cdecl wcscpy_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src); wchar_t * __cdecl wcscpy( wchar_t *_Dest, const wchar_t * _Source); size_t __cdecl wcscspn( const wchar_t * _Str, const wchar_t * _Control); size_t __cdecl wcslen( const wchar_t * _Str); size_t __cdecl wcsnlen( const wchar_t * _Src, size_t _MaxCount); static __inline size_t __cdecl wcsnlen_s( const wchar_t * _Src, size_t _MaxCount) { return wcsnlen(_Src, _MaxCount); } errno_t __cdecl wcsncat_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src, rsize_t _MaxCount); wchar_t * __cdecl wcsncat( wchar_t *_Dest, const wchar_t * _Source, size_t _Count); int __cdecl wcsncmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); errno_t __cdecl wcsncpy_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src, rsize_t _MaxCount); wchar_t * __cdecl wcsncpy( wchar_t *_Dest, const wchar_t * _Source, size_t _Count); wchar_t * __cdecl wcspbrk( const wchar_t * _Str, const wchar_t * _Control); wchar_t * __cdecl wcsrchr( const wchar_t * _Str, wchar_t _Ch); size_t __cdecl wcsspn( const wchar_t * _Str, const wchar_t * _Control); wchar_t * __cdecl wcsstr( const wchar_t * _Str, const wchar_t * _SubStr); wchar_t * __cdecl wcstok( wchar_t * _Str, const wchar_t * _Delim); wchar_t * __cdecl wcstok_s( wchar_t * _Str, const wchar_t * _Delim, wchar_t ** _Context); wchar_t * __cdecl _wcserror( int _ErrNum); errno_t __cdecl _wcserror_s( wchar_t * _Buf, size_t _SizeInWords, int _ErrNum); wchar_t * __cdecl __wcserror( const wchar_t * _Str); errno_t __cdecl __wcserror_s( wchar_t * _Buffer, size_t _SizeInWords, const wchar_t * _ErrMsg); int __cdecl _wcsicmp( const wchar_t * _Str1, const wchar_t * _Str2); int __cdecl _wcsicmp_l( const wchar_t * _Str1, const wchar_t * _Str2, _locale_t _Locale); int __cdecl _wcsnicmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); int __cdecl _wcsnicmp_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); errno_t __cdecl _wcsnset_s( wchar_t * _Dst, size_t _DstSizeInWords, wchar_t _Val, size_t _MaxCount); wchar_t * __cdecl _wcsnset( wchar_t *_Str, wchar_t _Val, size_t _MaxCount); wchar_t * __cdecl _wcsrev( wchar_t * _Str); errno_t __cdecl _wcsset_s( wchar_t * _Str, size_t _SizeInWords, wchar_t _Val); wchar_t * __cdecl _wcsset( wchar_t *_Str, wchar_t _Val); errno_t __cdecl _wcslwr_s( wchar_t * _Str, size_t _SizeInWords); wchar_t * __cdecl _wcslwr( wchar_t *_String); errno_t __cdecl _wcslwr_s_l( wchar_t * _Str, size_t _SizeInWords, _locale_t _Locale); wchar_t * __cdecl _wcslwr_l( wchar_t *_String, _locale_t _Locale); errno_t __cdecl _wcsupr_s( wchar_t * _Str, size_t _Size); wchar_t * __cdecl _wcsupr( wchar_t *_String); errno_t __cdecl _wcsupr_s_l( wchar_t * _Str, size_t _Size, _locale_t _Locale); wchar_t * __cdecl _wcsupr_l( wchar_t *_String, _locale_t _Locale); size_t __cdecl wcsxfrm( wchar_t * _Dst, const wchar_t * _Src, size_t _MaxCount); size_t __cdecl _wcsxfrm_l( wchar_t * _Dst, const wchar_t *_Src, size_t _MaxCount, _locale_t _Locale); int __cdecl wcscoll( const wchar_t * _Str1, const wchar_t * _Str2); int __cdecl _wcscoll_l( const wchar_t * _Str1, const wchar_t * _Str2, _locale_t _Locale); int __cdecl _wcsicoll( const wchar_t * _Str1, const wchar_t * _Str2); int __cdecl _wcsicoll_l( const wchar_t * _Str1, const wchar_t *_Str2, _locale_t _Locale); int __cdecl _wcsncoll( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); int __cdecl _wcsncoll_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); int __cdecl _wcsnicoll( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); int __cdecl _wcsnicoll_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsdup" ". See online help for details.")) wchar_t * __cdecl wcsdup( const wchar_t * _Str); /* old names */ /* prototypes for oldnames.lib functions */ __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsicmp" ". See online help for details.")) int __cdecl wcsicmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsnicmp" ". See online help for details.")) int __cdecl wcsnicmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsnset" ". See online help for details.")) wchar_t * __cdecl wcsnset( wchar_t * _Str, wchar_t _Val, size_t _MaxCount); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsrev" ". See online help for details.")) wchar_t * __cdecl wcsrev( wchar_t * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsset" ". See online help for details.")) wchar_t * __cdecl wcsset( wchar_t * _Str, wchar_t _Val); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcslwr" ". See online help for details.")) wchar_t * __cdecl wcslwr( wchar_t * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsupr" ". See online help for details.")) wchar_t * __cdecl wcsupr( wchar_t * _Str); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_wcsicoll" ". See online help for details.")) int __cdecl wcsicoll( const wchar_t * _Str1, const wchar_t * _Str2); /*** *stdlib.h - declarations/definitions for commonly used library functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This include file contains the function declarations for commonly * used library functions which either don't fit somewhere else, or, * cannot be declared in the normal place for other reasons. * [ANSI] * * [Public] * ****/ #pragma once /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ /*** *limits.h - implementation dependent values * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Contains defines for a number of implementation dependent values * which are commonly used in C programs. * [ANSI] * * [Public] * ****/ #pragma once /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ /* minimum signed 64 bit value */ /* maximum signed 64 bit value */ /* maximum unsigned 64 bit value */ /* While waiting to the C standard committee to finalize the decision on RSIZE_MAX and rsize_t, * we define RSIZE_MAX as SIZE_MAX */ /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) /* Define NULL pointer value */ /* Definition of the argument values for the exit() function */ typedef int (__cdecl * _onexit_t)(void); /* Non-ANSI name for compatibility */ /* Data structure definitions for div and ldiv runtimes. */ typedef struct _div_t { int quot; int rem; } div_t; typedef struct _ldiv_t { long quot; long rem; } ldiv_t; /* * structs used to fool the compiler into not generating floating point * instructions when copying and pushing [long] double values */ #pragma pack(4) typedef struct { unsigned char ld[10]; } _LDOUBLE; #pragma pack() typedef struct { double x; } _CRT_DOUBLE; typedef struct { float f; } _CRT_FLOAT; /* push and pop long, which is #defined as __int64 by a spec2k test */ typedef struct { /* * Assume there is a long double type */ long double x; } _LONGDOUBLE; #pragma pack(4) typedef struct { unsigned char ld12[12]; } _LDBL12; #pragma pack() /* Maximum value that can be returned by the rand function. */ /* * Maximum number of bytes in multi-byte character in the current locale * (also defined in ctype.h). */ extern int __mb_cur_max; int __cdecl ___mb_cur_max_func(void); int __cdecl ___mb_cur_max_l_func(_locale_t); /* Minimum and maximum macros */ /* * Sizes for buffers used by the _makepath() and _splitpath() functions. * note that the sizes include space for 0-terminator */ /* * Argument values for _set_error_mode(). */ /* * Argument values for _set_abort_behavior(). */ /* * Sizes for buffers used by the getenv/putenv family of functions. */ /* a purecall handler procedure. Never returns normally */ typedef void (__cdecl *_purecall_handler)(void); /* establishes a purecall handler for the process */ _purecall_handler __cdecl _set_purecall_handler( _purecall_handler _Handler); _purecall_handler __cdecl _get_purecall_handler(); /* a invalid_arg handler procedure. */ typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t); /* establishes a invalid_arg handler for the process */ _invalid_parameter_handler __cdecl _set_invalid_parameter_handler( _invalid_parameter_handler _Handler); _invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void); /* External variable declarations */ extern int * __cdecl _errno(void); errno_t __cdecl _set_errno( int _Value); errno_t __cdecl _get_errno( int * _Value); unsigned long * __cdecl __doserrno(void); errno_t __cdecl _set_doserrno( unsigned long _Value); errno_t __cdecl _get_doserrno( unsigned long * _Value); /* you can't modify this, but it is non-const for backcompat */ char ** __cdecl __sys_errlist(void); int * __cdecl __sys_nerr(void); extern int __argc; /* count of cmd line args */ extern char ** __argv; /* pointer to table of cmd line args */ extern wchar_t ** __wargv; /* pointer to table of wide cmd line args */ extern char ** _environ; /* pointer to environment table */ extern wchar_t ** _wenviron; /* pointer to wide environment table */ extern char * _pgmptr; /* points to the module (EXE) name */ extern wchar_t * _wpgmptr; /* points to the module (EXE) wide name */ errno_t __cdecl _get_pgmptr( char ** _Value); errno_t __cdecl _get_wpgmptr( wchar_t ** _Value); extern int _fmode; /* default file translation mode */ errno_t __cdecl _set_fmode( int _Mode); errno_t __cdecl _get_fmode( int * _PMode); /* Windows major/minor and O.S. version numbers */ #pragma warning(push) #pragma warning(disable:4141) __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) extern unsigned int _osplatform; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) extern unsigned int _osver; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) extern unsigned int _winver; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) extern unsigned int _winmajor; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) extern unsigned int _winminor; #pragma warning(pop) __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_osplatform( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_osver( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_winver( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_winmajor( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_winminor( unsigned int * _Value); /* _countof helper */ /* function prototypes */ __declspec(noreturn) void __cdecl exit( int _Code); __declspec(noreturn) void __cdecl _exit( int _Code); void __cdecl abort(void); unsigned int __cdecl _set_abort_behavior( unsigned int _Flags, unsigned int _Mask); int __cdecl abs( int _X); long __cdecl labs( long _X); __int64 __cdecl _abs64(__int64); int __cdecl atexit(void (__cdecl *)(void)); double __cdecl atof( const char *_String); double __cdecl _atof_l( const char *_String, _locale_t _Locale); int __cdecl atoi( const char *_Str); int __cdecl _atoi_l( const char *_Str, _locale_t _Locale); long __cdecl atol( const char *_Str); long __cdecl _atol_l( const char *_Str, _locale_t _Locale); void * __cdecl bsearch_s( const void * _Key, const void * _Base, rsize_t _NumOfElements, rsize_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void * _Context); void * __cdecl bsearch( const void * _Key, const void * _Base, size_t _NumOfElements, size_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(const void *, const void *)); void __cdecl qsort_s( void * _Base, rsize_t _NumOfElements, rsize_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void *_Context); void __cdecl qsort( void * _Base, size_t _NumOfElements, size_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(const void *, const void *)); unsigned short __cdecl _byteswap_ushort( unsigned short _Short); unsigned long __cdecl _byteswap_ulong ( unsigned long _Long); unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 _Int64); div_t __cdecl div( int _Numerator, int _Denominator); char * __cdecl getenv( const char * _VarName); errno_t __cdecl getenv_s( size_t * _ReturnSize, char * _DstBuf, rsize_t _DstSize, const char * _VarName); errno_t __cdecl _dupenv_s( char **_PBuffer, size_t * _PBufferSizeInBytes, const char * _VarName); errno_t __cdecl _itoa_s( int _Value, char * _DstBuf, size_t _Size, int _Radix); char * __cdecl _itoa( int _Value, char *_Dest, int _Radix); errno_t __cdecl _i64toa_s( __int64 _Val, char * _DstBuf, size_t _Size, int _Radix); char * __cdecl _i64toa( __int64 _Val, char * _DstBuf, int _Radix); errno_t __cdecl _ui64toa_s( unsigned __int64 _Val, char * _DstBuf, size_t _Size, int _Radix); char * __cdecl _ui64toa( unsigned __int64 _Val, char * _DstBuf, int _Radix); __int64 __cdecl _atoi64( const char * _String); __int64 __cdecl _atoi64_l( const char * _String, _locale_t _Locale); __int64 __cdecl _strtoi64( const char * _String, char ** _EndPtr, int _Radix); __int64 __cdecl _strtoi64_l( const char * _String, char ** _EndPtr, int _Radix, _locale_t _Locale); unsigned __int64 __cdecl _strtoui64( const char * _String, char ** _EndPtr, int _Radix); unsigned __int64 __cdecl _strtoui64_l( const char * _String, char ** _EndPtr, int _Radix, _locale_t _Locale); ldiv_t __cdecl ldiv( long _Numerator, long _Denominator); errno_t __cdecl _ltoa_s( long _Val, char * _DstBuf, size_t _Size, int _Radix); char * __cdecl _ltoa( long _Value, char *_Dest, int _Radix); int __cdecl mblen( const char * _Ch, size_t _MaxCount); int __cdecl _mblen_l( const char * _Ch, size_t _MaxCount, _locale_t _Locale); size_t __cdecl _mbstrlen( const char * _Str); size_t __cdecl _mbstrlen_l( const char *_Str, _locale_t _Locale); size_t __cdecl _mbstrnlen( const char *_Str, size_t _MaxCount); size_t __cdecl _mbstrnlen_l( const char *_Str, size_t _MaxCount, _locale_t _Locale); int __cdecl mbtowc( wchar_t * _DstCh, const char * _SrcCh, size_t _SrcSizeInBytes); int __cdecl _mbtowc_l( wchar_t * _DstCh, const char * _SrcCh, size_t _SrcSizeInBytes, _locale_t _Locale); errno_t __cdecl mbstowcs_s( size_t * _PtNumOfCharConverted, wchar_t * _DstBuf, size_t _SizeInWords, const char * _SrcBuf, size_t _MaxCount ); size_t __cdecl mbstowcs( wchar_t *_Dest, const char * _Source, size_t _MaxCount); errno_t __cdecl _mbstowcs_s_l( size_t * _PtNumOfCharConverted, wchar_t * _DstBuf, size_t _SizeInWords, const char * _SrcBuf, size_t _MaxCount, _locale_t _Locale); size_t __cdecl _mbstowcs_l( wchar_t *_Dest, const char * _Source, size_t _MaxCount, _locale_t _Locale); int __cdecl rand(void); int __cdecl _set_error_mode( int _Mode); void __cdecl srand( unsigned int _Seed); double __cdecl strtod( const char * _Str, char ** _EndPtr); double __cdecl _strtod_l( const char * _Str, char ** _EndPtr, _locale_t _Locale); long __cdecl strtol( const char * _Str, char ** _EndPtr, int _Radix ); long __cdecl _strtol_l( const char *_Str, char **_EndPtr, int _Radix, _locale_t _Locale); unsigned long __cdecl strtoul( const char * _Str, char ** _EndPtr, int _Radix); unsigned long __cdecl _strtoul_l(const char * _Str, char **_EndPtr, int _Radix, _locale_t _Locale); int __cdecl system( const char * _Command); errno_t __cdecl _ultoa_s( unsigned long _Val, char * _DstBuf, size_t _Size, int _Radix); char * __cdecl _ultoa( unsigned long _Value, char *_Dest, int _Radix); int __cdecl wctomb( char * _MbCh, wchar_t _WCh); int __cdecl _wctomb_l( char * _MbCh, wchar_t _WCh, _locale_t _Locale); errno_t __cdecl wctomb_s( int * _SizeConverted, char * _MbCh, rsize_t _SizeInBytes, wchar_t _WCh); errno_t __cdecl _wctomb_s_l( int * _SizeConverted, char * _MbCh, size_t _SizeInBytes, wchar_t _WCh, _locale_t _Locale); errno_t __cdecl wcstombs_s( size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes); size_t __cdecl wcstombs( char *_Dest, const wchar_t * _Source, size_t _MaxCount); errno_t __cdecl _wcstombs_s_l( size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes, _locale_t _Locale); size_t __cdecl _wcstombs_l( char *_Dest, const wchar_t * _Source, size_t _MaxCount, _locale_t _Locale); __declspec(noalias) __declspec(restrict) void * __cdecl calloc( size_t _NumOfElements, size_t _SizeOfElements); __declspec(noalias) void __cdecl free( void * _Memory); __declspec(noalias) __declspec(restrict) void * __cdecl malloc( size_t _Size); __declspec(noalias) __declspec(restrict) void * __cdecl realloc( void * _Memory, size_t _NewSize); __declspec(noalias) __declspec(restrict) void * __cdecl _recalloc( void * _Memory, size_t _Count, size_t _Size); __declspec(noalias) void __cdecl _aligned_free( void * _Memory); __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_malloc( size_t _Size, size_t _Alignment); __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_malloc( size_t _Size, size_t _Alignment, size_t _Offset); __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_realloc( void * _Memory, size_t _Size, size_t _Alignment); __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_recalloc( void * _Memory, size_t _Count, size_t _Size, size_t _Alignment); __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_realloc( void * _Memory, size_t _Size, size_t _Alignment, size_t _Offset); __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_recalloc( void * _Memory, size_t _Count, size_t _Size, size_t _Alignment, size_t _Offset); size_t __cdecl _aligned_msize( void * _Memory, size_t _Alignment, size_t _Offset); /* wide function prototypes, also declared in wchar.h */ errno_t __cdecl _itow_s ( int _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); wchar_t * __cdecl _itow( int _Value, wchar_t *_Dest, int _Radix); errno_t __cdecl _ltow_s ( long _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); wchar_t * __cdecl _ltow( long _Value, wchar_t *_Dest, int _Radix); errno_t __cdecl _ultow_s ( unsigned long _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); wchar_t * __cdecl _ultow( unsigned long _Value, wchar_t *_Dest, int _Radix); double __cdecl wcstod( const wchar_t * _Str, wchar_t ** _EndPtr); double __cdecl _wcstod_l( const wchar_t *_Str, wchar_t ** _EndPtr, _locale_t _Locale); long __cdecl wcstol( const wchar_t *_Str, wchar_t ** _EndPtr, int _Radix); long __cdecl _wcstol_l( const wchar_t *_Str, wchar_t **_EndPtr, int _Radix, _locale_t _Locale); unsigned long __cdecl wcstoul( const wchar_t *_Str, wchar_t ** _EndPtr, int _Radix); unsigned long __cdecl _wcstoul_l( const wchar_t *_Str, wchar_t **_EndPtr, int _Radix, _locale_t _Locale); wchar_t * __cdecl _wgetenv( const wchar_t * _VarName); errno_t __cdecl _wgetenv_s( size_t * _ReturnSize, wchar_t * _DstBuf, size_t _DstSizeInWords, const wchar_t * _VarName); errno_t __cdecl _wdupenv_s( wchar_t **_Buffer, size_t *_BufferSizeInWords, const wchar_t *_VarName); int __cdecl _wsystem( const wchar_t * _Command); double __cdecl _wtof( const wchar_t *_Str); double __cdecl _wtof_l( const wchar_t *_Str, _locale_t _Locale); int __cdecl _wtoi( const wchar_t *_Str); int __cdecl _wtoi_l( const wchar_t *_Str, _locale_t _Locale); long __cdecl _wtol( const wchar_t *_Str); long __cdecl _wtol_l( const wchar_t *_Str, _locale_t _Locale); errno_t __cdecl _i64tow_s( __int64 _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); wchar_t * __cdecl _i64tow( __int64 _Val, wchar_t * _DstBuf, int _Radix); errno_t __cdecl _ui64tow_s( unsigned __int64 _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); wchar_t * __cdecl _ui64tow( unsigned __int64 _Val, wchar_t * _DstBuf, int _Radix); __int64 __cdecl _wtoi64( const wchar_t *_Str); __int64 __cdecl _wtoi64_l( const wchar_t *_Str, _locale_t _Locale); __int64 __cdecl _wcstoi64( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix); __int64 __cdecl _wcstoi64_l( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix, _locale_t _Locale); unsigned __int64 __cdecl _wcstoui64( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix); unsigned __int64 __cdecl _wcstoui64_l( const wchar_t *_Str , wchar_t ** _EndPtr, int _Radix, _locale_t _Locale); /* Buffer size required to be passed to _gcvt, fcvt and other fp conversion routines */ char * __cdecl _fullpath( char * _FullPath, const char * _Path, size_t _SizeInBytes); errno_t __cdecl _ecvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDights, int * _PtDec, int * _PtSign); char * __cdecl _ecvt( double _Val, int _NumOfDigits, int * _PtDec, int * _PtSign); errno_t __cdecl _fcvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); char * __cdecl _fcvt( double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); errno_t __cdecl _gcvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDigits); char * __cdecl _gcvt( double _Val, int _NumOfDigits, char * _DstBuf); int __cdecl _atodbl( _CRT_DOUBLE * _Result, char * _Str); int __cdecl _atoldbl( _LDOUBLE * _Result, char * _Str); int __cdecl _atoflt( _CRT_FLOAT * _Result, char * _Str); int __cdecl _atodbl_l( _CRT_DOUBLE * _Result, char * _Str, _locale_t _Locale); int __cdecl _atoldbl_l( _LDOUBLE * _Result, char * _Str, _locale_t _Locale); int __cdecl _atoflt_l( _CRT_FLOAT * _Result, char * _Str, _locale_t _Locale); unsigned long __cdecl _lrotl( unsigned long _Val, int _Shift); unsigned long __cdecl _lrotr( unsigned long _Val, int _Shift); errno_t __cdecl _makepath_s( char * _PathResult, size_t _Size, const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext); void __cdecl _makepath( char *_Path, const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext); _onexit_t __cdecl _onexit( _onexit_t _Func); void __cdecl perror( const char * _ErrMsg); int __cdecl _putenv( const char * _EnvString); errno_t __cdecl _putenv_s( const char * _Name, const char * _Value); unsigned int __cdecl _rotl( unsigned int _Val, int _Shift); unsigned __int64 __cdecl _rotl64( unsigned __int64 _Val, int _Shift); unsigned int __cdecl _rotr( unsigned int _Val, int _Shift); unsigned __int64 __cdecl _rotr64( unsigned __int64 _Val, int _Shift); errno_t __cdecl _searchenv_s( const char * _Filename, const char * _EnvVar, char * _ResultPath, size_t _SizeInBytes); void __cdecl _searchenv( const char * _Filename, const char * _EnvVar, char *_ResultPath); void __cdecl _splitpath( const char * _FullPath, char * _Drive, char * _Dir, char * _Filename, char * _Ext); errno_t __cdecl _splitpath_s( const char * _FullPath, char * _Drive, size_t _DriveSize, char * _Dir, size_t _DirSize, char * _Filename, size_t _FilenameSize, char * _Ext, size_t _ExtSize); void __cdecl _swab( char * _Buf1, char * _Buf2, int _SizeInBytes); /* wide function prototypes, also declared in wchar.h */ wchar_t * __cdecl _wfullpath( wchar_t * _FullPath, const wchar_t * _Path, size_t _SizeInWords); errno_t __cdecl _wmakepath_s( wchar_t * _PathResult, size_t _SizeInWords, const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext); void __cdecl _wmakepath( wchar_t *_ResultPath, const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext); void __cdecl _wperror( const wchar_t * _ErrMsg); int __cdecl _wputenv( const wchar_t * _EnvString); errno_t __cdecl _wputenv_s( const wchar_t * _Name, const wchar_t * _Value); errno_t __cdecl _wsearchenv_s( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t * _ResultPath, size_t _SizeInWords); void __cdecl _wsearchenv( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t *_ResultPath); void __cdecl _wsplitpath( const wchar_t * _FullPath, wchar_t * _Drive, wchar_t * _Dir, wchar_t * _Filename, wchar_t * _Ext); errno_t __cdecl _wsplitpath_s( const wchar_t * _FullPath, wchar_t * _Drive, size_t _DriveSizeInWords, wchar_t * _Dir, size_t _DirSizeInWords, wchar_t * _Filename, size_t _FilenameSizeInWords, wchar_t * _Ext, size_t _ExtSizeInWords); /* The Win32 API SetErrorMode, Beep and Sleep should be used instead. */ __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "SetErrorMode" " instead. See online help for details.")) void __cdecl _seterrormode( int _Mode); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "Beep" " instead. See online help for details.")) void __cdecl _beep( unsigned _Frequency, unsigned _Duration); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "Sleep" " instead. See online help for details.")) void __cdecl _sleep( unsigned long _Duration); /* Non-ANSI names for compatibility */ #pragma warning(push) #pragma warning(disable: 4141) __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_ecvt" ". See online help for details.")) char * __cdecl ecvt( double _Val, int _NumOfDigits, int * _PtDec, int * _PtSign); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fcvt" ". See online help for details.")) char * __cdecl fcvt( double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_gcvt" ". See online help for details.")) char * __cdecl gcvt( double _Val, int _NumOfDigits, char * _DstBuf); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_itoa" ". See online help for details.")) char * __cdecl itoa( int _Val, char * _DstBuf, int _Radix); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_ltoa" ". See online help for details.")) char * __cdecl ltoa( long _Val, char * _DstBuf, int _Radix); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_putenv" ". See online help for details.")) int __cdecl putenv( const char * _EnvString); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_swab" ". See online help for details.")) void __cdecl swab( char * _Buf1, char * _Buf2, int _SizeInBytes); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_ultoa" ". See online help for details.")) char * __cdecl ultoa( unsigned long _Val, char * _Dstbuf, int _Radix); #pragma warning(pop) _onexit_t __cdecl onexit( _onexit_t _Func); #pragma pack(pop) /*** *stdarg.h - defines ANSI-style macros for variable argument functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file defines ANSI-style macros for accessing arguments * of functions which take a variable number of arguments. * [ANSI] * * [Public] * ****/ #pragma once /*** *stdio.h - definitions/declarations for standard I/O routines * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the structures, values, macros, and functions * used by the level 2 I/O ("standard I/O") routines. * [ANSI/System V] * * [Public] * ****/ #pragma once /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) /* Buffered I/O macros */ /* * Default number of supported streams. _NFILE is confusing and obsolete, but * supported anyway for backwards compatibility. */ /* * Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be * greater than or equal to _IOB_ENTRIES. */ struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE; /* Directory where temporary files may be created. */ /* L_tmpnam = length of string _P_tmpdir * + 1 if _P_tmpdir does not end in "/" or "\", else 0 * + 12 (for the filename string) * + 1 (for the null terminator) * L_tmpnam_s = length of string _P_tmpdir * + 1 if _P_tmpdir does not end in "/" or "\", else 0 * + 16 (for the filename string) * + 1 (for the null terminator) */ /* Seek method constants */ /* Define NULL pointer value */ /* Declare _iob[] array */ FILE * __cdecl __iob_func(void); /* Define file position type */ /* At this point we could switch both to long long, but we won't do that till next version to avoid any potential compat issues */ typedef __int64 fpos_t; /* constants used by _set_output_format */ /* Function prototypes */ int __cdecl _filbuf( FILE * _File ); int __cdecl _flsbuf( int _Ch, FILE * _File); FILE * __cdecl _fsopen( const char * _Filename, const char * _Mode, int _ShFlag); void __cdecl clearerr( FILE * _File); errno_t __cdecl clearerr_s( FILE * _File ); int __cdecl fclose( FILE * _File); int __cdecl _fcloseall(void); FILE * __cdecl _fdopen( int _FileHandle, const char * _Mode); int __cdecl feof( FILE * _File); int __cdecl ferror( FILE * _File); int __cdecl fflush( FILE * _File); int __cdecl fgetc( FILE * _File); int __cdecl _fgetchar(void); int __cdecl fgetpos( FILE * _File , fpos_t * _Pos); char * __cdecl fgets( char * _Buf, int _MaxCount, FILE * _File); int __cdecl _fileno( FILE * _File); char * __cdecl _tempnam( const char * _DirName, const char * _FilePrefix); int __cdecl _flushall(void); FILE * __cdecl fopen( const char * _Filename, const char * _Mode); errno_t __cdecl fopen_s( FILE ** _File, const char * _Filename, const char * _Mode); int __cdecl fprintf( FILE * _File, const char * _Format, ...); int __cdecl fprintf_s( FILE * _File, const char * _Format, ...); int __cdecl fputc( int _Ch, FILE * _File); int __cdecl _fputchar( int _Ch); int __cdecl fputs( const char * _Str, FILE * _File); size_t __cdecl fread( void * _DstBuf, size_t _ElementSize, size_t _Count, FILE * _File); size_t __cdecl fread_s( void * _DstBuf, size_t _DstSize, size_t _ElementSize, size_t _Count, FILE * _File); FILE * __cdecl freopen( const char * _Filename, const char * _Mode, FILE * _File); errno_t __cdecl freopen_s( FILE ** _File, const char * _Filename, const char * _Mode, FILE * _OldFile); int __cdecl fscanf( FILE * _File, const char * _Format, ...); int __cdecl _fscanf_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); int __cdecl fscanf_s( FILE * _File, const char * _Format, ...); int __cdecl _fscanf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); int __cdecl fsetpos( FILE * _File, const fpos_t * _Pos); int __cdecl fseek( FILE * _File, long _Offset, int _Origin); long __cdecl ftell( FILE * _File); int __cdecl _fseeki64( FILE * _File, __int64 _Offset, int _Origin); __int64 __cdecl _ftelli64( FILE * _File); size_t __cdecl fwrite( const void * _Str, size_t _Size, size_t _Count, FILE * _File); int __cdecl getc( FILE * _File); int __cdecl getchar(void); int __cdecl _getmaxstdio(void); char * __cdecl gets_s( char * _Buf, rsize_t _Size); char * __cdecl gets( char *_Buffer); int __cdecl _getw( FILE * _File); int __cdecl _pclose( FILE * _File); FILE * __cdecl _popen( const char * _Command, const char * _Mode); int __cdecl printf( const char * _Format, ...); int __cdecl printf_s( const char * _Format, ...); int __cdecl putc( int _Ch, FILE * _File); int __cdecl putchar( int _Ch); int __cdecl puts( const char * _Str); int __cdecl _putw( int _Word, FILE * _File); int __cdecl remove( const char * _Filename); int __cdecl rename( const char * _OldFilename, const char * _NewFilename); int __cdecl _unlink( const char * _Filename); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_unlink" ". See online help for details.")) int __cdecl unlink( const char * _Filename); void __cdecl rewind( FILE * _File); int __cdecl _rmtmp(void); int __cdecl scanf( const char * _Format, ...); int __cdecl _scanf_l( const char * _Format, _locale_t _Locale, ...); int __cdecl scanf_s( const char * _Format, ...); int __cdecl _scanf_s_l( const char * _Format, _locale_t _Locale, ...); void __cdecl setbuf( FILE * _File, char * _Buffer); int __cdecl _setmaxstdio( int _Max); unsigned int __cdecl _set_output_format( unsigned int _Format); unsigned int __cdecl _get_output_format(void); int __cdecl setvbuf( FILE * _File, char * _Buf, int _Mode, size_t _Size); int __cdecl _snprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, ...); int __cdecl sprintf_s( char * _DstBuf, size_t _DstSize, const char * _Format, ...); int __cdecl _scprintf( const char * _Format, ...); int __cdecl sscanf( const char * _Src, const char * _Format, ...); int __cdecl _sscanf_l( const char * _Src, const char * _Format, _locale_t _Locale, ...); int __cdecl sscanf_s( const char * _Src, const char * _Format, ...); int __cdecl _sscanf_s_l( const char * _Src, const char * _Format, _locale_t _Locale, ...); int __cdecl _snscanf( const char * _Src, size_t _MaxCount, const char * _Format, ...); int __cdecl _snscanf_l( const char * _Src, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); int __cdecl _snscanf_s( const char * _Src, size_t _MaxCount, const char * _Format, ...); int __cdecl _snscanf_s_l( const char * _Src, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); FILE * __cdecl tmpfile(void); errno_t __cdecl tmpfile_s( FILE ** _File); errno_t __cdecl tmpnam_s( char * _Buf, rsize_t _Size); char * __cdecl tmpnam( char *_Buffer); int __cdecl ungetc( int _Ch, FILE * _File); int __cdecl vfprintf( FILE * _File, const char * _Format, va_list _ArgList); int __cdecl vfprintf_s( FILE * _File, const char * _Format, va_list _ArgList); int __cdecl vprintf( const char * _Format, va_list _ArgList); int __cdecl vprintf_s( const char * _Format, va_list _ArgList); int __cdecl vsnprintf( char * _DstBuf, size_t _MaxCount, const char * _Format, va_list _ArgList); int __cdecl vsnprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, va_list _ArgList); int __cdecl _vsnprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, va_list _ArgList); #pragma warning(push) #pragma warning(disable:4793) int __cdecl _snprintf( char *_Dest, size_t _Count, const char * _Format, ...); int __cdecl _vsnprintf( char *_Dest, size_t _Count, const char * _Format, va_list _Args); #pragma warning(pop) int __cdecl vsprintf_s( char * _DstBuf, size_t _Size, const char * _Format, va_list _ArgList); #pragma warning(push) #pragma warning(disable:4793) int __cdecl sprintf( char *_Dest, const char * _Format, ...); int __cdecl vsprintf( char *_Dest, const char * _Format, va_list _Args); #pragma warning(pop) int __cdecl _vscprintf( const char * _Format, va_list _ArgList); int __cdecl _snprintf_c( char * _DstBuf, size_t _MaxCount, const char * _Format, ...); int __cdecl _vsnprintf_c( char *_DstBuf, size_t _MaxCount, const char * _Format, va_list _ArgList); int __cdecl _fprintf_p( FILE * _File, const char * _Format, ...); int __cdecl _printf_p( const char * _Format, ...); int __cdecl _sprintf_p( char * _Dst, size_t _MaxCount, const char * _Format, ...); int __cdecl _vfprintf_p( FILE * _File, const char * _Format, va_list _ArgList); int __cdecl _vprintf_p( const char * _Format, va_list _ArgList); int __cdecl _vsprintf_p( char * _Dst, size_t _MaxCount, const char * _Format, va_list _ArgList); int __cdecl _scprintf_p( const char * _Format, ...); int __cdecl _vscprintf_p( const char * _Format, va_list _ArgList); int __cdecl _set_printf_count_output( int _Value); int __cdecl _get_printf_count_output(); int __cdecl _printf_l( const char * _Format, _locale_t _Locale, ...); int __cdecl _printf_p_l( const char * _Format, _locale_t _Locale, ...); int __cdecl _printf_s_l( const char * _Format, _locale_t _Locale, ...); int __cdecl _vprintf_l( const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vprintf_p_l( const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vprintf_s_l( const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _fprintf_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); int __cdecl _fprintf_p_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); int __cdecl _fprintf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); int __cdecl _vfprintf_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vfprintf_p_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vfprintf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _sprintf_l( char * _DstBuf, const char * _Format, _locale_t _Locale, ...); int __cdecl _sprintf_p_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); int __cdecl _sprintf_s_l( char * _DstBuf, size_t _DstSize, const char * _Format, _locale_t _Locale, ...); int __cdecl _vsprintf_l( char * _DstBuf, const char * _Format, _locale_t, va_list _ArgList); int __cdecl _vsprintf_p_l( char * _DstBuf, size_t _MaxCount, const char* _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vsprintf_s_l( char * _DstBuf, size_t _DstSize, const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _scprintf_l( const char * _Format, _locale_t _Locale, ...); int __cdecl _scprintf_p_l( const char * _Format, _locale_t _Locale, ...); int __cdecl _vscprintf_l( const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vscprintf_p_l( const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _snprintf_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); int __cdecl _snprintf_c_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); int __cdecl _snprintf_s_l( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); int __cdecl _vsnprintf_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vsnprintf_c_l( char * _DstBuf, size_t _MaxCount, const char *, _locale_t _Locale, va_list _ArgList); int __cdecl _vsnprintf_s_l( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char* _Format, _locale_t _Locale, va_list _ArgList); /* wide function prototypes, also declared in wchar.h */ FILE * __cdecl _wfsopen( const wchar_t * _Filename, const wchar_t * _Mode, int _ShFlag); wint_t __cdecl fgetwc( FILE * _File); wint_t __cdecl _fgetwchar(void); wint_t __cdecl fputwc( wchar_t _Ch, FILE * _File); wint_t __cdecl _fputwchar( wchar_t _Ch); wint_t __cdecl getwc( FILE * _File); wint_t __cdecl getwchar(void); wint_t __cdecl putwc( wchar_t _Ch, FILE * _File); wint_t __cdecl putwchar( wchar_t _Ch); wint_t __cdecl ungetwc( wint_t _Ch, FILE * _File); wchar_t * __cdecl fgetws( wchar_t * _Dst, int _SizeInWords, FILE * _File); int __cdecl fputws( const wchar_t * _Str, FILE * _File); wchar_t * __cdecl _getws_s( wchar_t * _Str, size_t _SizeInWords); wchar_t * __cdecl _getws( wchar_t *_String); int __cdecl _putws( const wchar_t * _Str); int __cdecl fwprintf( FILE * _File, const wchar_t * _Format, ...); int __cdecl fwprintf_s( FILE * _File, const wchar_t * _Format, ...); int __cdecl wprintf( const wchar_t * _Format, ...); int __cdecl wprintf_s( const wchar_t * _Format, ...); int __cdecl _scwprintf( const wchar_t * _Format, ...); int __cdecl vfwprintf( FILE * _File, const wchar_t * _Format, va_list _ArgList); int __cdecl vfwprintf_s( FILE * _File, const wchar_t * _Format, va_list _ArgList); int __cdecl vwprintf( const wchar_t * _Format, va_list _ArgList); int __cdecl vwprintf_s( const wchar_t * _Format, va_list _ArgList); int __cdecl swprintf_s( wchar_t * _Dst, size_t _SizeInWords, const wchar_t * _Format, ...); int __cdecl vswprintf_s( wchar_t * _Dst, size_t _SizeInWords, const wchar_t * _Format, va_list _ArgList); int __cdecl _swprintf_c( wchar_t * _DstBuf, size_t _SizeInWords, const wchar_t * _Format, ...); int __cdecl _vswprintf_c( wchar_t * _DstBuf, size_t _SizeInWords, const wchar_t * _Format, va_list _ArgList); int __cdecl _snwprintf_s( wchar_t * _DstBuf, size_t _DstSizeInWords, size_t _MaxCount, const wchar_t * _Format, ...); int __cdecl _vsnwprintf_s( wchar_t * _DstBuf, size_t _DstSizeInWords, size_t _MaxCount, const wchar_t * _Format, va_list _ArgList); #pragma warning(push) #pragma warning(disable:4793) int __cdecl _snwprintf( wchar_t *_Dest, size_t _Count, const wchar_t * _Format, ...); int __cdecl _vsnwprintf( wchar_t *_Dest, size_t _Count, const wchar_t * _Format, va_list _Args); #pragma warning(pop) int __cdecl _fwprintf_p( FILE * _File, const wchar_t * _Format, ...); int __cdecl _wprintf_p( const wchar_t * _Format, ...); int __cdecl _vfwprintf_p( FILE * _File, const wchar_t * _Format, va_list _ArgList); int __cdecl _vwprintf_p( const wchar_t * _Format, va_list _ArgList); int __cdecl _swprintf_p( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, ...); int __cdecl _vswprintf_p( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, va_list _ArgList); int __cdecl _scwprintf_p( const wchar_t * _Format, ...); int __cdecl _vscwprintf_p( const wchar_t * _Format, va_list _ArgList); int __cdecl _wprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _wprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _wprintf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _vwprintf_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vwprintf_s_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _fwprintf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _fwprintf_p_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _fwprintf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _vfwprintf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vfwprintf_p_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vfwprintf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _swprintf_c_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _swprintf_p_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _swprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _vswprintf_c_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vswprintf_p_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vswprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _scwprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _scwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _vscwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _snwprintf_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _snwprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _vsnwprintf_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl _vsnwprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); /* we could end up with a double deprecation, disable warnings 4141 and 4996 */ #pragma warning(push) #pragma warning(disable:4141 4996 4793) __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) int __cdecl _swprintf( wchar_t *_Dest, const wchar_t * _Format, ...); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) int __cdecl _vswprintf( wchar_t *_Dest, const wchar_t * _Format, va_list _Args); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) int __cdecl __swprintf_l( wchar_t *_Dest, const wchar_t * _Format, _locale_t _Plocinfo, ...); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) int __cdecl __vswprintf_l( wchar_t *_Dest, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Args); #pragma warning(pop) /*** *swprintf.inl - inline definitions for (v)swprintf * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function definitions for (v)swprintf * * [Public] * ****/ #pragma once #pragma warning( push ) #pragma warning( disable : 4793 4412 ) static __inline int swprintf(wchar_t * _String, size_t _Count, const wchar_t * _Format, ...) { va_list _Arglist; int _Ret; ( _Arglist = (va_list)( &(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); _Ret = _vswprintf_c_l(_String, _Count, _Format, ((void *)0), _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4412 ) static __inline int __cdecl vswprintf(wchar_t * _String, size_t _Count, const wchar_t * _Format, va_list _Ap) { return _vswprintf_c_l(_String, _Count, _Format, ((void *)0), _Ap); } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4793 4412 ) static __inline int _swprintf_l(wchar_t * _String, size_t _Count, const wchar_t * _Format, _locale_t _Plocinfo, ...) { va_list _Arglist; int _Ret; ( _Arglist = (va_list)( &(_Plocinfo) ) + ( (sizeof(_Plocinfo) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); _Ret = _vswprintf_c_l(_String, _Count, _Format, _Plocinfo, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4412 ) static __inline int __cdecl _vswprintf_l(wchar_t * _String, size_t _Count, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Ap) { return _vswprintf_c_l(_String, _Count, _Format, _Plocinfo, _Ap); } #pragma warning( pop ) wchar_t * __cdecl _wtempnam( const wchar_t * _Directory, const wchar_t * _FilePrefix); int __cdecl _vscwprintf( const wchar_t * _Format, va_list _ArgList); int __cdecl _vscwprintf_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); int __cdecl fwscanf( FILE * _File, const wchar_t * _Format, ...); int __cdecl _fwscanf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl fwscanf_s( FILE * _File, const wchar_t * _Format, ...); int __cdecl _fwscanf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl swscanf( const wchar_t * _Src, const wchar_t * _Format, ...); int __cdecl _swscanf_l( const wchar_t * _Src, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl swscanf_s( const wchar_t *_Src, const wchar_t * _Format, ...); int __cdecl _swscanf_s_l( const wchar_t * _Src, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _snwscanf( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, ...); int __cdecl _snwscanf_l( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl _snwscanf_s( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, ...); int __cdecl _snwscanf_s_l( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl wscanf( const wchar_t * _Format, ...); int __cdecl _wscanf_l( const wchar_t * _Format, _locale_t _Locale, ...); int __cdecl wscanf_s( const wchar_t * _Format, ...); int __cdecl _wscanf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); FILE * __cdecl _wfdopen( int _FileHandle , const wchar_t * _Mode); FILE * __cdecl _wfopen( const wchar_t * _Filename, const wchar_t * _Mode); errno_t __cdecl _wfopen_s( FILE ** _File, const wchar_t * _Filename, const wchar_t * _Mode); FILE * __cdecl _wfreopen( const wchar_t * _Filename, const wchar_t * _Mode, FILE * _OldFile); errno_t __cdecl _wfreopen_s( FILE ** _File, const wchar_t * _Filename, const wchar_t * _Mode, FILE * _OldFile); FILE * __cdecl _wpopen( const wchar_t *_Command, const wchar_t * _Mode); int __cdecl _wremove( const wchar_t * _Filename); errno_t __cdecl _wtmpnam_s( wchar_t * _DstBuf, size_t _SizeInWords); wchar_t * __cdecl _wtmpnam( wchar_t *_Buffer); wint_t __cdecl _fgetwc_nolock( FILE * _File); wint_t __cdecl _fputwc_nolock( wchar_t _Ch, FILE * _File); wint_t __cdecl _ungetwc_nolock( wint_t _Ch, FILE * _File); /* Macro definitions */ void __cdecl _lock_file( FILE * _File); void __cdecl _unlock_file( FILE * _File); int __cdecl _fclose_nolock( FILE * _File); int __cdecl _fflush_nolock( FILE * _File); size_t __cdecl _fread_nolock( void * _DstBuf, size_t _ElementSize, size_t _Count, FILE * _File); size_t __cdecl _fread_nolock_s( void * _DstBuf, size_t _DstSize, size_t _ElementSize, size_t _Count, FILE * _File); int __cdecl _fseek_nolock( FILE * _File, long _Offset, int _Origin); long __cdecl _ftell_nolock( FILE * _File); int __cdecl _fseeki64_nolock( FILE * _File, __int64 _Offset, int _Origin); __int64 __cdecl _ftelli64_nolock( FILE * _File); size_t __cdecl _fwrite_nolock( const void * _DstBuf, size_t _Size, size_t _Count, FILE * _File); int __cdecl _ungetc_nolock( int _Ch, FILE * _File); /* Non-ANSI names for compatibility */ __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_tempnam" ". See online help for details.")) char * __cdecl tempnam( const char * _Directory, const char * _FilePrefix); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fcloseall" ". See online help for details.")) int __cdecl fcloseall(void); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fdopen" ". See online help for details.")) FILE * __cdecl fdopen( int _FileHandle, const char * _Format); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fgetchar" ". See online help for details.")) int __cdecl fgetchar(void); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fileno" ". See online help for details.")) int __cdecl fileno( FILE * _File); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_flushall" ". See online help for details.")) int __cdecl flushall(void); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fputchar" ". See online help for details.")) int __cdecl fputchar( int _Ch); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_getw" ". See online help for details.")) int __cdecl getw( FILE * _File); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_putw" ". See online help for details.")) int __cdecl putw( int _Ch, FILE * _File); __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_rmtmp" ". See online help for details.")) int __cdecl rmtmp(void); #pragma pack(pop) /*** *locale.h - definitions/declarations for localization routines * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the structures, values, macros, and functions * used by the localization routines. * * [Public] * ****/ #pragma once /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) /* define NULL pointer value */ /* Locale categories */ /* Locale convention structure */ struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; }; /* ANSI: char lconv members default is CHAR_MAX which is compile time dependent. Defining and using _charmax here causes CRT startup code to initialize lconv members properly */ /* function prototypes */ int __cdecl _configthreadlocale( int _Flag); char * __cdecl setlocale( int _Category, const char * _Locale); struct lconv * __cdecl localeconv(void); _locale_t __cdecl _get_current_locale(void); _locale_t __cdecl _create_locale( int _Category, const char * _Locale); void __cdecl _free_locale( _locale_t _Locale); /* use _get_current_locale, _create_locale and _free_locale, instead of these functions with double leading underscore */ __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "_get_current_locale" " instead. See online help for details.")) _locale_t __cdecl __get_current_locale(void); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "_create_locale" " instead. See online help for details.")) _locale_t __cdecl __create_locale( int _Category, const char * _Locale); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "_free_locale" " instead. See online help for details.")) void __cdecl __free_locale( _locale_t _Locale); /* wide function prototypes, also declared in wchar.h */ wchar_t * __cdecl _wsetlocale( int _Category, const wchar_t * _Locale); #pragma pack(pop) /* Define xptrint to be an unsigned type of same size as a pointer. Assume long int and ptr to be same size but prefer use of int. */ /* Define xint32 to be an int type of 4 bytes (or more) */ /*---+--------------------------------------------------------------- Nucleus MNT (Microsoft compiler) -------------------------------------------------------------------*/ /****+*************************************************************** 04 SDL Model macro expansions ********************************************************************/ /* ------------------ Variables at system level ------------------ */ /* ----------------- Extra components in IdNodes ----------------- */ /* System, system type */ /* System, system type */ /* Package */ /* Block, Block type */ /* Block substructure */ /* Process, Process type */ /* Service, Service type */ /* Procedure */ /* Signal */ /* Signal parameter */ /* Variable, formal parameter, struct component */ /* Channel, signal route, gate */ /* State */ /* Sort, syntype */ /* Literal */ /* ---------------- Variables in the PAD function ---------------- */ /* ------------------ Structure of PAD function ------------------ */ /* --------------------- Transition functions -------------------- */ /* ------------------------ yInit function ----------------------- */ /* Variables and function used to describe the static structure of the SDL system */ /* ------------------ Actions within transitions ----------------- */ /* ---------------------------- Output --------------------------- */ /* Used if env split into channels in MSC trace */ /* ----------------------------- RPC ----------------------------- */ /* Output of pCALL signal */ /* Output of pREPLY signal */ /* ---------------------------- IMPORT --------------------------- */ /* ---------------------------- Create --------------------------- */ /* ------------------------- Static Create ------------------------ */ /* ----------------------------- Stop ---------------------------- */ /* ---------------------------- Timers --------------------------- */ /* NOTE!!! TIMER_VARS HAS TO BE IDENTICAL TO SIGNAL_VARS, EXCEPT FOR TimerTime */ /* NOTE!!! TIMER_VARS_PARA HAS TO BE IDENTICAL TO TIMER_VARS, EXCEPT FOR field Next */ /* Set without parameters */ /* Set with parameters */ /* Reset without parameters */ /* Reset with parameters */ /* Active (timer active) */ /* Now */ /* ------------------------ Procedure call ----------------------- */ /* ----------------------- Procedure return ---------------------- */ /* --------------------------- Nextstate ------------------------- */ /* ----------------------------- Join ---------------------------- */ /* --------------------------- Decision -------------------------- */ /* Informal decisions */ /* Non-deterministic decisions */ /* ----------------------------- View ---------------------------- */ /* ------------------- Execution trace and Debug ----------------- */ /* -------------------------- Simulation ------------------------- */ /****+*************************************************************** 05 Utility #ifdef ********************************************************************/ /****+*************************************************************** 06 Constants ********************************************************************/ /* max length of input line */ /****+*************************************************************** 07 Forward Declarations ********************************************************************/ typedef struct xIdStruct *xIdNode; typedef struct xBlockSubstIdStruct *xBlockSubstIdNode; typedef struct xLiteralIdStruct *xLiteralIdNode; typedef struct xPackageIdStruct *xPackageIdNode; typedef struct xSystemIdStruct *xSystemIdNode; typedef struct xChannelIdStruct *xChannelIdNode; typedef struct xBlockIdStruct *xBlockIdNode; typedef struct xPrsIdStruct *xPrsIdNode; typedef struct xSrvIdStruct *xSrvIdNode; typedef struct xPrdIdStruct *xPrdIdNode; typedef struct xRemotePrdIdStruct *xRemotePrdIdNode; typedef struct xSignalIdStruct *xSignalIdNode; typedef struct xStateIdStruct *xStateIdNode; typedef struct xSortIdStruct *xSortIdNode; typedef struct xVarIdStruct *xVarIdNode; typedef struct xRemoteVarIdStruct *xRemoteVarIdNode; typedef struct xPrsStruct *xPrsNode; typedef struct xSrvStruct *xSrvNode; typedef struct xTimerStruct *xTimerNode; typedef struct xTimerParaStruct *xTimerParaNode; typedef struct xSignalStruct *xSignalNode; /****+*************************************************************** 08 SDL predefined types (except SDL_PId) ********************************************************************/ /******************************************************************************* Copyright by Telesoft Europe AB 1990-1991. Copyright by Telelogic Malmoe AB 1991-1994. Copyright by Telelogic AB 1994 - 2003. This Program is owned by Telelogic and is protected by national copyright laws and international copyright treaties. Telelogic grants you the right to use this Program on one computer or in one local computer network at any one time. Under this License you may only modify the source code for the purpose of adapting it to your environment. You must reproduce and include any copyright and trademark notices on all copies of the source code. You may not use, copy, merge, modify or transfer the Program except as provided in this License. Telelogic does not warrant that the Program will meet your requirements or that the operation of the Program will be uninterrupted and error free. You are solely responsible that the selection of the Program and the modification of the source code will achieve your intended results and that the results are actually obtained. *******************************************************************************/ /* # $FileId: sctpred.h 85 : 2005/10/05 pon */ /* FILE INDEX 01 Macros used in assign functions 02 Type info nodes 03 SDL predefined data types 04 Generic implementation of operators 05 Utility functions 06 Write buffer management 07 Generic read and write function */ /* This file contains implementation of the predefined data types except PId. The functions defined here can be found in the file sctpred.c. */ /****+*************************************************************** 01 Macros used in assign functions ********************************************************************/ /* XASS_1_2_3 should be read: 1 = AC : always copy 1 = MR : may reuse (take pointer if temporary object) 1 = AR : always reuse (take pointer) 2 = ASS : new object assigned to "variable" 2 = TMP : new object temporary 3 = FR : call free for old value refered to by variable 3 = NF : do not call free for old value */ /****+*************************************************************** 02 Type info nodes ********************************************************************/ /* moved her as SDL_Boolean is used by generic data model */ typedef int SDL_Boolean; typedef int SDL_boolean; /* These types are used by the generic data model, but also by the SDL encoders/decoders in the old data model */ typedef enum { /*SDL - standard types*/ type_SDL_Integer=128, type_SDL_Real=129, type_SDL_Natural=130, type_SDL_Boolean=131, type_SDL_Character=132, type_SDL_Time=133, type_SDL_Duration=134, type_SDL_Pid=135, type_SDL_Charstring=136, type_SDL_Bit=137, type_SDL_Bit_string=138, type_SDL_Octet=139, type_SDL_Octet_string=140, type_SDL_IA5String=141, type_SDL_NumericString=142, type_SDL_PrintableString=143, type_SDL_VisibleString=144, type_SDL_NULL=145, type_SDL_Object_identifier=146, /* SDL - standard ctypes */ type_SDL_ShortInt=150, type_SDL_LongInt=151, type_SDL_UnsignedShortInt=152, type_SDL_UnsignedInt=153, type_SDL_UnsignedLongInt=154, type_SDL_Float=155, type_SDL_Charstar=156, type_SDL_Voidstar=157, type_SDL_Voidstarstar=158, /* SDL - user defined types */ type_SDL_Syntype=170, type_SDL_Inherits=171, type_SDL_Enum=172, type_SDL_Struct=173, type_SDL_Union=174, type_SDL_UnionC=175, type_SDL_Choice=176, type_SDL_ChoicePresent=177, type_SDL_Powerset=178, type_SDL_GPowerset=179, type_SDL_Bag=180, type_SDL_String=181, type_SDL_LString=182, type_SDL_Array=183, type_SDL_Carray=184, type_SDL_GArray=185, type_SDL_Own=186, type_SDL_Oref=187, type_SDL_Ref=188, type_SDL_Userdef=189, type_SDL_EmptyType=190, type_SDL_ComBuf=191, /* SDL - signals */ type_SDL_Signal=200, type_SDL_SignalId=201 } tSDLTypeClass; struct tSDLFuncInfo; /* ------- General type information for SDL types ------- */ typedef const struct tSDLTypeInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; } tSDLTypeInfo; /* ------------------ Enumeration type ------------------ */ typedef const struct { int LiteralValue; char *LiteralName; } tSDLEnumLiteralInfo; typedef const struct tSDLEnumInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *CompOrFatherSort; int NoOfLiterals; tSDLEnumLiteralInfo *LiteralList; } tSDLEnumInfo; /* ---------- Syntype, Inherits, Own, Oref, Ref --------- */ typedef const struct tSDLGenInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *CompOrFatherSort; } tSDLGenInfo; /* ---------------------- Powerset ---------------------- */ typedef const struct tSDLPowersetInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *CompSort; int Length; int LowestValue; } tSDLPowersetInfo; /* ----------------------- Struct ----------------------- */ typedef int (*tGetFunc) (void *); typedef void (*tAssFunc) (void *, int); typedef const struct { unsigned OffsetPresent; /* 0 if not optional */ void *DefaultValue; } tSDLFieldOptInfo; typedef const struct { tGetFunc GetTag; tAssFunc AssTag; } tSDLFieldBitFInfo; typedef const struct { tSDLTypeInfo *CompSort; char *Name; unsigned Offset; /* ~0 for bitfield */ tSDLFieldOptInfo *ExtraInfo; } tSDLFieldInfo; typedef const struct tSDLStructInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLFieldInfo *Components; int NumOfComponents; } tSDLStructInfo; /* -------------------- Choice, Union ------------------- */ typedef const struct { tSDLTypeInfo *CompSort; char *Name; } tSDLChoiceFieldInfo; typedef const struct tSDLChoiceInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLChoiceFieldInfo *Components; int NumOfComponents; unsigned OffsetToUnion; unsigned TagSortSize; tSDLTypeInfo *TagSort; } tSDLChoiceInfo; /* ------------------- Array, CArray -------------------- */ typedef const struct tSDLArrayInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *CompSort; int Length; tSDLTypeInfo *IndexSort; int LowestValue; } tSDLArrayInfo; /* ----------------------- GArray ----------------------- */ typedef const struct tSDLGArrayInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *IndexSort; tSDLTypeInfo *CompSort; unsigned yrecSize; unsigned yrecIndexOffset; unsigned yrecDataOffset; unsigned arrayDataOffset; } tSDLGArrayInfo; /* ----- GPowerset, Bag, String, Object_Identifier ------ */ typedef const struct tSDLGenListInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *CompSort; unsigned yrecSize; unsigned yrecDataOffset; } tSDLGenListInfo; /* ---------------------- LString ----------------------- */ typedef const struct tSDLLStringInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; tSDLTypeInfo *CompSort; int MaxLength; unsigned DataOffset; } tSDLLStringInfo; /* ---------------------- Userdef ----------------------- */ /* used for user defined types #ADT(T(h)) */ typedef const struct tSDLUserdefInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; char *Name; xIdNode FatherScope; xSortIdNode SortIdNode; } tSDLUserdefInfo; /* ----------------------- Signal ----------------------- */ typedef const struct { tSDLTypeInfo *ParaSort; unsigned Offset; } tSDLSignalParaInfo; typedef const struct tSDLSignalInfoS { tSDLTypeClass TypeClass; unsigned char OpNeeds; unsigned SortSize; struct tSDLFuncInfo *OpFuncs; tSDLSignalParaInfo *Param; int NoOfPara; } tSDLSignalInfo; typedef struct tSDLFuncInfo { void *(*AssFunc) (void *, void *, int); SDL_Boolean (*EqFunc) (void *, void *); void (*FreeFunc) (void **); char *(*WriteFunc) (void *); int (*ReadFunc) (void *); } tSDLFuncInfo; extern tSDLTypeInfo ySDL_SDL_Integer; extern tSDLTypeInfo ySDL_SDL_Real; extern tSDLTypeInfo ySDL_SDL_Natural; extern tSDLTypeInfo ySDL_SDL_Boolean; extern tSDLTypeInfo ySDL_SDL_Character; extern tSDLTypeInfo ySDL_SDL_Time; extern tSDLTypeInfo ySDL_SDL_Duration; extern tSDLTypeInfo ySDL_SDL_PId; extern tSDLTypeInfo ySDL_SDL_Charstring; extern tSDLTypeInfo ySDL_SDL_Bit; extern tSDLTypeInfo ySDL_SDL_Bit_String; extern tSDLTypeInfo ySDL_SDL_Octet; extern tSDLTypeInfo ySDL_SDL_Octet_String; extern tSDLTypeInfo ySDL_SDL_IA5String; extern tSDLTypeInfo ySDL_SDL_NumericString; extern tSDLTypeInfo ySDL_SDL_PrintableString; extern tSDLTypeInfo ySDL_SDL_VisibleString; extern tSDLTypeInfo ySDL_SDL_Null; extern tSDLGenListInfo ySDL_SDL_Object_Identifier; /* End section with type info nodes */ extern int GenericGetValue (unsigned, void *); extern void GenericSetValue (unsigned, void *, int); /****+*************************************************************** 03 SDL predefined data types ********************************************************************/ /*---+--------------------------------------------------------------- Boolean -------------------------------------------------------------------*/ /* moved first #if !defined(X_COMPACT_BOOL) typedef int SDL_Boolean; typedef int SDL_boolean; #else typedef unsigned char SDL_Boolean; typedef unsigned char SDL_boolean; #endif */ /*---+--------------------------------------------------------------- Bit -------------------------------------------------------------------*/ typedef unsigned char SDL_Bit; /*---+--------------------------------------------------------------- Real -------------------------------------------------------------------*/ /* Cmicro support for X_SHORT_REAL, use float i ctypes package */ typedef double SDL_Real; typedef double SDL_real; /* Literals as in C */ /* #include */ /* #define PLUS_INFINITY MAXDOUBLE */ /* #define MINUS_INFINITY -MAXDOUBLE */ extern SDL_Real xDiv_SDL_Real (SDL_Real, SDL_Real); /*---+--------------------------------------------------------------- Integer -------------------------------------------------------------------*/ typedef int SDL_Integer; typedef int SDL_integer; /* Literals as in C */ extern SDL_Integer xDiv_SDL_Integer (SDL_Integer, SDL_Integer); extern SDL_Integer xRem_SDL_Integer (SDL_Integer, SDL_Integer); extern SDL_Integer xMod_SDL_Integer (SDL_Integer, SDL_Integer); extern SDL_Integer xFix_SDL_Integer (SDL_Real); /*---+--------------------------------------------------------------- Natural -------------------------------------------------------------------*/ typedef int SDL_Natural; typedef int SDL_natural; extern int xTest_SDL_Natural (void *); extern SDL_Natural xTstA_SDL_Natural (SDL_Natural); extern SDL_Natural xTstI_SDL_Natural (SDL_Natural); /*---+--------------------------------------------------------------- Character -------------------------------------------------------------------*/ typedef char SDL_Character; typedef char SDL_character; /* predefined literals for non-printable characters, other literals as in C */ /*---+--------------------------------------------------------------- PId -------------------------------------------------------------------*/ /* see kernel for implementation of PId */ /*---+--------------------------------------------------------------- Null -------------------------------------------------------------------*/ typedef int SDL_Null; /*---+--------------------------------------------------------------- Charstring -------------------------------------------------------------------*/ typedef char *SDL_Charstring; typedef char *SDL_charstring; extern void xAss_SDL_Charstring (SDL_Charstring *, SDL_Charstring, int); extern SDL_Boolean xEq_SDL_Charstring (SDL_Charstring, SDL_Charstring); extern SDL_Character *yAddr_SDL_Charstring (SDL_Charstring *, SDL_Integer); extern SDL_Character xExtr_SDL_Charstring (SDL_Charstring, SDL_Integer); extern SDL_Charstring xMkString_SDL_Charstring (SDL_Character); extern SDL_Integer xLength_SDL_Charstring (SDL_Charstring); extern SDL_Character xFirst_SDL_Charstring (SDL_Charstring); extern SDL_Character xLast_SDL_Charstring (SDL_Charstring); extern SDL_Charstring xConcat_SDL_Charstring (SDL_Charstring, SDL_Charstring); extern SDL_Charstring xSubString_SDL_Charstring (SDL_Charstring,SDL_Integer,SDL_Integer); /*---+--------------------------------------------------------------- IA5String -------------------------------------------------------------------*/ typedef SDL_Charstring SDL_IA5String; extern int xTest_SDL_IA5String (void *); extern SDL_IA5String xTstA_SDL_IA5String (SDL_IA5String); extern SDL_IA5String xTstI_SDL_IA5String (SDL_IA5String); /*---+--------------------------------------------------------------- NumericString -------------------------------------------------------------------*/ typedef SDL_Charstring SDL_NumericString; extern int xTest_SDL_NumericString (void *); extern SDL_NumericString xTstA_SDL_NumericString (SDL_NumericString); extern SDL_NumericString xTstI_SDL_NumericString (SDL_NumericString); /*---+--------------------------------------------------------------- PrintableString -------------------------------------------------------------------*/ typedef SDL_Charstring SDL_PrintableString; extern int xTest_SDL_PrintableString (void *); extern SDL_PrintableString xTstA_SDL_PrintableString (SDL_PrintableString); extern SDL_PrintableString xTstI_SDL_PrintableString (SDL_PrintableString); /*---+--------------------------------------------------------------- VisibleString -------------------------------------------------------------------*/ typedef SDL_Charstring SDL_VisibleString; extern int xTest_SDL_VisibleString (void *); extern SDL_VisibleString xTstA_SDL_VisibleString (SDL_VisibleString); extern SDL_VisibleString xTstI_SDL_VisibleString (SDL_VisibleString); /*---+--------------------------------------------------------------- Octet -------------------------------------------------------------------*/ typedef unsigned char SDL_Octet; extern SDL_Bit *yAddr_SDL_Octet (SDL_Octet *, SDL_Integer); extern SDL_Bit xExtr_SDL_Octet (SDL_Octet, SDL_Integer); extern SDL_Octet xDiv_SDL_Octet (SDL_Octet, SDL_Octet); extern SDL_Octet xMod_SDL_Octet (SDL_Octet, SDL_Octet); extern SDL_Octet xRem_SDL_Octet (SDL_Octet, SDL_Octet); extern SDL_Octet xBitStr_SDL_Octet (SDL_Charstring); extern SDL_Octet xHexStr_SDL_Octet (SDL_Charstring); /*---+--------------------------------------------------------------- Duration -------------------------------------------------------------------*/ typedef struct { int s, ns; } SDL_Duration; typedef SDL_Duration SDL_duration; extern SDL_Duration SDL_Duration_Lit (int s, int ns); extern SDL_Duration xPlus_SDL_Duration (SDL_Duration, SDL_Duration); extern SDL_Duration xMonMinus_SDL_Duration (SDL_Duration); extern SDL_Duration xMult_SDL_Duration (SDL_Duration, SDL_Real); extern SDL_Duration xDiv_SDL_Duration (SDL_Duration, SDL_Real); extern SDL_Boolean xLT_SDL_Duration (SDL_Duration, SDL_Duration); extern SDL_Boolean xLE_SDL_Duration (SDL_Duration, SDL_Duration); extern SDL_Boolean xEq_SDL_Duration (SDL_Duration, SDL_Duration); /*---+--------------------------------------------------------------- Time -------------------------------------------------------------------*/ typedef SDL_Duration SDL_Time; typedef SDL_Time SDL_time; /*---+--------------------------------------------------------------- Bit_String -------------------------------------------------------------------*/ typedef struct { int Length; int IsAssigned; unsigned char * Bits; } SDL_Bit_String; extern SDL_Bit *yAddr_SDL_Bit_String (SDL_Bit_String *, SDL_Integer); extern SDL_Bit xExtr_SDL_Bit_String (SDL_Bit_String, SDL_Integer); extern SDL_Bit_String *xNot_SDL_Bit_String (SDL_Bit_String *, SDL_Bit_String *); extern SDL_Bit_String *xAnd_SDL_Bit_String (SDL_Bit_String *, SDL_Bit_String *, SDL_Bit_String *); extern SDL_Bit_String *xOr_SDL_Bit_String (SDL_Bit_String *, SDL_Bit_String *, SDL_Bit_String *); extern SDL_Bit_String *xXor_SDL_Bit_String (SDL_Bit_String *, SDL_Bit_String *, SDL_Bit_String *); extern SDL_Bit_String *xImpl_SDL_Bit_String (SDL_Bit_String *, SDL_Bit_String *, SDL_Bit_String *); extern SDL_Bit_String *xMkString_SDL_Bit_String (SDL_Bit, SDL_Bit_String *); extern SDL_Integer xLength_SDL_Bit_String (SDL_Bit_String *); extern SDL_Bit xFirst_SDL_Bit_String (SDL_Bit_String *); extern SDL_Bit xLast_SDL_Bit_String (SDL_Bit_String *); extern SDL_Bit_String *xConcat_SDL_Bit_String (SDL_Bit_String *, SDL_Bit_String *, SDL_Bit_String *); extern SDL_Bit_String *xSubString_SDL_Bit_String (SDL_Bit_String *, SDL_Integer, SDL_Integer, SDL_Bit_String *); extern SDL_Bit_String *xBitStr_SDL_Bit_String (SDL_Charstring, SDL_Bit_String *); extern SDL_Bit_String *xHexStr_SDL_Bit_String (SDL_Charstring, SDL_Bit_String *); /*---+--------------------------------------------------------------- Octet_String -------------------------------------------------------------------*/ /* An error in the implementation of Octet_String was introduced in SDT 3.2, when Octet_String was first supported. Octet_Strings should be indexed from 1, not from 0 as the SDL Suite implementation assumes. Note that Bit_Strings are indexed from 0. The inconsistancy between Octet_Strings and Bit_Strings in SDL is inherited from ASN.1. In SDT 3.6 this indexing error for Octet_Strings is corrected. To obtain the Octet_String behaviour from SDT3.2 - SDT3.5, OCTET_STRING_START_INDEX_0 should be defined, for example by uncommenting the #define below. It is not necessary to recompile the kernel for this to take effect. This change will effect the behaviour of indexing of Octet_Strings and the start parameter in operator SubString. */ /* #define OCTET_STRING_START_INDEX_0 */ typedef SDL_Bit_String SDL_Octet_String; extern SDL_Octet_String *xBitStr_SDL_Octet_String (SDL_Charstring, SDL_Octet_String *); extern SDL_Octet_String *xHexStr_SDL_Octet_String (SDL_Charstring, SDL_Octet_String *); extern SDL_Bit_String *xBit_String_SDL_Octet_String (SDL_Octet_String *, SDL_Octet_String *); extern SDL_Octet_String *xOctet_String_SDL_Octet_String (SDL_Bit_String *, SDL_Octet_String *); /*---+--------------------------------------------------------------- Object_Identifier -------------------------------------------------------------------*/ typedef struct SDL_Object_Identifier_ystruct *SDL_Object_Identifier_yptr; typedef struct SDL_Object_Identifier_ystruct { SDL_Object_Identifier_yptr Suc; SDL_Natural Data; } SDL_Object_Identifier_yrec; typedef struct { SDL_Object_Identifier_yptr First; SDL_Object_Identifier_yptr Last; int Length; int IsAssigned; } SDL_Object_Identifier; /****+*************************************************************** 04 Generic implementation of operators ********************************************************************/ /* Type used to represent Powerset. */ typedef struct { unsigned long A[1]; } xPowerset_Type; /* Types used to represent a general String and GPowerset. */ typedef struct xString_ystruct *xString_yptr; typedef struct xString_ystruct { xString_yptr Suc; int Data; } xString_yrec; typedef struct { xString_yptr First; xString_yptr Last; int Length; int IsAssigned; } xString_Type; /* Types used to represent a limited String. */ typedef struct { int Length; int Data[1]; } xLString_Type; /* Types used to represent a general Bag. */ typedef struct xBag_ystruct *xBag_yptr; typedef struct xBag_ystruct { xBag_yptr Suc; int NoOfItems; int Data; } xBag_yrec; typedef struct { xBag_yptr First; xBag_yptr Last; int Length; int IsAssigned; } xBag_Type; /* Types used to represent a general Array. */ typedef struct xGArray_ystruct *xGArray_yptr; typedef struct xGArray_ystruct { xGArray_yptr Suc; SDL_Integer Index; SDL_Integer Data; } xGArray_yrec; typedef struct { xGArray_yptr First; xGArray_yptr Last; int IsAssigned; SDL_Integer Data; } xGArray_Type; /* Types used to represent a ComBuf. */ typedef struct xComBuf_Struct * xComBuf; typedef struct xComBuf_Struct { int IsAssigned; int *el; } xComBuf_Rec; extern SDL_Boolean GenericIsAssigned (void *, tSDLTypeInfo *); extern void GenericFreeSort (void **, tSDLTypeInfo *); extern SDL_Boolean GenericEqualSort (void *, void *, tSDLTypeInfo *); extern void * GenericAssignSort (void *, void *, int, tSDLTypeInfo *); extern void * GenericMakeStruct (void *, tSDLTypeInfo *, ...); extern void * GenericMakeChoice (void *, tSDLTypeInfo *, int, void *); extern void * GenericMakeOwnRef (tSDLTypeInfo *, void *); extern void * GenericMakeArray (void *, tSDLTypeInfo *, void *); extern void GenericDefault (void *, tSDLTypeInfo *); extern void * GenericAnySort (void *, tSDLTypeInfo *); extern int GenericTstIArray (int, tSDLArrayInfo *); /* GArray */ extern void * GenGArray_Extract (xGArray_Type *, void *, tSDLGArrayInfo *); extern void * GenGArray_Modify (xGArray_Type *, void *, tSDLGArrayInfo *); /* Powerset */ extern SDL_Boolean GenPow_In (int, xPowerset_Type *, tSDLPowersetInfo *); extern void * GenPow_Incl (int, xPowerset_Type *, tSDLPowersetInfo *, xPowerset_Type *); extern void * GenPow_Del (int, xPowerset_Type *, tSDLPowersetInfo *, xPowerset_Type *); extern void GenPow_Incl2 (int, xPowerset_Type *, tSDLPowersetInfo *); extern void GenPow_Del2 (int, xPowerset_Type *, tSDLPowersetInfo *); extern SDL_Boolean GenPow_LT (xPowerset_Type *, xPowerset_Type *, tSDLPowersetInfo *); extern SDL_Boolean GenPow_LE (xPowerset_Type *, xPowerset_Type *, tSDLPowersetInfo *); extern void * GenPow_And (xPowerset_Type *, xPowerset_Type *, tSDLPowersetInfo *, xPowerset_Type *); extern void * GenPow_Or (xPowerset_Type *, xPowerset_Type *, tSDLPowersetInfo *, xPowerset_Type *); extern SDL_Integer GenPow_Length (xPowerset_Type *, tSDLPowersetInfo *); extern int GenPow_Take (xPowerset_Type *, tSDLPowersetInfo *); extern int GenPow_Take2 (xPowerset_Type *, SDL_Integer, tSDLPowersetInfo *); /* Bag, GPowerset */ extern void * GenBag_Makebag (void *, tSDLGenListInfo *, xBag_Type *); extern SDL_Boolean GenBag_In (void *, xBag_Type *, tSDLGenListInfo *); extern void * GenBag_Incl (void *, xBag_Type *, tSDLGenListInfo *, xBag_Type *); extern void * GenBag_Del (void *, xBag_Type *, tSDLGenListInfo *, xBag_Type *); extern void GenBag_Incl2 (void *, xBag_Type *, tSDLGenListInfo *); extern void GenBag_Del2 (void *, xBag_Type *, tSDLGenListInfo *); extern SDL_Boolean GenBag_LT (xBag_Type *, xBag_Type *, tSDLGenListInfo *); extern SDL_Boolean GenBag_LE (xBag_Type *, xBag_Type *, tSDLGenListInfo *); extern void * GenBag_And (xBag_Type *, xBag_Type *, tSDLGenListInfo *, xBag_Type *); extern void * GenBag_Or (xBag_Type *, xBag_Type *, tSDLGenListInfo *, xBag_Type *); extern SDL_Integer GenBag_Length (xBag_Type *, tSDLGenListInfo *); extern void * GenBag_Take (xBag_Type *, tSDLGenListInfo *, void *); extern void * GenBag_Take2 (xBag_Type *, SDL_Integer, tSDLGenListInfo *, void *); /* String */ extern void * GenString_MkString (void *, tSDLGenListInfo *, xString_Type *); extern SDL_Integer GenString_Length (xString_Type *, tSDLGenListInfo *); extern void * GenString_First (xString_Type *, tSDLGenListInfo *, void *); extern void * GenString_Last (xString_Type *, tSDLGenListInfo *, void *); extern void * GenString_Concat (xString_Type *, xString_Type *, tSDLGenListInfo *, xString_Type *); extern void * GenString_SubString (xString_Type *, SDL_Integer, SDL_Integer, tSDLGenListInfo *, xString_Type *); extern void GenString_Append (xString_Type *, void *, tSDLGenListInfo *); extern void * GenString_Extract (xString_Type *, SDL_Integer, tSDLGenListInfo *); /* LString */ extern void * GenLString_MkString (void *, tSDLLStringInfo *, xLString_Type *); extern void * GenLString_First (xLString_Type *, tSDLLStringInfo *, void *); extern void * GenLString_Last (xLString_Type *, tSDLLStringInfo *, void *); extern void * GenLString_Concat (xLString_Type *, xLString_Type *, tSDLLStringInfo *, xLString_Type *); extern void * GenLString_SubString (xLString_Type *, SDL_Integer, SDL_Integer, tSDLLStringInfo *, xLString_Type *); extern void GenLString_Append (xLString_Type *, void *, tSDLLStringInfo *); extern void * GenLString_Extract (xLString_Type *, SDL_Integer, tSDLLStringInfo *); /* Own */ extern void * GenOwn_Assign (void *, void *, int, tSDLTypeInfo*); extern void * GenOwn_Copy (void *, tSDLTypeInfo*); extern SDL_Boolean GenOwn_Equal (void *, void *, tSDLTypeInfo *); extern void * GenOwn_Pass (void **yVar); extern void * GenericPassOwn (void **, void *, tSDLTypeInfo *); /****+*************************************************************** 05 Utility functions ********************************************************************/ /*---+--------------------------------------------------------------- yInit_Predefined -------------------------------------------------------------------*/ extern void yInit_Predefined (void); /**************************************************************/ /* ALLOC TEST FUNCTIONS */ /**************************************************************/ /****+*************************************************************** 06 Write buffer management ********************************************************************/ typedef struct { unsigned all; /* Allocated length of the buffer */ unsigned len; /* Used length of the buffer */ char A[4]; /* The array. */ } WriteBufRep; typedef struct { WriteBufRep* rep; /* Representation of the buffer */ } WriteBuf; typedef int WriteBufStatus; /* * Management: * New Creates a new buffer with given initial length. * Del Deletes the buffer. Clears pointer itself. * Clear Sets the used length to 0. * Resize Resizes the buffer to have AT LEAST the given length. * The size of the buffer is never shortened! * Returns 0 on success. * Secure Resize the buffer to be able to hold another n bytes * if necessary. * Returns 0 on success. */ extern WriteBuf * WriteBuf_New (unsigned start_length); extern void WriteBuf_Del (WriteBuf** buf); extern WriteBufStatus WriteBuf_Resize (WriteBuf* buf, unsigned new_length); /* * Adding data to the buffer. * Add_Char Append a single character to the buffer. * Add_String Append a string to the buffer. If the length given * is 0 strlen() is used to determine the length. * Add_WriteBuf Append another buffer. * Add_Fmt Appends using printf format. The max_len is * the maximum length needed for the data to be added. * Uses stdarg and vsprintf(). * Terminate Append a NUL at the end of the buffer. Does not * change the length (but may change 'rep'). * All these returns 0 on success. * ADD_CHAR Macro, appends to buffer. NO CHECKS! MUST be preceeded * with a WriteBuf_Secure before use! */ extern WriteBufStatus WriteBuf_Add_Char (WriteBuf* buf, char c); extern WriteBufStatus WriteBuf_Add_String ( WriteBuf* buf, const char* s, unsigned s_len); extern WriteBufStatus WriteBuf_Add_WriteBuf (WriteBuf* buf, const WriteBuf* b); extern WriteBufStatus WriteBuf_Add_Fmt ( WriteBuf* buf, unsigned max_len, const char* fmt, ...); extern WriteBufStatus WriteBuf_Terminate (WriteBuf* buf); /* Access: * Length Returns the used length. * Allocated_Length Returns the allocated length. * Data Returns pointer to first character. */ /****+*************************************************************** 07 Generic read and write function ********************************************************************/ extern void xReleasexLoopRefWriteList(void); extern void xReleasexRefReadList(void); extern void xGenericWriteSort( WriteBuf *, void *, tSDLTypeInfo *); extern void xxWriteSort( void *, tSDLTypeInfo *); extern void xWriteBuf_Fmt (const char*, ...); extern void xAddBuf_Fmt (WriteBuf *, const char *, ...); extern int xGenericReadSort( void *, tSDLTypeInfo *); extern int xGenericReadOneParameter( tSDLTypeInfo *, char *, void * ); extern int xRead_SDL_Charstring (void *); extern int xReadSDL_Time (SDL_Time *); /* Some macro to make read/write more backward compatible */ /****+*************************************************************** Threaded ********************************************************************/ /****+*************************************************************** 09 SDL_PId ********************************************************************/ typedef struct { xPrsNode PrsP; int InstNr; int GlobalInstanceId; } xLocalPIdRec; typedef xLocalPIdRec *xLocalPIdNode; typedef struct { int GlobalNodeNr; xLocalPIdNode LocalPId; } SDL_PId; extern xPrsNode xReadProcess (char *, xPrsIdNode *, xIdNode); /****+*************************************************************** 10 Signal Set ********************************************************************/ typedef unsigned char xInputAction; /****+*************************************************************** 14 Signal ********************************************************************/ /*typedef xSignalRec *xSignalNode; See Forward Declarations.*/ typedef struct xSignalStruct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; /* Pre = 0 if in avail list. */ /* Suc is also used as pointer in avail list. */ } xSignalRec; typedef struct xInputPortStruct { xSignalNode Pre; xSignalNode Suc; int Prio; } xInputPortRec; /* HAS TO BE FIRST THREE COMPONENTS IN SIGNAL_VARS !!! */ /****+*************************************************************** 13 Timer ********************************************************************/ /*typedef xTimerRec *xTimerNode; See Forward Declarations.*/ typedef struct xTimerStruct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Time TimerTime; } xTimerRec; typedef struct xTimerParaStruct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Time TimerTime; xTimerParaNode Next; } xTimerParaRec; /****+*************************************************************** 11 Procedure ( = Prd ) ********************************************************************/ typedef struct xPrdStruct *xPrdNode; typedef struct xPrdStruct { xPrdIdNode NameNode; xPrdNode StaticFather; xPrdNode DynamicFather; int RestartAddress; int CallAddress; int (*RestartPRD) (xPrsNode VarP); xSignalNode pREPLY_Signal; int State; /* StaticFather = 0 if in avail list.*/ /* DynamicFather also used as pointer in avail list.*/ } xPrdRec; /****+*************************************************************** 12 Process ( = Prs ) ********************************************************************/ /*typedef struct xPrsStruct *xPrsNode; See Forward Declarations.*/ /*typedef struct xSrvStruct *xSrvNode; See Forward Declarations.*/ typedef struct xPrsStruct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; } xPrsRec; typedef struct xSrvStruct { xSrvNode NextSrv; xPrsNode ContainerPrs; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvIdNode NameNode; int State; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; int InTransition; } xSrvRec; /****+*************************************************************** 15 Symbol Table ********************************************************************/ typedef enum { xRemoteVarEC, xRemotePrdEC, xSignalrouteEC, xStateEC, xTimerEC, xFormalParEC, xLiteralEC, xVariableEC, xBlocksubstEC, xPackageEC, xProcedureEC, xOperatorEC, xProcessEC, xProcessTypeEC, xGateEC, xSignalEC, xSignalParEC, xStartUpSignalEC, xRPCSignalEC, xSortEC, xSyntypeEC, xSystemEC, xSystemTypeEC, xBlockEC, xBlockTypeEC, xChannelEC, xServiceEC, xServiceTypeEC, xCompoundStmtEC, xSyntVariableEC, xMonitorCommandEC /* xExportEC */ /* xViewEC */ /* xChannelsubstEC */ /* xEnvironmentEC */ /* xConnectEC */ /* xGeneratorEC */ /* xImportedEC */ /* xLabelEC */ /* xSignallistEC */ /* xSynonymEC */ } xEntityClassType; typedef enum { xPredef, xUserdef, xEnum, xStruct, xArray, xGArray, xCArray, xRef, xOwn, xORef, xString, xLString, xPowerSet, xGPowerSet, xBag, xInherits, xSyntype, xUnion, xUnionC, xChoice } xTypeOfSort; /* KEEP xSymbolType UPDATED WITH xSymbolTypeStr AS DEFINED IN sctutil.c */ typedef enum { xsStart, xsInput, xsPriorityInput, xsContinuousSignal, xsTask, xsAssignmentStatement, xsAssignment2Statement, xsOutput, xsCreateRequest, xsDecision, xsDecisionAny, xsDecisionInformal, xsTransitionOption, xsSet, xsReset, xsExport, xsProcedureCall, xsValueReturningProcedureCall, xsRPC, xsValueReturningRPC, xsIf, xsLoop, xsLoopTest, xsLoopUpdate, xsBreak, xsContinue, xsNextstate, xsJoin, xsStop, xsReturn, xspCALLInput, xspCALLProcedureCall, xspREPLYOutput, xspCALLNextstate, xspREPLYInput, xsLabel, xsNoSuchSymbolType } xSymbolType; typedef char *xNameType; /*VIEW*/ typedef struct xViewListStruct { xPrsIdNode ViewingPrs; xSrvIdNode SrvId; unsigned Offset; } xViewListRec; typedef struct xViewIndexStruct { char *ViewName; /* var name, prefix for type */ int Index; /* index in xViewListRec */ } xViewIndexRec; typedef struct xIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; } xIdRec; /*BLOCKSUBSTRUCTURE*/ typedef struct xBlockSubstIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; } xBlockSubstIdRec; /*LITERAL*/ typedef struct xLiteralIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; int LiteralValue; } xLiteralIdRec; /*PACKAGE*/ typedef struct xPackageIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xNameType ModuleName; } xPackageIdRec; /*SYSTEM*/ typedef struct xSystemIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xIdNode * Contents; xPrdIdNode * VirtPrdList; xSystemIdNode Super; int Trace_Default; int GRTrace; int MSCETrace; } xSystemIdRec; /*CHANNEL,SIGNALROUTE*/ typedef struct xChannelIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xSignalIdNode *SignalSet; /*Array*/ xIdNode *ToId; /*Array*/ xChannelIdNode Reverse; } xChannelIdRec; /* And xSignalRouteEC.*/ /*BLOCK*/ typedef struct xBlockIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xBlockIdNode Super; xIdNode * Contents; xPrdIdNode * VirtPrdList; xViewListRec * ViewList; xViewIndexRec * ViewIndex; int NumberOfInst; int Trace_Default; int GRTrace; int MSCETrace; int GlobalInstanceId; } xBlockIdRec; /*PROCESS*/ typedef struct xPrsIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xStateIdNode *StateList; xSignalIdNode *SignalSet; /*Used as an array of xIdNode.*/ xIdNode *Contents; xIdNode *ToId; /*Array*/ int MaxNoOfInst; int NextNr; int NoOfStaticInst; xPrsNode *ActivePrsList; unsigned VarSize; int Prio; xPrsNode *AvailPrsList; int Trace_Default; int GRTrace; char *(*GRrefFunc) (int, xSymbolType *); int MaxSymbolNumber; int SignalSetLength; int MSCETrace; long int *CoverageArray; long int NoOfStartTransitions; long int MaxQueueLength; void (*PAD_Function) (xPrsNode); void (*Free_Vars) (void *); xPrsIdNode Super; xPrdIdNode * VirtPrdList; xBlockIdNode InBlockInst; char * RefToDefinition; } xPrsIdRec; /*SERVICE*/ typedef struct xSrvIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xStateIdNode *StateList; xSignalIdNode *SignalSet; /*Used as an array of xIdNode.*/ xIdNode *ToId; /*Array*/ unsigned VarSize; char *(*GRrefFunc) (int, xSymbolType *); int MaxSymbolNumber; int SignalSetLength; long int *CoverageArray; long int NoOfStartTransitions; xSrvNode *AvailSrvList; void (*PAD_Function) (xPrsNode); void (*Free_Vars) (void *); xSrvIdNode Super; xPrdIdNode * VirtPrdList; } xSrvIdRec; /*PROCEDURE*/ typedef struct xPrdIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xStateIdNode *StateList; xSignalIdNode *SignalSet; /*Used as an array of xIdNode.*/ int (*Assoc_Function) (xPrsNode); void (*Free_Vars) (void *); unsigned VarSize; xPrdNode *AvailPrdList; char *(*GRrefFunc) (int, xSymbolType *); int MaxSymbolNumber; int SignalSetLength; long int *CoverageArray; xPrdIdNode Super; xPrdIdNode * VirtPrdList; } xPrdIdRec; /*REMOTE PROCEDURE*/ typedef struct xRemotePrdListStruct *xRemotePrdListNode; typedef struct xRemotePrdListStruct { xRemotePrdListNode Next; xPrsIdNode ExportedPrs; } xRemotePrdListRec; typedef struct xRemotePrdIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xRemotePrdListNode RemoteList; } xRemotePrdIdRec; /* SIGNAL, TIMER */ typedef struct xSignalIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; unsigned VarSize; xSignalNode *AvailSignalList; int (*Equal_Timer) (void *, void *); void (*Free_Signal) (void *); char *RefToDefinition; unsigned Offset; /* Offset of timer var in xPrsStruct */ } xSignalIdRec; /* And xTimerEC, xStartUpSignalEC, and xRPCSignalEC.*/ /*STATE*/ typedef struct xStateIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; int StateNumber; xInputAction *SignalHandlArray; /*Used as an array of xInputAction.*/ int *InputRef; xInputAction (*EnablCond_Function) (xSignalIdNode, void *); void (*ContSig_Function) (void *, int *, xIdNode *, int *); int StateProperties; long int *CoverageArray; xStateIdNode Super; char *RefToDefinition; } xStateIdRec; /*SORT*/ typedef struct xSortIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; void (*zzFree_Function) (void **); int (*Test_Function) (void *); unsigned zzSortSize; xTypeOfSort zzSortType; xSortIdNode zzCompOrFatherSort; xSortIdNode zzIndexSort; long int zzLowestValue; /* xSyntype with one closed range : lowest value */ /* xGArray,xString,xGPowerset,xBag : offset of Data in type_yrec */ /* xLString : offset of Data in type */ /* otherwise : 0 */ long int zzHighestValue; /* xSyntype with one closed range : highest value */ /* xGArray,xString,xGPowerset,xBag : sizeof type_yrec */ /* xCArray,xLString : number of elements */ /* SDL_Character : 255 */ /* SDL_Boolean : 1 */ /* otherwise : 0 */ long int zzyrecIndexOffset; /* xGArray : offset of Index in type_yrec */ /* otherwise : 0 */ long int zztypeDataOffset; /* xGArray : offset of Data in type (default value) */ /* otherwise : 0 */ tSDLTypeInfo *TypeInfo; } xSortIdRec; /*VARIABLE,...*/ typedef struct xVarIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; xSortIdNode zzSortNode; tSDLTypeInfo *TypeNode; unsigned Offset; unsigned Offset2; /* Offset in startupsignal. Used for process fpar */ /* or: Offset for exported value. For process dcl */ int IsAddress; /* Used if procedure/operator fpar: */ /* first bit = is address */ /* second-third bit IN(=0) - IN/OUT(=2) - OUT(=4) */ } xVarIdRec; /* And xFormalParEC and xSignalParEC.*/ /*REMOTE VAR*/ typedef struct xRemoteVarListStruct *xRemoteVarListNode; typedef struct xRemoteVarListStruct { xRemoteVarListNode Next; xPrsIdNode ExportingPrs; xSrvIdNode SrvId; unsigned Offset; } xRemoteVarListRec; typedef struct xRemoteVarIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; unsigned SortSize; xRemoteVarListNode RemoteList; } xRemoteVarIdRec; /*MONITORCOMMAND*/ typedef struct xMonitorCommandIdStruct *xMonitorCommandIdNode; typedef struct xMonitorCommandIdStruct { xEntityClassType EC; xIdNode First; xIdNode Suc; xIdNode Parent; xNameType Name; int CommandNo; } xMonitorCommandIdRec; typedef struct { int PMConnected; int MyPID; int StartedFromPostmaster; int ITEXCommStarted; int TimeManager; int CommStarted; int UIStarted; int SimulatorUIStarted; int MSCEStarted; int MSCDiagram; } xNoticeBoardType; typedef struct xInteractionLogStruct { int Active; char Filename[256]; FILE *File; } xInteractionLogRec; typedef struct xCommandFileStruct *xCommandFileNode; typedef struct xCommandFileStruct { FILE *File; char *A[99]; xCommandFileNode Next; } xCommandFileRec; typedef struct xAtBreakpointStruct *xAtBreakpointNode; typedef struct xAtBreakpointStruct { char *GRReference; xIdNode PrsIdNode; long int SymbolNumber; char *Command; xAtBreakpointNode Next; } xAtBreakpointRec; typedef struct xVariableBreakpointStruct *xVariableBreakpointNode; typedef struct xVariableBreakpointStruct { xPrsNode Process; xPrdNode Procedure; xSrvNode Service; xPrdIdNode PrdId; int PrdInstance; SDL_PId PId; xVarIdNode VarId; WriteBuf *CurrentValue; char *Command; xVariableBreakpointNode Next; } xVariableBreakpointRec; typedef struct xBreakpointStruct *xBreakpointNode; typedef struct xBreakpointStruct { xPrsIdNode ProcId; int InstNr; xSrvIdNode SrvId; xStateIdNode StateId; xSignalIdNode SignalId; xPrsIdNode SenderId; int SenderInstNr; int Counter; int SetToCounter; int Remove; char *Command; xBreakpointNode Next; } xBreakpointRec; typedef struct xBreakpointOutputStruct *xBreakpointOutputNode; typedef struct xBreakpointOutputStruct { xSignalIdNode SignalId; xPrsIdNode ReceiverId; int ReceiverInstNr; xPrsIdNode SenderId; int SenderInstNr; int Counter; int SetToCounter; int Remove; char *Command; xBreakpointOutputNode Next; } xBreakpointOutputRec; typedef struct xSignalLogStruct *xSignalLogNode; typedef struct xSignalLogStruct { xIdNode UnitId; /* *** Either no signal or a list of signals *** xIdNode SignalId; *** *** */ xPrsNode PrsNode; char Filename[256]; FILE *File; xSignalLogNode Next; } xSignalLogRec; typedef struct { char Filename[256]; FILE *File; } MSCLogRec; /****+*************************************************************** 16 Global Data Structure ********************************************************************/ extern struct xPackageIdStruct yPacR_Predefined; extern struct xSortIdStruct xSrtR_SDL_Boolean; extern struct xSortIdStruct xSrtR_SDL_Bit; extern struct xSortIdStruct xSrtR_SDL_Bit_String; extern struct xSortIdStruct xSrtR_SDL_Octet; extern struct xSortIdStruct xSrtR_SDL_Octet_String; extern struct xSortIdStruct xSrtR_SDL_Character; extern struct xSortIdStruct xSrtR_SDL_Charstring; extern struct xSortIdStruct xSrtR_SDL_IA5String; extern struct xSortIdStruct xSrtR_SDL_NumericString; extern struct xSortIdStruct xSrtR_SDL_PrintableString; extern struct xSortIdStruct xSrtR_SDL_VisibleString; extern struct xSortIdStruct xSrtR_SDL_Duration; extern struct xSortIdStruct xSrtR_SDL_Integer; extern struct xSortIdStruct xSrtR_SDL_Natural; extern struct xSortIdStruct xSrtR_SDL_Null; extern struct xSortIdStruct xSrtR_SDL_Object_Identifier; extern struct xSortIdStruct xSrtR_SDL_PId; extern struct xSortIdStruct xSrtR_SDL_Real; extern struct xSortIdStruct xSrtR_SDL_Time; extern struct xIdStruct xSymbolTableIdRec; extern struct xPrsIdStruct yEnvR_env; extern xIdNode yEnvO_env[]; extern struct xStateIdStruct xStartStateIdRec; extern struct xSignalIdStruct xContSigIdRec; extern struct xStateIdStruct xRPCWaitStateIdRec; extern struct xSignalIdStruct xNoneSigIdRec; extern struct xPrsIdStruct xNullIdRec; typedef struct _xSystemData { xPrsNode xReadyQueue; xSignalNode xTimerQueue; xPrsNode xCheckList; SDL_Time xSystemTime; xStateIdNode xErrorStateId; char *xCFileName; long int xCLineNo; int xBetweenTrans; char *xCurrentSymbolRef; char *xPreviousSymbolRef; xNoticeBoardType xNoticeBoard; int xRaW_use_Global_PId; int xUse_Itex_Syntax; int xCurrentSymbolNumber; char *xTranslatorVersion_Var; /* from generated code */ int xMonitorCreate; int xMonitorOutput; int xDynamicError; int xDoLoopForInput; int xSavingState; int xRestoringState; xPrsNode xPrsScope; xPrdNode xPrdScope; xSrvNode xSrvScope; char *SystemName; char xInputLineVar[10000]; char *xInputLine; char *xInputPos_Var; char *xSaveLine; char *xSavePos_Var; int xUse_ASN1_Syntax; int xUse_NewRef_Syntax; int xUse_DeRef_Syntax; int xValue_Syntax; int xShowDefault; int xIntegerOutputMode; char xPrintIntFormat[10]; char xScanIntFormat[10]; int Trace_Default; int xSilent; int GRTrace; int xNoTraceOn; int MSCETrace; int xSilentMSCE; /* Set when calling SDL_Output in SDL_Create or SDL_OutputTimerSignal to prevent extra MSC-trace */ xInteractionLogRec InteractionLog; xInteractionLogRec CommandLog; xCommandFileNode CommandFile; int WriteSortLevel; /* used by xWriteSort */ FILE *ExtSynFile; int First_Call; /* to xReadSynonym */ char ExtSynFileName[256]; /* Local data in sctmon.c */ int Interrupted; int xProceedUntil; int xGoForever; int StopInMonitor; int StoppedInMonitor; int StepSymbol; int StepStatement; int NextSymbol; int NextStatement; int Finish; int NextLevel; int xStepToVisible; int WelcomeMessagePrinted; SDL_Time NowInMonitor; xIdNode xCommandTable; SDL_Time xNextMonTimeVar; int xDoCheckForInput; xVariableBreakpointNode VariableBreakpoints; xAtBreakpointNode AtBreakpoints; xBreakpointNode TransitionBreakpoints; xBreakpointOutputNode OutputBreakpoints; xSignalLogNode SignalLogList; FILE *xCoverageFile; /* XMONITOR */ MSCLogRec MSCLog; int MSCLogStarted; /* =1 MSC-Log started. xSysD.xNoticeBoard.MSCEStarted = 0 means Batch otherwise Interactive */ int GlobalProcessInstanceId; int GlobalSignalInstanceId; int GlobalSignalInstanceIdWhenStart; /* Value of GlobalSignalInstanceId when MSC Trace started, used to find signal sent before MSC Trace started. (NOTE! The signals may have been sent in a previous MSC Trace) */ int VoidProcessInstanceId; /* Void process instance is used to represent all process instances not being traced */ int DoingReset; /* used by xMSCEReset */ int MSCSymbolLevel; /* XMSCE */ char SESIMUICOMStr[10000]; int SESIMUICOMFlag; /* =1 means SESIMUICOMStr contains input */ int SESIMUICOMInput; long int SystemTransNo, SystemSymbNo; } xSystemData; /****+*************************************************************** In generated code ********************************************************************/ extern void yInit (void); /****+*************************************************************** C++ specific declarations ********************************************************************/ /****+*************************************************************** 17 sctos ********************************************************************/ extern void * xAlloc (unsigned); extern void * xReAlloc (void **,unsigned); extern void xFree (void **); extern void xHalt (void); extern int xGlobalNodeNumber (void); extern int xCheckForKeyboardInput (long); extern char *xGetWorkdir (char **d); extern char *xSetWorkdir (char *d); /****+*************************************************************** 18 sctenv ********************************************************************/ /* XENV */ /****+*************************************************************** 19 sctsdl ********************************************************************/ extern xSystemData xSysD; extern xSignalNode xAvailSignal; extern xSignalNode xAvailTimer; extern SDL_Integer xMax_SDL_Integer; extern SDL_Time xMaxTime; extern SDL_PId xEnv; extern xPrsIdNode xEnvId; extern SDL_PId SDL_NULL; extern SDL_PId xNotDefPId; extern void xSDLOutputError (int, xSignalNode, int); extern void xSDLOpError (char *, char *); extern void xErrorSubrange (tSDLTypeInfo *, void *); extern void xErrorIndex (tSDLTypeInfo *, void *); extern void xErrorDecision (tSDLTypeInfo *, void *); extern void * SDL_Error (int); extern void xAssertError (char *); extern void xUnionTagError (char *, void *, tSDLTypeInfo *, int); extern void xOptionalError (char *); extern void xCoderError (char *, char *); extern void xChoiceError (char *, void *, tSDLTypeInfo *); extern void xRefError (void *, tSDLGenInfo *); extern int xInOwnList (void *); extern void xInsertOwnList (void *, tSDLTypeInfo *); extern void xRemoveOwnList (void *); extern void xSetUpOwner (void **, int); extern void xCheckRefOwn (void *); extern void xCheckForOwnLoops (void); extern void xInsertIdNode (xIdNode); extern SDL_PId xGetPId (xPrsIdNode, SDL_PId); extern void xReleasePId (SDL_PId *); extern xSrvNode xGetService (xSrvIdNode, xPrsNode); extern void xReleaseService (xSrvNode *); extern xSignalNode xGetSignal (xSignalIdNode, SDL_PId, SDL_PId); extern void xReleaseSignal (xSignalNode *); extern void xReleaseSignalNotPara (xSignalNode *); extern xPrdNode xGetPrd (xPrdIdNode); extern void xReleasePrd (xPrsNode); extern void xInsertExportedVar (xRemoteVarListNode, xRemoteVarIdNode); extern void xInsertExportedPrd (xRemotePrdListNode, xRemotePrdIdNode); extern int xInList (xSignalIdNode, xSignalIdNode *); extern void xAddPrdCall (xPrdNode, xPrsNode, int, int); extern xIdNode xContentsInstNode (xIdNode, xIdNode); extern xPrsIdNode xPrsInst(xIdNode, xIdNode, int); extern int xIsPath (xSignalIdNode, xIdNode, xPrsIdNode, xIdNode *, xIdNode [], int *); extern SDL_PId xFindReceiver (xSignalIdNode, SDL_PId, xIdNode *, int *, xIdNode *, int *); extern void xRemoveFromQueue (void *); extern void SDL_Output (xSignalNode , xIdNode []); extern void SDL_Create (xSignalNode, xPrsIdNode, int); extern void SDL_Stop (xPrsNode); extern void SDL_Set (SDL_Time, xSignalNode, xSignalNode *); extern void SDL_SimpleSet (SDL_Time, xSignalNode *, xSignalIdNode, xPrsNode); extern void SDL_Reset (xSignalNode *, xSignalNode *); extern void SDL_SimpleReset (xSignalNode *, xSignalIdNode); extern void xCheckTimerVar(xSignalNode); extern void xRemoveFromTimerList(xSignalNode, xSignalNode *); extern void SDL_NextState (xPrsNode, int); extern void SDL_RPC_WaitState (xPrsNode, int, xSignalIdNode); extern SDL_Time SDL_Now (void); extern void * xGetExportAddr (xRemoteVarIdNode, SDL_PId, int, xPrsNode); extern SDL_PId xGetExportingPrs (xRemotePrdIdNode, xPrsNode); extern void * SDL_View (xViewListRec *, SDL_PId, int, xPrsNode, char *, int); extern int SDL_View_Index (xPrsNode, char *); extern void SDL_Halt (void); extern SDL_Boolean xEq_SDL_PId (SDL_PId, SDL_PId); extern SDL_Boolean xEq_SDL_PId_NULL (SDL_PId A); extern void xStart_Services (xPrsNode); extern void xSysDInit (int, char * [], xSystemData*); extern void xMainInit (int, char * []); extern void xMainLoop (void); extern void xAddToEnv (xChannelIdNode); /****+*************************************************************** 20 sctpost ********************************************************************/ extern xSignalIdNode xEnvFindSignalId (char *); extern xIdNode xEnvFindChannelId (char *); /****+*************************************************************** 21 sctutil ********************************************************************/ typedef enum { xxId, xxString, xxASN1String, xxSlash, xxColon, xxMinus, xxPlus, xxStar, xxComma, xxSemicolon, xxArrowHead, xxLPar, xxRPar, xxLParDot, xxRParDot, xxLParColon, xxRParColon, xxDot, xxLBracket, xxRBracket, xxLCurlyBracket, xxRCurlyBracket, xxAt, xxQuaStart, xxQuaEnd, xxLT, xxLE, xxGT, xxGE, xxEQ, xxNE, xxQuestionMark, xx2QuestionMark, xxExclMark, xxRArrow, xxStarArrow, xxSystem, xxPackage, xxBlock, xxProcess, xxService, xxProcedure, xxOperator, xxSubstructure, xxChannel, xxSignalroute, xxType, xxNull, xxEnv, xxSelf, xxParent, xxOffspring, xxSender, xxEoln, xxEOF, xxErrorToken } xxToken; extern int xNextInputChar (void); extern xxToken xScanToken (char *); extern void xUngetToken (xxToken, char *); extern void xSkipLine (void); extern int xScanS (char *); extern void xReadSynonym (void *, tSDLTypeInfo *, char *); extern xxToken xPromptQuestionMark (char *, char *, char *); extern xIdNode xGetIdNodeInECSet (char *, long, xIdNode, int *, int, xIdNode); extern xIdNode xReadIdNodeInECSet (xxToken, char *, long, xIdNode, xIdNode); extern int xfEqualIdString (char *, char *); extern int lenNL(void **); extern void addNL(void ***, void *); extern int indexNL(void **, void *); extern void releaseNL(void ***); extern char * xWriteSort (void *, xSortIdNode); extern void xWriteOpParameter (char *, void *, tSDLTypeInfo *); extern int xReadOperator (void *, tSDLTypeInfo *); extern void xGetQualifier (WriteBuf *, xIdNode, int); extern int xNeedsQualifier (xIdNode); extern void xMSCEProcedureReturn (xPrsNode, xPrdNode ); extern void xMSCEDecision (xPrsNode, void *, tSDLTypeInfo *); extern void xMSCETask (xPrsNode, char *); extern void xMSCEAssign (xPrsNode, char *, void *, tSDLTypeInfo *); extern void xMSCEConstructor (SDL_PId, char *, char *); extern void xMSCEDestructor (SDL_PId, char *); extern void xMSCEMethodCall (SDL_PId, char *, char *); /* XMSCE */ /* XREADANDWRITEF */ /****+*************************************************************** 22 sctmon ********************************************************************/ extern void xInitReadAndWrite (void); extern void xPrintString (char * Str); extern int xRead_SDL_PId (void *); extern char * xWri_SDL_PId (void *); extern void xInformalDecision (char *); extern void xInformalPath (int, char *, int, int [], char *[]); extern void xAnyDecision (void); extern void xAnyPath (int, int, int []); extern void xReadPath (SDL_Integer *, int, int [], char * [], int); /* XREADANDWRITEF */ typedef enum { xtOutput, xtOutputDiscard, xtOutputPara, xtTask, xtTaskValue, xtDecision, xtProcedureStart, xtProcedureReturn, xtProcedurePara, xtCreate, xtCreatePara, xtSet, xtSetChangeTime, xtSetPara, xtSetImplicitReset, xtReset, xtResetAction, xtResetPara, xtTimerOutput, xtTimerOutputDiscard, xtTimerOutputPara, xtNextstate, xtNextstateDiscard, xtNextstateDiscardPara, xtStop, xtStopDiscard, xtStopDiscardPara, xtStopTimerDiscard, xtStopTimerDiscardPara, xtTransition, xtTransitionPara, xtExport, xtVisibleStep, xtOne, xtTwo, xtThree, xtFour, xtFive, xtSix, xtSeven, xtEight, xtNine, xtTen } xTraceType; extern int xShouldBeTraced (xTraceType, xPrsNode); extern void xTraceTask (char *); extern void xTraceAlg (char *); extern void xTraceAlgValue (char *, void *, tSDLTypeInfo *); extern void xTraceAssign (char *, void *, tSDLTypeInfo *); extern void xTraceDecision (void *, tSDLTypeInfo *); extern void xTraceNotImplCreate (char * S); extern void xTraceNotImplProcedure (char * S); extern void xTraceProcedureReturn (xPrdNode); extern void xTraceExport (char *); /* XTRACE */ extern void xSetupGRCov (xPrsNode, int); extern int xBreakBefore (xPrsNode, char *, long int, int, int); extern void xGRSetSymbol (int); extern int xRefAddress(WriteBuf *, void *, xIdNode); extern void *xGetRefAddress(char *); /****+*************************************************************** 23 THREADED integration The following section contains macros and defines used in the THREADED API ********************************************************************/ /* X_SCTTYPES_H */ xSystemData xSysD; static char xFileName[] = "C:\\temp\\LAB8Concurency3\\try1Concuro.c"; /************************************************************************* ** SECTION Types and Forward references ** *************************************************************************/ /***** * SYSTEM Concuro * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,4,1,8) ******/ extern struct xSystemIdStruct ySysR_z_Concuro; /***** * NEWTYPE RandomControl (TYPE section) * <> * #SDTREF(TEXT,C:\Telelogic\SDL_TTCN_Suite6.0\sdt\include\adt\random.pr,26,9) ******/ extern tSDLUserdefInfo ySDL_RandomControl; /* #SDTREF(TEXT,C:\Telelogic\SDL_TTCN_Suite6.0\sdt\include\adt\random.pr,162,42) */ typedef unsigned long * RandomControl; /***** * NEWTYPE RandomControl (HEADING section) * <> * #SDTREF(TEXT,C:\Telelogic\SDL_TTCN_Suite6.0\sdt\include\adt\random.pr,26,9) ******/ extern struct xSortIdStruct ySrtR_RandomControl; /* #SDTREF(TEXT,C:\Telelogic\SDL_TTCN_Suite6.0\sdt\include\adt\random.pr,162,42) */ extern double log ( double ); extern double exp ( double ); extern SDL_Real Random (RandomControl Seq); extern SDL_Real Erlang (SDL_Real Mean, SDL_Integer r, RandomControl Seq); extern SDL_Real HyperExp2 (SDL_Real Mean1, SDL_Real Mean2, SDL_Real Alpha, RandomControl Seq); extern SDL_Real NegExp (SDL_Real Mean, RandomControl Seq); extern SDL_Real Uniform (SDL_Real Low, SDL_Real High, RandomControl Seq); extern SDL_Real Draw (SDL_Real Alpha, RandomControl Seq); extern SDL_Integer Geometric (SDL_Real p, RandomControl Seq); extern SDL_Integer Poisson (SDL_Real m, RandomControl Seq); extern SDL_Integer RandInt (SDL_Integer Low, SDL_Integer High, RandomControl Seq); extern RandomControl DefineSeed (SDL_Integer Seed); extern SDL_Integer Seed (RandomControl Seq); extern SDL_Real TtoR (SDL_Time D); extern SDL_Time RtoT (SDL_Real R); extern SDL_Time ItoT (SDL_Integer I); extern char * yWri_RandomControl (void * Value); extern int yRead_RandomControl (void * Result); /***** * BLOCK Producers * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk,4,1,7) ******/ extern struct xBlockIdStruct yBloR_z0_Producers; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),9,9) ******/ extern tSDLGenInfo ySDL_z010_iLikeToWrite; typedef SDL_Integer z010_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),9,9) ******/ extern struct xSortIdStruct ySrtR_z010_iLikeToWrite; extern int yTest_z010_iLikeToWrite (void *); extern z010_iLikeToWrite yTstA_z010_iLikeToWrite (z010_iLikeToWrite); /***** * PROCESS Producer * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z01_Producer[]; extern xStateIdNode yPrsT_z01_Producer[]; extern struct xPrsIdStruct yPrsR_z01_Producer; extern long int yPrsC_z01_Producer[]; extern void yPAD_z01_Producer (xPrsNode); extern struct xSignalIdStruct ySigR_z01_Producer; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z01_Producer; typedef yPDef_z01_Producer *yPDP_z01_Producer; extern xIdNode yPrsO_z01_Producer[]; extern char * yRef_z01_Producer (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),3,1) */ SDL_Duration z014_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),5,1) */ SDL_Integer z015_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),6,1) */ SDL_Integer z016_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),7,1) */ SDL_PId z017_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z01_Producer; typedef yVDef_z01_Producer *yVDP_z01_Producer; extern void yFree_z01_Producer (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70),1,1) ******/ extern struct xStateIdStruct yStaR_z011_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125),1,1) ******/ extern struct xStateIdStruct yStaR_z012_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),1,7) ******/ extern struct xSignalIdStruct ySigR_z013_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),3,1) ******/ extern struct xVarIdStruct yVarR_z014_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),5,1) ******/ extern struct xVarIdStruct yVarR_z015_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),6,1) ******/ extern struct xVarIdStruct yVarR_z016_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),7,1) ******/ extern struct xVarIdStruct yVarR_z017_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),8,9) ******/ extern tSDLGenInfo ySDL_z020_iLikeToWrite; typedef SDL_Integer z020_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),8,9) ******/ extern struct xSortIdStruct ySrtR_z020_iLikeToWrite; extern int yTest_z020_iLikeToWrite (void *); extern z020_iLikeToWrite yTstA_z020_iLikeToWrite (z020_iLikeToWrite); /***** * PROCESS Producer2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z02_Producer2[]; extern xStateIdNode yPrsT_z02_Producer2[]; extern struct xPrsIdStruct yPrsR_z02_Producer2; extern long int yPrsC_z02_Producer2[]; extern void yPAD_z02_Producer2 (xPrsNode); extern struct xSignalIdStruct ySigR_z02_Producer2; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z02_Producer2; typedef yPDef_z02_Producer2 *yPDP_z02_Producer2; extern xIdNode yPrsO_z02_Producer2[]; extern char * yRef_z02_Producer2 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),3,1) */ SDL_Duration z024_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),4,1) */ SDL_Integer z025_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),5,1) */ SDL_Integer z026_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),6,1) */ SDL_PId z027_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z02_Producer2; typedef yVDef_z02_Producer2 *yVDP_z02_Producer2; extern void yFree_z02_Producer2 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),137(55,70),1,1) ******/ extern struct xStateIdStruct yStaR_z021_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),128(50,125),1,1) ******/ extern struct xStateIdStruct yStaR_z022_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),1,7) ******/ extern struct xSignalIdStruct ySigR_z023_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),3,1) ******/ extern struct xVarIdStruct yVarR_z024_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),4,1) ******/ extern struct xVarIdStruct yVarR_z025_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),5,1) ******/ extern struct xVarIdStruct yVarR_z026_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),6,1) ******/ extern struct xVarIdStruct yVarR_z027_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),9,9) ******/ extern tSDLGenInfo ySDL_z030_iLikeToWrite; typedef SDL_Integer z030_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z030_iLikeToWrite; extern int yTest_z030_iLikeToWrite (void *); extern z030_iLikeToWrite yTstA_z030_iLikeToWrite (z030_iLikeToWrite); /***** * PROCESS Producer3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z03_Producer3[]; extern xStateIdNode yPrsT_z03_Producer3[]; extern struct xPrsIdStruct yPrsR_z03_Producer3; extern long int yPrsC_z03_Producer3[]; extern void yPAD_z03_Producer3 (xPrsNode); extern struct xSignalIdStruct ySigR_z03_Producer3; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z03_Producer3; typedef yPDef_z03_Producer3 *yPDP_z03_Producer3; extern xIdNode yPrsO_z03_Producer3[]; extern char * yRef_z03_Producer3 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),3,1) */ SDL_Duration z034_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),5,1) */ SDL_Integer z035_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),6,1) */ SDL_Integer z036_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),7,1) */ SDL_PId z037_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z03_Producer3; typedef yVDef_z03_Producer3 *yVDP_z03_Producer3; extern void yFree_z03_Producer3 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),137(60,65),1,1) ******/ extern struct xStateIdStruct yStaR_z031_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),128(55,120),1,1) ******/ extern struct xStateIdStruct yStaR_z032_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z033_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),3,1) ******/ extern struct xVarIdStruct yVarR_z034_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),5,1) ******/ extern struct xVarIdStruct yVarR_z035_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),6,1) ******/ extern struct xVarIdStruct yVarR_z036_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),7,1) ******/ extern struct xVarIdStruct yVarR_z037_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),9,9) ******/ extern tSDLGenInfo ySDL_z040_iLikeToWrite; typedef SDL_Integer z040_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z040_iLikeToWrite; extern int yTest_z040_iLikeToWrite (void *); extern z040_iLikeToWrite yTstA_z040_iLikeToWrite (z040_iLikeToWrite); /***** * PROCESS Producer4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z04_Producer4[]; extern xStateIdNode yPrsT_z04_Producer4[]; extern struct xPrsIdStruct yPrsR_z04_Producer4; extern long int yPrsC_z04_Producer4[]; extern void yPAD_z04_Producer4 (xPrsNode); extern struct xSignalIdStruct ySigR_z04_Producer4; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z04_Producer4; typedef yPDef_z04_Producer4 *yPDP_z04_Producer4; extern xIdNode yPrsO_z04_Producer4[]; extern char * yRef_z04_Producer4 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),3,1) */ SDL_Duration z044_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),5,1) */ SDL_Integer z045_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),6,1) */ SDL_Integer z046_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),7,1) */ SDL_PId z047_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z04_Producer4; typedef yVDef_z04_Producer4 *yVDP_z04_Producer4; extern void yFree_z04_Producer4 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),137(65,65),1,1) ******/ extern struct xStateIdStruct yStaR_z041_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),128(60,120),1,1) ******/ extern struct xStateIdStruct yStaR_z042_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z043_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),3,1) ******/ extern struct xVarIdStruct yVarR_z044_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),5,1) ******/ extern struct xVarIdStruct yVarR_z045_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),6,1) ******/ extern struct xVarIdStruct yVarR_z046_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),7,1) ******/ extern struct xVarIdStruct yVarR_z047_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),9,9) ******/ extern tSDLGenInfo ySDL_z050_iLikeToWrite; typedef SDL_Integer z050_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z050_iLikeToWrite; extern int yTest_z050_iLikeToWrite (void *); extern z050_iLikeToWrite yTstA_z050_iLikeToWrite (z050_iLikeToWrite); /***** * PROCESS Producer5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z05_Producer5[]; extern xStateIdNode yPrsT_z05_Producer5[]; extern struct xPrsIdStruct yPrsR_z05_Producer5; extern long int yPrsC_z05_Producer5[]; extern void yPAD_z05_Producer5 (xPrsNode); extern struct xSignalIdStruct ySigR_z05_Producer5; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z05_Producer5; typedef yPDef_z05_Producer5 *yPDP_z05_Producer5; extern xIdNode yPrsO_z05_Producer5[]; extern char * yRef_z05_Producer5 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),3,1) */ SDL_Duration z054_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),5,1) */ SDL_Integer z055_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),6,1) */ SDL_Integer z056_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),7,1) */ SDL_PId z057_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z05_Producer5; typedef yVDef_z05_Producer5 *yVDP_z05_Producer5; extern void yFree_z05_Producer5 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),137(60,65),1,1) ******/ extern struct xStateIdStruct yStaR_z051_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),128(55,120),1,1) ******/ extern struct xStateIdStruct yStaR_z052_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z053_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),3,1) ******/ extern struct xVarIdStruct yVarR_z054_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),5,1) ******/ extern struct xVarIdStruct yVarR_z055_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),6,1) ******/ extern struct xVarIdStruct yVarR_z056_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),7,1) ******/ extern struct xVarIdStruct yVarR_z057_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),9,9) ******/ extern tSDLGenInfo ySDL_z060_iLikeToWrite; typedef SDL_Integer z060_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z060_iLikeToWrite; extern int yTest_z060_iLikeToWrite (void *); extern z060_iLikeToWrite yTstA_z060_iLikeToWrite (z060_iLikeToWrite); /***** * PROCESS Producer6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z06_Producer6[]; extern xStateIdNode yPrsT_z06_Producer6[]; extern struct xPrsIdStruct yPrsR_z06_Producer6; extern long int yPrsC_z06_Producer6[]; extern void yPAD_z06_Producer6 (xPrsNode); extern struct xSignalIdStruct ySigR_z06_Producer6; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z06_Producer6; typedef yPDef_z06_Producer6 *yPDP_z06_Producer6; extern xIdNode yPrsO_z06_Producer6[]; extern char * yRef_z06_Producer6 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),3,1) */ SDL_Duration z064_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),5,1) */ SDL_Integer z065_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),6,1) */ SDL_Integer z066_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),7,1) */ SDL_PId z067_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z06_Producer6; typedef yVDef_z06_Producer6 *yVDP_z06_Producer6; extern void yFree_z06_Producer6 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),137(65,65),1,1) ******/ extern struct xStateIdStruct yStaR_z061_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),128(60,120),1,1) ******/ extern struct xStateIdStruct yStaR_z062_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z063_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),3,1) ******/ extern struct xVarIdStruct yVarR_z064_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),5,1) ******/ extern struct xVarIdStruct yVarR_z065_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),6,1) ******/ extern struct xVarIdStruct yVarR_z066_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),7,1) ******/ extern struct xVarIdStruct yVarR_z067_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),9,9) ******/ extern tSDLGenInfo ySDL_z070_iLikeToWrite; typedef SDL_Integer z070_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z070_iLikeToWrite; extern int yTest_z070_iLikeToWrite (void *); extern z070_iLikeToWrite yTstA_z070_iLikeToWrite (z070_iLikeToWrite); /***** * PROCESS Producer7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z07_Producer7[]; extern xStateIdNode yPrsT_z07_Producer7[]; extern struct xPrsIdStruct yPrsR_z07_Producer7; extern long int yPrsC_z07_Producer7[]; extern void yPAD_z07_Producer7 (xPrsNode); extern struct xSignalIdStruct ySigR_z07_Producer7; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z07_Producer7; typedef yPDef_z07_Producer7 *yPDP_z07_Producer7; extern xIdNode yPrsO_z07_Producer7[]; extern char * yRef_z07_Producer7 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),3,1) */ SDL_Duration z074_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),5,1) */ SDL_Integer z075_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),6,1) */ SDL_Integer z076_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),7,1) */ SDL_PId z077_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z07_Producer7; typedef yVDef_z07_Producer7 *yVDP_z07_Producer7; extern void yFree_z07_Producer7 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),137(65,65),1,1) ******/ extern struct xStateIdStruct yStaR_z071_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),128(60,120),1,1) ******/ extern struct xStateIdStruct yStaR_z072_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z073_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),3,1) ******/ extern struct xVarIdStruct yVarR_z074_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),5,1) ******/ extern struct xVarIdStruct yVarR_z075_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),6,1) ******/ extern struct xVarIdStruct yVarR_z076_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),7,1) ******/ extern struct xVarIdStruct yVarR_z077_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),9,9) ******/ extern tSDLGenInfo ySDL_z080_iLikeToWrite; typedef SDL_Integer z080_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z080_iLikeToWrite; extern int yTest_z080_iLikeToWrite (void *); extern z080_iLikeToWrite yTstA_z080_iLikeToWrite (z080_iLikeToWrite); /***** * PROCESS Producer8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z08_Producer8[]; extern xStateIdNode yPrsT_z08_Producer8[]; extern struct xPrsIdStruct yPrsR_z08_Producer8; extern long int yPrsC_z08_Producer8[]; extern void yPAD_z08_Producer8 (xPrsNode); extern struct xSignalIdStruct ySigR_z08_Producer8; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z08_Producer8; typedef yPDef_z08_Producer8 *yPDP_z08_Producer8; extern xIdNode yPrsO_z08_Producer8[]; extern char * yRef_z08_Producer8 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),3,1) */ SDL_Duration z084_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),5,1) */ SDL_Integer z085_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),6,1) */ SDL_Integer z086_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),7,1) */ SDL_PId z087_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z08_Producer8; typedef yVDef_z08_Producer8 *yVDP_z08_Producer8; extern void yFree_z08_Producer8 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),137(65,65),1,1) ******/ extern struct xStateIdStruct yStaR_z081_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),128(60,120),1,1) ******/ extern struct xStateIdStruct yStaR_z082_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z083_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),3,1) ******/ extern struct xVarIdStruct yVarR_z084_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),5,1) ******/ extern struct xVarIdStruct yVarR_z085_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),6,1) ******/ extern struct xVarIdStruct yVarR_z086_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),7,1) ******/ extern struct xVarIdStruct yVarR_z087_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),9,9) ******/ extern tSDLGenInfo ySDL_z090_iLikeToWrite; typedef SDL_Integer z090_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z090_iLikeToWrite; extern int yTest_z090_iLikeToWrite (void *); extern z090_iLikeToWrite yTstA_z090_iLikeToWrite (z090_iLikeToWrite); /***** * PROCESS Producer9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z09_Producer9[]; extern xStateIdNode yPrsT_z09_Producer9[]; extern struct xPrsIdStruct yPrsR_z09_Producer9; extern long int yPrsC_z09_Producer9[]; extern void yPAD_z09_Producer9 (xPrsNode); extern struct xSignalIdStruct ySigR_z09_Producer9; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z09_Producer9; typedef yPDef_z09_Producer9 *yPDP_z09_Producer9; extern xIdNode yPrsO_z09_Producer9[]; extern char * yRef_z09_Producer9 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),3,1) */ SDL_Duration z094_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),5,1) */ SDL_Integer z095_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),6,1) */ SDL_Integer z096_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),7,1) */ SDL_PId z097_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z09_Producer9; typedef yVDef_z09_Producer9 *yVDP_z09_Producer9; extern void yFree_z09_Producer9 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),137(65,65),1,1) ******/ extern struct xStateIdStruct yStaR_z091_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),128(60,120),1,1) ******/ extern struct xStateIdStruct yStaR_z092_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z093_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),3,1) ******/ extern struct xVarIdStruct yVarR_z094_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),5,1) ******/ extern struct xVarIdStruct yVarR_z095_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),6,1) ******/ extern struct xVarIdStruct yVarR_z096_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),7,1) ******/ extern struct xVarIdStruct yVarR_z097_mahPID; /***** * SYNTYPE iLikeToWrite (TYPE section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),9,9) ******/ extern tSDLGenInfo ySDL_z0A0_iLikeToWrite; typedef SDL_Integer z0A0_iLikeToWrite; /***** * SYNTYPE iLikeToWrite (HEADING section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),9,9) ******/ extern struct xSortIdStruct ySrtR_z0A0_iLikeToWrite; extern int yTest_z0A0_iLikeToWrite (void *); extern z0A0_iLikeToWrite yTstA_z0A0_iLikeToWrite (z0A0_iLikeToWrite); /***** * PROCESS Producer10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z0A_Producer10[]; extern xStateIdNode yPrsT_z0A_Producer10[]; extern struct xPrsIdStruct yPrsR_z0A_Producer10; extern long int yPrsC_z0A_Producer10[]; extern void yPAD_z0A_Producer10 (xPrsNode); extern struct xSignalIdStruct ySigR_z0A_Producer10; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z0A_Producer10; typedef yPDef_z0A_Producer10 *yPDP_z0A_Producer10; extern xIdNode yPrsO_z0A_Producer10[]; extern char * yRef_z0A_Producer10 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),3,1) */ SDL_Duration z0A4_someTime; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),5,1) */ SDL_Integer z0A5_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),6,1) */ SDL_Integer z0A6_numberToWrite; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),7,1) */ SDL_PId z0A7_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),1,7) */ xSignalNode yTim_walkingTime; } yVDef_z0A_Producer10; typedef yVDef_z0A_Producer10 *yVDP_z0A_Producer10; extern void yFree_z0A_Producer10 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),137(60,65),1,1) ******/ extern struct xStateIdStruct yStaR_z0A1_SiDLing; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),128(55,120),1,1) ******/ extern struct xStateIdStruct yStaR_z0A2_ForcedToWait; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z0A3_walkingTime; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),3,1) ******/ extern struct xVarIdStruct yVarR_z0A4_someTime; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),5,1) ******/ extern struct xVarIdStruct yVarR_z0A5_myID; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),6,1) ******/ extern struct xVarIdStruct yVarR_z0A6_numberToWrite; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),7,1) ******/ extern struct xVarIdStruct yVarR_z0A7_mahPID; /***** * SIGNALROUTE ProducerLine1 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),119(42,42),1,1) ******/ extern xIdNode yChaO_z0B_ProducerLine1[]; extern xIdNode yChaOR_z0B_ProducerLine1[]; extern struct xChannelIdStruct yChaR_z0B_ProducerLine1; extern struct xChannelIdStruct yChaRR_z0B_ProducerLine1; /***** * SIGNALROUTE ProducerLine2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),230(57,67),1,1) ******/ extern xIdNode yChaO_z0C_ProducerLine2[]; extern xIdNode yChaOR_z0C_ProducerLine2[]; extern struct xChannelIdStruct yChaR_z0C_ProducerLine2; extern struct xChannelIdStruct yChaRR_z0C_ProducerLine2; /***** * SIGNALROUTE ProducerLine3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),275(57,87),1,1) ******/ extern xIdNode yChaO_z0D_ProducerLine3[]; extern xIdNode yChaOR_z0D_ProducerLine3[]; extern struct xChannelIdStruct yChaR_z0D_ProducerLine3; extern struct xChannelIdStruct yChaRR_z0D_ProducerLine3; /***** * SIGNALROUTE ProducerLine4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),284(57,102),1,1) ******/ extern xIdNode yChaO_z0E_ProducerLine4[]; extern xIdNode yChaOR_z0E_ProducerLine4[]; extern struct xChannelIdStruct yChaR_z0E_ProducerLine4; extern struct xChannelIdStruct yChaRR_z0E_ProducerLine4; /***** * SIGNALROUTE ProducerLine5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),293(57,117),1,1) ******/ extern xIdNode yChaO_z0F_ProducerLine5[]; extern xIdNode yChaOR_z0F_ProducerLine5[]; extern struct xChannelIdStruct yChaR_z0F_ProducerLine5; extern struct xChannelIdStruct yChaRR_z0F_ProducerLine5; /***** * SIGNALROUTE ProducerLine6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),302(57,132),1,1) ******/ extern xIdNode yChaO_z0G_ProducerLine6[]; extern xIdNode yChaOR_z0G_ProducerLine6[]; extern struct xChannelIdStruct yChaR_z0G_ProducerLine6; extern struct xChannelIdStruct yChaRR_z0G_ProducerLine6; /***** * SIGNALROUTE ProducerLine7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),311(57,147),1,1) ******/ extern xIdNode yChaO_z0H_ProducerLine7[]; extern xIdNode yChaOR_z0H_ProducerLine7[]; extern struct xChannelIdStruct yChaR_z0H_ProducerLine7; extern struct xChannelIdStruct yChaRR_z0H_ProducerLine7; /***** * SIGNALROUTE ProducerLine8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),320(57,162),1,1) ******/ extern xIdNode yChaO_z0I_ProducerLine8[]; extern xIdNode yChaOR_z0I_ProducerLine8[]; extern struct xChannelIdStruct yChaR_z0I_ProducerLine8; extern struct xChannelIdStruct yChaRR_z0I_ProducerLine8; /***** * SIGNALROUTE ProducerLine9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),329(57,177),1,1) ******/ extern xIdNode yChaO_z0J_ProducerLine9[]; extern xIdNode yChaOR_z0J_ProducerLine9[]; extern struct xChannelIdStruct yChaR_z0J_ProducerLine9; extern struct xChannelIdStruct yChaRR_z0J_ProducerLine9; /***** * SIGNALROUTE ProducerLine10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),338(57,192),1,1) ******/ extern xIdNode yChaO_z0K_ProducerLine10[]; extern xIdNode yChaOR_z0K_ProducerLine10[]; extern struct xChannelIdStruct yChaR_z0K_ProducerLine10; extern struct xChannelIdStruct yChaRR_z0K_ProducerLine10; /***** * BLOCK ConcuroBlock * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk,4,1,7) ******/ extern struct xBlockIdStruct yBloR_z1_ConcuroBlock; /***** * PROCESS Io * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z13_Io[]; extern xStateIdNode yPrsT_z13_Io[]; extern struct xPrsIdStruct yPrsR_z13_Io; extern long int yPrsC_z13_Io[]; extern void yPAD_z13_Io (xPrsNode); extern struct xSignalIdStruct ySigR_z13_Io; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z13_Io; typedef yPDef_z13_Io *yPDP_z13_Io; extern xIdNode yPrsO_z13_Io[]; extern char * yRef_z13_Io (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),2,1) */ SDL_Integer z132_numberWritten; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),3,1) */ SDL_Integer z133_writeID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),4,1) */ SDL_PId z134_writePID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),5,1) */ SDL_Integer z135_readID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),6,1) */ SDL_PId z136_readPID; } yVDef_z13_Io; typedef yVDef_z13_Io *yVDP_z13_Io; extern void yFree_z13_Io (void *); /***** * STATE Phase1 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35),1,1) ******/ extern struct xStateIdStruct yStaR_z130_Phase1; /***** * STATE Phase2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110),1,1) ******/ extern struct xStateIdStruct yStaR_z131_Phase2; /***** * DCL numberWritten * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),2,1) ******/ extern struct xVarIdStruct yVarR_z132_numberWritten; /***** * DCL writeID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),3,1) ******/ extern struct xVarIdStruct yVarR_z133_writeID; /***** * DCL writePID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),4,1) ******/ extern struct xVarIdStruct yVarR_z134_writePID; /***** * DCL readID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),5,1) ******/ extern struct xVarIdStruct yVarR_z135_readID; /***** * DCL readPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),6,1) ******/ extern struct xVarIdStruct yVarR_z136_readPID; /***** * SIGNALROUTE ProduceMe * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),197(95,47),1,1) ******/ extern xIdNode yChaO_z14_ProduceMe[]; extern xIdNode yChaOR_z14_ProduceMe[]; extern struct xChannelIdStruct yChaR_z14_ProduceMe; extern struct xChannelIdStruct yChaRR_z14_ProduceMe; /***** * SIGNALROUTE LineOut * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),188(45,97),1,1) ******/ extern xIdNode yChaO_z15_LineOut[]; extern xIdNode yChaOR_z15_LineOut[]; extern struct xChannelIdStruct yChaR_z15_LineOut; extern struct xChannelIdStruct yChaRR_z15_LineOut; /***** * SIGNALROUTE ConsumeMe * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),206(92,157),1,1) ******/ extern xIdNode yChaO_z16_ConsumeMe[]; extern xIdNode yChaOR_z16_ConsumeMe[]; extern struct xChannelIdStruct yChaR_z16_ConsumeMe; extern struct xChannelIdStruct yChaRR_z16_ConsumeMe; /***** * BLOCK Consumers * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk,4,1,7) ******/ extern struct xBlockIdStruct yBloR_z2_Consumers; /***** * PROCESS Consumer * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z21_Consumer[]; extern xStateIdNode yPrsT_z21_Consumer[]; extern struct xPrsIdStruct yPrsR_z21_Consumer; extern long int yPrsC_z21_Consumer[]; extern void yPAD_z21_Consumer (xPrsNode); extern struct xSignalIdStruct ySigR_z21_Consumer; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z21_Consumer; typedef yPDef_z21_Consumer *yPDP_z21_Consumer; extern xIdNode yPrsO_z21_Consumer[]; extern char * yRef_z21_Consumer (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),3,1) */ SDL_Duration z213_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),4,1) */ SDL_Integer z214_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),5,1) */ SDL_Integer z215_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),6,1) */ SDL_PId z216_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z21_Consumer; typedef yVDef_z21_Consumer *yVDP_z21_Consumer; extern void yFree_z21_Consumer (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75),1,1) ******/ extern struct xStateIdStruct yStaR_z210_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135),1,1) ******/ extern struct xStateIdStruct yStaR_z211_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),1,7) ******/ extern struct xSignalIdStruct ySigR_z212_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),3,1) ******/ extern struct xVarIdStruct yVarR_z213_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),4,1) ******/ extern struct xVarIdStruct yVarR_z214_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),5,1) ******/ extern struct xVarIdStruct yVarR_z215_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),6,1) ******/ extern struct xVarIdStruct yVarR_z216_mahPID; /***** * PROCESS Consumer2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z22_Consumer2[]; extern xStateIdNode yPrsT_z22_Consumer2[]; extern struct xPrsIdStruct yPrsR_z22_Consumer2; extern long int yPrsC_z22_Consumer2[]; extern void yPAD_z22_Consumer2 (xPrsNode); extern struct xSignalIdStruct ySigR_z22_Consumer2; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z22_Consumer2; typedef yPDef_z22_Consumer2 *yPDP_z22_Consumer2; extern xIdNode yPrsO_z22_Consumer2[]; extern char * yRef_z22_Consumer2 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),3,1) */ SDL_Duration z223_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),4,1) */ SDL_Integer z224_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),5,1) */ SDL_Integer z225_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),6,1) */ SDL_PId z226_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z22_Consumer2; typedef yVDef_z22_Consumer2 *yVDP_z22_Consumer2; extern void yFree_z22_Consumer2 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),134(60,75),1,1) ******/ extern struct xStateIdStruct yStaR_z220_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),125(60,135),1,1) ******/ extern struct xStateIdStruct yStaR_z221_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),1,7) ******/ extern struct xSignalIdStruct ySigR_z222_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),3,1) ******/ extern struct xVarIdStruct yVarR_z223_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),4,1) ******/ extern struct xVarIdStruct yVarR_z224_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),5,1) ******/ extern struct xVarIdStruct yVarR_z225_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),6,1) ******/ extern struct xVarIdStruct yVarR_z226_mahPID; /***** * PROCESS Consumer3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z23_Consumer3[]; extern xStateIdNode yPrsT_z23_Consumer3[]; extern struct xPrsIdStruct yPrsR_z23_Consumer3; extern long int yPrsC_z23_Consumer3[]; extern void yPAD_z23_Consumer3 (xPrsNode); extern struct xSignalIdStruct ySigR_z23_Consumer3; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z23_Consumer3; typedef yPDef_z23_Consumer3 *yPDP_z23_Consumer3; extern xIdNode yPrsO_z23_Consumer3[]; extern char * yRef_z23_Consumer3 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),3,1) */ SDL_Duration z233_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),4,1) */ SDL_Integer z234_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),5,1) */ SDL_Integer z235_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),6,1) */ SDL_PId z236_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z23_Consumer3; typedef yVDef_z23_Consumer3 *yVDP_z23_Consumer3; extern void yFree_z23_Consumer3 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z230_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z231_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z232_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z233_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z234_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z235_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z236_mahPID; /***** * PROCESS Consumer4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z24_Consumer4[]; extern xStateIdNode yPrsT_z24_Consumer4[]; extern struct xPrsIdStruct yPrsR_z24_Consumer4; extern long int yPrsC_z24_Consumer4[]; extern void yPAD_z24_Consumer4 (xPrsNode); extern struct xSignalIdStruct ySigR_z24_Consumer4; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z24_Consumer4; typedef yPDef_z24_Consumer4 *yPDP_z24_Consumer4; extern xIdNode yPrsO_z24_Consumer4[]; extern char * yRef_z24_Consumer4 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),3,1) */ SDL_Duration z243_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),4,1) */ SDL_Integer z244_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),5,1) */ SDL_Integer z245_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),6,1) */ SDL_PId z246_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z24_Consumer4; typedef yVDef_z24_Consumer4 *yVDP_z24_Consumer4; extern void yFree_z24_Consumer4 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),134(55,70),1,1) ******/ extern struct xStateIdStruct yStaR_z240_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),125(55,130),1,1) ******/ extern struct xStateIdStruct yStaR_z241_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z242_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),3,1) ******/ extern struct xVarIdStruct yVarR_z243_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),4,1) ******/ extern struct xVarIdStruct yVarR_z244_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),5,1) ******/ extern struct xVarIdStruct yVarR_z245_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),6,1) ******/ extern struct xVarIdStruct yVarR_z246_mahPID; /***** * PROCESS Consumer5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z25_Consumer5[]; extern xStateIdNode yPrsT_z25_Consumer5[]; extern struct xPrsIdStruct yPrsR_z25_Consumer5; extern long int yPrsC_z25_Consumer5[]; extern void yPAD_z25_Consumer5 (xPrsNode); extern struct xSignalIdStruct ySigR_z25_Consumer5; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z25_Consumer5; typedef yPDef_z25_Consumer5 *yPDP_z25_Consumer5; extern xIdNode yPrsO_z25_Consumer5[]; extern char * yRef_z25_Consumer5 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),3,1) */ SDL_Duration z253_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),4,1) */ SDL_Integer z254_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),5,1) */ SDL_Integer z255_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),6,1) */ SDL_PId z256_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z25_Consumer5; typedef yVDef_z25_Consumer5 *yVDP_z25_Consumer5; extern void yFree_z25_Consumer5 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z250_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z251_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z252_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z253_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z254_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z255_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z256_mahPID; /***** * PROCESS Consumer6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z26_Consumer6[]; extern xStateIdNode yPrsT_z26_Consumer6[]; extern struct xPrsIdStruct yPrsR_z26_Consumer6; extern long int yPrsC_z26_Consumer6[]; extern void yPAD_z26_Consumer6 (xPrsNode); extern struct xSignalIdStruct ySigR_z26_Consumer6; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z26_Consumer6; typedef yPDef_z26_Consumer6 *yPDP_z26_Consumer6; extern xIdNode yPrsO_z26_Consumer6[]; extern char * yRef_z26_Consumer6 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),3,1) */ SDL_Duration z263_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),4,1) */ SDL_Integer z264_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),5,1) */ SDL_Integer z265_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),6,1) */ SDL_PId z266_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z26_Consumer6; typedef yVDef_z26_Consumer6 *yVDP_z26_Consumer6; extern void yFree_z26_Consumer6 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z260_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z261_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z262_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z263_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z264_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z265_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z266_mahPID; /***** * PROCESS Consumer7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z27_Consumer7[]; extern xStateIdNode yPrsT_z27_Consumer7[]; extern struct xPrsIdStruct yPrsR_z27_Consumer7; extern long int yPrsC_z27_Consumer7[]; extern void yPAD_z27_Consumer7 (xPrsNode); extern struct xSignalIdStruct ySigR_z27_Consumer7; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z27_Consumer7; typedef yPDef_z27_Consumer7 *yPDP_z27_Consumer7; extern xIdNode yPrsO_z27_Consumer7[]; extern char * yRef_z27_Consumer7 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),3,1) */ SDL_Duration z273_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),4,1) */ SDL_Integer z274_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),5,1) */ SDL_Integer z275_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),6,1) */ SDL_PId z276_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z27_Consumer7; typedef yVDef_z27_Consumer7 *yVDP_z27_Consumer7; extern void yFree_z27_Consumer7 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z270_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z271_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z272_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z273_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z274_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z275_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z276_mahPID; /***** * PROCESS Consumer8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z28_Consumer8[]; extern xStateIdNode yPrsT_z28_Consumer8[]; extern struct xPrsIdStruct yPrsR_z28_Consumer8; extern long int yPrsC_z28_Consumer8[]; extern void yPAD_z28_Consumer8 (xPrsNode); extern struct xSignalIdStruct ySigR_z28_Consumer8; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z28_Consumer8; typedef yPDef_z28_Consumer8 *yPDP_z28_Consumer8; extern xIdNode yPrsO_z28_Consumer8[]; extern char * yRef_z28_Consumer8 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),3,1) */ SDL_Duration z283_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),4,1) */ SDL_Integer z284_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),5,1) */ SDL_Integer z285_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),6,1) */ SDL_PId z286_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z28_Consumer8; typedef yVDef_z28_Consumer8 *yVDP_z28_Consumer8; extern void yFree_z28_Consumer8 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z280_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z281_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z282_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z283_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z284_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z285_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z286_mahPID; /***** * PROCESS Consumer9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z29_Consumer9[]; extern xStateIdNode yPrsT_z29_Consumer9[]; extern struct xPrsIdStruct yPrsR_z29_Consumer9; extern long int yPrsC_z29_Consumer9[]; extern void yPAD_z29_Consumer9 (xPrsNode); extern struct xSignalIdStruct ySigR_z29_Consumer9; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z29_Consumer9; typedef yPDef_z29_Consumer9 *yPDP_z29_Consumer9; extern xIdNode yPrsO_z29_Consumer9[]; extern char * yRef_z29_Consumer9 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),3,1) */ SDL_Duration z293_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),4,1) */ SDL_Integer z294_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),5,1) */ SDL_Integer z295_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),6,1) */ SDL_PId z296_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z29_Consumer9; typedef yVDef_z29_Consumer9 *yVDP_z29_Consumer9; extern void yFree_z29_Consumer9 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z290_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z291_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z292_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z293_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z294_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z295_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z296_mahPID; /***** * PROCESS Consumer10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr,4,1,9) ******/ extern xSignalIdNode yPrsS_z2A_Consumer10[]; extern xStateIdNode yPrsT_z2A_Consumer10[]; extern struct xPrsIdStruct yPrsR_z2A_Consumer10; extern long int yPrsC_z2A_Consumer10[]; extern void yPAD_z2A_Consumer10 (xPrsNode); extern struct xSignalIdStruct ySigR_z2A_Consumer10; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; } yPDef_z2A_Consumer10; typedef yPDef_z2A_Consumer10 *yPDP_z2A_Consumer10; extern xIdNode yPrsO_z2A_Consumer10[]; extern char * yRef_z2A_Consumer10 (int, xSymbolType *); typedef struct { xPrsNode Pre; xPrsNode Suc; int RestartAddress; xPrdNode ActivePrd; void (*RestartPAD) (xPrsNode VarP); int CallAddress; xSrvNode ActiveSrv; xSrvNode SrvList; xPrsNode NextPrs; SDL_PId Self; xPrsIdNode NameNode; int State; xSignalNode Signal; xInputPortRec InputPort; SDL_PId Parent; SDL_PId Offspring; int BlockInstNumber; xSignalIdNode pREPLY_Waited_For; xSignalNode pREPLY_Signal; SDL_PId Sender; int Trace_Default; int GRTrace; int MSCETrace; int InTransition; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),3,1) */ SDL_Duration z2A3_theseTimes; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),4,1) */ SDL_Integer z2A4_stuffRead; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),5,1) */ SDL_Integer z2A5_myID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),6,1) */ SDL_PId z2A6_mahPID; /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),1,7) */ xSignalNode yTim_coolTimes; } yVDef_z2A_Consumer10; typedef yVDef_z2A_Consumer10 *yVDP_z2A_Consumer10; extern void yFree_z2A_Consumer10 (void *); /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),134(60,70),1,1) ******/ extern struct xStateIdStruct yStaR_z2A0_SiDLing; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),125(60,130),1,1) ******/ extern struct xStateIdStruct yStaR_z2A1_ForcedWait; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),1,7) ******/ extern struct xSignalIdStruct ySigR_z2A2_coolTimes; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),3,1) ******/ extern struct xVarIdStruct yVarR_z2A3_theseTimes; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),4,1) ******/ extern struct xVarIdStruct yVarR_z2A4_stuffRead; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),5,1) ******/ extern struct xVarIdStruct yVarR_z2A5_myID; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),6,1) ******/ extern struct xVarIdStruct yVarR_z2A6_mahPID; /***** * SIGNALROUTE ConsumerLine1 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),119(48,30),1,1) ******/ extern xIdNode yChaO_z2B_ConsumerLine1[]; extern xIdNode yChaOR_z2B_ConsumerLine1[]; extern struct xChannelIdStruct yChaR_z2B_ConsumerLine1; extern struct xChannelIdStruct yChaRR_z2B_ConsumerLine1; /***** * SIGNALROUTE ConsumerLine2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),158(70,47),1,1) ******/ extern xIdNode yChaO_z2C_ConsumerLine2[]; extern xIdNode yChaOR_z2C_ConsumerLine2[]; extern struct xChannelIdStruct yChaR_z2C_ConsumerLine2; extern struct xChannelIdStruct yChaRR_z2C_ConsumerLine2; /***** * SIGNALROUTE ConsumerLine3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),167(70,62),1,1) ******/ extern xIdNode yChaO_z2D_ConsumerLine3[]; extern xIdNode yChaOR_z2D_ConsumerLine3[]; extern struct xChannelIdStruct yChaR_z2D_ConsumerLine3; extern struct xChannelIdStruct yChaRR_z2D_ConsumerLine3; /***** * SIGNALROUTE ConsumerLine4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),176(70,77),1,1) ******/ extern xIdNode yChaO_z2E_ConsumerLine4[]; extern xIdNode yChaOR_z2E_ConsumerLine4[]; extern struct xChannelIdStruct yChaR_z2E_ConsumerLine4; extern struct xChannelIdStruct yChaRR_z2E_ConsumerLine4; /***** * SIGNALROUTE ConsumerLine5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),185(70,92),1,1) ******/ extern xIdNode yChaO_z2F_ConsumerLine5[]; extern xIdNode yChaOR_z2F_ConsumerLine5[]; extern struct xChannelIdStruct yChaR_z2F_ConsumerLine5; extern struct xChannelIdStruct yChaRR_z2F_ConsumerLine5; /***** * SIGNALROUTE ConsumerLine6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),194(70,107),1,1) ******/ extern xIdNode yChaO_z2G_ConsumerLine6[]; extern xIdNode yChaOR_z2G_ConsumerLine6[]; extern struct xChannelIdStruct yChaR_z2G_ConsumerLine6; extern struct xChannelIdStruct yChaRR_z2G_ConsumerLine6; /***** * SIGNALROUTE ConsumerLine7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),212(70,122),1,1) ******/ extern xIdNode yChaO_z2H_ConsumerLine7[]; extern xIdNode yChaOR_z2H_ConsumerLine7[]; extern struct xChannelIdStruct yChaR_z2H_ConsumerLine7; extern struct xChannelIdStruct yChaRR_z2H_ConsumerLine7; /***** * SIGNALROUTE ConsumerLine8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),221(70,137),1,1) ******/ extern xIdNode yChaO_z2I_ConsumerLine8[]; extern xIdNode yChaOR_z2I_ConsumerLine8[]; extern struct xChannelIdStruct yChaR_z2I_ConsumerLine8; extern struct xChannelIdStruct yChaRR_z2I_ConsumerLine8; /***** * SIGNALROUTE ConsumerLine9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),230(70,152),1,1) ******/ extern xIdNode yChaO_z2J_ConsumerLine9[]; extern xIdNode yChaOR_z2J_ConsumerLine9[]; extern struct xChannelIdStruct yChaR_z2J_ConsumerLine9; extern struct xChannelIdStruct yChaRR_z2J_ConsumerLine9; /***** * SIGNALROUTE ConsumerLine10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),239(70,167),1,1) ******/ extern xIdNode yChaO_z2K_ConsumerLine10[]; extern xIdNode yChaOR_z2K_ConsumerLine10[]; extern struct xChannelIdStruct yChaR_z2K_ConsumerLine10; extern struct xChannelIdStruct yChaRR_z2K_ConsumerLine10; /***** * CHANNEL ProducerDongle * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),140(130,72),1,1) ******/ extern xIdNode yChaO_z3_ProducerDongle[]; extern xIdNode yChaOR_z3_ProducerDongle[]; extern struct xChannelIdStruct yChaR_z3_ProducerDongle; extern struct xChannelIdStruct yChaRR_z3_ProducerDongle; /***** * CHANNEL ThisWayOrTheHighway * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),122(45,102),1,1) ******/ extern xIdNode yChaO_z4_ThisWayOrTheHighway[]; extern xIdNode yChaOR_z4_ThisWayOrTheHighway[]; extern struct xChannelIdStruct yChaR_z4_ThisWayOrTheHighway; extern struct xChannelIdStruct yChaRR_z4_ThisWayOrTheHighway; /***** * CHANNEL ConsumerDongle * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),149(132,152),1,1) ******/ extern xIdNode yChaO_z5_ConsumerDongle[]; extern xIdNode yChaOR_z5_ConsumerDongle[]; extern struct xChannelIdStruct yChaR_z5_ConsumerDongle; extern struct xChannelIdStruct yChaRR_z5_ConsumerDongle; /***** * SIGNAL requestWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),2,1) ******/ extern struct xSignalIdStruct ySigR_z6_requestWrite; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Integer Param1; SDL_Integer Param2; SDL_PId Param3; } yPDef_z6_requestWrite; typedef yPDef_z6_requestWrite *yPDP_z6_requestWrite; /***** * SIGNAL approveWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),3,1) ******/ extern struct xSignalIdStruct ySigR_z7_approveWrite; /***** * SIGNAL requestRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),4,1) ******/ extern struct xSignalIdStruct ySigR_z8_requestRead; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Integer Param1; SDL_PId Param2; } yPDef_z8_requestRead; typedef yPDef_z8_requestRead *yPDP_z8_requestRead; /***** * SIGNAL approveRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),5,1) ******/ extern struct xSignalIdStruct ySigR_z9_approveRead; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Integer Param1; } yPDef_z9_approveRead; typedef yPDef_z9_approveRead *yPDP_z9_approveRead; /***** * SIGNAL consumerXReadItemY * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),6,1) ******/ extern struct xSignalIdStruct ySigR_zA_consumerXReadItemY; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Integer Param1; SDL_Integer Param2; } yPDef_zA_consumerXReadItemY; typedef yPDef_zA_consumerXReadItemY *yPDP_zA_consumerXReadItemY; /***** * SIGNAL producerXWroteItemY * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),7,1) ******/ extern struct xSignalIdStruct ySigR_zB_producerXWroteItemY; typedef struct { xSignalNode Pre; xSignalNode Suc; int Prio; SDL_PId Receiver; SDL_PId Sender; xSignalIdNode NameNode; int GlobalInstanceId; xChannelIdNode EnvChannel; SDL_Integer Param1; SDL_Integer Param2; } yPDef_zB_producerXWroteItemY; typedef yPDef_zB_producerXWroteItemY *yPDP_zB_producerXWroteItemY; /************************************************************************* ** #CODE directives, #HEADING sections ** *************************************************************************/ /************************************************************************* ** #CODE directives, #BODY sections ** *************************************************************************/ /************************************************************************* ** SECTION Variables and Functions ** *************************************************************************/ /***** * SYSTEM Concuro * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,4,1,8) ******/ struct xSystemIdStruct ySysR_z_Concuro = { xSystemEC , (xIdNode)0, (xIdNode)0, (xIdNode)&xSymbolTableIdRec, "Concuro" , (xIdNode *)0, (xPrdIdNode *)0, (xSystemIdNode)0 , -1 , -1 , -1 }; /***** * ENV ******/ xIdNode yEnvO_env[] = { (xIdNode)&yChaRR_z4_ThisWayOrTheHighway, (xIdNode)0 }; /***** * NEWTYPE RandomControl (BODY section) * <> * #SDTREF(TEXT,C:\Telelogic\SDL_TTCN_Suite6.0\sdt\include\adt\random.pr,26,9) ******/ /* *** RandomControl *** */ tSDLFuncInfo ySDLOp_RandomControl = { 0, 0, 0 , yWri_RandomControl , yRead_RandomControl}; tSDLUserdefInfo ySDL_RandomControl = { type_SDL_Userdef, 0, (unsigned)sizeof(RandomControl) , &ySDLOp_RandomControl , "RandomControl" , (xIdNode)&ySysR_z_Concuro , &ySrtR_RandomControl }; struct xSortIdStruct ySrtR_RandomControl = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "RandomControl" , 0 , 0, (unsigned)sizeof(RandomControl), xUserdef, (xSortIdNode)0, (xSortIdNode)0, 0, 0, 0, 0 , (tSDLTypeInfo *)&ySDL_RandomControl }; /* #SDTREF(TEXT,C:\Telelogic\SDL_TTCN_Suite6.0\sdt\include\adt\random.pr,162,42) */ SDL_Real TtoR( SDL_Time D ) { return (SDL_Real)D.s + (SDL_Real)D.ns*1E-9; } SDL_Time RtoT( SDL_Real R ) { SDL_Time D; D.s = (int)R; D.ns = (int)((R - (SDL_Real)D.s)*1E9); return D; } SDL_Time ItoT( SDL_Integer I ) { SDL_Time D; D.s = I; D.ns = (int)0; return D; } SDL_Real Random( RandomControl Seq ) { if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" Random\n"); *Seq = *Seq + (*Seq<<1) + (*Seq<<16); return (SDL_Real)((*Seq)/4294967296.0); } SDL_Real Erlang( SDL_Real Mean, SDL_Integer r, RandomControl Seq ) { SDL_Real Prod; int I; if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" Erlang\n"); if ( (Mean <= 0.0) || (r < 1) ) { xSDLOpError("Erlang in sort RandomControl", "Illegal parameter"); return 0.0; } Prod = Random(Seq); for (I=2; I<=r; I++) Prod = Prod*Random(Seq); return (-log(Prod)*Mean / r); } SDL_Real HyperExp2 ( SDL_Real Mean1, SDL_Real Mean2, SDL_Real Alpha, RandomControl Seq ) { SDL_Real NegExp1; if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" HyperExp2\n"); if ( (Mean1<=0.0) || (Mean2<=0.0) || (Alpha<0.0) || (Alpha>1.0) ) { xSDLOpError("HyperExp2 in sort RandomControl", "Illegal parameter"); return 0.0; } NegExp1 = -log(Random(Seq)); if ( Alpha > Random(Seq) ) return NegExp1*Mean1; return NegExp1*Mean2; } SDL_Real NegExp( SDL_Real Mean, RandomControl Seq ) { if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" NegExp\n"); if ( Mean <= 0.0 ) { xSDLOpError("NegExp in sort RandomControl", "Illegal parameter"); return 0.0; } return -log(Random(Seq)) * Mean; } SDL_Real Uniform( SDL_Real Low, SDL_Real High, RandomControl Seq ) { if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" Uniform\n"); if ( Low > High ) { xSDLOpError("Uniform in sort RandomControl", "Illegal parameter"); return 0.0; } return Low + (High-Low)*Random(Seq); } SDL_Real Draw( SDL_Real Alpha, RandomControl Seq ) { if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" Draw\n"); if ( (Alpha < 0.0) || (Alpha > 1.0) ) { xSDLOpError("Draw in sort RandomControl", "Illegal parameter"); return 0; } return Alpha > Random(Seq); } SDL_Integer Geometric( SDL_Real p, RandomControl Seq ) { if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" Geometric\n"); if ( (p < 0.0) || (p >= 1.0) ) { xSDLOpError("Geometric in sort RandomControl", "Illegal parameter"); return 0; } if ( p == 0.0 ) { (void)Random(Seq); return 0; } return (SDL_Integer)(log(Random(Seq)) / log(p)); } SDL_Integer Poisson( SDL_Real m, RandomControl Seq ) { SDL_Real U, Term, Sum; int Sample; if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" Poisson\n"); if ( m < 0.0 ) { xSDLOpError("Poisson in sort RandomControl", "Illegal parameter"); return 0.0; } Term = exp(-m); Sum = Term; Sample = 0; U = Random(Seq); while (U > Sum) { Sample = Sample + 1; Term = Term * m/Sample; if ( Sum+Term == Sum ) { xSDLOpError("Poisson in sort RandomControl", "Function run out of significant digits"); return Sample; } Sum = Sum + Term; } return Sample; } SDL_Integer RandInt(SDL_Integer Low, SDL_Integer High, RandomControl Seq ) { SDL_Real U; if ( xShouldBeTraced(xtNine, (xPrsNode)0) ) xPrintString(" RandInt\n"); if ( Low > High ) { xSDLOpError("RandInt in sort RandomControl", "Illegal parameter"); return 0; } U = Random(Seq); return (SDL_Integer)(Low*(1.0-U) + High*U + U); } RandomControl DefineSeed( SDL_Integer Seed ) { RandomControl R; R = (RandomControl)xAlloc((unsigned)sizeof(unsigned long)); if ( (Seed > 32767) || (Seed < 1) || (Seed%2 == 0) ) { xSDLOpError("DefineSeed in sort RandomControl", "Illegal Seed value"); *R = 65537; return R; } if ( Seed < 8192 ) *R = 65537*Seed + 8192; else *R = 65537*Seed; return R; } SDL_Integer Seed( RandomControl Seq ) { return RandInt(1, 16383, Seq)*2 + 1; } char * yWri_RandomControl( void * Value) { static WriteBuf *buf = 0; if (*(void **)Value != (void *)0) { if (!buf) buf = WriteBuf_New(14); else ((buf)->rep->len = 0); xGenericWriteSort(buf, *(void **)Value, (tSDLTypeInfo *)&ySDL_SDL_Integer); return ((buf)->rep->A); } return "0"; } int yRead_RandomControl( void * Result ) { if (*(RandomControl *)Result == (RandomControl)0) *(RandomControl *)Result = (RandomControl)xAlloc((unsigned)sizeof(unsigned long)); return xGenericReadSort(*(void **)Result, ((&xSrtR_SDL_Integer))->TypeInfo); } /***** * BLOCK Producers * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk,4,1,7) ******/ struct xBlockIdStruct yBloR_z0_Producers = { xBlockEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "Producers" , (xBlockIdNode)0, (xIdNode *)0, (xPrdIdNode *)0, (xViewListRec *)0, (xViewIndexRec *)0, 1 , -1 , -1 , -1 , 0 }; xIdNode yChaOR_z3_ProducerDongle[] = {(xIdNode)&yChaRR_z0B_ProducerLine1, (xIdNode)&yChaRR_z0C_ProducerLine2, (xIdNode)&yChaRR_z0D_ProducerLine3, (xIdNode)&yChaRR_z0E_ProducerLine4, (xIdNode)&yChaRR_z0F_ProducerLine5, (xIdNode)&yChaRR_z0G_ProducerLine6, (xIdNode)&yChaRR_z0H_ProducerLine7, (xIdNode)&yChaRR_z0I_ProducerLine8, (xIdNode)&yChaRR_z0J_ProducerLine9, (xIdNode)&yChaRR_z0K_ProducerLine10, (xIdNode)0}; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z010_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z010_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z01_Producer , &ySrtR_z010_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z010_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "iLikeToWrite" , 0 , yTest_z010_iLikeToWrite, (unsigned)sizeof(z010_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z010_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z010_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z010_iLikeToWrite *)yExpr))) if (((*(z010_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z010_iLikeToWrite yTstA_z010_iLikeToWrite(z010_iLikeToWrite yExpr) { if (! yTest_z010_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z010_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,9) ******/ long int yPrsC_z01_Producer[14+1]; xSignalIdNode yPrsS_z01_Producer[] = { &ySigR_z7_approveWrite, &ySigR_z013_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z01_Producer[] = { &xStartStateIdRec, &yStaR_z011_SiDLing, &yStaR_z012_ForcedToWait}; static xPrsNode yPrsA_z01_Producer = (xPrsNode)0; static xPrsNode yPrsB_z01_Producer = (xPrsNode)0; struct xPrsIdStruct yPrsR_z01_Producer = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer" , yPrsT_z01_Producer, yPrsS_z01_Producer , 0 , yPrsO_z01_Producer, -1 , 1 , 1, &yPrsB_z01_Producer, (unsigned)sizeof(yVDef_z01_Producer) , 100, &yPrsA_z01_Producer , -1 , -1 , yRef_z01_Producer , 14 , 2 , -1 , yPrsC_z01_Producer , 0 , 0, yPAD_z01_Producer, yFree_z01_Producer, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr,4,1,9)" }; static xSignalNode ySigA_z01_Producer = (xSignalNode)0; struct xSignalIdStruct ySigR_z01_Producer = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z01_Producer), &ySigA_z01_Producer, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr,4,1,9)" ,0 }; xIdNode yPrsO_z01_Producer[] = { (xIdNode)&yChaR_z0B_ProducerLine1, (xIdNode)0}; void yFree_z01_Producer(void *me) { } /*+++++ * GR ref function for process Producer * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,17) ++++++*/ char * yRef_z01_Producer (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),119(65,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),143(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),158(60,140),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(35,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(35,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(35,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(35,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(35,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),134(65,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),149(35,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),167(60,125),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),179(45,160),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),179(45,160),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),179(45,160),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),176(65,185),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,17) ++++++*/ extern void yPAD_z01_Producer (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z01_Producer * me = (yVDef_z01_Producer *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),119(65,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z017_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 3663, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(35,35),1,1) ------*/ case 3: (me->z015_myID = 1); xTraceAssign("myID := ", &(me->z015_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z015_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 3681, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(35,35),2,1) ------*/ case 4: (me->z016_numberToWrite = (z010_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z016_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z016_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 3700, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(35,35),3,1) ------*/ case 5: (me->z014_someTime = SDL_Duration_Lit((int)(1000),(int)(0))); xTraceAssign("someTime := ", &(me->z014_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z014_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 3719, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(35,35),4,1) ------*/ case 6: (me->z017_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z017_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z017_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 3737, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(35,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z014_someTime), &me->yTim_walkingTime, (&ySigR_z013_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 3749, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),143(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 3770, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),149(35,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z015_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z016_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z017_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 3792, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),158(60,140),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 3812, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160),1,1) ------*/ case 11: (me->z016_numberToWrite = (z010_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z016_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z016_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 3831, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160),2,1) ------*/ case 12: (me->z014_someTime = SDL_Duration_Lit((int)(950),(int)(0))); xTraceAssign("someTime := ", &(me->z014_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z014_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 3850, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z014_someTime), &me->yTim_walkingTime, (&ySigR_z013_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 3862, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),176(65,185),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70),1,1) ******/ static xInputAction yStaH_z011_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z011_SiDLing[] = { 0, 1, 0}; static long int yStaC_z011_SiDLing[2+1]; struct xStateIdStruct yStaR_z011_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "SiDLing" , 1, yStaH_z011_SiDLing, yStaI_z011_SiDLing, 0, 0, 0 , yStaC_z011_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),134(65,70),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125),1,1) ******/ static xInputAction yStaH_z012_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z012_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z012_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z012_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "ForcedToWait" , 2, yStaH_z012_ForcedToWait, yStaI_z012_ForcedToWait, 0, 0, 0 , yStaC_z012_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),167(60,125),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),1,7) ******/ struct xSignalIdStruct ySigR_z013_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),128(135,15),1,7)" ,((unsigned) &((yVDef_z01_Producer *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),3,1) ******/ struct xVarIdStruct yVarR_z014_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z01_Producer *) 0)->z014_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),5,1) ******/ struct xVarIdStruct yVarR_z015_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z01_Producer *) 0)->z015_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),6,1) ******/ struct xVarIdStruct yVarR_z016_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z01_Producer *) 0)->z016_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),7,1) ******/ struct xVarIdStruct yVarR_z017_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z01_Producer *) 0)->z017_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),8,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z020_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z020_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z02_Producer2 , &ySrtR_z020_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z020_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "iLikeToWrite" , 0 , yTest_z020_iLikeToWrite, (unsigned)sizeof(z020_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z020_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z020_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z020_iLikeToWrite *)yExpr))) if (((*(z020_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z020_iLikeToWrite yTstA_z020_iLikeToWrite(z020_iLikeToWrite yExpr) { if (! yTest_z020_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z020_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr,4,1,9) ******/ long int yPrsC_z02_Producer2[14+1]; xSignalIdNode yPrsS_z02_Producer2[] = { &ySigR_z7_approveWrite, &ySigR_z023_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z02_Producer2[] = { &xStartStateIdRec, &yStaR_z021_SiDLing, &yStaR_z022_ForcedToWait}; static xPrsNode yPrsA_z02_Producer2 = (xPrsNode)0; static xPrsNode yPrsB_z02_Producer2 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z02_Producer2 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer2" , yPrsT_z02_Producer2, yPrsS_z02_Producer2 , 0 , yPrsO_z02_Producer2, -1 , 1 , 1, &yPrsB_z02_Producer2, (unsigned)sizeof(yVDef_z02_Producer2) , 100, &yPrsA_z02_Producer2 , -1 , -1 , yRef_z02_Producer2 , 14 , 2 , -1 , yPrsC_z02_Producer2 , 0 , 0, yPAD_z02_Producer2, yFree_z02_Producer2, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr,4,1,9)" }; static xSignalNode ySigA_z02_Producer2 = (xSignalNode)0; struct xSignalIdStruct ySigR_z02_Producer2 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z02_Producer2), &ySigA_z02_Producer2, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr,4,1,9)" ,0 }; xIdNode yPrsO_z02_Producer2[] = { (xIdNode)&yChaR_z0C_ProducerLine2, (xIdNode)0}; void yFree_z02_Producer2(void *me) { } /*+++++ * GR ref function for process Producer2 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr,4,1,18) ++++++*/ char * yRef_z02_Producer2 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),170(55,20),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),134(50,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),125(50,140),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),140(35,40),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),140(35,40),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),140(35,40),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),140(35,40),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),140(35,40),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),137(55,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),131(25,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),128(50,125),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),122(35,160),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),122(35,160),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),122(35,160),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),176(55,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer2 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr,4,1,18) ++++++*/ extern void yPAD_z02_Producer2 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z02_Producer2 * me = (yVDef_z02_Producer2 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),170(55,20),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z027_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 4127, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),140(35,40),1,1) ------*/ case 3: (me->z025_myID = 2); xTraceAssign("myID := ", &(me->z025_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z025_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 4145, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),140(35,40),2,1) ------*/ case 4: (me->z026_numberToWrite = (z020_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z026_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z026_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 4164, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),140(35,40),3,1) ------*/ case 5: (me->z024_someTime = SDL_Duration_Lit((int)(1001),(int)(0))); xTraceAssign("someTime := ", &(me->z024_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z024_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 4183, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),140(35,40),4,1) ------*/ case 6: (me->z027_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z027_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z027_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 4201, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),140(35,40),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z024_someTime), &me->yTim_walkingTime, (&ySigR_z023_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 4213, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),137(55,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),134(50,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 4234, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),131(25,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z025_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z026_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z027_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 4256, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),128(50,125),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),125(50,140),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 4276, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),122(35,160),1,1) ------*/ case 11: (me->z026_numberToWrite = (z020_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z026_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z026_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 4295, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),122(35,160),2,1) ------*/ case 12: (me->z024_someTime = SDL_Duration_Lit((int)(866),(int)(0))); xTraceAssign("someTime := ", &(me->z024_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z024_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 4314, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),122(35,160),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z024_someTime), &me->yTim_walkingTime, (&ySigR_z023_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 4326, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),176(55,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),137(55,70),1,1) ******/ static xInputAction yStaH_z021_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z021_SiDLing[] = { 0, 1, 0}; static long int yStaC_z021_SiDLing[2+1]; struct xStateIdStruct yStaR_z021_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "SiDLing" , 1, yStaH_z021_SiDLing, yStaI_z021_SiDLing, 0, 0, 0 , yStaC_z021_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),137(55,70),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),128(50,125),1,1) ******/ static xInputAction yStaH_z022_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z022_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z022_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z022_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "ForcedToWait" , 2, yStaH_z022_ForcedToWait, yStaI_z022_ForcedToWait, 0, 0, 0 , yStaC_z022_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),128(50,125),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),1,7) ******/ struct xSignalIdStruct ySigR_z023_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf2.spr(1),116(125,15),1,7)" ,((unsigned) &((yVDef_z02_Producer2 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),3,1) ******/ struct xVarIdStruct yVarR_z024_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z02_Producer2 *) 0)->z024_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),4,1) ******/ struct xVarIdStruct yVarR_z025_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z02_Producer2 *) 0)->z025_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),5,1) ******/ struct xVarIdStruct yVarR_z026_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z02_Producer2 *) 0)->z026_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf2.spr(1),116(125,15),6,1) ******/ struct xVarIdStruct yVarR_z027_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z02_Producer2, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z02_Producer2 *) 0)->z027_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z030_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z030_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z03_Producer3 , &ySrtR_z030_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z030_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "iLikeToWrite" , 0 , yTest_z030_iLikeToWrite, (unsigned)sizeof(z030_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z030_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z030_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z030_iLikeToWrite *)yExpr))) if (((*(z030_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z030_iLikeToWrite yTstA_z030_iLikeToWrite(z030_iLikeToWrite yExpr) { if (! yTest_z030_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z030_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr,4,1,9) ******/ long int yPrsC_z03_Producer3[14+1]; xSignalIdNode yPrsS_z03_Producer3[] = { &ySigR_z7_approveWrite, &ySigR_z033_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z03_Producer3[] = { &xStartStateIdRec, &yStaR_z031_SiDLing, &yStaR_z032_ForcedToWait}; static xPrsNode yPrsA_z03_Producer3 = (xPrsNode)0; static xPrsNode yPrsB_z03_Producer3 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z03_Producer3 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer3" , yPrsT_z03_Producer3, yPrsS_z03_Producer3 , 0 , yPrsO_z03_Producer3, -1 , 1 , 1, &yPrsB_z03_Producer3, (unsigned)sizeof(yVDef_z03_Producer3) , 100, &yPrsA_z03_Producer3 , -1 , -1 , yRef_z03_Producer3 , 14 , 2 , -1 , yPrsC_z03_Producer3 , 0 , 0, yPAD_z03_Producer3, yFree_z03_Producer3, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr,4,1,9)" }; static xSignalNode ySigA_z03_Producer3 = (xSignalNode)0; struct xSignalIdStruct ySigR_z03_Producer3 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z03_Producer3), &ySigA_z03_Producer3, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr,4,1,9)" ,0 }; xIdNode yPrsO_z03_Producer3[] = { (xIdNode)&yChaR_z0D_ProducerLine3, (xIdNode)0}; void yFree_z03_Producer3(void *me) { } /*+++++ * GR ref function for process Producer3 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr,4,1,18) ++++++*/ char * yRef_z03_Producer3 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),143(60,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),134(55,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),125(55,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),140(30,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),140(30,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),140(30,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),140(30,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),140(30,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),137(60,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),131(30,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),128(55,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),122(40,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),122(40,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),122(40,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),119(60,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer3 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr,4,1,18) ++++++*/ extern void yPAD_z03_Producer3 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z03_Producer3 * me = (yVDef_z03_Producer3 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),143(60,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z037_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 4592, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),140(30,30),1,1) ------*/ case 3: (me->z035_myID = 3); xTraceAssign("myID := ", &(me->z035_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z035_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 4610, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),140(30,30),2,1) ------*/ case 4: (me->z036_numberToWrite = (z030_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z036_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z036_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 4629, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),140(30,30),3,1) ------*/ case 5: (me->z034_someTime = SDL_Duration_Lit((int)(1050),(int)(0))); xTraceAssign("someTime := ", &(me->z034_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z034_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 4648, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),140(30,30),4,1) ------*/ case 6: (me->z037_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z037_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z037_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 4666, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),140(30,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z034_someTime), &me->yTim_walkingTime, (&ySigR_z033_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 4678, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),137(60,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),134(55,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 4699, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),131(30,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z035_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z036_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z037_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 4721, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),128(55,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),125(55,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 4741, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),122(40,155),1,1) ------*/ case 11: (me->z036_numberToWrite = (z030_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z036_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z036_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 4760, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),122(40,155),2,1) ------*/ case 12: (me->z034_someTime = SDL_Duration_Lit((int)(966),(int)(0))); xTraceAssign("someTime := ", &(me->z034_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z034_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 4779, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),122(40,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z034_someTime), &me->yTim_walkingTime, (&ySigR_z033_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 4791, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),119(60,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),137(60,65),1,1) ******/ static xInputAction yStaH_z031_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z031_SiDLing[] = { 0, 1, 0}; static long int yStaC_z031_SiDLing[2+1]; struct xStateIdStruct yStaR_z031_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "SiDLing" , 1, yStaH_z031_SiDLing, yStaI_z031_SiDLing, 0, 0, 0 , yStaC_z031_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),137(60,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),128(55,120),1,1) ******/ static xInputAction yStaH_z032_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z032_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z032_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z032_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "ForcedToWait" , 2, yStaH_z032_ForcedToWait, yStaI_z032_ForcedToWait, 0, 0, 0 , yStaC_z032_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),128(55,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),1,7) ******/ struct xSignalIdStruct ySigR_z033_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf3.spr(1),116(130,10),1,7)" ,((unsigned) &((yVDef_z03_Producer3 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),3,1) ******/ struct xVarIdStruct yVarR_z034_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z03_Producer3 *) 0)->z034_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),5,1) ******/ struct xVarIdStruct yVarR_z035_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z03_Producer3 *) 0)->z035_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),6,1) ******/ struct xVarIdStruct yVarR_z036_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z03_Producer3 *) 0)->z036_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf3.spr(1),116(130,10),7,1) ******/ struct xVarIdStruct yVarR_z037_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z03_Producer3, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z03_Producer3 *) 0)->z037_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z040_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z040_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z04_Producer4 , &ySrtR_z040_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z040_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "iLikeToWrite" , 0 , yTest_z040_iLikeToWrite, (unsigned)sizeof(z040_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z040_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z040_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z040_iLikeToWrite *)yExpr))) if (((*(z040_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z040_iLikeToWrite yTstA_z040_iLikeToWrite(z040_iLikeToWrite yExpr) { if (! yTest_z040_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z040_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr,4,1,9) ******/ long int yPrsC_z04_Producer4[14+1]; xSignalIdNode yPrsS_z04_Producer4[] = { &ySigR_z7_approveWrite, &ySigR_z043_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z04_Producer4[] = { &xStartStateIdRec, &yStaR_z041_SiDLing, &yStaR_z042_ForcedToWait}; static xPrsNode yPrsA_z04_Producer4 = (xPrsNode)0; static xPrsNode yPrsB_z04_Producer4 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z04_Producer4 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer4" , yPrsT_z04_Producer4, yPrsS_z04_Producer4 , 0 , yPrsO_z04_Producer4, -1 , 1 , 1, &yPrsB_z04_Producer4, (unsigned)sizeof(yVDef_z04_Producer4) , 100, &yPrsA_z04_Producer4 , -1 , -1 , yRef_z04_Producer4 , 14 , 2 , -1 , yPrsC_z04_Producer4 , 0 , 0, yPAD_z04_Producer4, yFree_z04_Producer4, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr,4,1,9)" }; static xSignalNode ySigA_z04_Producer4 = (xSignalNode)0; struct xSignalIdStruct ySigR_z04_Producer4 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z04_Producer4), &ySigA_z04_Producer4, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr,4,1,9)" ,0 }; xIdNode yPrsO_z04_Producer4[] = { (xIdNode)&yChaR_z0E_ProducerLine4, (xIdNode)0}; void yFree_z04_Producer4(void *me) { } /*+++++ * GR ref function for process Producer4 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr,4,1,18) ++++++*/ char * yRef_z04_Producer4 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),143(65,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),134(60,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),125(60,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),140(35,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),140(35,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),140(35,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),140(35,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),140(35,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),137(65,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),131(35,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),128(60,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),122(45,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),122(45,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),122(45,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),119(65,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer4 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr,4,1,18) ++++++*/ extern void yPAD_z04_Producer4 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z04_Producer4 * me = (yVDef_z04_Producer4 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),143(65,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z047_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 5057, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),140(35,30),1,1) ------*/ case 3: (me->z045_myID = 4); xTraceAssign("myID := ", &(me->z045_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z045_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 5075, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),140(35,30),2,1) ------*/ case 4: (me->z046_numberToWrite = (z040_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z046_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z046_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 5094, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),140(35,30),3,1) ------*/ case 5: (me->z044_someTime = SDL_Duration_Lit((int)(1055),(int)(0))); xTraceAssign("someTime := ", &(me->z044_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z044_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 5113, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),140(35,30),4,1) ------*/ case 6: (me->z047_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z047_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z047_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 5131, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),140(35,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z044_someTime), &me->yTim_walkingTime, (&ySigR_z043_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 5143, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),137(65,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),134(60,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 5164, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),131(35,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z045_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z046_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z047_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 5186, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),128(60,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),125(60,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 5206, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),122(45,155),1,1) ------*/ case 11: (me->z046_numberToWrite = (z040_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z046_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z046_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 5225, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),122(45,155),2,1) ------*/ case 12: (me->z044_someTime = SDL_Duration_Lit((int)(812),(int)(0))); xTraceAssign("someTime := ", &(me->z044_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z044_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 5244, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),122(45,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z044_someTime), &me->yTim_walkingTime, (&ySigR_z043_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 5256, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),119(65,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),137(65,65),1,1) ******/ static xInputAction yStaH_z041_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z041_SiDLing[] = { 0, 1, 0}; static long int yStaC_z041_SiDLing[2+1]; struct xStateIdStruct yStaR_z041_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "SiDLing" , 1, yStaH_z041_SiDLing, yStaI_z041_SiDLing, 0, 0, 0 , yStaC_z041_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),137(65,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),128(60,120),1,1) ******/ static xInputAction yStaH_z042_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z042_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z042_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z042_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "ForcedToWait" , 2, yStaH_z042_ForcedToWait, yStaI_z042_ForcedToWait, 0, 0, 0 , yStaC_z042_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),128(60,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),1,7) ******/ struct xSignalIdStruct ySigR_z043_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf4.spr(1),116(135,10),1,7)" ,((unsigned) &((yVDef_z04_Producer4 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),3,1) ******/ struct xVarIdStruct yVarR_z044_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z04_Producer4 *) 0)->z044_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),5,1) ******/ struct xVarIdStruct yVarR_z045_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z04_Producer4 *) 0)->z045_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),6,1) ******/ struct xVarIdStruct yVarR_z046_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z04_Producer4 *) 0)->z046_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf4.spr(1),116(135,10),7,1) ******/ struct xVarIdStruct yVarR_z047_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z04_Producer4, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z04_Producer4 *) 0)->z047_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z050_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z050_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z05_Producer5 , &ySrtR_z050_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z050_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "iLikeToWrite" , 0 , yTest_z050_iLikeToWrite, (unsigned)sizeof(z050_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z050_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z050_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z050_iLikeToWrite *)yExpr))) if (((*(z050_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z050_iLikeToWrite yTstA_z050_iLikeToWrite(z050_iLikeToWrite yExpr) { if (! yTest_z050_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z050_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr,4,1,9) ******/ long int yPrsC_z05_Producer5[14+1]; xSignalIdNode yPrsS_z05_Producer5[] = { &ySigR_z7_approveWrite, &ySigR_z053_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z05_Producer5[] = { &xStartStateIdRec, &yStaR_z051_SiDLing, &yStaR_z052_ForcedToWait}; static xPrsNode yPrsA_z05_Producer5 = (xPrsNode)0; static xPrsNode yPrsB_z05_Producer5 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z05_Producer5 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer5" , yPrsT_z05_Producer5, yPrsS_z05_Producer5 , 0 , yPrsO_z05_Producer5, -1 , 1 , 1, &yPrsB_z05_Producer5, (unsigned)sizeof(yVDef_z05_Producer5) , 100, &yPrsA_z05_Producer5 , -1 , -1 , yRef_z05_Producer5 , 14 , 2 , -1 , yPrsC_z05_Producer5 , 0 , 0, yPAD_z05_Producer5, yFree_z05_Producer5, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr,4,1,9)" }; static xSignalNode ySigA_z05_Producer5 = (xSignalNode)0; struct xSignalIdStruct ySigR_z05_Producer5 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z05_Producer5), &ySigA_z05_Producer5, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr,4,1,9)" ,0 }; xIdNode yPrsO_z05_Producer5[] = { (xIdNode)&yChaR_z0F_ProducerLine5, (xIdNode)0}; void yFree_z05_Producer5(void *me) { } /*+++++ * GR ref function for process Producer5 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr,4,1,18) ++++++*/ char * yRef_z05_Producer5 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),143(60,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),134(55,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),125(55,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),140(30,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),140(30,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),140(30,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),140(30,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),140(30,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),137(60,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),131(30,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),128(55,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),122(40,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),122(40,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),122(40,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),119(60,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer5 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr,4,1,18) ++++++*/ extern void yPAD_z05_Producer5 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z05_Producer5 * me = (yVDef_z05_Producer5 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),143(60,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z057_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 5522, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),140(30,30),1,1) ------*/ case 3: (me->z055_myID = 5); xTraceAssign("myID := ", &(me->z055_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z055_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 5540, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),140(30,30),2,1) ------*/ case 4: (me->z056_numberToWrite = (z050_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z056_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z056_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 5559, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),140(30,30),3,1) ------*/ case 5: (me->z054_someTime = SDL_Duration_Lit((int)(1069),(int)(0))); xTraceAssign("someTime := ", &(me->z054_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z054_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 5578, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),140(30,30),4,1) ------*/ case 6: (me->z057_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z057_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z057_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 5596, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),140(30,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z054_someTime), &me->yTim_walkingTime, (&ySigR_z053_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 5608, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),137(60,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),134(55,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 5629, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),131(30,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z055_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z056_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z057_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 5651, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),128(55,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),125(55,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 5671, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),122(40,155),1,1) ------*/ case 11: (me->z056_numberToWrite = (z050_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z056_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z056_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 5690, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),122(40,155),2,1) ------*/ case 12: (me->z054_someTime = SDL_Duration_Lit((int)(987),(int)(0))); xTraceAssign("someTime := ", &(me->z054_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z054_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 5709, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),122(40,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z054_someTime), &me->yTim_walkingTime, (&ySigR_z053_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 5721, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),119(60,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),137(60,65),1,1) ******/ static xInputAction yStaH_z051_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z051_SiDLing[] = { 0, 1, 0}; static long int yStaC_z051_SiDLing[2+1]; struct xStateIdStruct yStaR_z051_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "SiDLing" , 1, yStaH_z051_SiDLing, yStaI_z051_SiDLing, 0, 0, 0 , yStaC_z051_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),137(60,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),128(55,120),1,1) ******/ static xInputAction yStaH_z052_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z052_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z052_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z052_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "ForcedToWait" , 2, yStaH_z052_ForcedToWait, yStaI_z052_ForcedToWait, 0, 0, 0 , yStaC_z052_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),128(55,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),1,7) ******/ struct xSignalIdStruct ySigR_z053_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf5.spr(1),116(130,10),1,7)" ,((unsigned) &((yVDef_z05_Producer5 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),3,1) ******/ struct xVarIdStruct yVarR_z054_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z05_Producer5 *) 0)->z054_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),5,1) ******/ struct xVarIdStruct yVarR_z055_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z05_Producer5 *) 0)->z055_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),6,1) ******/ struct xVarIdStruct yVarR_z056_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z05_Producer5 *) 0)->z056_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf5.spr(1),116(130,10),7,1) ******/ struct xVarIdStruct yVarR_z057_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z05_Producer5, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z05_Producer5 *) 0)->z057_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z060_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z060_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z06_Producer6 , &ySrtR_z060_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z060_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "iLikeToWrite" , 0 , yTest_z060_iLikeToWrite, (unsigned)sizeof(z060_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z060_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z060_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z060_iLikeToWrite *)yExpr))) if (((*(z060_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z060_iLikeToWrite yTstA_z060_iLikeToWrite(z060_iLikeToWrite yExpr) { if (! yTest_z060_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z060_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr,4,1,9) ******/ long int yPrsC_z06_Producer6[14+1]; xSignalIdNode yPrsS_z06_Producer6[] = { &ySigR_z7_approveWrite, &ySigR_z063_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z06_Producer6[] = { &xStartStateIdRec, &yStaR_z061_SiDLing, &yStaR_z062_ForcedToWait}; static xPrsNode yPrsA_z06_Producer6 = (xPrsNode)0; static xPrsNode yPrsB_z06_Producer6 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z06_Producer6 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer6" , yPrsT_z06_Producer6, yPrsS_z06_Producer6 , 0 , yPrsO_z06_Producer6, -1 , 1 , 1, &yPrsB_z06_Producer6, (unsigned)sizeof(yVDef_z06_Producer6) , 100, &yPrsA_z06_Producer6 , -1 , -1 , yRef_z06_Producer6 , 14 , 2 , -1 , yPrsC_z06_Producer6 , 0 , 0, yPAD_z06_Producer6, yFree_z06_Producer6, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr,4,1,9)" }; static xSignalNode ySigA_z06_Producer6 = (xSignalNode)0; struct xSignalIdStruct ySigR_z06_Producer6 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z06_Producer6), &ySigA_z06_Producer6, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr,4,1,9)" ,0 }; xIdNode yPrsO_z06_Producer6[] = { (xIdNode)&yChaR_z0G_ProducerLine6, (xIdNode)0}; void yFree_z06_Producer6(void *me) { } /*+++++ * GR ref function for process Producer6 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr,4,1,18) ++++++*/ char * yRef_z06_Producer6 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),143(65,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),134(60,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),125(60,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),140(35,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),140(35,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),140(35,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),140(35,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),140(35,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),137(65,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),131(35,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),128(60,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),122(45,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),122(45,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),122(45,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),119(65,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer6 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr,4,1,18) ++++++*/ extern void yPAD_z06_Producer6 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z06_Producer6 * me = (yVDef_z06_Producer6 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),143(65,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z067_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 5987, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),140(35,30),1,1) ------*/ case 3: (me->z065_myID = 6); xTraceAssign("myID := ", &(me->z065_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z065_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6005, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),140(35,30),2,1) ------*/ case 4: (me->z066_numberToWrite = (z060_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z066_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z066_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6024, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),140(35,30),3,1) ------*/ case 5: (me->z064_someTime = SDL_Duration_Lit((int)(1077),(int)(0))); xTraceAssign("someTime := ", &(me->z064_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z064_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 6043, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),140(35,30),4,1) ------*/ case 6: (me->z067_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z067_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z067_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 6061, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),140(35,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z064_someTime), &me->yTim_walkingTime, (&ySigR_z063_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 6073, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),137(65,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),134(60,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 6094, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),131(35,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z065_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z066_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z067_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 6116, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),128(60,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),125(60,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 6136, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),122(45,155),1,1) ------*/ case 11: (me->z066_numberToWrite = (z060_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z066_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z066_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6155, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),122(45,155),2,1) ------*/ case 12: (me->z064_someTime = SDL_Duration_Lit((int)(1001),(int)(0))); xTraceAssign("someTime := ", &(me->z064_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z064_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 6174, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),122(45,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z064_someTime), &me->yTim_walkingTime, (&ySigR_z063_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 6186, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),119(65,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),137(65,65),1,1) ******/ static xInputAction yStaH_z061_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z061_SiDLing[] = { 0, 1, 0}; static long int yStaC_z061_SiDLing[2+1]; struct xStateIdStruct yStaR_z061_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "SiDLing" , 1, yStaH_z061_SiDLing, yStaI_z061_SiDLing, 0, 0, 0 , yStaC_z061_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),137(65,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),128(60,120),1,1) ******/ static xInputAction yStaH_z062_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z062_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z062_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z062_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "ForcedToWait" , 2, yStaH_z062_ForcedToWait, yStaI_z062_ForcedToWait, 0, 0, 0 , yStaC_z062_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),128(60,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),1,7) ******/ struct xSignalIdStruct ySigR_z063_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf6.spr(1),116(135,10),1,7)" ,((unsigned) &((yVDef_z06_Producer6 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),3,1) ******/ struct xVarIdStruct yVarR_z064_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z06_Producer6 *) 0)->z064_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),5,1) ******/ struct xVarIdStruct yVarR_z065_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z06_Producer6 *) 0)->z065_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),6,1) ******/ struct xVarIdStruct yVarR_z066_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z06_Producer6 *) 0)->z066_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf6.spr(1),116(135,10),7,1) ******/ struct xVarIdStruct yVarR_z067_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z06_Producer6, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z06_Producer6 *) 0)->z067_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z070_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z070_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z07_Producer7 , &ySrtR_z070_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z070_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "iLikeToWrite" , 0 , yTest_z070_iLikeToWrite, (unsigned)sizeof(z070_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z070_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z070_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z070_iLikeToWrite *)yExpr))) if (((*(z070_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z070_iLikeToWrite yTstA_z070_iLikeToWrite(z070_iLikeToWrite yExpr) { if (! yTest_z070_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z070_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr,4,1,9) ******/ long int yPrsC_z07_Producer7[14+1]; xSignalIdNode yPrsS_z07_Producer7[] = { &ySigR_z7_approveWrite, &ySigR_z073_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z07_Producer7[] = { &xStartStateIdRec, &yStaR_z071_SiDLing, &yStaR_z072_ForcedToWait}; static xPrsNode yPrsA_z07_Producer7 = (xPrsNode)0; static xPrsNode yPrsB_z07_Producer7 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z07_Producer7 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer7" , yPrsT_z07_Producer7, yPrsS_z07_Producer7 , 0 , yPrsO_z07_Producer7, -1 , 1 , 1, &yPrsB_z07_Producer7, (unsigned)sizeof(yVDef_z07_Producer7) , 100, &yPrsA_z07_Producer7 , -1 , -1 , yRef_z07_Producer7 , 14 , 2 , -1 , yPrsC_z07_Producer7 , 0 , 0, yPAD_z07_Producer7, yFree_z07_Producer7, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr,4,1,9)" }; static xSignalNode ySigA_z07_Producer7 = (xSignalNode)0; struct xSignalIdStruct ySigR_z07_Producer7 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z07_Producer7), &ySigA_z07_Producer7, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr,4,1,9)" ,0 }; xIdNode yPrsO_z07_Producer7[] = { (xIdNode)&yChaR_z0H_ProducerLine7, (xIdNode)0}; void yFree_z07_Producer7(void *me) { } /*+++++ * GR ref function for process Producer7 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr,4,1,18) ++++++*/ char * yRef_z07_Producer7 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),143(65,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),134(60,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),125(60,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),140(35,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),140(35,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),140(35,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),140(35,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),140(35,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),137(65,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),131(35,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),128(60,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),122(45,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),122(45,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),122(45,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),119(65,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer7 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr,4,1,18) ++++++*/ extern void yPAD_z07_Producer7 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z07_Producer7 * me = (yVDef_z07_Producer7 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),143(65,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z077_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 6452, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),140(35,30),1,1) ------*/ case 3: (me->z075_myID = 7); xTraceAssign("myID := ", &(me->z075_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z075_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6470, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),140(35,30),2,1) ------*/ case 4: (me->z076_numberToWrite = (z070_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z076_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z076_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6489, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),140(35,30),3,1) ------*/ case 5: (me->z074_someTime = SDL_Duration_Lit((int)(1105),(int)(0))); xTraceAssign("someTime := ", &(me->z074_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z074_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 6508, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),140(35,30),4,1) ------*/ case 6: (me->z077_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z077_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z077_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 6526, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),140(35,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z074_someTime), &me->yTim_walkingTime, (&ySigR_z073_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 6538, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),137(65,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),134(60,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 6559, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),131(35,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z075_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z076_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z077_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 6581, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),128(60,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),125(60,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 6601, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),122(45,155),1,1) ------*/ case 11: (me->z076_numberToWrite = (z070_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z076_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z076_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6620, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),122(45,155),2,1) ------*/ case 12: (me->z074_someTime = SDL_Duration_Lit((int)(861),(int)(0))); xTraceAssign("someTime := ", &(me->z074_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z074_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 6639, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),122(45,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z074_someTime), &me->yTim_walkingTime, (&ySigR_z073_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 6651, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),119(65,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),137(65,65),1,1) ******/ static xInputAction yStaH_z071_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z071_SiDLing[] = { 0, 1, 0}; static long int yStaC_z071_SiDLing[2+1]; struct xStateIdStruct yStaR_z071_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "SiDLing" , 1, yStaH_z071_SiDLing, yStaI_z071_SiDLing, 0, 0, 0 , yStaC_z071_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),137(65,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),128(60,120),1,1) ******/ static xInputAction yStaH_z072_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z072_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z072_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z072_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "ForcedToWait" , 2, yStaH_z072_ForcedToWait, yStaI_z072_ForcedToWait, 0, 0, 0 , yStaC_z072_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),128(60,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),1,7) ******/ struct xSignalIdStruct ySigR_z073_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf7.spr(1),116(135,10),1,7)" ,((unsigned) &((yVDef_z07_Producer7 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),3,1) ******/ struct xVarIdStruct yVarR_z074_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z07_Producer7 *) 0)->z074_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),5,1) ******/ struct xVarIdStruct yVarR_z075_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z07_Producer7 *) 0)->z075_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),6,1) ******/ struct xVarIdStruct yVarR_z076_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z07_Producer7 *) 0)->z076_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf7.spr(1),116(135,10),7,1) ******/ struct xVarIdStruct yVarR_z077_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z07_Producer7, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z07_Producer7 *) 0)->z077_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z080_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z080_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z08_Producer8 , &ySrtR_z080_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z080_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "iLikeToWrite" , 0 , yTest_z080_iLikeToWrite, (unsigned)sizeof(z080_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z080_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z080_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z080_iLikeToWrite *)yExpr))) if (((*(z080_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z080_iLikeToWrite yTstA_z080_iLikeToWrite(z080_iLikeToWrite yExpr) { if (! yTest_z080_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z080_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr,4,1,9) ******/ long int yPrsC_z08_Producer8[14+1]; xSignalIdNode yPrsS_z08_Producer8[] = { &ySigR_z7_approveWrite, &ySigR_z083_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z08_Producer8[] = { &xStartStateIdRec, &yStaR_z081_SiDLing, &yStaR_z082_ForcedToWait}; static xPrsNode yPrsA_z08_Producer8 = (xPrsNode)0; static xPrsNode yPrsB_z08_Producer8 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z08_Producer8 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer8" , yPrsT_z08_Producer8, yPrsS_z08_Producer8 , 0 , yPrsO_z08_Producer8, -1 , 1 , 1, &yPrsB_z08_Producer8, (unsigned)sizeof(yVDef_z08_Producer8) , 100, &yPrsA_z08_Producer8 , -1 , -1 , yRef_z08_Producer8 , 14 , 2 , -1 , yPrsC_z08_Producer8 , 0 , 0, yPAD_z08_Producer8, yFree_z08_Producer8, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr,4,1,9)" }; static xSignalNode ySigA_z08_Producer8 = (xSignalNode)0; struct xSignalIdStruct ySigR_z08_Producer8 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z08_Producer8), &ySigA_z08_Producer8, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr,4,1,9)" ,0 }; xIdNode yPrsO_z08_Producer8[] = { (xIdNode)&yChaR_z0I_ProducerLine8, (xIdNode)0}; void yFree_z08_Producer8(void *me) { } /*+++++ * GR ref function for process Producer8 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr,4,1,18) ++++++*/ char * yRef_z08_Producer8 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),143(65,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),134(60,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),125(60,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),140(35,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),140(35,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),140(35,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),140(35,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),140(35,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),137(65,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),131(35,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),128(60,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),122(45,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),122(45,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),122(45,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),119(65,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer8 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr,4,1,18) ++++++*/ extern void yPAD_z08_Producer8 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z08_Producer8 * me = (yVDef_z08_Producer8 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),143(65,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z087_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 6917, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),140(35,30),1,1) ------*/ case 3: (me->z085_myID = 8); xTraceAssign("myID := ", &(me->z085_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z085_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6935, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),140(35,30),2,1) ------*/ case 4: (me->z086_numberToWrite = (z080_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z086_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z086_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 6954, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),140(35,30),3,1) ------*/ case 5: (me->z084_someTime = SDL_Duration_Lit((int)(1121),(int)(0))); xTraceAssign("someTime := ", &(me->z084_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z084_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 6973, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),140(35,30),4,1) ------*/ case 6: (me->z087_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z087_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z087_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 6991, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),140(35,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z084_someTime), &me->yTim_walkingTime, (&ySigR_z083_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 7003, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),137(65,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),134(60,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 7024, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),131(35,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z085_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z086_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z087_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 7046, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),128(60,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),125(60,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 7066, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),122(45,155),1,1) ------*/ case 11: (me->z086_numberToWrite = (z080_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z086_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z086_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 7085, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),122(45,155),2,1) ------*/ case 12: (me->z084_someTime = SDL_Duration_Lit((int)(998),(int)(0))); xTraceAssign("someTime := ", &(me->z084_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z084_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 7104, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),122(45,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z084_someTime), &me->yTim_walkingTime, (&ySigR_z083_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 7116, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),119(65,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),137(65,65),1,1) ******/ static xInputAction yStaH_z081_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z081_SiDLing[] = { 0, 1, 0}; static long int yStaC_z081_SiDLing[2+1]; struct xStateIdStruct yStaR_z081_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "SiDLing" , 1, yStaH_z081_SiDLing, yStaI_z081_SiDLing, 0, 0, 0 , yStaC_z081_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),137(65,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),128(60,120),1,1) ******/ static xInputAction yStaH_z082_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z082_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z082_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z082_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "ForcedToWait" , 2, yStaH_z082_ForcedToWait, yStaI_z082_ForcedToWait, 0, 0, 0 , yStaC_z082_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),128(60,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),1,7) ******/ struct xSignalIdStruct ySigR_z083_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf8.spr(1),116(135,10),1,7)" ,((unsigned) &((yVDef_z08_Producer8 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),3,1) ******/ struct xVarIdStruct yVarR_z084_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z08_Producer8 *) 0)->z084_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),5,1) ******/ struct xVarIdStruct yVarR_z085_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z08_Producer8 *) 0)->z085_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),6,1) ******/ struct xVarIdStruct yVarR_z086_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z08_Producer8 *) 0)->z086_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf8.spr(1),116(135,10),7,1) ******/ struct xVarIdStruct yVarR_z087_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z08_Producer8, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z08_Producer8 *) 0)->z087_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z090_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z090_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z09_Producer9 , &ySrtR_z090_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z090_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "iLikeToWrite" , 0 , yTest_z090_iLikeToWrite, (unsigned)sizeof(z090_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z090_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z090_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z090_iLikeToWrite *)yExpr))) if (((*(z090_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z090_iLikeToWrite yTstA_z090_iLikeToWrite(z090_iLikeToWrite yExpr) { if (! yTest_z090_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z090_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr,4,1,9) ******/ long int yPrsC_z09_Producer9[14+1]; xSignalIdNode yPrsS_z09_Producer9[] = { &ySigR_z7_approveWrite, &ySigR_z093_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z09_Producer9[] = { &xStartStateIdRec, &yStaR_z091_SiDLing, &yStaR_z092_ForcedToWait}; static xPrsNode yPrsA_z09_Producer9 = (xPrsNode)0; static xPrsNode yPrsB_z09_Producer9 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z09_Producer9 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer9" , yPrsT_z09_Producer9, yPrsS_z09_Producer9 , 0 , yPrsO_z09_Producer9, -1 , 1 , 1, &yPrsB_z09_Producer9, (unsigned)sizeof(yVDef_z09_Producer9) , 100, &yPrsA_z09_Producer9 , -1 , -1 , yRef_z09_Producer9 , 14 , 2 , -1 , yPrsC_z09_Producer9 , 0 , 0, yPAD_z09_Producer9, yFree_z09_Producer9, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr,4,1,9)" }; static xSignalNode ySigA_z09_Producer9 = (xSignalNode)0; struct xSignalIdStruct ySigR_z09_Producer9 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z09_Producer9), &ySigA_z09_Producer9, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr,4,1,9)" ,0 }; xIdNode yPrsO_z09_Producer9[] = { (xIdNode)&yChaR_z0J_ProducerLine9, (xIdNode)0}; void yFree_z09_Producer9(void *me) { } /*+++++ * GR ref function for process Producer9 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr,4,1,18) ++++++*/ char * yRef_z09_Producer9 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),143(65,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),134(60,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),125(60,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),140(35,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),140(35,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),140(35,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),140(35,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),140(35,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),137(65,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),131(35,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),128(60,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),122(45,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),122(45,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),122(45,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),119(65,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer9 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr,4,1,18) ++++++*/ extern void yPAD_z09_Producer9 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z09_Producer9 * me = (yVDef_z09_Producer9 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),143(65,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z097_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 7382, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),140(35,30),1,1) ------*/ case 3: (me->z095_myID = 9); xTraceAssign("myID := ", &(me->z095_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z095_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 7400, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),140(35,30),2,1) ------*/ case 4: (me->z096_numberToWrite = (z090_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z096_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z096_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 7419, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),140(35,30),3,1) ------*/ case 5: (me->z094_someTime = SDL_Duration_Lit((int)(1133),(int)(0))); xTraceAssign("someTime := ", &(me->z094_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z094_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 7438, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),140(35,30),4,1) ------*/ case 6: (me->z097_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z097_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z097_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 7456, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),140(35,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z094_someTime), &me->yTim_walkingTime, (&ySigR_z093_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 7468, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),137(65,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),134(60,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 7489, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),131(35,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z095_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z096_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z097_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 7511, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),128(60,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),125(60,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 7531, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),122(45,155),1,1) ------*/ case 11: (me->z096_numberToWrite = (z090_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z096_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z096_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 7550, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),122(45,155),2,1) ------*/ case 12: (me->z094_someTime = SDL_Duration_Lit((int)(777),(int)(0))); xTraceAssign("someTime := ", &(me->z094_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z094_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 7569, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),122(45,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z094_someTime), &me->yTim_walkingTime, (&ySigR_z093_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 7581, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),119(65,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),137(65,65),1,1) ******/ static xInputAction yStaH_z091_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z091_SiDLing[] = { 0, 1, 0}; static long int yStaC_z091_SiDLing[2+1]; struct xStateIdStruct yStaR_z091_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "SiDLing" , 1, yStaH_z091_SiDLing, yStaI_z091_SiDLing, 0, 0, 0 , yStaC_z091_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),137(65,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),128(60,120),1,1) ******/ static xInputAction yStaH_z092_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z092_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z092_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z092_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "ForcedToWait" , 2, yStaH_z092_ForcedToWait, yStaI_z092_ForcedToWait, 0, 0, 0 , yStaC_z092_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),128(60,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),1,7) ******/ struct xSignalIdStruct ySigR_z093_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf9.spr(1),116(135,10),1,7)" ,((unsigned) &((yVDef_z09_Producer9 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),3,1) ******/ struct xVarIdStruct yVarR_z094_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z09_Producer9 *) 0)->z094_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),5,1) ******/ struct xVarIdStruct yVarR_z095_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z09_Producer9 *) 0)->z095_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),6,1) ******/ struct xVarIdStruct yVarR_z096_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z09_Producer9 *) 0)->z096_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf9.spr(1),116(135,10),7,1) ******/ struct xVarIdStruct yVarR_z097_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z09_Producer9, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z09_Producer9 *) 0)->z097_mahPID), (unsigned)0, 0 }; /***** * SYNTYPE iLikeToWrite (BODY section) * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),9,9) ******/ /* *** iLikeToWrite *** */ tSDLGenInfo ySDL_z0A0_iLikeToWrite = { type_SDL_Syntype, 0, (unsigned)sizeof(z0A0_iLikeToWrite) , 0 , "iLikeToWrite" , (xIdNode)&yPrsR_z0A_Producer10 , &ySrtR_z0A0_iLikeToWrite, (tSDLTypeInfo *)&ySDL_SDL_Integer}; struct xSortIdStruct ySrtR_z0A0_iLikeToWrite = { xSortEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "iLikeToWrite" , 0 , yTest_z0A0_iLikeToWrite, (unsigned)sizeof(z0A0_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer, &xSrtR_SDL_Integer, 0, 100, 0, 0 , (tSDLTypeInfo *)&ySDL_z0A0_iLikeToWrite }; /*-------------------TEST-------------------*/ int yTest_z0A0_iLikeToWrite(void * yExpr) { { if (((0)<=(*(z0A0_iLikeToWrite *)yExpr))) if (((*(z0A0_iLikeToWrite *)yExpr)<=(100))) return (int)1; } return (int)0; } /*-------------------TSTA-------------------*/ z0A0_iLikeToWrite yTstA_z0A0_iLikeToWrite(z0A0_iLikeToWrite yExpr) { if (! yTest_z0A0_iLikeToWrite((void *)&yExpr) ) xErrorSubrange((tSDLTypeInfo *)&ySDL_z0A0_iLikeToWrite, (void *)&yExpr); return yExpr; } /***** * PROCESS Producer10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr,4,1,9) ******/ long int yPrsC_z0A_Producer10[14+1]; xSignalIdNode yPrsS_z0A_Producer10[] = { &ySigR_z7_approveWrite, &ySigR_z0A3_walkingTime, (xSignalIdNode)0}; xStateIdNode yPrsT_z0A_Producer10[] = { &xStartStateIdRec, &yStaR_z0A1_SiDLing, &yStaR_z0A2_ForcedToWait}; static xPrsNode yPrsA_z0A_Producer10 = (xPrsNode)0; static xPrsNode yPrsB_z0A_Producer10 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z0A_Producer10 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer10" , yPrsT_z0A_Producer10, yPrsS_z0A_Producer10 , 0 , yPrsO_z0A_Producer10, -1 , 1 , 1, &yPrsB_z0A_Producer10, (unsigned)sizeof(yVDef_z0A_Producer10) , 100, &yPrsA_z0A_Producer10 , -1 , -1 , yRef_z0A_Producer10 , 14 , 2 , -1 , yPrsC_z0A_Producer10 , 0 , 0, yPAD_z0A_Producer10, yFree_z0A_Producer10, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr,4,1,9)" }; static xSignalNode ySigA_z0A_Producer10 = (xSignalNode)0; struct xSignalIdStruct ySigR_z0A_Producer10 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers , "-" , (unsigned)sizeof(yPDef_z0A_Producer10), &ySigA_z0A_Producer10, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr,4,1,9)" ,0 }; xIdNode yPrsO_z0A_Producer10[] = { (xIdNode)&yChaR_z0K_ProducerLine10, (xIdNode)0}; void yFree_z0A_Producer10(void *me) { } /*+++++ * GR ref function for process Producer10 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr,4,1,19) ++++++*/ char * yRef_z0A_Producer10 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),143(60,10),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),134(55,85),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),125(55,135),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),140(30,30),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),140(30,30),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),140(30,30),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),140(30,30),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),140(30,30),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),137(60,65),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),131(30,105),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),128(55,120),1,1)"; case 11: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),122(40,155),1,1)"; case 12: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),122(40,155),2,1)"; case 13: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),122(40,155),3,1)"; case 14: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),119(60,180),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Producer10 * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr,4,1,19) ++++++*/ extern void yPAD_z0A_Producer10 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z0A_Producer10 * me = (yVDef_z0A_Producer10 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),143(60,10),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z0A7_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 7848, 3, (int)1) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),140(30,30),1,1) ------*/ case 3: (me->z0A5_myID = 10); xTraceAssign("myID := ", &(me->z0A5_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z0A5_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 7866, 4, (int)0) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),140(30,30),2,1) ------*/ case 4: (me->z0A6_numberToWrite = (z0A0_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z0A6_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z0A6_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 7885, 5, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),140(30,30),3,1) ------*/ case 5: (me->z0A4_someTime = SDL_Duration_Lit((int)(1140),(int)(0))); xTraceAssign("someTime := ", &(me->z0A4_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z0A4_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 7904, 6, (int)0) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),140(30,30),4,1) ------*/ case 6: (me->z0A7_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z0A7_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z0A7_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 7922, 7, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),140(30,30),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z0A4_someTime), &me->yTim_walkingTime, (&ySigR_z0A3_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 7934, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),137(60,65),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),134(55,85),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_walkingTime = 0; if ( xBreakBefore(VarP, xFileName, 7955, 9, (int)1) ) return; /*----- * OUTPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),131(30,105),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z6_requestWrite), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z6_requestWrite *)yOutputSignal)->Param1 = me->z0A5_myID); (((yPDef_z6_requestWrite *)yOutputSignal)->Param2 = me->z0A6_numberToWrite); (((yPDef_z6_requestWrite *)yOutputSignal)->Param3 = me-> z0A7_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 7977, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedToWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),128(55,120),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),125(55,135),1,1) ------*/ case 2: xGRSetSymbol(2); if ( xBreakBefore(VarP, xFileName, 7997, 11, (int)1) ) return; /*----- * ASSIGNMENT numberToWrite := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),122(40,155),1,1) ------*/ case 11: (me->z0A6_numberToWrite = (z0A0_iLikeToWrite)(0 + rand()%(100+1))); xTraceAssign("numberToWrite := ", &(me->z0A6_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "numberToWrite := ", &(me->z0A6_numberToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 8016, 12, (int)0) ) return; /*----- * ASSIGNMENT someTime := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),122(40,155),2,1) ------*/ case 12: (me->z0A4_someTime = SDL_Duration_Lit((int)(908),(int)(0))); xTraceAssign("someTime := ", &(me->z0A4_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "someTime := ", &(me->z0A4_someTime), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 8035, 13, (int)0) ) return; /*----- * SET walkingTime * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),122(40,155),3,1) ------*/ case 13: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z0A4_someTime), &me->yTim_walkingTime, (&ySigR_z0A3_walkingTime), VarP); if ( xBreakBefore(VarP, xFileName, 8047, 14, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),119(60,180),1,1) ------*/ case 14: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),137(60,65),1,1) ******/ static xInputAction yStaH_z0A1_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z0A1_SiDLing[] = { 0, 1, 0}; static long int yStaC_z0A1_SiDLing[2+1]; struct xStateIdStruct yStaR_z0A1_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "SiDLing" , 1, yStaH_z0A1_SiDLing, yStaI_z0A1_SiDLing, 0, 0, 0 , yStaC_z0A1_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),137(60,65),1,1)" }; /***** * STATE ForcedToWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),128(55,120),1,1) ******/ static xInputAction yStaH_z0A2_ForcedToWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z0A2_ForcedToWait[] = { 2, 0, 0}; static long int yStaC_z0A2_ForcedToWait[2+1]; struct xStateIdStruct yStaR_z0A2_ForcedToWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "ForcedToWait" , 2, yStaH_z0A2_ForcedToWait, yStaI_z0A2_ForcedToWait, 0, 0, 0 , yStaC_z0A2_ForcedToWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),128(55,120),1,1)" }; /***** * TIMER walkingTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),1,7) ******/ struct xSignalIdStruct ySigR_z0A3_walkingTime = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "walkingTime" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\ProducerOf10.spr(1),116(130,10),1,7)" ,((unsigned) &((yVDef_z0A_Producer10 *) 0)->yTim_walkingTime) }; /***** * DCL someTime * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),3,1) ******/ struct xVarIdStruct yVarR_z0A4_someTime = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "someTime" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z0A_Producer10 *) 0)->z0A4_someTime), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),5,1) ******/ struct xVarIdStruct yVarR_z0A5_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z0A_Producer10 *) 0)->z0A5_myID), (unsigned)0, 0 }; /***** * DCL numberToWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),6,1) ******/ struct xVarIdStruct yVarR_z0A6_numberToWrite = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "numberToWrite" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z0A_Producer10 *) 0)->z0A6_numberToWrite), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ProducerOf10.spr(1),116(130,10),7,1) ******/ struct xVarIdStruct yVarR_z0A7_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z0A_Producer10, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z0A_Producer10 *) 0)->z0A7_mahPID), (unsigned)0, 0 }; /***** * SIGNALROUTE ProducerLine1 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),119(42,42),1,1) ******/ static xSignalIdNode yChaS_z0B_ProducerLine1[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0B_ProducerLine1[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0B_ProducerLine1[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0B_ProducerLine1[] = { (xIdNode)&yPrsR_z01_Producer, (xIdNode)0}; struct xChannelIdStruct yChaR_z0B_ProducerLine1 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine1" , yChaS_z0B_ProducerLine1, yChaO_z0B_ProducerLine1, &yChaRR_z0B_ProducerLine1 }; struct xChannelIdStruct yChaRR_z0B_ProducerLine1 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine1" , yChaSR_z0B_ProducerLine1, yChaOR_z0B_ProducerLine1, &yChaR_z0B_ProducerLine1 }; /***** * SIGNALROUTE ProducerLine2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),230(57,67),1,1) ******/ static xSignalIdNode yChaS_z0C_ProducerLine2[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0C_ProducerLine2[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0C_ProducerLine2[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0C_ProducerLine2[] = { (xIdNode)&yPrsR_z02_Producer2, (xIdNode)0}; struct xChannelIdStruct yChaR_z0C_ProducerLine2 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine2" , yChaS_z0C_ProducerLine2, yChaO_z0C_ProducerLine2, &yChaRR_z0C_ProducerLine2 }; struct xChannelIdStruct yChaRR_z0C_ProducerLine2 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine2" , yChaSR_z0C_ProducerLine2, yChaOR_z0C_ProducerLine2, &yChaR_z0C_ProducerLine2 }; /***** * SIGNALROUTE ProducerLine3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),275(57,87),1,1) ******/ static xSignalIdNode yChaS_z0D_ProducerLine3[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0D_ProducerLine3[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0D_ProducerLine3[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0D_ProducerLine3[] = { (xIdNode)&yPrsR_z03_Producer3, (xIdNode)0}; struct xChannelIdStruct yChaR_z0D_ProducerLine3 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine3" , yChaS_z0D_ProducerLine3, yChaO_z0D_ProducerLine3, &yChaRR_z0D_ProducerLine3 }; struct xChannelIdStruct yChaRR_z0D_ProducerLine3 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine3" , yChaSR_z0D_ProducerLine3, yChaOR_z0D_ProducerLine3, &yChaR_z0D_ProducerLine3 }; /***** * SIGNALROUTE ProducerLine4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),284(57,102),1,1) ******/ static xSignalIdNode yChaS_z0E_ProducerLine4[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0E_ProducerLine4[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0E_ProducerLine4[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0E_ProducerLine4[] = { (xIdNode)&yPrsR_z04_Producer4, (xIdNode)0}; struct xChannelIdStruct yChaR_z0E_ProducerLine4 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine4" , yChaS_z0E_ProducerLine4, yChaO_z0E_ProducerLine4, &yChaRR_z0E_ProducerLine4 }; struct xChannelIdStruct yChaRR_z0E_ProducerLine4 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine4" , yChaSR_z0E_ProducerLine4, yChaOR_z0E_ProducerLine4, &yChaR_z0E_ProducerLine4 }; /***** * SIGNALROUTE ProducerLine5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),293(57,117),1,1) ******/ static xSignalIdNode yChaS_z0F_ProducerLine5[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0F_ProducerLine5[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0F_ProducerLine5[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0F_ProducerLine5[] = { (xIdNode)&yPrsR_z05_Producer5, (xIdNode)0}; struct xChannelIdStruct yChaR_z0F_ProducerLine5 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine5" , yChaS_z0F_ProducerLine5, yChaO_z0F_ProducerLine5, &yChaRR_z0F_ProducerLine5 }; struct xChannelIdStruct yChaRR_z0F_ProducerLine5 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine5" , yChaSR_z0F_ProducerLine5, yChaOR_z0F_ProducerLine5, &yChaR_z0F_ProducerLine5 }; /***** * SIGNALROUTE ProducerLine6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),302(57,132),1,1) ******/ static xSignalIdNode yChaS_z0G_ProducerLine6[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0G_ProducerLine6[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0G_ProducerLine6[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0G_ProducerLine6[] = { (xIdNode)&yPrsR_z06_Producer6, (xIdNode)0}; struct xChannelIdStruct yChaR_z0G_ProducerLine6 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine6" , yChaS_z0G_ProducerLine6, yChaO_z0G_ProducerLine6, &yChaRR_z0G_ProducerLine6 }; struct xChannelIdStruct yChaRR_z0G_ProducerLine6 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine6" , yChaSR_z0G_ProducerLine6, yChaOR_z0G_ProducerLine6, &yChaR_z0G_ProducerLine6 }; /***** * SIGNALROUTE ProducerLine7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),311(57,147),1,1) ******/ static xSignalIdNode yChaS_z0H_ProducerLine7[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0H_ProducerLine7[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0H_ProducerLine7[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0H_ProducerLine7[] = { (xIdNode)&yPrsR_z07_Producer7, (xIdNode)0}; struct xChannelIdStruct yChaR_z0H_ProducerLine7 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine7" , yChaS_z0H_ProducerLine7, yChaO_z0H_ProducerLine7, &yChaRR_z0H_ProducerLine7 }; struct xChannelIdStruct yChaRR_z0H_ProducerLine7 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine7" , yChaSR_z0H_ProducerLine7, yChaOR_z0H_ProducerLine7, &yChaR_z0H_ProducerLine7 }; /***** * SIGNALROUTE ProducerLine8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),320(57,162),1,1) ******/ static xSignalIdNode yChaS_z0I_ProducerLine8[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0I_ProducerLine8[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0I_ProducerLine8[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0I_ProducerLine8[] = { (xIdNode)&yPrsR_z08_Producer8, (xIdNode)0}; struct xChannelIdStruct yChaR_z0I_ProducerLine8 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine8" , yChaS_z0I_ProducerLine8, yChaO_z0I_ProducerLine8, &yChaRR_z0I_ProducerLine8 }; struct xChannelIdStruct yChaRR_z0I_ProducerLine8 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine8" , yChaSR_z0I_ProducerLine8, yChaOR_z0I_ProducerLine8, &yChaR_z0I_ProducerLine8 }; /***** * SIGNALROUTE ProducerLine9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),329(57,177),1,1) ******/ static xSignalIdNode yChaS_z0J_ProducerLine9[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0J_ProducerLine9[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0J_ProducerLine9[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0J_ProducerLine9[] = { (xIdNode)&yPrsR_z09_Producer9, (xIdNode)0}; struct xChannelIdStruct yChaR_z0J_ProducerLine9 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine9" , yChaS_z0J_ProducerLine9, yChaO_z0J_ProducerLine9, &yChaRR_z0J_ProducerLine9 }; struct xChannelIdStruct yChaRR_z0J_ProducerLine9 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine9" , yChaSR_z0J_ProducerLine9, yChaOR_z0J_ProducerLine9, &yChaR_z0J_ProducerLine9 }; /***** * SIGNALROUTE ProducerLine10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),338(57,192),1,1) ******/ static xSignalIdNode yChaS_z0K_ProducerLine10[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z0K_ProducerLine10[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; xIdNode yChaO_z0K_ProducerLine10[] = { (xIdNode)&yChaR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z0K_ProducerLine10[] = { (xIdNode)&yPrsR_z0A_Producer10, (xIdNode)0}; struct xChannelIdStruct yChaR_z0K_ProducerLine10 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine10" , yChaS_z0K_ProducerLine10, yChaO_z0K_ProducerLine10, &yChaRR_z0K_ProducerLine10 }; struct xChannelIdStruct yChaRR_z0K_ProducerLine10 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine10" , yChaSR_z0K_ProducerLine10, yChaOR_z0K_ProducerLine10, &yChaR_z0K_ProducerLine10 }; /***** * BLOCK ConcuroBlock * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk,4,1,7) ******/ struct xBlockIdStruct yBloR_z1_ConcuroBlock = { xBlockEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ConcuroBlock" , (xBlockIdNode)0, (xIdNode *)0, (xPrdIdNode *)0, (xViewListRec *)0, (xViewIndexRec *)0, 1 , -1 , -1 , -1 , 0 }; xIdNode yChaO_z3_ProducerDongle[] = { (xIdNode)&yChaRR_z14_ProduceMe, (xIdNode)0}; xIdNode yChaOR_z4_ThisWayOrTheHighway[] = { (xIdNode)&yChaRR_z15_LineOut, (xIdNode)0}; xIdNode yChaO_z5_ConsumerDongle[] = { (xIdNode)&yChaRR_z16_ConsumeMe, (xIdNode)0}; /***** * PROCESS Io * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,9) ******/ long int yPrsC_z13_Io[9+1]; xSignalIdNode yPrsS_z13_Io[] = { &ySigR_z6_requestWrite, &ySigR_z8_requestRead, (xSignalIdNode)0}; xStateIdNode yPrsT_z13_Io[] = { &xStartStateIdRec, &yStaR_z130_Phase1, &yStaR_z131_Phase2}; static xPrsNode yPrsA_z13_Io = (xPrsNode)0; static xPrsNode yPrsB_z13_Io = (xPrsNode)0; struct xPrsIdStruct yPrsR_z13_Io = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "Io" , yPrsT_z13_Io, yPrsS_z13_Io , 0 , yPrsO_z13_Io, -1 , 1 , 1, &yPrsB_z13_Io, (unsigned)sizeof(yVDef_z13_Io) , 100, &yPrsA_z13_Io , -1 , -1 , yRef_z13_Io , 9 , 2 , -1 , yPrsC_z13_Io , 0 , 0, yPAD_z13_Io, yFree_z13_Io, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr,4,1,9)" }; static xSignalNode ySigA_z13_Io = (xSignalNode)0; struct xSignalIdStruct ySigR_z13_Io = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock , "-" , (unsigned)sizeof(yPDef_z13_Io), &ySigA_z13_Io, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr,4,1,9)" ,0 }; xIdNode yPrsO_z13_Io[] = { (xIdNode)&yChaR_z14_ProduceMe, (xIdNode)&yChaR_z15_LineOut, (xIdNode)&yChaR_z16_ConsumeMe, (xIdNode)0}; void yFree_z13_Io(void *me) { } /*+++++ * GR ref function for process Io * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,11) ++++++*/ char * yRef_z13_Io (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),116(60,20),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),128(30,50),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),146(35,135),1,1)"; case 3: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),122(60,35),1,1)"; case 4: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),137(30,70),1,1)"; case 5: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),182(55,85),1,1)"; case 6: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),134(60,110),1,1)"; case 7: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),170(30,155),1,1)"; case 8: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),191(40,170),1,1)"; case 9: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),176(60,190),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Io * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,11) ++++++*/ extern void yPAD_z13_Io (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z13_Io * me = (yVDef_z13_Io *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),116(60,20),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z134_writePID = SDL_NULL); (me->z136_readPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 8515, 3, (int)1) ) return; /*----- * NEXTSTATE Phase1 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35),1,1) ------*/ case 3: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT requestWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),128(30,50),1,1) ------*/ case 1: xGRSetSymbol(1); (me->z133_writeID = ((yPDef_z6_requestWrite *)ySVarP)-> Param1); (me->z132_numberWritten = ((yPDef_z6_requestWrite *) ySVarP)->Param2); (me->z134_writePID = ((yPDef_z6_requestWrite *)ySVarP)-> Param3); if ( xBreakBefore(VarP, xFileName, 8541, 4, (int)1) ) return; /*----- * OUTPUT producerXWroteItemY * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),137(30,70),1,1) ------*/ case 4: yOutputSignal = xGetSignal((&ySigR_zB_producerXWroteItemY), ( *(&yEnvR_env)->ActivePrsList != (xPrsNode)0 ? (*(&yEnvR_env)->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_zB_producerXWroteItemY *)yOutputSignal)->Param1 = me->z133_writeID); (((yPDef_zB_producerXWroteItemY *)yOutputSignal)->Param2 = me->z132_numberWritten); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 8561, 5, (int)1) ) return; /*----- * OUTPUT approveWrite * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),182(55,85),1,1) ------*/ case 5: yOutputSignal = xGetSignal((&ySigR_z7_approveWrite), me->z134_writePID, me->Self); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 8576, 6, (int)1) ) return; /*----- * NEXTSTATE Phase2 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110),1,1) ------*/ case 6: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),146(35,135),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z135_readID = ((yPDef_z8_requestRead *)ySVarP)-> Param1); (me->z136_readPID = ((yPDef_z8_requestRead *)ySVarP)-> Param2); if ( xBreakBefore(VarP, xFileName, 8600, 7, (int)1) ) return; /*----- * OUTPUT consumerXReadItemY * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),170(30,155),1,1) ------*/ case 7: yOutputSignal = xGetSignal((&ySigR_zA_consumerXReadItemY), ( *(&yEnvR_env)->ActivePrsList != (xPrsNode)0 ? (*(&yEnvR_env)->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_zA_consumerXReadItemY *)yOutputSignal)->Param1 = me->z135_readID); (((yPDef_zA_consumerXReadItemY *)yOutputSignal)->Param2 = me->z132_numberWritten); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 8620, 8, (int)1) ) return; /*----- * OUTPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),191(40,170),1,1) ------*/ case 8: yOutputSignal = xGetSignal((&ySigR_z9_approveRead), me->z136_readPID, me->Self); (((yPDef_z9_approveRead *)yOutputSignal)->Param1 = me->z132_numberWritten); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 8638, 9, (int)1) ) return; /*----- * NEXTSTATE Phase1 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),176(60,190),1,1) ------*/ case 9: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE Phase1 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35),1,1) ******/ static xInputAction yStaH_z130_Phase1[] = { (xInputAction)1, (xInputAction)2, (xInputAction)0}; static int yStaI_z130_Phase1[] = { 1, 0, 0}; static long int yStaC_z130_Phase1[2+1]; struct xStateIdStruct yStaR_z130_Phase1 = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "Phase1" , 1, yStaH_z130_Phase1, yStaI_z130_Phase1, 0, 0, 0 , yStaC_z130_Phase1, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),122(60,35),1,1)" }; /***** * STATE Phase2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110),1,1) ******/ static xInputAction yStaH_z131_Phase2[] = { (xInputAction)2, (xInputAction)1, (xInputAction)0}; static int yStaI_z131_Phase2[] = { 0, 2, 0}; static long int yStaC_z131_Phase2[2+1]; struct xStateIdStruct yStaR_z131_Phase2 = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "Phase2" , 2, yStaH_z131_Phase2, yStaI_z131_Phase2, 0, 0, 0 , yStaC_z131_Phase2, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),134(60,110),1,1)" }; /***** * DCL numberWritten * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),2,1) ******/ struct xVarIdStruct yVarR_z132_numberWritten = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "numberWritten" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z13_Io *) 0)->z132_numberWritten), (unsigned)0, 0 }; /***** * DCL writeID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),3,1) ******/ struct xVarIdStruct yVarR_z133_writeID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "writeID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z13_Io *) 0)->z133_writeID), (unsigned)0, 0 }; /***** * DCL writePID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),4,1) ******/ struct xVarIdStruct yVarR_z134_writePID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "writePID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z13_Io *) 0)->z134_writePID), (unsigned)0, 0 }; /***** * DCL readID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),5,1) ******/ struct xVarIdStruct yVarR_z135_readID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "readID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z13_Io *) 0)->z135_readID), (unsigned)0, 0 }; /***** * DCL readPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),6,1) ******/ struct xVarIdStruct yVarR_z136_readPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "readPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z13_Io *) 0)->z136_readPID), (unsigned)0, 0 }; /***** * SIGNALROUTE ProduceMe * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),197(95,47),1,1) ******/ static xSignalIdNode yChaS_z14_ProduceMe[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z14_ProduceMe[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; xIdNode yChaO_z14_ProduceMe[] = { (xIdNode)&yChaRR_z3_ProducerDongle, (xIdNode)0}; xIdNode yChaOR_z14_ProduceMe[] = { (xIdNode)&yPrsR_z13_Io, (xIdNode)0}; struct xChannelIdStruct yChaR_z14_ProduceMe = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ProduceMe" , yChaS_z14_ProduceMe, yChaO_z14_ProduceMe, &yChaRR_z14_ProduceMe }; struct xChannelIdStruct yChaRR_z14_ProduceMe = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ProduceMe" , yChaSR_z14_ProduceMe, yChaOR_z14_ProduceMe, &yChaR_z14_ProduceMe }; /***** * SIGNALROUTE LineOut * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),188(45,97),1,1) ******/ static xSignalIdNode yChaS_z15_LineOut[] = { &ySigR_zA_consumerXReadItemY, &ySigR_zB_producerXWroteItemY, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z15_LineOut[] = { (xSignalIdNode)0}; xIdNode yChaO_z15_LineOut[] = { (xIdNode)&yChaR_z4_ThisWayOrTheHighway, (xIdNode)0}; xIdNode yChaOR_z15_LineOut[] = { (xIdNode)&yPrsR_z13_Io, (xIdNode)0}; struct xChannelIdStruct yChaR_z15_LineOut = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "LineOut" , yChaS_z15_LineOut, yChaO_z15_LineOut, &yChaRR_z15_LineOut }; struct xChannelIdStruct yChaRR_z15_LineOut = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "LineOut" , yChaSR_z15_LineOut, yChaOR_z15_LineOut, &yChaR_z15_LineOut }; /***** * SIGNALROUTE ConsumeMe * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),206(92,157),1,1) ******/ static xSignalIdNode yChaS_z16_ConsumeMe[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z16_ConsumeMe[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; xIdNode yChaO_z16_ConsumeMe[] = { (xIdNode)&yChaRR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z16_ConsumeMe[] = { (xIdNode)&yPrsR_z13_Io, (xIdNode)0}; struct xChannelIdStruct yChaR_z16_ConsumeMe = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ConsumeMe" , yChaS_z16_ConsumeMe, yChaO_z16_ConsumeMe, &yChaRR_z16_ConsumeMe }; struct xChannelIdStruct yChaRR_z16_ConsumeMe = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ConsumeMe" , yChaSR_z16_ConsumeMe, yChaOR_z16_ConsumeMe, &yChaR_z16_ConsumeMe }; /***** * BLOCK Consumers * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk,4,1,7) ******/ struct xBlockIdStruct yBloR_z2_Consumers = { xBlockEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "Consumers" , (xBlockIdNode)0, (xIdNode *)0, (xPrdIdNode *)0, (xViewListRec *)0, (xViewIndexRec *)0, 1 , -1 , -1 , -1 , 0 }; xIdNode yChaOR_z5_ConsumerDongle[] = {(xIdNode)&yChaRR_z2B_ConsumerLine1, (xIdNode)&yChaRR_z2C_ConsumerLine2, (xIdNode)&yChaRR_z2D_ConsumerLine3, (xIdNode)&yChaRR_z2E_ConsumerLine4, (xIdNode)&yChaRR_z2F_ConsumerLine5, (xIdNode)&yChaRR_z2G_ConsumerLine6, (xIdNode)&yChaRR_z2H_ConsumerLine7, (xIdNode)&yChaRR_z2I_ConsumerLine8, (xIdNode)&yChaRR_z2J_ConsumerLine9, (xIdNode)&yChaRR_z2K_ConsumerLine10, (xIdNode)0}; /***** * PROCESS Consumer * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,9) ******/ long int yPrsC_z21_Consumer[12+1]; xSignalIdNode yPrsS_z21_Consumer[] = { &ySigR_z9_approveRead, &ySigR_z212_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z21_Consumer[] = { &xStartStateIdRec, &yStaR_z210_SiDLing, &yStaR_z211_ForcedWait}; static xPrsNode yPrsA_z21_Consumer = (xPrsNode)0; static xPrsNode yPrsB_z21_Consumer = (xPrsNode)0; struct xPrsIdStruct yPrsR_z21_Consumer = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer" , yPrsT_z21_Consumer, yPrsS_z21_Consumer , 0 , yPrsO_z21_Consumer, -1 , 1 , 1, &yPrsB_z21_Consumer, (unsigned)sizeof(yVDef_z21_Consumer) , 100, &yPrsA_z21_Consumer , -1 , -1 , yRef_z21_Consumer , 12 , 2 , -1 , yPrsC_z21_Consumer , 0 , 0, yPAD_z21_Consumer, yFree_z21_Consumer, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr,4,1,9)" }; static xSignalNode ySigA_z21_Consumer = (xSignalNode)0; struct xSignalIdStruct ySigR_z21_Consumer = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z21_Consumer), &ySigA_z21_Consumer, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr,4,1,9)" ,0 }; xIdNode yPrsO_z21_Consumer[] = { (xIdNode)&yChaR_z2B_ConsumerLine1, (xIdNode)0}; void yFree_z21_Consumer(void *me) { } /*+++++ * GR ref function for process Consumer * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,17) ++++++*/ char * yRef_z21_Consumer (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),119(65,20),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),137(65,95),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),155(50,155),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),131(65,75),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),143(50,115),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),149(65,135),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),167(45,175),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),173(65,200),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,17) ++++++*/ extern void yPAD_z21_Consumer (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z21_Consumer * me = (yVDef_z21_Consumer *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),119(65,20),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z216_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 8942, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),1,1) ------*/ case 3: (me->z216_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z216_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z216_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 8960, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),2,1) ------*/ case 4: (me->z214_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z214_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z214_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 8979, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),3,1) ------*/ case 5: (me->z215_myID = 1); xTraceAssign("myID := ", &(me->z215_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z215_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 8997, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),4,1) ------*/ case 6: (me->z213_theseTimes = SDL_Duration_Lit((int)(1000),(int)(0))); xTraceAssign("theseTimes := ", &(me->z213_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z213_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 9016, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z213_theseTimes), &me->yTim_coolTimes, (&ySigR_z212_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 9028, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),137(65,95),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 9049, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),143(50,115),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z215_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z216_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 9069, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),155(50,155),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z214_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 9091, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),167(45,175),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z213_theseTimes), &me->yTim_coolTimes, (&ySigR_z212_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 9103, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),173(65,200),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75),1,1) ******/ static xInputAction yStaH_z210_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z210_SiDLing[] = { 0, 1, 0}; static long int yStaC_z210_SiDLing[2+1]; struct xStateIdStruct yStaR_z210_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "SiDLing" , 1, yStaH_z210_SiDLing, yStaI_z210_SiDLing, 0, 0, 0 , yStaC_z210_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),131(65,75),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135),1,1) ******/ static xInputAction yStaH_z211_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z211_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z211_ForcedWait[2+1]; struct xStateIdStruct yStaR_z211_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "ForcedWait" , 2, yStaH_z211_ForcedWait, yStaI_z211_ForcedWait, 0, 0, 0 , yStaC_z211_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),149(65,135),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),1,7) ******/ struct xSignalIdStruct ySigR_z212_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),125(145,15),1,7)" ,((unsigned) &((yVDef_z21_Consumer *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),3,1) ******/ struct xVarIdStruct yVarR_z213_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z21_Consumer *) 0)->z213_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),4,1) ******/ struct xVarIdStruct yVarR_z214_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z21_Consumer *) 0)->z214_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),5,1) ******/ struct xVarIdStruct yVarR_z215_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z21_Consumer *) 0)->z215_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),6,1) ******/ struct xVarIdStruct yVarR_z216_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z21_Consumer *) 0)->z216_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr,4,1,9) ******/ long int yPrsC_z22_Consumer2[12+1]; xSignalIdNode yPrsS_z22_Consumer2[] = { &ySigR_z9_approveRead, &ySigR_z222_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z22_Consumer2[] = { &xStartStateIdRec, &yStaR_z220_SiDLing, &yStaR_z221_ForcedWait}; static xPrsNode yPrsA_z22_Consumer2 = (xPrsNode)0; static xPrsNode yPrsB_z22_Consumer2 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z22_Consumer2 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer2" , yPrsT_z22_Consumer2, yPrsS_z22_Consumer2 , 0 , yPrsO_z22_Consumer2, -1 , 1 , 1, &yPrsB_z22_Consumer2, (unsigned)sizeof(yVDef_z22_Consumer2) , 100, &yPrsA_z22_Consumer2 , -1 , -1 , yRef_z22_Consumer2 , 12 , 2 , -1 , yPrsC_z22_Consumer2 , 0 , 0, yPAD_z22_Consumer2, yFree_z22_Consumer2, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr,4,1,9)" }; static xSignalNode ySigA_z22_Consumer2 = (xSignalNode)0; struct xSignalIdStruct ySigR_z22_Consumer2 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z22_Consumer2), &ySigA_z22_Consumer2, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr,4,1,9)" ,0 }; xIdNode yPrsO_z22_Consumer2[] = { (xIdNode)&yChaR_z2C_ConsumerLine2, (xIdNode)0}; void yFree_z22_Consumer2(void *me) { } /*+++++ * GR ref function for process Consumer2 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr,4,1,18) ++++++*/ char * yRef_z22_Consumer2 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),140(60,20),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),131(60,95),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),122(45,155),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),137(40,40),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),137(40,40),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),137(40,40),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),137(40,40),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),137(40,40),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),134(60,75),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),128(45,115),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),125(60,135),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),119(40,175),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),116(60,200),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer2 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr,4,1,18) ++++++*/ extern void yPAD_z22_Consumer2 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z22_Consumer2 * me = (yVDef_z22_Consumer2 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),140(60,20),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z226_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 9319, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),137(40,40),1,1) ------*/ case 3: (me->z226_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z226_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z226_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 9337, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),137(40,40),2,1) ------*/ case 4: (me->z224_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z224_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z224_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 9356, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),137(40,40),3,1) ------*/ case 5: (me->z225_myID = 2); xTraceAssign("myID := ", &(me->z225_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z225_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 9374, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),137(40,40),4,1) ------*/ case 6: (me->z223_theseTimes = SDL_Duration_Lit((int)(1050),(int)(0))); xTraceAssign("theseTimes := ", &(me->z223_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z223_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 9393, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),137(40,40),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z223_theseTimes), &me->yTim_coolTimes, (&ySigR_z222_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 9405, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),134(60,75),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),131(60,95),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 9426, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),128(45,115),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z225_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z226_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 9446, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),125(60,135),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),122(45,155),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z224_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 9468, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),119(40,175),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z223_theseTimes), &me->yTim_coolTimes, (&ySigR_z222_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 9480, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),116(60,200),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),134(60,75),1,1) ******/ static xInputAction yStaH_z220_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z220_SiDLing[] = { 0, 1, 0}; static long int yStaC_z220_SiDLing[2+1]; struct xStateIdStruct yStaR_z220_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "SiDLing" , 1, yStaH_z220_SiDLing, yStaI_z220_SiDLing, 0, 0, 0 , yStaC_z220_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),134(60,75),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),125(60,135),1,1) ******/ static xInputAction yStaH_z221_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z221_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z221_ForcedWait[2+1]; struct xStateIdStruct yStaR_z221_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "ForcedWait" , 2, yStaH_z221_ForcedWait, yStaI_z221_ForcedWait, 0, 0, 0 , yStaC_z221_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),125(60,135),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),1,7) ******/ struct xSignalIdStruct ySigR_z222_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer2.spr(1),143(140,15),1,7)" ,((unsigned) &((yVDef_z22_Consumer2 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),3,1) ******/ struct xVarIdStruct yVarR_z223_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z22_Consumer2 *) 0)->z223_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),4,1) ******/ struct xVarIdStruct yVarR_z224_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z22_Consumer2 *) 0)->z224_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),5,1) ******/ struct xVarIdStruct yVarR_z225_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z22_Consumer2 *) 0)->z225_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer2.spr(1),143(140,15),6,1) ******/ struct xVarIdStruct yVarR_z226_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z22_Consumer2, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z22_Consumer2 *) 0)->z226_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr,4,1,9) ******/ long int yPrsC_z23_Consumer3[12+1]; xSignalIdNode yPrsS_z23_Consumer3[] = { &ySigR_z9_approveRead, &ySigR_z232_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z23_Consumer3[] = { &xStartStateIdRec, &yStaR_z230_SiDLing, &yStaR_z231_ForcedWait}; static xPrsNode yPrsA_z23_Consumer3 = (xPrsNode)0; static xPrsNode yPrsB_z23_Consumer3 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z23_Consumer3 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer3" , yPrsT_z23_Consumer3, yPrsS_z23_Consumer3 , 0 , yPrsO_z23_Consumer3, -1 , 1 , 1, &yPrsB_z23_Consumer3, (unsigned)sizeof(yVDef_z23_Consumer3) , 100, &yPrsA_z23_Consumer3 , -1 , -1 , yRef_z23_Consumer3 , 12 , 2 , -1 , yPrsC_z23_Consumer3 , 0 , 0, yPAD_z23_Consumer3, yFree_z23_Consumer3, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr,4,1,9)" }; static xSignalNode ySigA_z23_Consumer3 = (xSignalNode)0; struct xSignalIdStruct ySigR_z23_Consumer3 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z23_Consumer3), &ySigA_z23_Consumer3, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr,4,1,9)" ,0 }; xIdNode yPrsO_z23_Consumer3[] = { (xIdNode)&yChaR_z2D_ConsumerLine3, (xIdNode)0}; void yFree_z23_Consumer3(void *me) { } /*+++++ * GR ref function for process Consumer3 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr,4,1,18) ++++++*/ char * yRef_z23_Consumer3 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer3 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr,4,1,18) ++++++*/ extern void yPAD_z23_Consumer3 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z23_Consumer3 * me = (yVDef_z23_Consumer3 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z236_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 9696, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),137(40,35),1,1) ------*/ case 3: (me->z236_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z236_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z236_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 9714, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),137(40,35),2,1) ------*/ case 4: (me->z234_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z234_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z234_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 9733, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),137(40,35),3,1) ------*/ case 5: (me->z235_myID = 3); xTraceAssign("myID := ", &(me->z235_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z235_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 9751, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),137(40,35),4,1) ------*/ case 6: (me->z233_theseTimes = SDL_Duration_Lit((int)(1100),(int)(0))); xTraceAssign("theseTimes := ", &(me->z233_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z233_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 9770, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z233_theseTimes), &me->yTim_coolTimes, (&ySigR_z232_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 9782, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 9803, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z235_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z236_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 9823, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z234_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 9845, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z233_theseTimes), &me->yTim_coolTimes, (&ySigR_z232_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 9857, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z230_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z230_SiDLing[] = { 0, 1, 0}; static long int yStaC_z230_SiDLing[2+1]; struct xStateIdStruct yStaR_z230_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "SiDLing" , 1, yStaH_z230_SiDLing, yStaI_z230_SiDLing, 0, 0, 0 , yStaC_z230_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z231_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z231_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z231_ForcedWait[2+1]; struct xStateIdStruct yStaR_z231_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "ForcedWait" , 2, yStaH_z231_ForcedWait, yStaI_z231_ForcedWait, 0, 0, 0 , yStaC_z231_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z232_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer3.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z23_Consumer3 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z233_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z23_Consumer3 *) 0)->z233_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z234_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z23_Consumer3 *) 0)->z234_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z235_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z23_Consumer3 *) 0)->z235_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer3.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z236_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z23_Consumer3, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z23_Consumer3 *) 0)->z236_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr,4,1,9) ******/ long int yPrsC_z24_Consumer4[12+1]; xSignalIdNode yPrsS_z24_Consumer4[] = { &ySigR_z9_approveRead, &ySigR_z242_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z24_Consumer4[] = { &xStartStateIdRec, &yStaR_z240_SiDLing, &yStaR_z241_ForcedWait}; static xPrsNode yPrsA_z24_Consumer4 = (xPrsNode)0; static xPrsNode yPrsB_z24_Consumer4 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z24_Consumer4 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer4" , yPrsT_z24_Consumer4, yPrsS_z24_Consumer4 , 0 , yPrsO_z24_Consumer4, -1 , 1 , 1, &yPrsB_z24_Consumer4, (unsigned)sizeof(yVDef_z24_Consumer4) , 100, &yPrsA_z24_Consumer4 , -1 , -1 , yRef_z24_Consumer4 , 12 , 2 , -1 , yPrsC_z24_Consumer4 , 0 , 0, yPAD_z24_Consumer4, yFree_z24_Consumer4, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr,4,1,9)" }; static xSignalNode ySigA_z24_Consumer4 = (xSignalNode)0; struct xSignalIdStruct ySigR_z24_Consumer4 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z24_Consumer4), &ySigA_z24_Consumer4, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr,4,1,9)" ,0 }; xIdNode yPrsO_z24_Consumer4[] = { (xIdNode)&yChaR_z2E_ConsumerLine4, (xIdNode)0}; void yFree_z24_Consumer4(void *me) { } /*+++++ * GR ref function for process Consumer4 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr,4,1,18) ++++++*/ char * yRef_z24_Consumer4 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),140(55,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),131(55,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),122(40,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),137(35,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),137(35,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),137(35,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),137(35,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),137(35,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),134(55,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),128(40,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),125(55,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),119(35,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),116(55,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer4 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr,4,1,18) ++++++*/ extern void yPAD_z24_Consumer4 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z24_Consumer4 * me = (yVDef_z24_Consumer4 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),140(55,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z246_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 10073, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),137(35,35),1,1) ------*/ case 3: (me->z246_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z246_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z246_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 10091, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),137(35,35),2,1) ------*/ case 4: (me->z244_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z244_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z244_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 10110, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),137(35,35),3,1) ------*/ case 5: (me->z245_myID = 4); xTraceAssign("myID := ", &(me->z245_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z245_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 10128, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),137(35,35),4,1) ------*/ case 6: (me->z243_theseTimes = SDL_Duration_Lit((int)(1566),(int)(0))); xTraceAssign("theseTimes := ", &(me->z243_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z243_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 10147, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),137(35,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z243_theseTimes), &me->yTim_coolTimes, (&ySigR_z242_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 10159, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),134(55,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),131(55,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 10180, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),128(40,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z245_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z246_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 10200, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),125(55,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),122(40,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z244_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 10222, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),119(35,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z243_theseTimes), &me->yTim_coolTimes, (&ySigR_z242_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 10234, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),116(55,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),134(55,70),1,1) ******/ static xInputAction yStaH_z240_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z240_SiDLing[] = { 0, 1, 0}; static long int yStaC_z240_SiDLing[2+1]; struct xStateIdStruct yStaR_z240_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "SiDLing" , 1, yStaH_z240_SiDLing, yStaI_z240_SiDLing, 0, 0, 0 , yStaC_z240_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),134(55,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),125(55,130),1,1) ******/ static xInputAction yStaH_z241_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z241_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z241_ForcedWait[2+1]; struct xStateIdStruct yStaR_z241_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "ForcedWait" , 2, yStaH_z241_ForcedWait, yStaI_z241_ForcedWait, 0, 0, 0 , yStaC_z241_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),125(55,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),1,7) ******/ struct xSignalIdStruct ySigR_z242_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer4.spr(1),143(135,10),1,7)" ,((unsigned) &((yVDef_z24_Consumer4 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),3,1) ******/ struct xVarIdStruct yVarR_z243_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z24_Consumer4 *) 0)->z243_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),4,1) ******/ struct xVarIdStruct yVarR_z244_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z24_Consumer4 *) 0)->z244_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),5,1) ******/ struct xVarIdStruct yVarR_z245_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z24_Consumer4 *) 0)->z245_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer4.spr(1),143(135,10),6,1) ******/ struct xVarIdStruct yVarR_z246_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z24_Consumer4, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z24_Consumer4 *) 0)->z246_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr,4,1,9) ******/ long int yPrsC_z25_Consumer5[12+1]; xSignalIdNode yPrsS_z25_Consumer5[] = { &ySigR_z9_approveRead, &ySigR_z252_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z25_Consumer5[] = { &xStartStateIdRec, &yStaR_z250_SiDLing, &yStaR_z251_ForcedWait}; static xPrsNode yPrsA_z25_Consumer5 = (xPrsNode)0; static xPrsNode yPrsB_z25_Consumer5 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z25_Consumer5 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer5" , yPrsT_z25_Consumer5, yPrsS_z25_Consumer5 , 0 , yPrsO_z25_Consumer5, -1 , 1 , 1, &yPrsB_z25_Consumer5, (unsigned)sizeof(yVDef_z25_Consumer5) , 100, &yPrsA_z25_Consumer5 , -1 , -1 , yRef_z25_Consumer5 , 12 , 2 , -1 , yPrsC_z25_Consumer5 , 0 , 0, yPAD_z25_Consumer5, yFree_z25_Consumer5, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr,4,1,9)" }; static xSignalNode ySigA_z25_Consumer5 = (xSignalNode)0; struct xSignalIdStruct ySigR_z25_Consumer5 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z25_Consumer5), &ySigA_z25_Consumer5, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr,4,1,9)" ,0 }; xIdNode yPrsO_z25_Consumer5[] = { (xIdNode)&yChaR_z2F_ConsumerLine5, (xIdNode)0}; void yFree_z25_Consumer5(void *me) { } /*+++++ * GR ref function for process Consumer5 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr,4,1,18) ++++++*/ char * yRef_z25_Consumer5 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer5 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr,4,1,18) ++++++*/ extern void yPAD_z25_Consumer5 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z25_Consumer5 * me = (yVDef_z25_Consumer5 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z256_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 10450, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),137(40,35),1,1) ------*/ case 3: (me->z256_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z256_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z256_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 10468, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),137(40,35),2,1) ------*/ case 4: (me->z254_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z254_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z254_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 10487, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),137(40,35),3,1) ------*/ case 5: (me->z255_myID = 5); xTraceAssign("myID := ", &(me->z255_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z255_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 10505, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),137(40,35),4,1) ------*/ case 6: (me->z253_theseTimes = SDL_Duration_Lit((int)(1025),(int)(0))); xTraceAssign("theseTimes := ", &(me->z253_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z253_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 10524, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z253_theseTimes), &me->yTim_coolTimes, (&ySigR_z252_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 10536, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 10557, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z255_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z256_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 10577, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z254_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 10599, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z253_theseTimes), &me->yTim_coolTimes, (&ySigR_z252_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 10611, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z250_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z250_SiDLing[] = { 0, 1, 0}; static long int yStaC_z250_SiDLing[2+1]; struct xStateIdStruct yStaR_z250_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "SiDLing" , 1, yStaH_z250_SiDLing, yStaI_z250_SiDLing, 0, 0, 0 , yStaC_z250_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z251_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z251_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z251_ForcedWait[2+1]; struct xStateIdStruct yStaR_z251_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "ForcedWait" , 2, yStaH_z251_ForcedWait, yStaI_z251_ForcedWait, 0, 0, 0 , yStaC_z251_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z252_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer5.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z25_Consumer5 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z253_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z25_Consumer5 *) 0)->z253_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z254_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z25_Consumer5 *) 0)->z254_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z255_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z25_Consumer5 *) 0)->z255_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer5.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z256_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z25_Consumer5, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z25_Consumer5 *) 0)->z256_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr,4,1,9) ******/ long int yPrsC_z26_Consumer6[12+1]; xSignalIdNode yPrsS_z26_Consumer6[] = { &ySigR_z9_approveRead, &ySigR_z262_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z26_Consumer6[] = { &xStartStateIdRec, &yStaR_z260_SiDLing, &yStaR_z261_ForcedWait}; static xPrsNode yPrsA_z26_Consumer6 = (xPrsNode)0; static xPrsNode yPrsB_z26_Consumer6 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z26_Consumer6 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer6" , yPrsT_z26_Consumer6, yPrsS_z26_Consumer6 , 0 , yPrsO_z26_Consumer6, -1 , 1 , 1, &yPrsB_z26_Consumer6, (unsigned)sizeof(yVDef_z26_Consumer6) , 100, &yPrsA_z26_Consumer6 , -1 , -1 , yRef_z26_Consumer6 , 12 , 2 , -1 , yPrsC_z26_Consumer6 , 0 , 0, yPAD_z26_Consumer6, yFree_z26_Consumer6, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr,4,1,9)" }; static xSignalNode ySigA_z26_Consumer6 = (xSignalNode)0; struct xSignalIdStruct ySigR_z26_Consumer6 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z26_Consumer6), &ySigA_z26_Consumer6, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr,4,1,9)" ,0 }; xIdNode yPrsO_z26_Consumer6[] = { (xIdNode)&yChaR_z2G_ConsumerLine6, (xIdNode)0}; void yFree_z26_Consumer6(void *me) { } /*+++++ * GR ref function for process Consumer6 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr,4,1,18) ++++++*/ char * yRef_z26_Consumer6 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer6 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr,4,1,18) ++++++*/ extern void yPAD_z26_Consumer6 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z26_Consumer6 * me = (yVDef_z26_Consumer6 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z266_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 10827, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),137(40,35),1,1) ------*/ case 3: (me->z266_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z266_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z266_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 10845, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),137(40,35),2,1) ------*/ case 4: (me->z264_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z264_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z264_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 10864, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),137(40,35),3,1) ------*/ case 5: (me->z265_myID = 6); xTraceAssign("myID := ", &(me->z265_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z265_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 10882, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),137(40,35),4,1) ------*/ case 6: (me->z263_theseTimes = SDL_Duration_Lit((int)(1911),(int)(0))); xTraceAssign("theseTimes := ", &(me->z263_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z263_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 10901, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z263_theseTimes), &me->yTim_coolTimes, (&ySigR_z262_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 10913, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 10934, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z265_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z266_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 10954, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z264_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 10976, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z263_theseTimes), &me->yTim_coolTimes, (&ySigR_z262_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 10988, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z260_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z260_SiDLing[] = { 0, 1, 0}; static long int yStaC_z260_SiDLing[2+1]; struct xStateIdStruct yStaR_z260_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "SiDLing" , 1, yStaH_z260_SiDLing, yStaI_z260_SiDLing, 0, 0, 0 , yStaC_z260_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z261_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z261_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z261_ForcedWait[2+1]; struct xStateIdStruct yStaR_z261_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "ForcedWait" , 2, yStaH_z261_ForcedWait, yStaI_z261_ForcedWait, 0, 0, 0 , yStaC_z261_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z262_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer6.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z26_Consumer6 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z263_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z26_Consumer6 *) 0)->z263_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z264_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z26_Consumer6 *) 0)->z264_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z265_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z26_Consumer6 *) 0)->z265_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer6.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z266_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z26_Consumer6, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z26_Consumer6 *) 0)->z266_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr,4,1,9) ******/ long int yPrsC_z27_Consumer7[12+1]; xSignalIdNode yPrsS_z27_Consumer7[] = { &ySigR_z9_approveRead, &ySigR_z272_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z27_Consumer7[] = { &xStartStateIdRec, &yStaR_z270_SiDLing, &yStaR_z271_ForcedWait}; static xPrsNode yPrsA_z27_Consumer7 = (xPrsNode)0; static xPrsNode yPrsB_z27_Consumer7 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z27_Consumer7 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer7" , yPrsT_z27_Consumer7, yPrsS_z27_Consumer7 , 0 , yPrsO_z27_Consumer7, -1 , 1 , 1, &yPrsB_z27_Consumer7, (unsigned)sizeof(yVDef_z27_Consumer7) , 100, &yPrsA_z27_Consumer7 , -1 , -1 , yRef_z27_Consumer7 , 12 , 2 , -1 , yPrsC_z27_Consumer7 , 0 , 0, yPAD_z27_Consumer7, yFree_z27_Consumer7, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr,4,1,9)" }; static xSignalNode ySigA_z27_Consumer7 = (xSignalNode)0; struct xSignalIdStruct ySigR_z27_Consumer7 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z27_Consumer7), &ySigA_z27_Consumer7, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr,4,1,9)" ,0 }; xIdNode yPrsO_z27_Consumer7[] = { (xIdNode)&yChaR_z2H_ConsumerLine7, (xIdNode)0}; void yFree_z27_Consumer7(void *me) { } /*+++++ * GR ref function for process Consumer7 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr,4,1,18) ++++++*/ char * yRef_z27_Consumer7 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer7 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr,4,1,18) ++++++*/ extern void yPAD_z27_Consumer7 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z27_Consumer7 * me = (yVDef_z27_Consumer7 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z276_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 11204, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),137(40,35),1,1) ------*/ case 3: (me->z276_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z276_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z276_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 11222, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),137(40,35),2,1) ------*/ case 4: (me->z274_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z274_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z274_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 11241, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),137(40,35),3,1) ------*/ case 5: (me->z275_myID = 7); xTraceAssign("myID := ", &(me->z275_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z275_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 11259, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),137(40,35),4,1) ------*/ case 6: (me->z273_theseTimes = SDL_Duration_Lit((int)(1403),(int)(0))); xTraceAssign("theseTimes := ", &(me->z273_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z273_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 11278, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z273_theseTimes), &me->yTim_coolTimes, (&ySigR_z272_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 11290, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 11311, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z275_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z276_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 11331, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z274_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 11353, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z273_theseTimes), &me->yTim_coolTimes, (&ySigR_z272_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 11365, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z270_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z270_SiDLing[] = { 0, 1, 0}; static long int yStaC_z270_SiDLing[2+1]; struct xStateIdStruct yStaR_z270_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "SiDLing" , 1, yStaH_z270_SiDLing, yStaI_z270_SiDLing, 0, 0, 0 , yStaC_z270_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z271_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z271_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z271_ForcedWait[2+1]; struct xStateIdStruct yStaR_z271_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "ForcedWait" , 2, yStaH_z271_ForcedWait, yStaI_z271_ForcedWait, 0, 0, 0 , yStaC_z271_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z272_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer7.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z27_Consumer7 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z273_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z27_Consumer7 *) 0)->z273_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z274_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z27_Consumer7 *) 0)->z274_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z275_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z27_Consumer7 *) 0)->z275_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer7.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z276_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z27_Consumer7, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z27_Consumer7 *) 0)->z276_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr,4,1,9) ******/ long int yPrsC_z28_Consumer8[12+1]; xSignalIdNode yPrsS_z28_Consumer8[] = { &ySigR_z9_approveRead, &ySigR_z282_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z28_Consumer8[] = { &xStartStateIdRec, &yStaR_z280_SiDLing, &yStaR_z281_ForcedWait}; static xPrsNode yPrsA_z28_Consumer8 = (xPrsNode)0; static xPrsNode yPrsB_z28_Consumer8 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z28_Consumer8 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer8" , yPrsT_z28_Consumer8, yPrsS_z28_Consumer8 , 0 , yPrsO_z28_Consumer8, -1 , 1 , 1, &yPrsB_z28_Consumer8, (unsigned)sizeof(yVDef_z28_Consumer8) , 100, &yPrsA_z28_Consumer8 , -1 , -1 , yRef_z28_Consumer8 , 12 , 2 , -1 , yPrsC_z28_Consumer8 , 0 , 0, yPAD_z28_Consumer8, yFree_z28_Consumer8, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr,4,1,9)" }; static xSignalNode ySigA_z28_Consumer8 = (xSignalNode)0; struct xSignalIdStruct ySigR_z28_Consumer8 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z28_Consumer8), &ySigA_z28_Consumer8, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr,4,1,9)" ,0 }; xIdNode yPrsO_z28_Consumer8[] = { (xIdNode)&yChaR_z2I_ConsumerLine8, (xIdNode)0}; void yFree_z28_Consumer8(void *me) { } /*+++++ * GR ref function for process Consumer8 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr,4,1,18) ++++++*/ char * yRef_z28_Consumer8 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer8 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr,4,1,18) ++++++*/ extern void yPAD_z28_Consumer8 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z28_Consumer8 * me = (yVDef_z28_Consumer8 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z286_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 11581, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),137(40,35),1,1) ------*/ case 3: (me->z286_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z286_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z286_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 11599, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),137(40,35),2,1) ------*/ case 4: (me->z284_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z284_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z284_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 11618, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),137(40,35),3,1) ------*/ case 5: (me->z285_myID = 8); xTraceAssign("myID := ", &(me->z285_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z285_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 11636, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),137(40,35),4,1) ------*/ case 6: (me->z283_theseTimes = SDL_Duration_Lit((int)(1721),(int)(0))); xTraceAssign("theseTimes := ", &(me->z283_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z283_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 11655, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z283_theseTimes), &me->yTim_coolTimes, (&ySigR_z282_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 11667, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 11688, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z285_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z286_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 11708, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z284_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 11730, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z283_theseTimes), &me->yTim_coolTimes, (&ySigR_z282_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 11742, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z280_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z280_SiDLing[] = { 0, 1, 0}; static long int yStaC_z280_SiDLing[2+1]; struct xStateIdStruct yStaR_z280_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "SiDLing" , 1, yStaH_z280_SiDLing, yStaI_z280_SiDLing, 0, 0, 0 , yStaC_z280_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z281_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z281_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z281_ForcedWait[2+1]; struct xStateIdStruct yStaR_z281_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "ForcedWait" , 2, yStaH_z281_ForcedWait, yStaI_z281_ForcedWait, 0, 0, 0 , yStaC_z281_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z282_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer8.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z28_Consumer8 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z283_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z28_Consumer8 *) 0)->z283_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z284_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z28_Consumer8 *) 0)->z284_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z285_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z28_Consumer8 *) 0)->z285_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer8.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z286_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z28_Consumer8, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z28_Consumer8 *) 0)->z286_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr,4,1,9) ******/ long int yPrsC_z29_Consumer9[12+1]; xSignalIdNode yPrsS_z29_Consumer9[] = { &ySigR_z9_approveRead, &ySigR_z292_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z29_Consumer9[] = { &xStartStateIdRec, &yStaR_z290_SiDLing, &yStaR_z291_ForcedWait}; static xPrsNode yPrsA_z29_Consumer9 = (xPrsNode)0; static xPrsNode yPrsB_z29_Consumer9 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z29_Consumer9 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer9" , yPrsT_z29_Consumer9, yPrsS_z29_Consumer9 , 0 , yPrsO_z29_Consumer9, -1 , 1 , 1, &yPrsB_z29_Consumer9, (unsigned)sizeof(yVDef_z29_Consumer9) , 100, &yPrsA_z29_Consumer9 , -1 , -1 , yRef_z29_Consumer9 , 12 , 2 , -1 , yPrsC_z29_Consumer9 , 0 , 0, yPAD_z29_Consumer9, yFree_z29_Consumer9, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr,4,1,9)" }; static xSignalNode ySigA_z29_Consumer9 = (xSignalNode)0; struct xSignalIdStruct ySigR_z29_Consumer9 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z29_Consumer9), &ySigA_z29_Consumer9, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr,4,1,9)" ,0 }; xIdNode yPrsO_z29_Consumer9[] = { (xIdNode)&yChaR_z2J_ConsumerLine9, (xIdNode)0}; void yFree_z29_Consumer9(void *me) { } /*+++++ * GR ref function for process Consumer9 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr,4,1,18) ++++++*/ char * yRef_z29_Consumer9 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer9 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr,4,1,18) ++++++*/ extern void yPAD_z29_Consumer9 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z29_Consumer9 * me = (yVDef_z29_Consumer9 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z296_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 11958, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),137(40,35),1,1) ------*/ case 3: (me->z296_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z296_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z296_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 11976, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),137(40,35),2,1) ------*/ case 4: (me->z294_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z294_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z294_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 11995, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),137(40,35),3,1) ------*/ case 5: (me->z295_myID = 9); xTraceAssign("myID := ", &(me->z295_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z295_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 12013, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),137(40,35),4,1) ------*/ case 6: (me->z293_theseTimes = SDL_Duration_Lit((int)(1520),(int)(0))); xTraceAssign("theseTimes := ", &(me->z293_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z293_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 12032, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z293_theseTimes), &me->yTim_coolTimes, (&ySigR_z292_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 12044, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 12065, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z295_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z296_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 12085, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z294_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 12107, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z293_theseTimes), &me->yTim_coolTimes, (&ySigR_z292_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 12119, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z290_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z290_SiDLing[] = { 0, 1, 0}; static long int yStaC_z290_SiDLing[2+1]; struct xStateIdStruct yStaR_z290_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "SiDLing" , 1, yStaH_z290_SiDLing, yStaI_z290_SiDLing, 0, 0, 0 , yStaC_z290_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z291_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z291_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z291_ForcedWait[2+1]; struct xStateIdStruct yStaR_z291_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "ForcedWait" , 2, yStaH_z291_ForcedWait, yStaI_z291_ForcedWait, 0, 0, 0 , yStaC_z291_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z292_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer9.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z29_Consumer9 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z293_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z29_Consumer9 *) 0)->z293_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z294_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z29_Consumer9 *) 0)->z294_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z295_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z29_Consumer9 *) 0)->z295_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer9.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z296_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z29_Consumer9, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z29_Consumer9 *) 0)->z296_mahPID), (unsigned)0, 0 }; /***** * PROCESS Consumer10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr,4,1,9) ******/ long int yPrsC_z2A_Consumer10[12+1]; xSignalIdNode yPrsS_z2A_Consumer10[] = { &ySigR_z9_approveRead, &ySigR_z2A2_coolTimes, (xSignalIdNode)0}; xStateIdNode yPrsT_z2A_Consumer10[] = { &xStartStateIdRec, &yStaR_z2A0_SiDLing, &yStaR_z2A1_ForcedWait}; static xPrsNode yPrsA_z2A_Consumer10 = (xPrsNode)0; static xPrsNode yPrsB_z2A_Consumer10 = (xPrsNode)0; struct xPrsIdStruct yPrsR_z2A_Consumer10 = { xProcessEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer10" , yPrsT_z2A_Consumer10, yPrsS_z2A_Consumer10 , 0 , yPrsO_z2A_Consumer10, -1 , 1 , 1, &yPrsB_z2A_Consumer10, (unsigned)sizeof(yVDef_z2A_Consumer10) , 100, &yPrsA_z2A_Consumer10 , -1 , -1 , yRef_z2A_Consumer10 , 12 , 2 , -1 , yPrsC_z2A_Consumer10 , 0 , 0, yPAD_z2A_Consumer10, yFree_z2A_Consumer10, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr,4,1,9)" }; static xSignalNode ySigA_z2A_Consumer10 = (xSignalNode)0; struct xSignalIdStruct ySigR_z2A_Consumer10 = { xStartUpSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers , "-" , (unsigned)sizeof(yPDef_z2A_Consumer10), &ySigA_z2A_Consumer10, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr,4,1,9)" ,0 }; xIdNode yPrsO_z2A_Consumer10[] = { (xIdNode)&yChaR_z2K_ConsumerLine10, (xIdNode)0}; void yFree_z2A_Consumer10(void *me) { } /*+++++ * GR ref function for process Consumer10 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr,4,1,19) ++++++*/ char * yRef_z2A_Consumer10 (int SymbolNo, xSymbolType *SymbolType) { switch (SymbolNo) { case 0: *SymbolType = xsStart; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),140(60,15),1,1)"; case 1: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),131(60,90),1,1)"; case 2: *SymbolType = xsInput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),122(45,150),1,1)"; case 3: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),137(40,35),1,1)"; case 4: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),137(40,35),2,1)"; case 5: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),137(40,35),3,1)"; case 6: *SymbolType = xsAssignmentStatement; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),137(40,35),4,1)"; case 7: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),137(40,35),5,1)"; case 8: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),134(60,70),1,1)"; case 9: *SymbolType = xsOutput; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),128(45,110),1,1)"; case 10: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),125(60,130),1,1)"; case 11: *SymbolType = xsSet; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),119(40,170),1,1)"; case 12: *SymbolType = xsNextstate; return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),116(60,195),1,1)"; default : *SymbolType = xsNoSuchSymbolType; return ""; } } /*+++++ * Function for process Consumer10 * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr,4,1,19) ++++++*/ extern void yPAD_z2A_Consumer10 (xPrsNode VarP) { void *ySVarP = VarP->Signal; register yVDef_z2A_Consumer10 * me = (yVDef_z2A_Consumer10 *)VarP; xPrdNode yTempPrd; xSignalNode yOutputSignal; switch (me->RestartAddress) { /*----- * START * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),140(60,15),1,1) ------*/ case 0: xGRSetSymbol(0); (me->z2A6_mahPID = SDL_NULL); if ( xBreakBefore(VarP, xFileName, 12336, 3, (int)1) ) return; /*----- * ASSIGNMENT mahPID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),137(40,35),1,1) ------*/ case 3: (me->z2A6_mahPID = me->Self); xTraceAssign("mahPID := ", &(me->z2A6_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); xMSCEAssign(VarP, "mahPID := ", &(me->z2A6_mahPID), (tSDLTypeInfo *)&ySDL_SDL_PId); if ( xBreakBefore(VarP, xFileName, 12354, 4, (int)0) ) return; /*----- * ASSIGNMENT stuffRead := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),137(40,35),2,1) ------*/ case 4: (me->z2A4_stuffRead = 0); xTraceAssign("stuffRead := ", &(me->z2A4_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "stuffRead := ", &(me->z2A4_stuffRead), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 12373, 5, (int)0) ) return; /*----- * ASSIGNMENT myID := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),137(40,35),3,1) ------*/ case 5: (me->z2A5_myID = 10); xTraceAssign("myID := ", &(me->z2A5_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); xMSCEAssign(VarP, "myID := ", &(me->z2A5_myID), (tSDLTypeInfo *)&ySDL_SDL_Integer); if ( xBreakBefore(VarP, xFileName, 12391, 6, (int)0) ) return; /*----- * ASSIGNMENT theseTimes := ... * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),137(40,35),4,1) ------*/ case 6: (me->z2A3_theseTimes = SDL_Duration_Lit((int)(2000),(int)(0))); xTraceAssign("theseTimes := ", &(me->z2A3_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); xMSCEAssign(VarP, "theseTimes := ", &(me->z2A3_theseTimes), (tSDLTypeInfo *)&ySDL_SDL_Duration); if ( xBreakBefore(VarP, xFileName, 12410, 7, (int)0) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),137(40,35),5,1) ------*/ case 7: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z2A3_theseTimes), &me->yTim_coolTimes, (&ySigR_z2A2_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 12422, 8, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),134(60,70),1,1) ------*/ case 8: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; /*----- * INPUT coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),131(60,90),1,1) ------*/ case 1: xGRSetSymbol(1); me->yTim_coolTimes = 0; if ( xBreakBefore(VarP, xFileName, 12443, 9, (int)1) ) return; /*----- * OUTPUT requestRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),128(45,110),1,1) ------*/ case 9: yOutputSignal = xGetSignal((&ySigR_z8_requestRead), ( *((&yPrsR_z13_Io))->ActivePrsList != (xPrsNode)0 ? (*((&yPrsR_z13_Io))->ActivePrsList)->Self : SDL_NULL ), me->Self); (((yPDef_z8_requestRead *)yOutputSignal)->Param1 = me->z2A5_myID); (((yPDef_z8_requestRead *)yOutputSignal)->Param2 = me-> z2A6_mahPID); SDL_Output(yOutputSignal, (xIdNode *)0); if ( xBreakBefore(VarP, xFileName, 12463, 10, (int)1) ) return; /*----- * NEXTSTATE ForcedWait * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),125(60,130),1,1) ------*/ case 10: xGRSetSymbol(-1); SDL_NextState(VarP, 2); return; /*----- * INPUT approveRead * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),122(45,150),1,1) ------*/ case 2: xGRSetSymbol(2); (me->z2A4_stuffRead = ((yPDef_z9_approveRead *)ySVarP)-> Param1); if ( xBreakBefore(VarP, xFileName, 12485, 11, (int)1) ) return; /*----- * SET coolTimes * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),119(40,170),1,1) ------*/ case 11: SDL_SimpleSet(xPlus_SDL_Duration(SDL_Now(), me->z2A3_theseTimes), &me->yTim_coolTimes, (&ySigR_z2A2_coolTimes), VarP); if ( xBreakBefore(VarP, xFileName, 12497, 12, (int)1) ) return; /*----- * NEXTSTATE SiDLing * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),116(60,195),1,1) ------*/ case 12: xGRSetSymbol(-1); SDL_NextState(VarP, 1); return; } } /***** * STATE SiDLing * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),134(60,70),1,1) ******/ static xInputAction yStaH_z2A0_SiDLing[] = { (xInputAction)0, (xInputAction)1, (xInputAction)0}; static int yStaI_z2A0_SiDLing[] = { 0, 1, 0}; static long int yStaC_z2A0_SiDLing[2+1]; struct xStateIdStruct yStaR_z2A0_SiDLing = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "SiDLing" , 1, yStaH_z2A0_SiDLing, yStaI_z2A0_SiDLing, 0, 0, 0 , yStaC_z2A0_SiDLing, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),134(60,70),1,1)" }; /***** * STATE ForcedWait * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),125(60,130),1,1) ******/ static xInputAction yStaH_z2A1_ForcedWait[] = { (xInputAction)1, (xInputAction)0, (xInputAction)0}; static int yStaI_z2A1_ForcedWait[] = { 2, 0, 0}; static long int yStaC_z2A1_ForcedWait[2+1]; struct xStateIdStruct yStaR_z2A1_ForcedWait = { xStateEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "ForcedWait" , 2, yStaH_z2A1_ForcedWait, yStaI_z2A1_ForcedWait, 0, 0, 0 , yStaC_z2A1_ForcedWait, (xStateIdNode)0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),125(60,130),1,1)" }; /***** * TIMER coolTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),1,7) ******/ struct xSignalIdStruct ySigR_z2A2_coolTimes = { xTimerEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "coolTimes" , (unsigned)sizeof(xTimerRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer10.spr(1),143(140,10),1,7)" ,((unsigned) &((yVDef_z2A_Consumer10 *) 0)->yTim_coolTimes) }; /***** * DCL theseTimes * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),3,1) ******/ struct xVarIdStruct yVarR_z2A3_theseTimes = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "theseTimes" , &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration, ((unsigned) &((yVDef_z2A_Consumer10 *) 0)->z2A3_theseTimes), (unsigned)0, 0 }; /***** * DCL stuffRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),4,1) ******/ struct xVarIdStruct yVarR_z2A4_stuffRead = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "stuffRead" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z2A_Consumer10 *) 0)->z2A4_stuffRead), (unsigned)0, 0 }; /***** * DCL myID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),5,1) ******/ struct xVarIdStruct yVarR_z2A5_myID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "myID" , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yVDef_z2A_Consumer10 *) 0)->z2A5_myID), (unsigned)0, 0 }; /***** * DCL mahPID * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer10.spr(1),143(140,10),6,1) ******/ struct xVarIdStruct yVarR_z2A6_mahPID = { xVariableEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z2A_Consumer10, "mahPID" , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yVDef_z2A_Consumer10 *) 0)->z2A6_mahPID), (unsigned)0, 0 }; /***** * SIGNALROUTE ConsumerLine1 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),119(48,30),1,1) ******/ static xSignalIdNode yChaS_z2B_ConsumerLine1[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2B_ConsumerLine1[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2B_ConsumerLine1[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2B_ConsumerLine1[] = { (xIdNode)&yPrsR_z21_Consumer, (xIdNode)0}; struct xChannelIdStruct yChaR_z2B_ConsumerLine1 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine1" , yChaS_z2B_ConsumerLine1, yChaO_z2B_ConsumerLine1, &yChaRR_z2B_ConsumerLine1 }; struct xChannelIdStruct yChaRR_z2B_ConsumerLine1 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine1" , yChaSR_z2B_ConsumerLine1, yChaOR_z2B_ConsumerLine1, &yChaR_z2B_ConsumerLine1 }; /***** * SIGNALROUTE ConsumerLine2 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),158(70,47),1,1) ******/ static xSignalIdNode yChaS_z2C_ConsumerLine2[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2C_ConsumerLine2[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2C_ConsumerLine2[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2C_ConsumerLine2[] = { (xIdNode)&yPrsR_z22_Consumer2, (xIdNode)0}; struct xChannelIdStruct yChaR_z2C_ConsumerLine2 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine2" , yChaS_z2C_ConsumerLine2, yChaO_z2C_ConsumerLine2, &yChaRR_z2C_ConsumerLine2 }; struct xChannelIdStruct yChaRR_z2C_ConsumerLine2 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine2" , yChaSR_z2C_ConsumerLine2, yChaOR_z2C_ConsumerLine2, &yChaR_z2C_ConsumerLine2 }; /***** * SIGNALROUTE ConsumerLine3 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),167(70,62),1,1) ******/ static xSignalIdNode yChaS_z2D_ConsumerLine3[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2D_ConsumerLine3[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2D_ConsumerLine3[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2D_ConsumerLine3[] = { (xIdNode)&yPrsR_z23_Consumer3, (xIdNode)0}; struct xChannelIdStruct yChaR_z2D_ConsumerLine3 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine3" , yChaS_z2D_ConsumerLine3, yChaO_z2D_ConsumerLine3, &yChaRR_z2D_ConsumerLine3 }; struct xChannelIdStruct yChaRR_z2D_ConsumerLine3 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine3" , yChaSR_z2D_ConsumerLine3, yChaOR_z2D_ConsumerLine3, &yChaR_z2D_ConsumerLine3 }; /***** * SIGNALROUTE ConsumerLine4 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),176(70,77),1,1) ******/ static xSignalIdNode yChaS_z2E_ConsumerLine4[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2E_ConsumerLine4[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2E_ConsumerLine4[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2E_ConsumerLine4[] = { (xIdNode)&yPrsR_z24_Consumer4, (xIdNode)0}; struct xChannelIdStruct yChaR_z2E_ConsumerLine4 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine4" , yChaS_z2E_ConsumerLine4, yChaO_z2E_ConsumerLine4, &yChaRR_z2E_ConsumerLine4 }; struct xChannelIdStruct yChaRR_z2E_ConsumerLine4 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine4" , yChaSR_z2E_ConsumerLine4, yChaOR_z2E_ConsumerLine4, &yChaR_z2E_ConsumerLine4 }; /***** * SIGNALROUTE ConsumerLine5 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),185(70,92),1,1) ******/ static xSignalIdNode yChaS_z2F_ConsumerLine5[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2F_ConsumerLine5[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2F_ConsumerLine5[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2F_ConsumerLine5[] = { (xIdNode)&yPrsR_z25_Consumer5, (xIdNode)0}; struct xChannelIdStruct yChaR_z2F_ConsumerLine5 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine5" , yChaS_z2F_ConsumerLine5, yChaO_z2F_ConsumerLine5, &yChaRR_z2F_ConsumerLine5 }; struct xChannelIdStruct yChaRR_z2F_ConsumerLine5 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine5" , yChaSR_z2F_ConsumerLine5, yChaOR_z2F_ConsumerLine5, &yChaR_z2F_ConsumerLine5 }; /***** * SIGNALROUTE ConsumerLine6 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),194(70,107),1,1) ******/ static xSignalIdNode yChaS_z2G_ConsumerLine6[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2G_ConsumerLine6[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2G_ConsumerLine6[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2G_ConsumerLine6[] = { (xIdNode)&yPrsR_z26_Consumer6, (xIdNode)0}; struct xChannelIdStruct yChaR_z2G_ConsumerLine6 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine6" , yChaS_z2G_ConsumerLine6, yChaO_z2G_ConsumerLine6, &yChaRR_z2G_ConsumerLine6 }; struct xChannelIdStruct yChaRR_z2G_ConsumerLine6 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine6" , yChaSR_z2G_ConsumerLine6, yChaOR_z2G_ConsumerLine6, &yChaR_z2G_ConsumerLine6 }; /***** * SIGNALROUTE ConsumerLine7 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),212(70,122),1,1) ******/ static xSignalIdNode yChaS_z2H_ConsumerLine7[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2H_ConsumerLine7[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2H_ConsumerLine7[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2H_ConsumerLine7[] = { (xIdNode)&yPrsR_z27_Consumer7, (xIdNode)0}; struct xChannelIdStruct yChaR_z2H_ConsumerLine7 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine7" , yChaS_z2H_ConsumerLine7, yChaO_z2H_ConsumerLine7, &yChaRR_z2H_ConsumerLine7 }; struct xChannelIdStruct yChaRR_z2H_ConsumerLine7 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine7" , yChaSR_z2H_ConsumerLine7, yChaOR_z2H_ConsumerLine7, &yChaR_z2H_ConsumerLine7 }; /***** * SIGNALROUTE ConsumerLine8 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),221(70,137),1,1) ******/ static xSignalIdNode yChaS_z2I_ConsumerLine8[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2I_ConsumerLine8[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2I_ConsumerLine8[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2I_ConsumerLine8[] = { (xIdNode)&yPrsR_z28_Consumer8, (xIdNode)0}; struct xChannelIdStruct yChaR_z2I_ConsumerLine8 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine8" , yChaS_z2I_ConsumerLine8, yChaO_z2I_ConsumerLine8, &yChaRR_z2I_ConsumerLine8 }; struct xChannelIdStruct yChaRR_z2I_ConsumerLine8 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine8" , yChaSR_z2I_ConsumerLine8, yChaOR_z2I_ConsumerLine8, &yChaR_z2I_ConsumerLine8 }; /***** * SIGNALROUTE ConsumerLine9 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),230(70,152),1,1) ******/ static xSignalIdNode yChaS_z2J_ConsumerLine9[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2J_ConsumerLine9[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2J_ConsumerLine9[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2J_ConsumerLine9[] = { (xIdNode)&yPrsR_z29_Consumer9, (xIdNode)0}; struct xChannelIdStruct yChaR_z2J_ConsumerLine9 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine9" , yChaS_z2J_ConsumerLine9, yChaO_z2J_ConsumerLine9, &yChaRR_z2J_ConsumerLine9 }; struct xChannelIdStruct yChaRR_z2J_ConsumerLine9 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine9" , yChaSR_z2J_ConsumerLine9, yChaOR_z2J_ConsumerLine9, &yChaR_z2J_ConsumerLine9 }; /***** * SIGNALROUTE ConsumerLine10 * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),239(70,167),1,1) ******/ static xSignalIdNode yChaS_z2K_ConsumerLine10[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z2K_ConsumerLine10[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; xIdNode yChaO_z2K_ConsumerLine10[] = { (xIdNode)&yChaR_z5_ConsumerDongle, (xIdNode)0}; xIdNode yChaOR_z2K_ConsumerLine10[] = { (xIdNode)&yPrsR_z2A_Consumer10, (xIdNode)0}; struct xChannelIdStruct yChaR_z2K_ConsumerLine10 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine10" , yChaS_z2K_ConsumerLine10, yChaO_z2K_ConsumerLine10, &yChaRR_z2K_ConsumerLine10 }; struct xChannelIdStruct yChaRR_z2K_ConsumerLine10 = { xSignalrouteEC , (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine10" , yChaSR_z2K_ConsumerLine10, yChaOR_z2K_ConsumerLine10, &yChaR_z2K_ConsumerLine10 }; /***** * CHANNEL ProducerDongle * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),140(130,72),1,1) ******/ static xSignalIdNode yChaS_z3_ProducerDongle[] = { &ySigR_z6_requestWrite, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z3_ProducerDongle[] = { &ySigR_z7_approveWrite, (xSignalIdNode)0}; struct xChannelIdStruct yChaR_z3_ProducerDongle = { xChannelEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ProducerDongle" , yChaS_z3_ProducerDongle, yChaO_z3_ProducerDongle, &yChaRR_z3_ProducerDongle }; struct xChannelIdStruct yChaRR_z3_ProducerDongle = { xChannelEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ProducerDongle" , yChaSR_z3_ProducerDongle, yChaOR_z3_ProducerDongle, &yChaR_z3_ProducerDongle }; /***** * CHANNEL ThisWayOrTheHighway * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),122(45,102),1,1) ******/ static xSignalIdNode yChaS_z4_ThisWayOrTheHighway[] = {&ySigR_zA_consumerXReadItemY, &ySigR_zB_producerXWroteItemY, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z4_ThisWayOrTheHighway[] = { (xSignalIdNode)0}; xIdNode yChaO_z4_ThisWayOrTheHighway[] = { (xIdNode)&yEnvR_env, (xIdNode)0}; struct xChannelIdStruct yChaR_z4_ThisWayOrTheHighway = { xChannelEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ThisWayOrTheHighway" , yChaS_z4_ThisWayOrTheHighway, yChaO_z4_ThisWayOrTheHighway, &yChaRR_z4_ThisWayOrTheHighway }; struct xChannelIdStruct yChaRR_z4_ThisWayOrTheHighway = { xChannelEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ThisWayOrTheHighway" , yChaSR_z4_ThisWayOrTheHighway, yChaOR_z4_ThisWayOrTheHighway, &yChaR_z4_ThisWayOrTheHighway }; /***** * CHANNEL ConsumerDongle * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),149(132,152),1,1) ******/ static xSignalIdNode yChaS_z5_ConsumerDongle[] = { &ySigR_z8_requestRead, (xSignalIdNode)0}; static xSignalIdNode yChaSR_z5_ConsumerDongle[] = { &ySigR_z9_approveRead, (xSignalIdNode)0}; struct xChannelIdStruct yChaR_z5_ConsumerDongle = { xChannelEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ConsumerDongle" , yChaS_z5_ConsumerDongle, yChaO_z5_ConsumerDongle, &yChaRR_z5_ConsumerDongle }; struct xChannelIdStruct yChaRR_z5_ConsumerDongle = { xChannelEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ConsumerDongle" , yChaSR_z5_ConsumerDongle, yChaOR_z5_ConsumerDongle, &yChaR_z5_ConsumerDongle }; /***** * SIGNAL requestWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),2,1) ******/ static xSignalNode ySigA_z6_requestWrite = (xSignalNode)0; struct xSignalIdStruct ySigR_z6_requestWrite = { xSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "requestWrite" , (unsigned)sizeof(yPDef_z6_requestWrite), &ySigA_z6_requestWrite, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),2,1)" ,0 }; struct xVarIdStruct ySPaR1_z6_requestWrite = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_z6_requestWrite , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_z6_requestWrite *) 0)->Param1), (unsigned)0, (int)0 }; struct xVarIdStruct ySPaR2_z6_requestWrite = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_z6_requestWrite , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_z6_requestWrite *) 0)->Param2), (unsigned)0, (int)0 }; struct xVarIdStruct ySPaR3_z6_requestWrite = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_z6_requestWrite , " " , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yPDef_z6_requestWrite *) 0)->Param3), (unsigned)0, (int)0 }; /***** * SIGNAL approveWrite * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),3,1) ******/ struct xSignalIdStruct ySigR_z7_approveWrite = { xSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "approveWrite" , (unsigned)sizeof(xSignalRec), 0, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),3,1)" ,0 }; /***** * SIGNAL requestRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),4,1) ******/ static xSignalNode ySigA_z8_requestRead = (xSignalNode)0; struct xSignalIdStruct ySigR_z8_requestRead = { xSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "requestRead" , (unsigned)sizeof(yPDef_z8_requestRead), &ySigA_z8_requestRead, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),4,1)" ,0 }; struct xVarIdStruct ySPaR1_z8_requestRead = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_z8_requestRead , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_z8_requestRead *) 0)->Param1), (unsigned)0, (int)0 }; struct xVarIdStruct ySPaR2_z8_requestRead = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_z8_requestRead , " " , &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId, ((unsigned) &((yPDef_z8_requestRead *) 0)->Param2), (unsigned)0, (int)0 }; /***** * SIGNAL approveRead * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),5,1) ******/ static xSignalNode ySigA_z9_approveRead = (xSignalNode)0; struct xSignalIdStruct ySigR_z9_approveRead = { xSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "approveRead" , (unsigned)sizeof(yPDef_z9_approveRead), &ySigA_z9_approveRead, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),5,1)" ,0 }; struct xVarIdStruct ySPaR1_z9_approveRead = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_z9_approveRead , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_z9_approveRead *) 0)->Param1), (unsigned)0, (int)0 }; /***** * SIGNAL consumerXReadItemY * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),6,1) ******/ static xSignalNode ySigA_zA_consumerXReadItemY = (xSignalNode)0; struct xSignalIdStruct ySigR_zA_consumerXReadItemY = { xSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "consumerXReadItemY" , (unsigned)sizeof(yPDef_zA_consumerXReadItemY), &ySigA_zA_consumerXReadItemY, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),6,1)" ,0 }; struct xVarIdStruct ySPaR1_zA_consumerXReadItemY = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zA_consumerXReadItemY , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_zA_consumerXReadItemY *) 0)->Param1), (unsigned)0, (int)0 }; struct xVarIdStruct ySPaR2_zA_consumerXReadItemY = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zA_consumerXReadItemY , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_zA_consumerXReadItemY *) 0)->Param2), (unsigned)0, (int)0 }; /***** * SIGNAL producerXWroteItemY * <> * #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),7,1) ******/ static xSignalNode ySigA_zB_producerXWroteItemY = (xSignalNode)0; struct xSignalIdStruct ySigR_zB_producerXWroteItemY = { xSignalEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "producerXWroteItemY" , (unsigned)sizeof(yPDef_zB_producerXWroteItemY), &ySigA_zB_producerXWroteItemY, 0 , 0 , "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),7,1)" ,0 }; struct xVarIdStruct ySPaR1_zB_producerXWroteItemY = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zB_producerXWroteItemY , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_zB_producerXWroteItemY *) 0)->Param1), (unsigned)0, (int)0 }; struct xVarIdStruct ySPaR2_zB_producerXWroteItemY = { xSignalParEC , (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zB_producerXWroteItemY , " " , &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer, ((unsigned) &((yPDef_zB_producerXWroteItemY *) 0)->Param2), (unsigned)0, (int)0 }; /************************************************************************* ** SECTION Initialization ** *************************************************************************/ extern void yInit (void) { int Temp; xSysD.xTranslatorVersion_Var = "Program generated by Cbasic 6.0.0 "; xInsertIdNode((xIdNode)&ySysR_z_Concuro); xInsertIdNode((xIdNode)&ySrtR_RandomControl); xInsertIdNode((xIdNode)&yBloR_z0_Producers); xInsertIdNode((xIdNode)&yPrsR_z01_Producer); xInsertIdNode((xIdNode)&ySigR_z01_Producer); SDL_Create(xGetSignal((&ySigR_z01_Producer), SDL_NULL, SDL_NULL), (&yPrsR_z01_Producer), 1); xInsertIdNode((xIdNode)&ySrtR_z010_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z011_SiDLing); xInsertIdNode((xIdNode)&yStaR_z012_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z013_walkingTime); xInsertIdNode((xIdNode)&yVarR_z014_someTime); xInsertIdNode((xIdNode)&yVarR_z015_myID); xInsertIdNode((xIdNode)&yVarR_z016_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z017_mahPID); xInsertIdNode((xIdNode)&yPrsR_z02_Producer2); xInsertIdNode((xIdNode)&ySigR_z02_Producer2); SDL_Create(xGetSignal((&ySigR_z02_Producer2), SDL_NULL, SDL_NULL), (&yPrsR_z02_Producer2), 1); xInsertIdNode((xIdNode)&ySrtR_z020_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z021_SiDLing); xInsertIdNode((xIdNode)&yStaR_z022_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z023_walkingTime); xInsertIdNode((xIdNode)&yVarR_z024_someTime); xInsertIdNode((xIdNode)&yVarR_z025_myID); xInsertIdNode((xIdNode)&yVarR_z026_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z027_mahPID); xInsertIdNode((xIdNode)&yPrsR_z03_Producer3); xInsertIdNode((xIdNode)&ySigR_z03_Producer3); SDL_Create(xGetSignal((&ySigR_z03_Producer3), SDL_NULL, SDL_NULL), (&yPrsR_z03_Producer3), 1); xInsertIdNode((xIdNode)&ySrtR_z030_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z031_SiDLing); xInsertIdNode((xIdNode)&yStaR_z032_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z033_walkingTime); xInsertIdNode((xIdNode)&yVarR_z034_someTime); xInsertIdNode((xIdNode)&yVarR_z035_myID); xInsertIdNode((xIdNode)&yVarR_z036_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z037_mahPID); xInsertIdNode((xIdNode)&yPrsR_z04_Producer4); xInsertIdNode((xIdNode)&ySigR_z04_Producer4); SDL_Create(xGetSignal((&ySigR_z04_Producer4), SDL_NULL, SDL_NULL), (&yPrsR_z04_Producer4), 1); xInsertIdNode((xIdNode)&ySrtR_z040_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z041_SiDLing); xInsertIdNode((xIdNode)&yStaR_z042_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z043_walkingTime); xInsertIdNode((xIdNode)&yVarR_z044_someTime); xInsertIdNode((xIdNode)&yVarR_z045_myID); xInsertIdNode((xIdNode)&yVarR_z046_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z047_mahPID); xInsertIdNode((xIdNode)&yPrsR_z05_Producer5); xInsertIdNode((xIdNode)&ySigR_z05_Producer5); SDL_Create(xGetSignal((&ySigR_z05_Producer5), SDL_NULL, SDL_NULL), (&yPrsR_z05_Producer5), 1); xInsertIdNode((xIdNode)&ySrtR_z050_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z051_SiDLing); xInsertIdNode((xIdNode)&yStaR_z052_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z053_walkingTime); xInsertIdNode((xIdNode)&yVarR_z054_someTime); xInsertIdNode((xIdNode)&yVarR_z055_myID); xInsertIdNode((xIdNode)&yVarR_z056_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z057_mahPID); xInsertIdNode((xIdNode)&yPrsR_z06_Producer6); xInsertIdNode((xIdNode)&ySigR_z06_Producer6); SDL_Create(xGetSignal((&ySigR_z06_Producer6), SDL_NULL, SDL_NULL), (&yPrsR_z06_Producer6), 1); xInsertIdNode((xIdNode)&ySrtR_z060_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z061_SiDLing); xInsertIdNode((xIdNode)&yStaR_z062_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z063_walkingTime); xInsertIdNode((xIdNode)&yVarR_z064_someTime); xInsertIdNode((xIdNode)&yVarR_z065_myID); xInsertIdNode((xIdNode)&yVarR_z066_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z067_mahPID); xInsertIdNode((xIdNode)&yPrsR_z07_Producer7); xInsertIdNode((xIdNode)&ySigR_z07_Producer7); SDL_Create(xGetSignal((&ySigR_z07_Producer7), SDL_NULL, SDL_NULL), (&yPrsR_z07_Producer7), 1); xInsertIdNode((xIdNode)&ySrtR_z070_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z071_SiDLing); xInsertIdNode((xIdNode)&yStaR_z072_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z073_walkingTime); xInsertIdNode((xIdNode)&yVarR_z074_someTime); xInsertIdNode((xIdNode)&yVarR_z075_myID); xInsertIdNode((xIdNode)&yVarR_z076_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z077_mahPID); xInsertIdNode((xIdNode)&yPrsR_z08_Producer8); xInsertIdNode((xIdNode)&ySigR_z08_Producer8); SDL_Create(xGetSignal((&ySigR_z08_Producer8), SDL_NULL, SDL_NULL), (&yPrsR_z08_Producer8), 1); xInsertIdNode((xIdNode)&ySrtR_z080_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z081_SiDLing); xInsertIdNode((xIdNode)&yStaR_z082_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z083_walkingTime); xInsertIdNode((xIdNode)&yVarR_z084_someTime); xInsertIdNode((xIdNode)&yVarR_z085_myID); xInsertIdNode((xIdNode)&yVarR_z086_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z087_mahPID); xInsertIdNode((xIdNode)&yPrsR_z09_Producer9); xInsertIdNode((xIdNode)&ySigR_z09_Producer9); SDL_Create(xGetSignal((&ySigR_z09_Producer9), SDL_NULL, SDL_NULL), (&yPrsR_z09_Producer9), 1); xInsertIdNode((xIdNode)&ySrtR_z090_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z091_SiDLing); xInsertIdNode((xIdNode)&yStaR_z092_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z093_walkingTime); xInsertIdNode((xIdNode)&yVarR_z094_someTime); xInsertIdNode((xIdNode)&yVarR_z095_myID); xInsertIdNode((xIdNode)&yVarR_z096_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z097_mahPID); xInsertIdNode((xIdNode)&yPrsR_z0A_Producer10); xInsertIdNode((xIdNode)&ySigR_z0A_Producer10); SDL_Create(xGetSignal((&ySigR_z0A_Producer10), SDL_NULL, SDL_NULL), (&yPrsR_z0A_Producer10), 1); xInsertIdNode((xIdNode)&ySrtR_z0A0_iLikeToWrite); xInsertIdNode((xIdNode)&yStaR_z0A1_SiDLing); xInsertIdNode((xIdNode)&yStaR_z0A2_ForcedToWait); xInsertIdNode((xIdNode)&ySigR_z0A3_walkingTime); xInsertIdNode((xIdNode)&yVarR_z0A4_someTime); xInsertIdNode((xIdNode)&yVarR_z0A5_myID); xInsertIdNode((xIdNode)&yVarR_z0A6_numberToWrite); xInsertIdNode((xIdNode)&yVarR_z0A7_mahPID); xInsertIdNode((xIdNode)&yChaR_z0B_ProducerLine1); xInsertIdNode((xIdNode)&yChaRR_z0B_ProducerLine1); xInsertIdNode((xIdNode)&yChaR_z0C_ProducerLine2); xInsertIdNode((xIdNode)&yChaRR_z0C_ProducerLine2); xInsertIdNode((xIdNode)&yChaR_z0D_ProducerLine3); xInsertIdNode((xIdNode)&yChaRR_z0D_ProducerLine3); xInsertIdNode((xIdNode)&yChaR_z0E_ProducerLine4); xInsertIdNode((xIdNode)&yChaRR_z0E_ProducerLine4); xInsertIdNode((xIdNode)&yChaR_z0F_ProducerLine5); xInsertIdNode((xIdNode)&yChaRR_z0F_ProducerLine5); xInsertIdNode((xIdNode)&yChaR_z0G_ProducerLine6); xInsertIdNode((xIdNode)&yChaRR_z0G_ProducerLine6); xInsertIdNode((xIdNode)&yChaR_z0H_ProducerLine7); xInsertIdNode((xIdNode)&yChaRR_z0H_ProducerLine7); xInsertIdNode((xIdNode)&yChaR_z0I_ProducerLine8); xInsertIdNode((xIdNode)&yChaRR_z0I_ProducerLine8); xInsertIdNode((xIdNode)&yChaR_z0J_ProducerLine9); xInsertIdNode((xIdNode)&yChaRR_z0J_ProducerLine9); xInsertIdNode((xIdNode)&yChaR_z0K_ProducerLine10); xInsertIdNode((xIdNode)&yChaRR_z0K_ProducerLine10); xInsertIdNode((xIdNode)&yBloR_z1_ConcuroBlock); xInsertIdNode((xIdNode)&yPrsR_z13_Io); xInsertIdNode((xIdNode)&ySigR_z13_Io); SDL_Create(xGetSignal((&ySigR_z13_Io), SDL_NULL, SDL_NULL), (&yPrsR_z13_Io), 1); xInsertIdNode((xIdNode)&yStaR_z130_Phase1); xInsertIdNode((xIdNode)&yStaR_z131_Phase2); xInsertIdNode((xIdNode)&yVarR_z132_numberWritten); xInsertIdNode((xIdNode)&yVarR_z133_writeID); xInsertIdNode((xIdNode)&yVarR_z134_writePID); xInsertIdNode((xIdNode)&yVarR_z135_readID); xInsertIdNode((xIdNode)&yVarR_z136_readPID); xInsertIdNode((xIdNode)&yChaR_z14_ProduceMe); xInsertIdNode((xIdNode)&yChaRR_z14_ProduceMe); xInsertIdNode((xIdNode)&yChaR_z15_LineOut); xInsertIdNode((xIdNode)&yChaRR_z15_LineOut); xInsertIdNode((xIdNode)&yChaR_z16_ConsumeMe); xInsertIdNode((xIdNode)&yChaRR_z16_ConsumeMe); xInsertIdNode((xIdNode)&yBloR_z2_Consumers); xInsertIdNode((xIdNode)&yPrsR_z21_Consumer); xInsertIdNode((xIdNode)&ySigR_z21_Consumer); SDL_Create(xGetSignal((&ySigR_z21_Consumer), SDL_NULL, SDL_NULL), (&yPrsR_z21_Consumer), 1); xInsertIdNode((xIdNode)&yStaR_z210_SiDLing); xInsertIdNode((xIdNode)&yStaR_z211_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z212_coolTimes); xInsertIdNode((xIdNode)&yVarR_z213_theseTimes); xInsertIdNode((xIdNode)&yVarR_z214_stuffRead); xInsertIdNode((xIdNode)&yVarR_z215_myID); xInsertIdNode((xIdNode)&yVarR_z216_mahPID); xInsertIdNode((xIdNode)&yPrsR_z22_Consumer2); xInsertIdNode((xIdNode)&ySigR_z22_Consumer2); SDL_Create(xGetSignal((&ySigR_z22_Consumer2), SDL_NULL, SDL_NULL), (&yPrsR_z22_Consumer2), 1); xInsertIdNode((xIdNode)&yStaR_z220_SiDLing); xInsertIdNode((xIdNode)&yStaR_z221_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z222_coolTimes); xInsertIdNode((xIdNode)&yVarR_z223_theseTimes); xInsertIdNode((xIdNode)&yVarR_z224_stuffRead); xInsertIdNode((xIdNode)&yVarR_z225_myID); xInsertIdNode((xIdNode)&yVarR_z226_mahPID); xInsertIdNode((xIdNode)&yPrsR_z23_Consumer3); xInsertIdNode((xIdNode)&ySigR_z23_Consumer3); SDL_Create(xGetSignal((&ySigR_z23_Consumer3), SDL_NULL, SDL_NULL), (&yPrsR_z23_Consumer3), 1); xInsertIdNode((xIdNode)&yStaR_z230_SiDLing); xInsertIdNode((xIdNode)&yStaR_z231_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z232_coolTimes); xInsertIdNode((xIdNode)&yVarR_z233_theseTimes); xInsertIdNode((xIdNode)&yVarR_z234_stuffRead); xInsertIdNode((xIdNode)&yVarR_z235_myID); xInsertIdNode((xIdNode)&yVarR_z236_mahPID); xInsertIdNode((xIdNode)&yPrsR_z24_Consumer4); xInsertIdNode((xIdNode)&ySigR_z24_Consumer4); SDL_Create(xGetSignal((&ySigR_z24_Consumer4), SDL_NULL, SDL_NULL), (&yPrsR_z24_Consumer4), 1); xInsertIdNode((xIdNode)&yStaR_z240_SiDLing); xInsertIdNode((xIdNode)&yStaR_z241_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z242_coolTimes); xInsertIdNode((xIdNode)&yVarR_z243_theseTimes); xInsertIdNode((xIdNode)&yVarR_z244_stuffRead); xInsertIdNode((xIdNode)&yVarR_z245_myID); xInsertIdNode((xIdNode)&yVarR_z246_mahPID); xInsertIdNode((xIdNode)&yPrsR_z25_Consumer5); xInsertIdNode((xIdNode)&ySigR_z25_Consumer5); SDL_Create(xGetSignal((&ySigR_z25_Consumer5), SDL_NULL, SDL_NULL), (&yPrsR_z25_Consumer5), 1); xInsertIdNode((xIdNode)&yStaR_z250_SiDLing); xInsertIdNode((xIdNode)&yStaR_z251_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z252_coolTimes); xInsertIdNode((xIdNode)&yVarR_z253_theseTimes); xInsertIdNode((xIdNode)&yVarR_z254_stuffRead); xInsertIdNode((xIdNode)&yVarR_z255_myID); xInsertIdNode((xIdNode)&yVarR_z256_mahPID); xInsertIdNode((xIdNode)&yPrsR_z26_Consumer6); xInsertIdNode((xIdNode)&ySigR_z26_Consumer6); SDL_Create(xGetSignal((&ySigR_z26_Consumer6), SDL_NULL, SDL_NULL), (&yPrsR_z26_Consumer6), 1); xInsertIdNode((xIdNode)&yStaR_z260_SiDLing); xInsertIdNode((xIdNode)&yStaR_z261_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z262_coolTimes); xInsertIdNode((xIdNode)&yVarR_z263_theseTimes); xInsertIdNode((xIdNode)&yVarR_z264_stuffRead); xInsertIdNode((xIdNode)&yVarR_z265_myID); xInsertIdNode((xIdNode)&yVarR_z266_mahPID); xInsertIdNode((xIdNode)&yPrsR_z27_Consumer7); xInsertIdNode((xIdNode)&ySigR_z27_Consumer7); SDL_Create(xGetSignal((&ySigR_z27_Consumer7), SDL_NULL, SDL_NULL), (&yPrsR_z27_Consumer7), 1); xInsertIdNode((xIdNode)&yStaR_z270_SiDLing); xInsertIdNode((xIdNode)&yStaR_z271_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z272_coolTimes); xInsertIdNode((xIdNode)&yVarR_z273_theseTimes); xInsertIdNode((xIdNode)&yVarR_z274_stuffRead); xInsertIdNode((xIdNode)&yVarR_z275_myID); xInsertIdNode((xIdNode)&yVarR_z276_mahPID); xInsertIdNode((xIdNode)&yPrsR_z28_Consumer8); xInsertIdNode((xIdNode)&ySigR_z28_Consumer8); SDL_Create(xGetSignal((&ySigR_z28_Consumer8), SDL_NULL, SDL_NULL), (&yPrsR_z28_Consumer8), 1); xInsertIdNode((xIdNode)&yStaR_z280_SiDLing); xInsertIdNode((xIdNode)&yStaR_z281_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z282_coolTimes); xInsertIdNode((xIdNode)&yVarR_z283_theseTimes); xInsertIdNode((xIdNode)&yVarR_z284_stuffRead); xInsertIdNode((xIdNode)&yVarR_z285_myID); xInsertIdNode((xIdNode)&yVarR_z286_mahPID); xInsertIdNode((xIdNode)&yPrsR_z29_Consumer9); xInsertIdNode((xIdNode)&ySigR_z29_Consumer9); SDL_Create(xGetSignal((&ySigR_z29_Consumer9), SDL_NULL, SDL_NULL), (&yPrsR_z29_Consumer9), 1); xInsertIdNode((xIdNode)&yStaR_z290_SiDLing); xInsertIdNode((xIdNode)&yStaR_z291_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z292_coolTimes); xInsertIdNode((xIdNode)&yVarR_z293_theseTimes); xInsertIdNode((xIdNode)&yVarR_z294_stuffRead); xInsertIdNode((xIdNode)&yVarR_z295_myID); xInsertIdNode((xIdNode)&yVarR_z296_mahPID); xInsertIdNode((xIdNode)&yPrsR_z2A_Consumer10); xInsertIdNode((xIdNode)&ySigR_z2A_Consumer10); SDL_Create(xGetSignal((&ySigR_z2A_Consumer10), SDL_NULL, SDL_NULL), (&yPrsR_z2A_Consumer10), 1); xInsertIdNode((xIdNode)&yStaR_z2A0_SiDLing); xInsertIdNode((xIdNode)&yStaR_z2A1_ForcedWait); xInsertIdNode((xIdNode)&ySigR_z2A2_coolTimes); xInsertIdNode((xIdNode)&yVarR_z2A3_theseTimes); xInsertIdNode((xIdNode)&yVarR_z2A4_stuffRead); xInsertIdNode((xIdNode)&yVarR_z2A5_myID); xInsertIdNode((xIdNode)&yVarR_z2A6_mahPID); xInsertIdNode((xIdNode)&yChaR_z2B_ConsumerLine1); xInsertIdNode((xIdNode)&yChaRR_z2B_ConsumerLine1); xInsertIdNode((xIdNode)&yChaR_z2C_ConsumerLine2); xInsertIdNode((xIdNode)&yChaRR_z2C_ConsumerLine2); xInsertIdNode((xIdNode)&yChaR_z2D_ConsumerLine3); xInsertIdNode((xIdNode)&yChaRR_z2D_ConsumerLine3); xInsertIdNode((xIdNode)&yChaR_z2E_ConsumerLine4); xInsertIdNode((xIdNode)&yChaRR_z2E_ConsumerLine4); xInsertIdNode((xIdNode)&yChaR_z2F_ConsumerLine5); xInsertIdNode((xIdNode)&yChaRR_z2F_ConsumerLine5); xInsertIdNode((xIdNode)&yChaR_z2G_ConsumerLine6); xInsertIdNode((xIdNode)&yChaRR_z2G_ConsumerLine6); xInsertIdNode((xIdNode)&yChaR_z2H_ConsumerLine7); xInsertIdNode((xIdNode)&yChaRR_z2H_ConsumerLine7); xInsertIdNode((xIdNode)&yChaR_z2I_ConsumerLine8); xInsertIdNode((xIdNode)&yChaRR_z2I_ConsumerLine8); xInsertIdNode((xIdNode)&yChaR_z2J_ConsumerLine9); xInsertIdNode((xIdNode)&yChaRR_z2J_ConsumerLine9); xInsertIdNode((xIdNode)&yChaR_z2K_ConsumerLine10); xInsertIdNode((xIdNode)&yChaRR_z2K_ConsumerLine10); xInsertIdNode((xIdNode)&yChaR_z3_ProducerDongle); xInsertIdNode((xIdNode)&yChaRR_z3_ProducerDongle); xInsertIdNode((xIdNode)&yChaR_z4_ThisWayOrTheHighway); xInsertIdNode((xIdNode)&yChaRR_z4_ThisWayOrTheHighway); xInsertIdNode((xIdNode)&yChaR_z5_ConsumerDongle); xInsertIdNode((xIdNode)&yChaRR_z5_ConsumerDongle); xInsertIdNode((xIdNode)&ySigR_z6_requestWrite); xInsertIdNode((xIdNode)&ySPaR1_z6_requestWrite); xInsertIdNode((xIdNode)&ySPaR2_z6_requestWrite); xInsertIdNode((xIdNode)&ySPaR3_z6_requestWrite); xInsertIdNode((xIdNode)&ySigR_z7_approveWrite); xInsertIdNode((xIdNode)&ySigR_z8_requestRead); xInsertIdNode((xIdNode)&ySPaR1_z8_requestRead); xInsertIdNode((xIdNode)&ySPaR2_z8_requestRead); xInsertIdNode((xIdNode)&ySigR_z9_approveRead); xInsertIdNode((xIdNode)&ySPaR1_z9_approveRead); xInsertIdNode((xIdNode)&ySigR_zA_consumerXReadItemY); xInsertIdNode((xIdNode)&ySPaR1_zA_consumerXReadItemY); xInsertIdNode((xIdNode)&ySPaR2_zA_consumerXReadItemY); xInsertIdNode((xIdNode)&ySigR_zB_producerXWroteItemY); xInsertIdNode((xIdNode)&ySPaR1_zB_producerXWroteItemY); xInsertIdNode((xIdNode)&ySPaR2_zB_producerXWroteItemY); }