@@ -219,8 +219,7 @@ int ordered_events__queue(struct ordered_events *oe, union perf_event *event,
219
219
return 0 ;
220
220
}
221
221
222
- static int __ordered_events__flush (struct ordered_events * oe ,
223
- bool show_progress )
222
+ static int do_flush (struct ordered_events * oe , bool show_progress )
224
223
{
225
224
struct list_head * head = & oe -> events ;
226
225
struct ordered_event * tmp , * iter ;
@@ -263,7 +262,8 @@ static int __ordered_events__flush(struct ordered_events *oe,
263
262
return 0 ;
264
263
}
265
264
266
- int ordered_events__flush (struct ordered_events * oe , enum oe_flush how )
265
+ static int __ordered_events__flush (struct ordered_events * oe , enum oe_flush how ,
266
+ u64 timestamp )
267
267
{
268
268
static const char * const str [] = {
269
269
"NONE" ,
@@ -302,6 +302,11 @@ int ordered_events__flush(struct ordered_events *oe, enum oe_flush how)
302
302
break ;
303
303
}
304
304
305
+ case OE_FLUSH__TIME :
306
+ oe -> next_flush = timestamp ;
307
+ show_progress = false;
308
+ break ;
309
+
305
310
case OE_FLUSH__ROUND :
306
311
case OE_FLUSH__NONE :
307
312
default :
@@ -312,7 +317,7 @@ int ordered_events__flush(struct ordered_events *oe, enum oe_flush how)
312
317
str [how ], oe -> nr_events );
313
318
pr_oe_time (oe -> max_timestamp , "max_timestamp\n" );
314
319
315
- err = __ordered_events__flush (oe , show_progress );
320
+ err = do_flush (oe , show_progress );
316
321
317
322
if (!err ) {
318
323
if (how == OE_FLUSH__ROUND )
@@ -328,6 +333,16 @@ int ordered_events__flush(struct ordered_events *oe, enum oe_flush how)
328
333
return err ;
329
334
}
330
335
336
+ int ordered_events__flush (struct ordered_events * oe , enum oe_flush how )
337
+ {
338
+ return __ordered_events__flush (oe , how , 0 );
339
+ }
340
+
341
+ int ordered_events__flush_time (struct ordered_events * oe , u64 timestamp )
342
+ {
343
+ return __ordered_events__flush (oe , OE_FLUSH__TIME , timestamp );
344
+ }
345
+
331
346
void ordered_events__init (struct ordered_events * oe , ordered_events__deliver_t deliver ,
332
347
void * data )
333
348
{
0 commit comments