RAM DISK TASK
Popis: Ramdisk task pracuje se ètyømi blokovými zaøízeními - Ram_Dev, Mem_Dev, Kmem_Dev a Null_Dev. Ram_Dev obsahuje bloky samotného Ramdisku, Mem_Dev zpøístupòuje celou pamìť systému, Kmem_Dev je napojen na tabulku procesù. Ramdisk task používá zprávy Dev_Read, Dev_Write a Dev_Ioctl. Popis tìchto zpráv je uveden níže.
mail to: Petr Beremlijski
Stav: Kompilovatelné, hotové.
Ram disk task reaguje na tyto zprávy (zprávy jsou typu mess_devio):
M_TYPE |
DEVICE |
PROC_NR |
COUNT |
POSITION |
ADDRESS |
DEV_READ |
device |
proc_nr |
1 |
block_nr |
buf_ptr |
DEV_WRITE |
device |
proc_nr |
1 |
block_nr |
buf_ptr |
DEV_IOCTL |
device |
proc_nr |
request |
arg |
Další popis: Device
Popis zpráv:
Device - urèuje minor device, používá ètyøi zaøízení:
RAM_DEV (minor device number je 0) - zpøístupòuje bloky samotného Ram disku
MEM_DEV (minor device number je 1) - zpøístupòuje bloky celé pamìti systému
KMEM_DEV (minor device number je 2) - zpøístupòuje tabulku procesù, pro zaøízení KMEM_DEV je povolena jenom zpráva DEV_READ
NULL_DEV (minor device number je 3) - data zapisovaná na toto zaøízení se vyhodí, pøi ètení vrací nulový poèet naètených blokù
Proc_nr - èíslo procesu posílajícího zprávu
Count - u zprávy DEV_READ a DEV_WRITE se musí zadat 1 (= poèet ètených nebo zapisovaných blokù), u zprávy DEV_IOCTL má význam kódu požadavku
Position - pozice v rámci zaøízení (tj. èíslo bloku v daném zaøízení)
Address - adresa pamìti odkud (resp. kam) jsou data pøenášena, u zprávy DEV_IOCTL znamená adresu argumentù
Popis odpovìdí na zprávy:
Jako odpovìï je zasílána zpráva typu TASK_REPLY, která v REP_STATUS vrací buï poèet naètených, èi zapsaných blokù (kladné èíslo) nebo èíslo chyby (záporné èíslo).
Jednotlivé zdrojáky obsahují:
Memory.c - obsahuje tyto funkce:
Mem_pub.h - obsahuje konstanty pro minor device