@@ -188,6 +188,21 @@ static ssize_t critmon_read_cpu(FAR struct critmon_file_s *attr,
188
188
189
189
totalsize = 0 ;
190
190
191
+ /* Generate output for CPU Serial Number */
192
+
193
+ linesize = procfs_snprintf (attr -> line , CRITMON_LINELEN , "%d" , cpu );
194
+ copysize = procfs_memcpy (attr -> line , linesize , buffer , buflen , offset );
195
+
196
+ totalsize += copysize ;
197
+ buffer += copysize ;
198
+ buflen -= copysize ;
199
+
200
+ if (buflen <= 0 )
201
+ {
202
+ return totalsize ;
203
+ }
204
+
205
+ #if CONFIG_SCHED_CRITMONITOR_MAXTIME_PREEMPTION >= 0
191
206
/* Convert the for maximum time pre-emption disabled */
192
207
193
208
if (g_premp_max [cpu ] > 0 )
@@ -206,15 +221,16 @@ static ssize_t critmon_read_cpu(FAR struct critmon_file_s *attr,
206
221
207
222
/* Generate output for maximum time pre-emption disabled */
208
223
209
- linesize = procfs_snprintf (attr -> line , CRITMON_LINELEN , "%d ,%lu.%09lu, " ,
210
- cpu , (unsigned long )maxtime .tv_sec ,
224
+ linesize = procfs_snprintf (attr -> line , CRITMON_LINELEN , ",%lu.%09lu" ,
225
+ (unsigned long )maxtime .tv_sec ,
211
226
(unsigned long )maxtime .tv_nsec );
212
227
copysize = procfs_memcpy (attr -> line , linesize , buffer , buflen , offset );
213
228
214
229
totalsize += copysize ;
215
230
buffer += copysize ;
231
+ buflen -= copysize ;
216
232
217
- if (totalsize >= buflen )
233
+ if (buflen <= 0 )
218
234
{
219
235
return totalsize ;
220
236
}
@@ -237,12 +253,26 @@ static ssize_t critmon_read_cpu(FAR struct critmon_file_s *attr,
237
253
238
254
/* Generate output for maximum time in a critical section */
239
255
240
- linesize = procfs_snprintf (attr -> line , CRITMON_LINELEN , "%lu.%09lu\n " ,
256
+ linesize = procfs_snprintf (attr -> line , CRITMON_LINELEN , ", %lu.%09lu" ,
241
257
(unsigned long )maxtime .tv_sec ,
242
258
(unsigned long )maxtime .tv_nsec );
243
259
copysize = procfs_memcpy (attr -> line , linesize , buffer , buflen , offset );
244
260
245
261
totalsize += copysize ;
262
+ buffer += copysize ;
263
+ buflen -= copysize ;
264
+
265
+ if (buflen <= 0 )
266
+ {
267
+ return totalsize ;
268
+ }
269
+ #endif
270
+
271
+ linesize = procfs_snprintf (attr -> line , CRITMON_LINELEN , "\n" );
272
+ copysize = procfs_memcpy (attr -> line , linesize , buffer , buflen , offset );
273
+
274
+ totalsize += copysize ;
275
+
246
276
return totalsize ;
247
277
}
248
278
@@ -280,8 +310,6 @@ static ssize_t critmon_read(FAR struct file *filep, FAR char *buffer,
280
310
{
281
311
break ;
282
312
}
283
-
284
- offset += nbytes ;
285
313
}
286
314
287
315
if (ret > 0 )
0 commit comments