~ubuntu-branches/ubuntu/dapper/linux-ntfs/dapper

« back to all changes in this revision

Viewing changes to include/ntfs/ntfstime.h

  • Committer: Bazaar Package Importer
  • Author(s): David Martínez Moreno
  • Date: 2005-11-08 20:20:23 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20051108202023-dpn4lutm8o0div8g
Tags: 1.12.1-1
* New upstream release (closes: #332930):
  - Fixed lots of memory leaks in the tools.
  - ntfsmount now uses the new API, and it has several fixes.
  - Support journals which have been modified by chkdsk.
  - New API for creating hard links, index handling, high-level creation and
    deletion of files and directories.
  - New utility ntfscmp (make extra) which compares two NTFS volumes and
    tell the differences. It's used for development, debugging, testing, etc.
  - Added robustness to several tools.
  - ntfsclone: fix saving by sectors during --rescue.
  - ntfsmount: Add 'locale' option and change interface to 'ntfsmount device
    mount_point'.
  - Fixed problem with kernel 2.4 and mkntfs.
  - Change ALL utilities to display the libntfs version they are running on.
    This should make debugging easier in the case that people are running
    mismatched utilities/library.
* This new release fixes problems with libfuse 2.4.0 (closes: #336357).
* Fixed a lot of typos in the manpages, kindly submitted by A Costa. Thanks!
  (closes: #336143, #336144, #336145, #336147, #336148).
* Fixed a couple of typos by me.
* debian/control: The SONAME of libntfs was bumped. Created new package
  (libntfs8) and removed the old one.
* debian/copyright: Updated the FSF postal address.
* Added debian/ntfsprogs.links in order to ship mkfs.ntfs and
  mount.ntfs-fuse.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * ntfstime.h - NTFS time related functions.  Part of the Linux-NTFS project.
 
3
 *
 
4
 * Copyright (c) 2005 Anton Altaparmakov
 
5
 * Copyright (c) 2005 Yura Pakhuchiy
 
6
 *
 
7
 * This program/include file is free software; you can redistribute it and/or
 
8
 * modify it under the terms of the GNU General Public License as published
 
9
 * by the Free Software Foundation; either version 2 of the License, or
 
10
 * (at your option) any later version.
 
11
 *
 
12
 * This program/include file is distributed in the hope that it will be
 
13
 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
 
14
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
 * GNU General Public License for more details.
 
16
 *
 
17
 * You should have received a copy of the GNU General Public License
 
18
 * along with this program (in the main directory of the Linux-NTFS
 
19
 * distribution in the file COPYING); if not, write to the Free Software
 
20
 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
21
 */
 
22
 
 
23
#ifndef _NTFS_NTFSTIME_H
 
24
#define _NTFS_NTFSTIME_H
 
25
 
 
26
#include <time.h>
 
27
 
 
28
#include "types.h"
 
29
 
 
30
#define NTFS_TIME_OFFSET ((s64)(369 * 365 + 89) * 24 * 3600 * 10000000)
 
31
 
 
32
/**
 
33
 * ntfs2utc - Convert an NTFS time to Unix time
 
34
 * @ntfs_time:  An NTFS time in 100ns units since 1601
 
35
 *
 
36
 * NTFS stores times as the number of 100ns intervals since January 1st 1601 at
 
37
 * 00:00 UTC.  This system will not suffer from Y2K problems until ~57000AD.
 
38
 *
 
39
 * Return:  n  A Unix time (number of seconds since 1970)
 
40
 */
 
41
static __inline__ time_t ntfs2utc(s64 ntfs_time)
 
42
{
 
43
        return (sle64_to_cpu(ntfs_time) - (NTFS_TIME_OFFSET)) / 10000000;
 
44
}
 
45
 
 
46
/**
 
47
 * utc2ntfs - Convert Linux time to NTFS time
 
48
 * @utc_time:  Linux time to convert to NTFS
 
49
 *
 
50
 * Convert the Linux time @utc_time to its corresponding NTFS time.
 
51
 *
 
52
 * Linux stores time in a long at present and measures it as the number of
 
53
 * 1-second intervals since 1st January 1970, 00:00:00 UTC.
 
54
 *
 
55
 * NTFS uses Microsoft's standard time format which is stored in a s64 and is
 
56
 * measured as the number of 100 nano-second intervals since 1st January 1601,
 
57
 * 00:00:00 UTC.
 
58
 *
 
59
 * Return:  n  An NTFS time (100ns units since Jan 1601)
 
60
 */
 
61
static __inline__ s64 utc2ntfs(time_t utc_time)
 
62
{
 
63
        /* Convert to 100ns intervals and then add the NTFS time offset. */
 
64
        return cpu_to_sle64((s64)utc_time * 10000000 + NTFS_TIME_OFFSET);
 
65
}
 
66
 
 
67
#endif /* _NTFS_NTFSTIME_H */