pt_state
static inline bool amdv1pt_can_have_leaf(const struct pt_state *pts)
static inline unsigned int pt_table_item_lg2sz(const struct pt_state *pts);
amdv1pt_entry_num_contig_lg2(const struct pt_state *pts)
static inline unsigned int amdv1pt_num_items_lg2(const struct pt_state *pts)
static inline pt_vaddr_t amdv1pt_possible_sizes(const struct pt_state *pts)
static inline enum pt_entry_type amdv1pt_load_entry_raw(struct pt_state *pts)
amdv1pt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa,
static inline bool amdv1pt_install_table(struct pt_state *pts,
static inline void amdv1pt_attr_from_entry(const struct pt_state *pts,
static inline void amdv1pt_clear_entries(struct pt_state *pts,
static inline bool amdv1pt_entry_is_write_dirty(const struct pt_state *pts)
static inline void amdv1pt_entry_make_write_clean(struct pt_state *pts)
static inline bool amdv1pt_entry_make_write_dirty(struct pt_state *pts)
static inline pt_oaddr_t amdv1pt_table_pa(const struct pt_state *pts)
static inline pt_oaddr_t amdv1pt_entry_oa(const struct pt_state *pts)
static inline bool riscvpt_can_have_leaf(const struct pt_state *pts)
static inline unsigned int pt_table_item_lg2sz(const struct pt_state *pts);
riscvpt_entry_num_contig_lg2(const struct pt_state *pts)
static inline unsigned int riscvpt_num_items_lg2(const struct pt_state *pts)
riscvpt_contig_count_lg2(const struct pt_state *pts)
static inline enum pt_entry_type riscvpt_load_entry_raw(struct pt_state *pts)
riscvpt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa,
static inline bool riscvpt_install_table(struct pt_state *pts,
static inline void riscvpt_attr_from_entry(const struct pt_state *pts,
static inline pt_oaddr_t riscvpt_table_pa(const struct pt_state *pts)
static inline pt_oaddr_t riscvpt_entry_oa(const struct pt_state *pts)
vtdss_pt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa,
static inline bool vtdss_pt_install_table(struct pt_state *pts,
static inline void vtdss_pt_attr_from_entry(const struct pt_state *pts,
static inline bool vtdss_pt_entry_is_write_dirty(const struct pt_state *pts)
static inline void vtdss_pt_entry_make_write_clean(struct pt_state *pts)
static inline bool vtdss_pt_entry_make_write_dirty(struct pt_state *pts)
static inline pt_oaddr_t vtdss_pt_table_pa(const struct pt_state *pts)
static inline pt_oaddr_t vtdss_pt_entry_oa(const struct pt_state *pts)
static inline bool vtdss_pt_can_have_leaf(const struct pt_state *pts)
static inline unsigned int vtdss_pt_num_items_lg2(const struct pt_state *pts)
static inline enum pt_entry_type vtdss_pt_load_entry_raw(struct pt_state *pts)
static inline unsigned int x86_64_pt_num_items_lg2(const struct pt_state *pts)
static inline enum pt_entry_type x86_64_pt_load_entry_raw(struct pt_state *pts)
x86_64_pt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa,
static inline bool x86_64_pt_install_table(struct pt_state *pts,
static inline void x86_64_pt_attr_from_entry(const struct pt_state *pts,
static inline pt_oaddr_t x86_64_pt_table_pa(const struct pt_state *pts)
static inline pt_oaddr_t x86_64_pt_entry_oa(const struct pt_state *pts)
static inline bool x86_64_pt_can_have_leaf(const struct pt_state *pts)
struct pt_state pts = pt_init(range, level, table);
struct pt_state pts = pt_init_top(&range);
struct pt_state pts = { .range = &top_range,
static inline unsigned int compute_best_pgsize(struct pt_state *pts,
struct pt_state pts = pt_init(range, level, table);
static void flush_writes_range(const struct pt_state *pts,
static void record_dirty(struct pt_state *pts,
struct pt_state pts = pt_init(range, level, table);
static void flush_writes_item(const struct pt_state *pts)
struct pt_state pts = pt_init(range, level, table);
struct pt_state pts = pt_init(range, level, table);
static inline struct pt_table_p *table_alloc(const struct pt_state *parent_pts,
struct pt_state child_pts =
static inline int pt_iommu_new_table(struct pt_state *pts,
const struct pt_state *pts,
static int clear_contig(const struct pt_state *start_pts,
struct pt_state pts =
struct pt_state pts = pt_init(range, level, table);
const struct pt_state *pts)
struct pt_state pts = pt_init(range, level, table);
struct pt_state pts = pt_init(range, level, table);
struct pt_state pts = pt_init_top(&top_range);
struct pt_state *pts, void *arg),
static void test_lvl_table_ptr(struct kunit *test, struct pt_state *pts,
void (*fn)(struct kunit *test, struct pt_state *pts, void *arg);
static void test_lvl_radix(struct kunit *test, struct pt_state *pts, void *arg)
struct pt_state pts = pt_init(range, level, table);
static unsigned int safe_pt_num_items_lg2(const struct pt_state *pts)
struct pt_state top_pts = pt_init_top(&top_range);
static void test_lvl_possible_sizes(struct kunit *test, struct pt_state *pts,
static void sweep_all_pgsizes(struct kunit *test, struct pt_state *pts,
struct pt_state sub_pts = *pts;
static void test_lvl_entry_oa(struct kunit *test, struct pt_state *pts,
static void test_lvl_attr_from_entry(struct kunit *test, struct pt_state *pts,
static void test_lvl_dirty(struct kunit *test, struct pt_state *pts, void *arg)
static void test_lvl_sw_bit_leaf(struct kunit *test, struct pt_state *pts,
static void test_lvl_sw_bit_table(struct kunit *test, struct pt_state *pts,
struct pt_state pts = pt_init(range, level, table);
static inline bool pt_entry_is_write_dirty(const struct pt_state *pts);
static inline unsigned int pt_entry_num_contig_lg2(const struct pt_state *pts);
static inline pt_oaddr_t pt_entry_oa(const struct pt_state *pts);
static inline unsigned int pt_entry_oa_lg2sz(const struct pt_state *pts)
static inline pt_oaddr_t pt_entry_oa_exact(const struct pt_state *pts)
static inline void pt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa,
static inline bool pt_install_table(struct pt_state *pts, pt_oaddr_t table_pa,
static inline pt_oaddr_t pt_item_oa(const struct pt_state *pts);
static inline enum pt_entry_type pt_load_entry_raw(struct pt_state *pts);
static inline unsigned int pt_num_items_lg2(const struct pt_state *pts);
static inline pt_vaddr_t pt_possible_sizes(const struct pt_state *pts);
static inline unsigned int pt_table_item_lg2sz(const struct pt_state *pts);
static inline unsigned int pt_table_oa_lg2sz(const struct pt_state *pts)
static inline pt_oaddr_t pt_table_pa(const struct pt_state *pts);
static inline struct pt_table_p *pt_table_ptr(const struct pt_state *pts)
static inline bool pt_test_sw_bit_acquire(struct pt_state *pts,
static inline void pt_set_sw_bit_release(struct pt_state *pts,
static inline void pt_load_entry(struct pt_state *pts)
static inline void pt_attr_from_entry(const struct pt_state *pts,
static inline bool pt_can_have_leaf(const struct pt_state *pts);
static inline bool pt_can_have_table(const struct pt_state *pts)
static inline void pt_clear_entries(struct pt_state *pts,
static inline bool pt_entry_make_write_dirty(struct pt_state *pts);
static inline void pt_entry_make_write_clean(struct pt_state *pts);
static inline bool pt_table_install64(struct pt_state *pts, u64 table_entry)
static inline bool pt_table_install32(struct pt_state *pts, u32 table_entry)
static __always_inline bool pts_feature(const struct pt_state *pts,
static inline bool pt_check_install_leaf_args(struct pt_state *pts,
static inline pt_oaddr_t pt_item_oa(const struct pt_state *pts)
static inline pt_oaddr_t pt_entry_oa(const struct pt_state *pts)
static inline unsigned short pt_contig_count_lg2(const struct pt_state *pts);
static inline pt_vaddr_t pt_possible_sizes(const struct pt_state *pts)
static inline void pt_clear_entries64(struct pt_state *pts,
static inline void pt_clear_entries32(struct pt_state *pts,
static inline void pt_clear_entries(struct pt_state *pts,
static inline bool pt_test_sw_bit_acquire(struct pt_state *pts,
static inline void pt_set_sw_bit_release(struct pt_state *pts,
static inline unsigned int pt_table_item_lg2sz(const struct pt_state *pts)
static inline bool pt_test_sw_bit_acquire(struct pt_state *pts,
static inline void pt_set_sw_bit_release(struct pt_state *pts,
static inline bool pt_check_install_leaf_args(struct pt_state *pts,
static inline unsigned int pt_entry_num_contig_lg2(const struct pt_state *pts)
static inline unsigned short pt_contig_count_lg2(const struct pt_state *pts)
static inline bool pt_entry_is_write_dirty(const struct pt_state *pts)
static inline void pt_entry_make_write_clean(struct pt_state *pts)
static inline bool pt_entry_make_write_dirty(struct pt_state *pts)
static inline unsigned int pt_range_to_index(const struct pt_state *pts)
static inline unsigned int pt_range_to_end_index(const struct pt_state *pts)
static inline void _pt_iter_first(struct pt_state *pts)
static inline bool _pt_iter_load(struct pt_state *pts)
static inline void pt_next_entry(struct pt_state *pts)
static inline enum pt_entry_type pt_load_single_entry(struct pt_state *pts)
struct pt_state pts = { .range = &range, .level = range.top_level };
static __always_inline struct pt_state
struct pt_state pts = {
static __always_inline struct pt_state pt_init_top(struct pt_range *range)
static __always_inline int pt_descend(struct pt_state *pts, void *arg,
static __always_inline int pt_walk_descend(const struct pt_state *pts,
pt_walk_descend_all(const struct pt_state *parent_pts, pt_level_fn_t fn,
static inline struct pt_range pt_range_slice(const struct pt_state *pts,
struct pt_state pts = pt_init_top(&range);
static inline void pt_index_to_va(struct pt_state *pts)
static inline void _pt_advance(struct pt_state *pts,
static inline bool pt_entry_fully_covered(const struct pt_state *pts,