/DragonOS-0.1.7/docs/introduction/ |
D | features.md | 7 - [x] 启动引导:Multiboot2 9 - [x] 接口:posix 2008 15 - [x] 页分配器 16 - [x] slab分配器 17 - [x] VMA 18 - [x] MMIO地址空间自动分配 22 - [x] 多核引导 23 - [x] ipi框架 27 - [x] 进程创建 28 - [x] 进程回收 [all …]
|
/DragonOS-0.1.7/kernel/src/arch/x86_64/math/ |
D | bitcount.h | 9 static __always_inline int __clz(uint32_t x) in __clz() argument 13 : "=a"(x) in __clz() 14 : "a"(x) in __clz() 16 return x; in __clz() 25 static __always_inline int __clzl(unsigned long x) in __clzl() argument 33 : "a"(x) in __clzl() 44 static __always_inline int __clzll(unsigned long long x) in __clzll() argument 52 : "a"(x) in __clzll() 57 static __always_inline int __ctz(uint32_t x) in __ctz() argument 59 asm volatile("tzcnt %%eax, %%eax":"=a"(x):"a"(x):"memory"); in __ctz() [all …]
|
/DragonOS-0.1.7/docs/userland/libc/apis/api-list/ |
D | math.md | 9 ``double fabs(double x)`` : 返回 x 的绝对值 11 ``float fabsf(float x)`` : 返回 x 的绝对值 13 ``long double fabsl(long double x)``: 返回 x 的绝对值 15 ``double round(double x)`` 四舍五入 x 17 ``float roundf(float x)`` 四舍五入 x 19 ``long double roundl(long double x)`` 四舍五入 x 21 ``int64_t pow(int64_t x,int y)`` 返回 x 的 y 次方
|
D | stdlib.md | 12 ``int abs(int x)`` : x 的绝对值 14 ``long labs(long x)`` : x 的绝对值 16 ``long long llabs(long long x)`` : x 的绝对值
|
/DragonOS-0.1.7/kernel/src/sched/ |
D | completion.c | 9 void completion_init(struct completion *x) in completion_init() argument 11 x->done = 0; in completion_init() 12 wait_queue_head_init(&x->wait_queue); in completion_init() 20 void complete(struct completion *x) in complete() argument 23 spin_lock(&x->wait_queue.lock); in complete() 25 if (x->done != COMPLETE_ALL) in complete() 26 ++(x->done); in complete() 27 wait_queue_wakeup_on_stack(&x->wait_queue, -1UL); // -1UL代表所有节点都满足条件,暂时这么写 in complete() 29 spin_unlock(&x->wait_queue.lock); in complete() 37 void complete_all(struct completion *x) in complete_all() argument [all …]
|
/DragonOS-0.1.7/kernel/src/common/math/ |
D | round.c | 12 double round(double x) in round() argument 18 } u = {x}; in round() 24 return x; in round() 26 x = -x; in round() 30 FORCE_EVAL(x + toint); in round() 33 y = x + toint - toint - x; in round() 35 y = y + x - 1; in round() 37 y = y + x + 1; in round() 39 y = y + x; in round()
|
D | pow.c | 4 int64_t pow(int64_t x, int y) in pow() argument 9 return x; in pow() 11 return x * x; in pow() 16 res *= x; in pow() 18 x *= x; in pow()
|
D | fabs.c | 5 double fabs(double x) in fabs() argument 11 } u = {x}; in fabs() 18 long double fabsl(long double x) in fabsl() argument 20 return fabs(x); in fabsl() 23 long double fabsl(long double x) in fabsl() argument 25 union ldshape u = {x}; in fabsl()
|
D | libm.h | 54 #define FORCE_EVAL(x) \ argument 57 if (sizeof(x) == sizeof(float)) \ 60 __x = (x); \ 63 else if (sizeof(x) == sizeof(double)) \ 66 __x = (x); \ 72 __x = (x); \
|
/DragonOS-0.1.7/user/libs/libc/src/math/ |
D | round.c | 10 double round(double x) in round() argument 16 } u = {x}; in round() 22 return x; in round() 24 x = -x; in round() 28 FORCE_EVAL(x + toint); in round() 31 y = x + toint - toint - x; in round() 33 y = y + x - 1; in round() 35 y = y + x + 1; in round() 37 y = y + x; in round()
|
D | fabs.c | 5 double fabs(double x) in fabs() argument 11 } u = {x}; in fabs() 18 long double fabsl(long double x) in fabsl() argument 20 return fabs(x); in fabsl() 23 long double fabsl(long double x) in fabsl() argument 25 union ldshape u = {x}; in fabsl()
|
D | pow.c | 4 int64_t pow(int64_t x, int y) in pow() argument 8 res *= x; in pow()
|
/DragonOS-0.1.7/docs/community/ChangeLog/ |
D | index.rst | 9 V0.1.x/V0.1.7 10 V0.1.x/V0.1.6 11 V0.1.x/V0.1.5 12 V0.1.x/V0.1.4 13 V0.1.x/V0.1.3 14 V0.1.x/V0.1.2 15 V0.1.x/V0.1.1 16 V0.1.x/V0.1.0
|
/DragonOS-0.1.7/kernel/src/common/ |
D | completion.h | 23 void completion_init(struct completion *x); 24 void complete(struct completion *x); 25 void complete_all(struct completion *x); 26 void wait_for_completion(struct completion *x); 27 long wait_for_completion_timeout(struct completion *x, long timeout); 28 void wait_for_completion_interruptible(struct completion *x); 29 long wait_for_completion_interruptible_timeout(struct completion *x, long timeout); 30 void wait_for_multicompletion(struct completion x[], int n); 31 bool try_wait_for_completion(struct completion *x); 32 bool completion_done(struct completion *x);
|
D | compiler.h | 5 #define likely(x) __builtin_expect(!!(x), 1) argument 6 #define unlikely(x) __builtin_expect(!!(x), 0) argument 122 #define READ_ONCE(x) \ argument 126 typeof(x) __val; \ 129 __read_once_size(__u.__c, &(x), sizeof(x)); \ 136 #define WRITE_ONCE(x, val) \ argument 140 typeof(x) __val; \ 143 __write_once_size(&(x), __u.__c, sizeof(x)); \
|
D | glib.h | 41 #define ABS(x) ((x) > 0 ? (x) : -(x)) // 绝对值 argument 43 #define max(x, y) ((x > y) ? (x) : (y)) argument 44 #define min(x, y) ((x < y) ? (x) : (y)) argument 47 #define MASK_HIGH_32bit(x) (x & (0x00000000ffffffffUL)) argument 50 ul round(double x) in round() argument 52 return (ul)(x + 0.5); in round()
|
/DragonOS-0.1.7/user/libs/libc/src/include/export/ |
D | math.h | 8 double fabs(double x); 10 long double fabsl(long double x); 12 double round(double x); 13 float roundf(float x); 14 long double roundl(long double x); 16 int64_t pow(int64_t x, int y);
|
D | libm.h | 58 #define FORCE_EVAL(x) \ argument 61 if (sizeof(x) == sizeof(float)) \ 64 __x = (x); \ 67 else if (sizeof(x) == sizeof(double)) \ 70 __x = (x); \ 76 __x = (x); \
|
/DragonOS-0.1.7/kernel/src/libs/ |
D | glib.c | 14 uint32_t x = io_in8(0x61)&0xff; in __experimental_beep() local 15 x |= 3; in __experimental_beep() 16 io_out8(0x61, x&0xff); in __experimental_beep() 21 x = io_in8(0x61); in __experimental_beep() 22 x &= 0xfc; in __experimental_beep() 23 io_out8(0x61, x&0xff); in __experimental_beep()
|
D | casting.rs | 66 let x: Arc<dyn Any> = self.as_any_arc(); in downcast_arc() localVariable 67 if x.is::<T>() { in downcast_arc() 69 let p = Arc::into_raw(x); in downcast_arc()
|
/DragonOS-0.1.7/kernel/src/arch/x86_64/include/asm/ |
D | irqflags.h | 4 #define local_irq_save(x) __asm__ __volatile__("pushfq ; popq %0 ; cli" \ argument 5 : "=g"(x)::"memory") 7 #define local_irq_restore(x) __asm__ __volatile__("pushq %0 ; popfq" ::"g"(x) \ argument
|
/DragonOS-0.1.7/kernel/src/arch/x86_64/asm/ |
D | bitops.rs | 9 pub fn ffz(x: u64) -> i32 { in ffz() 10 return unsafe { _popcnt64((x & ((!x) - 1)).try_into().unwrap()) }; in ffz()
|
/DragonOS-0.1.7/docs/kernel/locking/ |
D | spinlock.md | 50 let x = SpinLock::new(Vec::new()); 60 let x :SpinLock<Vec<i32>>= SpinLock::new(Vec::new()); 62 let mut g :SpinLockGuard<Vec<i32>>= x.lock(); 68 kdebug!("x={:?}", x); 71 kdebug!("x={:?}", x);
|
/DragonOS-0.1.7/kernel/src/driver/interrupt/8259A/ |
D | 8259A.c | 47 unsigned char x; in do_IRQ() local 55 x = io_in8(0x60); in do_IRQ() 56 printk_color(ORANGE, BLACK, "Received key irq, key code:%#018lx\n", x); in do_IRQ()
|
/DragonOS-0.1.7/docs/kernel/sched/ |
D | c_waiting.md | 174    函数`completion_init(struct completion *x)`提供了初始化completion的功能。当你使用`DECLARE_COMPLETION_O… 180 | wait_for_completion(struct completion *x) | 将当前进程挂起,并设置挂起状态为PROC_UNINTERRUPTIBLE。 … 181 | wait_for_completion_timeout(struct completion *x, long timeout) | 将当前进程挂起,并设置挂起状态为PROC_UNINTERRU… 182 | wait_for_completion_interruptible(struct completion *x) | 将当前进程挂起,并设置挂起状态为PROC_INTERRUPTIBLE。 … 183 | wait_for_completion_interruptible_timeout(struct completion *x, long timeout) | 将当前进程挂起,并设置挂起状态为P… 184 | wait_for_multicompletion(struct completion x[], int n)| 将当前进程挂起,并设置挂起状态为PROC_UNINTERRUPTIBLE。(等待数… 192 | complete(struct completion *x) | 表明一个事件被完成,从等待队列中唤醒一个进程 | 193 | complete_all(struct completion *x) | 表明与该completion有关的事件被标记为永久完成,并唤醒等待队列中的所有进程 | 199 | completion_done(struct completion *x) | 查询completion的done变量是不是大于0,如果大于0,返回true;否则返回fal… 200 | try_wait_for_completion(struct completion *x) | 查询completion的done变量是不是大于0,如果大于0,返回true(同时令done-…
|