Patch title: Release 94 bulk changes
Abstract:
File: /pliant/protocol/lpr/device.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/context.pli"
module "/pliant/language/compiler.pli"
module "/pliant/language/stream.pli"


  gvar Sem sem
  gvar (Dictionary Str Void) devices
  
  function lpr_device_init device
    arg Str device
    sem request
    if not exists:(devices first device)
      if (device parse "device:/lp" (var Int num))
        kernel_load_module "parport"
        kernel_load_module "parport_pc"
        kernel_load_module "lp"
        kernel_make_device device
      eif (device parse "device:/usb/lp" (var Int num))
        kernel_load_module "usbcore"
        kernel_load_module "usb-uhci" # 2.4
        kernel_load_module "usb-ohci" # 2.4
        kernel_load_module "ehci-hcd" # 2.4
        kernel_load_module "uhci_hcd" # 2.6
        kernel_load_module "ohci_hcd" # 2.6
        kernel_load_module "ehci_hcd" # 2.6
        kernel_load_module "printer" # 2.4
        kernel_load_module "usblp" # 2.6
module "/pliant/language/context.pli"
module "/pliant/language/compiler.pli"
module "/pliant/language/stream.pli"


  gvar Sem sem
  gvar (Dictionary Str Void) devices
  
  function lpr_device_init device
    arg Str device
    sem request
    if not exists:(devices first device)
      if (device parse "device:/lp" (var Int num))
        kernel_load_module "parport"
        kernel_load_module "parport_pc"
        kernel_load_module "lp"
        kernel_make_device device
      eif (device parse "device:/usb/lp" (var Int num))
        kernel_load_module "usbcore"
        kernel_load_module "usb-uhci" # 2.4
        kernel_load_module "usb-ohci" # 2.4
        kernel_load_module "ehci-hcd" # 2.4
        kernel_load_module "uhci_hcd" # 2.6
        kernel_load_module "ohci_hcd" # 2.6
        kernel_load_module "ehci_hcd" # 2.6
        kernel_load_module "printer" # 2.4
        kernel_load_module "usblp" # 2.6
        filesystem_mount "file:usb" "file:/proc/bus/usb/" "f
        filesystem_mount "file:usb" "file:/proc/bus/usb/" "filesystem [dq]usbfs[dq]" # was usbdevfs
        file_tree_create "device:/usb/"
        kernel_make_device device kernel_character_device 18
        sleep 2 # USB device is not available immediately
      eif (device parse any:(var Str protocol) ":" any) and 
        pliant_compiler_semaphore request
        pliant_load_module "/pliant/protocol/"+(replace prot
        pliant_compiler_semaphore release
      devices insert device void
    sem release


export lpr_device_model lpr_device_sn lpr_device_search
        file_tree_create "device:/usb/"
        kernel_make_device device kernel_character_device 18
        sleep 2 # USB device is not available immediately
      eif (device parse any:(var Str protocol) ":" any) and 
        pliant_compiler_semaphore request
        pliant_load_module "/pliant/protocol/"+(replace prot
        pliant_compiler_semaphore release
      devices insert device void
    sem release


export lpr_device_model lpr_device_sn lpr_device_search