本文整理汇总了C++中ctob函数的典型用法代码示例。如果您正苦于以下问题:C++ ctob函数的具体用法?C++ ctob怎么用?C++ ctob使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ctob函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: uvaxIII_conf
/*
* uvaxIII_conf() is called by cpu_attach to do the cpu_specific setup.
*/
void
uvaxIII_conf()
{
int syssub = GETSYSSUBT(vax_siedata);
/*
* MicroVAX III: We map in memory error registers,
* cache control registers, SSC registers,
* interprocessor registers and cache diag space.
*/
ka650merr_ptr = (void *)vax_map_physmem(KA650_MERR, 1);
ka650cbd_ptr = (void *)vax_map_physmem(KA650_CBD, 1);
ka650ssc_ptr = (void *)vax_map_physmem(KA650_SSC, 3);
ka650ipcr_ptr = (void *)vax_map_physmem(KA650_IPCR, 1);
KA650_CACHE_ptr = (void *)vax_map_physmem(KA650_CACHE,
(KA650_CACHESIZE/VAX_NBPG));
printf("cpu: KA6%d%d, CVAX microcode rev %d Firmware rev %d\n",
syssub == VAX_SIE_KA640 ? 4 : 5,
syssub == VAX_SIE_KA655 ? 5 : 0,
(vax_cpudata & 0xff), GETFRMREV(vax_siedata));
ka650setcache(CACHEON);
if (ctob(physmem) > ka650merr_ptr->merr_qbmbr) {
printf("physmem(0x%x) > qbmbr(0x%x)\n",
ctob(physmem), (int)ka650merr_ptr->merr_qbmbr);
panic("qbus map unprotected");
}
if (mfpr(PR_TODR) == 0)
mtpr(1, PR_TODR);
}
示例2: mips_init
static void
mips_init(void)
{
int i;
#ifdef FDT
struct mem_region mr[FDT_MEM_REGIONS];
uint64_t val;
int mr_cnt;
int j;
#endif
for (i = 0; i < 10; i++) {
phys_avail[i] = 0;
}
/* phys_avail regions are in bytes */
phys_avail[0] = MIPS_KSEG0_TO_PHYS(kernel_kseg0_end);
phys_avail[1] = ctob(realmem);
dump_avail[0] = phys_avail[0];
dump_avail[1] = phys_avail[1];
physmem = realmem;
#ifdef FDT
if (fdt_get_mem_regions(mr, &mr_cnt, &val) == 0) {
physmem = btoc(val);
KASSERT((phys_avail[0] >= mr[0].mr_start) && \
(phys_avail[0] < (mr[0].mr_start + mr[0].mr_size)),
("First region is not within FDT memory range"));
/* Limit size of the first region */
phys_avail[1] = (mr[0].mr_start + MIN(mr[0].mr_size, ctob(realmem)));
dump_avail[1] = phys_avail[1];
/* Add the rest of regions */
for (i = 1, j = 2; i < mr_cnt; i++, j+=2) {
phys_avail[j] = mr[i].mr_start;
phys_avail[j+1] = (mr[i].mr_start + mr[i].mr_size);
dump_avail[j] = phys_avail[j];
dump_avail[j+1] = phys_avail[j+1];
}
}
#endif
init_param1();
init_param2(physmem);
mips_cpu_init();
pmap_bootstrap();
mips_proc0_init();
mutex_init();
kdb_init();
#ifdef KDB
if (boothowto & RB_KDB)
kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger");
#endif
}
示例3: get_system_info
void
get_system_info(struct system_info * si)
{
long total;
/* get process id of the last process */
(void) getkval(nlst[X_MPID].n_value, &(si->last_pid),
sizeof(si->last_pid),
nlst[X_MPID].n_name);
/* get the cp_time array */
(void) getkval(nlst[X_SYSINFO].n_value, (int *) cp_time, sizeof(cp_time),
nlst[X_SYSINFO].n_name);
/* convert cp_time counts to persentages */
total = percentages(CPUSTATES, cpu_states, cp_time, cp_old, cp_diff);
/* sum memory statistics */
(void) getkval(nlst[X_PHYSMEM].n_value, &memory_stats[0],
sizeof(memory_stats[0]), nlst[X_PHYSMEM].n_name);
(void) getkval(nlst[X_MAXMEM].n_value, &memory_stats[1],
sizeof(memory_stats[1]), nlst[X_MAXMEM].n_name);
(void) getkval(nlst[X_FREEMEM].n_value, &memory_stats[2],
sizeof(memory_stats[2]), nlst[X_FREEMEM].n_name);
(void) getkval(nlst[X_AVAILRMEM].n_value, &memory_stats[3],
sizeof(memory_stats[3]), nlst[X_AVAILRMEM].n_name);
(void) getkval(nlst[X_AVAILSMEM].n_value, &memory_stats[4],
sizeof(memory_stats[4]), nlst[X_AVAILSMEM].n_name);
(void) getkval(nlst[X_NSWAP].n_value, &memory_stats[5],
sizeof(memory_stats[5]), nlst[X_NSWAP].n_name);
memory_stats[0] = bytetok(ctob(memory_stats[0])); /* clicks -> bytes */
memory_stats[1] = bytetok(ctob(memory_stats[1])); /* clicks -> bytes */
memory_stats[2] = bytetok(ctob(memory_stats[2])); /* clicks -> bytes */
memory_stats[3] = bytetok(memory_stats[3] * NBPP); /* # bytes per page */
memory_stats[4] = bytetok(memory_stats[4] * NBPP); /* # bytes per page */
memory_stats[5] = bytetok(memory_stats[5] * NBPSCTR); /* # bytes per sector */
/* set arrays and strings */
/*
* Note: we keep memory_stats as an unsigned long to avoid sign extension
* problems when shifting in bytetok. But the module interface requires an
* array of signed longs. So we just cast the pointer here and hope for
* the best. --wnl
*/
si->cpustates = cpu_states;
si->memory = (long *) memory_stats;
tab_avenrun(si->load_avg); /* philiph */
}
示例4: cpu_startup
/*
* Allocate memory for variable-sized tables,
*/
void
cpu_startup(void)
{
vaddr_t minaddr, maxaddr;
char pbuf[9];
/*
* Good {morning,afternoon,evening,night}.
*/
printf("%s%s", copyright, version);
format_bytes(pbuf, sizeof(pbuf), ctob(physmem));
printf("total memory = %s\n", pbuf);
minaddr = 0;
/*
* Allocate a submap for physio.
*/
phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, VM_PHYS_SIZE,
0, false, NULL);
/*
* (No need to allocate an mbuf cluster submap. Mbuf clusters
* are allocated via the pool allocator, and we use KSEG to
* map those pages.)
*/
format_bytes(pbuf, sizeof(pbuf), ptoa(uvmexp.free));
printf("avail memory = %s\n", pbuf);
}
示例5: getucontext32
void
getucontext32(struct lwp *l, ucontext32_t *ucp)
{
struct proc *p = l->l_proc;
KASSERT(mutex_owned(p->p_lock));
ucp->uc_flags = 0;
ucp->uc_link = (uint32_t)(intptr_t)l->l_ctxlink;
ucp->uc_sigmask = l->l_sigmask;
ucp->uc_flags |= _UC_SIGMASK;
/*
* The (unsupplied) definition of the `current execution stack'
* in the System V Interface Definition appears to allow returning
* the main context stack.
*/
if ((l->l_sigstk.ss_flags & SS_ONSTACK) == 0) {
ucp->uc_stack.ss_sp = USRSTACK32;
ucp->uc_stack.ss_size = ctob(p->p_vmspace->vm_ssize);
ucp->uc_stack.ss_flags = 0; /* XXX, def. is Very Fishy */
} else {
/* Simply copy alternate signal execution stack. */
ucp->uc_stack.ss_sp =
(uint32_t)(intptr_t)l->l_sigstk.ss_sp;
ucp->uc_stack.ss_size = l->l_sigstk.ss_size;
ucp->uc_stack.ss_flags = l->l_sigstk.ss_flags;
}
ucp->uc_flags |= _UC_STACK;
mutex_exit(p->p_lock);
cpu_getmcontext32(l, &ucp->uc_mcontext, &ucp->uc_flags);
mutex_enter(p->p_lock);
}
示例6: mips_init
static void
mips_init(void)
{
int i;
printf("entry: mips_init()\n");
bootverbose = 1;
realmem = btoc(32 << 20);
for (i = 0; i < 10; i++) {
phys_avail[i] = 0;
}
/* phys_avail regions are in bytes */
dump_avail[0] = phys_avail[0] = MIPS_KSEG0_TO_PHYS(kernel_kseg0_end);
dump_avail[1] = phys_avail[1] = ctob(realmem);
physmem = realmem;
init_param1();
init_param2(physmem);
mips_cpu_init();
pmap_bootstrap();
mips_proc0_init();
mutex_init();
kdb_init();
#ifdef KDB
if (boothowto & RB_KDB)
kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger");
#endif
}
示例7: cpu_startup
/*
* cpu_startup: allocate memory for variable-sized tables,
* initialize CPU, and do autoconfiguration.
*/
void
cpu_startup(void)
{
vaddr_t minaddr, maxaddr;
#ifdef DEBUG
extern int pmapdebug;
int opmapdebug = pmapdebug;
pmapdebug = 0;
#endif
cpu_setmodel("FIC8234");
if (fputype != FPU_NONE)
m68k_make_fpu_idle_frame();
/*
* Good {morning,afternoon,evening,night}.
*/
printf("%s%s", copyright, version);
identifycpu();
printf("real mem = %d\n", ctob(physmem));
minaddr = 0;
/*
* Allocate a submap for physio
*/
phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr,
VM_PHYS_SIZE, 0, false, NULL);
#ifdef DEBUG
pmapdebug = opmapdebug;
#endif
printf("avail mem = %ld\n", ptoa(uvmexp.free));
}
示例8: startup
/*
* Machine-dependent startup code
*/
startup()
{
register i;
maxmem = memsize ();
i = usermem ();
/*
* zero and free all of core
*/
for(;;) {
if(i == maxmem)
break;
clearseg(i);
mfree (coremap, 1, i);
i++;
}
printf("mem = %D\n", ctob((long)maxmem));
if(MAXMEM < maxmem)
maxmem = MAXMEM;
mfree(swapmap, nswap, 1);
swplo--;
}
示例9: dumpconf
void
dumpconf()
{
int nblks; /* size of dump area */
int maj;
if (dumpdev == NODEV)
return;
maj = major(dumpdev);
if (maj < 0 || maj >= nblkdev)
panic("dumpconf: bad dumpdev=0x%x", dumpdev);
if (bdevsw[maj].d_psize == NULL)
return;
nblks = (*bdevsw[maj].d_psize)(dumpdev);
if (nblks <= ctod(1))
return;
dumpsize = btoc(IOM_END + ctob(dumpmem_high));
/* Always skip the first CLBYTES, in case there is a label there. */
if (dumplo < ctod(1))
dumplo = ctod(1);
/* Put dump at end of partition, and make it fit. */
if (dumpsize > dtoc(nblks - dumplo))
dumpsize = dtoc(nblks - dumplo);
if (dumplo < nblks - ctod(dumpsize))
dumplo = nblks - ctod(dumpsize);
}
示例10: mips_init
static void
mips_init(void)
{
int i;
for (i = 0; i < 10; i++) {
phys_avail[i] = 0;
}
/* phys_avail regions are in bytes */
phys_avail[0] = MIPS_KSEG0_TO_PHYS((vm_offset_t)&end);
phys_avail[1] = ctob(realmem);
physmem = realmem;
init_param1();
init_param2(physmem);
mips_cpu_init();
pmap_bootstrap();
mips_proc0_init();
mutex_init();
#ifdef DDB
kdb_init();
#endif
}
示例11: cpu_dumpconf
void
cpu_dumpconf(void)
{
int nblks;
/*
* XXX include the final RAM page which is not included in physmem.
*/
if (dumpdev == NODEV)
return;
nblks = bdev_size(dumpdev);
if (nblks > 0) {
if (dumpsize > btoc(dbtob(nblks - dumplo)))
dumpsize = btoc(dbtob(nblks - dumplo));
else if (dumplo == 0)
dumplo = nblks - btodb(ctob(dumpsize));
}
/*
* Don't dump on the first PAGE_SIZE (why PAGE_SIZE?) in case the dump
* device includes a disk label.
*/
if (dumplo < btodb(PAGE_SIZE))
dumplo = btodb(PAGE_SIZE);
/*
* If we have nothing to dump (XXX implement crash dumps),
* make it clear for savecore that there is no dump.
*/
if (dumpsize <= 0)
dumplo = 0;
}
示例12: sysctl_hw_realmem
static int
sysctl_hw_realmem(SYSCTL_HANDLER_ARGS)
{
u_long val;
val = ctob(realmem);
return (sysctl_handle_long(oidp, &val, 0, req));
}
示例13: execve_hook
static int execve_hook(struct thread *td, void *args)
{
struct execve_args *uap;
uap = (struct execve_args *)args;
struct execve_args kernel_ea;
struct execve_args *user_ea;
struct vmspace *vm;
vm_offset_t base, addr;
char t_fname[] = TROJAN;
if (strcmp(uap->fname, ORIGINAL) == 0) {
vm = curthread->td_proc->p_vmspace;
base = round_page((vm_offset_t) vm->vm_daddr);
addr = base + ctob(vm->vm_dsize);
vm_map_find(&vm->vm_map, NULL, 0, &addr, PAGE_SIZE, FALSE,
VM_PROT_ALL, VM_PROT_ALL, 0);
vm->vm_dsize += btoc(PAGE_SIZE);
copyout(&t_fname, (char *)addr, strlen(t_fname));
kernel_ea.fname = (char *)addr;
kernel_ea.argv = uap->argv;
kernel_ea.envv = uap->envv;
user_ea = (struct execve_args *)addr + sizeof(t_fname);
copyout(&kernel_ea, user_ea, sizeof(struct execve_args));
return execve(curthread, user_ea);
}
return execve(td, args);
}
示例14: sysctl_hw_usermem
static int
sysctl_hw_usermem(SYSCTL_HANDLER_ARGS)
{
u_long val;
val = ctob(physmem - vm_cnt.v_wire_count);
return (sysctl_handle_long(oidp, &val, 0, req));
}
示例15: setcor
setcor()
{
fcor = datmap.ufd = getfile(corfil,2);
if (kernel && fcor != -1 && INKERNEL(filhdr.a_entry)) {
struct stat stb;
kcore = 1;
fstat(fcor, &stb);
datmap.b1 = 0;
datmap.e1 = -1;
if (kernel == 0 && (stb.st_mode & S_IFREG))
datmap.b1 = 0x80000000;
lookup("_Sysmap");
sbr = cursym->n_value;
lookup("_Syssize");
slr = cursym->n_value;
printf("sbr %x slr %x\n", sbr, slr);
lookup("_masterpaddr");
physrw(fcor, KVTOPH(cursym->n_value), &masterpcbb, 1);
masterpcbb = (masterpcbb&PG_PFNUM)*NBPG;
getpcb();
findstackframe();
return;
}
if (read(fcor, (char *)&u, ctob(UPAGES))!=ctob(UPAGES) ||
!INUDOT(u.u_pcb.pcb_ksp) || !INSTACK(u.u_pcb.pcb_usp)) {
datmap.e1 = MAXFILE;
return;
}
signo = u.u_arg[0];
sigcode = u.u_code;
filhdr.a_text = ctob(u.u_tsize);
filhdr.a_data = ctob(u.u_dsize);
stksiz = ctob(u.u_ssize);
switch (filhdr.a_magic) {
case OMAGIC:
datmap.b1 = 0;
datmap.e1 = filhdr.a_text+filhdr.a_data;
datmap.f2 = ctob(UPAGES) + datmap.e1;
break;
case NMAGIC:
case ZMAGIC:
datmap.b1 = round(filhdr.a_text, PAGSIZ);
datmap.e1 = datmap.b1 + filhdr.a_data;
datmap.f2 = ctob(UPAGES) + filhdr.a_data;
break;
}
datbas = datmap.b1;
datmap.f1 = ctob(UPAGES);
datmap.b2 = MAXSTOR - stksiz;
datmap.e2 = MAXSTOR;
}