b34f9856cb
git-svn-id: svn://kolibrios.org@9353 a494cfbc-eb01-0410-851d-a64ba20cac60
119 lines
3.1 KiB
PHP
119 lines
3.1 KiB
PHP
|
|
macro forward_list_builder name {
|
|
local c
|
|
macro .#name a& \{
|
|
\local m
|
|
c equ m
|
|
macro m a
|
|
\}
|
|
macro name#List \{
|
|
irpv v,c \\{
|
|
;\\forward
|
|
v
|
|
\\}
|
|
\}
|
|
}
|
|
|
|
macro reverse_list_builder name {
|
|
local c
|
|
macro .#name a& \{
|
|
\local m
|
|
c equ m
|
|
macro m a
|
|
\}
|
|
macro name#List \{
|
|
irpv v,c \\{
|
|
\\reverse
|
|
v
|
|
\\}
|
|
\}
|
|
}
|
|
|
|
forward_list_builder IGlobalBlock
|
|
forward_list_builder SGlobalBlock
|
|
forward_list_builder TGlobalBlock
|
|
forward_list_builder UGlobalBlock
|
|
forward_list_builder VGlobalBlock
|
|
forward_list_builder XGlobalBlock
|
|
|
|
;------------------------------------------------------------------
|
|
; use "tglobal" for inserting TLS definitions.
|
|
;------------------------------------------------------------------
|
|
macro tglobal {
|
|
.TGlobalBlock { }
|
|
|
|
macro tglobal_nested {
|
|
.TGlobalBlock \{ }
|
|
|
|
;------------------------------------------------------------------
|
|
; use "vglobal" for inserting virtual definitions.
|
|
;------------------------------------------------------------------
|
|
macro vglobal {
|
|
.VGlobalBlock { }
|
|
|
|
macro vglobal_nested {
|
|
.VGlobalBlock \{ }
|
|
|
|
;------------------------------------------------------------------
|
|
; use "iglobal" for inserting initialized global data definitions.
|
|
;------------------------------------------------------------------
|
|
macro iglobal {
|
|
.IGlobalBlock { }
|
|
|
|
macro iglobal_nested {
|
|
.IGlobalBlock \{ }
|
|
|
|
;------------------------------------------------------------------
|
|
; use "sglobal" for inserting strings definitions.
|
|
;------------------------------------------------------------------
|
|
macro sglobal {
|
|
.SGlobalBlock { }
|
|
|
|
macro sglobal_nested {
|
|
.SGlobalBlock \{ }
|
|
|
|
;-------------------------------------------------------------
|
|
; use 'uglobal' for inserting uninitialized global definitions.
|
|
; even when you define some data values, these variables
|
|
; will be stored as uninitialized data.
|
|
;-------------------------------------------------------------
|
|
macro uglobal {
|
|
.UGlobalBlock { }
|
|
|
|
macro uglobal_nested {
|
|
.UGlobalBlock \{ }
|
|
|
|
;-------------------------------------------------------------
|
|
; use 'xglobal' for inserting uninitialized global definitions.
|
|
; even when you define some data values, these variables
|
|
; will be stored as uninitialized data.
|
|
;-------------------------------------------------------------
|
|
macro xglobal {
|
|
.XGlobalBlock { }
|
|
|
|
macro xglobal_nested {
|
|
.XGlobalBlock \{ }
|
|
|
|
endg fix } ; Use endg for ending iglobal and uglobal blocks.
|
|
endg_nested fix \}
|
|
|
|
macro IncludeGlobals MacroName
|
|
{
|
|
local Begin,Size
|
|
virtual at $
|
|
Begin = $
|
|
MacroName
|
|
Size = $-Begin
|
|
end virtual
|
|
rb Size
|
|
}
|
|
|
|
macro IncludeAllGlobals {
|
|
IGlobalBlockList
|
|
SGlobalBlockList
|
|
UDataStr:
|
|
IncludeGlobals UGlobalBlockList ;will be zeroed
|
|
UDataEnd:
|
|
IncludeGlobals XGlobalBlockList ;will be undefined
|
|
}
|