Revision 910df89d monitor.c
b/monitor.c | ||
---|---|---|
74 | 74 |
void *handler; |
75 | 75 |
const char *params; |
76 | 76 |
const char *help; |
77 |
union { |
|
78 |
void (*info)(Monitor *mon); |
|
79 |
} mhandler; |
|
77 | 80 |
} mon_cmd_t; |
78 | 81 |
|
79 | 82 |
/* file descriptors passed via SCM_RIGHTS */ |
... | ... | |
283 | 286 |
{ |
284 | 287 |
const mon_cmd_t *cmd; |
285 | 288 |
const char *item = qdict_get_try_str(qdict, "item"); |
286 |
void (*handler)(Monitor *); |
|
287 | 289 |
|
288 | 290 |
if (!item) |
289 | 291 |
goto help; |
... | ... | |
295 | 297 |
help_cmd(mon, "info"); |
296 | 298 |
return; |
297 | 299 |
found: |
298 |
handler = cmd->handler; |
|
299 |
handler(mon); |
|
300 |
cmd->mhandler.info(mon); |
|
300 | 301 |
} |
301 | 302 |
|
302 | 303 |
static void do_info_version(Monitor *mon) |
... | ... | |
1816 | 1817 |
{ |
1817 | 1818 |
.name = "version", |
1818 | 1819 |
.args_type = "", |
1819 |
.handler = do_info_version, |
|
1820 | 1820 |
.params = "", |
1821 | 1821 |
.help = "show the version of QEMU", |
1822 |
.mhandler.info = do_info_version, |
|
1822 | 1823 |
}, |
1823 | 1824 |
{ |
1824 | 1825 |
.name = "network", |
1825 | 1826 |
.args_type = "", |
1826 |
.handler = do_info_network, |
|
1827 | 1827 |
.params = "", |
1828 | 1828 |
.help = "show the network state", |
1829 |
.mhandler.info = do_info_network, |
|
1829 | 1830 |
}, |
1830 | 1831 |
{ |
1831 | 1832 |
.name = "chardev", |
1832 | 1833 |
.args_type = "", |
1833 |
.handler = qemu_chr_info, |
|
1834 | 1834 |
.params = "", |
1835 | 1835 |
.help = "show the character devices", |
1836 |
.mhandler.info = qemu_chr_info, |
|
1836 | 1837 |
}, |
1837 | 1838 |
{ |
1838 | 1839 |
.name = "block", |
1839 | 1840 |
.args_type = "", |
1840 |
.handler = bdrv_info, |
|
1841 | 1841 |
.params = "", |
1842 | 1842 |
.help = "show the block devices", |
1843 |
.mhandler.info = bdrv_info, |
|
1843 | 1844 |
}, |
1844 | 1845 |
{ |
1845 | 1846 |
.name = "blockstats", |
1846 | 1847 |
.args_type = "", |
1847 |
.handler = bdrv_info_stats, |
|
1848 | 1848 |
.params = "", |
1849 | 1849 |
.help = "show block device statistics", |
1850 |
.mhandler.info = bdrv_info_stats, |
|
1850 | 1851 |
}, |
1851 | 1852 |
{ |
1852 | 1853 |
.name = "registers", |
1853 | 1854 |
.args_type = "", |
1854 |
.handler = do_info_registers, |
|
1855 | 1855 |
.params = "", |
1856 | 1856 |
.help = "show the cpu registers", |
1857 |
.mhandler.info = do_info_registers, |
|
1857 | 1858 |
}, |
1858 | 1859 |
{ |
1859 | 1860 |
.name = "cpus", |
1860 | 1861 |
.args_type = "", |
1861 |
.handler = do_info_cpus, |
|
1862 | 1862 |
.params = "", |
1863 | 1863 |
.help = "show infos for each CPU", |
1864 |
.mhandler.info = do_info_cpus, |
|
1864 | 1865 |
}, |
1865 | 1866 |
{ |
1866 | 1867 |
.name = "history", |
1867 | 1868 |
.args_type = "", |
1868 |
.handler = do_info_history, |
|
1869 | 1869 |
.params = "", |
1870 | 1870 |
.help = "show the command line history", |
1871 |
.mhandler.info = do_info_history, |
|
1871 | 1872 |
}, |
1872 | 1873 |
{ |
1873 | 1874 |
.name = "irq", |
1874 | 1875 |
.args_type = "", |
1875 |
.handler = irq_info, |
|
1876 | 1876 |
.params = "", |
1877 | 1877 |
.help = "show the interrupts statistics (if available)", |
1878 |
.mhandler.info = irq_info, |
|
1878 | 1879 |
}, |
1879 | 1880 |
{ |
1880 | 1881 |
.name = "pic", |
1881 | 1882 |
.args_type = "", |
1882 |
.handler = pic_info, |
|
1883 | 1883 |
.params = "", |
1884 | 1884 |
.help = "show i8259 (PIC) state", |
1885 |
.mhandler.info = pic_info, |
|
1885 | 1886 |
}, |
1886 | 1887 |
{ |
1887 | 1888 |
.name = "pci", |
1888 | 1889 |
.args_type = "", |
1889 |
.handler = pci_info, |
|
1890 | 1890 |
.params = "", |
1891 | 1891 |
.help = "show PCI info", |
1892 |
.mhandler.info = pci_info, |
|
1892 | 1893 |
}, |
1893 | 1894 |
#if defined(TARGET_I386) || defined(TARGET_SH4) |
1894 | 1895 |
{ |
1895 | 1896 |
.name = "tlb", |
1896 | 1897 |
.args_type = "", |
1897 |
.handler = tlb_info, |
|
1898 | 1898 |
.params = "", |
1899 | 1899 |
.help = "show virtual to physical memory mappings", |
1900 |
.mhandler.info = tlb_info, |
|
1900 | 1901 |
}, |
1901 | 1902 |
#endif |
1902 | 1903 |
#if defined(TARGET_I386) |
1903 | 1904 |
{ |
1904 | 1905 |
.name = "mem", |
1905 | 1906 |
.args_type = "", |
1906 |
.handler = mem_info, |
|
1907 | 1907 |
.params = "", |
1908 | 1908 |
.help = "show the active virtual memory mappings", |
1909 |
.mhandler.info = mem_info, |
|
1909 | 1910 |
}, |
1910 | 1911 |
{ |
1911 | 1912 |
.name = "hpet", |
1912 | 1913 |
.args_type = "", |
1913 |
.handler = do_info_hpet, |
|
1914 | 1914 |
.params = "", |
1915 | 1915 |
.help = "show state of HPET", |
1916 |
.mhandler.info = do_info_hpet, |
|
1916 | 1917 |
}, |
1917 | 1918 |
#endif |
1918 | 1919 |
{ |
1919 | 1920 |
.name = "jit", |
1920 | 1921 |
.args_type = "", |
1921 |
.handler = do_info_jit, |
|
1922 | 1922 |
.params = "", |
1923 | 1923 |
.help = "show dynamic compiler info", |
1924 |
.mhandler.info = do_info_jit, |
|
1924 | 1925 |
}, |
1925 | 1926 |
{ |
1926 | 1927 |
.name = "kvm", |
1927 | 1928 |
.args_type = "", |
1928 |
.handler = do_info_kvm, |
|
1929 | 1929 |
.params = "", |
1930 | 1930 |
.help = "show KVM information", |
1931 |
.mhandler.info = do_info_kvm, |
|
1931 | 1932 |
}, |
1932 | 1933 |
{ |
1933 | 1934 |
.name = "numa", |
1934 | 1935 |
.args_type = "", |
1935 |
.handler = do_info_numa, |
|
1936 | 1936 |
.params = "", |
1937 | 1937 |
.help = "show NUMA information", |
1938 |
.mhandler.info = do_info_numa, |
|
1938 | 1939 |
}, |
1939 | 1940 |
{ |
1940 | 1941 |
.name = "usb", |
1941 | 1942 |
.args_type = "", |
1942 |
.handler = usb_info, |
|
1943 | 1943 |
.params = "", |
1944 | 1944 |
.help = "show guest USB devices", |
1945 |
.mhandler.info = usb_info, |
|
1945 | 1946 |
}, |
1946 | 1947 |
{ |
1947 | 1948 |
.name = "usbhost", |
1948 | 1949 |
.args_type = "", |
1949 |
.handler = usb_host_info, |
|
1950 | 1950 |
.params = "", |
1951 | 1951 |
.help = "show host USB devices", |
1952 |
.mhandler.info = usb_host_info, |
|
1952 | 1953 |
}, |
1953 | 1954 |
{ |
1954 | 1955 |
.name = "profile", |
1955 | 1956 |
.args_type = "", |
1956 |
.handler = do_info_profile, |
|
1957 | 1957 |
.params = "", |
1958 | 1958 |
.help = "show profiling information", |
1959 |
.mhandler.info = do_info_profile, |
|
1959 | 1960 |
}, |
1960 | 1961 |
{ |
1961 | 1962 |
.name = "capture", |
1962 | 1963 |
.args_type = "", |
1963 |
.handler = do_info_capture, |
|
1964 | 1964 |
.params = "", |
1965 | 1965 |
.help = "show capture information", |
1966 |
.mhandler.info = do_info_capture, |
|
1966 | 1967 |
}, |
1967 | 1968 |
{ |
1968 | 1969 |
.name = "snapshots", |
1969 | 1970 |
.args_type = "", |
1970 |
.handler = do_info_snapshots, |
|
1971 | 1971 |
.params = "", |
1972 | 1972 |
.help = "show the currently saved VM snapshots", |
1973 |
.mhandler.info = do_info_snapshots, |
|
1973 | 1974 |
}, |
1974 | 1975 |
{ |
1975 | 1976 |
.name = "status", |
1976 | 1977 |
.args_type = "", |
1977 |
.handler = do_info_status, |
|
1978 | 1978 |
.params = "", |
1979 | 1979 |
.help = "show the current VM status (running|paused)", |
1980 |
.mhandler.info = do_info_status, |
|
1980 | 1981 |
}, |
1981 | 1982 |
{ |
1982 | 1983 |
.name = "pcmcia", |
1983 | 1984 |
.args_type = "", |
1984 |
.handler = pcmcia_info, |
|
1985 | 1985 |
.params = "", |
1986 | 1986 |
.help = "show guest PCMCIA status", |
1987 |
.mhandler.info = pcmcia_info, |
|
1987 | 1988 |
}, |
1988 | 1989 |
{ |
1989 | 1990 |
.name = "mice", |
1990 | 1991 |
.args_type = "", |
1991 |
.handler = do_info_mice, |
|
1992 | 1992 |
.params = "", |
1993 | 1993 |
.help = "show which guest mouse is receiving events", |
1994 |
.mhandler.info = do_info_mice, |
|
1994 | 1995 |
}, |
1995 | 1996 |
{ |
1996 | 1997 |
.name = "vnc", |
1997 | 1998 |
.args_type = "", |
1998 |
.handler = do_info_vnc, |
|
1999 | 1999 |
.params = "", |
2000 | 2000 |
.help = "show the vnc server status", |
2001 |
.mhandler.info = do_info_vnc, |
|
2001 | 2002 |
}, |
2002 | 2003 |
{ |
2003 | 2004 |
.name = "name", |
2004 | 2005 |
.args_type = "", |
2005 |
.handler = do_info_name, |
|
2006 | 2006 |
.params = "", |
2007 | 2007 |
.help = "show the current VM name", |
2008 |
.mhandler.info = do_info_name, |
|
2008 | 2009 |
}, |
2009 | 2010 |
{ |
2010 | 2011 |
.name = "uuid", |
2011 | 2012 |
.args_type = "", |
2012 |
.handler = do_info_uuid, |
|
2013 | 2013 |
.params = "", |
2014 | 2014 |
.help = "show the current VM UUID", |
2015 |
.mhandler.info = do_info_uuid, |
|
2015 | 2016 |
}, |
2016 | 2017 |
#if defined(TARGET_PPC) |
2017 | 2018 |
{ |
2018 | 2019 |
.name = "cpustats", |
2019 | 2020 |
.args_type = "", |
2020 |
.handler = do_info_cpu_stats, |
|
2021 | 2021 |
.params = "", |
2022 | 2022 |
.help = "show CPU statistics", |
2023 |
.mhandler.info = do_info_cpu_stats, |
|
2023 | 2024 |
}, |
2024 | 2025 |
#endif |
2025 | 2026 |
#if defined(CONFIG_SLIRP) |
2026 | 2027 |
{ |
2027 | 2028 |
.name = "usernet", |
2028 | 2029 |
.args_type = "", |
2029 |
.handler = do_info_usernet, |
|
2030 | 2030 |
.params = "", |
2031 | 2031 |
.help = "show user network stack connection states", |
2032 |
.mhandler.info = do_info_usernet, |
|
2032 | 2033 |
}, |
2033 | 2034 |
#endif |
2034 | 2035 |
{ |
2035 | 2036 |
.name = "migrate", |
2036 | 2037 |
.args_type = "", |
2037 |
.handler = do_info_migrate, |
|
2038 | 2038 |
.params = "", |
2039 | 2039 |
.help = "show migration status", |
2040 |
.mhandler.info = do_info_migrate, |
|
2040 | 2041 |
}, |
2041 | 2042 |
{ |
2042 | 2043 |
.name = "balloon", |
2043 | 2044 |
.args_type = "", |
2044 |
.handler = do_info_balloon, |
|
2045 | 2045 |
.params = "", |
2046 | 2046 |
.help = "show balloon information", |
2047 |
.mhandler.info = do_info_balloon, |
|
2047 | 2048 |
}, |
2048 | 2049 |
{ |
2049 | 2050 |
.name = "qtree", |
2050 | 2051 |
.args_type = "", |
2051 |
.handler = do_info_qtree, |
|
2052 | 2052 |
.params = "", |
2053 | 2053 |
.help = "show device tree", |
2054 |
.mhandler.info = do_info_qtree, |
|
2054 | 2055 |
}, |
2055 | 2056 |
{ |
2056 | 2057 |
.name = "qdm", |
2057 | 2058 |
.args_type = "", |
2058 |
.handler = do_info_qdm, |
|
2059 | 2059 |
.params = "", |
2060 | 2060 |
.help = "show qdev device model list", |
2061 |
.mhandler.info = do_info_qdm, |
|
2061 | 2062 |
}, |
2062 | 2063 |
{ |
2063 | 2064 |
.name = "roms", |
2064 | 2065 |
.args_type = "", |
2065 |
.handler = do_info_roms, |
|
2066 | 2066 |
.params = "", |
2067 | 2067 |
.help = "show roms", |
2068 |
.mhandler.info = do_info_roms, |
|
2068 | 2069 |
}, |
2069 | 2070 |
{ |
2070 | 2071 |
.name = NULL, |
Also available in: Unified diff