RTEMS: cpukit/libblock/src/show_bdbuf.c File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
show_bdbuf.c File Reference
Device Drivers » Block Device Library » Block Device Partition Management

Enable the Monitor to Show bdbuf Information. More...

`#include <rtems.h>`
`#include <rtems/monitor.h>`
`#include <rtems/bdbuf.h>`
`#include <string.h>`
`#include <ctype.h>`
`#include <stdio.h>`
`#include <rtems/libio.h>`
`#include <inttypes.h>`

## Data Structures
struct | show_bdbuf_filter_t
struct | show_bdbuf_selector_t
struct | show_bdbuf_bdbuf_info_t

## Macros
#define | DISABLE_PREEMPTION(key)
#define | ENABLE_PREEMPTION(key)
#define | ARRAY_CNT(arr) (sizeof((arr))/sizeof((arr)[0]))

## Typedefs
typedef rtems_mode | preemption_key_t

## Enumerations
enum | bdbuf_chain_identifier_t { bdbuf_chain_ident_none , bdbuf_chain_ident_free , bdbuf_chain_ident_lru , bdbuf_chain_ident_mod }

## Functions
rtems_status_code | rtems_bdbuf_show_follow_chain_node_to_head (const Chain_Node *the_node, Chain_Control **the_head)
rtems_status_code | rtems_bdbuf_show_determine_chain_of_bdbuf (const bdbuf_buffer *the_bdbuf, const bdbuf_pool *curr_pool, bdbuf_chain_identifier_t *chn_ident)
rtems_status_code | rtems_bdbuf_show_getargs (int argc, char **argv, show_bdbuf_filter_t *filter, show_bdbuf_selector_t *selector)
rtems_status_code | rtems_bdbuf_show_get_bufpool (struct bdbuf_pool **pool_base_pptr, int *pool_cnt_ptr)
rtems_status_code | rtems_bdbuf_show_pool_header (int pool_idx, bdbuf_pool *pool_ptr)
rtems_status_code | rtems_show_bdbuf_get_bdbuf_info (const bdbuf_buffer *the_bdbuf, int bdbuf_idx, const bdbuf_pool *curr_pool, show_bdbuf_bdbuf_info_t *bdbuf_info)
rtems_status_code | rtems_show_bdbuf_match_filter (const show_bdbuf_bdbuf_info_t *bdbuf_info, const show_bdbuf_filter_t *filter, bool *is_match)
rtems_status_code | rtems_show_bdbuf_print_wait_chain (bdbuf_buffer *the_bdbuf)
rtems_status_code | rtems_show_bdbuf_print (const show_bdbuf_bdbuf_info_t *bdbuf_info, show_bdbuf_selector_t *selector, bool print_header)
void | rtems_bdbuf_show_fnc (int argc, char **argv, rtems_monitor_command_arg_t *command_arg, bool verbose)
rtems_status_code | rtems_bdbuf_show_init (void)

## Detailed Description

Enable the Monitor to Show bdbuf Information.

This module inspects the bdbuf data structures, assuming they are static, but in fact they are used very dynamically. Therefore the results show MAY BE INCORRECT in some cases. And, to cure this a bit, this module may block preemption for a rather long time and therefore it may BREAK THE REALTIME BEHAVIOUR OF YOUR SYSTEM (when in use)

## Macro Definition Documentation

## ◆ DISABLE_PREEMPTION

#define DISABLE_PREEMPTION | ( |  | key | ) |

Value:
do { \
rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &(key)); \
} while (0)
RTEMS_NO_PREEMPT
#define RTEMS_NO_PREEMPT
Definition: modes.h:75
RTEMS_PREEMPT_MASK
#define RTEMS_PREEMPT_MASK
Definition: modes.h:64

## ◆ ENABLE_PREEMPTION

#define ENABLE_PREEMPTION | ( |  | key | ) |

Value:
do { \
rtems_mode temp; \
rtems_task_mode((key), RTEMS_PREEMPT_MASK, &temp); \
} while (0)
rtems_mode
uint32_t rtems_mode
Definition: modes.h:41