Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
8436 maxcodehac 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
}