wasm-embedded-spec 0.4.0

Embedded WASM WITX specification
Documentation
;;; UART Device API

(use "common.witx")

(module $uart
  (@interface func (export "init")
    ;; UART device to init 
    (param $port u32)
    ;; Baud rate
    (param $baud u32)

    (param $tx s32)
    (param $rx s32)

    ;; Returns a device handle or error
    (result $res (expected $dev (error $errno)))
  )

  (@interface func (export "deinit")
    ;; UART device handle to deinit 
    (param $handle s32)
    ;; Result
    (result $res (expected (error $errno)))
  )

  (@interface func (export "write")
    ;; UART device handle for write
    (param $handle s32)
    ;; Write operation flags
    (param $flags s32)
    ;; Data to write
    (param $data $rbytes)
    ;; Result
    (result $res (expected (error $errno)))
  )

  (@interface func (export "read")
    ;; UART device handle for transfer 
    (param $handle s32)
    ;; Read operation flags
    (param $flags s32)
    ;; Buffer to read into
    (param $buff $wbytes)
    ;; Result
    (result $res (expected (error $errno)))
  )
)