Wed, 27 Nov 2024 23:00:07 +0100
add TODO to use a future ucx feature
1 | 1 | /* |
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
3 | * | |
4 | * Copyright 2008 Sun Microsystems, Inc. All rights reserved. | |
5 | * | |
6 | * THE BSD LICENSE | |
7 | * | |
8 | * Redistribution and use in source and binary forms, with or without | |
9 | * modification, are permitted provided that the following conditions are met: | |
10 | * | |
11 | * Redistributions of source code must retain the above copyright notice, this | |
12 | * list of conditions and the following disclaimer. | |
13 | * Redistributions in binary form must reproduce the above copyright notice, | |
14 | * this list of conditions and the following disclaimer in the documentation | |
15 | * and/or other materials provided with the distribution. | |
16 | * | |
17 | * Neither the name of the nor the names of its contributors may be | |
18 | * used to endorse or promote products derived from this software without | |
19 | * specific prior written permission. | |
20 | * | |
21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
24 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER | |
25 | * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
26 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
27 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |
28 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
29 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
30 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
31 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
32 | */ | |
33 | ||
34 | #ifndef BASE_SYSTHR_H | |
35 | #define BASE_SYSTHR_H | |
36 | ||
37 | #ifndef NOINTNSAPI | |
38 | #define INTNSAPI | |
39 | #endif /* !NOINTNSAPI */ | |
40 | ||
41 | /* | |
42 | * systhr.h: Abstracted threading mechanisms | |
43 | * | |
44 | * Rob McCool | |
45 | */ | |
46 | ||
47 | #ifndef NETSITE_H | |
14
b8bf95b39952
New source folder layout
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
9
diff
changeset
|
48 | #include "../daemon/netsite.h" |
b8bf95b39952
New source folder layout
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
9
diff
changeset
|
49 | #include "../public/nsapi.h" |
40 | 50 | //include "nspr.h" // TODO: remove |
1 | 51 | #endif /* !NETSITE_H */ |
52 | ||
53 | #define THREAD_ANY | |
54 | #ifdef THREAD_ANY | |
55 | ||
56 | /* --- Begin function prototypes --- */ | |
57 | ||
58 | #define INTNSAPI | |
59 | #ifdef INTNSAPI | |
60 | ||
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
61 | #ifdef __cplusplus |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
62 | extern "C" { |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
63 | #endif |
1 | 64 | |
29
e8619defde14
added event handler
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
24
diff
changeset
|
65 | typedef void* (*posix_thrstartfunc)(void *); |
e8619defde14
added event handler
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
24
diff
changeset
|
66 | |
1 | 67 | NSAPI_PUBLIC |
68 | SYS_THREAD INTsysthread_start(int prio, int stksz, thrstartfunc fn, void *arg); | |
69 | ||
70 | NSAPI_PUBLIC SYS_THREAD INTsysthread_current(void); | |
71 | ||
72 | NSAPI_PUBLIC void INTsysthread_yield(void); | |
73 | ||
74 | NSAPI_PUBLIC SYS_THREAD INTsysthread_attach(void); | |
75 | ||
76 | NSAPI_PUBLIC void INTsysthread_detach(SYS_THREAD thr); | |
77 | ||
78 | NSAPI_PUBLIC void INTsysthread_terminate(SYS_THREAD thr); | |
79 | ||
29
e8619defde14
added event handler
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
24
diff
changeset
|
80 | NSAPI_PUBLIC void INTsysthread_sleep(int msec); |
1 | 81 | |
82 | NSAPI_PUBLIC void INTsysthread_init(char *name); | |
83 | ||
84 | NSAPI_PUBLIC void INTsysthread_timerset(int usec); | |
85 | ||
86 | NSAPI_PUBLIC int INTsysthread_newkey(void); | |
87 | ||
88 | NSAPI_PUBLIC void *INTsysthread_getdata(int key); | |
89 | ||
90 | NSAPI_PUBLIC void INTsysthread_setdata(int key, void *data); | |
91 | ||
92 | NSAPI_PUBLIC | |
93 | void INTsysthread_set_default_stacksize(unsigned long size); | |
94 | ||
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
95 | #ifdef __cplusplus |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
96 | } |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
97 | #endif |
1 | 98 | |
99 | /* --- End function prototypes --- */ | |
100 | ||
101 | #define systhread_start INTsysthread_start | |
102 | #define systhread_current INTsysthread_current | |
103 | #define systhread_yield INTsysthread_yield | |
104 | #define systhread_attach INTsysthread_attach | |
105 | #define systhread_detach INTsysthread_detach | |
106 | #define systhread_terminate INTsysthread_terminate | |
107 | #define systhread_sleep INTsysthread_sleep | |
108 | #define systhread_init INTsysthread_init | |
109 | #define systhread_timerset INTsysthread_timerset | |
110 | #define systhread_newkey INTsysthread_newkey | |
111 | #define systhread_getdata INTsysthread_getdata | |
112 | #define systhread_setdata INTsysthread_setdata | |
113 | #define systhread_set_default_stacksize INTsysthread_set_default_stacksize | |
114 | ||
115 | #endif /* INTNSAPI */ | |
116 | ||
117 | #endif /* THREAD_ANY */ | |
118 | ||
119 | #endif /* !BASE_SYSTHR_H */ |