The maximum mappable physical address (as returned by arch_get_mappable_range() callback) is limited by the value of (1UL << MAX_PHYSMEM_BITS). The maximum physical address available to a DCSS segment is 512GB. In case the available online or offline memory size is less than the DCSS limit arch_get_mappable_range() would include never used [512GB..(1UL << MAX_PHYSMEM_BITS)] range. Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
39 lines
1 KiB
C
39 lines
1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* definitions for external memory segment support
|
|
* Copyright IBM Corp. 2003
|
|
*/
|
|
|
|
#ifndef _ASM_S390X_DCSS_H
|
|
#define _ASM_S390X_DCSS_H
|
|
#ifndef __ASSEMBLY__
|
|
|
|
/*
|
|
* DCSS segment is defined as a contiguous range of pages using DEFSEG command.
|
|
* The range start and end is a page number with a value less than or equal to
|
|
* 0x7ffffff (see CP Commands and Utilities Reference).
|
|
*/
|
|
#define MAX_DCSS_ADDR (512UL * SZ_1G)
|
|
|
|
/* possible values for segment type as returned by segment_info */
|
|
#define SEG_TYPE_SW 0
|
|
#define SEG_TYPE_EW 1
|
|
#define SEG_TYPE_SR 2
|
|
#define SEG_TYPE_ER 3
|
|
#define SEG_TYPE_SN 4
|
|
#define SEG_TYPE_EN 5
|
|
#define SEG_TYPE_SC 6
|
|
#define SEG_TYPE_EWEN 7
|
|
|
|
#define SEGMENT_SHARED 0
|
|
#define SEGMENT_EXCLUSIVE 1
|
|
|
|
int segment_load (char *name, int segtype, unsigned long *addr, unsigned long *length);
|
|
void segment_unload(char *name);
|
|
void segment_save(char *name);
|
|
int segment_type (char* name);
|
|
int segment_modify_shared (char *name, int do_nonshared);
|
|
void segment_warning(int rc, char *seg_name);
|
|
|
|
#endif
|
|
#endif
|