@@ -701,7 +701,8 @@ mod imp {
701
701
static IMAGE_FILE_MACHINE_IA64 : libc:: DWORD = 0x0200 ;
702
702
static IMAGE_FILE_MACHINE_AMD64 : libc:: DWORD = 0x8664 ;
703
703
704
- #[ repr( packed) ]
704
+ #[ cfg( stage0) ]
705
+ #[ packed]
705
706
struct SYMBOL_INFO {
706
707
SizeOfStruct : libc:: c_ulong ,
707
708
TypeIndex : libc:: c_ulong ,
@@ -723,6 +724,30 @@ mod imp {
723
724
Name : [ libc:: c_char , ..MAX_SYM_NAME ] ,
724
725
}
725
726
727
+ #[ cfg( not( stage0) ) ]
728
+ #[ repr( C , packed) ]
729
+ struct SYMBOL_INFO {
730
+ SizeOfStruct : libc:: c_ulong ,
731
+ TypeIndex : libc:: c_ulong ,
732
+ Reserved : [ u64 , ..2 ] ,
733
+ Index : libc:: c_ulong ,
734
+ Size : libc:: c_ulong ,
735
+ ModBase : u64 ,
736
+ Flags : libc:: c_ulong ,
737
+ Value : u64 ,
738
+ Address : u64 ,
739
+ Register : libc:: c_ulong ,
740
+ Scope : libc:: c_ulong ,
741
+ Tag : libc:: c_ulong ,
742
+ NameLen : libc:: c_ulong ,
743
+ MaxNameLen : libc:: c_ulong ,
744
+ // note that windows has this as 1, but it basically just means that
745
+ // the name is inline at the end of the struct. For us, we just bump
746
+ // the struct size up to MAX_SYM_NAME.
747
+ Name : [ libc:: c_char , ..MAX_SYM_NAME ] ,
748
+ }
749
+
750
+
726
751
#[ repr( C ) ]
727
752
enum ADDRESS_MODE {
728
753
AddrMode1616 ,
@@ -772,6 +797,7 @@ mod imp {
772
797
773
798
static MAXIMUM_SUPPORTED_EXTENSION : uint = 512 ;
774
799
800
+ #[ repr( C ) ]
775
801
pub struct CONTEXT {
776
802
ContextFlags : libc:: DWORD ,
777
803
Dr0 : libc:: DWORD ,
@@ -800,6 +826,7 @@ mod imp {
800
826
ExtendedRegisters : [ u8 , ..MAXIMUM_SUPPORTED_EXTENSION ] ,
801
827
}
802
828
829
+ #[ repr( C ) ]
803
830
pub struct FLOATING_SAVE_AREA {
804
831
ControlWord : libc:: DWORD ,
805
832
StatusWord : libc:: DWORD ,
@@ -829,6 +856,7 @@ mod imp {
829
856
use libc:: { c_longlong, c_ulonglong} ;
830
857
use libc:: types:: os:: arch:: extra:: { WORD , DWORD , DWORDLONG } ;
831
858
859
+ #[ repr( C ) ]
832
860
pub struct CONTEXT {
833
861
P1Home : DWORDLONG ,
834
862
P2Home : DWORDLONG ,
@@ -886,11 +914,13 @@ mod imp {
886
914
LastExceptionFromRip : DWORDLONG ,
887
915
}
888
916
917
+ #[ repr( C ) ]
889
918
pub struct M128A {
890
919
Low : c_ulonglong ,
891
920
High : c_longlong
892
921
}
893
922
923
+ #[ repr( C ) ]
894
924
pub struct FLOATING_SAVE_AREA {
895
925
_Dummy : [ u8 , ..512 ] // FIXME: Fill this out
896
926
}
@@ -907,6 +937,7 @@ mod imp {
907
937
}
908
938
}
909
939
940
+ #[ repr( C ) ]
910
941
struct Cleanup {
911
942
handle : libc:: HANDLE ,
912
943
SymCleanup : SymCleanupFn ,
0 commit comments