sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
defs.h
Go to the documentation of this file.
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# Copyright (c) 2003 Marcus R. Brown <mrbrown@0xd6.org>
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
16
17
#ifndef __DEFS_H__
18
#define __DEFS_H__
19
20
#include <
types.h
>
21
22
#ifdef __cplusplus
23
extern
"C"
{
24
#endif
25
26
#ifndef NULL
27
#define NULL ((void *)0)
28
#endif
29
30
#ifndef ALIGN
31
#define ALIGN(x, align) (((x)+((align)-1))&~((align)-1))
32
#endif
33
34
#define PHYSADDR(a) (((u32)(a)) & 0x1fffffff)
35
36
#define KSEG1 0xa0000000
37
#define KSEG1ADDR(a) ((__typeof__(a))(((u32)(a) & 0x1fffffff) | KSEG1))
38
39
#if !defined(USE_GP_REGISTER)
40
#define USE_GP_REGISTER 1
41
#endif
42
43
static
__inline__
void
SetGP(
void
*gp)
44
{
45
register
void
*gpReg __asm__(
"gp"
);
46
47
gpReg = gp;
48
__asm__ __volatile__(
" "
::
"r"
(gpReg));
49
}
50
51
extern
void
*
_gp
;
52
53
static
__inline__
void
*GetGP(
void
)
54
{
55
register
void
*gpReg __asm__(
"gp"
);
56
57
__asm__ __volatile__(
" "
:
"=r"
(gpReg));
58
return
gpReg;
59
}
60
61
static
__inline__
void
*ChangeGP(
void
*gp)
62
{
63
void
*OldGP;
64
65
OldGP = GetGP();
66
SetGP(gp);
67
68
return
OldGP;
69
}
70
71
#define SetModuleGP() ChangeGP(&_gp)
72
73
static
inline
void
*iop_memcpy(
void
*dest,
const
void
*src,
int
size)
74
{
75
u8 *d = (u8 *)dest, *s = (u8 *)src;
76
77
while
(size--)
78
*d++ = *s++;
79
return
dest;
80
}
81
82
#ifdef __cplusplus
83
}
84
#endif
85
86
#endif
/* __DEFS_H__ */
_gp
void * _gp
types.h
core
loadcore
include
defs.h
Generated by
1.18.0