-- |Generated from ./Network/ONCRPC/Bind/Prot.x by <https://github.com/dylex/oncrpc hsrpcgen>
{-# LANGUAGE DataKinds, TypeFamilies #-}
module Network.ONCRPC.Bind.Prot where
import qualified Prelude
import qualified Control.Applicative
import qualified Network.ONCRPC.XDR as XDR
import qualified Network.ONCRPC.Types as RPC

rPCB_PORT :: Prelude.Integral a => a
rPCB_PORT = 111

data Rpcb = Rpcb{rpcb'r_prog :: !XDR.UnsignedInt,
                 rpcb'r_vers :: !XDR.UnsignedInt,
                 rpcb'r_netid :: !(XDR.String 4294967295),
                 rpcb'r_addr :: !(XDR.String 4294967295),
                 rpcb'r_owner :: !(XDR.String 4294967295)}
            deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcb where
  xdrType _ = "Rpcb"
  xdrPut _x
    = XDR.xdrPut (rpcb'r_prog _x) Control.Applicative.*>
        XDR.xdrPut (rpcb'r_vers _x)
        Control.Applicative.*> XDR.xdrPut (rpcb'r_netid _x)
        Control.Applicative.*> XDR.xdrPut (rpcb'r_addr _x)
        Control.Applicative.*> XDR.xdrPut (rpcb'r_owner _x)
  xdrGet
    = Control.Applicative.pure Rpcb Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

data Rp__list = Rp__list{rp__list'rpcb_map :: !Rpcb,
                         rp__list'rpcb_next :: !(XDR.Optional Rp__list)}
                deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rp__list where
  xdrType _ = "Rp__list"
  xdrPut _x
    = XDR.xdrPut (rp__list'rpcb_map _x) Control.Applicative.*>
        XDR.xdrPut (rp__list'rpcb_next _x)
  xdrGet
    = Control.Applicative.pure Rp__list Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

type Rpcblist_ptr = XDR.Optional Rp__list

data Rpcb_rmtcallargs = Rpcb_rmtcallargs{rpcb_rmtcallargs'prog ::
                                         !XDR.UnsignedInt,
                                         rpcb_rmtcallargs'vers :: !XDR.UnsignedInt,
                                         rpcb_rmtcallargs'proc :: !XDR.UnsignedInt,
                                         rpcb_rmtcallargs'args :: !(XDR.Opaque 4294967295)}
                        deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcb_rmtcallargs where
  xdrType _ = "Rpcb_rmtcallargs"
  xdrPut _x
    = XDR.xdrPut (rpcb_rmtcallargs'prog _x) Control.Applicative.*>
        XDR.xdrPut (rpcb_rmtcallargs'vers _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_rmtcallargs'proc _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_rmtcallargs'args _x)
  xdrGet
    = Control.Applicative.pure Rpcb_rmtcallargs Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

data Rpcb_rmtcallres = Rpcb_rmtcallres{rpcb_rmtcallres'addr ::
                                       !(XDR.String 4294967295),
                                       rpcb_rmtcallres'results :: !(XDR.Opaque 4294967295)}
                       deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcb_rmtcallres where
  xdrType _ = "Rpcb_rmtcallres"
  xdrPut _x
    = XDR.xdrPut (rpcb_rmtcallres'addr _x) Control.Applicative.*>
        XDR.xdrPut (rpcb_rmtcallres'results _x)
  xdrGet
    = Control.Applicative.pure Rpcb_rmtcallres Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

data Rpcb_entry = Rpcb_entry{rpcb_entry'r_maddr ::
                             !(XDR.String 4294967295),
                             rpcb_entry'r_nc_netid :: !(XDR.String 4294967295),
                             rpcb_entry'r_nc_semantics :: !XDR.UnsignedInt,
                             rpcb_entry'r_nc_protofmly :: !(XDR.String 4294967295),
                             rpcb_entry'r_nc_proto :: !(XDR.String 4294967295)}
                  deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcb_entry where
  xdrType _ = "Rpcb_entry"
  xdrPut _x
    = XDR.xdrPut (rpcb_entry'r_maddr _x) Control.Applicative.*>
        XDR.xdrPut (rpcb_entry'r_nc_netid _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_entry'r_nc_semantics _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_entry'r_nc_protofmly _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_entry'r_nc_proto _x)
  xdrGet
    = Control.Applicative.pure Rpcb_entry Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

data Rpcb_entry_list = Rpcb_entry_list{rpcb_entry_list'rpcb_entry_map
                                       :: !Rpcb_entry,
                                       rpcb_entry_list'rpcb_entry_next ::
                                       !(XDR.Optional Rpcb_entry_list)}
                       deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcb_entry_list where
  xdrType _ = "Rpcb_entry_list"
  xdrPut _x
    = XDR.xdrPut (rpcb_entry_list'rpcb_entry_map _x)
        Control.Applicative.*>
        XDR.xdrPut (rpcb_entry_list'rpcb_entry_next _x)
  xdrGet
    = Control.Applicative.pure Rpcb_entry_list Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

type Rpcb_entry_list_ptr = XDR.Optional Rpcb_entry_list

rpcb_highproc_2 :: Prelude.Integral a => a
rpcb_highproc_2 = 5

rpcb_highproc_3 :: Prelude.Integral a => a
rpcb_highproc_3 = 8

rpcb_highproc_4 :: Prelude.Integral a => a
rpcb_highproc_4 = 12

rPCBSTAT_HIGHPROC :: Prelude.Integral a => a
rPCBSTAT_HIGHPROC = 13

rPCBVERS_STAT :: Prelude.Integral a => a
rPCBVERS_STAT = 3

rPCBVERS_4_STAT :: Prelude.Integral a => a
rPCBVERS_4_STAT = 2

rPCBVERS_3_STAT :: Prelude.Integral a => a
rPCBVERS_3_STAT = 1

rPCBVERS_2_STAT :: Prelude.Integral a => a
rPCBVERS_2_STAT = 0

data Rpcbs_addrlist = Rpcbs_addrlist{rpcbs_addrlist'prog ::
                                     !XDR.UnsignedInt,
                                     rpcbs_addrlist'vers :: !XDR.UnsignedInt,
                                     rpcbs_addrlist'success :: !XDR.Int,
                                     rpcbs_addrlist'failure :: !XDR.Int,
                                     rpcbs_addrlist'netid :: !(XDR.String 4294967295),
                                     rpcbs_addrlist'next :: !(XDR.Optional Rpcbs_addrlist)}
                      deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcbs_addrlist where
  xdrType _ = "Rpcbs_addrlist"
  xdrPut _x
    = XDR.xdrPut (rpcbs_addrlist'prog _x) Control.Applicative.*>
        XDR.xdrPut (rpcbs_addrlist'vers _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_addrlist'success _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_addrlist'failure _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_addrlist'netid _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_addrlist'next _x)
  xdrGet
    = Control.Applicative.pure Rpcbs_addrlist Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

data Rpcbs_rmtcalllist = Rpcbs_rmtcalllist{rpcbs_rmtcalllist'prog
                                           :: !XDR.UnsignedInt,
                                           rpcbs_rmtcalllist'vers :: !XDR.UnsignedInt,
                                           rpcbs_rmtcalllist'proc :: !XDR.UnsignedInt,
                                           rpcbs_rmtcalllist'success :: !XDR.Int,
                                           rpcbs_rmtcalllist'failure :: !XDR.Int,
                                           rpcbs_rmtcalllist'indirect :: !XDR.Int,
                                           rpcbs_rmtcalllist'netid :: !(XDR.String 4294967295),
                                           rpcbs_rmtcalllist'next ::
                                           !(XDR.Optional Rpcbs_rmtcalllist)}
                         deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcbs_rmtcalllist where
  xdrType _ = "Rpcbs_rmtcalllist"
  xdrPut _x
    = XDR.xdrPut (rpcbs_rmtcalllist'prog _x) Control.Applicative.*>
        XDR.xdrPut (rpcbs_rmtcalllist'vers _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_rmtcalllist'proc _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_rmtcalllist'success _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_rmtcalllist'failure _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_rmtcalllist'indirect _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_rmtcalllist'netid _x)
        Control.Applicative.*> XDR.xdrPut (rpcbs_rmtcalllist'next _x)
  xdrGet
    = Control.Applicative.pure Rpcbs_rmtcalllist
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

type Rpcbs_proc = XDR.FixedArray 13 XDR.Int

type Rpcbs_addrlist_ptr = XDR.Optional Rpcbs_addrlist

type Rpcbs_rmtcalllist_ptr = XDR.Optional Rpcbs_rmtcalllist

data Rpcb_stat = Rpcb_stat{rpcb_stat'info :: !Rpcbs_proc,
                           rpcb_stat'setinfo :: !XDR.Int, rpcb_stat'unsetinfo :: !XDR.Int,
                           rpcb_stat'addrinfo :: !Rpcbs_addrlist_ptr,
                           rpcb_stat'rmtinfo :: !Rpcbs_rmtcalllist_ptr}
                 deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Rpcb_stat where
  xdrType _ = "Rpcb_stat"
  xdrPut _x
    = XDR.xdrPut (rpcb_stat'info _x) Control.Applicative.*>
        XDR.xdrPut (rpcb_stat'setinfo _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_stat'unsetinfo _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_stat'addrinfo _x)
        Control.Applicative.*> XDR.xdrPut (rpcb_stat'rmtinfo _x)
  xdrGet
    = Control.Applicative.pure Rpcb_stat Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

type Rpcb_stat_byvers = XDR.FixedArray 3 Rpcb_stat

data Netbuf = Netbuf{netbuf'maxlen :: !XDR.UnsignedInt,
                     netbuf'buf :: !(XDR.Opaque 4294967295)}
              deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Netbuf where
  xdrType _ = "Netbuf"
  xdrPut _x
    = XDR.xdrPut (netbuf'maxlen _x) Control.Applicative.*>
        XDR.xdrPut (netbuf'buf _x)
  xdrGet
    = Control.Applicative.pure Netbuf Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

type Rpc_string = XDR.String 4294967295

rPCBPROG :: RPCBPROG
rPCBPROG
  = RPCBPROG
      (RPCBPROG'RPCBVERS (RPC.Procedure 100000 3 1)
         (RPC.Procedure 100000 3 2)
         (RPC.Procedure 100000 3 3)
         (RPC.Procedure 100000 3 4)
         (RPC.Procedure 100000 3 5)
         (RPC.Procedure 100000 3 6)
         (RPC.Procedure 100000 3 7)
         (RPC.Procedure 100000 3 8))
      (RPCBPROG'RPCBVERS4 (RPC.Procedure 100000 4 1)
         (RPC.Procedure 100000 4 2)
         (RPC.Procedure 100000 4 3)
         (RPC.Procedure 100000 4 4)
         (RPC.Procedure 100000 4 5)
         (RPC.Procedure 100000 4 6)
         (RPC.Procedure 100000 4 7)
         (RPC.Procedure 100000 4 8)
         (RPC.Procedure 100000 4 9)
         (RPC.Procedure 100000 4 10)
         (RPC.Procedure 100000 4 11)
         (RPC.Procedure 100000 4 12))

data RPCBPROG = RPCBPROG{rPCBPROG'RPCBVERS :: !RPCBPROG'RPCBVERS,
                         rPCBPROG'RPCBVERS4 :: !RPCBPROG'RPCBVERS4}
                deriving ()

data RPCBPROG'RPCBVERS = RPCBPROG'RPCBVERS{rPCBPROG'RPCBVERS'RPCBPROC_SET
                                           :: !(RPC.Procedure Rpcb XDR.Bool),
                                           rPCBPROG'RPCBVERS'RPCBPROC_UNSET ::
                                           !(RPC.Procedure Rpcb XDR.Bool),
                                           rPCBPROG'RPCBVERS'RPCBPROC_GETADDR ::
                                           !(RPC.Procedure Rpcb Rpc_string),
                                           rPCBPROG'RPCBVERS'RPCBPROC_DUMP ::
                                           !(RPC.Procedure () Rpcblist_ptr),
                                           rPCBPROG'RPCBVERS'RPCBPROC_CALLIT ::
                                           !(RPC.Procedure Rpcb_rmtcallargs Rpcb_rmtcallres),
                                           rPCBPROG'RPCBVERS'RPCBPROC_GETTIME ::
                                           !(RPC.Procedure () XDR.UnsignedInt),
                                           rPCBPROG'RPCBVERS'RPCBPROC_UADDR2TADDR ::
                                           !(RPC.Procedure Rpc_string Netbuf),
                                           rPCBPROG'RPCBVERS'RPCBPROC_TADDR2UADDR ::
                                           !(RPC.Procedure Netbuf Rpc_string)}
                         deriving ()

data RPCBPROG'RPCBVERS4 = RPCBPROG'RPCBVERS4{rPCBPROG'RPCBVERS4'RPCBPROC_SET
                                             :: !(RPC.Procedure Rpcb XDR.Bool),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_UNSET ::
                                             !(RPC.Procedure Rpcb XDR.Bool),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_GETADDR ::
                                             !(RPC.Procedure Rpcb Rpc_string),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_DUMP ::
                                             !(RPC.Procedure () Rpcblist_ptr),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_BCAST ::
                                             !(RPC.Procedure Rpcb_rmtcallargs Rpcb_rmtcallres),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_GETTIME ::
                                             !(RPC.Procedure () XDR.UnsignedInt),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_UADDR2TADDR ::
                                             !(RPC.Procedure Rpc_string Netbuf),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_TADDR2UADDR ::
                                             !(RPC.Procedure Netbuf Rpc_string),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_GETVERSADDR ::
                                             !(RPC.Procedure Rpcb Rpc_string),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_INDIRECT ::
                                             !(RPC.Procedure Rpcb_rmtcallargs Rpcb_rmtcallres),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_GETADDRLIST ::
                                             !(RPC.Procedure Rpcb Rpcb_entry_list_ptr),
                                             rPCBPROG'RPCBVERS4'RPCBPROC_GETSTAT ::
                                             !(RPC.Procedure () Rpcb_stat_byvers)}
                          deriving ()

pMAP_PORT :: Prelude.Integral a => a
pMAP_PORT = 111

data Mapping = Mapping{mapping'prog :: !XDR.UnsignedInt,
                       mapping'vers :: !XDR.UnsignedInt, mapping'prot :: !XDR.UnsignedInt,
                       mapping'port :: !XDR.UnsignedInt}
               deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Mapping where
  xdrType _ = "Mapping"
  xdrPut _x
    = XDR.xdrPut (mapping'prog _x) Control.Applicative.*>
        XDR.xdrPut (mapping'vers _x)
        Control.Applicative.*> XDR.xdrPut (mapping'prot _x)
        Control.Applicative.*> XDR.xdrPut (mapping'port _x)
  xdrGet
    = Control.Applicative.pure Mapping Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

iPPROTO_TCP :: Prelude.Integral a => a
iPPROTO_TCP = 6

iPPROTO_UDP :: Prelude.Integral a => a
iPPROTO_UDP = 17

data Pmap = Pmap{pmap'map :: !Mapping, pmap'next :: !Pmaplist}
            deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Pmap where
  xdrType _ = "Pmap"
  xdrPut _x
    = XDR.xdrPut (pmap'map _x) Control.Applicative.*>
        XDR.xdrPut (pmap'next _x)
  xdrGet
    = Control.Applicative.pure Pmap Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

type Pmaplist = XDR.Optional Pmap

data Call_args = Call_args{call_args'prog :: !XDR.UnsignedInt,
                           call_args'vers :: !XDR.UnsignedInt,
                           call_args'proc :: !XDR.UnsignedInt,
                           call_args'args :: !(XDR.Opaque 4294967295)}
                 deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Call_args where
  xdrType _ = "Call_args"
  xdrPut _x
    = XDR.xdrPut (call_args'prog _x) Control.Applicative.*>
        XDR.xdrPut (call_args'vers _x)
        Control.Applicative.*> XDR.xdrPut (call_args'proc _x)
        Control.Applicative.*> XDR.xdrPut (call_args'args _x)
  xdrGet
    = Control.Applicative.pure Call_args Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

data Call_result = Call_result{call_result'port ::
                               !XDR.UnsignedInt,
                               call_result'res :: !(XDR.Opaque 4294967295)}
                   deriving (Prelude.Eq, Prelude.Show)

instance XDR.XDR Call_result where
  xdrType _ = "Call_result"
  xdrPut _x
    = XDR.xdrPut (call_result'port _x) Control.Applicative.*>
        XDR.xdrPut (call_result'res _x)
  xdrGet
    = Control.Applicative.pure Call_result Control.Applicative.<*>
        XDR.xdrGet
        Control.Applicative.<*> XDR.xdrGet

pMAP_PROG :: PMAP_PROG
pMAP_PROG
  = PMAP_PROG
      (PMAP_PROG'PMAP_VERS (RPC.Procedure 100000 2 0)
         (RPC.Procedure 100000 2 1)
         (RPC.Procedure 100000 2 2)
         (RPC.Procedure 100000 2 3)
         (RPC.Procedure 100000 2 4)
         (RPC.Procedure 100000 2 5))

data PMAP_PROG = PMAP_PROG{pMAP_PROG'PMAP_VERS ::
                           !PMAP_PROG'PMAP_VERS}
                 deriving ()

data PMAP_PROG'PMAP_VERS = PMAP_PROG'PMAP_VERS{pMAP_PROG'PMAP_VERS'PMAPPROC_NULL
                                               :: !(RPC.Procedure () ()),
                                               pMAP_PROG'PMAP_VERS'PMAPPROC_SET ::
                                               !(RPC.Procedure Mapping XDR.Bool),
                                               pMAP_PROG'PMAP_VERS'PMAPPROC_UNSET ::
                                               !(RPC.Procedure Mapping XDR.Bool),
                                               pMAP_PROG'PMAP_VERS'PMAPPROC_GETPORT ::
                                               !(RPC.Procedure Mapping XDR.UnsignedInt),
                                               pMAP_PROG'PMAP_VERS'PMAPPROC_DUMP ::
                                               !(RPC.Procedure () Pmaplist),
                                               pMAP_PROG'PMAP_VERS'PMAPPROC_CALLIT ::
                                               !(RPC.Procedure Call_args Call_result)}
                           deriving ()