pic_if.m 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #-
  2. # Copyright (c) 1998 Doug Rabson
  3. # All rights reserved.
  4. #
  5. # Redistribution and use in source and binary forms, with or without
  6. # modification, are permitted provided that the following conditions
  7. # are met:
  8. # 1. Redistributions of source code must retain the above copyright
  9. # notice, this list of conditions and the following disclaimer.
  10. # 2. Redistributions in binary form must reproduce the above copyright
  11. # notice, this list of conditions and the following disclaimer in the
  12. # documentation and/or other materials provided with the distribution.
  13. #
  14. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  15. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17. # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  18. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  21. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  22. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  23. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  24. # SUCH DAMAGE.
  25. #
  26. # from: src/sys/kern/bus_if.m,v 1.21 2002/04/21 11:16:10 markm Exp
  27. # $FreeBSD$
  28. #
  29. #include <sys/bus.h>
  30. #include <sys/cpuset.h>
  31. #include <machine/frame.h>
  32. INTERFACE pic;
  33. CODE {
  34. static pic_translate_code_t pic_translate_code_default;
  35. static void pic_translate_code_default(device_t dev, u_int irq,
  36. int code, enum intr_trigger *trig, enum intr_polarity *pol)
  37. {
  38. *trig = INTR_TRIGGER_CONFORM;
  39. *pol = INTR_POLARITY_CONFORM;
  40. }
  41. };
  42. METHOD void bind {
  43. device_t dev;
  44. u_int irq;
  45. cpuset_t cpumask;
  46. void **priv;
  47. };
  48. METHOD void translate_code {
  49. device_t dev;
  50. u_int irq;
  51. int code;
  52. enum intr_trigger *trig;
  53. enum intr_polarity *pol;
  54. } DEFAULT pic_translate_code_default;
  55. METHOD void config {
  56. device_t dev;
  57. u_int irq;
  58. enum intr_trigger trig;
  59. enum intr_polarity pol;
  60. };
  61. METHOD void dispatch {
  62. device_t dev;
  63. struct trapframe *tf;
  64. };
  65. METHOD void enable {
  66. device_t dev;
  67. u_int irq;
  68. u_int vector;
  69. void **priv;
  70. };
  71. METHOD void eoi {
  72. device_t dev;
  73. u_int irq;
  74. void *priv;
  75. };
  76. METHOD void ipi {
  77. device_t dev;
  78. u_int cpu;
  79. };
  80. METHOD void mask {
  81. device_t dev;
  82. u_int irq;
  83. void *priv;
  84. };
  85. METHOD void unmask {
  86. device_t dev;
  87. u_int irq;
  88. void *priv;
  89. };