Every task or function imported to SystemVerilog must eventually resolve to a global symbol. Similarly, every task or function exported from SystemVerilog defines a global symbol. Global names of imported and exported tasks and functions must be unique (no overloading is allowed ) and shall follow C conventions for naming; specifically, such names must start with a letter or underscore, and they can be followed by alphanumeric characters or underscores.
EXAMPLE export "DPI-C" foo_plus = function \foo+ ; // "foo+" exported as "foo_plus"
import "DPI-C" init_1 = functionvoid \init (); // "init_1" is a linkage name
If a global name is not explicitly given, it shall be the same as the SystemVerilog task or function name.
EXAMPLE: export "DPI-C" function foo;
Sv Keyword As Linkage Name
If a C method is named same as the SystemVerilog Keyword, then use a leading backslash ( \ ) character to create the linkage identifier.
EXAMPLE: import "DPI-C" \begin = functionvoid \init (); // "begin" is a linkage name