Sponsored Content
Top Forums Programming Bitwise operation for state machine Post 302880853 by anand.shah on Tuesday 24th of December 2013 04:23:16 AM
Old 12-24-2013
Bitwise operation for state machine

Hello All,
I am writing basic state machine which maintains 8 different states and there is posibility that system may be in multiple states at a time (Except for state1 to state3. menas only once state can be active at a time from state1 to state3).
I have declared enum like one below

Code:
enum
{
   state1 1
   state2 1 << 1
   state3 1 << 2
   state4 1 << 4
    ....
    ....
}

Now my requirement is that state1 to state3 can not be active at a given instance.
Example if machine is in state1 then; state variabale would be -->
Code:
 xxxx x001

... then when system changes its state to to state3 ... state variable should become
Code:
xxxx x100.

.

Note :- "x'" indicates other state variable which should not get affected because of above operations.

Thank you very much in advance.

Regards,
Anand Shah
 

2 More Discussions You Might Find Interesting

1. AIX

Open firmware state to running state

Hi Admins, I am having a whole system lpar in open firmware state on HMC. How can I bring it to running state ? Let me know. Thanks. (2 Replies)
Discussion started by: snchaudhari2
2 Replies

2. Shell Programming and Scripting

Vim function to generate RTL Code(finite state machine) in verilog

Hi I wanted to call the AutoFsm function (given below) in vim to generate a code something like: **********verilog code to generate ************* always @(posedge clk or negedge rst_n) begin if(!rst_n) begin state_r <= #1 next_stateascii_r; ... (0 Replies)
Discussion started by: dll_fpga
0 Replies
MBSINIT(3)						     Linux Programmer's Manual							MBSINIT(3)

NAME
mbsinit - test for initial shift state SYNOPSIS
#include <wchar.h> int mbsinit(const mbstate_t *ps); DESCRIPTION
Character conversion between the multibyte representation and the wide character representation uses conversion state, of type mbstate_t. Conversion of a string uses a finite-state machine; when it is interrupted after the complete conversion of a number of characters, it may need to save a state for processing the remaining characters. Such a conversion state is needed for the sake of encodings such as ISO-2022 and UTF-7. The initial state is the state at the beginning of conversion of a string. There are two kinds of state: the one used by multibyte to wide character conversion functions, such as mbsrtowcs(3), and the one used by wide character to multibyte conversion functions, such as wcsr- tombs(3), but they both fit in a mbstate_t, and they both have the same representation for an initial state. For 8-bit encodings, all states are equivalent to the initial state. For multibyte encodings like UTF-8, EUC-*, BIG5 or SJIS, the wide character to multibyte conversion functions never produce non-initial states, but the multibyte to wide-character conversion functions like mbrtowc(3) do produce non-initial states when interrupted in the middle of a character. One possible way to create an mbstate_t in initial state is to set it to zero: mbstate_t state; memset(&state,0,sizeof(mbstate_t)); On Linux, the following works as well, but might generate compiler warnings: mbstate_t state = { 0 }; The function mbsinit() tests whether *ps corresponds to an initial state. RETURN VALUE
mbsinit() returns nonzero if *ps is an initial state, or if ps is NULL. Otherwise, it returns 0. ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7). +----------+---------------+---------+ |Interface | Attribute | Value | +----------+---------------+---------+ |mbsinit() | Thread safety | MT-Safe | +----------+---------------+---------+ CONFORMING TO
POSIX.1-2001, POSIX.1-2008, C99. NOTES
The behavior of mbsinit() depends on the LC_CTYPE category of the current locale. SEE ALSO
mbrlen(3), mbrtowc(3), mbsrtowcs(3), wcrtomb(3), wcsrtombs(3) COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. GNU
2016-10-08 MBSINIT(3)
All times are GMT -4. The time now is 03:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy