2012-04-04 15 views
5

W programie C, w jaki sposób powiedzieć jądru linux do TRIM bloku na dysku SSD? Przypuszczam, że muszę do open() urządzenia i fcntl() to coś, ale co? Musi być ogólna (tzn. Pracować z różnymi dyskami SSD).jak TRIM zablokować dysk SSD?

Uwaga: na urządzeniu nie ma systemu plików ext4, tylko dane nieprzetworzone.

Odpowiedz

6

Zostanie wysłany jako IOCATADELETE. Coś takiego:

//header - may already be defined 
#define IOCATADELETE _IOW('a', 104, off_t[2]) 

//code 
int fd = open("/dev/abc", O_RDWR | O_DIRECT); 
off_t ioarg[2]; 
ioarg[0] = 0; //block number 
ioarg[1] = 0; //size 
ioctl(fd, IOCATADELETE, ioarg); 
close(fd); 
+0

dzięki, to jest to, czego potrzebowałem – Nulik

+0

Co to jest "104"? Czy jest to liczba polecenia TRIM, czy składa się z wielu liczb? –

Powiązane problemy