8987 bootadm: add bootfile fallback to unix
[unleashed.git] / usr / src / cmd / refer / shell.c
blob4801bb17bf62c9ad4e9858c97fabf3b8690d6f32
1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
6 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
7 /* All Rights Reserved */
9 /*
10 * Copyright (c) 1980 Regents of the University of California.
11 * All rights reserved. The Berkeley software License Agreement
12 * specifies the terms and conditions for redistribution.
15 #pragma ident "%Z%%M% %I% %E% SMI"
18 * SORTS UP.
19 * IF THERE ARE NO EXCHANGES (IEX=0) ON A SWEEP
20 * THE COMPARISON GAP (IGAP) IS HALVED FOR THE NEXT SWEEP
22 void
23 shell(int n, int (*comp)(), int (*exch)())
25 int igap, iplusg, iex, i, imax;
26 igap = n;
27 while (igap > 1) {
28 igap /= 2;
29 imax = n-igap;
30 do {
31 iex = 0;
32 for (i = 0; i < imax; i++) {
33 iplusg = i + igap;
34 if ((*comp)(i, iplusg)) continue;
35 (*exch) (i, iplusg);
36 iex = 1;
39 while (iex > 0)