1  /* SPDX-License-Identifier: GPL-2.0 */
2  /*
3   *  definitions for external memory segment support
4   *  Copyright IBM Corp. 2003
5   */
6  
7  #ifndef _ASM_S390X_DCSS_H
8  #define _ASM_S390X_DCSS_H
9  #ifndef __ASSEMBLY__
10  
11  /*
12   * DCSS segment is defined as a contiguous range of pages using DEFSEG command.
13   * The range start and end is a page number with a value less than or equal to
14   * 0x7ffffff (see CP Commands and Utilities Reference).
15   */
16  #define MAX_DCSS_ADDR	(512UL * SZ_1G)
17  
18  /* possible values for segment type as returned by segment_info */
19  #define SEG_TYPE_SW 0
20  #define SEG_TYPE_EW 1
21  #define SEG_TYPE_SR 2
22  #define SEG_TYPE_ER 3
23  #define SEG_TYPE_SN 4
24  #define SEG_TYPE_EN 5
25  #define SEG_TYPE_SC 6
26  #define SEG_TYPE_EWEN 7
27  
28  #define SEGMENT_SHARED 0
29  #define SEGMENT_EXCLUSIVE 1
30  
31  int segment_load (char *name, int segtype, unsigned long *addr, unsigned long *length);
32  void segment_unload(char *name);
33  void segment_save(char *name);
34  int segment_type (char* name);
35  int segment_modify_shared (char *name, int do_nonshared);
36  void segment_warning(int rc, char *seg_name);
37  
38  #endif
39  #endif
40