Device.h 614 B

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