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