⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mon-mpci.c

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 C
字号:
/* * RTEMS MPCI Config display support * * TODO * *  $Id: mon-mpci.c,v 1.6.10.1 2003/07/08 08:37:40 ralf Exp $ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__#include <rtems.h>#include <rtems/monitor.h>#include <stdio.h>#include <stdlib.h>             /* strtoul() */#define DATACOL 15/* * Fill in entire monitor config table * for sending to a remote monitor or printing on the local system */voidrtems_monitor_mpci_canonical(    rtems_monitor_mpci_t *canonical_mpci,    void                  *config_void){    rtems_configuration_table *c = _Configuration_Table;    rtems_multiprocessing_table *m;    rtems_mpci_table *mt;    m = c->User_multiprocessing_table;    if (m == 0)        return;    mt = m->User_mpci_table;        canonical_mpci->node = m->node;    canonical_mpci->maximum_nodes = m->maximum_nodes;    canonical_mpci->maximum_global_objects = m->maximum_global_objects;    canonical_mpci->maximum_proxies = m->maximum_proxies;    canonical_mpci->default_timeout = mt->default_timeout;    canonical_mpci->maximum_packet_size = mt->maximum_packet_size;    rtems_monitor_symbol_canonical_by_value(&canonical_mpci->initialization,                                            (void *) mt->initialization);    rtems_monitor_symbol_canonical_by_value(&canonical_mpci->get_packet,                                            (void *) mt->get_packet);    rtems_monitor_symbol_canonical_by_value(&canonical_mpci->return_packet,                                            (void *) mt->return_packet);    rtems_monitor_symbol_canonical_by_value(&canonical_mpci->send_packet,                                            (void *) mt->send_packet);    rtems_monitor_symbol_canonical_by_value(&canonical_mpci->receive_packet,                                            (void *) mt->receive_packet);}    /* * This is easy, since there is only 1 (altho we could get them from *    other nodes...) */void *rtems_monitor_mpci_next(    void                  *object_info,    rtems_monitor_mpci_t  *canonical_mpci,    rtems_id              *next_id){    rtems_configuration_table *c = _Configuration_Table;    int n = rtems_get_index(*next_id);    if (n >= 1)        goto failed;        if ( ! c->User_multiprocessing_table)        goto failed;        _Thread_Disable_dispatch();    *next_id += 1;    return (void *) c;failed:    *next_id = RTEMS_OBJECT_ID_FINAL;    return 0;}voidrtems_monitor_mpci_dump_header(    boolean verbose){    printf("\           max     max     max     default    max\n\   node   nodes  globals  proxies  timeout  pktsize\n");/*23456789 123456789 123456789 123456789 123456789 123456789 123456789 1234567890         1         2         3         4         5         6         7       */               rtems_monitor_separator();}voidrtems_monitor_mpci_dump(    rtems_monitor_mpci_t *monitor_mpci,    boolean               verbose){    unsigned32   length = 0;    length += rtems_monitor_pad(2, length);    length += printf("  %d", monitor_mpci->node);    length += rtems_monitor_pad(11, length);    length += printf("%d", monitor_mpci->maximum_nodes);        length += rtems_monitor_pad(18, length);    length += rtems_monitor_dump_decimal(monitor_mpci->maximum_global_objects);        length += rtems_monitor_pad(28, length);    length += rtems_monitor_dump_decimal(monitor_mpci->maximum_proxies);    length += rtems_monitor_pad(37, length);    length += rtems_monitor_dump_decimal(monitor_mpci->default_timeout);    length += rtems_monitor_pad(46, length);    length += rtems_monitor_dump_decimal(monitor_mpci->maximum_packet_size);    printf("\n");    length = 0;    length += rtems_monitor_pad(DATACOL, length);    length += printf("init: ");    length += rtems_monitor_symbol_dump(&monitor_mpci->initialization, verbose);    printf("\n");    length = 0;    length += rtems_monitor_pad(DATACOL, length);    length += printf("get: ");    length += rtems_monitor_symbol_dump(&monitor_mpci->get_packet, verbose);    length += printf(";  return: ");    length += rtems_monitor_symbol_dump(&monitor_mpci->return_packet, verbose);    printf("\n");    length = 0;    length += rtems_monitor_pad(DATACOL, length);    length += printf("send: ");    length += rtems_monitor_symbol_dump(&monitor_mpci->send_packet, verbose);    length += printf(";  receive: ");    length += rtems_monitor_symbol_dump(&monitor_mpci->receive_packet, verbose);    printf("\n");    length = 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -