Yes, memset's prototype is int but the implement of arch is unsigned char; for example, in arm64
.weak memset ENTRY(__memset) ENTRY(memset) mov dst, dstin /* Preserve return value. */ and A_lw, val, #255 orr A_lw, A_lw, A_lw, lsl #8 orr A_lw, A_lw, A_lw, lsl #16 orr A_l, A_l, A_l, lsl #32 -----邮件原件----- 发件人: Matthew Wilcox [mailto:wi...@infradead.org] 发送时间: 2017年1月23日 14:26 收件人: zhouxianrong 抄送: Sergey Senozhatsky; linux...@kvack.org; linux-kernel@vger.kernel.org; a...@linux-foundation.org; sergey.senozhat...@gmail.com; minc...@kernel.org; ngu...@vflare.org; Mi Sophia Wang; Zhouxiyu; Duwei (Device OS); Zhangshiming (Simon, Device OS); Won Ho Park 主题: Re: [PATCH] mm: extend zero pages to same element pages for zram On Sun, Jan 22, 2017 at 10:58:38AM +0800, zhouxianrong wrote: > 1. memset is just set a int value but i want to set a long value. memset doesn't set an int value. DESCRIPTION The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c. It sets a byte value. K&R just happened to choose 'int' as the type to store that "unsigned char" in. Probably for very good reasons which make absolutely no sense today.