@@ -148,7 +148,7 @@ dispatch_source_create(dispatch_source_type_t type,
148148 dk -> dk_kevent .ident = handle ;
149149 dk -> dk_kevent .flags |= EV_ADD |EV_ENABLE ;
150150 dk -> dk_kevent .fflags |= (uint32_t )mask ;
151- dk -> dk_kevent .udata = (uintptr_t )dk ;
151+ dk -> dk_kevent .udata = (typeof ( dk -> dk_kevent . udata ) )dk ;
152152 TAILQ_INIT (& dk -> dk_sources );
153153
154154 ds -> ds_dkev = dk ;
@@ -917,9 +917,9 @@ _dispatch_kevent_init()
917917 TAILQ_INSERT_TAIL (& _dispatch_sources [0 ],
918918 & _dispatch_kevent_data_add , dk_list );
919919 _dispatch_kevent_data_or .dk_kevent .udata =
920- (uintptr_t )& _dispatch_kevent_data_or ;
920+ (typeof ( _dispatch_kevent_data_or . dk_kevent . udata ) )& _dispatch_kevent_data_or ;
921921 _dispatch_kevent_data_add .dk_kevent .udata =
922- (uintptr_t )& _dispatch_kevent_data_add ;
922+ (typeof ( _dispatch_kevent_data_or . dk_kevent . udata ) )& _dispatch_kevent_data_add ;
923923#endif // !DISPATCH_USE_EV_UDATA_SPECIFIC
924924}
925925
@@ -1168,11 +1168,11 @@ _dispatch_kevent_drain(_dispatch_kevent_qos_s *ke)
11681168 ke -> data = 0 ; // don't return error from caller
11691169 if (ke -> flags & EV_DELETE ) {
11701170 _dispatch_debug ("kevent[0x%llx]: ignoring ESRCH from "
1171- "EVFILT_PROC EV_DELETE" , ke -> udata );
1171+ "EVFILT_PROC EV_DELETE" , ( unsigned long long ) ke -> udata );
11721172 return ;
11731173 }
11741174 _dispatch_debug ("kevent[0x%llx]: ESRCH from EVFILT_PROC: "
1175- "generating fake NOTE_EXIT" , ke -> udata );
1175+ "generating fake NOTE_EXIT" , ( unsigned long long ) ke -> udata );
11761176 return _dispatch_kevent_proc_exit (ke );
11771177 }
11781178 return _dispatch_kevent_error (ke );
@@ -1532,8 +1532,13 @@ struct dispatch_timer_s _dispatch_timer[] = {
15321532#define DISPATCH_TIMER_COUNT \
15331533 ((sizeof(_dispatch_timer) / sizeof(_dispatch_timer[0])))
15341534
1535+ #if __linux__
15351536#define DISPATCH_KEVENT_TIMER_UDATA (tidx ) \
1537+ (void*)&_dispatch_kevent_timer[tidx]
1538+ #else
1539+ #define DISPATCH_KEVENT_TIMER_UDATA (tidx ) \
15361540 (uintptr_t)&_dispatch_kevent_timer[tidx]
1541+ #endif
15371542#ifdef __LP64__
15381543#define DISPATCH_KEVENT_TIMER_UDATA_INITIALIZER (tidx ) \
15391544 .udata = DISPATCH_KEVENT_TIMER_UDATA(tidx)
@@ -1962,13 +1967,16 @@ _dispatch_timers_configure(void)
19621967 return _dispatch_timers_check (_dispatch_kevent_timer , _dispatch_timer );
19631968}
19641969
1970+
1971+ #if HAVE_MACH
19651972static void
19661973_dispatch_timers_calendar_change (void )
19671974{
19681975 // calendar change may have gone past the wallclock deadline
19691976 _dispatch_timer_expired = true;
19701977 _dispatch_timers_qos_mask = ~0u ;
19711978}
1979+ #endif
19721980
19731981static void
19741982_dispatch_timers_kevent (_dispatch_kevent_qos_s * ke )
@@ -2194,7 +2202,7 @@ _dispatch_select_register(const _dispatch_kevent_qos_s *kev)
21942202 sizeof (* _dispatch_rfd_ptrs ));
21952203 }
21962204 if (!_dispatch_rfd_ptrs [kev -> ident ]) {
2197- _dispatch_rfd_ptrs [kev -> ident ] = kev -> udata ;
2205+ _dispatch_rfd_ptrs [kev -> ident ] = ( uint64_t ) kev -> udata ;
21982206 _dispatch_select_workaround ++ ;
21992207 _dispatch_debug ("select workaround used to read fd %d: 0x%lx" ,
22002208 (int )kev -> ident , (long )kev -> data );
@@ -2211,7 +2219,7 @@ _dispatch_select_register(const _dispatch_kevent_qos_s *kev)
22112219 sizeof (* _dispatch_wfd_ptrs ));
22122220 }
22132221 if (!_dispatch_wfd_ptrs [kev -> ident ]) {
2214- _dispatch_wfd_ptrs [kev -> ident ] = kev -> udata ;
2222+ _dispatch_wfd_ptrs [kev -> ident ] = ( uint64_t ) kev -> udata ;
22152223 _dispatch_select_workaround ++ ;
22162224 _dispatch_debug ("select workaround used to write fd %d: 0x%lx" ,
22172225 (int )kev -> ident , (long )kev -> data );
@@ -2313,7 +2321,7 @@ _dispatch_mgr_select(bool poll)
23132321 .filter = EVFILT_READ ,
23142322 .flags = EV_ADD |EV_ENABLE |EV_DISPATCH ,
23152323 .data = 1 ,
2316- .udata = _dispatch_rfd_ptrs [i ],
2324+ .udata = ( typeof ( kev . udata )) _dispatch_rfd_ptrs [i ],
23172325 };
23182326 _dispatch_kevent_drain (& kev );
23192327 }
@@ -2324,7 +2332,7 @@ _dispatch_mgr_select(bool poll)
23242332 .filter = EVFILT_WRITE ,
23252333 .flags = EV_ADD |EV_ENABLE |EV_DISPATCH ,
23262334 .data = 1 ,
2327- .udata = _dispatch_wfd_ptrs [i ],
2335+ .udata = ( typeof ( kev . udata )) _dispatch_wfd_ptrs [i ],
23282336 };
23292337 _dispatch_kevent_drain (& kev );
23302338 }
@@ -2482,12 +2490,14 @@ _dispatch_kq_update(const _dispatch_kevent_qos_s *kev)
24822490
24832491static _dispatch_kevent_qos_s * _dispatch_kevent_enable ;
24842492
2493+ #if HAVE_MACH
24852494static void inline
24862495_dispatch_mgr_kevent_reenable (_dispatch_kevent_qos_s * ke )
24872496{
24882497 dispatch_assert (!_dispatch_kevent_enable || _dispatch_kevent_enable == ke );
24892498 _dispatch_kevent_enable = ke ;
24902499}
2500+ #endif
24912501
24922502unsigned long
24932503_dispatch_mgr_wakeup (dispatch_queue_t dq DISPATCH_UNUSED )
@@ -4755,8 +4765,9 @@ _dispatch_timer_debug_attr(dispatch_source_t ds, char* buf, size_t bufsiz)
47554765 dispatch_source_refs_t dr = ds -> ds_refs ;
47564766 return dsnprintf (buf , bufsiz , "timer = { target = 0x%llx, deadline = 0x%llx,"
47574767 " last_fire = 0x%llx, interval = 0x%llx, flags = 0x%lx }, " ,
4758- ds_timer (dr ).target , ds_timer (dr ).deadline , ds_timer (dr ).last_fire ,
4759- ds_timer (dr ).interval , ds_timer (dr ).flags );
4768+ (unsigned long long )ds_timer (dr ).target , (unsigned long long )ds_timer (dr ).deadline ,
4769+ (unsigned long long )ds_timer (dr ).last_fire , (unsigned long long )ds_timer (dr ).interval ,
4770+ ds_timer (dr ).flags );
47604771}
47614772
47624773size_t
0 commit comments