Sync usage with man page.
[netbsd-mini2440.git] / sys / arch / x68k / stand / libdos / makestrerror.awk
blob30edcf76786b682564b35eb0f21ef3bdacfa61b0
1 #! /usr/bin/awk -f
3 # create dos_strerror() from dos_errno.h
5 # written by Yasha (ITOH Yasufumi)
6 # public domain
8 # $NetBSD: makestrerror.awk,v 1.1 1998/09/01 19:53:26 itohy Exp $
10 /^\/\* dos_errlist begin \*\/$/,/^\/\* dos_errlist end \*\/$/ {
11 if ($0 ~ /^\/\* dos_errlist begin \*\/$/) {
12 # assembly code
13 print "| This file is automatically generated. DO NOT EDIT."
14 print "#include \"dos_asm.h\""
15 print "#include \"dos_errno.h\""
16 print " .text"
17 print " .even"
18 print "GLOBAL(dos_nerr)"
19 print " .long DOS_ELAST+1"
20 print ""
21 print "ENTRY_NOPROFILE(dos_strerror)"
22 print " movel %sp@(4),%d0"
23 print " moveq #80,%d1"
24 print " cmpl %d0,%d1"
25 print " bnes Lnot80"
26 print " moveq #DOS_EEXIST,%d0"
27 print "Lnot80: moveq #DOS_ELAST+1,%d1"
28 print " cmpl %d1,%d0"
29 print " bcss Lnotuk"
30 print " movel %d1,%d0"
31 print "Lnotuk: lslw #1,%d0"
32 print "Lh1:\tmovew\t%pc@(Lerrtbl-Lh1-2:B,%d0:W),%d0\t| 303B 000A"
33 print "Lh2:\tlea\t%pc@(Lerrtbl-Lh2-2:B,%d0:W),%a0\t| 41FB 0006"
34 print " movel %a0,%d0"
35 print " rts"
36 print ""
37 print "Lerrtbl:"
38 nmsg = 0
39 } else if ($0 ~ /^\/\* dos_errlist end \*\/$/) {
40 print "\t.word\tLukmsg-Lerrtbl | default message"
41 print ""
42 # error strings
43 for (i = 0; i < nmsg; i++)
44 print "Lmsg" i ":\t.asciz\t\"" msg[i] "\""
46 print "Lukmsg:\t.asciz\t\"Unknown error\""
47 exit
48 } else {
49 if ($3 != nmsg || $4 != "/*") {
50 printf FILENAME ":" NR ": format error"
51 exit(1);
53 # offset table
54 print "\t.word\tLmsg" nmsg "-Lerrtbl"
55 $1 = ""
56 $2 = ""
57 $3 = ""
58 $4 = ""
59 msg[nmsg] = substr($0, 5, length - 7)
60 nmsg++