{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Linux
( module SwiftNav.SBP.Linux
) where
import BasicPrelude
import Control.Lens
import Control.Monad.Loops
import Data.Binary
import Data.Binary.Get
import Data.Binary.IEEE754
import Data.Binary.Put
import Data.ByteString.Lazy hiding (ByteString)
import Data.Int
import Data.Word
import SwiftNav.SBP.TH
import SwiftNav.SBP.Types
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
{-# ANN module ("HLint: ignore Redundant do"::String) #-}
{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}
msgLinuxCpuState :: Word16
msgLinuxCpuState = 0x7F00
data MsgLinuxCpuState = MsgLinuxCpuState
{ _msgLinuxCpuState_index :: !Word8
, _msgLinuxCpuState_pid :: !Word16
, _msgLinuxCpuState_pcpu :: !Word8
, _msgLinuxCpuState_tname :: !Text
, _msgLinuxCpuState_cmdline :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxCpuState where
get = do
_msgLinuxCpuState_index <- getWord8
_msgLinuxCpuState_pid <- getWord16le
_msgLinuxCpuState_pcpu <- getWord8
_msgLinuxCpuState_tname <- decodeUtf8 <$> getByteString 15
_msgLinuxCpuState_cmdline <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLinuxCpuState {..}
put MsgLinuxCpuState {..} = do
putWord8 _msgLinuxCpuState_index
putWord16le _msgLinuxCpuState_pid
putWord8 _msgLinuxCpuState_pcpu
putByteString $ encodeUtf8 _msgLinuxCpuState_tname
putByteString $ encodeUtf8 _msgLinuxCpuState_cmdline
$(makeSBP 'msgLinuxCpuState ''MsgLinuxCpuState)
$(makeJSON "_msgLinuxCpuState_" ''MsgLinuxCpuState)
$(makeLenses ''MsgLinuxCpuState)
msgLinuxMemState :: Word16
msgLinuxMemState = 0x7F01
data MsgLinuxMemState = MsgLinuxMemState
{ _msgLinuxMemState_index :: !Word8
, _msgLinuxMemState_pid :: !Word16
, _msgLinuxMemState_pmem :: !Word8
, _msgLinuxMemState_tname :: !Text
, _msgLinuxMemState_cmdline :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxMemState where
get = do
_msgLinuxMemState_index <- getWord8
_msgLinuxMemState_pid <- getWord16le
_msgLinuxMemState_pmem <- getWord8
_msgLinuxMemState_tname <- decodeUtf8 <$> getByteString 15
_msgLinuxMemState_cmdline <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLinuxMemState {..}
put MsgLinuxMemState {..} = do
putWord8 _msgLinuxMemState_index
putWord16le _msgLinuxMemState_pid
putWord8 _msgLinuxMemState_pmem
putByteString $ encodeUtf8 _msgLinuxMemState_tname
putByteString $ encodeUtf8 _msgLinuxMemState_cmdline
$(makeSBP 'msgLinuxMemState ''MsgLinuxMemState)
$(makeJSON "_msgLinuxMemState_" ''MsgLinuxMemState)
$(makeLenses ''MsgLinuxMemState)
msgLinuxSysState :: Word16
msgLinuxSysState = 0x7F02
data MsgLinuxSysState = MsgLinuxSysState
{ _msgLinuxSysState_mem_total :: !Word16
, _msgLinuxSysState_pcpu :: !Word8
, _msgLinuxSysState_pmem :: !Word8
, _msgLinuxSysState_procs_starting :: !Word16
, _msgLinuxSysState_procs_stopping :: !Word16
, _msgLinuxSysState_pid_count :: !Word16
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxSysState where
get = do
_msgLinuxSysState_mem_total <- getWord16le
_msgLinuxSysState_pcpu <- getWord8
_msgLinuxSysState_pmem <- getWord8
_msgLinuxSysState_procs_starting <- getWord16le
_msgLinuxSysState_procs_stopping <- getWord16le
_msgLinuxSysState_pid_count <- getWord16le
pure MsgLinuxSysState {..}
put MsgLinuxSysState {..} = do
putWord16le _msgLinuxSysState_mem_total
putWord8 _msgLinuxSysState_pcpu
putWord8 _msgLinuxSysState_pmem
putWord16le _msgLinuxSysState_procs_starting
putWord16le _msgLinuxSysState_procs_stopping
putWord16le _msgLinuxSysState_pid_count
$(makeSBP 'msgLinuxSysState ''MsgLinuxSysState)
$(makeJSON "_msgLinuxSysState_" ''MsgLinuxSysState)
$(makeLenses ''MsgLinuxSysState)
msgLinuxProcessSocketCounts :: Word16
msgLinuxProcessSocketCounts = 0x7F03
data MsgLinuxProcessSocketCounts = MsgLinuxProcessSocketCounts
{ _msgLinuxProcessSocketCounts_index :: !Word8
, _msgLinuxProcessSocketCounts_pid :: !Word16
, _msgLinuxProcessSocketCounts_socket_count :: !Word16
, _msgLinuxProcessSocketCounts_socket_types :: !Word16
, _msgLinuxProcessSocketCounts_socket_states :: !Word16
, _msgLinuxProcessSocketCounts_cmdline :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxProcessSocketCounts where
get = do
_msgLinuxProcessSocketCounts_index <- getWord8
_msgLinuxProcessSocketCounts_pid <- getWord16le
_msgLinuxProcessSocketCounts_socket_count <- getWord16le
_msgLinuxProcessSocketCounts_socket_types <- getWord16le
_msgLinuxProcessSocketCounts_socket_states <- getWord16le
_msgLinuxProcessSocketCounts_cmdline <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLinuxProcessSocketCounts {..}
put MsgLinuxProcessSocketCounts {..} = do
putWord8 _msgLinuxProcessSocketCounts_index
putWord16le _msgLinuxProcessSocketCounts_pid
putWord16le _msgLinuxProcessSocketCounts_socket_count
putWord16le _msgLinuxProcessSocketCounts_socket_types
putWord16le _msgLinuxProcessSocketCounts_socket_states
putByteString $ encodeUtf8 _msgLinuxProcessSocketCounts_cmdline
$(makeSBP 'msgLinuxProcessSocketCounts ''MsgLinuxProcessSocketCounts)
$(makeJSON "_msgLinuxProcessSocketCounts_" ''MsgLinuxProcessSocketCounts)
$(makeLenses ''MsgLinuxProcessSocketCounts)
msgLinuxProcessSocketQueues :: Word16
msgLinuxProcessSocketQueues = 0x7F04
data MsgLinuxProcessSocketQueues = MsgLinuxProcessSocketQueues
{ _msgLinuxProcessSocketQueues_index :: !Word8
, _msgLinuxProcessSocketQueues_pid :: !Word16
, _msgLinuxProcessSocketQueues_recv_queued :: !Word16
, _msgLinuxProcessSocketQueues_send_queued :: !Word16
, _msgLinuxProcessSocketQueues_socket_types :: !Word16
, _msgLinuxProcessSocketQueues_socket_states :: !Word16
, _msgLinuxProcessSocketQueues_address_of_largest :: !Text
, _msgLinuxProcessSocketQueues_cmdline :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxProcessSocketQueues where
get = do
_msgLinuxProcessSocketQueues_index <- getWord8
_msgLinuxProcessSocketQueues_pid <- getWord16le
_msgLinuxProcessSocketQueues_recv_queued <- getWord16le
_msgLinuxProcessSocketQueues_send_queued <- getWord16le
_msgLinuxProcessSocketQueues_socket_types <- getWord16le
_msgLinuxProcessSocketQueues_socket_states <- getWord16le
_msgLinuxProcessSocketQueues_address_of_largest <- decodeUtf8 <$> getByteString 64
_msgLinuxProcessSocketQueues_cmdline <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLinuxProcessSocketQueues {..}
put MsgLinuxProcessSocketQueues {..} = do
putWord8 _msgLinuxProcessSocketQueues_index
putWord16le _msgLinuxProcessSocketQueues_pid
putWord16le _msgLinuxProcessSocketQueues_recv_queued
putWord16le _msgLinuxProcessSocketQueues_send_queued
putWord16le _msgLinuxProcessSocketQueues_socket_types
putWord16le _msgLinuxProcessSocketQueues_socket_states
putByteString $ encodeUtf8 _msgLinuxProcessSocketQueues_address_of_largest
putByteString $ encodeUtf8 _msgLinuxProcessSocketQueues_cmdline
$(makeSBP 'msgLinuxProcessSocketQueues ''MsgLinuxProcessSocketQueues)
$(makeJSON "_msgLinuxProcessSocketQueues_" ''MsgLinuxProcessSocketQueues)
$(makeLenses ''MsgLinuxProcessSocketQueues)
msgLinuxSocketUsage :: Word16
msgLinuxSocketUsage = 0x7F05
data MsgLinuxSocketUsage = MsgLinuxSocketUsage
{ _msgLinuxSocketUsage_avg_queue_depth :: !Word32
, _msgLinuxSocketUsage_max_queue_depth :: !Word32
, _msgLinuxSocketUsage_socket_state_counts :: ![Word16]
, _msgLinuxSocketUsage_socket_type_counts :: ![Word16]
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxSocketUsage where
get = do
_msgLinuxSocketUsage_avg_queue_depth <- getWord32le
_msgLinuxSocketUsage_max_queue_depth <- getWord32le
_msgLinuxSocketUsage_socket_state_counts <- replicateM 16 getWord16le
_msgLinuxSocketUsage_socket_type_counts <- replicateM 16 getWord16le
pure MsgLinuxSocketUsage {..}
put MsgLinuxSocketUsage {..} = do
putWord32le _msgLinuxSocketUsage_avg_queue_depth
putWord32le _msgLinuxSocketUsage_max_queue_depth
mapM_ putWord16le _msgLinuxSocketUsage_socket_state_counts
mapM_ putWord16le _msgLinuxSocketUsage_socket_type_counts
$(makeSBP 'msgLinuxSocketUsage ''MsgLinuxSocketUsage)
$(makeJSON "_msgLinuxSocketUsage_" ''MsgLinuxSocketUsage)
$(makeLenses ''MsgLinuxSocketUsage)
msgLinuxProcessFdCount :: Word16
msgLinuxProcessFdCount = 0x7F06
data MsgLinuxProcessFdCount = MsgLinuxProcessFdCount
{ _msgLinuxProcessFdCount_index :: !Word8
, _msgLinuxProcessFdCount_pid :: !Word16
, _msgLinuxProcessFdCount_fd_count :: !Word16
, _msgLinuxProcessFdCount_cmdline :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxProcessFdCount where
get = do
_msgLinuxProcessFdCount_index <- getWord8
_msgLinuxProcessFdCount_pid <- getWord16le
_msgLinuxProcessFdCount_fd_count <- getWord16le
_msgLinuxProcessFdCount_cmdline <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLinuxProcessFdCount {..}
put MsgLinuxProcessFdCount {..} = do
putWord8 _msgLinuxProcessFdCount_index
putWord16le _msgLinuxProcessFdCount_pid
putWord16le _msgLinuxProcessFdCount_fd_count
putByteString $ encodeUtf8 _msgLinuxProcessFdCount_cmdline
$(makeSBP 'msgLinuxProcessFdCount ''MsgLinuxProcessFdCount)
$(makeJSON "_msgLinuxProcessFdCount_" ''MsgLinuxProcessFdCount)
$(makeLenses ''MsgLinuxProcessFdCount)
msgLinuxProcessFdSummary :: Word16
msgLinuxProcessFdSummary = 0x7F07
data MsgLinuxProcessFdSummary = MsgLinuxProcessFdSummary
{ _msgLinuxProcessFdSummary_sys_fd_count :: !Word32
, _msgLinuxProcessFdSummary_most_opened :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLinuxProcessFdSummary where
get = do
_msgLinuxProcessFdSummary_sys_fd_count <- getWord32le
_msgLinuxProcessFdSummary_most_opened <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLinuxProcessFdSummary {..}
put MsgLinuxProcessFdSummary {..} = do
putWord32le _msgLinuxProcessFdSummary_sys_fd_count
putByteString $ encodeUtf8 _msgLinuxProcessFdSummary_most_opened
$(makeSBP 'msgLinuxProcessFdSummary ''MsgLinuxProcessFdSummary)
$(makeJSON "_msgLinuxProcessFdSummary_" ''MsgLinuxProcessFdSummary)
$(makeLenses ''MsgLinuxProcessFdSummary)