18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/alpha/lib/srm_puts.c 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/string.h> 78c2ecf20Sopenharmony_ci#include <asm/console.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cilong 108c2ecf20Sopenharmony_cisrm_puts(const char *str, long len) 118c2ecf20Sopenharmony_ci{ 128c2ecf20Sopenharmony_ci long remaining, written; 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci if (!callback_init_done) 158c2ecf20Sopenharmony_ci return len; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci for (remaining = len; remaining > 0; remaining -= written) 188c2ecf20Sopenharmony_ci { 198c2ecf20Sopenharmony_ci written = callback_puts(0, str, remaining); 208c2ecf20Sopenharmony_ci written &= 0xffffffff; 218c2ecf20Sopenharmony_ci str += written; 228c2ecf20Sopenharmony_ci } 238c2ecf20Sopenharmony_ci return len; 248c2ecf20Sopenharmony_ci} 25