-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | 9P2000 in pure Haskell
--
-- Pure Haskell implementation of the 9P2000 protocol from the Plan 9 and
-- Inferno operating systems. Many implementations of 9P2000 exist
-- including the Linux kernel v9fs module, wmii (X window manager). More
-- information on 9P and implementations may be found at
-- http://9p.cat-v.org
@package NineP
@version 0.0.2
-- | Module providing Binary serialization of 9P messages to and from lazy
-- ByteStrings.
--
-- This library does not currently provide any networking support or
-- wrappers for easy to write clients or servers, though that may come
-- with time as we decide the best way to implement these.
--
-- 9P2000 messages are sent in little endian byte order rather than
-- network byte order (big endian)
--
-- Lightly tested against an Inferno operating system share with no
-- authentication successfully.
module Data.NineP
class Bin a
get :: Bin a => Get a
put :: Bin a => a -> Put
-- | A Plan 9 Qid type. See http:9p.cat-v.org for more information
data Qid
Qid :: Word8 -> Word32 -> Word64 -> Qid
qid_typ :: Qid -> Word8
qid_vers :: Qid -> Word32
qid_path :: Qid -> Word64
-- | Provides information on a path entry at a 9P2000 server
data Stat
Stat :: Word16 -> Word32 -> Qid -> Word32 -> Word32 -> Word32 -> Word64 -> String -> String -> String -> String -> Stat
st_typ :: Stat -> Word16
st_dev :: Stat -> Word32
st_qid :: Stat -> Qid
st_mode :: Stat -> Word32
st_atime :: Stat -> Word32
st_mtime :: Stat -> Word32
st_length :: Stat -> Word64
st_name :: Stat -> String
st_uid :: Stat -> String
st_gid :: Stat -> String
st_muid :: Stat -> String
-- | The message envelope type for all 9P2000 messages
data Msg
Msg :: Tag -> Word16 -> VarMsg -> Msg
msg_typ :: Msg -> Tag
msg_tag :: Msg -> Word16
msg_body :: Msg -> VarMsg
-- | A type that enumerates all the valid (and one invalid) message
-- types in 9P2000
data Tag
TTversion :: Tag
TRversion :: Tag
TTauth :: Tag
TRauth :: Tag
TTattach :: Tag
TRattach :: Tag
XXX_TTerror :: Tag
TRerror :: Tag
TTflush :: Tag
TRflush :: Tag
TTwalk :: Tag
TRwalk :: Tag
TTopen :: Tag
TRopen :: Tag
TTcreate :: Tag
TRcreate :: Tag
TTread :: Tag
TRread :: Tag
TTwrite :: Tag
TRwrite :: Tag
TTclunk :: Tag
TRclunk :: Tag
TTremove :: Tag
TRremove :: Tag
TTstat :: Tag
TRstat :: Tag
TTwstat :: Tag
TRwstat :: Tag
-- | A variable message type that encapsulates the valid kinds of messages
-- in a 9P2000 payload
data VarMsg
Tversion :: Word32 -> String -> VarMsg
tv_msize :: VarMsg -> Word32
tv_version :: VarMsg -> String
Rversion :: Word32 -> String -> VarMsg
rv_msize :: VarMsg -> Word32
rv_version :: VarMsg -> String
Tauth :: Word32 -> String -> String -> VarMsg
tau_afid :: VarMsg -> Word32
tau_uname :: VarMsg -> String
tau_aname :: VarMsg -> String
Rauth :: Qid -> VarMsg
ra_aqid :: VarMsg -> Qid
Rerror :: String -> VarMsg
re_ename :: VarMsg -> String
Tflush :: Word16 -> VarMsg
tf_oldtag :: VarMsg -> Word16
Rflush :: VarMsg
Tattach :: Word32 -> Word32 -> String -> String -> VarMsg
tat_fid :: VarMsg -> Word32
tat_afid :: VarMsg -> Word32
tat_uname :: VarMsg -> String
tat_aname :: VarMsg -> String
Rattach :: Qid -> VarMsg
rat_qid :: VarMsg -> Qid
Twalk :: Word32 -> Word32 -> [String] -> VarMsg
tw_fid :: VarMsg -> Word32
tw_newfid :: VarMsg -> Word32
tw_wnames :: VarMsg -> [String]
Rwalk :: [Qid] -> VarMsg
rw_wqid :: VarMsg -> [Qid]
Topen :: Word32 -> Word8 -> VarMsg
to_fid :: VarMsg -> Word32
to_mode :: VarMsg -> Word8
Ropen :: Qid -> Word32 -> VarMsg
ro_qid :: VarMsg -> Qid
ro_iounit :: VarMsg -> Word32
Tcreate :: Word32 -> String -> Word32 -> Word8 -> VarMsg
tcr_fid :: VarMsg -> Word32
tcr_name :: VarMsg -> String
tcr_perm :: VarMsg -> Word32
tcr_mode :: VarMsg -> Word8
Rcreate :: Qid -> Word32 -> VarMsg
rcr_qid :: VarMsg -> Qid
rcr_iounit :: VarMsg -> Word32
Tread :: Word32 -> Word64 -> Word32 -> VarMsg
trd_fid :: VarMsg -> Word32
trd_offset :: VarMsg -> Word64
trd_count :: VarMsg -> Word32
Rread :: ByteString -> VarMsg
rrd_dat :: VarMsg -> ByteString
Twrite :: Word32 -> Word64 -> ByteString -> VarMsg
twr_fid :: VarMsg -> Word32
twr_offset :: VarMsg -> Word64
twr_dat :: VarMsg -> ByteString
Rwrite :: Word32 -> VarMsg
rw_count :: VarMsg -> Word32
Tclunk :: Word32 -> VarMsg
tcl_fid :: VarMsg -> Word32
Rclunk :: VarMsg
Tremove :: Word32 -> VarMsg
trm_fid :: VarMsg -> Word32
Rremove :: VarMsg
Tstat :: Word32 -> VarMsg
ts_fid :: VarMsg -> Word32
Rstat :: [Stat] -> VarMsg
rs_stat :: VarMsg -> [Stat]
Twstat :: Word32 -> [Stat] -> VarMsg
tws_fid :: VarMsg -> Word32
tws_stat :: VarMsg -> [Stat]
Rwstat :: VarMsg
-- | For every lower level VarMsg type, encodes a full wrapper around that
-- type for use with 9P2000 streams
putVarMsg :: VarMsg -> Put
-- | For every messages type, runs a Get parser to decode that type of
-- payload from the 9P2000 stream
getVarMsg :: Tag -> Get VarMsg
instance Show Msg
instance Eq Msg
instance Show Tag
instance Eq Tag
instance Ord Tag
instance Enum Tag
instance Show VarMsg
instance Eq VarMsg
instance Show Stat
instance Eq Stat
instance Show Qid
instance Eq Qid
instance Bin Msg
instance Bin Tag
instance Bin Stat
instance Bin Qid
instance Bin String
instance Bin Char
instance Bin Word64
instance Bin Word32
instance Bin Word16
instance Bin Word8