Index: locales.c =================================================================== --- locales.c (revision 47880) +++ locales.c (working copy) @@ -19,8 +19,10 @@ #include #include #include +#include #include #include +#include #include @@ -511,6 +513,59 @@ return TRUE; } +void ves_icall_Mono_Globalization_Unicode_Normalization_load_normalization_resource (guint8 **argProps, guint8** argMappedChars, guint8** argCharMapIndex, guint8** argHelperIndex, guint8** argMapIdxToComposite, guint8** argCombiningClass) +{ + *argProps = props; + *argMappedChars = (guint8*) mappedChars; + *argCharMapIndex = (guint8*) charMapIndex; + *argHelperIndex = (guint8*) helperIndex; + *argMapIdxToComposite = (guint8*) mapIdxToComposite; + *argCombiningClass = combiningClass; +} + +void ves_icall_Mono_Globalization_Unicode_MSCompatUnicodeTable_load_collation_resource (guint32 resource_index, guint8 **location) +{ + switch (resource_index) { + case 0: + *location = (void*) collation_table_ignorableFlags; + break; + case 1: + *location = (void*) collation_table_category; + break; + case 2: + *location = (void*) collation_table_level1; + break; + case 3: + *location = (void*) collation_table_level2; + break; + case 4: + *location = (void*) collation_table_level3; + break; + case 5: + *location = (void*) collation_table_tailoring_infos; + break; + case 6: + *location = (void*) collation_table_tailoring; + break; + case 7: + *location = (void*) collation_table_collation_cjk_cjkCHS; + break; + case 8: + *location = (void*) collation_table_collation_cjk_cjkCHT; + break; + case 9: + *location = (void*) collation_table_collation_cjk_cjkJA; + break; + case 10: + *location = (void*) collation_table_collation_cjk_cjkKO; + break; + case 11: + *location = (void*) collation_table_collation_cjk_cjkKOlv2; + break; + } +} + + #ifdef HAVE_ICU #include Index: locales.h =================================================================== --- locales.h (revision 47880) +++ locales.h (working copy) @@ -38,6 +38,8 @@ extern void ves_icall_System_Globalization_CompareInfo_construct_compareinfo (MonoCompareInfo *comp, MonoString *locale); extern int ves_icall_System_Globalization_CompareInfo_internal_compare (MonoCompareInfo *this, MonoString *str1, gint32 off1, gint32 len1, MonoString *str2, gint32 off2, gint32 len2, gint32 options); extern void ves_icall_System_Globalization_CompareInfo_free_internal_collator (MonoCompareInfo *this); +extern void ves_icall_Mono_Globalization_Unicode_Normalization_load_normalization_resource (guint8 **argProps, guint8** argMappedChars, guint8** argCharMapIndex, guint8** argHelperIndex, guint8** argMapIdxToComposite, guint8** argCombiningClass); +extern void ves_icall_Mono_Globalization_Unicode_MSCompatUnicodeTable_load_collation_resource (guint32 resource_index, guint8 **location); extern void ves_icall_System_Globalization_CompareInfo_assign_sortkey (MonoCompareInfo *this, MonoSortKey *key, MonoString *source, gint32 options); extern int ves_icall_System_Globalization_CompareInfo_internal_index (MonoCompareInfo *this, MonoString *source, gint32 sindex, gint32 count, MonoString *value, gint32 options, MonoBoolean first); extern int ves_icall_System_Globalization_CompareInfo_internal_index_char (MonoCompareInfo *this, MonoString *source, gint32 sindex, gint32 count, gunichar2 value, gint32 options, MonoBoolean first); Index: icall.c =================================================================== --- icall.c (revision 47880) +++ icall.c (working copy) @@ -6332,6 +6332,14 @@ {"internal_index(string,int,int,string,System.Globalization.CompareOptions,bool)", ves_icall_System_Globalization_CompareInfo_internal_index} }; +static const IcallEntry mscompatunicodetable_icalls [] = { + {"load_collation_resource(int,byte**)", ves_icall_Mono_Globalization_Unicode_MSCompatUnicodeTable_load_collation_resource} +}; + +static const IcallEntry normalization_icalls [] = { + {"load_normalization_resource(byte**,byte**,byte**,byte**,byte**,byte**)", ves_icall_Mono_Globalization_Unicode_Normalization_load_normalization_resource} +}; + static const IcallEntry gc_icalls [] = { {"GetTotalMemory", ves_icall_System_GC_GetTotalMemory}, {"InternalCollect", ves_icall_System_GC_InternalCollect}, @@ -7006,6 +7014,8 @@ /* keep the entries all sorted */ static const IcallMap icall_entries [] = { + {"Mono.Globalization.Unicode.MSCompatUnicodeTable", mscompatunicodetable_icalls, G_N_ELEMENTS (mscompatunicodetable_icalls)}, + {"Mono.Globalization.Unicode.Normalization", normalization_icalls, G_N_ELEMENTS (normalization_icalls)}, {"Mono.Runtime", runtime_icalls, G_N_ELEMENTS (runtime_icalls)}, {"Mono.Security.Cryptography.KeyPairPersistence", keypair_icalls, G_N_ELEMENTS (keypair_icalls)}, {"System.Activator", activator_icalls, G_N_ELEMENTS (activator_icalls)},