Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1882 | clevermous | 1 | #include |
2 | |||
3 | __u32 __menuet__get_irq_owner(__u32 irq) |
||
4 | { |
||
5 | __u32 __ret; |
||
6 | __asm__ __volatile__("int $0x40":"=a"(__ret):"0"(41),"b"(irq)); |
||
7 | return __ret; |
||
8 | } |
||
9 | |||
10 | int __menuet__get_data_read_by_irq(__u32 irq,__u32 * num_bytes_in_buf,__u8 * data) |
||
11 | { |
||
12 | __u32 a,b,c; |
||
13 | __asm__ __volatile__("int $0x40":"=a"(a),"=b"(b),"=c"(c):"0"(42),"1"(irq)); |
||
14 | if(num_bytes_in_buf) *num_bytes_in_buf=a; |
||
15 | if(data) *data=b & 0xFF; |
||
16 | return c; |
||
17 | } |
||
18 | |||
19 | int __menuet__send_data_to_device(__u16 port,__u8 val) |
||
20 | { |
||
21 | int __ret; |
||
22 | __asm__ __volatile__("int $0x40":"=a"(__ret):"0"(43),"b"(port),"c"(val)); |
||
23 | return __ret; |
||
24 | } |
||
25 | |||
26 | void __menuet__program_irq(void * intr_table,__u32 irq_num) |
||
27 | { |
||
28 | __asm__ __volatile__("int $0x40"::"a"(44),"b"(intr_table),"c"(irq_num)); |
||
29 | } |
||
30 | |||
31 | int __menuet__reserve_irq(int irqno) |
||
32 | { |
||
33 | int __ret; |
||
34 | __asm__ __volatile__("int $0x40":"=a"(__ret):"0"(45),"b"(0),"c"(irqno)); |
||
35 | return __ret; |
||
36 | } |
||
37 | |||
38 | int __menuet__free_irq(int irqno) |
||
39 | { |
||
40 | int __ret; |
||
41 | __asm__ __volatile__("int $0x40":"=a"(__ret):"0"(45),"b"(1),"c"(irqno)); |
||
42 | return __ret; |
||
43 | } |
||
44 | |||
45 | int __menuet__reserve_port_area(__u32 start,__u32 end) |
||
46 | { |
||
47 | int __ret; |
||
48 | __asm__("int $0x40":"=a"(__ret):"a"(45),"b"(0),"c"(start),"d"(end)); |
||
49 | return __ret; |
||
50 | } |
||
51 | |||
52 | int __menuet__free_port_area(__u32 start,__u32 end) |
||
53 | { |
||
54 | int __ret; |
||
55 | __asm__("int $0x40":"=a"(__ret):"a"(45),"b"(1),"c"(start),"d"(end)); |
||
56 | return __ret; |
||
57 | } |
||
58 | |||
59 | void __menuet__define_app_internal_intrs(void * intr_table) |
||
60 | { |
||
61 | __asm__("int $0x40"::"a"(49),"b"(0),"c"(intr_table)); |
||
62 | } |