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 + -
显示快捷键?