dsort.c

来自「著名的AT&T UNIX v6 源码」· C语言 代码 · 共 44 行

C
44
字号
/* * generalized seek sort for disk */#include "../h/param.h"#include "../h/systm.h"#include "../h/buf.h"#define	b_cylin	b_residdisksort(dp, bp)register struct buf *dp, *bp;{	register struct buf *ap;	struct buf *tp;	ap = dp->b_actf;	if(ap == NULL) {		dp->b_actf = bp;		dp->b_actl = bp;		bp->av_forw = NULL;		return;	}	tp = NULL;	for(; ap != NULL; ap = ap->av_forw) {		if ((bp->b_flags&B_READ) && (ap->b_flags&B_READ) == 0) {			if (tp == NULL)				tp = ap;			break;		}		if ((bp->b_flags&B_READ) == 0 && (ap->b_flags&B_READ))			continue;		if(ap->b_cylin <= bp->b_cylin)			if(tp == NULL || ap->b_cylin >= tp->b_cylin)				tp = ap;	}	if(tp == NULL)		tp = dp->b_actl;	bp->av_forw = tp->av_forw;	tp->av_forw = bp;	if(tp == dp->b_actl)		dp->b_actl = bp;}

⌨️ 快捷键说明

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