1f5854a49Spendry /*
2f5854a49Spendry * Copyright (c) 1989 Jan-Simon Pendry
3f5854a49Spendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine
4*ff516eb5Sbostic * Copyright (c) 1989, 1993
5*ff516eb5Sbostic * The Regents of the University of California. All rights reserved.
6f5854a49Spendry *
7f5854a49Spendry * This code is derived from software contributed to Berkeley by
8f5854a49Spendry * Jan-Simon Pendry at Imperial College, London.
9f5854a49Spendry *
1040bce266Spendry * %sccs.include.redist.c%
11f5854a49Spendry *
12*ff516eb5Sbostic * @(#)wr_bparam.c 8.1 (Berkeley) 06/06/93
13278f1af9Spendry *
1485d0f232Spendry * $Id: wr_bparam.c,v 5.2.2.1 1992/02/09 15:09:46 jsp beta $
15278f1af9Spendry *
16f5854a49Spendry */
17f5854a49Spendry
18f5854a49Spendry #include "../fsinfo/fsinfo.h"
19f5854a49Spendry
20f5854a49Spendry /*
21f5854a49Spendry * Write a host/path in NFS format
22f5854a49Spendry */
write_nfsname(ef,fp,hn)23f5854a49Spendry static int write_nfsname(ef, fp, hn)
24f5854a49Spendry FILE *ef;
25f5854a49Spendry fsmount *fp;
26f5854a49Spendry char *hn;
27f5854a49Spendry {
28f5854a49Spendry int errors = 0;
29f5854a49Spendry char *h = strdup(fp->f_ref->m_dk->d_host->h_hostname);
30f5854a49Spendry domain_strip(h, hn);
31f5854a49Spendry fprintf(ef, "%s:%s", h, fp->f_volname);
32f5854a49Spendry free(h);
33f5854a49Spendry return errors;
34f5854a49Spendry }
35f5854a49Spendry
36f5854a49Spendry /*
37f5854a49Spendry * Write a bootparams entry for a host
38f5854a49Spendry */
write_boot_info(ef,hp)39f5854a49Spendry static int write_boot_info(ef, hp)
40f5854a49Spendry FILE *ef;
41f5854a49Spendry host *hp;
42f5854a49Spendry {
43f5854a49Spendry int errors = 0;
44f5854a49Spendry fprintf(ef, "%s\troot=", hp->h_hostname);
45f5854a49Spendry errors += write_nfsname(ef, hp->h_netroot, hp->h_hostname);
46f5854a49Spendry fputs(" swap=", ef);
47f5854a49Spendry errors += write_nfsname(ef, hp->h_netswap, hp->h_hostname);
48f5854a49Spendry fputs("\n", ef);
49f5854a49Spendry
50f5854a49Spendry return 0;
51f5854a49Spendry }
52f5854a49Spendry
53f5854a49Spendry /*
54f5854a49Spendry * Output a bootparams file
55f5854a49Spendry */
write_bootparams(q)56f5854a49Spendry int write_bootparams(q)
57f5854a49Spendry qelem *q;
58f5854a49Spendry {
59f5854a49Spendry int errors = 0;
60f5854a49Spendry
61f5854a49Spendry if (bootparams_pref) {
62f5854a49Spendry FILE *ef = pref_open(bootparams_pref, "bootparams", info_hdr, "bootparams");
63f5854a49Spendry if (ef) {
64f5854a49Spendry host *hp;
65f5854a49Spendry ITER(hp, host, q)
66f5854a49Spendry if (hp->h_netroot && hp->h_netswap)
67f5854a49Spendry errors += write_boot_info(ef, hp);
68f5854a49Spendry errors += pref_close(ef);
69f5854a49Spendry } else {
70f5854a49Spendry errors++;
71f5854a49Spendry }
72f5854a49Spendry }
73f5854a49Spendry
74f5854a49Spendry return errors;
75f5854a49Spendry }
76