Subversion Repositories Kolibri OS

Rev

Rev 9829 | Rev 9836 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9829 Rev 9830
Line 481... Line 481...
481
    KSYS_SLOT_STATE_SUSPENDED = 1,
481
    KSYS_SLOT_STATE_SUSPENDED = 1,
482
    KSYS_SLOT_STATE_SUSPENDED_WAIT_EVENT = 2,
482
    KSYS_SLOT_STATE_SUSPENDED_WAIT_EVENT = 2,
483
    KSYS_SLOT_STATE_NORMAL_TERM = 3,
483
    KSYS_SLOT_STATE_NORMAL_TERM = 3,
484
    KSYS_SLOT_STATE_EXCEPT_TERM = 4,
484
    KSYS_SLOT_STATE_EXCEPT_TERM = 4,
485
    KSYS_SLOT_STATE_WAIT_EVENT = 5,
485
    KSYS_SLOT_STATE_WAIT_EVENT = 5,
486
    KSYS_SLOT_STATE_FREE = 6
486
    KSYS_SLOT_STATE_FREE = 9
487
};
487
};
Line 488... Line 488...
488
 
488
 
489
KOSAPI int _ksys_thread_info(ksys_thread_t* table, int slot)
489
KOSAPI int _ksys_thread_info(ksys_thread_t* table, int slot)
490
{
490
{
Line 1578... Line 1578...
1578
 
1578
 
Line 1579... Line 1579...
1579
#define _ksys_clear_window_title() _ksys_set_window_title(NULL)
1579
#define _ksys_clear_window_title() _ksys_set_window_title(NULL)
Line 1580... Line 1580...
1580
 
1580
 
1581
/*============= Function 77, subfunction 0 - create futex object =============*/
1581
/*============= Function 77, subfunction 0 - create futex object =============*/
1582
 
1582
 
1583
KOSAPI void* _ksys_futex_create(void* futexControlAddr) {
1583
KOSAPI void* _ksys_futex_create(void* futex_control_addr) {
1584
    void* futexDesc;
1584
    void* futex_desc;
1585
    asm_inline(
1585
    asm_inline(
1586
        "int $0x40"
1586
        "int $0x40"
1587
        : "=a"(futexDesc)
1587
        : "=a"(futex_desc)
1588
        : "a"(77), "b"(0), "c"(futexControlAddr)
1588
        : "a"(77), "b"(0), "c"(futex_control_addr)
Line 1589... Line 1589...
1589
        : "memory");
1589
        : "memory");
Line 1590... Line 1590...
1590
    return futexDesc;
1590
    return futex_desc;
1591
}
1591
}
1592
 
1592
 
1593
/*============= Function 77, subfunction 1 - destroy futex object =============*/
1593
/*============= Function 77, subfunction 1 - destroy futex object =============*/
1594
 
1594
 
1595
KOSAPI int _ksys_futex_destroy(void* futexDesc) {
1595
KOSAPI int _ksys_futex_destroy(void* futex_desc) {
1596
    int res;
1596
    int res;
1597
    asm_inline(
1597
    asm_inline(
1598
        "int $0x40"
1598
        "int $0x40"
Line 1599... Line 1599...
1599
        : "=a"(res)
1599
        : "=a"(res)
Line 1600... Line 1600...
1600
        : "a"(77), "b"(1), "c"(futexDesc)
1600
        : "a"(77), "b"(1), "c"(futex_desc)
1601
        : "memory");
1601
        : "memory");
1602
    return res;
1602
    return res;
1603
}
1603
}
1604
 
1604
 
1605
/*============= Function 77, subfunction 2 - futex wait =============*/
1605
/*============= Function 77, subfunction 2 - futex wait =============*/
1606
 
1606
 
1607
KOSAPI int _ksys_futex_wait(void* futexDesc, int controlVal, int timeout) {
1607
KOSAPI int _ksys_futex_wait(void* futex_desc, int control_val, int timeout) {
1608
    int res;
1608
    int res;
Line 1609... Line 1609...
1609
    asm_inline(
1609
    asm_inline(
Line 1610... Line 1610...
1610
        "int $0x40"
1610
        "int $0x40"
1611
        : "=a"(res)
1611
        : "=a"(res)
1612
        : "a"(77), "b"(2), "c"(futexDesc), "d"(controlVal), "S"(timeout)
1612
        : "a"(77), "b"(2), "c"(futex_desc), "d"(control_val), "S"(timeout)
1613
        : "memory");
1613
        : "memory");
1614
    return res;
1614
    return res;
1615
}
1615
}
1616
 
1616
 
1617
/*============= Function 77, subfunction 3 - futex wake =============*/
1617
/*============= Function 77, subfunction 3 - futex wake =============*/
1618
 
1618
 
Line 1619... Line 1619...
1619
KOSAPI int _ksys_futex_wake(void* futexDesc, int maxWakeCount) {
1619
KOSAPI int _ksys_futex_wake(void* futex_desc, int max_wake_count) {