12345678910111213141516171819202122232425262728 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #pragma once
- #ifndef _LINUX_PFN_H_
- #define _LINUX_PFN_H_
- #include "page_types.h"
- #include "const.h"
- #ifndef __ASSEMBLY__
- #include "../types.h"
- /*
- * pfn_t: encapsulates a page-frame number that is optionally backed
- * by memmap (struct page). Whether a pfn_t has a 'struct page'
- * backing is indicated by flags in the high bits of the value.
- */
- typedef struct {
- u64 val;
- } pfn_t;
- #endif
- #define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK)
- #define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
- #define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
- #define PFN_PHYS(x) ((phys_addr_t)(x) << PAGE_SHIFT)
- #define PHYS_PFN(x) ((unsigned long)((x) >> PAGE_SHIFT))
- #endif
|