Add watchdog ticks command.

- ToDo : Fix watchdog states.
This commit is contained in:
Dhananjay Balan
2013-08-25 23:03:44 +05:30
committed by Chris Johns
parent 04d95ec2b2
commit a7176a8a7e
4 changed files with 43 additions and 8 deletions

View File

@@ -48,3 +48,6 @@ class control:
def last(self):
return node(self.ctrl['Tail']['Node'])
def empty(self):
if self.last() == self.first().next():
return True

View File

@@ -17,4 +17,5 @@ rtems.rtems_object()
rtems.rtems_semaphore()
rtems.rtems_task()
rtems.rtems_message_queue()
rtems.rtems_tod()
rtems.rtems_tod()
rtems.rtems_wdt()

View File

@@ -10,6 +10,7 @@ import re
import objects
import threads
import chains
import supercore
import classic
@@ -205,3 +206,37 @@ class rtems_tod(gdb.Command):
instance = supercore.time_of_day(obj)
instance.show()
objects.information.invalidate()
class rtems_watchdog_chain(gdb.Command):
'''Print watchdog ticks chain'''
api = 'internal'
_class = ''
def __init__(self,command):
super(rtems_watchdog_chain, self).__init__ \
(command, gdb.COMMAND_DATA, gdb.COMPLETE_NONE)
def invoke(self, arg, from_tty):
obj = objects.information.object_return(self.api, self._class)
inst = chains.control(obj)
if inst.empty():
print ' error: empty chain'
return
nd = inst.first()
while not nd.null():
wd = watchdog.control(nd.cast('Watchdog_Control'))
wd.show()
nd = nd.next()
class rtems_wdt(rtems_watchdog_chain):
_class = 'wdticks'
def __init__(self):
self.__doc__ = 'Display watchdog ticks chain'
super(rtems_wdt, self).__init__('rtems wdticks')

View File

@@ -12,11 +12,6 @@ import objects
class state:
INACTIVE = 0
BEING_INSERTED = 1
ACTIVE = 2
REMOVE_IT = 3
states = {
0: 'inactive',
1: 'being-inserted',
@@ -35,9 +30,10 @@ class control:
def __init__(self, ctrl):
self.ctrl = ctrl
# Not sure if an extra class is needed.
# ToDo: fix this.1
def state(self):
return state(int(self.ctrl['state'])).to_string()
return state(1).to_string()
#return state(int(self.ctrl['state'])).to_string()
def initial(self):
return self.ctrl['initial']