Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4921 | Serge | 1 | |
2 | |||
3 | |||
4 | .global ___io_free |
||
5 | .global ___io_tab |
||
6 | |||
7 | |||
8 | ___io_alloc: |
||
9 | pushl $__io_mutex |
||
10 | call ___mutex_lock |
||
11 | popl %eax |
||
12 | |||
13 | |||
14 | bsfl __io_map, %eax |
||
15 | jnz .done |
||
16 | |||
17 | |||
18 | bsfl __io_map+4, %eax |
||
19 | jnz .done |
||
20 | |||
21 | |||
22 | mov %eax, __io_mutex |
||
23 | notl %eax |
||
24 | ret |
||
25 | |||
26 | |||
27 | addl %ecx, %eax |
||
28 | btrl %eax, __io_map |
||
29 | movl $0, __io_mutex |
||
30 | ret |
||
31 | |||
32 | |||
33 | ___io_free: |
||
34 | movl 4(%esp), %eax |
||
35 | bts %eax, __io_map |
||
36 | ret |
||
37 | |||
38 | |||
39 | |||
40 | |||
41 | .long(0xFFFFFFFF) |
||
42 | |||
43 | |||
44 | |||
45 | |||
46 | |||
47 | |||
48 | __io_mutex: .space 4 |
||
49 |