ladybird/Userland/Libraries/LibC/sys/device.h
Liav A 8fe74c7d57 LibC+Kernel: Move device-files related methods to a LibC header file
The Kernel/API directory in general shouldn't include userspace code,
but structure definitions that both are shared between the Kernel and
userspace.

LibC is the most appropriate place for these methods as they're already
included in the sys/sysmacros.h file to create a set of convenient
macros for these methods.
2023-09-15 11:05:25 -06:00

30 lines
614 B
C

/*
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Platform.h>
#include <sys/cdefs.h>
#include <sys/types.h>
__BEGIN_DECLS
static ALWAYS_INLINE dev_t serenity_dev_makedev(unsigned major, unsigned minor)
{
return (minor & 0xffu) | (major << 8u) | ((minor & ~0xffu) << 12u);
}
static ALWAYS_INLINE unsigned int serenity_dev_major(dev_t dev)
{
return (dev & 0xfff00u) >> 8u;
}
static ALWAYS_INLINE unsigned int serenity_dev_minor(dev_t dev)
{
return (dev & 0xffu) | ((dev >> 12u) & 0xfff00u);
}
__END_DECLS