FunctionBar* FunctionBar_new(const char** functions, const char** keys, int* events) { FunctionBar* this = xCalloc(1, sizeof(FunctionBar)); this->functions = xCalloc(16, sizeof(char*)); if (!functions) { functions = FunctionBar_FLabels; } for (int i = 0; i < 15 && functions[i]; i++) { this->functions[i] = xStrdup(functions[i]); } if (keys && events) { this->staticData = false; this->keys = xCalloc(15, sizeof(char*)); this->events = xCalloc(15, sizeof(int)); int i = 0; while (i < 15 && functions[i]) { this->keys[i] = xStrdup(keys[i]); this->events[i] = events[i]; i++; } this->size = i; } else { this->staticData = true; this->keys = (char**) FunctionBar_FKeys; this->events = FunctionBar_FEvents; this->size = 10; } return this; }
Meter* Meter_new(struct ProcessList_* pl, int param, MeterClass* type) { Meter* this = xCalloc(1, sizeof(Meter)); Object_setClass(this, type); this->h = 1; this->param = param; this->pl = pl; type->curItems = type->maxItems; this->values = xCalloc(type->maxItems, sizeof(double)); this->total = type->total; this->caption = xStrdup(type->caption); if (Meter_initFn(this)) Meter_init(this); Meter_setMode(this, type->defaultMode); return this; }
static void allocLineFposMap (inputLineFposMap *lineFposMap) { #define INITIAL_lineFposMap_LEN 256 lineFposMap->pos = xCalloc (INITIAL_lineFposMap_LEN, compoundPos); lineFposMap->size = INITIAL_lineFposMap_LEN; lineFposMap->count = 0; }
extern parserDefinition* parserNew (const char* name) { parserDefinition* result = xCalloc (1, parserDefinition); result->name = eStrdup (name); result->fileKind = KIND_FILE_DEFAULT; return result; }
extern parserDefinition* parserNewFull (const char* name, char fileKind) { parserDefinition* result = xCalloc (1, parserDefinition); result->name = eStrdup (name); if (fileKind) result->fileKind = fileKindNew(fileKind); else result->fileKind = &defaultFileKind; result->enabled = TRUE; return result; }
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) { SolarisProcessList* spl = xCalloc(1, sizeof(SolarisProcessList)); ProcessList* pl = (ProcessList*) spl; ProcessList_init(pl, Class(SolarisProcess), usersTable, pidWhiteList, userId); spl->kd = kstat_open(); pl->cpuCount = sysconf(_SC_NPROCESSORS_ONLN); if (pl->cpuCount == 1 ) { spl->cpus = xRealloc(spl->cpus, sizeof(CPUData)); } else { spl->cpus = xRealloc(spl->cpus, (pl->cpuCount + 1) * sizeof(CPUData)); } return pl; }
extern parserDefinition* parserNew (const char* name) { parserDefinition* result = xCalloc (1, parserDefinition); result->name = eStrdup (name); return result; }
extern NestingLevels *nestingLevelsNew(void) { NestingLevels *nls = xCalloc (1, NestingLevels); return nls; }
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) { size_t len; char errbuf[_POSIX2_LINE_MAX]; FreeBSDProcessList* fpl = xCalloc(1, sizeof(FreeBSDProcessList)); ProcessList* pl = (ProcessList*) fpl; ProcessList_init(pl, Class(FreeBSDProcess), usersTable, pidWhiteList, userId); // physical memory in system: hw.physmem // physical page size: hw.pagesize // usable pagesize : vm.stats.vm.v_page_size len = 2; sysctlnametomib("hw.physmem", MIB_hw_physmem, &len); len = sizeof(pageSize); if (sysctlbyname("vm.stats.vm.v_page_size", &pageSize, &len, NULL, 0) == -1) { pageSize = PAGE_SIZE; pageSizeKb = PAGE_SIZE_KB; } else { pageSizeKb = pageSize / ONE_K; } // usable page count vm.stats.vm.v_page_count // actually usable memory : vm.stats.vm.v_page_count * vm.stats.vm.v_page_size len = 4; sysctlnametomib("vm.stats.vm.v_page_count", MIB_vm_stats_vm_v_page_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_wire_count", MIB_vm_stats_vm_v_wire_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_active_count", MIB_vm_stats_vm_v_active_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_cache_count", MIB_vm_stats_vm_v_cache_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_inactive_count", MIB_vm_stats_vm_v_inactive_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_free_count", MIB_vm_stats_vm_v_free_count, &len); len = 2; sysctlnametomib("vfs.bufspace", MIB_vfs_bufspace, &len); len = sizeof(fpl->memZfsArc); if (sysctlbyname("kstat.zfs.misc.arcstats.size", &fpl->memZfsArc, &len, NULL, 0) == 0 && fpl->memZfsArc != 0) { sysctlnametomib("kstat.zfs.misc.arcstats.size", MIB_kstat_zfs_misc_arcstats_size, &len); fpl->zfsArcEnabled = 1; } else { fpl->zfsArcEnabled = 0; } int smp = 0; len = sizeof(smp); if (sysctlbyname("kern.smp.active", &smp, &len, NULL, 0) != 0 || len != sizeof(smp)) { smp = 0; } int cpus = 1; len = sizeof(cpus); if (smp) { int err = sysctlbyname("kern.smp.cpus", &cpus, &len, NULL, 0); if (err) cpus = 1; } else { cpus = 1; } size_t sizeof_cp_time_array = sizeof(unsigned long) * CPUSTATES; len = 2; sysctlnametomib("kern.cp_time", MIB_kern_cp_time, &len); fpl->cp_time_o = xCalloc(cpus, sizeof_cp_time_array); fpl->cp_time_n = xCalloc(cpus, sizeof_cp_time_array); len = sizeof_cp_time_array; // fetch initial single (or average) CPU clicks from kernel sysctl(MIB_kern_cp_time, 2, fpl->cp_time_o, &len, NULL, 0); // on smp box, fetch rest of initial CPU's clicks if (cpus > 1) { len = 2; sysctlnametomib("kern.cp_times", MIB_kern_cp_times, &len); fpl->cp_times_o = xCalloc(cpus, sizeof_cp_time_array); fpl->cp_times_n = xCalloc(cpus, sizeof_cp_time_array); len = cpus * sizeof_cp_time_array; sysctl(MIB_kern_cp_times, 2, fpl->cp_times_o, &len, NULL, 0); } pl->cpuCount = MAX(cpus, 1); if (cpus == 1 ) { fpl->cpus = xRealloc(fpl->cpus, sizeof(CPUData)); } else { // on smp we need CPUs + 1 to store averages too (as kernel kindly provides that as well) fpl->cpus = xRealloc(fpl->cpus, (pl->cpuCount + 1) * sizeof(CPUData)); } len = sizeof(kernelFScale); if (sysctlbyname("kern.fscale", &kernelFScale, &len, NULL, 0) == -1) { //sane default for kernel provided CPU percentage scaling, at least on x86 machines, in case this sysctl call failed kernelFScale = 2048; } fpl->kd = kvm_openfiles(NULL, "/dev/null", NULL, 0, errbuf); if (fpl->kd == NULL) { errx(1, "kvm_open: %s", errbuf); } return pl; }
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) { ProcessList* this = xCalloc(1, sizeof(ProcessList)); ProcessList_init(this, Class(Process), usersTable, pidWhiteList, userId); return this; }
extern NestingLevels *nestingLevelsNew(size_t userDataSize) { NestingLevels *nls = xCalloc (1, NestingLevels); nls->userDataSize = userDataSize; return nls; }
int background; unsigned char MKeysState; int screen_fd; g15canvas *canvas; drawFuncPtrDef drawFunc; updateFuncPtrDef updateFunc; double** values; }; G15AppsData *newKeyboard(){ return malloc(sizeof(G15AppsData)); } int setKeyBoard(G15AppsData *this){ this->lpl = xCalloc(1, sizeof(LinuxProcessList)); setProccessList(this->lpl); this->screens[0] = NULL; this->numOfScreens=0; this->lastPressedKey=-1; this->BrightnessLevel=-1; return EXIT_SUCCESS; } G15Screen* createNewScreen(G15AppsData *this, char* name, int (*drawPtr)(G15Screen*), void (*updatePtr)(G15AppsData*)){ int screenID = this->numOfScreens; if(this->screens[screenID]==NULL){ this->screens[screenID] = newScreen(); setScreen(this->screens[screenID], name, drawPtr, updatePtr);