13839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o/* 23839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * getversion.c - Get a file version on an ext2 file system 33839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * 43839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * Copyright (C) 1993, 1994 Remy Card <card@masi.ibp.fr> 53839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * Laboratoire MASI, Institut Blaise Pascal 63839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * Universite Pierre et Marie Curie (Paris VI) 73839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * 8543547a52a20cb7e69d74921b2f691078fd55d83Theodore Ts'o * %Begin-Header% 9543547a52a20cb7e69d74921b2f691078fd55d83Theodore Ts'o * This file may be redistributed under the terms of the GNU Library 10543547a52a20cb7e69d74921b2f691078fd55d83Theodore Ts'o * General Public License, version 2. 11543547a52a20cb7e69d74921b2f691078fd55d83Theodore Ts'o * %End-Header% 123839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o */ 133839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o 143839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o/* 153839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * History: 163839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o * 93/10/30 - Creation 173839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o */ 183839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o 1950e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#if HAVE_ERRNO_H 203839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o#include <errno.h> 2150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#endif 223839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o#include <sys/ioctl.h> 233839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o 243839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o#include "e2p.h" 253839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o 263839e65723771b85975f4263102dd3ceec4523cTheodore Ts'oint getversion (int fd, unsigned long * version) 273839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o{ 2850e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#if HAVE_EXT2_IOCTLS 29cce382b12c2e0764b91d143ec6f9549c735f8f9eTheodore Ts'o int r, ver; 30efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 31cce382b12c2e0764b91d143ec6f9549c735f8f9eTheodore Ts'o r = ioctl (fd, EXT2_IOC_GETVERSION, &ver); 32cce382b12c2e0764b91d143ec6f9549c735f8f9eTheodore Ts'o *version = ver; 33e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall return r; 3450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#else /* ! HAVE_EXT2_IOCTLS */ 3550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o extern int errno; 3650e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o errno = EOPNOTSUPP; 3750e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o return -1; 3850e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o#endif /* ! HAVE_EXT2_IOCTLS */ 393839e65723771b85975f4263102dd3ceec4523cTheodore Ts'o} 40