summaryrefslogtreecommitdiffstats
path: root/src/fluent-bit/lib/flb_libco/doc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:08:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:08:18 +0000
commit5da14042f70711ea5cf66e034699730335462f66 (patch)
tree0f6354ccac934ed87a2d555f45be4c831cf92f4a /src/fluent-bit/lib/flb_libco/doc
parentReleasing debian version 1.44.3-2. (diff)
downloadnetdata-5da14042f70711ea5cf66e034699730335462f66.tar.xz
netdata-5da14042f70711ea5cf66e034699730335462f66.zip
Merging upstream version 1.45.3+dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/fluent-bit/lib/flb_libco/doc')
-rwxr-xr-xsrc/fluent-bit/lib/flb_libco/doc/style.css8
-rwxr-xr-xsrc/fluent-bit/lib/flb_libco/doc/targets.html89
-rwxr-xr-xsrc/fluent-bit/lib/flb_libco/doc/usage.html107
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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;co_delete(cothread_t cothread);<br/>
+void &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>