 |
=kimi= |
Effetto tasto F8 |
26-06-2007 14:03 |
|
 |
=kimi= |
.primate.
Registered: Jan 2006
Posts: 69 (0.01 al dì)
Location: milano
Corso: Informatica
Anno: 1
Time Online: 3:26:04: [...]
Status: Offline
Edit | Report | IP: Logged |
Effetto tasto F8
ciao ragazzi,
volevo sapere se c'era qualcuno disponibile a spiegare i passi che bisogna fare su minix per poter modificare il tasto f8, cioè quando lo si preme per esempio compare una scritta.
|
26-06-2007 14:03 |
|
|
|  |
 |
n3o |
Devi modificare solo un paio di file:
... |
26-06-2007 18:07 |
|
 |
n3o |
tanto c'è SPASS...

Registered: Oct 2005
Posts: 134 (0.02 al dì)
Location: Brescia
Corso: Informatica Magistrale
Anno: 1°
Time Online: 1 Day, 19:26:05: [...]
Status: Offline
Edit | Report | IP: Logged |
Devi modificare solo un paio di file:
in /usr/src/servers/is/dmp.c
code:
#define NHOOKS 18
struct hook_entry {
int key;
void (*function)(void);
char *name;
} hooks[NHOOKS] = {
{ F1, proctab_dmp, "Kernel process table" },
{ F2, memmap_dmp, "Process memory maps" },
{ F3, image_dmp, "System image" },
{ F4, privileges_dmp, "Process privileges" },
{ F5, monparams_dmp, "Boot monitor parameters" },
{ F6, irqtab_dmp, "IRQ hooks and policies" },
{ F7, kmessages_dmp, "Kernel messages" },
{ F9, sched_dmp, "Scheduling queues" },
{ F10, kenv_dmp, "Kernel parameters" },
....
Modifichi
#define NHOOKS 18 in #define NHOOKS 19
Aggiungi la seguente riga nela struttura degli HOOKS:
code:
....
{ F6, irqtab_dmp, "IRQ hooks and policies" },
{ F7, kmessages_dmp, "Kernel messages" },
{ F8, hw_dmp, "Print a nice message!" },
{ F9, sched_dmp, "Scheduling queues" },
{ F10, kenv_dmp, "Kernel parameters" },
....
In fondo al file aggiungi la funzione hw_dmp :
code:
PUBLIC void hw_dmp(void)
{
printf ("Hello World !!!\n");
}
Infine in /usr/src/servers/is/proto.h
code:
/* Function prototypes. */
/* main.c */
_PROTOTYPE( int main, (int argc, char **argv) );
/* dmp.c */
_PROTOTYPE( int do_fkey_pressed, (message *m) );
_PROTOTYPE( void mapping_dmp, (void) );
....
Aggiungi un prototipo nel gruppo dmp.c
code:
/* Function prototypes. */
/* main.c */
_PROTOTYPE( int main, (int argc, char **argv) );
/* dmp.c */
_PROTOTYPE( int do_fkey_pressed, (message *m) );
_PROTOTYPE( void mapping_dmp, (void) );
_PROTOTYPE( void hw_dmp, (void) );
....
Spostati in /usr/src/tools
make image
make services (fondamentale!)
make hdboot
reboot
That's all folks!!!
__________________
The answer is blowing in the wind...
|
26-06-2007 18:07 |
|
|
|  |
 |
=kimi= |
grazie mille,
... |
26-06-2007 19:09 |
|
 |
=kimi= |
.primate.
Registered: Jan 2006
Posts: 69 (0.01 al dì)
Location: milano
Corso: Informatica
Anno: 1
Time Online: 3:26:04: [...]
Status: Offline
Edit | Report | IP: Logged |
grazie mille,
invece per quanto riguarda la modifica nel kernel,quando inseriamo una nuova syscall con parametri a cosa devo stare attento??? puoi darmi anche li delle dritte???
|
26-06-2007 19:09 |
|
|
|  |
 |
n3o |
Questa è decisamente più complicata...
... |
27-06-2007 13:46 |
|
 |
n3o |
tanto c'è SPASS...

Registered: Oct 2005
Posts: 134 (0.02 al dì)
Location: Brescia
Corso: Informatica Magistrale
Anno: 1°
Time Online: 1 Day, 19:26:05: [...]
Status: Offline
Edit | Report | IP: Logged |
Questa è decisamente più complicata...
- In /usr/src/include/minix/call_nr.h
Aumenta di uno il numero di syscall NCALLS e aggiungi una syscall alla fine seguendo lo schema delle precedenti, es:
#define GREETINGS 95 /* to PM */
- In /usr/src/servers/fs/table.c aggiungi alla fine dei prototipi la riga:
no_sys, /* 95 = greetings */
- In /usr/src/servers/pm/table.c aggiungi alla fine dei prototipi la riga:
do_greetings, /* 95 = greetings */
- In /usr/src/servers/pm/misc.c aggiungi la syscall vera e propria alla fine del file:
code:
PUBLIC void do_greetings (void)
{
printf ("Hi %s, %d greeting%s for you !!!\n", m_in.m3_ca1, m_in.m3_i1, m_in.m3_i1 == 1 ? "" : "s");
}
m_in è il messaggio in ingresso, guarda sul libro per la composizione dei vari messaggi...
In /usr/src/servers/pm/proto.h
Aggiungi il prototipo della funzione appena creata sotto la sezione misc.c:
_PROTOTYPE( void do_greetings, (void) );
A questo punto ricompila tutto con make image e make hdboot poi fai uno shutdown e crea un file di test del tipo:
code:
#include <lib.h>
#include <string.h>
#include <unistd.h>
int main (void)
{
message m;
m.m3_i1 = 5
strcpy (m.m3_ca1, "Pippo Pluto"); // Max 13 caratteri + '\0'
_syscall (PM_PROC_NR, GREETINGS, &m);
return (0);
}
Questo test dovrebbe stamparti:
# Hi Pippo Pluto, 5 greetings for you !!!
Si potrebbe creare anche un wrapper nelle librerie per evitare di scrivere manualmente i messaggi ma introdurrebbe altre operazioni che probabilmente non servono all'esame...
E anche questa volta è tutto!
__________________
The answer is blowing in the wind...
Last edited by n3o on 18-07-2007 at 15:16
|
27-06-2007 13:46 |
|
|
|  |
 |
liver82 |
Scusa ma il file di test dove va messo?
... |
18-07-2007 21:54 |
|
 |
liver82 |
.fedelissimo.
Registered: Sep 2002
Posts: 56 (0.01 al dì)
Location: Milano
Corso:
Anno:
Time Online: 16:03:12 [...]
Status: Offline
Edit | Report | IP: Logged |
Scusa ma il file di test dove va messo?
Grazie mille!!!
|
18-07-2007 21:54 |
|
|
|  |
 |
n3o |
è un programmino che puoi mettere dove vuoi (io l ... |
18-07-2007 22:03 |
|
 |
n3o |
tanto c'è SPASS...

Registered: Oct 2005
Posts: 134 (0.02 al dì)
Location: Brescia
Corso: Informatica Magistrale
Anno: 1°
Time Online: 1 Day, 19:26:05: [...]
Status: Offline
Edit | Report | IP: Logged |
è un programmino che puoi mettere dove vuoi (io l'ho messo nella mia home) 
Scrittura: elvis test.c (o elle, io ho scaricato vim..)
Compilazione: cc test.c -o test
Esecuzione: ./test
__________________
The answer is blowing in the wind...
Last edited by n3o on 18-07-2007 at 22:05
|
18-07-2007 22:03 |
|
|
|  |
 |
marbliss |
Ciao, ho seguito passo per passo tutto quello che ... |
12-07-2008 02:02 |
|
 |
marbliss |
.illuminato.

Registered: Nov 2006
Posts: 84 (0.01 al dì)
Location: Milano
Corso: TICOM
Anno: Primo
Time Online: 3 Days, 20:37:00: [...]
Status: Offline
Edit | Report | IP: Logged |
Ciao, ho seguito passo per passo tutto quello che c'è da fare per far stampare "Hello World" quando si preme F8 ma non mi funziona. Ricompila il kernel senza errori, ma premendo F8 non succede niente!! Qualcuno mi può aiutare a capire come mai? Grazie a chi risponde
|
12-07-2008 02:02 |
|
|
|  |
 |
cimax86 |
controlla di aver fatto giusta la punteggiatura. a ... |
12-07-2008 11:50 |
|
 |
cimax86 |
.simpatizzante.
Registered: Jul 2008
Posts: 19 (0.00 al dì)
Location:
Corso:
Anno:
Time Online: 3:06:51 [...]
Status: Offline
Edit | Report | IP: Logged |
controlla di aver fatto giusta la punteggiatura. a me molti errori di compilazione erano su quello.
|
12-07-2008 11:50 |
|
|
|  |
 |
All times are GMT. The time now is 19:24. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|