Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include<menuet/os.h>
  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. }
  63.