source: MondoRescue/branches/2.2.5/mindi-busybox/e2fsprogs/old_e2fsprogs/ext2fs/getsectsize.c@ 1765

Last change on this file since 1765 was 1765, checked in by Bruno Cornec, 16 years ago

Update to busybox 1.7.2

  • Property svn:eol-style set to native
File size: 1.0 KB
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * getsectsize.c --- get the sector size of a device.
4 *
5 * Copyright (C) 1995, 1995 Theodore Ts'o.
6 * Copyright (C) 2003 VMware, Inc.
7 *
8 * %Begin-Header%
9 * This file may be redistributed under the terms of the GNU Public
10 * License.
11 * %End-Header%
12 */
13
14#include <stdio.h>
15#if HAVE_UNISTD_H
16#include <unistd.h>
17#endif
18#if HAVE_ERRNO_H
19#include <errno.h>
20#endif
21#include <fcntl.h>
22#ifdef HAVE_LINUX_FD_H
23#include <sys/ioctl.h>
24#include <linux/fd.h>
25#endif
26
27#if defined(__linux__) && defined(_IO) && !defined(BLKSSZGET)
28#define BLKSSZGET _IO(0x12,104)/* get block device sector size */
29#endif
30
31#include "ext2_fs.h"
32#include "ext2fs.h"
33
34/*
35 * Returns the number of blocks in a partition
36 */
37errcode_t ext2fs_get_device_sectsize(const char *file, int *sectsize)
38{
39 int fd;
40
41#ifdef CONFIG_LFS
42 fd = open64(file, O_RDONLY);
43#else
44 fd = open(file, O_RDONLY);
45#endif
46 if (fd < 0)
47 return errno;
48
49#ifdef BLKSSZGET
50 if (ioctl(fd, BLKSSZGET, sectsize) >= 0) {
51 close(fd);
52 return 0;
53 }
54#endif
55 *sectsize = 0;
56 close(fd);
57 return 0;
58}
Note: See TracBrowser for help on using the repository browser.