next up previous contents index
Next: Biblioteca C mínima Up: Sistema de Arquivos Previous: Sistema de Arquivos

Interface de E/S em bloco



\ovalbox {\texttt{\textbf{oskit\_linux\_block\_open(const
char {*}, unsigned, oskit\_blkio\_t {*}{*});}}}

Esta função abre um dispositivo de bloco através de seu nome. O nome do dispositivo segue o padrão Linux [*]. Depois que o dispositivo é aberto, o objeto do tipo oskit_blkio_t é preenchido e pode ser utilizado para referenciar o dispositivo aberto. As versões simples e intermediária do BananaKernel utilizam apenas o primeiro disco IDE encontrado pela varredura inicial, ou seja, o disco "hda".



\ovalbox {
\begin{Bflushleft}
\texttt{\textbf{oskit\_blkio\_read(oskit\_blkio\_t...
 ...{\textbf{oskit\_off\_t, oskit\_size\_t, oskit\_size\_t {*});}}\end{Bflushleft}}



\ovalbox {
\begin{Bflushleft}
\texttt{\textbf{oskit\_blkio\_write(oskit\_blkio\_...
 ...{\textbf{oskit\_off\_t, oskit\_size\_t, oskit\_size\_t {*});}}\end{Bflushleft}}

As duas funções de leitura/escrita (oskit_blkio_read/oskit_blkio_write) funcionam de modo muito parecido com as funções de leitura/escrita de arquivos da linguagem C. Ambas recebem um ponteiro para a estrutura do dispositivo (previamente incializada com oskit_linux_block_open), um buffer com os dados que serão lidos/escritos, a quantidade de dados que devem ser lidos/escritos e um ponteiro para uma variável que receberá a quantidade de bytes realmente lidos/escritos.

Com relação ao tamanho e as proporções do dispositivo, existem duas funções:



\ovalbox {\texttt{\textbf{oskit\_blkio\_getblocksize(oskit\_blkio\_t
{*});}}}

Retorna o tamanho em bytes de cada setor no dispositivo. Este tamanho é muito utilizado para realizar operações de leitura/escrita, pois tais operações só podem ser realizadas em tamanhos múltiplos do tamanho do setor. Assim, cada operação de leitura/escrita deve ajustar o tamanho a ser lido/escrito para que a operação trabalhe apenas com múltiplos do tamanho do setor.



\ovalbox {\texttt{\textbf{oskit\_blkio\_getsize(oskit\_blkio\_t
{*});}}}

Retorna, em bytes , o tamanho total disponível no dispositivo.

Todas as funções do sistema de arquivos (versões simples e intermediária) foram implementadas com as funções apresentadas acima. Para informações mais detalhadas sobre estas e outras funções relacionadas, o leitor pode consultar a documentação completa do OSKit , [The Flux Research Group, 2002], capítulos 7 e 43.


next up previous contents index
Next: Biblioteca C mínima Up: Sistema de Arquivos Previous: Sistema de Arquivos
rafael@safecore.net