int dm_block_map(int ID, void* address): funzione pubblica che stabilisce l'associazione tra blocco di memoria e indirizzo di memoria locale. La funzione trova il server che contiene il blocco ID richiamando la find_server, trova il blocco interessato richiamando la find_block, effettua un controllo sulla variabile booleana connected e se il client non risulta connesso al server, effettua la connessione richiamando la client_connect. Successivamente invia il comando relativo all'operazione dal svolgere al server, invia l'ID del blocco interessato al server, richiede la copia del blocco a partire dall'indirizzo address, segnala che il blocco è associato ad un indirizzo di memoria locale settando la variabile booleana associated a 1. La funzione restituisce 1 in caso di successo e -1 in caso di errore (non è possibile effettuare la connessione, il server non risponde, il blocco è gia associato ad un altro indirizzo di memoria locale).
|