这篇教程C++ syscall2函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中syscall2函数的典型用法代码示例。如果您正苦于以下问题:C++ syscall2函数的具体用法?C++ syscall2怎么用?C++ syscall2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了syscall2函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: myos_user_getIDpasswd_myos* myos_user_getID(int id){ int ret=syscall2(69,id,(uint32_t)&myos_pass); if (ret!=0) return &myos_pass; else return NULL;}
开发者ID:0xmilk,项目名称:How-to-Make-a-Computer-Operating-System,代码行数:7,
示例2: register_named_ipc_portint register_named_ipc_port( const char* name, ipc_port_id port_id ) { return syscall2( SYS_register_named_ipc_port, ( int )name, port_id );}
开发者ID:csko,项目名称:yaosp,代码行数:7,
示例3: sys_debug_hardware_timer_readerrval_t sys_debug_hardware_timer_read(uintptr_t* v){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_HARDWARE_TIMER_READ); *v = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:7,
示例4: myos_user_getNpasswd_myos* myos_user_getN(const char* name){ int ret=syscall2(68,(uint32_t)name,(uint32_t)&myos_pass); if (ret!=0) return &myos_pass; else return NULL;}
开发者ID:0xmilk,项目名称:How-to-Make-a-Computer-Operating-System,代码行数:7,
示例5: PCILx_Initstatic int PCILx_Init(LIBBASETYPEPTR LIBBASE){ APTR KernelBase; STRPTR arch; int ret; D(bug("LinuxPCI: Initializing/n")); KernelBase = OpenResource("kernel.resource"); if (!KernelBase) return FALSE; /* Make sure we are running on Linux. Otherwise we will just crash at first syscall. */ arch = (STRPTR)KrnGetSystemAttr(KATTR_Architecture); if (strncmp(arch, "linux", 5)) { D(bug("LinuxPCI: Running on %s, not on Linux/n", arch)); return FALSE; } ret = syscall1(__NR_iopl, 3); D(bug("LinuxPCI: iopl(3)=%d/n", ret)); LIBBASE->psd.fd = syscall2(__NR_open, (IPTR)"/dev/mem", 2); D(bug("LinuxPCI: /dev/mem fd=%d/n", LIBBASE->psd.fd)); if (ret==0) return TRUE; D(bug("LinuxPCI: has to be root in order to use this hidd/n")); return FALSE;}
开发者ID:michalsc,项目名称:AROS,代码行数:34,
示例6: get_named_ipc_portint get_named_ipc_port( const char* name, ipc_port_id* port_id ) { return syscall2( SYS_get_named_ipc_port, ( int )name, ( int )port_id );}
开发者ID:csko,项目名称:yaosp,代码行数:7,
示例7: sleepunsigned int sleep( unsigned int seconds ) { uint64_t time; time = seconds * 1000000; syscall2( SYS_sleep_thread, ( int )&time, ( int )NULL ); return 0;}
开发者ID:csko,项目名称:yaosp,代码行数:9,
示例8: sys_debug_hardware_global_timer_readerrval_t sys_debug_hardware_global_timer_read(uint64_t *ret){ struct sysret sr; uint32_t l, h; do { h = syscall2(SYSCALL_DEBUG, DEBUG_HARDWARE_GLOBAL_TIMER_HIGH).value; l = syscall2(SYSCALL_DEBUG, DEBUG_HARDWARE_GLOBAL_TIMER_LOW).value; // read high again, in case it changed sr = syscall2(SYSCALL_DEBUG, DEBUG_HARDWARE_GLOBAL_TIMER_HIGH); } while(h != sr.value && err_is_ok(sr.error)); if(err_is_ok(sr.error) && ret) { *ret = (((uint64_t) h) << 32) | ((uint32_t) l); } return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:19,
示例9: sys_getcwdstatic uint32_t sys_getcwd(uint32_t arg[]){ char *buf = (char *)arg[0]; size_t len = (size_t) arg[1]; /* See the comment of 'host_map_user' in arch/um/kernel/host_syscall.c for details. */ if (host_map_user(current, (uintptr_t) buf, len, 1) < 0) return -1; int ret = sysfile_getcwd(buf, len); syscall2(__NR_munmap, (uintptr_t) buf, len); return ret;}
开发者ID:Aresthu,项目名称:ucore_plus,代码行数:12,
示例10: fstatint fstat( int fd, struct stat* stat ) { int error; error = syscall2( SYS_fstat, fd, ( int )stat ); if ( error < 0 ) { errno = -error; return -1; } return 0;}
开发者ID:csko,项目名称:yaosp,代码行数:12,
示例11: dup2int dup2( int old_fd, int new_fd ) { int error; error = syscall2( SYS_dup2, old_fd, new_fd ); if ( error < 0 ) { errno = -error; return -1; } return error;}
开发者ID:0xmilk,项目名称:How-to-Make-a-Computer-Operating-System,代码行数:12,
示例12: accessint access( const char* pathname, int mode ) { int error; error = syscall2( SYS_access, ( int )pathname, mode ); if ( error < 0 ) { errno = -error; return -1; } return 0;}
开发者ID:0xmilk,项目名称:How-to-Make-a-Computer-Operating-System,代码行数:16,
示例13: mmapmapid_tmmap (int fd, void *addr){ return syscall2 (SYS_MMAP, fd, addr);}
开发者ID:ruanmk,项目名称:Homework,代码行数:5,
示例14: munmapint munmap(void *addr, size_t len){ return (int)syscall2(__NR_munmap, (unsigned long)addr, (unsigned long)len);}
开发者ID:ccotter,项目名称:libdeterm,代码行数:4,
示例15: seekvoidseek (int fd, unsigned position) { syscall2 (SYS_SEEK, fd, position);}
开发者ID:ruanmk,项目名称:Homework,代码行数:5,
示例16: sys_debug_get_apic_ticks_per_secerrval_t sys_debug_get_apic_ticks_per_sec(uint32_t *ret){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_GET_APIC_TICKS_PER_SEC); *ret = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:6,
示例17: sys_debug_flush_cacheerrval_t sys_debug_flush_cache(void){ return syscall2(SYSCALL_DEBUG, DEBUG_FLUSH_CACHE).error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:4,
示例18: sys_debug_get_apic_iderrval_t sys_debug_get_apic_id(uint8_t *ret){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_GET_APIC_ID); *ret = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:6,
示例19: sys_debug_get_apic_timererrval_t sys_debug_get_apic_timer(uint32_t *ret){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_GET_APIC_TIMER); *ret = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:6,
示例20: sys_debug_timeslice_counter_readerrval_t sys_debug_timeslice_counter_read(uint64_t *ret){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_TIMESLICE_COUNTER_READ); *ret = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:6,
示例21: sys_debug_get_tsc_per_mserrval_t sys_debug_get_tsc_per_ms(uint64_t *ret){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_GET_TSC_PER_MS); *ret = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:6,
示例22: sys_debug_context_counter_reseterrval_t sys_debug_context_counter_reset(void){ return syscall2(SYSCALL_DEBUG, DEBUG_CONTEXT_COUNTER_RESET).error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:4,
示例23: sys_debug_context_counter_readerrval_t sys_debug_context_counter_read(uint64_t *ret){ struct sysret sr = syscall2(SYSCALL_DEBUG, DEBUG_CONTEXT_COUNTER_READ); *ret = sr.value; return sr.error;}
开发者ID:XuNazgul,项目名称:cmpe295A,代码行数:6,
示例24: getattint getatt(int req, char *buf){ syscall2(13, req, buf);}
开发者ID:ALoay94,项目名称:os,代码行数:4,
示例25: openint open(char* name, char* buf){ syscall2(SYS_OPEN, name, buf);}
开发者ID:icexin,项目名称:fanos,代码行数:4,
示例26: readdirboolreaddir (int fd, char name[READDIR_MAX_LEN + 1]) { return syscall2 (SYS_READDIR, fd, name);}
开发者ID:ruanmk,项目名称:Homework,代码行数:5,
示例27: uthread_joinint uthread_join(int th_id, int* th_status){ return syscall2 (SYS_UTHREAD_JOIN, th_id, th_status);}
开发者ID:radu-iosif-moldovan,项目名称:pso,代码行数:4,
示例28: uthread_create/* * Added by Adrian Colesa - multithreading */int uthread_create(THREAD_FUNC th_fc, int* fc_arg){ return syscall2 (SYS_UTHREAD_CREATE, th_fc, fc_arg);}
开发者ID:radu-iosif-moldovan,项目名称:pso,代码行数:7,
示例29: createboolcreate (const char *file, unsigned initial_size){ return syscall2 (SYS_CREATE, file, initial_size);}
开发者ID:ruanmk,项目名称:Homework,代码行数:5,
示例30: tlb_update/** * Remap the specified address to a new page with new permission. * @param pgdir page directory * @param la linear address */voidtlb_update (pde_t *pgdir, uintptr_t la){ la = ROUNDDOWN (la, PGSIZE); pte_t* pte = get_pte (pgdir, la, 0); if (pte == 0 || (*pte & PTE_P) == 0) panic ("invalid tlb flushing/n"); uint32_t pa = PDE_ADDR(*pte); /* A tricky method to make the page table right under most circumstances. * Please consult the internal documentation for details. */ int r = 1, w = 1, x = 1; if (Get_PTE_A(pte) == 0) r = x = w = 0; else if (Get_PTE_W(pte) == 0 || Get_PTE_D(pte) == 0) w = 0; /* Make sure that the page is invalid before mapping * It is better to use 'mprotect' here actually. */ tlb_invalidate (pgdir, la); struct proc_struct *proc = find_proc_by_pgdir (pgdir); if (current != NULL && proc != NULL) { /* Map the page to the container process found using the stub code */ if (host_mmap (proc, (void*)la, PGSIZE, (r ? PROT_READ : 0) | (w ? PROT_WRITE : 0) | (x ? PROT_EXEC : 0), MAP_SHARED | MAP_FIXED, ginfo->mem_fd, pa) == MAP_FAILED) panic ("map in child failed./n"); } else { /* Map the page to the host process */ struct mmap_arg_struct args = { .addr = la, .len = PGSIZE, .prot = (r ? PROT_READ : 0) | (w ? PROT_WRITE : 0) | (x ? PROT_EXEC : 0), .flags = MAP_SHARED | MAP_FIXED, .fd = ginfo->mem_fd, .offset = pa, }; syscall1 (__NR_mmap, (long)&args); }}/** * unmap the page specified by @la in the container process corresponding to @pgdir * @param pgdir page directory * @param la the logical address of the page to be flushed */voidtlb_invalidate (pde_t *pgdir, uintptr_t la) { struct proc_struct *proc = find_proc_by_pgdir (pgdir); if (current != NULL && proc != NULL) { if (host_munmap (proc, (void*)la, PGSIZE) < 0) panic ("unmap in child failed/n"); } else { syscall2 (__NR_munmap, la, PGSIZE); }}/** * invalidate [USERBASE, USERTOP). * used by tests or do_execve if a 'clean' space is needed (though not neccesary). */voidtlb_invalidate_user (void){ syscall2 (__NR_munmap, USERBASE, USERTOP - USERBASE);}
开发者ID:haozhun,项目名称:ucore_plus,代码行数:74,
注:本文中的syscall2函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ sysclk_disable_peripheral_clock函数代码示例 C++ sysbus_mmio_map函数代码示例 |