|
@@ -37,7 +37,7 @@
|
|
|
* mutex 'mutex'.
|
|
|
*/
|
|
|
struct logger_log {
|
|
|
- unsigned char *buffer;/* the ring buffer itself */
|
|
|
+ unsigned char *buffer;/* the ring buffer itself */
|
|
|
struct miscdevice misc; /* misc device representing the log */
|
|
|
wait_queue_head_t wq; /* wait queue for readers */
|
|
|
struct list_head readers; /* this log's readers */
|
|
@@ -67,9 +67,9 @@ struct logger_reader {
|
|
|
*
|
|
|
* This isn't aesthetic. We have several goals:
|
|
|
*
|
|
|
- * 1) Need to quickly obtain the associated log during an I/O operation
|
|
|
- * 2) Readers need to maintain state (logger_reader)
|
|
|
- * 3) Writers need to be very fast (open() should be a near no-op)
|
|
|
+ * 1) Need to quickly obtain the associated log during an I/O operation
|
|
|
+ * 2) Readers need to maintain state (logger_reader)
|
|
|
+ * 3) Writers need to be very fast (open() should be a near no-op)
|
|
|
*
|
|
|
* In the reader case, we can trivially go file->logger_reader->logger_log.
|
|
|
* For a writer, we don't want to maintain a logger_reader, so we just go
|
|
@@ -147,9 +147,9 @@ static ssize_t do_read_log_to_user(struct logger_log *log,
|
|
|
*
|
|
|
* Behavior:
|
|
|
*
|
|
|
- * - O_NONBLOCK works
|
|
|
- * - If there are no log entries to read, blocks until log is written to
|
|
|
- * - Atomically reads exactly one log entry
|
|
|
+ * - O_NONBLOCK works
|
|
|
+ * - If there are no log entries to read, blocks until log is written to
|
|
|
+ * - Atomically reads exactly one log entry
|
|
|
*
|
|
|
* Optimal read size is LOGGER_ENTRY_MAX_LEN. Will set errno to EINVAL if read
|
|
|
* buffer is insufficient to hold next entry.
|