Lines Matching refs:pmsg

828 	struct printk_message pmsg = {
837 if (!printk_get_next_message(&pmsg, atomic64_read(&user->seq), true, false)) {
854 printk_get_next_message(&pmsg, atomic64_read(&user->seq), true,
860 if (pmsg.dropped) {
862 atomic64_set(&user->seq, pmsg.seq);
867 atomic64_set(&user->seq, pmsg.seq + 1);
869 if (pmsg.outbuf_len > count) {
874 if (copy_to_user(buf, outbuf, pmsg.outbuf_len)) {
878 ret = pmsg.outbuf_len;
2875 * Prepend the message in @pmsg->pbufs->outbuf. This is achieved by shifting
2878 * @pmsg is the original printk message.
2881 * If there is not enough space in @pmsg->pbufs->outbuf, the existing
2884 * If @pmsg->pbufs->outbuf is modified, @pmsg->outbuf_len is updated.
2887 static void console_prepend_message(struct printk_message *pmsg, const char *fmt, ...)
2889 struct printk_buffers *pbufs = pmsg->pbufs;
2910 if (pmsg->outbuf_len + len >= outbuf_sz) {
2912 pmsg->outbuf_len = outbuf_sz - (len + 1);
2913 outbuf[pmsg->outbuf_len] = 0;
2916 memmove(outbuf + len, outbuf, pmsg->outbuf_len + 1);
2918 pmsg->outbuf_len += len;
2922 * Prepend the message in @pmsg->pbufs->outbuf with a "dropped message".
2923 * @pmsg->outbuf_len is updated appropriately.
2925 * @pmsg is the printk message to prepend.
2929 void console_prepend_dropped(struct printk_message *pmsg, unsigned long dropped)
2931 console_prepend_message(pmsg, "** %lu printk messages dropped **\n", dropped);
2935 * Prepend the message in @pmsg->pbufs->outbuf with a "replay message".
2936 * @pmsg->outbuf_len is updated appropriately.
2938 * @pmsg is the printk message to prepend.
2940 void console_prepend_replay(struct printk_message *pmsg)
2942 console_prepend_message(pmsg, "** replaying previous printk message **\n");
2949 * @pmsg will contain the formatted result. @pmsg->pbufs must point to a
2961 * of @pmsg are valid. (See the documentation of struct printk_message
2962 * for information about the @pmsg fields.)
2964 bool printk_get_next_message(struct printk_message *pmsg, u64 seq,
2967 struct printk_buffers *pbufs = pmsg->pbufs;
2992 pmsg->seq = r.info->seq;
2993 pmsg->dropped = r.info->seq - seq;
3011 pmsg->outbuf_len = len;
3069 struct printk_message pmsg = {
3076 if (!printk_get_next_message(&pmsg, con->seq, is_extended, true))
3079 con->dropped += pmsg.dropped;
3082 if (pmsg.outbuf_len == 0) {
3083 con->seq = pmsg.seq + 1;
3088 console_prepend_dropped(&pmsg, con->dropped);
3102 con->write(con, outbuf, pmsg.outbuf_len);
3103 con->seq = pmsg.seq + 1;
3122 con->write(con, outbuf, pmsg.outbuf_len);
3127 con->seq = pmsg.seq + 1;