答复: [PATCH] mm: extend zero pages to same element pages for zram

From: zhouxianrong
Date: Mon Jan 23 2017 - 01:45:48 EST


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:willy@xxxxxxxxxxxxx]
发送时间: 2017年1月23日 14:26
收件人: zhouxianrong
抄送: Sergey Senozhatsky; linux-mm@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; sergey.senozhatsky@xxxxxxxxx; minchan@xxxxxxxxxx; ngupta@xxxxxxxxxx; 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.