Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1702 | Rev 1780 | ||
---|---|---|---|
Line 24... | Line 24... | ||
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | */ |
27 | */ |
28 | 28 | ||
29 | /** @addtogroup sync |
29 | /** @addtogroup sync |
30 | * @{ |
30 | * @{ |
31 | */ |
31 | */ |
32 | /** @file |
32 | /** @file |
33 | */ |
33 | */ |
34 | 34 | ||
Line 41... | Line 41... | ||
41 | #include <genarch/mm/page_ht.h> |
41 | #include <genarch/mm/page_ht.h> |
42 | #include <genarch/mm/page_pt.h> |
42 | #include <genarch/mm/page_pt.h> |
43 | 43 | ||
44 | /** Kernel-side futex structure. */ |
44 | /** Kernel-side futex structure. */ |
45 | struct futex { |
45 | struct futex { |
46 | __address paddr; /**< Physical address of the status variable. */ |
46 | uintptr_t paddr; /**< Physical address of the status variable. */ |
47 | waitq_t wq; /**< Wait queue for threads waiting for futex availability. */ |
47 | waitq_t wq; /**< Wait queue for threads waiting for futex availability. */ |
48 | link_t ht_link; /**< Futex hash table link. */ |
48 | link_t ht_link; /**< Futex hash table link. */ |
49 | count_t refcount; /**< Number of tasks that reference this futex. */ |
49 | count_t refcount; /**< Number of tasks that reference this futex. */ |
50 | }; |
50 | }; |
51 | 51 | ||
52 | extern void futex_init(void); |
52 | extern void futex_init(void); |
53 | extern __native sys_futex_sleep_timeout(__address uaddr, __u32 usec, int flags); |
53 | extern unative_t sys_futex_sleep_timeout(uintptr_t uaddr, uint32_t usec, int flags); |
54 | extern __native sys_futex_wakeup(__address uaddr); |
54 | extern unative_t sys_futex_wakeup(uintptr_t uaddr); |
55 | 55 | ||
56 | extern void futex_cleanup(void); |
56 | extern void futex_cleanup(void); |
57 | 57 | ||
58 | #endif |
58 | #endif |
59 | 59 | ||
60 | /** @} |
60 | /** @} |
61 | */ |
61 | */ |
62 | 62 |