|
|||
Prex Home / Browse Source - Prex Version: 0.9.0 |
|||
root/include/sys/sysinfo.h/* [<][>][^][v][top][bottom][index][help] */INCLUDED FROM1 /* 2 * Copyright (c) 2007-2009, Kohsuke Ohtani 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the author nor the names of any co-contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 */ 29 30 #ifndef _SYS_SYSINFO_H 31 #define _SYS_SYSINFO_H 32 33 #include <sys/param.h> 34 #include <sys/utsname.h> 35 #include <sys/capability.h> 36 #include <sys/device.h> 37 38 /* 39 * Max size of info buffer. 40 * 41 * Please make sure MAXINFOSZ is still correct if you change 42 * the information structure below. 43 */ 44 #define MAXINFOSZ sizeof(struct kerninfo) 45 46 /* 47 * Data type for sys_info() 48 */ 49 #define INFO_KERNEL 1 50 #define INFO_MEMORY 2 51 #define INFO_TIMER 3 52 #define INFO_THREAD 4 53 #define INFO_TASK 5 54 #define INFO_VM 6 55 #define INFO_DEVICE 7 56 #define INFO_IRQ 8 57 58 /* 59 * Kernel information 60 * Note: must be same with struct utsname. 61 */ 62 struct kerninfo { 63 char sysname[_SYS_NMLN]; /* name of this OS. */ 64 char nodename[_SYS_NMLN]; /* name of this network node. */ 65 char release[_SYS_NMLN]; /* release level. */ 66 char version[_SYS_NMLN]; /* version level. */ 67 char machine[_SYS_NMLN]; /* hardware type. */ 68 }; 69 70 /* 71 * Memory information 72 */ 73 struct meminfo { 74 psize_t total; /* total memory size in bytes */ 75 psize_t free; /* current free memory in bytes */ 76 psize_t bootdisk; /* total size of boot disk */ 77 }; 78 79 /* 80 * Thread information 81 */ 82 struct threadinfo { 83 u_long cookie; /* index cookie */ 84 thread_t id; /* thread id */ 85 int state; /* thread state */ 86 int policy; /* scheduling policy */ 87 int priority; /* current priority */ 88 int basepri; /* base priority */ 89 u_int time; /* total running time */ 90 int suscnt; /* suspend count */ 91 task_t task; /* task id */ 92 int active; /* true if active thread */ 93 char taskname[MAXTASKNAME]; /* task name */ 94 char slpevt[MAXEVTNAME]; /* sleep event */ 95 }; 96 97 /* 98 * Task information 99 */ 100 struct taskinfo { 101 u_long cookie; /* index cookie */ 102 task_t id; /* task id */ 103 int flags; /* task flags */ 104 int suscnt; /* suspend count */ 105 cap_t capability; /* security permission flag */ 106 size_t vmsize; /* used memory size */ 107 int nthreads; /* number of threads */ 108 int active; /* true if active task */ 109 char taskname[MAXTASKNAME]; /* task name */ 110 }; 111 112 /* 113 * VM information 114 */ 115 struct vminfo { 116 u_long cookie; /* index cookie */ 117 task_t task; /* task id */ 118 vaddr_t virt; /* virtual address */ 119 size_t size; /* size */ 120 int flags; /* region flag */ 121 paddr_t phys; /* physical address */ 122 }; 123 124 /* Flags for vm */ 125 #define VF_READ 0x00000001 126 #define VF_WRITE 0x00000002 127 #define VF_EXEC 0x00000004 128 #define VF_SHARED 0x00000008 129 #define VF_MAPPED 0x00000010 130 #define VF_FREE 0x00000080 131 132 /* 133 * Device information 134 */ 135 struct devinfo { 136 u_long cookie; /* index cookie */ 137 device_t id; /* device id */ 138 int flags; /* device characteristics flags */ 139 char name[MAXDEVNAME]; /* device name */ 140 }; 141 142 /* 143 * Timer informations 144 */ 145 struct timerinfo { 146 int hz; /* clock frequency */ 147 u_long cputicks; /* total cpu ticks since boot */ 148 u_long idleticks; /* total idle ticks */ 149 }; 150 151 /* 152 * IRQ information 153 */ 154 struct irqinfo { 155 int cookie; /* index cookie */ 156 int vector; /* vector number */ 157 u_int count; /* interrupt count */ 158 int priority; /* interrupt priority */ 159 int istreq; /* pending ist request */ 160 thread_t thread; /* thread id of ist */ 161 }; 162 163 #endif /* !_SYS_SYSINFO_H */ /* [<][>][^][v][top][bottom][index][help] */ | |||
Copyright© 2005-2009 Kohsuke Ohtani |