RetroArch
Macros | Functions
lgc.h File Reference
#include "lobject.h"
#include "lstate.h"
Include dependency graph for lgc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define GCSTEPSIZE   (cast_int(100 * sizeof(TString)))
 
#define GCSpropagate   0
 
#define GCSatomic   1
 
#define GCSswpallgc   2
 
#define GCSswpfinobj   3
 
#define GCSswptobefnz   4
 
#define GCSswpend   5
 
#define GCScallfin   6
 
#define GCSpause   7
 
#define issweepphase(g)   (GCSswpallgc <= (g)->gcstate && (g)->gcstate <= GCSswpend)
 
#define keepinvariant(g)   ((g)->gcstate <= GCSatomic)
 
#define resetbits(x, m)   ((x) &= cast(lu_byte, ~(m)))
 
#define setbits(x, m)   ((x) |= (m))
 
#define testbits(x, m)   ((x) & (m))
 
#define bitmask(b)   (1<<(b))
 
#define bit2mask(b1, b2)   (bitmask(b1) | bitmask(b2))
 
#define l_setbit(x, b)   setbits(x, bitmask(b))
 
#define resetbit(x, b)   resetbits(x, bitmask(b))
 
#define testbit(x, b)   testbits(x, bitmask(b))
 
#define WHITE0BIT   0 /* object is white (type 0) */
 
#define WHITE1BIT   1 /* object is white (type 1) */
 
#define BLACKBIT   2 /* object is black */
 
#define FINALIZEDBIT   3 /* object has been marked for finalization */
 
#define WHITEBITS   bit2mask(WHITE0BIT, WHITE1BIT)
 
#define iswhite(x)   testbits((x)->marked, WHITEBITS)
 
#define isblack(x)   testbit((x)->marked, BLACKBIT)
 
#define isgray(x)
 
#define tofinalize(x)   testbit((x)->marked, FINALIZEDBIT)
 
#define otherwhite(g)   ((g)->currentwhite ^ WHITEBITS)
 
#define isdeadm(ow, m)   (!(((m) ^ WHITEBITS) & (ow)))
 
#define isdead(g, v)   isdeadm(otherwhite(g), (v)->marked)
 
#define changewhite(x)   ((x)->marked ^= WHITEBITS)
 
#define gray2black(x)   l_setbit((x)->marked, BLACKBIT)
 
#define luaC_white(g)   cast(lu_byte, (g)->currentwhite & WHITEBITS)
 
#define luaC_condGC(L, pre, pos)
 
#define luaC_checkGC(L)   luaC_condGC(L,(void)0,(void)0)
 
#define luaC_barrier(L, p, v)
 
#define luaC_barrierback(L, p, v)
 
#define luaC_objbarrier(L, p, o)
 
#define luaC_upvalbarrier(L, uv)
 

Functions

LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o)
 
LUAI_FUNC void luaC_freeallobjects (lua_State *L)
 
LUAI_FUNC void luaC_step (lua_State *L)
 
LUAI_FUNC void luaC_runtilstate (lua_State *L, int statesmask)
 
LUAI_FUNC void luaC_fullgc (lua_State *L, int isemergency)
 
LUAI_FUNC GCObjectluaC_newobj (lua_State *L, int tt, size_t sz)
 
LUAI_FUNC void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v)
 
LUAI_FUNC void luaC_barrierback_ (lua_State *L, Table *o)
 
LUAI_FUNC void luaC_upvalbarrier_ (lua_State *L, UpVal *uv)
 
LUAI_FUNC void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt)
 
LUAI_FUNC void luaC_upvdeccount (lua_State *L, UpVal *uv)
 

Macro Definition Documentation

◆ bit2mask

#define bit2mask (   b1,
  b2 
)    (bitmask(b1) | bitmask(b2))

◆ bitmask

#define bitmask (   b)    (1<<(b))

◆ BLACKBIT

#define BLACKBIT   2 /* object is black */

◆ changewhite

#define changewhite (   x)    ((x)->marked ^= WHITEBITS)

◆ FINALIZEDBIT

#define FINALIZEDBIT   3 /* object has been marked for finalization */

◆ GCSatomic

#define GCSatomic   1

◆ GCScallfin

#define GCScallfin   6

◆ GCSpause

#define GCSpause   7

◆ GCSpropagate

#define GCSpropagate   0

◆ GCSswpallgc

#define GCSswpallgc   2

◆ GCSswpend

#define GCSswpend   5

◆ GCSswpfinobj

#define GCSswpfinobj   3

◆ GCSswptobefnz

#define GCSswptobefnz   4

◆ GCSTEPSIZE

#define GCSTEPSIZE   (cast_int(100 * sizeof(TString)))

◆ gray2black

#define gray2black (   x)    l_setbit((x)->marked, BLACKBIT)

◆ isblack

#define isblack (   x)    testbit((x)->marked, BLACKBIT)

◆ isdead

#define isdead (   g,
  v 
)    isdeadm(otherwhite(g), (v)->marked)

◆ isdeadm

#define isdeadm (   ow,
  m 
)    (!(((m) ^ WHITEBITS) & (ow)))

◆ isgray

#define isgray (   x)
Value:
/* neither white nor black */ \
(!testbits((x)->marked, WHITEBITS | bitmask(BLACKBIT)))
#define WHITEBITS
Definition: lgc.h:84
GLint GLint GLint GLint GLint x
Definition: glext.h:6295
#define bitmask(b)
Definition: lgc.h:70
#define testbits(x, m)
Definition: lgc.h:69
#define BLACKBIT
Definition: lgc.h:80

◆ issweepphase

#define issweepphase (   g)    (GCSswpallgc <= (g)->gcstate && (g)->gcstate <= GCSswpend)

◆ iswhite

#define iswhite (   x)    testbits((x)->marked, WHITEBITS)

◆ keepinvariant

#define keepinvariant (   g)    ((g)->gcstate <= GCSatomic)

◆ l_setbit

#define l_setbit (   x,
  b 
)    setbits(x, bitmask(b))

◆ luaC_barrier

#define luaC_barrier (   L,
  p,
  v 
)
Value:
( \
LUAI_FUNC void luaC_barrier_(lua_State *L, GCObject *o, GCObject *v)
Definition: lgc.c:155
#define isblack(x)
Definition: lgc.h:88
#define gcvalue(o)
Definition: lobject.h:167
#define obj2gco(v)
Definition: lstate.h:238
GLfloat GLfloat p
Definition: glext.h:9809
#define cast_void(i)
Definition: llimits.h:113
const GLdouble * v
Definition: glext.h:6391
#define iswhite(x)
Definition: lgc.h:87
Ιστορικό Εικόνα Πληροφορίες Όλοι Οι Χρήστες Χειρίζονται Το Μενού Αριστερό Αναλογικό Αριστερό Αναλογικό Αριστερό Αναλογικό Y Αριστερό Αναλογικό Δεξί Αναλογικό X Δεξί Αναλογικό Δεξί Αναλογικό Y Δεξί Αναλογικό Σκανδάλη Όπλου Όπλο Aux A Όπλο Aux C Όπλο Select Όπλο D pad Κάτω Όπλο D pad Δεξιά Νεκρή Ζώνη Αναλογικού Σύνδεση Όλων Λήξη Χρόνου Σύνδεσης Hide Unbound Core Input Descriptors Κατάλογος Συσκευών Κατάλογος Ποντικιού Duty Cycle Keyboard Gamepad Mapping Enable Κουμπί D pad κάτω Κουμπί Κουμπί L(πίσω)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT
#define iscollectable(o)
Definition: lobject.h:184

◆ luaC_barrierback

#define luaC_barrierback (   L,
  p,
  v 
)
Value:
( \
LUAI_FUNC void luaC_barrierback_(lua_State *L, Table *o)
Definition: lgc.c:171
#define isblack(x)
Definition: lgc.h:88
#define gcvalue(o)
Definition: lobject.h:167
GLfloat GLfloat p
Definition: glext.h:9809
#define cast_void(i)
Definition: llimits.h:113
const GLdouble * v
Definition: glext.h:6391
#define iswhite(x)
Definition: lgc.h:87
Ιστορικό Εικόνα Πληροφορίες Όλοι Οι Χρήστες Χειρίζονται Το Μενού Αριστερό Αναλογικό Αριστερό Αναλογικό Αριστερό Αναλογικό Y Αριστερό Αναλογικό Δεξί Αναλογικό X Δεξί Αναλογικό Δεξί Αναλογικό Y Δεξί Αναλογικό Σκανδάλη Όπλου Όπλο Aux A Όπλο Aux C Όπλο Select Όπλο D pad Κάτω Όπλο D pad Δεξιά Νεκρή Ζώνη Αναλογικού Σύνδεση Όλων Λήξη Χρόνου Σύνδεσης Hide Unbound Core Input Descriptors Κατάλογος Συσκευών Κατάλογος Ποντικιού Duty Cycle Keyboard Gamepad Mapping Enable Κουμπί D pad κάτω Κουμπί Κουμπί L(πίσω)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT
#define iscollectable(o)
Definition: lobject.h:184

◆ luaC_checkGC

#define luaC_checkGC (   L)    luaC_condGC(L,(void)0,(void)0)

◆ luaC_condGC

#define luaC_condGC (   L,
  pre,
  pos 
)
Value:
{ if (G(L)->GCdebt > 0) { pre; luaC_step(L); pos;}; \
condchangemem(L,pre,pos); }
LUAI_FUNC void luaC_step(lua_State *L)
Definition: lgc.c:1129
#define G(L)
Definition: lstate.h:205
Ιστορικό Εικόνα Πληροφορίες Όλοι Οι Χρήστες Χειρίζονται Το Μενού Αριστερό Αναλογικό Αριστερό Αναλογικό Αριστερό Αναλογικό Y Αριστερό Αναλογικό Δεξί Αναλογικό X Δεξί Αναλογικό Δεξί Αναλογικό Y Δεξί Αναλογικό Σκανδάλη Όπλου Όπλο Aux A Όπλο Aux C Όπλο Select Όπλο D pad Κάτω Όπλο D pad Δεξιά Νεκρή Ζώνη Αναλογικού Σύνδεση Όλων Λήξη Χρόνου Σύνδεσης Hide Unbound Core Input Descriptors Κατάλογος Συσκευών Κατάλογος Ποντικιού Duty Cycle Keyboard Gamepad Mapping Enable Κουμπί D pad κάτω Κουμπί Κουμπί L(πίσω)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT

◆ luaC_objbarrier

#define luaC_objbarrier (   L,
  p,
 
)
Value:
( \
(isblack(p) && iswhite(o)) ? \
LUAI_FUNC void luaC_barrier_(lua_State *L, GCObject *o, GCObject *v)
Definition: lgc.c:155
#define isblack(x)
Definition: lgc.h:88
#define obj2gco(v)
Definition: lstate.h:238
GLfloat GLfloat p
Definition: glext.h:9809
#define cast_void(i)
Definition: llimits.h:113
#define iswhite(x)
Definition: lgc.h:87
Ιστορικό Εικόνα Πληροφορίες Όλοι Οι Χρήστες Χειρίζονται Το Μενού Αριστερό Αναλογικό Αριστερό Αναλογικό Αριστερό Αναλογικό Y Αριστερό Αναλογικό Δεξί Αναλογικό X Δεξί Αναλογικό Δεξί Αναλογικό Y Δεξί Αναλογικό Σκανδάλη Όπλου Όπλο Aux A Όπλο Aux C Όπλο Select Όπλο D pad Κάτω Όπλο D pad Δεξιά Νεκρή Ζώνη Αναλογικού Σύνδεση Όλων Λήξη Χρόνου Σύνδεσης Hide Unbound Core Input Descriptors Κατάλογος Συσκευών Κατάλογος Ποντικιού Duty Cycle Keyboard Gamepad Mapping Enable Κουμπί D pad κάτω Κουμπί Κουμπί L(πίσω)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT

◆ luaC_upvalbarrier

#define luaC_upvalbarrier (   L,
  uv 
)
Value:
( \
(iscollectable((uv)->v) && !upisopen(uv)) ? \
#define upisopen(up)
Definition: lfunc.h:47
#define cast_void(i)
Definition: llimits.h:113
const GLdouble * v
Definition: glext.h:6391
LUAI_FUNC void luaC_upvalbarrier_(lua_State *L, UpVal *uv)
Definition: lgc.c:185
Ιστορικό Εικόνα Πληροφορίες Όλοι Οι Χρήστες Χειρίζονται Το Μενού Αριστερό Αναλογικό Αριστερό Αναλογικό Αριστερό Αναλογικό Y Αριστερό Αναλογικό Δεξί Αναλογικό X Δεξί Αναλογικό Δεξί Αναλογικό Y Δεξί Αναλογικό Σκανδάλη Όπλου Όπλο Aux A Όπλο Aux C Όπλο Select Όπλο D pad Κάτω Όπλο D pad Δεξιά Νεκρή Ζώνη Αναλογικού Σύνδεση Όλων Λήξη Χρόνου Σύνδεσης Hide Unbound Core Input Descriptors Κατάλογος Συσκευών Κατάλογος Ποντικιού Duty Cycle Keyboard Gamepad Mapping Enable Κουμπί D pad κάτω Κουμπί Κουμπί L(πίσω)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT
#define iscollectable(o)
Definition: lobject.h:184

◆ luaC_white

#define luaC_white (   g)    cast(lu_byte, (g)->currentwhite & WHITEBITS)

◆ otherwhite

#define otherwhite (   g)    ((g)->currentwhite ^ WHITEBITS)

◆ resetbit

#define resetbit (   x,
  b 
)    resetbits(x, bitmask(b))

◆ resetbits

#define resetbits (   x,
  m 
)    ((x) &= cast(lu_byte, ~(m)))

◆ setbits

#define setbits (   x,
  m 
)    ((x) |= (m))

◆ testbit

#define testbit (   x,
  b 
)    testbits(x, bitmask(b))

◆ testbits

#define testbits (   x,
  m 
)    ((x) & (m))

◆ tofinalize

#define tofinalize (   x)    testbit((x)->marked, FINALIZEDBIT)

◆ WHITE0BIT

#define WHITE0BIT   0 /* object is white (type 0) */

◆ WHITE1BIT

#define WHITE1BIT   1 /* object is white (type 1) */

◆ WHITEBITS

#define WHITEBITS   bit2mask(WHITE0BIT, WHITE1BIT)

Function Documentation

◆ luaC_barrier_()

LUAI_FUNC void luaC_barrier_ ( lua_State L,
GCObject o,
GCObject v 
)
Here is the call graph for this function:

◆ luaC_barrierback_()

LUAI_FUNC void luaC_barrierback_ ( lua_State L,
Table o 
)
Here is the call graph for this function:

◆ luaC_checkfinalizer()

LUAI_FUNC void luaC_checkfinalizer ( lua_State L,
GCObject o,
Table mt 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_fix()

LUAI_FUNC void luaC_fix ( lua_State L,
GCObject o 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_freeallobjects()

LUAI_FUNC void luaC_freeallobjects ( lua_State L)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_fullgc()

LUAI_FUNC void luaC_fullgc ( lua_State L,
int  isemergency 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_newobj()

LUAI_FUNC GCObject* luaC_newobj ( lua_State L,
int  tt,
size_t  sz 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_runtilstate()

LUAI_FUNC void luaC_runtilstate ( lua_State L,
int  statesmask 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_step()

LUAI_FUNC void luaC_step ( lua_State L)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ luaC_upvalbarrier_()

LUAI_FUNC void luaC_upvalbarrier_ ( lua_State L,
UpVal uv 
)
Here is the call graph for this function:

◆ luaC_upvdeccount()

LUAI_FUNC void luaC_upvdeccount ( lua_State L,
UpVal uv 
)
Here is the call graph for this function:
Here is the caller graph for this function: