home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-frv / segment.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.1 KB  |  46 lines

  1. /* segment.h: MMU segment settings
  2.  *
  3.  * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved.
  4.  * Written by David Howells (dhowells@redhat.com)
  5.  *
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version
  9.  * 2 of the License, or (at your option) any later version.
  10.  */
  11.  
  12. #ifndef _ASM_SEGMENT_H
  13. #define _ASM_SEGMENT_H
  14.  
  15.  
  16. #ifndef __ASSEMBLY__
  17.  
  18. typedef struct {
  19.     unsigned long seg;
  20. } mm_segment_t;
  21.  
  22. #define MAKE_MM_SEG(s)    ((mm_segment_t) { (s) })
  23.  
  24. #define KERNEL_DS        MAKE_MM_SEG(0xdfffffffUL)
  25.  
  26. #ifdef CONFIG_MMU
  27. #define USER_DS            MAKE_MM_SEG(TASK_SIZE - 1)
  28. #else
  29. #define USER_DS            KERNEL_DS
  30. #endif
  31.  
  32. #define get_ds()        (KERNEL_DS)
  33. #define get_fs()        (__current_thread_info->addr_limit)
  34. #define segment_eq(a,b)        ((a).seg == (b).seg)
  35. #define __kernel_ds_p()        segment_eq(get_fs(), KERNEL_DS)
  36. #define get_addr_limit()    (get_fs().seg)
  37.  
  38. #define set_fs(_x)                    \
  39. do {                            \
  40.     __current_thread_info->addr_limit = (_x);    \
  41. } while(0)
  42.  
  43.  
  44. #endif /* __ASSEMBLY__ */
  45. #endif /* _ASM_SEGMENT_H */
  46.