Patch title: Release 94 bulk changes
Abstract:
File: /pliant/linux/kernel/device.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/os.pli"
module "/pliant/admin/file.pli"


function kernel_make_device device kind major minor write ->
  arg Str device ; arg Int kind major minor ; arg CBool writ
module "/pliant/language/os.pli"
module "/pliant/admin/file.pli"


function kernel_make_device device kind major minor write ->
  arg Str device ; arg Int kind major minor ; arg CBool writ
  file_delete device
  # we create a temporary entry because if we have write access to the device, but no right to create it, we don't want to delete the existing entry before failing to create the new one
  file_tree_create device
  file_tree_create device
  status := shunt (os_mknod file_os_name:device kind+6*8^2+4
  if write
    file_rights device undefined undefined 6*8^2+6*8+6 0
  file_delete device+".tmp"
  status := shunt (os_mknod (file_os_name device+".tmp") kind+6*8^2+4*8+4 major*2^8+minor)=0 success failure
  if status=success
    file_move device+".tmp" device
    if write
      file_rights device undefined undefined 6*8^2+6*8+6 0


  eif (name parse "tty" (var Int n)) and n>=0 and n<10
    status := kernel_make_device device kernel_character_dev
  eif (name parse "tty" any:(var Str twin) ) and twin:len=2 
    status := kernel_make_device device kernel_character_dev


  eif (name parse "tty" (var Int n)) and n>=0 and n<10
    status := kernel_make_device device kernel_character_dev
  eif (name parse "tty" any:(var Str twin) ) and twin:len=2 
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ttyUSB" (var Int n)) and n>=0 and n<16
    status := kernel_make_device device kernel_character_device 188 n
  eif (name parse "pty" any:(var Str twin) ) and twin:len=2 
    status := kernel_make_device device kernel_character_dev
  eif (name parse "vcs" (var Int n)) and n>=0 and n<64
    status := kernel_make_device device kernel_character_dev
  eif name="tty"
    status := kernel_make_device device kernel_character_dev
  eif name="console"
    status := kernel_make_device device kernel_character_dev


  eif name="psaux"
    status := kernel_make_device device kernel_character_dev
  eif name="mice"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "pty" any:(var Str twin) ) and twin:len=2 
    status := kernel_make_device device kernel_character_dev
  eif (name parse "vcs" (var Int n)) and n>=0 and n<64
    status := kernel_make_device device kernel_character_dev
  eif name="tty"
    status := kernel_make_device device kernel_character_dev
  eif name="console"
    status := kernel_make_device device kernel_character_dev


  eif name="psaux"
    status := kernel_make_device device kernel_character_dev
  eif name="mice"
    status := kernel_make_device device kernel_character_dev
  eif name="keyboard"
    status := kernel_make_device device kernel_character_device 10 150
  eif (name parse "lp" (var Int i))  and i>=0 and i<=2
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ttyS" (var Int n)) and n>=0 and n<64
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ircomm" (var Int n)) and n>=0 and n<16
    status := kernel_make_device device kernel_character_dev
  eif (name parse "irlpt" (var Int n)) and n>=0 and n<16
    status := kernel_make_device device kernel_character_dev


  eif name="dsp"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "dsp" (var Int i)) and i>=1 and i<4
    status := kernel_make_device device kernel_character_dev
  eif (name parse "lp" (var Int i))  and i>=0 and i<=2
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ttyS" (var Int n)) and n>=0 and n<64
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ircomm" (var Int n)) and n>=0 and n<16
    status := kernel_make_device device kernel_character_dev
  eif (name parse "irlpt" (var Int n)) and n>=0 and n<16
    status := kernel_make_device device kernel_character_dev


  eif name="dsp"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "dsp" (var Int i)) and i>=1 and i<4
    status := kernel_make_device device kernel_character_dev
  eif name="mixer"
    status := kernel_make_device device kernel_character_device 14 0
  eif (name parse "mixer" (var Int i)) and i>=1 and i<4
    status := kernel_make_device device kernel_character_device 14 i*16

  eif name="ppp"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ippp" (var Int part)) and part>=0 and par
    status := kernel_make_device device kernel_character_dev
  eif name="isdninfo"
    status := kernel_make_device device kernel_character_dev
  eif name="isdnctrl"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "isdnctrl" (var Int part)) and part>=0 and
    status := kernel_make_device device kernel_character_dev

  eif name="ppp"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "ippp" (var Int part)) and part>=0 and par
    status := kernel_make_device device kernel_character_dev
  eif name="isdninfo"
    status := kernel_make_device device kernel_character_dev
  eif name="isdnctrl"
    status := kernel_make_device device kernel_character_dev
  eif (name parse "isdnctrl" (var Int part)) and part>=0 and
    status := kernel_make_device device kernel_character_dev
  eif (name parse "rfcomm" (var Int part)) and part>=0 and part<32
    status := kernel_make_device device kernel_character_device 216 part

  else
    plugin device
      status := failure

  else
    plugin device
      status := failure