Serenity Operating System
1/*
2 * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/Platform.h>
10#include <sys/cdefs.h>
11#include <sys/types.h>
12
13__BEGIN_DECLS
14
15static ALWAYS_INLINE dev_t serenity_dev_makedev(unsigned major, unsigned minor)
16{
17 return (minor & 0xffu) | (major << 8u) | ((minor & ~0xffu) << 12u);
18}
19
20static ALWAYS_INLINE unsigned int serenity_dev_major(dev_t dev)
21{
22 return (dev & 0xfff00u) >> 8u;
23}
24
25static ALWAYS_INLINE unsigned int serenity_dev_minor(dev_t dev)
26{
27 return (dev & 0xffu) | ((dev >> 12u) & 0xfff00u);
28}
29
30__END_DECLS