diff -r 5d2927300e2c -r 5e7457efbb8f lib/sema.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/sema.txt Sat Mar 26 18:53:51 2011 +0100 @@ -0,0 +1,25 @@ +(* + * (c) 2011 Edouard Tisserant + * + * Fake semaphore support, for non preemptive implementation. + * + *) + + +FUNCTION_BLOCK SEMA + VAR_INPUT + CLAIM : BOOL; + RELEASE : BOOL; + END_VAR + VAR_OUTPUT + BUSY : BOOL; + END_VAR + VAR + Q_INTERNAL : BOOL; + END_VAR + + Q_INTERNAL := CLAIM OR ( Q_INTERNAL AND (NOT RELEASE)); + BUSY := Q_INTERNAL; + +END_FUNCTION_BLOCK +