summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/busp/busp.cc
diff options
context:
space:
mode:
Diffstat (limited to '2003/i/buzz/src/busp/busp.cc')
-rw-r--r--2003/i/buzz/src/busp/busp.cc38
1 files changed, 22 insertions, 16 deletions
diff --git a/2003/i/buzz/src/busp/busp.cc b/2003/i/buzz/src/busp/busp.cc
index d830a30..5038a65 100644
--- a/2003/i/buzz/src/busp/busp.cc
+++ b/2003/i/buzz/src/busp/busp.cc
@@ -34,7 +34,7 @@ Busp::Busp ()
sa.sa_flags = SA_RESTART;
sigaction (SIGUSR1, &sa, 0); // Il n'y aura pas d'erreur, cf doc.
// Active les interruptions.
- sti ();
+// sti ();
// Remplis le tableau d'inversion des données.
// Les fils sont soudés à l'envers.
for (int i = 0; i < 256; ++i)
@@ -55,13 +55,13 @@ Busp::Busp ()
Busp::~Busp ()
{
// Désactive les interruptions.
- cli ();
+// cli ();
// Ignore les signaux, on sait jammais.
- struct sigaction sa;
- sa.sa_handler = SIG_IGN;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_RESTART;
- sigaction (SIGUSR1, &sa, 0);
+// struct sigaction sa;
+// sa.sa_handler = SIG_IGN;
+// sigemptyset (&sa.sa_mask);
+// sa.sa_flags = SA_RESTART;
+// sigaction (SIGUSR1, &sa, 0);
// Ferme le périphérique.
close (m_fd);
// Efface le pointeur d'instance.
@@ -72,31 +72,33 @@ Busp::~Busp ()
void
Busp::sti (void)
{
- ioctl (m_fd, PBUS_INTENABLE);
+// ioctl (m_fd, PBUS_INTENABLE);
}
// Désactive les interruptions.
void
Busp::cli (void)
{
- ioctl (m_fd, PBUS_INTDISABLE);
+// ioctl (m_fd, PBUS_INTDISABLE);
}
// Traite le signal envoyé par le kernel lors d'une interruption.
void
Busp::irq (int sig)
{
- Busp &busp = Busp::getInstance ();
+// Busp &busp = Busp::getInstance ();
// Désactivation des interuptions automatique.
// Récupère le numéro d'intéruption.
- struct pbus_io io;
- ioctl (busp.m_fd, PBUS_INTREAD, &io);
- cout << "irq " << (int) io.ints << endl;
+// struct pbus_io io;
+// ioctl (busp.m_fd, PBUS_INTREAD, &io);
+#ifdef BUSP_DEBUG
+// cout << "irq " << (int) io.ints << endl;
+#endif // BUSP_DEBUG
// Sous-traite l'interruption.
- if (io.ints & BuspIr::m_irqMask)
- busp.m_ir.irq ();
+// if (io.ints & BuspIr::m_irqMask)
+// busp.m_ir.irq ();
// Active à nouveau.
- busp.sti ();
+// busp.sti ();
}
// Ecrire sur le bus.
@@ -107,7 +109,9 @@ Busp::write (int addr, int data)
io.addr = addr;
io.data = m_inverse[data];
ioctl (m_fd, PBUS_WRITE, &io);
+#ifdef BUSP_DEBUG
cout << "write " << addr << " " << data << endl;
+#endif // BUSP_DEBUG
}
// Lire sur le bus.
@@ -117,6 +121,8 @@ Busp::read (int addr)
struct pbus_io io;
io.addr = addr;
ioctl (m_fd, PBUS_READ, &io);
+#ifdef BUSP_DEBUG
cout << "read " << addr << " = " << (int) m_inverse[io.data] << endl;
+#endif // BUSP_DEBUG
return m_inverse[io.data];
}