10
10
#include <unistd.h>
11
11
#include <arpa/inet.h>
12
12
#include <netinet/tcp.h>
13
- #include <linux/if_packet.h>
13
+ // #include <linux/if_packet.h>
14
14
#include <sched.h>
15
15
#include "qemu.h"
16
+ #include "shim_gettid.h"
16
17
17
18
int do_strace = 0 ;
18
19
@@ -165,9 +166,9 @@ static void print_si_code(int arg)
165
166
case SI_USER :
166
167
codename = "SI_USER" ;
167
168
break ;
168
- case SI_KERNEL :
169
- codename = "SI_KERNEL" ;
170
- break ;
169
+ // case SI_KERNEL:
170
+ // codename = "SI_KERNEL";
171
+ // break;
171
172
case SI_QUEUE :
172
173
codename = "SI_QUEUE" ;
173
174
break ;
@@ -180,12 +181,12 @@ static void print_si_code(int arg)
180
181
case SI_ASYNCIO :
181
182
codename = "SI_ASYNCIO" ;
182
183
break ;
183
- case SI_SIGIO :
184
- codename = "SI_SIGIO" ;
185
- break ;
186
- case SI_TKILL :
187
- codename = "SI_TKILL" ;
188
- break ;
184
+ // case SI_SIGIO:
185
+ // codename = "SI_SIGIO";
186
+ // break;
187
+ // case SI_TKILL:
188
+ // codename = "SI_TKILL";
189
+ // break;
189
190
default :
190
191
gemu_log ("%d" , arg );
191
192
return ;
@@ -381,37 +382,37 @@ print_sockaddr(abi_ulong addr, abi_long addrlen)
381
382
gemu_log ("}" );
382
383
break ;
383
384
}
384
- case AF_PACKET : {
385
- struct target_sockaddr_ll * ll = (struct target_sockaddr_ll * )sa ;
386
- uint8_t * c = (uint8_t * )& ll -> sll_addr ;
387
- gemu_log ("{sll_family=AF_PACKET,"
388
- "sll_protocol=htons(0x%04x),if%d,pkttype=" ,
389
- ntohs (ll -> sll_protocol ), ll -> sll_ifindex );
390
- switch (ll -> sll_pkttype ) {
391
- case PACKET_HOST :
392
- gemu_log ("PACKET_HOST" );
393
- break ;
394
- case PACKET_BROADCAST :
395
- gemu_log ("PACKET_BROADCAST" );
396
- break ;
397
- case PACKET_MULTICAST :
398
- gemu_log ("PACKET_MULTICAST" );
399
- break ;
400
- case PACKET_OTHERHOST :
401
- gemu_log ("PACKET_OTHERHOST" );
402
- break ;
403
- case PACKET_OUTGOING :
404
- gemu_log ("PACKET_OUTGOING" );
405
- break ;
406
- default :
407
- gemu_log ("%d" , ll -> sll_pkttype );
408
- break ;
409
- }
410
- gemu_log (",sll_addr=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x" ,
411
- c [0 ], c [1 ], c [2 ], c [3 ], c [4 ], c [5 ], c [6 ], c [7 ]);
412
- gemu_log ("}" );
413
- break ;
414
- }
385
+ // case AF_PACKET: {
386
+ // struct target_sockaddr_ll *ll = (struct target_sockaddr_ll *)sa;
387
+ // uint8_t *c = (uint8_t *)&ll->sll_addr;
388
+ // gemu_log("{sll_family=AF_PACKET,"
389
+ // "sll_protocol=htons(0x%04x),if%d,pkttype=",
390
+ // ntohs(ll->sll_protocol), ll->sll_ifindex);
391
+ // switch (ll->sll_pkttype) {
392
+ // case PACKET_HOST:
393
+ // gemu_log("PACKET_HOST");
394
+ // break;
395
+ // case PACKET_BROADCAST:
396
+ // gemu_log("PACKET_BROADCAST");
397
+ // break;
398
+ // case PACKET_MULTICAST:
399
+ // gemu_log("PACKET_MULTICAST");
400
+ // break;
401
+ // case PACKET_OTHERHOST:
402
+ // gemu_log("PACKET_OTHERHOST");
403
+ // break;
404
+ // case PACKET_OUTGOING:
405
+ // gemu_log("PACKET_OUTGOING");
406
+ // break;
407
+ // default:
408
+ // gemu_log("%d", ll->sll_pkttype);
409
+ // break;
410
+ // }
411
+ // gemu_log(",sll_addr=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
412
+ // c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]);
413
+ // gemu_log("}");
414
+ // break;
415
+ // }
415
416
default :
416
417
gemu_log ("{sa_family=%d, sa_data={" , sa -> sa_family );
417
418
for (i = 0 ; i < 13 ; i ++ ) {
@@ -438,9 +439,9 @@ print_socket_domain(int domain)
438
439
case PF_INET :
439
440
gemu_log ("PF_INET" );
440
441
break ;
441
- case PF_PACKET :
442
- gemu_log ("PF_PACKET" );
443
- break ;
442
+ // case PF_PACKET:
443
+ // gemu_log("PF_PACKET");
444
+ // break;
444
445
default :
445
446
gemu_log ("%d" , domain );
446
447
break ;
@@ -477,6 +478,7 @@ print_socket_type(int type)
477
478
static void
478
479
print_socket_protocol (int domain , int type , int protocol )
479
480
{
481
+ /*
480
482
if (domain == AF_PACKET
481
483
#ifdef TARGET_SOCK_PACKET
482
484
|| (domain == AF_INET && type == TARGET_SOCK_PACKET)
@@ -491,6 +493,7 @@ print_socket_protocol(int domain, int type, int protocol)
491
493
}
492
494
return;
493
495
}
496
+ */
494
497
495
498
switch (protocol ) {
496
499
case IPPROTO_IP :
@@ -846,7 +849,9 @@ UNUSED static struct flags open_flags[] = {
846
849
FLAG_TARGET (O_NOFOLLOW ),
847
850
FLAG_TARGET (O_NONBLOCK ), /* also O_NDELAY */
848
851
FLAG_TARGET (O_DSYNC ),
852
+ #ifdef __O_SYNC
849
853
FLAG_TARGET (__O_SYNC ),
854
+ #endif
850
855
FLAG_TARGET (O_TRUNC ),
851
856
#ifdef O_DIRECT
852
857
FLAG_TARGET (O_DIRECT ),
@@ -874,21 +879,39 @@ UNUSED static struct flags mount_flags[] = {
874
879
#ifdef MS_DIRSYNC
875
880
FLAG_GENERIC (MS_DIRSYNC ),
876
881
#endif
882
+ #ifdef MS_MANDLOCK
877
883
FLAG_GENERIC (MS_MANDLOCK ),
884
+ #endif
878
885
#ifdef MS_MOVE
879
886
FLAG_GENERIC (MS_MOVE ),
880
887
#endif
888
+ #ifdef MS_NOATIME
881
889
FLAG_GENERIC (MS_NOATIME ),
890
+ #endif
891
+ #ifdef MS_NODEV
882
892
FLAG_GENERIC (MS_NODEV ),
893
+ #endif
894
+ #ifdef MS_NODIRATIME
883
895
FLAG_GENERIC (MS_NODIRATIME ),
896
+ #endif
897
+ #ifdef MS_NOEXEC
884
898
FLAG_GENERIC (MS_NOEXEC ),
899
+ #endif
900
+ #ifdef MS_NOSUID
885
901
FLAG_GENERIC (MS_NOSUID ),
902
+ #endif
903
+ #ifdef MS_RDONLY
886
904
FLAG_GENERIC (MS_RDONLY ),
905
+ #endif
887
906
#ifdef MS_RELATIME
888
907
FLAG_GENERIC (MS_RELATIME ),
889
908
#endif
909
+ #ifdef MS_REMOUNT
890
910
FLAG_GENERIC (MS_REMOUNT ),
911
+ #endif
912
+ #ifdef MS_SYNCHRONOUS
891
913
FLAG_GENERIC (MS_SYNCHRONOUS ),
914
+ #endif
892
915
FLAG_END ,
893
916
};
894
917
@@ -910,9 +933,15 @@ UNUSED static struct flags mmap_prot_flags[] = {
910
933
FLAG_GENERIC (PROT_EXEC ),
911
934
FLAG_GENERIC (PROT_READ ),
912
935
FLAG_GENERIC (PROT_WRITE ),
936
+ #ifdef PROT_SEM
913
937
FLAG_TARGET (PROT_SEM ),
938
+ #endif
939
+ #ifdef PROT_GROWSDOWN
914
940
FLAG_GENERIC (PROT_GROWSDOWN ),
941
+ #endif
942
+ #ifdef PROT_GROWSUP
915
943
FLAG_GENERIC (PROT_GROWSUP ),
944
+ #endif
916
945
FLAG_END ,
917
946
};
918
947
@@ -940,6 +969,7 @@ UNUSED static struct flags mmap_flags[] = {
940
969
FLAG_END ,
941
970
};
942
971
972
+ #ifdef TARGET_NR_clone
943
973
UNUSED static struct flags clone_flags [] = {
944
974
FLAG_GENERIC (CLONE_VM ),
945
975
FLAG_GENERIC (CLONE_FS ),
@@ -977,24 +1007,51 @@ UNUSED static struct flags clone_flags[] = {
977
1007
#endif
978
1008
FLAG_END ,
979
1009
};
1010
+ #endif /* TARGET_NR_clone */
980
1011
981
1012
UNUSED static struct flags msg_flags [] = {
982
1013
/* send */
1014
+ #ifdef MSG_CONFIRM
983
1015
FLAG_GENERIC (MSG_CONFIRM ),
1016
+ #endif
1017
+ #ifdef MSG_DONTROUTE
984
1018
FLAG_GENERIC (MSG_DONTROUTE ),
1019
+ #endif
1020
+ #ifdef MSG_DONTWAIT
985
1021
FLAG_GENERIC (MSG_DONTWAIT ),
1022
+ #endif
1023
+ #ifdef MSG_EOR
986
1024
FLAG_GENERIC (MSG_EOR ),
1025
+ #endif
1026
+ #ifdef MSG_MORE
987
1027
FLAG_GENERIC (MSG_MORE ),
1028
+ #endif
1029
+ #ifdef MSG_NOSIGNAL
988
1030
FLAG_GENERIC (MSG_NOSIGNAL ),
1031
+ #endif
1032
+ #ifdef MSG_OOB
989
1033
FLAG_GENERIC (MSG_OOB ),
1034
+ #endif
990
1035
/* recv */
1036
+ #ifdef MSG_CMSG_CLOEXEC
991
1037
FLAG_GENERIC (MSG_CMSG_CLOEXEC ),
1038
+ #endif
1039
+ #ifdef MSG_ERRQUEUE
992
1040
FLAG_GENERIC (MSG_ERRQUEUE ),
1041
+ #endif
1042
+ #ifdef MSG_PEEK
993
1043
FLAG_GENERIC (MSG_PEEK ),
1044
+ #endif
1045
+ #ifdef MSG_TRUNC
994
1046
FLAG_GENERIC (MSG_TRUNC ),
1047
+ #endif
1048
+ #ifdef MSG_WAITALL
995
1049
FLAG_GENERIC (MSG_WAITALL ),
1050
+ #endif
996
1051
/* recvmsg */
1052
+ #ifdef MSG_CTRUNC
997
1053
FLAG_GENERIC (MSG_CTRUNC ),
1054
+ #endif
998
1055
FLAG_END ,
999
1056
};
1000
1057
@@ -1567,13 +1624,15 @@ print_socket(const struct syscallname *name,
1567
1624
gemu_log ("," );
1568
1625
print_socket_type (type );
1569
1626
gemu_log ("," );
1627
+ /*
1570
1628
if (domain == AF_PACKET
1571
1629
#ifdef TARGET_SOCK_PACKET
1572
1630
|| (domain == AF_INET && type == TARGET_SOCK_PACKET)
1573
1631
#endif
1574
1632
) {
1575
1633
protocol = tswap16(protocol);
1576
1634
}
1635
+ */
1577
1636
print_socket_protocol (domain , type , protocol );
1578
1637
print_syscall_epilogue (name );
1579
1638
}
@@ -2650,7 +2709,7 @@ print_syscall(int num,
2650
2709
int i ;
2651
2710
const char * format = "%s(" TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ")" ;
2652
2711
2653
- gemu_log ("%ld " , syscall ( SYS_gettid ) );
2712
+ gemu_log ("%d " , shim_gettid ( ) );
2654
2713
2655
2714
for (i = 0 ;i < nsyscalls ;i ++ )
2656
2715
if ( scnames [i ].nr == num ) {
0 commit comments