352 |
{ |
{ |
353 |
l4_kern_desc_t kern; |
l4_kern_desc_t kern; |
354 |
|
|
355 |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () + l4_kip ()->kern_desc_ptr); |
|
+ l4_kip ()->kern_desc_ptr); |
|
356 |
return kern->id; |
return kern->id; |
357 |
} |
} |
358 |
|
|
363 |
{ |
{ |
364 |
l4_kern_desc_t kern; |
l4_kern_desc_t kern; |
365 |
|
|
366 |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () + l4_kip ()->kern_desc_ptr); |
|
+ l4_kip ()->kern_desc_ptr); |
|
367 |
|
|
368 |
if (year) |
if (year) |
369 |
*year = kern->gen_date.year + 2000; |
*year = kern->gen_date.year + 2000; |
380 |
{ |
{ |
381 |
l4_kern_desc_t kern; |
l4_kern_desc_t kern; |
382 |
|
|
383 |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () + l4_kip ()->kern_desc_ptr); |
|
+ l4_kip ()->kern_desc_ptr); |
|
384 |
|
|
385 |
if (ver) |
if (ver) |
386 |
*ver = kern->version.ver; |
*ver = kern->version.ver; |
397 |
{ |
{ |
398 |
l4_kern_desc_t kern; |
l4_kern_desc_t kern; |
399 |
|
|
400 |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () |
kern = (l4_kern_desc_t) ((l4_word_t) l4_kip () + l4_kip ()->kern_desc_ptr); |
|
+ l4_kip ()->kern_desc_ptr); |
|
401 |
|
|
402 |
return kern->supplier; |
return kern->supplier; |
403 |
} |
} |
418 |
if (num >= l4_num_processors ()) |
if (num >= l4_num_processors ()) |
419 |
return (l4_proc_desc_t) 0; |
return (l4_proc_desc_t) 0; |
420 |
|
|
421 |
return (l4_proc_desc_t) ((l4_word_t) l4_kip () |
return (l4_proc_desc_t) ((l4_word_t) l4_kip () + l4_kip ()->proc_desc_ptr) |
|
+ l4_kip ()->proc_desc_ptr) |
|
422 |
+ num * (1 << l4_kip ()->processor_info.log2_size); |
+ num * (1 << l4_kip ()->processor_info.log2_size); |
423 |
} |
} |
424 |
|
|
440 |
|
|
441 |
|
|
442 |
#define L4_MIN_PAGE_SIZE_LOG2 10 |
#define L4_MIN_PAGE_SIZE_LOG2 10 |
443 |
|
#define L4_MIN_PAGE_SIZE (L4_WORD_C(1) << L4_MIN_PAGE_SIZE_LOG2) |
444 |
|
|
445 |
static inline l4_word_t |
static inline l4_word_t |
446 |
__attribute__((__always_inline__)) |
__attribute__((__always_inline__)) |
631 |
if (num >= l4_num_memory_desc ()) |
if (num >= l4_num_memory_desc ()) |
632 |
return (l4_memory_desc_t) 0; |
return (l4_memory_desc_t) 0; |
633 |
|
|
634 |
mem = (l4_memory_desc_t) |
mem = (l4_memory_desc_t) ((l4_word_t) l4_kip () |
635 |
((l4_word_t) l4_kip () |
+ l4_kip ()->memory_info.mem_desc_ptr); |
|
+ l4_kip ()->memory_info.mem_desc_ptr); |
|
636 |
return mem + num; |
return mem + num; |
637 |
} |
} |
638 |
|
|
653 |
} |
} |
654 |
|
|
655 |
|
|
656 |
|
/* Return the address of the first byte of the memory region described |
657 |
|
by MEM. */ |
658 |
static inline l4_word_t |
static inline l4_word_t |
659 |
__attribute__((__always_inline__)) |
__attribute__((__always_inline__)) |
660 |
l4_memory_desc_low (l4_memory_desc_t mem) |
l4_memory_desc_low (l4_memory_desc_t mem) |
661 |
{ |
{ |
662 |
|
/* The lower 10 bits are hard-wired to 0. */ |
663 |
return mem->low << 10; |
return mem->low << 10; |
664 |
} |
} |
665 |
|
|
666 |
|
|
667 |
|
/* Return the address of the last byte of the memory region described |
668 |
|
by MEM. */ |
669 |
static inline l4_word_t |
static inline l4_word_t |
670 |
__attribute__((__always_inline__)) |
__attribute__((__always_inline__)) |
671 |
l4_memory_desc_high (l4_memory_desc_t mem) |
l4_memory_desc_high (l4_memory_desc_t mem) |
672 |
{ |
{ |
673 |
return mem->high << 10; |
/* The lower 10 bits are hard-wired to 1. */ |
674 |
|
return (mem->high << 10) | ((1 << 10) - 1); |
675 |
} |
} |
676 |
|
|
677 |
#endif /* l4/kip.h */ |
#endif /* l4/kip.h */ |