NeKernel
dev
Loading...
Searching...
No Matches
Server.h
Go to the documentation of this file.
1
/* ========================================
2
3
Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5
======================================== */
6
7
#pragma once
8
9
#ifdef __cplusplus
10
#include <
public/frameworks/CoreFoundation.fwrk/headers/String.h
>
11
#else
12
#include <
libSystem/SystemKit/System.h
>
13
#endif
14
18
19
struct
LIBMSG_EXPR
;
20
22
struct
LIBMSG_EXPR
final {
23
#ifdef __cplusplus
24
CF::CFString* l_key{
nullptr
};
25
CF::CFString* l_value{
nullptr
};
26
#else
27
// if we use C, we won't know about CF, so let's make those private.
28
VoidPtr
l_private_data
[2]{
nullptr
};
29
#endif
30
31
LIBMSG_EXPR
*
l_head
{
nullptr
};
32
LIBMSG_EXPR
*
l_tail
{
nullptr
};
33
LIBMSG_EXPR
*
l_child
{
nullptr
};
34
};
35
37
typedef
Void (*
libmsg_func_type
)(
struct
LIBMSG_EXPR
* self,
VoidPtr
arg, SizeT arg_size);
38
39
IMPORT_C
Void
libmsg_init_library
(
libmsg_func_type
* funcs, SizeT cnt);
40
IMPORT_C
UInt32
libmsg_close_library
(Void);
41
IMPORT_C
UInt32
libmsg_eval_expr
(
struct
LIBMSG_EXPR
* head);
libmsg_init_library
IMPORT_C Void libmsg_init_library(libmsg_func_type *funcs, SizeT cnt)
libmsg_close_library
IMPORT_C UInt32 libmsg_close_library(Void)
libmsg_eval_expr
IMPORT_C UInt32 libmsg_eval_expr(struct LIBMSG_EXPR *head)
libmsg_func_type
Void(* libmsg_func_type)(struct LIBMSG_EXPR *self, VoidPtr arg, SizeT arg_size)
Function type for LibMSG lisp.
Definition
Server.h:37
String.h
System.h
VoidPtr
void * VoidPtr
Definition
Macros.h:59
IMPORT_C
#define IMPORT_C
Definition
Macros.h:22
LIBMSG_EXPR
an expression chain of LibMSG.
Definition
Server.h:22
LIBMSG_EXPR::l_child
LIBMSG_EXPR * l_child
Definition
Server.h:33
LIBMSG_EXPR::l_private_data
VoidPtr l_private_data[2]
Definition
Server.h:28
LIBMSG_EXPR::l_head
LIBMSG_EXPR * l_head
Definition
Server.h:31
LIBMSG_EXPR::l_tail
LIBMSG_EXPR * l_tail
Definition
Server.h:32
src
libMsg
MsgKit
Server.h
Generated by
1.15.0