[Lugge] Altra domanda su Hardware x Linux

  • From: "Stefano Roselli" <sroselli@xxxxxxxxxxxxxxxxxxxx>
  • To: <lugge@xxxxxxxxxxxxx>
  • Date: Wed, 17 Oct 2001 16:27:53 +0200

Ciao a tutti,
ieri stavo lavorando in RedHat 7.1 con StarOffice 5.2 e Forte for Java
aperti su un programma Java che sfrutta una libreria in C quando l'harddisk
ha iniziato a rallentare paurosamente e a diventare rumorosissimo. Dopo un
po' di macinare ha iniziato a dare errori di lettura a fiotti su blocchi del
disco di root. Spegnendo non si è più riavviato decentemente e sono riuscito
a riavviarlo con i dischi di boot di Slackware e a montare i dischi solo per
il tempo necessario a copiare i files di maggior interesse.

Ai successivi riavvi nei modi più disparati (e disperati ... ;-) ) (tipo
disco di boot RH 7.1, CDrom RH 7.1, dischi di boot Slackware) non sono
neanche più riuscito a montare il disco. Da dos ho provato a ripartizionare
e si è piantato allo 0% della verifica dell'integrità.

Domanda 1) Secondo voi cosa è successo ?  (ritengo danni al supporto fisico
per gioventù, era un disco di 2 mesi di vita/lavoro)
Domanda 2) Può essere stato un errore mio o della routine in C, che vi
allego di seguito?

Grazie a tutti,

Stefano.

/*
 * PArNative.c: shared library for port I/O for Java integration
 *
 * Compile with
`gcc  -shared -I/usr/java/jdk1.3.1/include -I/usr/java/jdk1.3.1/include/linu
x -o libpar.so',
 *
 */
#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
#include <jni.h>
#include "Parallela.h"

#define BASEPORT 0x378 /* lp1 */

JNIEXPORT jint JNICALL Java_Parallela_ReadPar
  (JNIEnv *env, jobject obj, jint app)
{
        unsigned char ingresso;

        /* Get access to the ports */
        if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}

        /* Sleep for a while (100 ms) */
        usleep(100000);

        /* Read from the status port (BASE+1) and storage the result */
        app=inb(BASEPORT + 1);

        /* We don't need the ports anymore */
        if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}

        return app;
}

JNIEXPORT void JNICALL Java_Parallela_WritePar
  (JNIEnv *env, jobject obj, jint scritto)
{
        /* Get access to the ports */
        if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}

        /* Sleep for a while (100 ms) */
        usleep(100000);

        outb(scritto, BASEPORT);

        /* We don't need the ports anymore */
        if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}

        return;
}



<========----------
 Prima di scrivere in m-list per favore leggi il regolamento
 http://lugge.ziobudda.net/benvenuto.html



Other related posts: