|
@@ -1630,3 +1630,63 @@ typedef union pal_vm_info_1_u {
|
|
max_itr_entry : 8,
|
|
max_itr_entry : 8,
|
|
max_unique_tcs : 8,
|
|
max_unique_tcs : 8,
|
|
num_tc_levels : 8;
|
|
num_tc_levels : 8;
|
|
|
|
+ } pal_vm_info_1_s;
|
|
|
|
+} pal_vm_info_1_u_t;
|
|
|
|
+
|
|
|
|
+#define PAL_MAX_PURGES 0xFFFF /* all ones is means unlimited */
|
|
|
|
+
|
|
|
|
+typedef union pal_vm_info_2_u {
|
|
|
|
+ u64 pvi2_val;
|
|
|
|
+ struct {
|
|
|
|
+ u64 impl_va_msb : 8,
|
|
|
|
+ rid_size : 8,
|
|
|
|
+ max_purges : 16,
|
|
|
|
+ reserved : 32;
|
|
|
|
+ } pal_vm_info_2_s;
|
|
|
|
+} pal_vm_info_2_u_t;
|
|
|
|
+
|
|
|
|
+/* Get summary information about the virtual memory characteristics of the processor
|
|
|
|
+ * implementation.
|
|
|
|
+ */
|
|
|
|
+static inline s64
|
|
|
|
+ia64_pal_vm_summary (pal_vm_info_1_u_t *vm_info_1, pal_vm_info_2_u_t *vm_info_2)
|
|
|
|
+{
|
|
|
|
+ struct ia64_pal_retval iprv;
|
|
|
|
+ PAL_CALL(iprv, PAL_VM_SUMMARY, 0, 0, 0);
|
|
|
|
+ if (vm_info_1)
|
|
|
|
+ vm_info_1->pvi1_val = iprv.v0;
|
|
|
|
+ if (vm_info_2)
|
|
|
|
+ vm_info_2->pvi2_val = iprv.v1;
|
|
|
|
+ return iprv.status;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+typedef union pal_vp_info_u {
|
|
|
|
+ u64 pvi_val;
|
|
|
|
+ struct {
|
|
|
|
+ u64 index: 48, /* virtual feature set info */
|
|
|
|
+ vmm_id: 16; /* feature set id */
|
|
|
|
+ } pal_vp_info_s;
|
|
|
|
+} pal_vp_info_u_t;
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Returns information about virtual processor features
|
|
|
|
+ */
|
|
|
|
+static inline s64
|
|
|
|
+ia64_pal_vp_info (u64 feature_set, u64 vp_buffer, u64 *vp_info, u64 *vmm_id)
|
|
|
|
+{
|
|
|
|
+ struct ia64_pal_retval iprv;
|
|
|
|
+ PAL_CALL(iprv, PAL_VP_INFO, feature_set, vp_buffer, 0);
|
|
|
|
+ if (vp_info)
|
|
|
|
+ *vp_info = iprv.v0;
|
|
|
|
+ if (vmm_id)
|
|
|
|
+ *vmm_id = iprv.v1;
|
|
|
|
+ return iprv.status;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+typedef union pal_itr_valid_u {
|
|
|
|
+ u64 piv_val;
|
|
|
|
+ struct {
|
|
|
|
+ u64 access_rights_valid : 1,
|
|
|
|
+ priv_level_valid : 1,
|
|
|
|
+ dirty_bit_valid : 1,
|
|
|
|
+ mem_attr_valid : 1,
|