diff options
Diffstat (limited to 'src/fluent-bit/lib/flb_libco/doc')
-rwxr-xr-x | src/fluent-bit/lib/flb_libco/doc/style.css | 8 | ||||
-rwxr-xr-x | src/fluent-bit/lib/flb_libco/doc/targets.html | 89 | ||||
-rwxr-xr-x | src/fluent-bit/lib/flb_libco/doc/usage.html | 107 |
3 files changed, 204 insertions, 0 deletions
diff --git a/src/fluent-bit/lib/flb_libco/doc/style.css b/src/fluent-bit/lib/flb_libco/doc/style.css new file mode 100755 index 000000000..5181afde6 --- /dev/null +++ b/src/fluent-bit/lib/flb_libco/doc/style.css @@ -0,0 +1,8 @@ +body { + background: #333; + color: #fff; +} + +code { + background: #444; +} diff --git a/src/fluent-bit/lib/flb_libco/doc/targets.html b/src/fluent-bit/lib/flb_libco/doc/targets.html new file mode 100755 index 000000000..d6211a15d --- /dev/null +++ b/src/fluent-bit/lib/flb_libco/doc/targets.html @@ -0,0 +1,89 @@ +<html> +<head> + <title></title> + <link href="style.css" rel="stylesheet" type="text/css"> +</head> +<body> + +<b>Supported targets:</b><br/><br/> + +Note that supported targets are only those that have been tested and confirmed +working. It is quite possible that libco will work on more processors, compilers +and operating systems than those listed below. +<hr/> + +<b>libco.x86</b><br/> +Overhead: ~5x<br/> +Supported processor(s): 32-bit x86<br/> +Supported compiler(s): any<br/> +Supported operating system(s):<ul> +<li>Windows</li> +<li>Mac OS X</li> +<li>Linux</li> +<li>BSD</li> +</ul> +<hr/> + +<b>libco.amd64</b><br/> +Overhead: ~10x (Windows), ~6x (all other platforms)<br/> +Supported processor(s): 64-bit amd64<br/> +Supported compiler(s): any<br/> +Supported operating system(s):<ul> +<li>Windows</li> +<li>Mac OS X</li> +<li>Linux</li> +<li>BSD</li> +</ul> +<hr/> + +<b>libco.ppc</b><br/> +Overhead: ~20x<br/> +Supported processor(s): 32-bit PowerPC, 64-bit PowerPC<br/> +Supported compiler(s): GNU GCC<br/> +Supported operating system(s):<ul> +</ul> +<li>Mac OS X</li> +<li>Linux</li> +<li>BSD</li> +<li>Playstation 3</li> +</ul> +<br/> + +Note: this module contains compiler flags to enable/disable FPU and Altivec +support. + +<hr/> + +<b>libco.fiber</b><br/> +Overhead: ~15x<br/> +Supported processor(s): Processor independent<br/> +Supported compiler(s): any<br/> +Supported operating system(s):<ul> +<li>Windows</li> +</ul> +<hr/> + +<b>libco.sjlj</b><br/> +Overhead: ~30x<br/> +Supported processor(s): Processor independent<br/> +Supported compiler(s): any<br/> +Supported operating system(s):<ul> +<li>Mac OS X</li> +<li>Linux</li> +<li>BSD</li> +<li>Solaris</li> +</ul> +<hr/> + +<b>libco.ucontext</b><br/> +Overhead: <b><font color="#ff0000">~300x</font></b><br/> +Supported processor(s): Processor independent<br/> +Supported compiler(s): any<br/> +Supported operating system(s):<ul> +<li>Linux</li> +<li>BSD</li> +</ul> +<hr/> + +</body> +</html> diff --git a/src/fluent-bit/lib/flb_libco/doc/usage.html b/src/fluent-bit/lib/flb_libco/doc/usage.html new file mode 100755 index 000000000..3f0d81ccd --- /dev/null +++ b/src/fluent-bit/lib/flb_libco/doc/usage.html @@ -0,0 +1,107 @@ +<html> +<head> + <title></title> + <link href="style.css" rel="stylesheet" type="text/css"> +</head> +<body> + +<b>License:</b><br/><br/> +libco is released to the public domain. +<hr/> + +<b>Contact:</b><br/><br/> +At present, you may contact me at setsunakun0 at hotmail dot com.<br/> +I am interested in knowing of any projects that make use of this library, +though this is only a courtesy. +<hr/> + +<b>Foreword:</b><br/><br/> +libco is a cross-platform, public domain implementation of +cooperative-multithreading; a feature that is sorely lacking +from the ISO C/C++ standard.<br/> +The library is designed for maximum speed and portability, and +not for safety or features. If safety or extra functionality is desired, +a wrapper API can easily be written to encapsulate all library functions.<br/> +Behavior of executing operations that are listed as not permitted +below result in undefined behavior. They may work anyway, they +may cause undesired / unknown behavior, or they may crash the +program entirely.<br/> +The goal of this library was to simplify the base API as much as possible, +implementing only that which cannot be implemented using pure C. Additional +functionality after this would only complicate ports of this library to new +platforms. +<hr/> + +<b>Porting:</b><br/><br/> +This document is included as a reference for porting libco. Please submit any +ports you create to me, so that libco can become more useful. Please note that +since libco is public domain, you must submit your code as a work of the +public domain in order for it to be included in the official distribution. +Full credit will be given in the source code of the official release. Please +do not bother submitting code to me under any other license -- including GPL, +LGPL, BSD or CC -- I am not interested in creating a library with multiple +different licenses depending on which targets are used. +<hr/> + +<b>Synopsis:</b><br/><br/> +<code> +typedef void* cothread_t;<br/> +<br/> +cothread_t co_active();<br/> +cothread_t co_create(unsigned int heapsize, void (*coentry)(void));<br/> +void co_delete(cothread_t cothread);<br/> +void co_switch(cothread_t cothread);<br/> +</code> +<hr/> + +<b>Usage:</b> +<hr/> + +<code>typedef void* cothread_t;</code><br/><br/> +Handle to cothread.<br/> +Handle must be of type void*.<br/> +A value of null (0) indicates an uninitialized or invalid +handle, whereas a non-zero value indicates a valid handle. +<hr/> + +<code>cothread_t co_active();</code><br/><br/> +Return handle to current cothread. Always returns a valid handle, even when +called from the main program thread. +<hr/> + +<code>cothread_t co_create(unsigned int heapsize, void (*coentry)(void));</code><br/><br/> +Create new cothread.<br/> +Heapsize is the amount of memory allocated for the cothread stack, specified +in bytes. This is unfortunately impossible to make fully portable. It is +recommended to specify sizes using `n * sizeof(void*)'. It is better to err +on the side of caution and allocate more memory than will be needed to ensure +compatibility with other platforms, within reason. A typical heapsize for a +32-bit architecture is ~1MB.<br/> +When the new cothread is first called, program execution jumps to coentry. +This function does not take any arguments, due to portability issues with +passing function arguments. However, arguments can be simulated by the use +of global variables, which can be set before the first call to each cothread.<br/> +coentry() must not return, and should end with an appropriate co_switch() +statement. Behavior is undefined if entry point returns normally.<br/> +Library is responsible for allocating cothread stack memory, to free +the user from needing to allocate special memory capable of being used +as program stack memory on platforms where this is required.<br/> +User is always responsible for deleting cothreads with co_delete().<br/> +Return value of null (0) indicates cothread creation failed. +<hr/> + +<code>void co_delete(cothread_t cothread);</code><br/><br/> +Delete specified cothread.<br/> +Null (0) or invalid cothread handle is not allowed.<br/> +Passing handle of active cothread to this function is not allowed.<br/> +Passing handle of primary cothread is not allowed. +<hr/> + +<code>void co_switch(cothread_t cothread);</code><br/><br/> +Switch to specified cothread.<br/> +Null (0) or invalid cothread handle is not allowed.<br/> +Passing handle of active cothread to this function is not allowed. +<hr/> + +</body> +</html> |