Source code pulled from OpenBSD for OpenNTPD. The place to contribute to this code is via the OpenBSD CVS tree.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

256 lines
5.6 KiB

22 years ago
  1. define(COMM,`#')dnl
  2. include(MAKEDEV.sub)dnl
  3. dnl
  4. vers(a, {-$OpenBSD: MAKEDEV.mi,v 1.73 2005/02/07 06:14:18 david Exp $-})dnl
  5. dnl
  6. divert(1)dnl
  7. {-#-}
  8. {-#-} Copyright (c) 2001-2004 Todd T. Fries <todd@OpenBSD.org>
  9. {-#-}
  10. {-#-} Permission to use, copy, modify, and distribute this software for any
  11. {-#-} purpose with or without fee is hereby granted, provided that the above
  12. {-#-} copyright notice and this permission notice appear in all copies.
  13. {-#-}
  14. {-#-} THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  15. {-#-} WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  16. {-#-} MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  17. {-#-} ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  18. {-#-} WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  19. {-#-} ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  20. {-#-} OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21. {-#-}
  22. define(quote,{-"$1" -})dnl
  23. include(MAKEDEV.common)dnl
  24. dnl
  25. __devtitle(make, {-Device "make" file. Valid arguments-})dnl
  26. __devitem({-all-}, {-all-}, {-makes all known devices{-,-} including local devices.
  27. {-#-} Tries to make the ``standard'' number of each type.-})dnl
  28. __devitem(std,{-std-},Standard devices)dnl
  29. __devitem(local,local,Configuration specific devices)dnl
  30. dnl
  31. dnl _std
  32. dnl
  33. dnl $1: tty
  34. dnl $2: memstuff
  35. dnl $3: ksyms
  36. dnl $4: drum
  37. dnl $5: klog
  38. dnl
  39. define({-_std-},{-dnl
  40. std)
  41. M console c 0 0 600
  42. M tty c $1 0
  43. M mem c $2 0 640 kmem
  44. M kmem c $2 1 640 kmem
  45. M null c $2 2
  46. M zero c $2 12
  47. M stdin c major_fdesc_c 0
  48. M stdout c major_fdesc_c 1
  49. M stderr c major_fdesc_c 2
  50. M ksyms c $3 0 640 kmem
  51. M drum c $4 0 640 kmem
  52. M klog c $5 0 600-})dnl
  53. dnl
  54. divert(1)dnl
  55. define(__mddivert,7)dnl
  56. include(etc.MACHINE/MAKEDEV.md)dnl
  57. dnl
  58. dnl
  59. divert(0)dnl
  60. #!/bin/sh -
  61. #
  62. # THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
  63. # generated from:
  64. #
  65. show_vers()dnl <-- now that all files are included, show versions
  66. #
  67. dnl
  68. divert(2)dnl
  69. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  70. T=$0
  71. # set this to echo for Echo-Only debugging
  72. [ "$eo" ] || eo=
  73. hex()
  74. {
  75. case ${--}1 in
  76. [0-9]) echo -n {-$-}1;;
  77. 10) echo -n a;;
  78. 11) echo -n b;;
  79. 12) echo -n c;;
  80. 13) echo -n d;;
  81. 14) echo -n e;;
  82. 15) echo -n f;;
  83. esac
  84. }
  85. alph2d()
  86. {
  87. local t="$1"
  88. local p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  89. local sub=${p%${t}*}
  90. echo ${#sub}
  91. }
  92. h2d()
  93. {
  94. local s="$1"
  95. local f=${s%*[0-9a-f]} n=${s#[0-9a-f]*}
  96. echo $(($(_h2d $f)*16+ $(_h2d $n) ))
  97. }
  98. _h2d()
  99. {
  100. case $1 in
  101. [0-9]) echo -n $1;;
  102. a) echo -n 10;;
  103. b) echo -n 11;;
  104. c) echo -n 12;;
  105. d) echo -n 13;;
  106. e) echo -n 14;;
  107. f) echo -n 15;;
  108. esac
  109. }
  110. unt()
  111. {
  112. # XXX pdksh can't seem to deal with locally scoped variables
  113. # in ${foo#$bar} expansions
  114. arg="{-$-}1"
  115. tmp="${arg#[a-zA-Z]*}"
  116. tmp="${tmp%*[a-zA-Z]}"
  117. while [ "$tmp" != "$arg" ]
  118. do
  119. arg=$tmp
  120. tmp="${arg#[a-zA-Z]*}"
  121. tmp="${tmp%*[a-zA-Z]}"
  122. done
  123. echo $arg
  124. }
  125. dnl
  126. dnl dodisk(name, unit, blkmaj, chrmaj, unit, off[, stepping])
  127. dnl arg: 1 2 3 4 5 6 7
  128. dnl
  129. dodisk()
  130. {
  131. [ "$DEBUG" ] && set -x
  132. n=Add(Mult(${5}, ${7:-16}), ${6}) count=0
  133. RMlist="$RMlist {-$-}1{-$-}2? r{-$-}1{-$-}2?"
  134. [ 0$7 -ne 8 ] && l="i j k l m n o p"
  135. for d in a b c d e f g h $l
  136. do
  137. M {-$-}1{-$-}2$d b {-$-}3 Add($n, $count) 640
  138. M r{-$-}1{-$-}2$d c {-$-}4 Add($n, $count) 640
  139. let count=count+1
  140. done
  141. MKlist="$MKlist;chown root:operator {-$-}1{-$-}2? r{-$-}1{-$-}2?"
  142. }
  143. dnl
  144. dnl dodisk2(name, unit, blkmaj, chrmaj, unit, off[, stepping])
  145. dnl
  146. dnl 1. name - prefix name of the device
  147. dnl 2. unit - beginning unit number for block devices
  148. dnl 3. blkmaj - block device major number
  149. dnl 4. chrmaj - character device major number
  150. dnl 5. unit - beginning unit number for character devices
  151. dnl 6. off - offset from 0 for all minor numbers (see svnd for an example)
  152. dnl 7. step - optional, defaults to 16, number of partitions per device
  153. dnl
  154. dodisk2()
  155. {
  156. n=Add(Mult({-$-}5, ${7:-16}), {-$-}6)
  157. M {-$-}1{-$-}2a b {-$-}3 $n 640 operator
  158. M r{-$-}1{-$-}2a c {-$-}4 $n 640 operator
  159. n=Add($n, 2)
  160. M {-$-}1{-$-}2c b {-$-}3 $n 640 operator
  161. M r{-$-}1{-$-}2c c {-$-}4 $n 640 operator
  162. }
  163. # M name b/c major minor [mode] [group]
  164. RMlist="rm -f"
  165. MKlist=":"
  166. mkl() {
  167. dnl
  168. dnl uncomment if multi mknod happens
  169. dnl
  170. ifelse(1, 0,
  171. [ "${mklist[{-$-}1]}" ] && mklist[{-$-}1]="${mklist[{-$-}1]} {-$-}2 {-$-}3 {-$-}4 {-$-}5" || {
  172. mklist[{-$-}1]="mknod -m {-$-}1 {-$-}2 {-$-}3 {-$-}4 {-$-}5"
  173. modes="$modes {-$-}1"
  174. },
  175. dnl
  176. dnl non multi mknod
  177. dnl
  178. [ "${mklist[{-$-}1]}" ] && {
  179. mklist[{-$-}1]="${mklist[{-$-}1]};mknod -m {-$-}1 {-$-}2 {-$-}3 {-$-}4 {-$-}5"
  180. } || {
  181. mklist[{-$-}1]="mknod -m {-$-}1 {-$-}2 {-$-}3 {-$-}4 {-$-}5"
  182. modes="$modes {-$-}1"
  183. })
  184. }
  185. M() {
  186. RMlist="$RMlist {-$-}1"
  187. mkl ${5-666} {-$-}1 {-$-}2 {-$-}3 {-$-}4
  188. mklist="$mklist {-$-}1"
  189. G={-$-}{6:-wheel}
  190. [ "{-$-}7" ] && {
  191. MKlist="$MKlist;chown {-$-}7:{-$-}G {-$-}1"
  192. } || {
  193. case $G in
  194. wheel)g=0;;kmem)g=2;;operator)g=5;;tty)g=4;;dialer)g=117;;_lkm)g=61;;
  195. esac
  196. [ "${grplist[$g]}" ] && {
  197. grplist[$g]="${grplist[$g]} {-$-}1"
  198. } || {
  199. groups="$groups $g"
  200. grplist[$g]="chgrp $G {-$-}1"
  201. }
  202. }
  203. return 0
  204. }
  205. divert(7)dnl
  206. dnl
  207. dnl there is no blank line at the end of etc.arch/MAKEDEV.md files, so add one
  208. dnl on the following line:
  209. show_devs()dnl
  210. dnl
  211. divert(9)dnl
  212. *)
  213. echo $i: unknown device
  214. ;;
  215. esac
  216. done
  217. }
  218. _recurse "$@"
  219. list="$RMlist"
  220. for mode in $modes; do
  221. list="$list;${mklist[$mode]}"
  222. done
  223. for group in $groups; do
  224. list="$list;${grplist[$group]}"
  225. done
  226. list="$list;$MKlist"
  227. if [ "$eo" = "echo" ]; then
  228. $eo "$list"
  229. else
  230. echo "$list" | sh
  231. fi
  232. divert(3)dnl
  233. dnl
  234. R() {
  235. [ "$DEBUG" ] && set -x
  236. for i in "$@"
  237. do
  238. U=`unt $i`
  239. [ "$U" ] || U=0
  240. case $i in
  241. dnl