From a6163888f3c56123b1db313743c6147ba498732c Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Fri, 8 Aug 2014 14:42:07 +0300 Subject: Add third_party libs --- third_party/uip-1.0/doc/html/a00155.html | 82 ++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 third_party/uip-1.0/doc/html/a00155.html (limited to 'third_party/uip-1.0/doc/html/a00155.html') diff --git a/third_party/uip-1.0/doc/html/a00155.html b/third_party/uip-1.0/doc/html/a00155.html new file mode 100644 index 0000000..cd75873 --- /dev/null +++ b/third_party/uip-1.0/doc/html/a00155.html @@ -0,0 +1,82 @@ + + +uIP 1.0: Local continuations + + + + +
+
+

Local continuations
+ +[Protothreads] +


Detailed Description

+Local continuations form the basis for implementing protothreads. +

+A local continuation can be set in a specific function to capture the state of the function. After a local continuation has been set can be resumed in order to restore the state of the function at the point where the local continuation was set. +

+ + + + + + + +

+

+ + + +

+

+ + + +

+

+ + + + + + + + + + + + + + + + + + + + + + + +

Files

file  lc.h
 Local continuations.
file  lc-switch.h
 Implementation of local continuations based on switch() statment.
file  lc-addrlabels.h
 Implementation of local continuations based on the "Labels as values" feature of gcc.

Defines

+#define __LC_SWTICH_H__
+#define LC_INIT(s)   s = 0;
+#define LC_RESUME(s)   switch(s) { case 0:
+#define LC_SET(s)   s = __LINE__; case __LINE__:
+#define LC_END(s)   }
+#define LC_INIT(s)   s = NULL
+#define LC_RESUME(s)
+#define LC_SET(s)   do { ({ __label__ resume; resume: (s) = &&resume; }); }while(0)
+#define LC_END(s)

Typedefs

+typedef unsigned short lc_t
+typedef void * lc_t
+


Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by  + +doxygen 1.4.6
+ + -- cgit v1.3.1