set_segm_attr

set segment attribute
     arguments:      segea - any address within segment
                     attr  - one of SEGATTR_... constants
Please note that not all segment attributes are modifiable.
Also some of them should be modified using special functions
like set_segm_addressing, etc.

success set_segm_attr(long segea, long attr, long value);

#ifndef __EA64__ #define SEGATTR_START 0 // starting address #define SEGATTR_END 4 // ending address #define SEGATTR_ORGBASE 16 #define SEGATTR_ALIGN 20 // alignment #define SEGATTR_COMB 21 // combination #define SEGATTR_PERM 22 // permissions #define SEGATTR_BITNESS 23 // bitness (0: 16, 1: 32, 2: 64 bit segment) // Note: modifying the attrbite directly does // not lead to the reanalysis of the segment. // Using set_segm_addressing() is more correct. #define SEGATTR_FLAGS 24 // segment flags #define SEGATTR_SEL 28 // segment selector #define SEGATTR_ES 32 // default ES value #define SEGATTR_CS 36 // default CS value #define SEGATTR_SS 40 // default SS value #define SEGATTR_DS 44 // default DS value #define SEGATTR_FS 48 // default FS value #define SEGATTR_GS 52 // default GS value #define SEGATTR_TYPE 96 // segment type #define SEGATTR_COLOR 100 // segment color #else #define SEGATTR_START 0 #define SEGATTR_END 8 #define SEGATTR_ORGBASE 32 #define SEGATTR_ALIGN 40 #define SEGATTR_COMB 41 #define SEGATTR_PERM 42 #define SEGATTR_BITNESS 43 #define SEGATTR_FLAGS 44 #define SEGATTR_SEL 48 #define SEGATTR_ES 56 #define SEGATTR_CS 64 #define SEGATTR_SS 72 #define SEGATTR_DS 80 #define SEGATTR_FS 88 #define SEGATTR_GS 96 #define SEGATTR_TYPE 184 #define SEGATTR_COLOR 188 #endif

// Segment permissions #define SEGPERM_EXEC 1 // Execute #define SEGPERM_WRITE 2 // Write #define SEGPERM_READ 4 // Read #define SEGPERM_MAXVAL (SEGPERM_EXEC + SEGPERM_WRITE + SEGPERM_READ)

// Valid segment flags #define SFL_COMORG 0x01 // IDP dependent field (IBM PC: if set, ORG directive is not commented out) #define SFL_OBOK 0x02 // orgbase is present? (IDP dependent field) #define SFL_HIDDEN 0x04 // is the segment hidden? #define SFL_DEBUG 0x08 // is the segment created for the debugger? #define SFL_LOADER 0x10 // is the segment created by the loader? #define SFL_HIDETYPE 0x20 // hide segment type (do not print it in the listing)

Index | Previous topic | Next topic