Patch title: Release 91 bulk changes
Abstract:
File: /linux/storage/partition.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/os.pli"
module "/pliant/admin/file.pli"
module "/pliant/admin/execute.pli"



  function partition_create disk p -> status
    arg Str disk ; arg_rw Array:DiskPartition p ; arg Status
    var Int sector_size := 512
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/os.pli"
module "/pliant/admin/file.pli"
module "/pliant/admin/execute.pli"



  function partition_create disk p -> status
    arg Str disk ; arg_rw Array:DiskPartition p ; arg Status
    var Int sector_size := 512
    var Intn remain := get_disk_capacity disk ; var Int unde
    var Int head_sectors := 64
    var Intn remain := get_disk_capacity:disk-head_sectors*sector_size ; var Int undef := 0
    for (var Int i) 0 p:size-1
      if p:i:size>0  
        var Intn sectors := p:i:size\sector_size
        p:i size := sectors*sector_size
        remain -= p:i size
      else
        undef += 1
    if undef<>0
      var Intn sectors := remain\undef\sector_size
      for (var Int i) 0 p:size-1
        if p:i:size<=0
          p:i size := sectors*sector_size
    var Address buffer := memory_zallocate sector_size null
    (buffer translate Byte 510) map uInt16_hi := 55AAh
    for (var Int i) 0 p:size-1
      if p:i:size>0  
        var Intn sectors := p:i:size\sector_size
        p:i size := sectors*sector_size
        remain -= p:i size
      else
        undef += 1
    if undef<>0
      var Intn sectors := remain\undef\sector_size
      for (var Int i) 0 p:size-1
        if p:i:size<=0
          p:i size := sectors*sector_size
    var Address buffer := memory_zallocate sector_size null
    (buffer translate Byte 510) map uInt16_hi := 55AAh
    var uInt current := 64
    var uInt current := head_sectors
    for (var Int i) 0 p:size-1
      if not (p:i:device parse pattern:disk (var Int k)) or 
        memory_free buffer
        return failure
      var Pointer:PartitionHeader ph :> (buffer translate By
      ph bootable := 128
      var Str fs := p:i filesystem
      ph type := (shunt fs="ext2" 83h fs="swap" 82h fs="raid
      ph start := current
      ph size := p:i:size\sector_size
      current += ph size
    (var Stream s) open disk in+out+safe+nocache
    s raw_write buffer sector_size
    os_ioctl s:stream_handle 1200h+95 null
    memory_free buffer
    status := success


    for (var Int i) 0 p:size-1
      if not (p:i:device parse pattern:disk (var Int k)) or 
        memory_free buffer
        return failure
      var Pointer:PartitionHeader ph :> (buffer translate By
      ph bootable := 128
      var Str fs := p:i filesystem
      ph type := (shunt fs="ext2" 83h fs="swap" 82h fs="raid
      ph start := current
      ph size := p:i:size\sector_size
      current += ph size
    (var Stream s) open disk in+out+safe+nocache
    s raw_write buffer sector_size
    os_ioctl s:stream_handle 1200h+95 null
    memory_free buffer
    status := success