/[hurd]/hurd-l4/libl4/l4/kip.h
ViewVC logotype

Diff of /hurd-l4/libl4/l4/kip.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by marcus, Thu Sep 18 13:48:35 2003 UTC revision 1.3 by marcus, Thu Sep 18 14:00:10 2003 UTC
# Line 321  typedef struct Line 321  typedef struct
321    
322    
323  extern l4_kip_t __l4_kip;  extern l4_kip_t __l4_kip;
324  #define l4_get_kernel_interface()  (__l4_kip + 0)  /* Not an lvalue.  */  #define l4_kip()  (__l4_kip + 0)  /* Not an lvalue.  */
325    
326    
327  #ifndef _L4_EXTERN_INLINE  #ifndef _L4_EXTERN_INLINE
328  #define _L4_EXTERN_INLINE extern __inline  #define _L4_EXTERN_INLINE extern __inline
329  #endif  #endif
330    
331    _L4_EXTERN_INLINE
332    
333  _L4_EXTERN_INLINE l4_api_version_t  _L4_EXTERN_INLINE l4_api_version_t
334  l4_api_version (void)  l4_api_version (void)
335  {  {
336    return l4_get_kernel_interface ()->api_version;    return l4_kip ()->api_version;
337  }  }
338    
339    
340  _L4_EXTERN_INLINE l4_api_flags_t  _L4_EXTERN_INLINE l4_api_flags_t
341  l4_api_flags (void)  l4_api_flags (void)
342  {  {
343    return l4_get_kernel_interface ()->api_flags;    return l4_kip ()->api_flags;
344  }  }
345    
346    
# Line 348  l4_kernel_id (void) Line 349  l4_kernel_id (void)
349  {  {
350    l4_kern_desc_t kern;    l4_kern_desc_t kern;
351    
352    kern = (l4_kern_desc_t) ((l4_word_t) l4_get_kernel_interface ()    kern = (l4_kern_desc_t) ((l4_word_t) l4_kip ()
353                             + l4_get_kernel_interface ()->kern_desc_ptr);                             + l4_kip ()->kern_desc_ptr);
354    return kern->id;    return kern->id;
355  }  }
356    
# Line 359  l4_kernel_gen_date (l4_word_t *year, l4_ Line 360  l4_kernel_gen_date (l4_word_t *year, l4_
360  {  {
361    l4_kern_desc_t kern;    l4_kern_desc_t kern;
362    
363    kern = (l4_kern_desc_t) ((l4_word_t) l4_get_kernel_interface ()    kern = (l4_kern_desc_t) ((l4_word_t) l4_kip ()
364                             + l4_get_kernel_interface ()->kern_desc_ptr);                             + l4_kip ()->kern_desc_ptr);
365    
366    if (year)    if (year)
367      *year = kern->gen_date.year + 2000;      *year = kern->gen_date.year + 2000;
# Line 376  l4_kernel_version (l4_word_t *ver, l4_wo Line 377  l4_kernel_version (l4_word_t *ver, l4_wo
377  {  {
378    l4_kern_desc_t kern;    l4_kern_desc_t kern;
379    
380    kern = (l4_kern_desc_t) ((l4_word_t) l4_get_kernel_interface ()    kern = (l4_kern_desc_t) ((l4_word_t) l4_kip ()
381                             + l4_get_kernel_interface ()->kern_desc_ptr);                             + l4_kip ()->kern_desc_ptr);
382    
383    if (ver)    if (ver)
384      *ver = kern->version.ver;      *ver = kern->version.ver;
# Line 393  l4_kernel_supplier (void) Line 394  l4_kernel_supplier (void)
394  {  {
395    l4_kern_desc_t kern;    l4_kern_desc_t kern;
396    
397    kern = (l4_kern_desc_t) ((l4_word_t) l4_get_kernel_interface ()    kern = (l4_kern_desc_t) ((l4_word_t) l4_kip ()
398                             + l4_get_kernel_interface ()->kern_desc_ptr);                             + l4_kip ()->kern_desc_ptr);
399    
400    return kern->supplier;    return kern->supplier;
401  }  }
# Line 403  l4_kernel_supplier (void) Line 404  l4_kernel_supplier (void)
404  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
405  l4_num_processors (void)  l4_num_processors (void)
406  {  {
407    return l4_get_kernel_interface ()->processor_info.processors + 1;    return l4_kip ()->processor_info.processors + 1;
408  }  }
409    
410    
# Line 413  l4_proc_desc (l4_word_t num) Line 414  l4_proc_desc (l4_word_t num)
414    if (num >= l4_num_processors ())    if (num >= l4_num_processors ())
415      return (l4_proc_desc_t) 0;      return (l4_proc_desc_t) 0;
416    
417    return (l4_proc_desc_t) ((l4_word_t) l4_get_kernel_interface ()    return (l4_proc_desc_t) ((l4_word_t) l4_kip ()
418                             + l4_get_kernel_interface ()->proc_desc_ptr)                             + l4_kip ()->proc_desc_ptr)
419      + num * (1 << l4_get_kernel_interface ()->processor_info.log2_size);      + num * (1 << l4_kip ()->processor_info.log2_size);
420  }  }
421    
422    
# Line 438  l4_proc_external_freq (l4_proc_desc_t pr Line 439  l4_proc_external_freq (l4_proc_desc_t pr
439  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
440  l4_page_size_mask (void)  l4_page_size_mask (void)
441  {  {
442    return l4_get_kernel_interface ()->page_info.page_size_mask    return l4_kip ()->page_info.page_size_mask
443      << L4_MIN_PAGE_SIZE_LOG2;      << L4_MIN_PAGE_SIZE_LOG2;
444  }  }
445    
# Line 449  _L4_EXTERN_INLINE l4_word_t l4_min_page_ Line 450  _L4_EXTERN_INLINE l4_word_t l4_min_page_
450  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
451  l4_min_page_size_log2 (void)  l4_min_page_size_log2 (void)
452  {  {
453    page_size_mask = l4_get_kernel_interface ()->page_info.page_size_mask;    page_size_mask = l4_kip ()->page_info.page_size_mask;
454    unsigned int page_size_log2 = L4_MIN_PAGE_SIZE_LOG2;    unsigned int page_size_log2 = L4_MIN_PAGE_SIZE_LOG2;
455        
456    /* There'd better be one bit set.  */    /* There'd better be one bit set.  */
# Line 476  l4_min_page_size (void) Line 477  l4_min_page_size (void)
477  _L4_EXTERN_INLINE l4_page_info_t  _L4_EXTERN_INLINE l4_page_info_t
478  l4_page_rights (void)  l4_page_rights (void)
479  {  {
480    return l4_get_kernel_interface ()->page_info;    return l4_kip ()->page_info;
481  }  }
482    
483    
484  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
485  l4_thread_id_bits (void)  l4_thread_id_bits (void)
486  {  {
487    return l4_get_kernel_interface ()->thread_info.log2_max_thread;    return l4_kip ()->thread_info.log2_max_thread;
488  }  }
489    
490    
491  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
492  l4_thread_user_base (void)  l4_thread_user_base (void)
493  {  {
494    return l4_get_kernel_interface ()->thread_info.user_base;    return l4_kip ()->thread_info.user_base;
495  }  }
496    
497    
498  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
499  l4_thread_system_base (void)  l4_thread_system_base (void)
500  {  {
501    return l4_get_kernel_interface ()->thread_info.system_base;    return l4_kip ()->thread_info.system_base;
502  }  }
503    
504    
505  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
506  l4_read_precision (void)  l4_read_precision (void)
507  {  {
508    return l4_get_kernel_interface ()->clock_info.read_precision;    return l4_kip ()->clock_info.read_precision;
509  }  }
510    
511    
512  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
513  l4_schedule_precision (void)  l4_schedule_precision (void)
514  {  {
515    return l4_get_kernel_interface ()->clock_info.schedule_precision;    return l4_kip ()->clock_info.schedule_precision;
516  }  }
517    
518    
519  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
520  l4_utcb_area_size_log2 (void)  l4_utcb_area_size_log2 (void)
521  {  {
522    return l4_get_kernel_interface ()->utcb_info.log2_min_size;    return l4_kip ()->utcb_info.log2_min_size;
523  }  }
524    
525    
526  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
527  l4_utcb_area_size (void)  l4_utcb_area_size (void)
528  {  {
529    return 1 << l4_get_kernel_interface ()->utcb_info.log2_min_size;    return 1 << l4_kip ()->utcb_info.log2_min_size;
530  }  }
531    
532    
533  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
534  l4_utcb_alignment_log2 (void)  l4_utcb_alignment_log2 (void)
535  {  {
536    return l4_get_kernel_interface ()->utcb_info.log2_align;    return l4_kip ()->utcb_info.log2_align;
537  }  }
538    
539    
540  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
541  l4_utcb_size (void)  l4_utcb_size (void)
542  {  {
543    return l4_get_kernel_interface ()->utcb_info.size_mul    return l4_kip ()->utcb_info.size_mul
544      * (1 << l4_utcb_alignment_log2 ());      * (1 << l4_utcb_alignment_log2 ());
545  }  }
546    
# Line 547  l4_utcb_size (void) Line 548  l4_utcb_size (void)
548  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
549  l4_kip_area_size_log2 (void)  l4_kip_area_size_log2 (void)
550  {  {
551    return l4_get_kernel_interface ()->kip_area_info.log2_size;    return l4_kip ()->kip_area_info.log2_size;
552  }  }
553    
554    
555  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
556  l4_kip_area_size (void)  l4_kip_area_size (void)
557  {  {
558    return 1 << l4_get_kernel_interface ()->kip_area_info.log2_size;    return 1 << l4_kip ()->kip_area_info.log2_size;
559  }  }
560    
561    
562  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
563  l4_boot_info (void)  l4_boot_info (void)
564  {  {
565    return l4_get_kernel_interface ()->boot_info;    return l4_kip ()->boot_info;
566  }  }
567    
568    
# Line 570  l4_kernel_version_string (void) Line 571  l4_kernel_version_string (void)
571  {  {
572    l4_kern_desc_t kern;    l4_kern_desc_t kern;
573    
574    kern = (l4_kern_desc_t) ((l4_word_t) l4_get_kernel_interface ()    kern = (l4_kern_desc_t) ((l4_word_t) l4_kip ()
575                             + l4_get_kernel_interface ()->kern_desc_ptr);                             + l4_kip ()->kern_desc_ptr);
576    
577    return kern->version_parts;    return kern->version_parts;
578  }  }
# Line 599  l4_feature (l4_word_t num) Line 600  l4_feature (l4_word_t num)
600  _L4_EXTERN_INLINE l4_word_t  _L4_EXTERN_INLINE l4_word_t
601  l4_num_memory_desc (void)  l4_num_memory_desc (void)
602  {  {
603    return l4_get_kernel_interface ()->memory_info.nr;    return l4_kip ()->memory_info.nr;
604  }  }
605    
606    
# Line 612  l4_memory_desc (l4_word_t num) Line 613  l4_memory_desc (l4_word_t num)
613      return (l4_memory_desc_t) 0;      return (l4_memory_desc_t) 0;
614    
615    mem = (l4_memory_desc_t)    mem = (l4_memory_desc_t)
616      ((l4_word_t) l4_get_kernel_interface ()      ((l4_word_t) l4_kip ()
617       + l4_get_kernel_interface ()->memory_info.mem_desc_ptr);       + l4_kip ()->memory_info.mem_desc_ptr);
618    return mem + num;    return mem + num;
619  }  }
620    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26