Page 1 of 1

EFlag improvement in the SALVO 2.3

PostPosted: Thu Oct 04, 2001 8:38 am
by luben

I understand your problems, all we have the same problems when we do programming. Wishing to charge our projects with more functionality they become heavier and heavier, and the RAM/ROM resources are almost never enough.

Well, I see that to implement all my ideas will resul of more ROM memory usage to all users, that maybe will never use EFlags like me. So, if something is very useful to all users its is OSNOTEXATLY_BIT option. It has different meaning, then OSANY.. or OSALL... It brings new gate to use EFlags - to wake up task when there is a change of EFlag. It's much more convenient and useful option then the existing OSEXACT_BITS. I mean - you can exchange OSEXACT_BIT to OSNOTEXACT_BITS giving the user one more option, almost without losting any current functionality.
If there is no place on the board of the ship - let's throw away what is not so important. As I read in "Timequacke" of Kurt Vonegut - "Grap the fillet, throw the rest to the sharks" (was something about the "The Man and the Sea" of Heminguei, it became like slogan in the book).
But as you advice me, I can really add one CASE into my sources and will do it like I wish. Anyway, if I can chose what to throw away and what to keep - will remove OSEXACT_BIT and will replace it with OSNOTEXACT_BIT just because it has more functionality and it's more useful.


[This message has been edited by luben (edited October 04, 2001).]

Re: EFlag improvement in the SALVO 2.3

PostPosted: Thu Oct 04, 2001 8:52 am
by luben

Talking about the new SALVO2.3 I have some thoughts about the OS_WaitEFlag() function. Maybe it's now the time with small changes to implement some additional functionality, that will increase very much the power of this function.

As we had some talk about the sense of EFlags we agreed that they are not like BinSemaphores - they are equal sensitive to ones and zeroes (BinSemaphore active level is one). That means - sometimes the tasks can watch the ones (like it's made in SALVO2.2 version) , but other tasks could be sensitive to zeroes - that currently absence. I mean - you should extent the options with some "zero sensitive" values. Like "if any of bits in the mask is zero" or if "all of the bits in the mask have zeros in EFlag".

And maybe the most important thing (I felt the absence of this option today, when I tried to make task, sensitive to changes of EFlag) - an option "if NOT EQUAL" to the mask. If SALVO has this option it's very easy to make a task that watches any changes of the bits in the EFlag, doesn't matter to 1 or to 0 they were.

In short - would be grate if the new SALVO2.3 could support the following parameters:
- the current parameters - OSANY_BITS, OSALL_BITS, OSEXACT_BITS, maybe with little bit different transcription, so the name to become more sensible - OSANYHIGH_BITS, OSALLHIGH_BITS, OSEXECT_BITS (no change)

- the new ones, that represents the meaning of EFLags - zero and one have equal weight - OSANYZERO_BITS, OSALLZERO_BITS

- the parameter that will allow task to watch the change of the EFlags - OSNOTEXACT_BITS.

I know that you are very tight with any kind of problems within and outside of SALVO and to talk is easier then to sit down and to write the code, to check it, to change the manual (so don't take all my ideas seriously - in my mind is crowdy from ideas).... By the way, how you can do so many task simultaneously.. seems that you're good example of multitasking system :-)

Have a nice weekend
Best wishes

[This message has been edited by luben (edited October 04, 2001).]

Re: EFlag improvement in the SALVO 2.3

PostPosted: Thu Oct 04, 2001 9:48 am
by aek
Hi Luben.

The problem with adding additional features to the eFlag code is that it gets bigger and bigger and bigger. This is especially bad for those users who will only use one or two of its different options.

What I had wanted to do for v2.2 was to have the "bit comparison" be done via an external function that would either be predefined as part of Salvo or would be user-supplied, e.g.

OS_WaitEFlag(ecbP, mask, extFn, timeout, label);

where the mask would be passed to the external function (or something like that). This way, the "personality" of the eFlag code would be based on whichever external function you are using. You can see that this is the optimal situation, because the code will only be as large as the particular eFlag "mask functions" you need.

Sadly, we did not have time to incorporate this into v2.2, and it has not been a priority for v2.3, either.

For now, I would suggest you (as a full-version user) develop your own extra eFlag functionality by adding the stuff you're proposing to eflag.c and event.c. Basically, you just need to define a few more constants, and figure out the extra CASE statements in the switch().

Then, we we look at expanding the abilities of the eFlag code, it will be easy to incorporate your additional "external function personalities" into the OSeFlagExtFn() functions.


Re: EFlag improvement in the SALVO 2.3

PostPosted: Wed Jul 08, 2009 11:41 am
by tbims23822 is a premium website for cheap air jordans shoes and other more really nike air jordan shoes.We have varity of cheap air jordan shoes available for wholesale.Cheap China wholesale shoes including cheap Nike shoes and cheap jordan shoes,nike sneakers,nike sneakers discount,air jordan sneakers,air force sneakers.We supply nike sneakers,jordan sneakers,air jordan sneakers,air force sneakers wholesale.You can buy very cheap jordans shoes including cheap women shoes,cheap nike shoes,cheap running shoes from us.