version 1.5, 2025/05/08 16:29:18
|
version 1.6, 2025/05/09 19:44:50
|
Line 24
|
Line 24
|
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* |
* |
* $Log$ |
* $Log$ |
|
* Revision 1.6 2025/05/09 19:44:50 snw |
|
* Begin shm rework |
|
* |
* Revision 1.5 2025/05/08 16:29:18 snw |
* Revision 1.5 2025/05/08 16:29:18 snw |
* Add SOM/SOA/SBM/SBA macros from RSM and modify for FreeM |
* Add SOM/SOA/SBM/SBA macros from RSM and modify for FreeM |
* |
* |
Line 75
|
Line 78
|
/* The following macros were borrowed from Reference Standard M |
/* The following macros were borrowed from Reference Standard M |
* SOM/SOA: reading and writing data stored in shared memory |
* SOM/SOA: reading and writing data stored in shared memory |
* SBM/SBA: for modifying pointers in shared memory |
* SBM/SBA: for modifying pointers in shared memory |
|
* |
|
* Versions ending with 'A' will maintain NULL pointers. |
*/ |
*/ |
#define SOM(ptr) ((__typeof__(ptr)) ((char *) (ptr) + ((char *) shm_config->dta - (char *) shm_config->hdr->shmad))) |
#define SOM(ptr) ((__typeof__(ptr)) ((char *) (ptr) + ((char *) shm_config->dta - (char *) shm_config->hdr->shmad))) |
#define SOA(ptr) ((ptr == NULL) ? NULL : SOM(ptr)) |
#define SOA(ptr) ((ptr == NULL) ? NULL : SOM(ptr)) |