File: fiemap-capable

package info (click to toggle)
coreutils 8.13-3.5
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 55,728 kB
  • sloc: sh: 213,455; ansic: 89,030; perl: 5,972; makefile: 1,695; yacc: 1,249; python: 25; sed: 16
file content (16 lines) | stat: -rw-r--r-- 512 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import struct, fcntl, sys, os

def sizeof(t): return struct.calcsize(t)
IOCPARM_MASK = 0x7f
IOC_OUT = 0x40000000
IOC_IN = 0x80000000
IOC_INOUT = (IOC_IN|IOC_OUT)
def _IOWR(x,y,t): return (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)

try:
    fd = os.open (len (sys.argv) == 2 and sys.argv[1] or '.', os.O_RDONLY)
    struct_fiemap = '=qqllll'
    FS_IOC_FIEMAP = _IOWR (ord ('f'), 11, struct_fiemap)
    fcntl.ioctl (fd, FS_IOC_FIEMAP, struct.pack(struct_fiemap, 0,~0,0,0,0,0))
except:
    sys.exit (1)