Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/gdrapi.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ typedef struct gdr_info_v2 {
unsigned mapped:1;
unsigned wc_mapping:1;
gdr_mapping_type_t mapping_type;
uint64_t paddr;
} gdr_info_v2_t;
typedef gdr_info_v2_t gdr_info_t;
int gdr_get_info_v2(gdr_t g, gdr_mh_t handle, gdr_info_v2_t *info);
Expand Down
4 changes: 4 additions & 0 deletions src/gdrapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,7 @@ int gdr_get_info_v2(gdr_t g, gdr_mh_t handle, gdr_info_v2_t *info)
info->mapped = gdr_is_mapped(params.mapping_type);
info->wc_mapping = (params.mapping_type == GDR_MAPPING_TYPE_WC);
info->mapping_type = params.mapping_type;
info->paddr = params.paddr;
}
}
else
Expand All @@ -400,6 +401,7 @@ int gdr_get_info_v2(gdr_t g, gdr_mh_t handle, gdr_info_v2_t *info)
info->mapped = params.mapped;
info->wc_mapping = params.wc_mapping;
info->mapping_type = params.mapped ? (params.wc_mapping ? GDR_MAPPING_TYPE_WC : GDR_MAPPING_TYPE_CACHING) : GDR_MAPPING_TYPE_NONE;
info->paddr = params.paddr;
}
}

Expand Down Expand Up @@ -1040,6 +1042,7 @@ typedef struct gdr_info_v1 {
uint32_t cycles_per_ms;
unsigned mapped:1;
unsigned wc_mapping:1;
uint64_t paddr;
} gdr_info_v1_t;

int gdr_get_info(gdr_t g, gdr_mh_t handle, gdr_info_v1_t *info)
Expand All @@ -1064,6 +1067,7 @@ int gdr_get_info(gdr_t g, gdr_mh_t handle, gdr_info_v1_t *info)
info->cycles_per_ms = params.tsc_khz;
info->mapped = params.mapped;
info->wc_mapping = params.wc_mapping;
info->paddr = params.paddr;
}

out:
Expand Down
2 changes: 2 additions & 0 deletions src/gdrdrv/gdrdrv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1145,6 +1145,7 @@ static int gdrdrv_get_info(gdr_info_t *info, void __user *_params)
params.tsc_khz = mr->tsc_khz;
params.mapped = gdr_mr_is_mapped(mr);
params.wc_mapping = (mr->cpu_mapping_type == GDR_MR_WC);
params.paddr = mr->page_table->pages[0]->physical_address;

gdr_put_mr_read(mr);

Expand Down Expand Up @@ -1183,6 +1184,7 @@ static int gdrdrv_get_info_v2(gdr_info_t *info, void __user *_params)
params.tm_cycles = mr->tm_cycles;
params.tsc_khz = mr->tsc_khz;
params.mapping_type = mr->cpu_mapping_type;
params.paddr = mr->page_table->pages[0]->physical_address;

gdr_put_mr_read(mr);

Expand Down
2 changes: 2 additions & 0 deletions src/gdrdrv/gdrdrv.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ struct GDRDRV_IOC_GET_INFO_PARAMS
__u64 tm_cycles;
__u32 mapped;
__u32 wc_mapping;
__u64 paddr;
};

#define GDRDRV_IOC_GET_INFO _IOWR(GDRDRV_IOCTL, 4, struct GDRDRV_IOC_GET_INFO_PARAMS *)
Expand All @@ -126,6 +127,7 @@ struct GDRDRV_IOC_GET_INFO_V2_PARAMS
__u32 tsc_khz;
__u64 tm_cycles;
__u32 mapping_type;
__u64 paddr;
};

#define GDRDRV_IOC_GET_INFO_V2 _IOWR(GDRDRV_IOCTL, 5, struct GDRDRV_IOC_GET_INFO_V2_PARAMS *)
Expand Down