⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memsset.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
/*	Copyright (c) 1984 AT&T	*//*	  All Rights Reserved  	*//*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*//*	The copyright notice above does not evidence any   	*//*	actual or intended publication of such source code.	*/#ifndef lintstatic	char sccsid[] = "@(#)memSset.c 1.1 92/07/30 SMI"; /* from S5R3.1 1.7.1.5 */#endif#include "curses.h"/* * additional memory routine to deal with memory areas in units of chtypes. */void memSset (s, c, n)#if u3bchtype *s;chtype c;int n;{	register int count;			/* %r8 */	register char *from;			/* %r7 */	register char *to; 			/* %r6 */	count = (n - 1) * sizeof (chtype);	if (count > 0) {		register chtype *sfrom = s;	/* %r5 */		to = (char *)(sfrom + 1);		from = (char *)sfrom;		*sfrom = c;		asm("	movblkb	%r8, %r7, %r6");		/*      bcopy (count, to, from) */	} else if (count == 0)		*s = c;}#else# if u3b2 || u3b15chtype *s;				/* 0(%ap) */chtype c;				/* 4(%ap) */int n;					/* 8(%ap) */{	char *to;			/* 0(%fp) */	char *from;			/* 4(%fp) */	register int count;		/* %r8 */	count = (n - 1) * sizeof (chtype);	if (count > 0) {		register chtype *sfrom = s;	/* %r7 */		to = (char *)(sfrom + 1);		from = (char *)sfrom;		*sfrom = c;/* Evidently one can not specify the regs for movblb. So I move *//* them in myself below to the regs where they belong. */		asm("	movw	%r8,%r2");	/* count */		asm("	movw	0(%fp),%r1");	/* to */		asm("	movw	4(%fp),%r0");	/* from */		asm("	movblb");	} else if (count == 0)		*s = c;}# elseregister chtype *s;register chtype c;register int n;{    while (n-- > 0)	*s++ = c;}# endif /* u3b2 || u3b15 */#endif /* u3b *//* The vax block copy command doesn't work the way I want. *//* If anyone finds a version that does, I'd like to know. */#if __bad__vax__/* this is the code within memcpy which shows how to do a block copy */memcpy(to, from, count)	char *to, *from;	int count;{	if (count > 0) {		asm("	movc3	12(ap),*4(ap),*8(ap)");	}}#endif /* __bad__vax__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -