forked from Bananymous/banan-os
Kernel: Remove get_unix_timestamp from SystemTimer
Kernel now uses the percise real_time() and time_since_boot()
This commit is contained in:
parent
008c777a9f
commit
e74fdbc55b
|
@ -25,10 +25,9 @@ namespace Kernel
|
|||
virtual uint64_t ms_since_boot() const override;
|
||||
virtual timespec time_since_boot() const override;
|
||||
|
||||
void sleep(uint64_t) const;
|
||||
void sleep(uint64_t ms) const;
|
||||
|
||||
uint64_t get_unix_timestamp() const;
|
||||
timespec get_real_time() const;
|
||||
timespec real_time() const;
|
||||
|
||||
private:
|
||||
SystemTimer() = default;
|
||||
|
|
|
@ -384,16 +384,16 @@ namespace Kernel
|
|||
if (error_or.error().get_error_code() != ENOENT)
|
||||
return error_or.error();
|
||||
|
||||
uint64_t current_time = SystemTimer::get().get_unix_timestamp();
|
||||
timespec current_time = SystemTimer::get().real_time();
|
||||
|
||||
Ext2::Inode ext2_inode;
|
||||
ext2_inode.mode = mode;
|
||||
ext2_inode.uid = uid;
|
||||
ext2_inode.size = 0;
|
||||
ext2_inode.atime = current_time;
|
||||
ext2_inode.ctime = current_time;
|
||||
ext2_inode.mtime = current_time;
|
||||
ext2_inode.dtime = current_time;
|
||||
ext2_inode.atime = current_time.tv_sec;
|
||||
ext2_inode.ctime = current_time.tv_sec;
|
||||
ext2_inode.mtime = current_time.tv_sec;
|
||||
ext2_inode.dtime = current_time.tv_sec;
|
||||
ext2_inode.gid = gid;
|
||||
ext2_inode.links_count = 1;
|
||||
ext2_inode.blocks = 0;
|
||||
|
|
|
@ -17,10 +17,10 @@ namespace Kernel
|
|||
: m_uid(credentials.euid())
|
||||
, m_gid(credentials.egid())
|
||||
{
|
||||
uint64_t current_time = SystemTimer::get().get_unix_timestamp();
|
||||
m_atime = { .tv_sec = current_time, .tv_nsec = 0 };
|
||||
m_mtime = { .tv_sec = current_time, .tv_nsec = 0 };
|
||||
m_ctime = { .tv_sec = current_time, .tv_nsec = 0 };
|
||||
timespec current_time = SystemTimer::get().real_time();
|
||||
m_atime = current_time;
|
||||
m_mtime = current_time;
|
||||
m_ctime = current_time;
|
||||
}
|
||||
|
||||
void Pipe::clone_writing()
|
||||
|
@ -57,8 +57,7 @@ namespace Kernel
|
|||
memmove(m_buffer.data(), m_buffer.data() + to_copy, m_buffer.size() - to_copy);
|
||||
MUST(m_buffer.resize(m_buffer.size() - to_copy));
|
||||
|
||||
uint64_t current_time = SystemTimer::get().get_unix_timestamp();
|
||||
m_atime = { .tv_sec = current_time, .tv_nsec = 0 };
|
||||
m_atime = SystemTimer::get().real_time();
|
||||
|
||||
m_semaphore.unblock();
|
||||
|
||||
|
@ -76,9 +75,9 @@ namespace Kernel
|
|||
TRY(m_buffer.resize(old_size + count));
|
||||
memcpy(m_buffer.data() + old_size, buffer, count);
|
||||
|
||||
uint64_t current_time = SystemTimer::get().get_unix_timestamp();
|
||||
m_mtime = { .tv_sec = current_time, .tv_nsec = 0 };
|
||||
m_ctime = { .tv_sec = current_time, .tv_nsec = 0 };
|
||||
timespec current_time = SystemTimer::get().real_time();
|
||||
m_mtime = current_time;
|
||||
m_ctime = current_time;
|
||||
|
||||
m_semaphore.unblock();
|
||||
|
||||
|
|
|
@ -23,10 +23,7 @@ namespace Kernel
|
|||
RamInode::RamInode(RamFileSystem& fs, mode_t mode, uid_t uid, gid_t gid)
|
||||
: m_fs(fs)
|
||||
{
|
||||
uint64_t current_unix_time = SystemTimer::get().get_unix_timestamp();
|
||||
timespec current_timespec;
|
||||
current_timespec.tv_sec = current_unix_time;
|
||||
current_timespec.tv_nsec = 0;
|
||||
timespec current_time = SystemTimer::get().real_time();
|
||||
|
||||
m_inode_info.ino = fs.next_ino();
|
||||
m_inode_info.mode = mode;
|
||||
|
@ -34,9 +31,9 @@ namespace Kernel
|
|||
m_inode_info.uid = uid;
|
||||
m_inode_info.gid = gid;
|
||||
m_inode_info.size = 0;
|
||||
m_inode_info.atime = current_timespec;
|
||||
m_inode_info.mtime = current_timespec;
|
||||
m_inode_info.ctime = current_timespec;
|
||||
m_inode_info.atime = current_time;
|
||||
m_inode_info.mtime = current_time;
|
||||
m_inode_info.ctime = current_time;
|
||||
m_inode_info.blksize = fs.blksize();
|
||||
m_inode_info.blocks = 0;
|
||||
m_inode_info.dev = 0;
|
||||
|
|
|
@ -811,9 +811,12 @@ namespace Kernel
|
|||
{
|
||||
case CLOCK_MONOTONIC:
|
||||
{
|
||||
uint64_t time_ms = SystemTimer::get().ms_since_boot();
|
||||
tp->tv_sec = time_ms / 1000;
|
||||
tp->tv_nsec = (time_ms % 1000) * 1000000;
|
||||
*tp = SystemTimer::get().time_since_boot();
|
||||
break;
|
||||
}
|
||||
case CLOCK_REALTIME:
|
||||
{
|
||||
*tp = SystemTimer::get().real_time();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -74,12 +74,7 @@ namespace Kernel
|
|||
dwarnln("sleep woke {} ms too soon", wake_time - ms_since_boot());
|
||||
}
|
||||
|
||||
uint64_t SystemTimer::get_unix_timestamp() const
|
||||
{
|
||||
return m_boot_time + ms_since_boot() / 1000;
|
||||
}
|
||||
|
||||
timespec SystemTimer::get_real_time() const
|
||||
timespec SystemTimer::real_time() const
|
||||
{
|
||||
auto result = time_since_boot();
|
||||
result.tv_sec += m_boot_time;
|
||||
|
|
Loading…
Reference in New Issue