![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Effetto tasto F8 (http://www.dsy.it/forum/showthread.php?threadid=31283)
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.
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" }, ....
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" }, ....
code:
PUBLIC void hw_dmp(void) { printf ("Hello World !!!\n"); }
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) ); ....
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) ); ....
__________________
The answer is blowing in the wind...
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???
Questa è decisamente più complicata...
m_in è il messaggio in ingresso, guarda sul libro per la composizione dei vari messaggi...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"); }
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); }
__________________
The answer is blowing in the wind...
Scusa ma il file di test dove va messo?
Grazie mille!!!
è 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...
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
controlla di aver fatto giusta la punteggiatura. a me molti errori di compilazione erano su quello.
| All times are GMT. The time now is 07:33. | Show all 8 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.