diff --git a/MEukaron/Include/Kernel/captbl.h b/MEukaron/Include/Kernel/captbl.h index 46a5532..123bccc 100644 --- a/MEukaron/Include/Kernel/captbl.h +++ b/MEukaron/Include/Kernel/captbl.h @@ -3,7 +3,11 @@ Filename : captbl.h Author : pry Date : 01/04/2017 Licence : LGPL v3+; see COPYING for details. -Description : The header of type table. +Description : The header of type table. All the branches in these macros are + pretty much optimized with RME_LIKELY and (mainly )RME_UNLIKELY. + Due to the huge penalty of a wrong hint, only error handling in + headers, synchronous invocation activation and synchronous invocation + returning are heavily optimized. ******************************************************************************/ /* Defines *******************************************************************/ @@ -114,10 +118,10 @@ while(0) do \ { \ /* See if the capability is frozen */ \ - if(((CAP)->Head.Type_Ref&RME_CAP_FROZEN)!=0) \ + if(RME_UNLIKELY(((CAP)->Head.Type_Ref&RME_CAP_FROZEN)!=0)) \ return RME_ERR_CAP_FROZEN; \ /* See if this capability allows such operations */ \ - if(((CAP)->Head.Flags&(FLAG))!=(FLAG)) \ + if(RME_UNLIKELY(((CAP)->Head.Flags&(FLAG))!=(FLAG))) \ return RME_ERR_CAP_FLAG; \ } \ while(0) @@ -127,41 +131,41 @@ while(0) do \ { \ /* See if the creation of such capability is allowed */ \ - if(((CAP)->Head.Flags&(FLAG))!=(FLAG)) \ + if(RME_UNLIKELY(((CAP)->Head.Flags&(FLAG))!=(FLAG))) \ return RME_ERR_CAP_FLAG; \ /* The end is always aligned to 256 bytes in the kernel, and does not include the ending byte */ \ - if(((CAP)->Start>(START))||((CAP)->End<((START)+(SIZE)))) \ + if(RME_UNLIKELY(((CAP)->Start>(START))||((CAP)->End<((START)+(SIZE))))) \ return RME_ERR_CAP_FLAG; \ } \ while(0) -/* Defrost a frozen cap */ +/* Defrost a frozen cap - we do not check failure because if we fail, someone have done it for us */ #define RME_CAP_DEFROST(CAP,TEMP) \ do \ { \ __RME_Comp_Swap(&((CAP)->Head.Type_Ref),&(TEMP),(TEMP)&(~((ptr_t)RME_CAP_FROZEN))); \ } \ while(0) - + /* Checks to be done before deleting */ #define RME_CAP_DEL_CHECK(CAP,TEMP,TYPE) \ do \ { \ (TEMP)=(CAP)->Head.Type_Ref; \ - /* See if the slot is frozen, and its cap must be not zero */ \ - if(((TEMP)&RME_CAP_FROZEN)!=0) \ + /* See if the slot is frozen, and its cap must be non-zero */ \ + if(RME_UNLIKELY(((TEMP)&RME_CAP_FROZEN)!=0)) \ return RME_ERR_CAP_FROZEN; \ /* See if we are in the creation/delegation process - This frozen flag is set by the creator */ \ - if(RME_CAP_TYPE(TEMP)==RME_CAP_NOP) \ + if(RME_UNLIKELY(RME_CAP_TYPE(TEMP)==RME_CAP_NOP)) \ return RME_ERR_CAP_NULL; \ /* See if the cap type is correct. Only deletion checks type, while removing does not */ \ - if(RME_CAP_TYPE(TEMP)!=(TYPE)) \ + if(RME_UNLIKELY(RME_CAP_TYPE(TEMP)!=(TYPE))) \ return RME_ERR_CAP_TYPE; \ /* See if the slot is quiescent */ \ - if(RME_CAP_QUIE((CAP)->Head.Timestamp)==0) \ + if(RME_UNLIKELY(RME_CAP_QUIE((CAP)->Head.Timestamp)==0)) \ return RME_ERR_CAP_QUIE; \ /* To use deletion, we must be an unreferenced root */ \ - if((RME_CAP_REF(TEMP)!=0)||(((CAP)->Head.Parent)!=0)) \ + if(RME_UNLIKELY((RME_CAP_REF(TEMP)!=0)||(((CAP)->Head.Parent)!=0))) \ { \ /* We defrost the cap and return. Need cas, in case two competing deletions happen */ \ RME_CAP_DEFROST(CAP,TEMP); \ @@ -175,17 +179,17 @@ while(0) do \ { \ (TEMP)=(CAP)->Head.Type_Ref; \ - /* See if the slot is frozen, and its cap must be not zero */ \ - if(((TEMP)&RME_CAP_FROZEN)!=0) \ + /* See if the slot is frozen, and its cap must be non-zero */ \ + if(RME_UNLIKELY(((TEMP)&RME_CAP_FROZEN)!=0)) \ return RME_ERR_CAP_FROZEN; \ /* See if we are in the creation/delegation process - This frozen flag is set by the creator */ \ - if(RME_CAP_TYPE(TEMP)==RME_CAP_NOP) \ + if(RME_UNLIKELY(RME_CAP_TYPE(TEMP)==RME_CAP_NOP)) \ return RME_ERR_CAP_NULL; \ /* See if the slot is quiescent */ \ - if(RME_CAP_QUIE((CAP)->Head.Timestamp)==0) \ + if(RME_UNLIKELY(RME_CAP_QUIE((CAP)->Head.Timestamp)==0)) \ return RME_ERR_CAP_QUIE; \ /* To use removal, we must be an unreferenced child */ \ - if((RME_CAP_REF(TEMP)!=0)||(((CAP)->Head.Parent)==0)) \ + if(RME_UNLIKELY((RME_CAP_REF(TEMP)!=0)||(((CAP)->Head.Parent)==0))) \ { \ /* We defrost the cap and return. Need cas, in case two competing removals happen */ \ RME_CAP_DEFROST(CAP,TEMP); \ @@ -199,7 +203,7 @@ while(0) do \ { \ /* If this fails, then it means that somebody have deleted/removed it first */ \ - if(__RME_Comp_Swap(&((CAP)->Head.Type_Ref),&(TEMP),0)==0) \ + if(RME_UNLIKELY(__RME_Comp_Swap(&((CAP)->Head.Type_Ref),&(TEMP),0)==0)) \ return RME_ERR_CAP_NULL; \ } \ while(0) @@ -210,7 +214,7 @@ do \ { \ /* Check if anything is there. If there is nothing there, the Type_Ref must be 0 */ \ (TEMP)=RME_CAP_TYPEREF(RME_CAP_NOP,0); \ - if(__RME_Comp_Swap(&((CAP)->Head.Type_Ref),&(TEMP),RME_CAP_FROZEN)==0) \ + if(RME_UNLIKELY(__RME_Comp_Swap(&((CAP)->Head.Type_Ref),&(TEMP),RME_CAP_FROZEN)==0)) \ return RME_ERR_CAP_EXIST; \ } \ while(0) @@ -220,7 +224,7 @@ while(0) do \ { \ /* Check if the captbl is over range */ \ - if((CAP_NUM)>=((CAPTBL)->Entry_Num)) \ + if(RME_UNLIKELY((CAP_NUM)>=((CAPTBL)->Entry_Num))) \ return RME_ERR_CAP_RANGE; \ /* Get the slot position */ \ (PARAM)=&(RME_CAP_GETOBJ((CAPTBL),TYPE)[(CAP_NUM)]); \ @@ -235,35 +239,35 @@ do \ if(((CAP_NUM)&RME_CAPID_2L)==0) \ { \ /* Check if the captbl is over range */ \ - if((CAP_NUM)>=((CAPTBL)->Entry_Num)) \ + if(RME_UNLIKELY((CAP_NUM)>=((CAPTBL)->Entry_Num))) \ return RME_ERR_CAP_RANGE; \ /* Get the cap slot and check the type */ \ (PARAM)=(TYPE)(&RME_CAP_GETOBJ(CAPTBL,struct RME_Cap_Struct*)[(CAP_NUM)]); \ - if(RME_CAP_TYPE((PARAM)->Head.Type_Ref)!=(CAP_TYPE)) \ + if(RME_UNLIKELY(RME_CAP_TYPE((PARAM)->Head.Type_Ref)!=(CAP_TYPE))) \ return RME_ERR_CAP_TYPE; \ } \ /* Yes, this is a 2-level cap */ \ else \ { \ /* Check if the cap to potential captbl is over range */ \ - if(RME_CAP_H(CAP_NUM)>=((CAPTBL)->Entry_Num)) \ + if(RME_UNLIKELY(RME_CAP_H(CAP_NUM)>=((CAPTBL)->Entry_Num))) \ return RME_ERR_CAP_RANGE; \ /* Get the cap slot */ \ (PARAM)=(TYPE)(&RME_CAP_GETOBJ(CAPTBL,struct RME_Cap_Captbl*)[RME_CAP_H(CAP_NUM)]); \ \ /* See if the captbl is frozen for deletion or removal */ \ - if(((PARAM)->Head.Type_Ref&RME_CAP_FROZEN)!=0) \ + if(RME_UNLIKELY(((PARAM)->Head.Type_Ref&RME_CAP_FROZEN)!=0)) \ return RME_ERR_CAP_FROZEN; \ /* See if this is a captbl */ \ - if(RME_CAP_TYPE((PARAM)->Head.Type_Ref)!=RME_CAP_CAPTBL) \ + if(RME_UNLIKELY(RME_CAP_TYPE((PARAM)->Head.Type_Ref)!=RME_CAP_CAPTBL)) \ return RME_ERR_CAP_TYPE; \ \ /* Check if the 2nd-layer captbl is over range */ \ - if(RME_CAP_L(CAP_NUM)>=(((struct RME_Cap_Captbl*)(PARAM))->Entry_Num)) \ + if(RME_UNLIKELY(RME_CAP_L(CAP_NUM)>=(((struct RME_Cap_Captbl*)(PARAM))->Entry_Num))) \ return RME_ERR_CAP_RANGE; \ /* Get the cap slot and check the type */ \ (PARAM)=(TYPE)(&RME_CAP_GETOBJ(PARAM,struct RME_Cap_Struct*)[RME_CAP_L(CAP_NUM)]); \ - if(RME_CAP_TYPE((PARAM)->Head.Type_Ref)!=(CAP_TYPE)) \ + if(RME_UNLIKELY(RME_CAP_TYPE((PARAM)->Head.Type_Ref)!=(CAP_TYPE))) \ return RME_ERR_CAP_TYPE; \ } \ } \ diff --git a/MEukaron/Include/Kernel/kernel.h b/MEukaron/Include/Kernel/kernel.h index c612f99..50503ab 100644 --- a/MEukaron/Include/Kernel/kernel.h +++ b/MEukaron/Include/Kernel/kernel.h @@ -95,7 +95,7 @@ Description : The header of kernel system call path. * Possible categories of context switch includes synchronous invocation and thread switch. */ #define RME_SWITCH_RETURN(REG,RETVAL) \ { \ - if((RETVAL)<0) \ + if(RME_UNLIKELY((RETVAL)<0)) \ __RME_Set_Syscall_Retval((REG),(RETVAL)); \ \ return; \ @@ -123,7 +123,7 @@ Description : The header of kernel system call path. #define RME_ASSERT(X) \ do \ { \ - if((X)==0) \ + if(RME_UNLIKELY((X)==0)) \ { \ RME_PRINTK_S((s8*)"\r\n***\r\nKernel panic - not syncing:\r\n"); \ RME_PRINTK_S((s8*)__FILE__); \ diff --git a/MEukaron/Include/Kernel/prcthd.h b/MEukaron/Include/Kernel/prcthd.h index 16cae6a..f208f38 100644 --- a/MEukaron/Include/Kernel/prcthd.h +++ b/MEukaron/Include/Kernel/prcthd.h @@ -49,7 +49,7 @@ Description : The header of page table. do \ { \ /* Check if exceeded maximum time or overflowed */ \ - if((((DST)+(AMOUNT))>=RME_THD_MAX_TIME)||(((DST)+(AMOUNT))<(DST))) \ + if(RME_UNLIKELY((((DST)+(AMOUNT))>=RME_THD_MAX_TIME)||(((DST)+(AMOUNT))<(DST)))) \ return RME_ERR_PTH_OVERFLOW; \ } \ while(0); @@ -150,8 +150,8 @@ struct RME_Thd_Regs { /* The register set - architectural specific */ struct RME_Reg_Struct Reg; - /* The co-processor/peripheral context - architectural specific. This usually - * contains the FPU data */ + /* The co-processor/peripheral context - architecture specific. + * This usually contains the FPU data */ struct RME_Cop_Struct Cop_Reg; }; diff --git a/MEukaron/Include/Platform/CortexM/platform_cmx.h b/MEukaron/Include/Platform/CortexM/platform_cmx.h index 1dcb944..2683cdb 100644 --- a/MEukaron/Include/Platform/CortexM/platform_cmx.h +++ b/MEukaron/Include/Platform/CortexM/platform_cmx.h @@ -84,6 +84,17 @@ typedef s32 ret_t; #define EXTERN extern /* Compiler "inline" keyword setting */ #define INLINE __forceinline +/* Compiler likely & unlikely setting */ +#ifdef likely +#define RME_LIKELY(X) (likely(X)) +#else +#define RME_LIKELY(X) (X) +#endif +#ifdef unlikely +#define RME_UNLIKELY(X) (unlikely(X)) +#else +#define RME_UNLIKELY(X) (X) +#endif /* Number of CPUs in the system */ #define RME_CPU_NUM 1 /* The order of bits in one CPU machine word */ diff --git a/MEukaron/Include/Platform/X64/platform_x64.h b/MEukaron/Include/Platform/X64/platform_x64.h index edb57da..3d90068 100644 --- a/MEukaron/Include/Platform/X64/platform_x64.h +++ b/MEukaron/Include/Platform/X64/platform_x64.h @@ -95,6 +95,17 @@ typedef s64 ret_t; #define EXTERN extern /* Compiler "inline" keyword setting */ #define INLINE inline +/* Compiler likely & unlikely setting */ +#ifdef likely +#define RME_LIKELY(X) (likely(X)) +#else +#define RME_LIKELY(X) (X) +#endif +#ifdef unlikely +#define RME_UNLIKELY(X) (unlikely(X)) +#else +#define RME_UNLIKELY(X) (X) +#endif /* Number of CPUs in the system - max. 4096 ones are supported */ #define RME_CPU_NUM 256 /* The order of bits in one CPU machine word */ @@ -223,7 +234,7 @@ typedef s64 ret_t; #define RME_X64_MMU_KERN_PDE (RME_X64_MMU_P|RME_X64_MMU_PDE_SUP|RME_X64_MMU_RW|RME_X64_MMU_G) /* MMU definitions */ -/* Write info to MMU */ +/* Write info to MMU - no longer used because we have PCID */ #define RME_X64_CR3_PCD (1<<4) #define RME_X64_CR3_PWT (1<<3) @@ -812,8 +823,10 @@ struct RME_X64_Features /* Page table registration table */ struct __RME_X64_Pgreg { - /* How many child page tables does this page table have? */ - ptr_t Child_Cnt; + /* What is the PCID of this page table? - This can be set through kernel function caps */ + u32 PCID; + /* How many child page tables does this page table have? - this can never overflow */ + u32 Child_Cnt; /* How many parent page tables does this page table have? */ ptr_t Parent_Cnt; }; @@ -867,6 +880,8 @@ static volatile struct RME_X64_IOAPIC_Info RME_X64_IOAPIC_Info[8]; static volatile ptr_t RME_X64_LAPIC_Addr; /* The processor features */ static volatile struct RME_X64_Features RME_X64_Feature; +/* The PCID counter */ +static volatile ptr_t RME_X64_PCID_Inc; /* Translate the flags into X64 specific ones - the STATIC bit will never be * set thus no need to consider about it here. The flag bits order is shown below: diff --git a/MEukaron/Kernel/captbl.c b/MEukaron/Kernel/captbl.c index 4ee6f69..80f3d03 100644 --- a/MEukaron/Kernel/captbl.c +++ b/MEukaron/Kernel/captbl.c @@ -166,7 +166,6 @@ ret_t _RME_Captbl_Boot_Crt(struct RME_Cap_Captbl* Captbl, cid_t Cap_Captbl_Crt, /* Check if the target captbl is not frozen and allows such operations */ RME_CAP_CHECK(Captbl_Op,RME_CAPTBL_FLAG_CRT); - /* Get the cap slot */ RME_CAPTBL_GETSLOT(Captbl_Op,Cap_Crt,struct RME_Cap_Captbl*,Captbl_Crt); /* Take the slot if possible */ diff --git a/MEukaron/Kernel/kernel.c b/MEukaron/Kernel/kernel.c index 0921d4c..e7d9c90 100644 --- a/MEukaron/Kernel/kernel.c +++ b/MEukaron/Kernel/kernel.c @@ -292,11 +292,21 @@ void _RME_Svc_Handler(struct RME_Reg_Struct* Reg) ptr_t Param[3]; ret_t Retval; ptr_t CPUID; + ptr_t Svc_Num; struct RME_Inv_Struct* Inv_Top; struct RME_Cap_Captbl* Captbl; - + /* Get the system call parameters from the system call */ __RME_Get_Syscall_Param(Reg, &Svc, &Capid, Param); + Svc_Num=Svc&0x3F; + + /* Fast path - synchronous invocation returning */ + if(Svc_Num==RME_SVC_INV_RET) + { + Retval=_RME_Inv_Ret(Reg /* struct RME_Reg_Struct* Reg */, + 0 /* ptr_t Fault_Flag */); + RME_SWITCH_RETURN(Reg,Retval); + } /* Get our current capability table. No need to check whether it is frozen * because it can't be deleted anyway */ @@ -306,29 +316,24 @@ void _RME_Svc_Handler(struct RME_Reg_Struct* Reg) Captbl=RME_Cur_Thd[CPUID]->Sched.Proc->Captbl; else Captbl=Inv_Top->Proc->Captbl; + + /* Fast path - synchronous invocation activation */ + if(Svc_Num==RME_SVC_INV_ACT) + { + Retval=_RME_Inv_Act(Captbl, Reg /* struct RME_Reg_Struct* Reg */, + Param[0] /* cid_t Cap_Inv */, + Param[1] /* ptr_t Param */); + RME_SWITCH_RETURN(Reg,Retval); + } /* See if this operation can potentially cause a register set switch. All the * functions that may cause a register set switch is listed here. The behavior * of these functions shall be: If the function is successful, they shall * perform the return value saving on proper register stacks by themselves; - * if the function fails, it should not conduct such return value saving. */ - switch((Svc&0x3F)) + * if the function fails, it should not conduct such return value saving. These + * paths are less optimized than synchronous invocation, but are still optimized */ + switch(Svc_Num) { - /* Return from invocation */ - case RME_SVC_INV_RET: - { - Retval=_RME_Inv_Ret(Reg /* struct RME_Reg_Struct* Reg */, - 0 /* ptr_t Fault_Flag */); - RME_SWITCH_RETURN(Reg,Retval); - } - /* Activate an invocation */ - case RME_SVC_INV_ACT: - { - Retval=_RME_Inv_Act(Captbl, Reg /* struct RME_Reg_Struct* Reg */, - Param[0] /* cid_t Cap_Inv */, - Param[1] /* ptr_t Param */); - RME_SWITCH_RETURN(Reg,Retval); - } /* Send to a signal endpoint */ case RME_SVC_SIG_SND: { @@ -390,7 +395,7 @@ void _RME_Svc_Handler(struct RME_Reg_Struct* Reg) } /* It is guaranteed that these functions will never cause a context switch */ - switch((Svc&0x3F)) + switch(Svc_Num) { /* Capability table */ case RME_SVC_CAPTBL_CRT: diff --git a/MEukaron/Kernel/siginv.c b/MEukaron/Kernel/siginv.c index 3a8a900..bd83f6b 100644 --- a/MEukaron/Kernel/siginv.c +++ b/MEukaron/Kernel/siginv.c @@ -512,6 +512,9 @@ ret_t _RME_Inv_Crt(struct RME_Cap_Captbl* Captbl, cid_t Cap_Captbl, /* Fill in the structure */ Inv_Struct=(struct RME_Inv_Struct*)Vaddr; Inv_Struct->Proc=RME_CAP_GETOBJ(Proc_Op,struct RME_Proc_Struct*); + Inv_Struct->Active=0; + /* By default we do not return on fault */ + Inv_Struct->Fault_Ret_Flag=0; /* Increase the reference count of the process structure(Not the process capability) */ __RME_Fetch_Add(&(RME_CAP_GETOBJ(Proc_Op, struct RME_Proc_Struct*)->Refcnt), 1); @@ -568,7 +571,7 @@ ret_t _RME_Inv_Del(struct RME_Cap_Captbl* Captbl, cid_t Cap_Captbl, cid_t Cap_In RME_CAP_REMDEL(Inv_Del,Type_Ref); /* Dereference the process */ __RME_Fetch_Add(&(Inv_Struct->Proc->Refcnt), -1); - /* Try to depopulate the area - this must be successful */ + /* Try to clear the area - this must be successful */ RME_ASSERT(_RME_Kotbl_Erase((ptr_t)Inv_Struct,RME_INV_SIZE)!=0); return 0; @@ -622,26 +625,25 @@ ret_t _RME_Inv_Act(struct RME_Cap_Captbl* Captbl, { struct RME_Cap_Inv* Inv_Op; struct RME_Inv_Struct* Inv_Struct; - struct RME_Inv_Struct* Inv_Top; struct RME_Thd_Struct* Thd_Struct; ptr_t Active; - + /* Get the capability slot */ RME_CAPTBL_GETCAP(Captbl,Cap_Inv,RME_CAP_INV,struct RME_Cap_Inv*,Inv_Op); /* Check if the target cap is not frozen and allows such operations */ RME_CAP_CHECK(Inv_Op,RME_INV_FLAG_ACT); - + /* Get the invocation struct */ Inv_Struct=RME_CAP_GETOBJ(Inv_Op,struct RME_Inv_Struct*); /* See if we are currently active - If yes, we can activate it again */ Active=Inv_Struct->Active; - if(Active!=0) + if(RME_UNLIKELY(Active!=0)) return RME_ERR_SIV_ACT; /* Push this invocation stub capability into the current thread's invocation stack */ Thd_Struct=RME_Cur_Thd[RME_CPUID()]; /* Try to do CAS and activate it */ - if(__RME_Comp_Swap(&(Inv_Struct->Active),&Active,1)==0) + if(RME_UNLIKELY(__RME_Comp_Swap(&(Inv_Struct->Active),&Active,1)==0)) return RME_ERR_SIV_ACT; /* Save whatever is needed to return to the point - normally only SP and IP needed @@ -649,24 +651,15 @@ ret_t _RME_Inv_Act(struct RME_Cap_Captbl* Captbl, * user-level. We do not set the return value because it will be saved by SRET. * The coprocessor state will be consistent across the call */ __RME_Inv_Reg_Save(&(Inv_Struct->Ret), Reg); - Inv_Top=RME_INVSTK_TOP(Thd_Struct); /* Push this into the stack: insert after the thread list header */ __RME_List_Ins(&(Inv_Struct->Head),&(Thd_Struct->Inv_Stack),Thd_Struct->Inv_Stack.Next); /* Setup the register contents, and do the invocation */ __RME_Thd_Reg_Init(Inv_Struct->Entry, Inv_Struct->Stack, Reg); __RME_Inv_Reg_Init(Param, Reg); - /* Are we invoking into a new process? If yes, switch the page table */ - if(Inv_Top!=0) - { - if(RME_CAP_GETOBJ(Inv_Top->Proc->Pgtbl,ptr_t)!=RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)) - __RME_Pgtbl_Set(RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)); - } - else - { - if(RME_CAP_GETOBJ(Thd_Struct->Sched.Proc->Pgtbl,ptr_t)!=RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)) - __RME_Pgtbl_Set(RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)); - } + /* We are assuming that we are always invoking into a new process (why use synchronous + * invocation if you don't do so?). So we always switch page tables regardless */ + __RME_Pgtbl_Set(RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)); return 0; } @@ -685,17 +678,16 @@ ret_t _RME_Inv_Ret(struct RME_Reg_Struct* Reg, ptr_t Fault_Flag) { struct RME_Thd_Struct* Thd_Struct; struct RME_Inv_Struct* Inv_Struct; - struct RME_Inv_Struct* Inv_Top; ptr_t Retval; /* See if we can return; If we can, get the structure */ Thd_Struct=RME_Cur_Thd[RME_CPUID()]; Inv_Struct=RME_INVSTK_TOP(Thd_Struct); - if(Inv_Struct==0) + if(RME_UNLIKELY(Inv_Struct==0)) return RME_ERR_SIV_EMPTY; /* Is this return forced by a fault? If yes, check if we allow that */ - if((Fault_Flag!=0)&&(Inv_Struct->Fault_Ret_Flag==0)) + if(RME_UNLIKELY((Fault_Flag!=0)&&(Inv_Struct->Fault_Ret_Flag==0))) return RME_ERR_SIV_FAULT; /* Pop it from the stack */ @@ -707,27 +699,21 @@ ret_t _RME_Inv_Ret(struct RME_Reg_Struct* Reg, ptr_t Fault_Flag) * the return value of the invocation system call itself as well */ __RME_Inv_Reg_Restore(Reg, &(Inv_Struct->Ret)); __RME_Set_Inv_Retval(Reg, Retval); + /* We have successfully returned, set the invocation as inactive */ + Inv_Struct->Active=0; + /* Decide the system call's return value */ - if(Fault_Flag!=0) + if(RME_UNLIKELY(Fault_Flag!=0)) __RME_Set_Syscall_Retval(Reg, RME_ERR_SIV_FAULT); else __RME_Set_Syscall_Retval(Reg, 0); - /* Are we returning to a new process? If yes, switch the page table */ - Inv_Top=RME_INVSTK_TOP(Thd_Struct); - if(Inv_Top!=0) - { - if(RME_CAP_GETOBJ(Inv_Top->Proc->Pgtbl,ptr_t)!=RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)) - __RME_Pgtbl_Set(RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)); - } + /* Same assumptions as in invocation activation */ + Inv_Struct=RME_INVSTK_TOP(Thd_Struct); + if(Inv_Struct!=0) + __RME_Pgtbl_Set(RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)); else - { - if(RME_CAP_GETOBJ(Thd_Struct->Sched.Proc->Pgtbl,ptr_t)!=RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)) - __RME_Pgtbl_Set(RME_CAP_GETOBJ(Inv_Struct->Proc->Pgtbl,ptr_t)); - } - - /* We have successfully returned, set the invocation as inactive */ - Inv_Struct->Active=0; + __RME_Pgtbl_Set(RME_CAP_GETOBJ(Thd_Struct->Sched.Proc->Pgtbl,ptr_t)); return 0; } diff --git a/MEukaron/Platform/X64/platform_x64.c b/MEukaron/Platform/X64/platform_x64.c index dcd689f..7b06127 100644 --- a/MEukaron/Platform/X64/platform_x64.c +++ b/MEukaron/Platform/X64/platform_x64.c @@ -1102,6 +1102,8 @@ ptr_t __RME_Pgtbl_Kmem_Init(void) /* Now initialize the kernel object allocation table */ _RME_Kotbl_Init(RME_X64_Layout.Kotbl_Size/sizeof(ptr_t)); + /* Reset PCID counter */ + RME_X64_PCID_Inc=0; /* And the page table registration table as well */ Pgreg=(struct __RME_X64_Pgreg*)RME_X64_Layout.Pgreg_Start; @@ -1904,7 +1906,7 @@ Return : None. ******************************************************************************/ void __RME_Pgtbl_Set(ptr_t Pgtbl) { - __RME_X64_Pgtbl_Set(RME_X64_VA2PA(Pgtbl)); + __RME_X64_Pgtbl_Set(RME_X64_VA2PA(Pgtbl)|RME_X64_PGREG_POS(Pgtbl).PCID); } /* End Function:__RME_Pgtbl_Set **********************************************/ @@ -1964,6 +1966,8 @@ ptr_t __RME_Pgtbl_Init(struct RME_Cap_Pgtbl* Pgtbl_Op) { for(;Count<512;Count++) Ptr[Count]=RME_X64_Kpgt.PML4[Count-256]; + + RME_X64_PGREG_POS(Ptr).PCID=__RME_Fetch_Add(&RME_X64_PCID_Inc,1)&0xFFF; } else { @@ -1971,6 +1975,11 @@ ptr_t __RME_Pgtbl_Init(struct RME_Cap_Pgtbl* Pgtbl_Op) Ptr[Count]=0; } + /* Initialize its pgreg table to all zeros, except for the PCID, which + * always increases as we initializes a top-level */ + RME_X64_PGREG_POS(Ptr).Parent_Cnt=0; + RME_X64_PGREG_POS(Ptr).Child_Cnt=0; + return 0; } /* End Function:__RME_Pgtbl_Init *********************************************/ diff --git a/MEukaron/Platform/X64/platform_x64_asm.S b/MEukaron/Platform/X64/platform_x64_asm.S index 3f8d684..bfe00d4 100644 --- a/MEukaron/Platform/X64/platform_x64_asm.S +++ b/MEukaron/Platform/X64/platform_x64_asm.S @@ -243,6 +243,10 @@ __RME_X64_SMP_Boot_32: MOV %CR0,%EAX BTS $31,%EAX MOV %EAX,%CR0 + /* Enable PCID - CR4.PCIDE=1 FIXME: this made things slower - due to extra logic for PCID processing *//* + MOV %CR4,%EAX + BTS $17,%EAX + MOV %EAX,%CR4*/ /* shift to 64bit segment */ LJMP $8,$(Boot_Low_64-__RME_X64_Mboot_Header+__RME_X64_Mboot_Load_Addr) diff --git a/Project/ECLIPSE-GCC-X64/RME/.cproject b/Project/ECLIPSE-GCC-X64/RME/.cproject index 1d6bf00..44f6dbe 100644 --- a/Project/ECLIPSE-GCC-X64/RME/.cproject +++ b/Project/ECLIPSE-GCC-X64/RME/.cproject @@ -34,6 +34,10 @@ @@ -55,9 +59,6 @@ - - - diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/Kernel/subdir.mk b/Project/ECLIPSE-GCC-X64/RME/Debug/Kernel/subdir.mk index 34f2098..ea69b26 100644 --- a/Project/ECLIPSE-GCC-X64/RME/Debug/Kernel/subdir.mk +++ b/Project/ECLIPSE-GCC-X64/RME/Debug/Kernel/subdir.mk @@ -32,42 +32,42 @@ C_DEPS += \ Kernel/captbl.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Kernel/captbl.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' Kernel/kernel.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Kernel/kernel.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' Kernel/kotbl.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Kernel/kotbl.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' Kernel/pgtbl.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Kernel/pgtbl.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' Kernel/prcthd.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Kernel/prcthd.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' Kernel/siginv.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Kernel/siginv.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/Platform/subdir.mk b/Project/ECLIPSE-GCC-X64/RME/Debug/Platform/subdir.mk index 266a820..1a2a54d 100644 --- a/Project/ECLIPSE-GCC-X64/RME/Debug/Platform/subdir.mk +++ b/Project/ECLIPSE-GCC-X64/RME/Debug/Platform/subdir.mk @@ -21,7 +21,7 @@ C_DEPS += \ Platform/platform_x64.o: /media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/MEukaron/Platform/X64/platform_x64.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/RME b/Project/ECLIPSE-GCC-X64/RME/Debug/RME index 6e25520..c1b4024 100644 Binary files a/Project/ECLIPSE-GCC-X64/RME/Debug/RME and b/Project/ECLIPSE-GCC-X64/RME/Debug/RME differ diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/RME.map b/Project/ECLIPSE-GCC-X64/RME/Debug/RME.map index 3260435..6b2d048 100644 --- a/Project/ECLIPSE-GCC-X64/RME/Debug/RME.map +++ b/Project/ECLIPSE-GCC-X64/RME/Debug/RME.map @@ -29,7 +29,7 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Platform/platform_x64.o .note.GNU-stack 0x0000000000000000 0x0 ./Platform/platform_x64.o - .eh_frame 0x0000000000000000 0x508 ./Platform/platform_x64.o + .eh_frame 0x0000000000000000 0x528 ./Platform/platform_x64.o .group 0x0000000000000000 0x8 ./Kernel/captbl.o .group 0x0000000000000000 0x8 ./Kernel/captbl.o .group 0x0000000000000000 0x8 ./Kernel/captbl.o @@ -50,9 +50,9 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Kernel/captbl.o .group 0x0000000000000000 0x8 ./Kernel/captbl.o .group 0x0000000000000000 0x8 ./Kernel/captbl.o - .debug_macro 0x0000000000000000 0x59e ./Kernel/captbl.o + .debug_macro 0x0000000000000000 0x5aa ./Kernel/captbl.o .debug_macro 0x0000000000000000 0xd2 ./Kernel/captbl.o - .debug_macro 0x0000000000000000 0xb8 ./Kernel/captbl.o + .debug_macro 0x0000000000000000 0xc9 ./Kernel/captbl.o .debug_macro 0x0000000000000000 0x22 ./Kernel/captbl.o .debug_macro 0x0000000000000000 0x567 ./Kernel/captbl.o .debug_macro 0x0000000000000000 0x10c ./Kernel/captbl.o @@ -68,7 +68,7 @@ Discarded input sections .debug_macro 0x0000000000000000 0x2e ./Kernel/captbl.o .note.GNU-stack 0x0000000000000000 0x0 ./Kernel/captbl.o - .eh_frame 0x0000000000000000 0x248 ./Kernel/captbl.o + .eh_frame 0x0000000000000000 0x1d8 ./Kernel/captbl.o .group 0x0000000000000000 0x8 ./Kernel/kernel.o .group 0x0000000000000000 0x8 ./Kernel/kernel.o .group 0x0000000000000000 0x8 ./Kernel/kernel.o @@ -96,15 +96,15 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Kernel/kernel.o .group 0x0000000000000000 0x8 ./Kernel/kernel.o .group 0x0000000000000000 0x8 ./Kernel/kernel.o - .debug_macro 0x0000000000000000 0x59e ./Kernel/kernel.o + .debug_macro 0x0000000000000000 0x5aa ./Kernel/kernel.o .debug_macro 0x0000000000000000 0xd2 ./Kernel/kernel.o - .debug_macro 0x0000000000000000 0xb8 ./Kernel/kernel.o + .debug_macro 0x0000000000000000 0xc9 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x22 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x567 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x10c ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x580 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x22 ./Kernel/kernel.o - .debug_macro 0x0000000000000000 0xd7 ./Kernel/kernel.o + .debug_macro 0x0000000000000000 0xd8 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x58 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x28 ./Kernel/kernel.o .debug_macro 0x0000000000000000 0x6a ./Kernel/kernel.o @@ -124,7 +124,7 @@ Discarded input sections .debug_macro 0x0000000000000000 0x2f ./Kernel/kernel.o .note.GNU-stack 0x0000000000000000 0x0 ./Kernel/kernel.o - .eh_frame 0x0000000000000000 0x318 ./Kernel/kernel.o + .eh_frame 0x0000000000000000 0x300 ./Kernel/kernel.o .group 0x0000000000000000 0x8 ./Kernel/kotbl.o .group 0x0000000000000000 0x8 ./Kernel/kotbl.o .group 0x0000000000000000 0x8 ./Kernel/kotbl.o @@ -141,9 +141,9 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Kernel/kotbl.o .group 0x0000000000000000 0x8 ./Kernel/kotbl.o .group 0x0000000000000000 0x8 ./Kernel/kotbl.o - .debug_macro 0x0000000000000000 0x59e ./Kernel/kotbl.o + .debug_macro 0x0000000000000000 0x5aa ./Kernel/kotbl.o .debug_macro 0x0000000000000000 0xd2 ./Kernel/kotbl.o - .debug_macro 0x0000000000000000 0xb8 ./Kernel/kotbl.o + .debug_macro 0x0000000000000000 0xc9 ./Kernel/kotbl.o .debug_macro 0x0000000000000000 0x22 ./Kernel/kotbl.o .debug_macro 0x0000000000000000 0x567 ./Kernel/kotbl.o .debug_macro 0x0000000000000000 0x10c ./Kernel/kotbl.o @@ -180,15 +180,15 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Kernel/pgtbl.o .group 0x0000000000000000 0x8 ./Kernel/pgtbl.o .group 0x0000000000000000 0x8 ./Kernel/pgtbl.o - .debug_macro 0x0000000000000000 0x59e ./Kernel/pgtbl.o + .debug_macro 0x0000000000000000 0x5aa ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0xd2 ./Kernel/pgtbl.o - .debug_macro 0x0000000000000000 0xb8 ./Kernel/pgtbl.o + .debug_macro 0x0000000000000000 0xc9 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x22 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x567 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x10c ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x580 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x22 ./Kernel/pgtbl.o - .debug_macro 0x0000000000000000 0xd7 ./Kernel/pgtbl.o + .debug_macro 0x0000000000000000 0xd8 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x28 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x58 ./Kernel/pgtbl.o .debug_macro 0x0000000000000000 0x19 ./Kernel/pgtbl.o @@ -202,7 +202,7 @@ Discarded input sections .debug_macro 0x0000000000000000 0x2e ./Kernel/pgtbl.o .note.GNU-stack 0x0000000000000000 0x0 ./Kernel/pgtbl.o - .eh_frame 0x0000000000000000 0x368 ./Kernel/pgtbl.o + .eh_frame 0x0000000000000000 0x2e8 ./Kernel/pgtbl.o .group 0x0000000000000000 0x8 ./Kernel/prcthd.o .group 0x0000000000000000 0x8 ./Kernel/prcthd.o .group 0x0000000000000000 0x8 ./Kernel/prcthd.o @@ -230,15 +230,15 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Kernel/prcthd.o .group 0x0000000000000000 0x8 ./Kernel/prcthd.o .group 0x0000000000000000 0x8 ./Kernel/prcthd.o - .debug_macro 0x0000000000000000 0x59e ./Kernel/prcthd.o + .debug_macro 0x0000000000000000 0x5aa ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0xd2 ./Kernel/prcthd.o - .debug_macro 0x0000000000000000 0xb8 ./Kernel/prcthd.o + .debug_macro 0x0000000000000000 0xc9 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x22 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x567 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x10c ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x580 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x22 ./Kernel/prcthd.o - .debug_macro 0x0000000000000000 0xd7 ./Kernel/prcthd.o + .debug_macro 0x0000000000000000 0xd8 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x58 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x22 ./Kernel/prcthd.o .debug_macro 0x0000000000000000 0x28 ./Kernel/prcthd.o @@ -258,7 +258,7 @@ Discarded input sections .debug_macro 0x0000000000000000 0x2f ./Kernel/prcthd.o .note.GNU-stack 0x0000000000000000 0x0 ./Kernel/prcthd.o - .eh_frame 0x0000000000000000 0x7e8 ./Kernel/prcthd.o + .eh_frame 0x0000000000000000 0x678 ./Kernel/prcthd.o .group 0x0000000000000000 0x8 ./Kernel/siginv.o .group 0x0000000000000000 0x8 ./Kernel/siginv.o .group 0x0000000000000000 0x8 ./Kernel/siginv.o @@ -286,15 +286,15 @@ Discarded input sections .group 0x0000000000000000 0x8 ./Kernel/siginv.o .group 0x0000000000000000 0x8 ./Kernel/siginv.o .group 0x0000000000000000 0x8 ./Kernel/siginv.o - .debug_macro 0x0000000000000000 0x59e ./Kernel/siginv.o + .debug_macro 0x0000000000000000 0x5aa ./Kernel/siginv.o .debug_macro 0x0000000000000000 0xd2 ./Kernel/siginv.o - .debug_macro 0x0000000000000000 0xb8 ./Kernel/siginv.o + .debug_macro 0x0000000000000000 0xc9 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x22 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x567 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x10c ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x580 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x22 ./Kernel/siginv.o - .debug_macro 0x0000000000000000 0xd7 ./Kernel/siginv.o + .debug_macro 0x0000000000000000 0xd8 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x58 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x28 ./Kernel/siginv.o .debug_macro 0x0000000000000000 0x6a ./Kernel/siginv.o @@ -314,9 +314,9 @@ Discarded input sections .debug_macro 0x0000000000000000 0x35 ./Kernel/siginv.o .note.GNU-stack 0x0000000000000000 0x0 ./Kernel/siginv.o - .eh_frame 0x0000000000000000 0x378 ./Kernel/siginv.o + .eh_frame 0x0000000000000000 0x2c8 ./Kernel/siginv.o .group 0x0000000000000000 0x8 ./UVM.o - .debug_macro 0x0000000000000000 0x59e ./UVM.o + .debug_macro 0x0000000000000000 0x5aa ./UVM.o .note.GNU-stack 0x0000000000000000 0x0 ./UVM.o @@ -331,7 +331,7 @@ Linker script and memory map 0xffffffff80100000 . = 0xffffffff80100000 0xffffffff80100000 PROVIDE (begin, .) -.text 0xffffffff80100000 0x11e18d load address 0x0000000000100000 +.text 0xffffffff80100000 0x11e150 load address 0x0000000000100000 *platform_x64_asm.o(.text .rela.text .stub .text.* .gnu.linkonce.t.*) .text 0xffffffff80100000 0x10c7a2 ./Platform/platform_x64_asm.o 0xffffffff80100000 __RME_X64_Mboot_Header @@ -608,196 +608,194 @@ Linker script and memory map 0xffffffff8020c6fa SVC_Handler *(.text .rela.text .stub .text.* .gnu.linkonce.t.*) *fill* 0xffffffff8020c7a2 0xe - .text 0xffffffff8020c7b0 0x80dc ./Platform/platform_x64.o + .text 0xffffffff8020c7b0 0x818c ./Platform/platform_x64.o 0xffffffff80211310 __RME_Putchar 0xffffffff80211350 __RME_X64_LAPIC_Ack 0xffffffff80211370 __RME_X64_SMP_Init 0xffffffff80211550 __RME_X64_SMP_Tick 0xffffffff80211590 __RME_Low_Level_Init 0xffffffff80211f70 __RME_Pgtbl_Kmem_Init - 0xffffffff80212830 __RME_SMP_Low_Level_Init - 0xffffffff80212930 __RME_Boot - 0xffffffff80213c30 __RME_Reboot - 0xffffffff80213ca0 __RME_Shutdown - 0xffffffff80213d10 __RME_Get_Syscall_Param - 0xffffffff80213d40 __RME_Set_Syscall_Retval - 0xffffffff80213d50 __RME_Get_Inv_Retval - 0xffffffff80213d60 __RME_Set_Inv_Retval - 0xffffffff80213d70 __RME_Thd_Reg_Init - 0xffffffff80213dc0 __RME_Thd_Reg_Copy - 0xffffffff80213ea0 __RME_Thd_Cop_Init - 0xffffffff80213eb0 __RME_Thd_Cop_Save - 0xffffffff80213ec0 __RME_Thd_Cop_Restore - 0xffffffff80213ed0 __RME_Inv_Reg_Init - 0xffffffff80213ee0 __RME_Inv_Reg_Save - 0xffffffff80213f00 __RME_Inv_Reg_Restore - 0xffffffff80213f20 __RME_Kern_Func_Handler - 0xffffffff80213f30 __RME_X64_Fault_Handler - 0xffffffff802142c0 __RME_X64_Generic_Handler - 0xffffffff802142e0 __RME_Pgtbl_Set - 0xffffffff80214300 __RME_Pgtbl_Check - 0xffffffff80214350 __RME_Pgtbl_Init - 0xffffffff802143d0 __RME_Pgtbl_Del_Check - 0xffffffff80214420 __RME_Pgtbl_Page_Map - 0xffffffff802144c0 __RME_Pgtbl_Page_Unmap - 0xffffffff80214520 __RME_Pgtbl_Pgdir_Map - 0xffffffff80214600 __RME_Pgtbl_Pgdir_Unmap - 0xffffffff802146b0 __RME_Pgtbl_Lookup - 0xffffffff80214760 __RME_Pgtbl_Walk + 0xffffffff80212840 __RME_SMP_Low_Level_Init + 0xffffffff80212950 __RME_Boot + 0xffffffff80213c60 __RME_Reboot + 0xffffffff80213cd0 __RME_Shutdown + 0xffffffff80213d40 __RME_Get_Syscall_Param + 0xffffffff80213d70 __RME_Set_Syscall_Retval + 0xffffffff80213d80 __RME_Get_Inv_Retval + 0xffffffff80213d90 __RME_Set_Inv_Retval + 0xffffffff80213da0 __RME_Thd_Reg_Init + 0xffffffff80213df0 __RME_Thd_Reg_Copy + 0xffffffff80213ed0 __RME_Thd_Cop_Init + 0xffffffff80213ee0 __RME_Thd_Cop_Save + 0xffffffff80213ef0 __RME_Thd_Cop_Restore + 0xffffffff80213f00 __RME_Inv_Reg_Init + 0xffffffff80213f10 __RME_Inv_Reg_Save + 0xffffffff80213f30 __RME_Inv_Reg_Restore + 0xffffffff80213f50 __RME_Kern_Func_Handler + 0xffffffff80213f60 __RME_X64_Fault_Handler + 0xffffffff802142f0 __RME_X64_Generic_Handler + 0xffffffff80214310 __RME_Pgtbl_Set + 0xffffffff80214340 __RME_Pgtbl_Check + 0xffffffff80214390 __RME_Pgtbl_Init + 0xffffffff80214480 __RME_Pgtbl_Del_Check + 0xffffffff802144d0 __RME_Pgtbl_Page_Map + 0xffffffff80214570 __RME_Pgtbl_Page_Unmap + 0xffffffff802145d0 __RME_Pgtbl_Pgdir_Map + 0xffffffff802146b0 __RME_Pgtbl_Pgdir_Unmap + 0xffffffff80214760 __RME_Pgtbl_Lookup + 0xffffffff80214810 __RME_Pgtbl_Walk .text.unlikely - 0xffffffff8021488c 0x0 ./Platform/platform_x64.o - *fill* 0xffffffff8021488c 0x4 - .text.startup 0xffffffff80214890 0x2b ./Platform/platform_x64.o - 0xffffffff80214890 main - .rela.text 0xffffffff802148bb 0x0 ./Platform/platform_x64.o - *fill* 0xffffffff802148bb 0x5 - .text 0xffffffff802148c0 0xfac ./Kernel/captbl.o - 0xffffffff802148c0 _RME_Captbl_Boot_Init - 0xffffffff80214970 _RME_Captbl_Boot_Crt - 0xffffffff80214b40 _RME_Captbl_Crt - 0xffffffff80214e00 _RME_Captbl_Del - 0xffffffff802150e0 _RME_Captbl_Frz - 0xffffffff80215270 _RME_Captbl_Add - 0xffffffff802156a0 _RME_Captbl_Rem + 0xffffffff8021493c 0x0 ./Platform/platform_x64.o + *fill* 0xffffffff8021493c 0x4 + .text.startup 0xffffffff80214940 0x2b ./Platform/platform_x64.o + 0xffffffff80214940 main + .rela.text 0xffffffff8021496b 0x0 ./Platform/platform_x64.o + *fill* 0xffffffff8021496b 0x5 + .text 0xffffffff80214970 0xfc0 ./Kernel/captbl.o + 0xffffffff80214970 _RME_Captbl_Boot_Init + 0xffffffff80214a20 _RME_Captbl_Boot_Crt + 0xffffffff80214c10 _RME_Captbl_Crt + 0xffffffff80214ed0 _RME_Captbl_Del + 0xffffffff80215190 _RME_Captbl_Frz + 0xffffffff80215320 _RME_Captbl_Add + 0xffffffff80215760 _RME_Captbl_Rem .text.unlikely - 0xffffffff8021586c 0x0 ./Kernel/captbl.o - *fill* 0xffffffff8021586c 0x4 - .text 0xffffffff80215870 0x16e6 ./Kernel/kernel.o - 0xffffffff80215870 _RME_Clear - 0xffffffff80215aa0 _RME_Memcmp - 0xffffffff80215af0 _RME_Memcpy - 0xffffffff80215d40 _RME_Timestamp_Inc - 0xffffffff80215f10 _RME_Kern_Boot_Crt - 0xffffffff80216080 _RME_Kern_Act - 0xffffffff80216180 _RME_Kmem_Boot_Crt - 0xffffffff802164c0 _RME_Svc_Handler - 0xffffffff80216a00 _RME_Tick_SMP_Handler - 0xffffffff80216c70 _RME_Tick_Handler - 0xffffffff80216c80 RME_Kmain - 0xffffffff80216ce0 RME_Print_Int - 0xffffffff80216e60 RME_Print_Uint - 0xffffffff80216f20 RME_Print_String + 0xffffffff80215930 0x0 ./Kernel/captbl.o + .text 0xffffffff80215930 0x16f6 ./Kernel/kernel.o + 0xffffffff80215930 _RME_Clear + 0xffffffff80215b60 _RME_Memcmp + 0xffffffff80215bb0 _RME_Memcpy + 0xffffffff80215e00 _RME_Timestamp_Inc + 0xffffffff80215fe0 _RME_Kern_Boot_Crt + 0xffffffff80216150 _RME_Kern_Act + 0xffffffff80216250 _RME_Kmem_Boot_Crt + 0xffffffff80216580 _RME_Svc_Handler + 0xffffffff80216ad0 _RME_Tick_SMP_Handler + 0xffffffff80216d40 _RME_Tick_Handler + 0xffffffff80216d50 RME_Kmain + 0xffffffff80216db0 RME_Print_Int + 0xffffffff80216f30 RME_Print_Uint + 0xffffffff80216ff0 RME_Print_String .text.unlikely - 0xffffffff80216f56 0x0 ./Kernel/kernel.o - *fill* 0xffffffff80216f56 0xa - .text 0xffffffff80216f60 0x435 ./Kernel/kotbl.o - 0xffffffff80216f60 _RME_Kotbl_Init - 0xffffffff80216fa0 _RME_Kotbl_Mark - 0xffffffff802171d0 _RME_Kotbl_Erase + 0xffffffff80217026 0x0 ./Kernel/kernel.o + *fill* 0xffffffff80217026 0xa + .text 0xffffffff80217030 0x435 ./Kernel/kotbl.o + 0xffffffff80217030 _RME_Kotbl_Init + 0xffffffff80217070 _RME_Kotbl_Mark + 0xffffffff802172a0 _RME_Kotbl_Erase .text.unlikely - 0xffffffff80217395 0x0 ./Kernel/kotbl.o - *fill* 0xffffffff80217395 0xb - .text 0xffffffff802173a0 0x16b8 ./Kernel/pgtbl.o - 0xffffffff802173a0 _RME_Pgtbl_Boot_Crt - 0xffffffff80217780 _RME_Pgtbl_Boot_Con - 0xffffffff80217980 _RME_Pgtbl_Boot_Add - 0xffffffff80217ad0 _RME_Pgtbl_Crt - 0xffffffff80217f60 _RME_Pgtbl_Del - 0xffffffff80218240 _RME_Pgtbl_Add - 0xffffffff80218570 _RME_Pgtbl_Rem - 0xffffffff802186c0 _RME_Pgtbl_Con - 0xffffffff80218910 _RME_Pgtbl_Des + 0xffffffff80217465 0x0 ./Kernel/kotbl.o + *fill* 0xffffffff80217465 0xb + .text 0xffffffff80217470 0x16ad ./Kernel/pgtbl.o + 0xffffffff80217470 _RME_Pgtbl_Boot_Crt + 0xffffffff80217870 _RME_Pgtbl_Boot_Con + 0xffffffff80217a60 _RME_Pgtbl_Boot_Add + 0xffffffff80217bc0 _RME_Pgtbl_Crt + 0xffffffff80218090 _RME_Pgtbl_Del + 0xffffffff80218350 _RME_Pgtbl_Add + 0xffffffff80218650 _RME_Pgtbl_Rem + 0xffffffff802187a0 _RME_Pgtbl_Con + 0xffffffff802189d0 _RME_Pgtbl_Des .text.unlikely - 0xffffffff80218a58 0x0 ./Kernel/pgtbl.o - *fill* 0xffffffff80218a58 0x8 - .text 0xffffffff80218a60 0x40a1 ./Kernel/prcthd.o - 0xffffffff80218a60 __RME_List_Crt - 0xffffffff80218a70 __RME_List_Del - 0xffffffff80218a80 __RME_List_Ins - 0xffffffff80218a90 __RME_Thd_Fatal - 0xffffffff80218d70 _RME_Run_Ins - 0xffffffff80218de0 _RME_Run_Del - 0xffffffff80218e50 _RME_Run_High - 0xffffffff80218ef0 _RME_Run_Notif - 0xffffffff80218f20 _RME_Run_Swt - 0xffffffff80219010 _RME_Prcthd_Init - 0xffffffff80219090 _RME_Proc_Boot_Crt - 0xffffffff802195a0 _RME_Proc_Crt - 0xffffffff80219b00 _RME_Proc_Del - 0xffffffff80219dc0 _RME_Proc_Cpt - 0xffffffff8021a050 _RME_Proc_Pgt - 0xffffffff8021a2e0 _RME_Thd_Boot_Crt - 0xffffffff8021a690 _RME_Thd_Crt - 0xffffffff8021aae0 _RME_Thd_Del - 0xffffffff8021adb0 _RME_Thd_Exec_Set - 0xffffffff8021af50 _RME_Thd_Hyp_Set - 0xffffffff8021b080 _RME_Thd_Sched_Bind - 0xffffffff8021b300 _RME_Thd_Sched_Prio - 0xffffffff8021b710 _RME_Thd_Sched_Free - 0xffffffff8021bb80 _RME_Thd_Sched_Rcv - 0xffffffff8021bcf0 _RME_Thd_Time_Xfer - 0xffffffff8021c460 _RME_Thd_Swt + 0xffffffff80218b1d 0x0 ./Kernel/pgtbl.o + *fill* 0xffffffff80218b1d 0x3 + .text 0xffffffff80218b20 0x4030 ./Kernel/prcthd.o + 0xffffffff80218b20 __RME_List_Crt + 0xffffffff80218b30 __RME_List_Del + 0xffffffff80218b40 __RME_List_Ins + 0xffffffff80218b50 __RME_Thd_Fatal + 0xffffffff80218e60 _RME_Run_Ins + 0xffffffff80218ed0 _RME_Run_Del + 0xffffffff80218f40 _RME_Run_High + 0xffffffff80218fe0 _RME_Run_Notif + 0xffffffff80219010 _RME_Run_Swt + 0xffffffff80219100 _RME_Prcthd_Init + 0xffffffff80219180 _RME_Proc_Boot_Crt + 0xffffffff80219630 _RME_Proc_Crt + 0xffffffff80219b90 _RME_Proc_Del + 0xffffffff80219e40 _RME_Proc_Cpt + 0xffffffff8021a0a0 _RME_Proc_Pgt + 0xffffffff8021a300 _RME_Thd_Boot_Crt + 0xffffffff8021a6b0 _RME_Thd_Crt + 0xffffffff8021ab00 _RME_Thd_Del + 0xffffffff8021ae00 _RME_Thd_Exec_Set + 0xffffffff8021af90 _RME_Thd_Hyp_Set + 0xffffffff8021b0d0 _RME_Thd_Sched_Bind + 0xffffffff8021b330 _RME_Thd_Sched_Prio + 0xffffffff8021b740 _RME_Thd_Sched_Free + 0xffffffff8021bba0 _RME_Thd_Sched_Rcv + 0xffffffff8021bd10 _RME_Thd_Time_Xfer + 0xffffffff8021c480 _RME_Thd_Swt .text.unlikely - 0xffffffff8021cb01 0x0 ./Kernel/prcthd.o - *fill* 0xffffffff8021cb01 0xf - .text 0xffffffff8021cb10 0x167d ./Kernel/siginv.o - 0xffffffff8021cb10 _RME_Sig_Boot_Crt - 0xffffffff8021ccb0 _RME_Sig_Crt - 0xffffffff8021cf30 _RME_Sig_Del - 0xffffffff8021d210 _RME_Kern_Snd - 0xffffffff8021d320 _RME_Sig_Snd - 0xffffffff8021d520 _RME_Sig_Rcv - 0xffffffff8021d720 _RME_Inv_Crt - 0xffffffff8021da80 _RME_Inv_Del - 0xffffffff8021dd30 _RME_Inv_Set - 0xffffffff8021de30 _RME_Inv_Act - 0xffffffff8021e040 _RME_Inv_Ret + 0xffffffff8021cb50 0x0 ./Kernel/prcthd.o + .text 0xffffffff8021cb50 0x1600 ./Kernel/siginv.o + 0xffffffff8021cb50 _RME_Sig_Boot_Crt + 0xffffffff8021cd00 _RME_Sig_Crt + 0xffffffff8021cf70 _RME_Sig_Del + 0xffffffff8021d230 _RME_Kern_Snd + 0xffffffff8021d340 _RME_Sig_Snd + 0xffffffff8021d530 _RME_Sig_Rcv + 0xffffffff8021d740 _RME_Inv_Crt + 0xffffffff8021dac0 _RME_Inv_Del + 0xffffffff8021dd60 _RME_Inv_Set + 0xffffffff8021de60 _RME_Inv_Act + 0xffffffff8021e010 _RME_Inv_Ret .text.unlikely - 0xffffffff8021e18d 0x0 ./Kernel/siginv.o - .text 0xffffffff8021e18d 0x0 ./UVM.o + 0xffffffff8021e150 0x0 ./Kernel/siginv.o + .text 0xffffffff8021e150 0x0 ./UVM.o [!provide] PROVIDE (etext, .) -.iplt 0xffffffff8021e190 0x0 load address 0x000000000021e190 - .iplt 0xffffffff8021e190 0x0 ./Platform/platform_x64.o +.iplt 0xffffffff8021e150 0x0 load address 0x000000000021e150 + .iplt 0xffffffff8021e150 0x0 ./Platform/platform_x64.o -.rodata 0xffffffff8021e1a0 0x1ef8 load address 0x000000000021e1a0 +.rodata 0xffffffff8021e160 0x22c8 load address 0x000000000021e160 *(.rodata .rodata.* .gnu.linkonce.r.*) .rodata.str1.8 - 0xffffffff8021e1a0 0x270 ./Platform/platform_x64.o + 0xffffffff8021e160 0x270 ./Platform/platform_x64.o .rodata.str1.1 - 0xffffffff8021e410 0x6d4 ./Platform/platform_x64.o + 0xffffffff8021e3d0 0x6d4 ./Platform/platform_x64.o 0x6dc (size before relaxing) - *fill* 0xffffffff8021eae4 0x1c - .rodata 0xffffffff8021eb00 0x2c0 ./Platform/platform_x64.o + *fill* 0xffffffff8021eaa4 0x1c + .rodata 0xffffffff8021eac0 0x2c0 ./Platform/platform_x64.o .rodata.str1.8 - 0xffffffff8021edc0 0x51 ./Kernel/captbl.o + 0xffffffff8021ed80 0x51 ./Kernel/captbl.o 0x79 (size before relaxing) .rodata.str1.1 - 0xffffffff8021ee11 0x9 ./Kernel/captbl.o + 0xffffffff8021edd1 0x9 ./Kernel/captbl.o 0x25 (size before relaxing) - *fill* 0xffffffff8021ee1a 0x6 + *fill* 0xffffffff8021edda 0x6 .rodata.str1.8 - 0xffffffff8021ee20 0x51 ./Kernel/kernel.o + 0xffffffff8021ede0 0x51 ./Kernel/kernel.o 0x79 (size before relaxing) .rodata.str1.1 - 0xffffffff8021ee71 0x25 ./Kernel/kernel.o - *fill* 0xffffffff8021ee71 0x7 - .rodata 0xffffffff8021ee78 0x118 ./Kernel/kernel.o + 0xffffffff8021ee31 0x25 ./Kernel/kernel.o + *fill* 0xffffffff8021ee31 0x7 + .rodata 0xffffffff8021ee38 0x118 ./Kernel/kernel.o .rodata.str1.8 - 0xffffffff8021ef90 0x50 ./Kernel/pgtbl.o + 0xffffffff8021ef50 0x50 ./Kernel/pgtbl.o 0x78 (size before relaxing) .rodata.str1.1 - 0xffffffff8021efe0 0x9 ./Kernel/pgtbl.o - 0x25 (size before relaxing) - *fill* 0xffffffff8021efe9 0x7 + 0xffffffff8021efa0 0x25 ./Kernel/pgtbl.o .rodata.str1.8 - 0xffffffff8021eff0 0x51 ./Kernel/prcthd.o + 0xffffffff8021efa0 0x51 ./Kernel/prcthd.o 0x79 (size before relaxing) .rodata.str1.1 - 0xffffffff8021f041 0x25 ./Kernel/prcthd.o - *fill* 0xffffffff8021f041 0x7 + 0xffffffff8021eff1 0x9 ./Kernel/prcthd.o + 0x25 (size before relaxing) + *fill* 0xffffffff8021effa 0x6 .rodata.str1.8 - 0xffffffff8021f048 0x58 ./Kernel/siginv.o + 0xffffffff8021f000 0x58 ./Kernel/siginv.o 0x79 (size before relaxing) .rodata.str1.1 - 0xffffffff8021f0a0 0x25 ./Kernel/siginv.o - .rodata 0xffffffff8021f0a0 0xff8 ./UVM.o - 0xffffffff8021f0a0 UVM_Init + 0xffffffff8021f058 0x25 ./Kernel/siginv.o + *fill* 0xffffffff8021f058 0x8 + .rodata 0xffffffff8021f060 0x13c8 ./UVM.o + 0xffffffff8021f060 UVM_Init -.rela.dyn 0xffffffff80220098 0x0 load address 0x0000000000220098 - .rela.iplt 0xffffffff80220098 0x0 ./Platform/platform_x64.o +.rela.dyn 0xffffffff80220428 0x0 load address 0x0000000000220428 + .rela.iplt 0xffffffff80220428 0x0 ./Platform/platform_x64.o .rela.text.startup - 0xffffffff80220098 0x0 ./Platform/platform_x64.o + 0xffffffff80220428 0x0 ./Platform/platform_x64.o 0xffffffff80221000 . = ALIGN (0x1000) [!provide] PROVIDE (data, .) @@ -868,34 +866,34 @@ LOAD ./Kernel/siginv.o LOAD ./UVM.o OUTPUT(RME elf64-x86-64) -.debug_info 0x0000000000000000 0xfb0a - .debug_info 0x0000000000000000 0x6709 ./Platform/platform_x64.o - .debug_info 0x0000000000006709 0x9ad ./Kernel/captbl.o - .debug_info 0x00000000000070b6 0x1e52 ./Kernel/kernel.o - .debug_info 0x0000000000008f08 0x3d0 ./Kernel/kotbl.o - .debug_info 0x00000000000092d8 0x10e9 ./Kernel/pgtbl.o - .debug_info 0x000000000000a3c1 0x3e7c ./Kernel/prcthd.o - .debug_info 0x000000000000e23d 0x186d ./Kernel/siginv.o - .debug_info 0x000000000000faaa 0x60 ./UVM.o +.debug_info 0x0000000000000000 0xfaf4 + .debug_info 0x0000000000000000 0x6723 ./Platform/platform_x64.o + .debug_info 0x0000000000006723 0x9ad ./Kernel/captbl.o + .debug_info 0x00000000000070d0 0x1e61 ./Kernel/kernel.o + .debug_info 0x0000000000008f31 0x3d0 ./Kernel/kotbl.o + .debug_info 0x0000000000009301 0x1101 ./Kernel/pgtbl.o + .debug_info 0x000000000000a402 0x3e8e ./Kernel/prcthd.o + .debug_info 0x000000000000e290 0x1804 ./Kernel/siginv.o + .debug_info 0x000000000000fa94 0x60 ./UVM.o -.debug_abbrev 0x0000000000000000 0x12b2 - .debug_abbrev 0x0000000000000000 0x4cb ./Platform/platform_x64.o - .debug_abbrev 0x00000000000004cb 0x1bd ./Kernel/captbl.o - .debug_abbrev 0x0000000000000688 0x3bd ./Kernel/kernel.o - .debug_abbrev 0x0000000000000a45 0x100 ./Kernel/kotbl.o - .debug_abbrev 0x0000000000000b45 0x1db ./Kernel/pgtbl.o - .debug_abbrev 0x0000000000000d20 0x32c ./Kernel/prcthd.o - .debug_abbrev 0x000000000000104c 0x21e ./Kernel/siginv.o - .debug_abbrev 0x000000000000126a 0x48 ./UVM.o +.debug_abbrev 0x0000000000000000 0x12c0 + .debug_abbrev 0x0000000000000000 0x4d9 ./Platform/platform_x64.o + .debug_abbrev 0x00000000000004d9 0x1bd ./Kernel/captbl.o + .debug_abbrev 0x0000000000000696 0x3bd ./Kernel/kernel.o + .debug_abbrev 0x0000000000000a53 0x100 ./Kernel/kotbl.o + .debug_abbrev 0x0000000000000b53 0x1db ./Kernel/pgtbl.o + .debug_abbrev 0x0000000000000d2e 0x32c ./Kernel/prcthd.o + .debug_abbrev 0x000000000000105a 0x21e ./Kernel/siginv.o + .debug_abbrev 0x0000000000001278 0x48 ./UVM.o -.debug_loc 0x0000000000000000 0x1018f - .debug_loc 0x0000000000000000 0x2186 ./Platform/platform_x64.o - .debug_loc 0x0000000000002186 0x14f5 ./Kernel/captbl.o - .debug_loc 0x000000000000367b 0x2981 ./Kernel/kernel.o - .debug_loc 0x0000000000005ffc 0x9c8 ./Kernel/kotbl.o - .debug_loc 0x00000000000069c4 0x1f44 ./Kernel/pgtbl.o - .debug_loc 0x0000000000008908 0x5bca ./Kernel/prcthd.o - .debug_loc 0x000000000000e4d2 0x1cbd ./Kernel/siginv.o +.debug_loc 0x0000000000000000 0xf45d + .debug_loc 0x0000000000000000 0x2214 ./Platform/platform_x64.o + .debug_loc 0x0000000000002214 0x125c ./Kernel/captbl.o + .debug_loc 0x0000000000003470 0x28df ./Kernel/kernel.o + .debug_loc 0x0000000000005d4f 0x9c8 ./Kernel/kotbl.o + .debug_loc 0x0000000000006717 0x1e43 ./Kernel/pgtbl.o + .debug_loc 0x000000000000855a 0x55b7 ./Kernel/prcthd.o + .debug_loc 0x000000000000db11 0x194c ./Kernel/siginv.o .debug_aranges 0x0000000000000000 0x180 .debug_aranges @@ -915,83 +913,83 @@ OUTPUT(RME elf64-x86-64) .debug_aranges 0x0000000000000160 0x20 ./UVM.o -.debug_ranges 0x0000000000000000 0x8f0 - .debug_ranges 0x0000000000000000 0x220 ./Platform/platform_x64.o - .debug_ranges 0x0000000000000220 0x60 ./Kernel/kernel.o - .debug_ranges 0x0000000000000280 0x670 ./Kernel/prcthd.o +.debug_ranges 0x0000000000000000 0x8e0 + .debug_ranges 0x0000000000000000 0x240 ./Platform/platform_x64.o + .debug_ranges 0x0000000000000240 0x60 ./Kernel/kernel.o + .debug_ranges 0x00000000000002a0 0x640 ./Kernel/prcthd.o -.debug_macro 0x0000000000000000 0x20b1 - .debug_macro 0x0000000000000000 0x112 ./Platform/platform_x64.o - .debug_macro 0x0000000000000112 0x59e ./Platform/platform_x64.o - .debug_macro 0x00000000000006b0 0x10c ./Platform/platform_x64.o - .debug_macro 0x00000000000007bc 0x580 ./Platform/platform_x64.o - .debug_macro 0x0000000000000d3c 0x22 ./Platform/platform_x64.o - .debug_macro 0x0000000000000d5e 0x28 ./Platform/platform_x64.o - .debug_macro 0x0000000000000d86 0xd7 ./Platform/platform_x64.o - .debug_macro 0x0000000000000e5d 0x58 ./Platform/platform_x64.o - .debug_macro 0x0000000000000eb5 0x6a ./Platform/platform_x64.o - .debug_macro 0x0000000000000f1f 0x22 ./Platform/platform_x64.o - .debug_macro 0x0000000000000f41 0xd2 ./Platform/platform_x64.o - .debug_macro 0x0000000000001013 0xb8 ./Platform/platform_x64.o - .debug_macro 0x00000000000010cb 0x22 ./Platform/platform_x64.o - .debug_macro 0x00000000000010ed 0x567 ./Platform/platform_x64.o - .debug_macro 0x0000000000001654 0x19 ./Platform/platform_x64.o - .debug_macro 0x000000000000166d 0x19 ./Platform/platform_x64.o - .debug_macro 0x0000000000001686 0x19 ./Platform/platform_x64.o - .debug_macro 0x000000000000169f 0x16 ./Platform/platform_x64.o - .debug_macro 0x00000000000016b5 0x16 ./Platform/platform_x64.o - .debug_macro 0x00000000000016cb 0x16 ./Platform/platform_x64.o - .debug_macro 0x00000000000016e1 0x35 ./Platform/platform_x64.o - .debug_macro 0x0000000000001716 0x35 ./Platform/platform_x64.o - .debug_macro 0x000000000000174b 0x35 ./Platform/platform_x64.o - .debug_macro 0x0000000000001780 0x2f ./Platform/platform_x64.o - .debug_macro 0x00000000000017af 0x2e ./Platform/platform_x64.o - .debug_macro 0x00000000000017dd 0x35 ./Platform/platform_x64.o - .debug_macro 0x0000000000001812 0x2f ./Platform/platform_x64.o - .debug_macro 0x0000000000001841 0xe8 ./Kernel/captbl.o - .debug_macro 0x0000000000001929 0xd7 ./Kernel/captbl.o - .debug_macro 0x0000000000001a00 0x16 ./Kernel/captbl.o - .debug_macro 0x0000000000001a16 0x35 ./Kernel/captbl.o - .debug_macro 0x0000000000001a4b 0x35 ./Kernel/captbl.o - .debug_macro 0x0000000000001a80 0x127 ./Kernel/kernel.o - .debug_macro 0x0000000000001ba7 0x35 ./Kernel/kernel.o - .debug_macro 0x0000000000001bdc 0xc4 ./Kernel/kotbl.o - .debug_macro 0x0000000000001ca0 0x2e ./Kernel/kotbl.o - .debug_macro 0x0000000000001cce 0xf1 ./Kernel/pgtbl.o - .debug_macro 0x0000000000001dbf 0x2f ./Kernel/pgtbl.o - .debug_macro 0x0000000000001dee 0x127 ./Kernel/prcthd.o - .debug_macro 0x0000000000001f15 0x35 ./Kernel/prcthd.o - .debug_macro 0x0000000000001f4a 0x127 ./Kernel/siginv.o - .debug_macro 0x0000000000002071 0x2f ./Kernel/siginv.o - .debug_macro 0x00000000000020a0 0x11 ./UVM.o +.debug_macro 0x0000000000000000 0x20d7 + .debug_macro 0x0000000000000000 0x113 ./Platform/platform_x64.o + .debug_macro 0x0000000000000113 0x5aa ./Platform/platform_x64.o + .debug_macro 0x00000000000006bd 0x10c ./Platform/platform_x64.o + .debug_macro 0x00000000000007c9 0x580 ./Platform/platform_x64.o + .debug_macro 0x0000000000000d49 0x22 ./Platform/platform_x64.o + .debug_macro 0x0000000000000d6b 0x28 ./Platform/platform_x64.o + .debug_macro 0x0000000000000d93 0xd8 ./Platform/platform_x64.o + .debug_macro 0x0000000000000e6b 0x58 ./Platform/platform_x64.o + .debug_macro 0x0000000000000ec3 0x6a ./Platform/platform_x64.o + .debug_macro 0x0000000000000f2d 0x22 ./Platform/platform_x64.o + .debug_macro 0x0000000000000f4f 0xd2 ./Platform/platform_x64.o + .debug_macro 0x0000000000001021 0xc9 ./Platform/platform_x64.o + .debug_macro 0x00000000000010ea 0x22 ./Platform/platform_x64.o + .debug_macro 0x000000000000110c 0x567 ./Platform/platform_x64.o + .debug_macro 0x0000000000001673 0x19 ./Platform/platform_x64.o + .debug_macro 0x000000000000168c 0x19 ./Platform/platform_x64.o + .debug_macro 0x00000000000016a5 0x19 ./Platform/platform_x64.o + .debug_macro 0x00000000000016be 0x16 ./Platform/platform_x64.o + .debug_macro 0x00000000000016d4 0x16 ./Platform/platform_x64.o + .debug_macro 0x00000000000016ea 0x16 ./Platform/platform_x64.o + .debug_macro 0x0000000000001700 0x35 ./Platform/platform_x64.o + .debug_macro 0x0000000000001735 0x35 ./Platform/platform_x64.o + .debug_macro 0x000000000000176a 0x35 ./Platform/platform_x64.o + .debug_macro 0x000000000000179f 0x2f ./Platform/platform_x64.o + .debug_macro 0x00000000000017ce 0x2e ./Platform/platform_x64.o + .debug_macro 0x00000000000017fc 0x35 ./Platform/platform_x64.o + .debug_macro 0x0000000000001831 0x2f ./Platform/platform_x64.o + .debug_macro 0x0000000000001860 0xe9 ./Kernel/captbl.o + .debug_macro 0x0000000000001949 0xd8 ./Kernel/captbl.o + .debug_macro 0x0000000000001a21 0x16 ./Kernel/captbl.o + .debug_macro 0x0000000000001a37 0x35 ./Kernel/captbl.o + .debug_macro 0x0000000000001a6c 0x35 ./Kernel/captbl.o + .debug_macro 0x0000000000001aa1 0x128 ./Kernel/kernel.o + .debug_macro 0x0000000000001bc9 0x35 ./Kernel/kernel.o + .debug_macro 0x0000000000001bfe 0xc5 ./Kernel/kotbl.o + .debug_macro 0x0000000000001cc3 0x2e ./Kernel/kotbl.o + .debug_macro 0x0000000000001cf1 0xf2 ./Kernel/pgtbl.o + .debug_macro 0x0000000000001de3 0x2f ./Kernel/pgtbl.o + .debug_macro 0x0000000000001e12 0x128 ./Kernel/prcthd.o + .debug_macro 0x0000000000001f3a 0x35 ./Kernel/prcthd.o + .debug_macro 0x0000000000001f6f 0x128 ./Kernel/siginv.o + .debug_macro 0x0000000000002097 0x2f ./Kernel/siginv.o + .debug_macro 0x00000000000020c6 0x11 ./UVM.o -.debug_line 0x0000000000000000 0x4da3 - .debug_line 0x0000000000000000 0x1383 ./Platform/platform_x64.o - .debug_line 0x0000000000001383 0x7d5 ./Kernel/captbl.o - .debug_line 0x0000000000001b58 0x77f ./Kernel/kernel.o - .debug_line 0x00000000000022d7 0x48e ./Kernel/kotbl.o - .debug_line 0x0000000000002765 0x971 ./Kernel/pgtbl.o - .debug_line 0x00000000000030d6 0x135b ./Kernel/prcthd.o - .debug_line 0x0000000000004431 0x949 ./Kernel/siginv.o - .debug_line 0x0000000000004d7a 0x29 ./UVM.o +.debug_line 0x0000000000000000 0x5022 + .debug_line 0x0000000000000000 0x138a ./Platform/platform_x64.o + .debug_line 0x000000000000138a 0x891 ./Kernel/captbl.o + .debug_line 0x0000000000001c1b 0x799 ./Kernel/kernel.o + .debug_line 0x00000000000023b4 0x48e ./Kernel/kotbl.o + .debug_line 0x0000000000002842 0x9b1 ./Kernel/pgtbl.o + .debug_line 0x00000000000031f3 0x1435 ./Kernel/prcthd.o + .debug_line 0x0000000000004628 0x9d1 ./Kernel/siginv.o + .debug_line 0x0000000000004ff9 0x29 ./UVM.o -.debug_str 0x0000000000000000 0x921d - .debug_str 0x0000000000000000 0x884d ./Platform/platform_x64.o - 0x89b1 (size before relaxing) - .debug_str 0x000000000000884d 0x21e ./Kernel/captbl.o - 0x74c7 (size before relaxing) - .debug_str 0x0000000000008a6b 0x35d ./Kernel/kernel.o - 0x7eca (size before relaxing) - .debug_str 0x0000000000008dc8 0x97 ./Kernel/kotbl.o - 0x6187 (size before relaxing) - .debug_str 0x0000000000008e5f 0xe6 ./Kernel/pgtbl.o - 0x75b5 (size before relaxing) - .debug_str 0x0000000000008f45 0x1e1 ./Kernel/prcthd.o - 0x7e9a (size before relaxing) - .debug_str 0x0000000000009126 0x94 ./Kernel/siginv.o - 0x7c88 (size before relaxing) - .debug_str 0x00000000000091ba 0x63 ./UVM.o - 0x1a4a (size before relaxing) +.debug_str 0x0000000000000000 0x942b + .debug_str 0x0000000000000000 0x8a53 ./Platform/platform_x64.o + 0x8bb7 (size before relaxing) + .debug_str 0x0000000000008a53 0x21e ./Kernel/captbl.o + 0x76a9 (size before relaxing) + .debug_str 0x0000000000008c71 0x365 ./Kernel/kernel.o + 0x80c2 (size before relaxing) + .debug_str 0x0000000000008fd6 0x97 ./Kernel/kotbl.o + 0x6227 (size before relaxing) + .debug_str 0x000000000000906d 0xe6 ./Kernel/pgtbl.o + 0x7797 (size before relaxing) + .debug_str 0x0000000000009153 0x1e1 ./Kernel/prcthd.o + 0x808a (size before relaxing) + .debug_str 0x0000000000009334 0x94 ./Kernel/siginv.o + 0x7e70 (size before relaxing) + .debug_str 0x00000000000093c8 0x63 ./UVM.o + 0x1a96 (size before relaxing) .comment 0x0000000000000000 0x34 .comment 0x0000000000000000 0x34 ./Platform/platform_x64.o diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/isofiles/boot/RME b/Project/ECLIPSE-GCC-X64/RME/Debug/isofiles/boot/RME index 6e25520..c1b4024 100644 Binary files a/Project/ECLIPSE-GCC-X64/RME/Debug/isofiles/boot/RME and b/Project/ECLIPSE-GCC-X64/RME/Debug/isofiles/boot/RME differ diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/os.iso b/Project/ECLIPSE-GCC-X64/RME/Debug/os.iso index 5102b45..421ac03 100644 Binary files a/Project/ECLIPSE-GCC-X64/RME/Debug/os.iso and b/Project/ECLIPSE-GCC-X64/RME/Debug/os.iso differ diff --git a/Project/ECLIPSE-GCC-X64/RME/Debug/subdir.mk b/Project/ECLIPSE-GCC-X64/RME/Debug/subdir.mk index f68f1eb..6e2f4da 100644 --- a/Project/ECLIPSE-GCC-X64/RME/Debug/subdir.mk +++ b/Project/ECLIPSE-GCC-X64/RME/Debug/subdir.mk @@ -17,7 +17,7 @@ C_DEPS += \ %.o: ../%.c @echo 'Building file: $<' @echo 'Invoking: GCC C Compiler' - gcc -m64 -mcmodel=kernel -nostdlib -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" + gcc -m64 -mcmodel=kernel -nostdlib -D"likely(x)=__builtin_expect(!!(x), 1)" -D"unlikely(x)=__builtin_expect(!!(x), 0)" -I/media/pry/Code/Code_Library/MCU/Mutatus/M7M1_MuEukaron/Project/ECLIPSE-GCC-X64/RME/../../../MEukaron/Include -O3 -mno-sse -g3 -Wall -c -fmessage-length=0 -fno-pic -static -fno-builtin -fno-strict-aliasing -ffreestanding -fno-common -fno-stack-protector -mtls-direct-seg-refs -mno-red-zone -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/Project/ECLIPSE-GCC-X64/RME/UVM.c b/Project/ECLIPSE-GCC-X64/RME/UVM.c index 7d8f883..b850377 100644 --- a/Project/ECLIPSE-GCC-X64/RME/UVM.c +++ b/Project/ECLIPSE-GCC-X64/RME/UVM.c @@ -7,11 +7,11 @@ Description : The *.c code containing the array of the binary image. ******************************************************************************/ /* Begin Contents ************************************************************/ -const unsigned char UVM_Init[4104]= +const unsigned char UVM_Init[5064]= { 0xE9, - 0xDB, - 0x01, + 0x1B, + 0x02, 0x00, 0x00, 0x52, @@ -121,7 +121,10 @@ const unsigned char UVM_Init[4104]= 0x9C, 0x48, 0x89, - 0xF8, + 0xF2, + 0x48, + 0x89, + 0xFE, 0x48, 0xBF, 0x00, @@ -132,9 +135,6 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0x00, - 0x48, - 0x09, - 0xC7, 0x0F, 0x05, 0x9D, @@ -345,8 +345,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0xEC, - 0x0C, + 0x8C, + 0x10, 0x00, 0x00, 0xEB, @@ -365,7 +365,7 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0x05, - 0x94, + 0xA4, 0x1E, 0x00, 0x00, @@ -400,13 +400,13 @@ const unsigned char UVM_Init[4104]= 0x48, 0x89, 0x05, - 0x85, + 0x9D, 0x1E, 0x00, 0x00, 0xE8, - 0xB0, - 0x0C, + 0x50, + 0x10, 0x00, 0x00, 0xE8, @@ -417,40 +417,57 @@ const unsigned char UVM_Init[4104]= 0x48, 0x89, 0x05, - 0x6C, + 0x7C, 0x1E, 0x00, 0x00, 0x48, - 0x2B, + 0x8B, 0x05, - 0x6D, + 0x75, 0x1E, 0x00, 0x00, 0x48, - 0x01, + 0x03, 0x05, - 0x56, + 0x66, + 0x1E, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x15, + 0x77, 0x1E, 0x00, 0x00, 0x48, + 0x29, + 0xD0, + 0x48, 0x83, 0xEB, 0x01, + 0x48, + 0x89, + 0x05, + 0x51, + 0x1E, + 0x00, + 0x00, 0x75, - 0xC8, + 0xB7, 0x48, 0xC7, 0xC7, - 0x58, - 0x0F, + 0xF8, + 0x12, 0x00, 0x00, 0xE8, - 0x24, - 0x07, + 0xB3, + 0x0A, 0x00, 0x00, 0x48, @@ -469,162 +486,853 @@ const unsigned char UVM_Init[4104]= 0x48, 0xF7, 0x25, - 0x30, + 0x2F, 0x1E, 0x00, 0x00, 0x48, - 0xC1, - 0xEA, - 0x12, - 0x48, 0x89, 0xD7, + 0x48, + 0xC1, + 0xEF, + 0x12, 0xE8, - 0xC4, - 0x04, + 0x53, + 0x08, 0x00, 0x00, 0xEB, 0xFE, - 0x66, 0x90, 0x48, 0x83, 0xEC, 0x08, - 0x48, - 0x85, - 0xFF, - 0x74, - 0x02, - 0xEB, + 0xE8, + 0x22, 0xFE, - 0x49, - 0xB9, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x80, 0xFF, 0xFF, - 0x41, - 0xB8, - 0x0A, - 0x00, - 0x00, - 0x00, - 0xB9, - 0x02, - 0x00, + 0x31, + 0xC9, + 0x48, + 0x89, + 0x05, + 0x1E, + 0x1E, 0x00, 0x00, - 0xBA, - 0x09, + 0x31, + 0xD2, + 0x31, + 0xF6, + 0x31, + 0xFF, + 0x48, + 0x83, + 0xC4, + 0x08, + 0xE9, + 0x97, + 0xFE, + 0xFF, + 0xFF, + 0x66, + 0x2E, + 0x0F, + 0x1F, + 0x84, 0x00, 0x00, 0x00, - 0xBE, 0x00, - 0x80, - 0x05, 0x00, - 0xE8, - 0x01, - 0x0B, + 0x0F, + 0x1F, + 0x44, 0x00, 0x00, 0x48, 0x85, - 0xC0, + 0xFF, + 0x53, 0x0F, - 0x88, - 0xF2, - 0x00, + 0x85, + 0xA6, + 0x03, 0x00, 0x00, - 0x31, - 0xD2, - 0xBE, + 0x48, + 0xC7, + 0x05, + 0xDB, + 0x1D, 0x00, - 0x80, - 0x03, 0x00, - 0xBF, - 0x09, 0x00, 0x00, 0x00, - 0xE8, - 0x77, - 0x0B, 0x00, + 0xBB, + 0x40, + 0x42, + 0x0F, 0x00, - 0x48, - 0x85, - 0xC0, + 0x66, 0x0F, - 0x88, - 0xCC, - 0x03, + 0x1F, + 0x44, 0x00, 0x00, - 0x48, - 0xBA, - 0xFE, - 0xFF, - 0xFF, - 0xFF, - 0xFF, + 0xE8, + 0xD6, + 0xFD, 0xFF, 0xFF, - 0x7F, - 0xBE, - 0x00, - 0x80, - 0x03, + 0x48, + 0x89, + 0x05, + 0xDC, + 0x1D, 0x00, - 0xBF, - 0x09, 0x00, + 0xE8, + 0xCA, + 0xFD, + 0xFF, + 0xFF, + 0x48, + 0x89, + 0x05, + 0xC0, + 0x1D, 0x00, 0x00, - 0xE8, - 0xD5, - 0x0B, + 0x48, + 0x8B, + 0x05, + 0xB9, + 0x1D, 0x00, 0x00, 0x48, - 0x85, - 0xC0, - 0x0F, - 0x88, - 0x3E, 0x03, + 0x05, + 0xAA, + 0x1D, 0x00, 0x00, - 0xBA, + 0x48, + 0x8B, + 0x15, + 0xBB, + 0x1D, 0x00, 0x00, - 0xC0, + 0x48, + 0x29, + 0xD0, + 0x48, + 0x83, + 0xEB, + 0x01, + 0x48, + 0x89, + 0x05, + 0x95, + 0x1D, 0x00, + 0x00, + 0x75, + 0xC3, 0x48, 0xC7, - 0xC6, - 0x60, + 0xC7, 0x01, + 0x13, 0x00, 0x00, - 0xBF, - 0x09, + 0xBB, + 0x40, + 0x42, + 0x0F, + 0x00, + 0xE8, + 0xF2, + 0x09, + 0x00, + 0x00, + 0x48, + 0xBA, + 0xDB, + 0x34, + 0xB6, + 0xD7, + 0x82, + 0xDE, + 0x1B, + 0x43, + 0x48, + 0x89, + 0xD0, + 0x48, + 0xF7, + 0x25, + 0x6E, + 0x1D, + 0x00, + 0x00, + 0x48, + 0xC1, + 0xEA, + 0x12, + 0x48, + 0x89, + 0xD7, + 0xE8, + 0x92, + 0x07, + 0x00, + 0x00, + 0x48, + 0xC7, + 0x05, + 0x57, + 0x1D, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x0F, + 0x1F, + 0x80, + 0x00, + 0x00, + 0x00, + 0x00, + 0xE8, + 0x56, + 0xFD, + 0xFF, + 0xFF, + 0x48, + 0xC7, + 0xC1, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0x48, + 0x89, + 0x05, + 0x55, + 0x1D, + 0x00, + 0x00, + 0x48, + 0x89, + 0xCA, + 0x48, + 0x89, + 0xCE, + 0x48, + 0x89, + 0xCF, + 0xE8, + 0xC7, + 0xFD, + 0xFF, + 0xFF, + 0xE8, + 0x35, + 0xFD, + 0xFF, + 0xFF, + 0x48, + 0x89, + 0x05, + 0x2B, + 0x1D, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x05, + 0x24, + 0x1D, + 0x00, + 0x00, + 0x48, + 0x03, + 0x05, + 0x15, + 0x1D, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x15, + 0x26, + 0x1D, + 0x00, + 0x00, + 0x48, + 0x29, + 0xD0, + 0x48, + 0x83, + 0xEB, + 0x01, + 0x48, + 0x89, + 0x05, + 0x00, + 0x1D, + 0x00, + 0x00, + 0x75, + 0xAE, + 0x48, + 0xC7, + 0xC7, + 0x09, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x62, + 0x09, + 0x00, + 0x00, + 0x48, + 0xBA, + 0xDB, + 0x34, + 0xB6, + 0xD7, + 0x82, + 0xDE, + 0x1B, + 0x43, + 0x48, + 0x89, + 0xD0, + 0x48, + 0xF7, + 0x25, + 0xDE, + 0x1C, + 0x00, + 0x00, + 0x48, + 0xC1, + 0xEA, + 0x12, + 0x48, + 0x89, + 0xD7, + 0xE8, + 0x02, + 0x07, + 0x00, + 0x00, + 0x31, + 0xFF, + 0x49, + 0xB8, + 0x00, + 0x00, + 0x00, + 0x07, + 0x00, + 0x80, + 0xFF, + 0xFF, + 0xB9, + 0x02, + 0x00, + 0x00, + 0x00, + 0xBA, + 0x0B, + 0x00, + 0x00, + 0x00, + 0xBE, + 0x00, + 0x80, + 0x05, + 0x00, + 0xE8, + 0x22, + 0x0F, + 0x00, + 0x00, + 0x48, + 0x85, + 0xC0, + 0x0F, + 0x88, + 0x6B, + 0x02, + 0x00, + 0x00, + 0x31, + 0xC9, + 0xBA, + 0x00, + 0x00, + 0xC0, + 0x00, + 0x48, + 0xC7, + 0xC6, + 0xF0, + 0x01, + 0x00, + 0x00, + 0xBF, + 0x0B, + 0x00, + 0x00, + 0x00, + 0xE8, + 0x51, + 0x0F, + 0x00, + 0x00, + 0x48, + 0x85, + 0xC0, + 0x0F, + 0x88, + 0x16, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0x05, + 0x7D, + 0x1C, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x48, + 0xC7, + 0x05, + 0x6A, + 0x1C, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xBB, + 0x40, + 0x42, + 0x0F, + 0x00, + 0x48, + 0xC7, + 0x05, + 0x52, + 0x1C, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x66, + 0x90, + 0xE8, + 0x66, + 0xFC, + 0xFF, + 0xFF, + 0x31, + 0xD2, + 0x31, + 0xF6, + 0xBF, + 0x0B, + 0x00, + 0x00, + 0x00, + 0x48, + 0x89, + 0x05, + 0x63, + 0x1C, + 0x00, + 0x00, + 0xE8, + 0x8F, + 0xFC, + 0xFF, + 0xFF, + 0xE8, + 0x4C, + 0xFC, + 0xFF, + 0xFF, + 0x48, + 0x89, + 0x05, + 0x42, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x05, + 0x3B, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x03, + 0x05, + 0x2C, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x15, + 0x3D, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x29, + 0xD0, + 0x48, + 0x89, + 0x05, + 0x1B, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x05, + 0x24, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x03, + 0x05, + 0x05, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x15, + 0x1E, + 0x1C, + 0x00, + 0x00, + 0x48, + 0x29, + 0xD0, + 0x48, + 0x89, + 0x05, + 0xF4, + 0x1B, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x05, + 0xFD, + 0x1B, + 0x00, + 0x00, + 0x48, + 0x03, + 0x05, + 0xDE, + 0x1B, + 0x00, + 0x00, + 0x48, + 0x8B, + 0x15, + 0xF7, + 0x1B, + 0x00, + 0x00, + 0x48, + 0x29, + 0xD0, + 0x48, + 0x83, + 0xEB, + 0x01, + 0x48, + 0x89, + 0x05, + 0xC9, + 0x1B, + 0x00, + 0x00, + 0x0F, + 0x85, + 0x73, + 0xFF, + 0xFF, + 0xFF, + 0x48, + 0xBB, + 0xDB, + 0x34, + 0xB6, + 0xD7, + 0x82, + 0xDE, + 0x1B, + 0x43, + 0x48, + 0xC7, + 0xC7, + 0x32, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x2D, + 0x08, + 0x00, + 0x00, + 0x48, + 0x89, + 0xD8, + 0x48, + 0xF7, + 0x25, + 0xB3, + 0x1B, + 0x00, + 0x00, + 0x48, + 0xC1, + 0xEA, + 0x12, + 0x48, + 0x89, + 0xD7, + 0xE8, + 0xD7, + 0x05, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x38, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x0B, + 0x08, + 0x00, + 0x00, + 0x48, + 0x89, + 0xD8, + 0x48, + 0xF7, + 0x25, + 0x89, + 0x1B, + 0x00, + 0x00, + 0x48, + 0xC1, + 0xEA, + 0x12, + 0x48, + 0x89, + 0xD7, + 0xE8, + 0xB5, + 0x05, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x3D, + 0x13, + 0x00, + 0x00, + 0xE8, + 0xE9, + 0x07, + 0x00, + 0x00, + 0x48, + 0x89, + 0xD8, + 0x48, + 0xF7, + 0x25, + 0x5F, + 0x1B, + 0x00, + 0x00, + 0x48, + 0xC1, + 0xEA, + 0x12, + 0x48, + 0x89, + 0xD7, + 0xE8, + 0x93, + 0x05, + 0x00, + 0x00, + 0x31, + 0xFF, + 0x49, + 0xB9, + 0x80, + 0x12, + 0x00, + 0x07, + 0x00, + 0x80, + 0xFF, + 0xFF, + 0x41, + 0xB8, + 0x0A, + 0x00, + 0x00, + 0x00, + 0xB9, + 0x02, + 0x00, + 0x00, + 0x00, + 0xBA, + 0x09, + 0x00, + 0x00, + 0x00, + 0xBE, + 0x00, + 0x80, + 0x05, + 0x00, + 0xE8, + 0xDD, + 0x0B, + 0x00, + 0x00, + 0x48, + 0x85, + 0xC0, + 0x0F, + 0x88, + 0x56, + 0x04, + 0x00, + 0x00, + 0x31, + 0xD2, + 0xBE, + 0x00, + 0x80, + 0x03, + 0x00, + 0xBF, + 0x09, + 0x00, + 0x00, + 0x00, + 0xE8, + 0x53, + 0x0C, + 0x00, + 0x00, + 0x48, + 0x85, + 0xC0, + 0x0F, + 0x88, + 0x48, + 0x01, + 0x00, + 0x00, + 0x48, + 0xBA, + 0xFE, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0x7F, + 0xBE, + 0x00, + 0x80, + 0x03, + 0x00, + 0xBF, + 0x09, + 0x00, + 0x00, + 0x00, + 0xE8, + 0xB1, + 0x0C, + 0x00, + 0x00, + 0x48, + 0x85, + 0xC0, + 0x0F, + 0x88, + 0xAE, + 0x03, + 0x00, + 0x00, + 0xBA, + 0x00, + 0x00, + 0xC0, + 0x00, + 0x48, + 0xC7, + 0xC6, + 0x60, + 0x01, + 0x00, + 0x00, + 0xBF, + 0x09, 0x00, 0x00, 0x00, 0xE8, - 0xF6, - 0x0A, + 0xD2, + 0x0B, 0x00, 0x00, 0x48, @@ -632,16 +1340,16 @@ const unsigned char UVM_Init[4104]= 0xC0, 0x0F, 0x88, - 0xB3, - 0x02, + 0x23, + 0x03, 0x00, 0x00, 0x31, 0xFF, 0x49, 0xB9, - 0xD0, - 0x09, + 0x50, + 0x1C, 0x00, 0x07, 0x00, @@ -670,8 +1378,8 @@ const unsigned char UVM_Init[4104]= 0x05, 0x00, 0xE8, - 0x77, - 0x0A, + 0x53, + 0x0B, 0x00, 0x00, 0x48, @@ -679,7 +1387,7 @@ const unsigned char UVM_Init[4104]= 0xC0, 0x0F, 0x88, - 0x18, + 0x88, 0x02, 0x00, 0x00, @@ -696,8 +1404,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0xED, - 0x0A, + 0xC9, + 0x0B, 0x00, 0x00, 0x48, @@ -705,8 +1413,8 @@ const unsigned char UVM_Init[4104]= 0xC0, 0x0F, 0x88, - 0x92, - 0x01, + 0x02, + 0x02, 0x00, 0x00, 0x48, @@ -730,8 +1438,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0x4B, - 0x0B, + 0x27, + 0x0C, 0x00, 0x00, 0x48, @@ -739,7 +1447,7 @@ const unsigned char UVM_Init[4104]= 0xC0, 0x0F, 0x88, - 0x04, + 0x74, 0x01, 0x00, 0x00, @@ -755,43 +1463,263 @@ const unsigned char UVM_Init[4104]= 0x01, 0x00, 0x00, - 0xBF, - 0x0A, + 0xBF, + 0x0A, + 0x00, + 0x00, + 0x00, + 0xE8, + 0x48, + 0x0B, + 0x00, + 0x00, + 0x48, + 0x85, + 0xC0, + 0x0F, + 0x88, + 0xE9, + 0x00, + 0x00, + 0x00, + 0x31, + 0xF6, + 0xBF, + 0x09, + 0x00, + 0x00, + 0x00, + 0xE8, + 0x13, + 0x0C, + 0x00, + 0x00, + 0x0F, + 0x1F, + 0x00, + 0xEB, + 0xFE, + 0x48, + 0xC7, + 0xC7, + 0x48, + 0x13, + 0x00, + 0x00, + 0xE8, + 0xA2, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x80, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x96, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x0F, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x8A, + 0x06, + 0x00, + 0x00, + 0xBF, + 0xAB, + 0x00, + 0x00, + 0x00, + 0xE8, + 0x40, + 0x04, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x17, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x74, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x1A, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x68, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x26, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x5C, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x29, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x50, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x17, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x44, + 0x06, + 0x00, + 0x00, + 0xEB, + 0xFE, + 0x48, + 0xC7, + 0xC7, + 0x48, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x36, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x80, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x2A, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x0F, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x1E, + 0x06, + 0x00, + 0x00, + 0xBF, + 0xC5, + 0x00, + 0x00, + 0x00, + 0xE8, + 0xD4, + 0x03, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x17, + 0x13, + 0x00, + 0x00, + 0xE8, + 0x08, + 0x06, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x1A, + 0x13, + 0x00, + 0x00, + 0xE8, + 0xFC, + 0x05, + 0x00, + 0x00, + 0x48, + 0xC7, + 0xC7, + 0x26, + 0x13, + 0x00, + 0x00, + 0xE8, + 0xF0, + 0x05, + 0x00, 0x00, + 0x48, + 0xC7, + 0xC7, + 0x29, + 0x13, 0x00, 0x00, 0xE8, - 0x6C, - 0x0A, + 0xE4, + 0x05, 0x00, 0x00, 0x48, - 0x85, - 0xC0, - 0x78, - 0x7D, - 0x31, - 0xF6, - 0xBF, - 0x09, - 0x00, + 0xC7, + 0xC7, + 0x17, + 0x13, 0x00, 0x00, 0xE8, - 0x3B, - 0x0B, + 0xD8, + 0x05, 0x00, 0x00, - 0xE9, - 0xDF, + 0xEB, 0xFE, - 0xFF, - 0xFF, 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -802,8 +1730,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -814,8 +1742,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -824,7 +1752,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x8C, + 0xCD, 0x00, 0x00, 0x00, @@ -836,8 +1764,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -848,8 +1776,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -860,8 +1788,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -872,8 +1800,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -884,8 +1812,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -898,8 +1826,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -910,8 +1838,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -922,8 +1850,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -932,7 +1860,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x95, + 0xCC, 0x00, 0x00, 0x00, @@ -944,8 +1872,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -956,8 +1884,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -968,8 +1896,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -980,8 +1908,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -992,8 +1920,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1006,8 +1934,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -1018,8 +1946,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -1030,8 +1958,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -1040,7 +1968,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x94, + 0xCB, 0x00, 0x00, 0x00, @@ -1052,8 +1980,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1064,8 +1992,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -1076,8 +2004,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -1088,8 +2016,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -1100,8 +2028,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1114,8 +2042,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -1126,8 +2054,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -1138,8 +2066,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -1148,7 +2076,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x93, + 0xCA, 0x00, 0x00, 0x00, @@ -1160,8 +2088,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1172,8 +2100,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -1184,8 +2112,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -1196,8 +2124,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -1208,8 +2136,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1222,8 +2150,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -1234,8 +2162,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -1246,8 +2174,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -1256,7 +2184,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x92, + 0xC7, 0x00, 0x00, 0x00, @@ -1268,8 +2196,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1280,8 +2208,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -1292,8 +2220,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -1304,8 +2232,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -1316,8 +2244,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1330,8 +2258,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -1342,8 +2270,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -1354,8 +2282,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -1364,7 +2292,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x8F, + 0xC6, 0x00, 0x00, 0x00, @@ -1376,8 +2304,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1388,8 +2316,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -1400,8 +2328,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -1412,8 +2340,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -1424,8 +2352,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1438,8 +2366,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -1450,8 +2378,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -1462,8 +2390,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -1472,7 +2400,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x8E, + 0xC4, 0x00, 0x00, 0x00, @@ -1484,8 +2412,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1496,8 +2424,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -1508,8 +2436,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -1520,8 +2448,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -1532,8 +2460,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1546,8 +2474,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x88, - 0x0F, + 0x48, + 0x13, 0x00, 0x00, 0xE8, @@ -1558,8 +2486,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0xC0, - 0x0F, + 0x80, + 0x13, 0x00, 0x00, 0xE8, @@ -1570,8 +2498,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x61, 0x0F, + 0x13, 0x00, 0x00, 0xE8, @@ -1580,7 +2508,7 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xBF, - 0x8D, + 0xAD, 0x00, 0x00, 0x00, @@ -1592,8 +2520,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1604,8 +2532,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x6C, - 0x0F, + 0x1A, + 0x13, 0x00, 0x00, 0xE8, @@ -1616,8 +2544,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x78, - 0x0F, + 0x26, + 0x13, 0x00, 0x00, 0xE8, @@ -1628,8 +2556,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x7B, - 0x0F, + 0x29, + 0x13, 0x00, 0x00, 0xE8, @@ -1640,8 +2568,8 @@ const unsigned char UVM_Init[4104]= 0x48, 0xC7, 0xC7, - 0x69, - 0x0F, + 0x17, + 0x13, 0x00, 0x00, 0xE8, @@ -1832,8 +2760,8 @@ const unsigned char UVM_Init[4104]= 0xBE, 0xFF, 0xE8, - 0xAD, - 0xF9, + 0x0D, + 0xF6, 0xFF, 0xFF, 0x48, @@ -1975,8 +2903,8 @@ const unsigned char UVM_Init[4104]= 0x89, 0xD4, 0xE8, - 0x1E, - 0xF9, + 0x7E, + 0xF5, 0xFF, 0xFF, 0x66, @@ -2007,8 +2935,8 @@ const unsigned char UVM_Init[4104]= 0xBE, 0xF8, 0xE8, - 0xFE, - 0xF8, + 0x5E, + 0xF5, 0xFF, 0xFF, 0x4C, @@ -2047,8 +2975,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0xD6, - 0xF8, + 0x36, + 0xF5, 0xFF, 0xFF, 0x5B, @@ -2071,8 +2999,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0xBE, - 0xF8, + 0x1E, + 0xF5, 0xFF, 0xFF, 0xB8, @@ -2189,8 +3117,8 @@ const unsigned char UVM_Init[4104]= 0x7A, 0x30, 0xE8, - 0x48, - 0xF8, + 0xA8, + 0xF4, 0xFF, 0xFF, 0x48, @@ -2228,8 +3156,8 @@ const unsigned char UVM_Init[4104]= 0x7A, 0x37, 0xE8, - 0x21, - 0xF8, + 0x81, + 0xF4, 0xFF, 0xFF, 0x48, @@ -2255,8 +3183,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0x06, - 0xF8, + 0x66, + 0xF4, 0xFF, 0xFF, 0x5B, @@ -2302,8 +3230,8 @@ const unsigned char UVM_Init[4104]= 0xC3, 0x01, 0xE8, - 0xD7, - 0xF7, + 0x37, + 0xF4, 0xFF, 0xFF, 0x48, @@ -2372,8 +3300,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0xC1, - 0xF7, + 0x21, + 0xF4, 0xFF, 0xFF, 0x48, @@ -2418,8 +3346,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE8, - 0x93, - 0xF7, + 0xF3, + 0xF3, 0xFF, 0xFF, 0x48, @@ -2457,8 +3385,8 @@ const unsigned char UVM_Init[4104]= 0xEC, 0x08, 0xE8, - 0x99, - 0xF6, + 0xF9, + 0xF2, 0xFF, 0xFF, 0x48, @@ -2478,8 +3406,8 @@ const unsigned char UVM_Init[4104]= 0x89, 0xF3, 0xE8, - 0x84, - 0xF6, + 0xE4, + 0xF2, 0xFF, 0xFF, 0x48, @@ -2490,8 +3418,8 @@ const unsigned char UVM_Init[4104]= 0xC3, 0x90, 0xE9, - 0x7B, - 0xF7, + 0xDB, + 0xF3, 0xFF, 0xFF, 0x90, @@ -2537,8 +3465,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0xC4, - 0xF6, + 0x24, + 0xF3, 0xFF, 0xFF, 0x66, @@ -2571,8 +3499,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0xA2, - 0xF6, + 0x02, + 0xF3, 0xFF, 0xFF, 0x66, @@ -2603,8 +3531,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x82, - 0xF6, + 0xE2, + 0xF2, 0xFF, 0xFF, 0x66, @@ -2649,8 +3577,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x54, - 0xF6, + 0xB4, + 0xF2, 0xFF, 0xFF, 0x66, @@ -2716,8 +3644,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC9, 0xE9, - 0x11, - 0xF6, + 0x71, + 0xF2, 0xFF, 0xFF, 0x66, @@ -2771,8 +3699,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xDA, - 0xF5, + 0x3A, + 0xF2, 0xFF, 0xFF, 0x66, @@ -2848,8 +3776,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x8D, - 0xF5, + 0xED, + 0xF1, 0xFF, 0xFF, 0x0F, @@ -2875,8 +3803,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x72, - 0xF5, + 0xD2, + 0xF1, 0xFF, 0xFF, 0x66, @@ -2921,8 +3849,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x44, - 0xF5, + 0xA4, + 0xF1, 0xFF, 0xFF, 0x66, @@ -2992,8 +3920,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0xFD, - 0xF4, + 0x5D, + 0xF1, 0xFF, 0xFF, 0x0F, @@ -3019,8 +3947,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0xE2, - 0xF4, + 0x42, + 0xF1, 0xFF, 0xFF, 0x66, @@ -3079,8 +4007,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xA6, - 0xF4, + 0x06, + 0xF1, 0xFF, 0xFF, 0x0F, @@ -3116,8 +4044,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x81, - 0xF4, + 0xE1, + 0xF0, 0xFF, 0xFF, 0x66, @@ -3158,8 +4086,8 @@ const unsigned char UVM_Init[4104]= 0x89, 0xC2, 0xE9, - 0x57, - 0xF4, + 0xB7, + 0xF0, 0xFF, 0xFF, 0x0F, @@ -3196,8 +4124,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x31, - 0xF4, + 0x91, + 0xF0, 0xFF, 0xFF, 0x66, @@ -3251,8 +4179,8 @@ const unsigned char UVM_Init[4104]= 0x89, 0xC9, 0xE9, - 0xFA, - 0xF3, + 0x5A, + 0xF0, 0xFF, 0xFF, 0x66, @@ -3275,8 +4203,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0xE2, - 0xF3, + 0x42, + 0xF0, 0xFF, 0xFF, 0x66, @@ -3308,8 +4236,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xC1, - 0xF3, + 0x21, + 0xF0, 0xFF, 0xFF, 0x66, @@ -3340,8 +4268,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xA1, - 0xF3, + 0x01, + 0xF0, 0xFF, 0xFF, 0x66, @@ -3395,8 +4323,8 @@ const unsigned char UVM_Init[4104]= 0x89, 0xC9, 0xE9, - 0x6A, - 0xF3, + 0xCA, + 0xEF, 0xFF, 0xFF, 0x66, @@ -3419,8 +4347,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x52, - 0xF3, + 0xB2, + 0xEF, 0xFF, 0xFF, 0x66, @@ -3453,8 +4381,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x30, - 0xF3, + 0x90, + 0xEF, 0xFF, 0xFF, 0x0F, @@ -3484,8 +4412,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x11, - 0xF3, + 0x71, + 0xEF, 0xFF, 0xFF, 0x66, @@ -3517,8 +4445,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xF0, - 0xF2, + 0x50, + 0xEF, 0xFF, 0xFF, 0x0F, @@ -3547,8 +4475,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xD2, - 0xF2, + 0x32, + 0xEF, 0xFF, 0xFF, 0x66, @@ -3580,8 +4508,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xB1, - 0xF2, + 0x11, + 0xEF, 0xFF, 0xFF, 0x66, @@ -3611,8 +4539,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x92, 0xF2, + 0xEE, 0xFF, 0xFF, 0x66, @@ -3645,8 +4573,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x70, - 0xF2, + 0xD0, + 0xEE, 0xFF, 0xFF, 0x0F, @@ -3676,8 +4604,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x51, - 0xF2, + 0xB1, + 0xEE, 0xFF, 0xFF, 0x66, @@ -3703,8 +4631,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x36, - 0xF2, + 0x96, + 0xEE, 0xFF, 0xFF, 0x0F, @@ -3739,8 +4667,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x12, - 0xF2, + 0x72, + 0xEE, 0xFF, 0xFF, 0x66, @@ -3771,8 +4699,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xF2, - 0xF1, + 0x52, + 0xEE, 0xFF, 0xFF, 0x66, @@ -3803,8 +4731,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0xD2, - 0xF1, + 0x32, + 0xEE, 0xFF, 0xFF, 0x66, @@ -3849,8 +4777,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0xA4, - 0xF1, + 0x04, + 0xEE, 0xFF, 0xFF, 0x66, @@ -3883,8 +4811,8 @@ const unsigned char UVM_Init[4104]= 0x09, 0xC7, 0xE9, - 0x82, - 0xF1, + 0xE2, + 0xED, 0xFF, 0xFF, 0x66, @@ -3929,8 +4857,8 @@ const unsigned char UVM_Init[4104]= 0x00, 0x00, 0xE9, - 0x54, - 0xF1, + 0xB4, + 0xED, 0xFF, 0xFF, 0x00, @@ -3946,6 +4874,20 @@ const unsigned char UVM_Init[4104]= 0x68, 0x20, 0x00, + 0x0D, + 0x0A, + 0x65, + 0x6D, + 0x70, + 0x74, + 0x79, + 0x00, + 0x0D, + 0x0A, + 0x72, + 0x61, + 0x77, + 0x00, 0x2C, 0x20, 0x4C, @@ -3962,7 +4904,7 @@ const unsigned char UVM_Init[4104]= 0x79, 0x20, 0x32, - 0x32, + 0x33, 0x20, 0x32, 0x30, @@ -3972,14 +4914,32 @@ const unsigned char UVM_Init[4104]= 0x2C, 0x20, 0x00, - 0x31, - 0x39, + 0x32, + 0x30, 0x3A, - 0x35, - 0x38, + 0x34, + 0x37, 0x3A, - 0x30, - 0x39, + 0x34, + 0x35, + 0x00, + 0x0D, + 0x0A, + 0x69, + 0x6E, + 0x76, + 0x00, + 0x0D, + 0x0A, + 0x69, + 0x6E, + 0x00, + 0x0D, + 0x0A, + 0x6F, + 0x75, + 0x74, + 0x00, 0x00, 0x00, 0x00, diff --git a/Project/RVMDK-STM32F767IGT6/M7M1.uvguix.pry b/Project/RVMDK-STM32F767IGT6/M7M1.uvguix.pry index 58bedfe..190e68a 100644 --- a/Project/RVMDK-STM32F767IGT6/M7M1.uvguix.pry +++ b/Project/RVMDK-STM32F767IGT6/M7M1.uvguix.pry @@ -16,7 +16,7 @@ 346 Code Coverage - 232 100 + 232 528 204 @@ -95,7 +95,7 @@ 0 3072 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001900000005000000010000006D463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3550315F4D7550726F6B61726F6E5C50726F6A6563745C52564D444B2D53544D333246373637494754362D52564D2D44554B544150455C44656275675C4F75747075745C564D5F44554B544150452E63000000000C564D5F44554B544150452E6300000000C5D4F200FFFFFFFF75463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C53544D3332463778785F48414C5F4472697665725C5372635C73746D3332663778785F68616C5F74696D2E63000000001373746D3332663778785F68616C5F74696D2E6300000000FFDC7800FFFFFFFF78463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C434D5349535C4465766963655C53545C53544D3332463778785C496E636C7564655C73746D33326637363778782E68000000000D73746D33326637363778782E6800000000BECEA100FFFFFFFF78463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C53544D3332463778785F48414C5F4472697665725C5372635C73746D3332663778785F68616C5F636F727465782E63000000001673746D3332663778785F68616C5F636F727465782E6300000000F0A0A100FFFFFFFF61463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C434D5349535C496E636C7564655C636F72655F636D372E68000000000A636F72655F636D372E6800000000BCA8E100FFFFFFFF57463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D785F61736D2E730000000012706C6174666F726D5F636D785F61736D2E73000000009CC1B600FFFFFFFF42463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C706774626C2E630000000007706774626C2E6300000000F7B88600FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C7072637468642E6300000000087072637468642E6300000000D9ADC200FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C736967696E762E630000000008736967696E762E6300000000A5C2D700FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C63617074626C2E63000000000863617074626C2E6300000000B3A6BE00FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C63617074626C2E68000000000863617074626C2E6800000000EAD6A300FFFFFFFF53463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D782E63000000000E706C6174666F726D5F636D782E6300000000F6FA7D00FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C6B65726E656C2E6800000000086B65726E656C2E6800000000B5E99D00FFFFFFFF41463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C524D452E680000000005524D452E68000000005FC3CF00FFFFFFFF53463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C524D455F706C6174666F726D2E68000000000E524D455F706C6174666F726D2E6800000000C1838300FFFFFFFF60463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D785F636F6E662E680000000013706C6174666F726D5F636D785F636F6E662E6800000000CACAD500FFFFFFFF75463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C43686970735C53544D33324637363749475C706C6174666F726D5F53544D33324637363749472E680000000016706C6174666F726D5F53544D33324637363749472E6800000000C5D4F200FFFFFFFF5B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D782E68000000000E706C6174666F726D5F636D782E6800000000FFDC7800FFFFFFFF4A463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C706774626C2E680000000007706774626C2E6800000000BECEA100FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C7072637468642E6800000000087072637468642E6800000000F0A0A100FFFFFFFF42463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C6B6F74626C2E6300000000076B6F74626C2E6300000000BCA8E100FFFFFFFF4A463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C6B6F74626C2E6800000000076B6F74626C2E68000000009CC1B600FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C6B65726E656C2E6300000000086B65726E656C2E6300000000F7B88600FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C736967696E762E680000000008736967696E762E6800000000D9ADC200FFFFFFFF77463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C43686970735C53544D33324637363749475C706C6174666F726D5F53544D33324637363749472E7363740000000018706C6174666F726D5F53544D33324637363749472E73637400000000A5C2D700FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001F010000660000008007000010030000 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001900000013000000010000004B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C63617074626C2E68000000000863617074626C2E6800000000FFDC7800FFFFFFFF77463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C43686970735C53544D33324637363749475C706C6174666F726D5F53544D33324637363749472E7363740000000018706C6174666F726D5F53544D33324637363749472E73637400000000BECEA100FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C736967696E762E680000000008736967696E762E6800000000F0A0A100FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C6B65726E656C2E6300000000086B65726E656C2E6300000000BCA8E100FFFFFFFF4A463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C6B6F74626C2E6800000000076B6F74626C2E68000000009CC1B600FFFFFFFF42463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C6B6F74626C2E6300000000076B6F74626C2E6300000000F7B88600FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C7072637468642E6800000000087072637468642E6800000000D9ADC200FFFFFFFF4A463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C706774626C2E680000000007706774626C2E6800000000A5C2D700FFFFFFFF5B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D782E68000000000E706C6174666F726D5F636D782E6800000000B3A6BE00FFFFFFFF75463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C43686970735C53544D33324637363749475C706C6174666F726D5F53544D33324637363749472E680000000016706C6174666F726D5F53544D33324637363749472E6800000000EAD6A300FFFFFFFF60463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D785F636F6E662E680000000013706C6174666F726D5F636D785F636F6E662E6800000000F6FA7D00FFFFFFFF53463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C506C6174666F726D5C524D455F706C6174666F726D2E68000000000E524D455F706C6174666F726D2E6800000000B5E99D00FFFFFFFF41463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C524D452E680000000005524D452E68000000005FC3CF00FFFFFFFF4B463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C496E636C7564655C4B65726E656C5C6B65726E656C2E6800000000086B65726E656C2E6800000000C1838300FFFFFFFF53463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D782E63000000000E706C6174666F726D5F636D782E6300000000CACAD500FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C63617074626C2E63000000000863617074626C2E6300000000C5D4F200FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C736967696E762E630000000008736967696E762E6300000000FFDC7800FFFFFFFF43463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C7072637468642E6300000000087072637468642E6300000000BECEA100FFFFFFFF42463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C4B65726E656C5C706774626C2E630000000007706774626C2E6300000000F0A0A100FFFFFFFF57463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D374D315F4D7545756B61726F6E5C4D45756B61726F6E5C506C6174666F726D5C436F727465784D5C706C6174666F726D5F636D785F61736D2E730000000012706C6174666F726D5F636D785F61736D2E7300000000BCA8E100FFFFFFFF61463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C434D5349535C496E636C7564655C636F72655F636D372E68000000000A636F72655F636D372E68000000009CC1B600FFFFFFFF78463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C53544D3332463778785F48414C5F4472697665725C5372635C73746D3332663778785F68616C5F636F727465782E63000000001673746D3332663778785F68616C5F636F727465782E6300000000F7B88600FFFFFFFF78463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C434D5349535C4465766963655C53545C53544D3332463778785C496E636C7564655C73746D33326637363778782E68000000000D73746D33326637363778782E6800000000D9ADC200FFFFFFFF75463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3050305F4C6962726172795C53544D3332437562655F46575F46375F56312E31312E305C447269766572735C53544D3332463778785F48414C5F4472697665725C5372635C73746D3332663778785F68616C5F74696D2E63000000001373746D3332663778785F68616C5F74696D2E6300000000A5C2D700FFFFFFFF6D463A5C436F64655F4C6962726172795C4D43555C4D7574617475735C4D3550315F4D7550726F6B61726F6E5C50726F6A6563745C52564D444B2D53544D333246373637494754362D52564D2D44554B544150455C44656275675C4F75747075745C564D5F44554B544150452E63000000000C564D5F44554B544150452E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001F010000660000008007000010030000 @@ -1318,7 +1318,7 @@ 16 - 560000006D0000004601000038010000 + 0A0000000A0000006E0000006E000000 @@ -1690,7 +1690,7 @@ File 2311 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000124F535F4350555F5379735469636B496E697496000000000000001400124F535F4350555F5379735469636B496E697407696E636C7564650953454D4150484F52450353454D0C7076506172616D65746572730D7078437265617465645461736B067374646C69620474696D65077265616C6C6F630574696D65281A64756B5F64656661756C745F616C6C6F635F66756E6374696F6E05656E64696606737472696E67066D616C6C6F63086C6963656E7365730944554B5F465F41524D0A44554B5F465F4D4950531144554B5F5553455F425954454F52444552062268656170220E737461636B206F766572666C6F770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000124F535F4350555F5379735469636B496E697496000000000000001400124F535F4350555F5379735469636B496E697407696E636C7564650953454D4150484F52450353454D0C7076506172616D65746572730D7078437265617465645461736B067374646C69620474696D65077265616C6C6F630574696D65281A64756B5F64656661756C745F616C6C6F635F66756E6374696F6E05656E64696606737472696E67066D616C6C6F63086C6963656E7365730944554B5F465F41524D0A44554B5F465F4D4950531144554B5F5553455F425954454F52444552062268656170220E737461636B206F766572666C6F770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -1706,7 +1706,7 @@ Build 670 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000044D374D3196000000000000000100044D374D31000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000044D374D3196000000000000000100044D374D31000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 583 @@ -1722,7 +1722,7 @@ Debug 2372 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F777300000000000000000000000001000000010000000000000000000000010000000400138093070000000000003300000008554152542023263100000000000000000000000001000000010000000000000000000000010000000000138094070000000000003300000008554152542023263200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000008554152542023263300000000000000000000000001000000010000000000000000000000010000000000138096070000000000003300000015446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F777300000000000000000000000001000000010000000000000000000000010000000400138093070000000000003300000008554152542023263100000000000000000000000001000000010000000000000000000000010000000000138094070000000000003300000008554152542023263200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000008554152542023263300000000000000000000000001000000010000000000000000000000010000000000138096070000000000003300000015446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1815,7 +1815,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000007D07000079020000 16 @@ -1835,7 +1835,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -1855,7 +1855,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -1875,7 +1875,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -1915,7 +1915,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -1935,7 +1935,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000007D07000079020000 16 @@ -1955,7 +1955,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000007D07000079020000 16 @@ -1975,7 +1975,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -1995,7 +1995,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2015,7 +2015,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2035,7 +2035,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2055,7 +2055,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000007D07000079020000 16 @@ -2175,7 +2175,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000007D07000079020000 16 @@ -2195,7 +2195,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2255,7 +2255,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2275,7 +2275,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2295,7 +2295,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2315,7 +2315,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2815,7 +2815,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -2835,7 +2835,7 @@ 0 16 - 2D060000660000007D07000079020000 + 54050000660000005008000079020000 16 @@ -3324,7 +3324,7 @@ 2932 - 0000000008000000000000000010000001000000FFFFFFFFFFFFFFFF270100004F0000002B0100009202000001000000020000100400000001000000D6FEFFFFFBFFFFFF00000000000000000000000001000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000FFFF02000B004354616262656450616E650010000001000000000000006600000027010000A9020000000000004F00000027010000920200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000040000001000000FFFFFFFFFFFFFFFF260600004F0000002A0600009202000001000000020000100400000001000000F9FEFFFF7F02000000000000000000000000000001000000FFFFFFFF14000000CB00000057010000CC000000F08B00005A010000790700008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000400000010000002A0600006600000080070000A90200002A0600004F00000080070000920200000000000040280056140000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF1343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572010000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF8C0600004F0000009006000099020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000900600006600000080070000B0020000900600004F000000800700009902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000080000001000000FFFFFFFFFFFFFFFF0000000092020000800700009602000001000000010000100400000001000000C0FDFFFF4C010000FFFFFFFF05000000C5000000C7000000B401000077940000C60000000180008000000100000000000000AD02000080070000FD030000000000009602000080070000E60300000000000040820056050000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF07436F6D6D616E6401000000C600000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 0000000008000000000000000010000001000000FFFFFFFFFFFFFFFF270100004F0000002B0100009202000001000000020000100400000001000000D6FEFFFFFBFFFFFF00000000000000000000000001000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000FFFF02000B004354616262656450616E650010000001000000000000006600000027010000A9020000000000004F00000027010000920200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000040000001000000FFFFFFFFFFFFFFFF4D0500004F000000510500009202000001000000020000100400000001000000B6FCFFFF0003000000000000000000000000000001000000FFFFFFFF14000000CB00000057010000CC000000F08B00005A010000790700008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000400000010000007E0400006600000080070000A9020000510500004F00000080070000920200000000000040280056140000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF1343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572010000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF8C0600004F0000009006000099020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000900600006600000080070000B0020000900600004F000000800700009902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000080000001000000FFFFFFFFFFFFFFFF0000000092020000800700009602000001000000010000100400000001000000C0FDFFFF4C010000FFFFFFFF05000000C5000000C7000000B401000077940000C60000000180008000000100000000000000AD02000080070000FD030000000000009602000080070000E60300000000000040820056050000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF07436F6D6D616E6401000000C600000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -3387,120 +3387,111 @@ 0 100 - 5 - - ..\..\..\M5P1_MuProkaron\Project\RVMDK-STM32F767IGT6-RVM-DUKTAPE\Debug\Output\VM_DUKTAPE.c - 38 - 1 - 18 - 1 - - 0 - + 19 - ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_tim.c - 30 - 73 - 102 + ..\..\MEukaron\Include\Kernel/captbl.h + 20 + 222 + 259 1 0 - ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f767xx.h - 3 - 52 - 64 + ..\..\MEukaron\Include\Platform\CortexM\Chips\STM32F767IG\platform_STM32F767IG.sct + 29 + 44 + 83 1 0 - ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cortex.c - 0 - 426 - 436 + ..\..\MEukaron\Include\Kernel/siginv.h + 18 + 1 + 12 1 0 - ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\CMSIS\Include\core_cm7.h - 0 - 1838 - 1848 + ..\..\MEukaron\Kernel\kernel.c + 19 + 283 + 312 1 0 - ..\..\MEukaron\Platform\CortexM\platform_cmx_asm.s - 26 - 645 - 656 + ..\..\MEukaron\Include\Kernel/kotbl.h + 18 + 29 + 30 1 0 - ..\..\MEukaron\Kernel\pgtbl.c - 26 - 580 - 607 + ..\..\MEukaron\Kernel\kotbl.c + 24 + 28 + 42 1 0 - ..\..\MEukaron\Kernel\prcthd.c - 16 - 1414 - 1458 + ..\..\MEukaron\Include\Kernel/prcthd.h + 82 + 15 + 52 1 0 - ..\..\MEukaron\Kernel\siginv.c - 74 - 571 - 598 + ..\..\MEukaron\Include\Kernel/pgtbl.h + 77 + 91 + 128 1 0 - ..\..\MEukaron\Kernel\captbl.c - 49 - 502 - 521 + ..\..\MEukaron\Include\Platform/CortexM/platform_cmx.h + 16 + 75 + 78 1 0 - ..\..\MEukaron\Include\Kernel/captbl.h + ..\..\MEukaron\Include\Platform/CortexM/Chips/STM32F767IG/platform_STM32F767IG.h 0 - 219 - 231 + 9 + 19 1 0 - ..\..\MEukaron\Platform\CortexM\platform_cmx.c - 23 - 482 - 500 + ..\..\MEukaron\Include\Platform/CortexM/platform_cmx_conf.h + 58 + 1 + 10 1 0 - ..\..\MEukaron\Include\Kernel/kernel.h - 76 - 217 - 247 + ..\..\MEukaron\Include\Platform/RME_platform.h + 20 + 1 + 9 1 0 @@ -3515,100 +3506,109 @@ 0 - ..\..\MEukaron\Include\Platform/RME_platform.h - 20 - 1 - 9 + ..\..\MEukaron\Include\Kernel/kernel.h + 28 + 89 + 126 1 0 - ..\..\MEukaron\Include\Platform/CortexM/platform_cmx_conf.h - 58 - 1 - 10 + ..\..\MEukaron\Platform\CortexM\platform_cmx.c + 23 + 482 + 500 1 0 - ..\..\MEukaron\Include\Platform/CortexM/Chips/STM32F767IG/platform_STM32F767IG.h - 0 - 9 - 19 + ..\..\MEukaron\Kernel\captbl.c + 20 + 395 + 396 1 0 - ..\..\MEukaron\Include\Platform/CortexM/platform_cmx.h - 44 - 468 - 503 + ..\..\MEukaron\Kernel\siginv.c + 29 + 685 + 725 1 0 - ..\..\MEukaron\Include\Kernel/pgtbl.h - 77 - 100 - 128 + ..\..\MEukaron\Kernel\prcthd.c + 16 + 1421 + 1458 1 0 - ..\..\MEukaron\Include\Kernel/prcthd.h - 23 - 140 - 141 + ..\..\MEukaron\Kernel\pgtbl.c + 26 + 580 + 607 1 0 - ..\..\MEukaron\Kernel\kotbl.c - 24 - 28 - 42 + ..\..\MEukaron\Platform\CortexM\platform_cmx_asm.s + 26 + 642 + 658 1 0 - ..\..\MEukaron\Include\Kernel/kotbl.h - 45 - 10 - 18 + ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\CMSIS\Include\core_cm7.h + 0 + 1838 + 1848 1 0 - ..\..\MEukaron\Kernel\kernel.c - 25 - 165 - 195 + ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_cortex.c + 0 + 426 + 436 1 0 - ..\..\MEukaron\Include\Kernel/siginv.h - 29 - 42 - 63 + ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f767xx.h + 3 + 52 + 64 1 0 - ..\..\MEukaron\Include\Platform\CortexM\Chips\STM32F767IG\platform_STM32F767IG.sct - 29 - 44 - 83 + ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_tim.c + 30 + 73 + 102 + 1 + + 0 + + + ..\..\..\M5P1_MuProkaron\Project\RVMDK-STM32F767IGT6-RVM-DUKTAPE\Debug\Output\VM_DUKTAPE.c + 23 + 1 + 8 1 0 diff --git a/Project/RVMDK-STM32F767IGT6/M7M1.uvoptx b/Project/RVMDK-STM32F767IGT6/M7M1.uvoptx index 5bd0589..f933b79 100644 --- a/Project/RVMDK-STM32F767IGT6/M7M1.uvoptx +++ b/Project/RVMDK-STM32F767IGT6/M7M1.uvoptx @@ -240,7 +240,7 @@ 1 1 1 - 0 + 1 0 0 ..\..\MEukaron\Kernel\captbl.c diff --git a/Project/RVMDK-STM32F767IGT6/M7M1.uvprojx b/Project/RVMDK-STM32F767IGT6/M7M1.uvprojx index 0673bef..2079031 100644 --- a/Project/RVMDK-STM32F767IGT6/M7M1.uvprojx +++ b/Project/RVMDK-STM32F767IGT6/M7M1.uvprojx @@ -331,7 +331,7 @@ 0 0 - + -Dlikely(x)="__builtin_expect(!!(x), 1)" -Dunlikely(x)="__builtin_expect(!!(x), 0)" STM32F767xx,USE_HAL_DRIVER ..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\STM32F7xx_HAL_Driver\Inc;..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\CMSIS\Include;..\..\MEukaron\Include;..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\STM32F7xx_HAL_Driver\Inc\Conf;..\..\..\M0P0_Library\STM32Cube_FW_F7_V1.11.0\Drivers\CMSIS\Device\ST\STM32F7xx\Include