linux/arch/frv/include/asm/segment.h
<<
>>
Prefs
   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
  18typedef struct {
  19        unsigned long seg;
  20} mm_segment_t;
  21
  22#define MAKE_MM_SEG(s)  ((mm_segment_t) { (s) })
  23
  24#ifdef CONFIG_MMU
  25#define USER_DS                 MAKE_MM_SEG(TASK_SIZE - 1)
  26#define KERNEL_DS               MAKE_MM_SEG(0xdfffffffUL)
  27#else
  28#define USER_DS                 MAKE_MM_SEG(memory_end)
  29#define KERNEL_DS               MAKE_MM_SEG(0xe0000000UL)
  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)                                      \
  39do {                                                    \
  40        __current_thread_info->addr_limit = (_x);       \
  41} while(0)
  42
  43
  44#endif /* __ASSEMBLY__ */
  45#endif /* _ASM_SEGMENT_H */
  46