50 lines
1.6 KiB
Text
50 lines
1.6 KiB
Text
.TH hal_export_funct "3hal" "2006-10-12" "LinuxCNC Documentation" "HAL"
|
|
.SH NAME
|
|
|
|
hal_export_funct \- create a realtime function callable from a thread
|
|
|
|
.SH SYNTAX
|
|
.HP
|
|
typedef void(*hal_funct_t)(void * \fIarg\fR, long \fIperiod\fR)
|
|
.HP
|
|
int hal_export_funct(const char *\fIname\fR, hal_funct_t \fIfunct\fR, void *\fIarg\fR, int \fIuses_fp\fR, int \fIreentrant\fR, int \fIcomp_id\fR)
|
|
|
|
.SH ARGUMENTS
|
|
.IP \fIname\fR
|
|
The name of the function.
|
|
|
|
.IP \fIfunct\fR
|
|
The pointer to the function
|
|
|
|
.IP \fIarg\fR
|
|
The argument to be passed as the first parameter of \fIfunct\fR
|
|
|
|
.IP \fIuses_fp\fR
|
|
Nonzero if the function uses floating-point operations, including assignment
|
|
of floating point values with "=".
|
|
|
|
.IP \fIreentrant\fR
|
|
If reentrant is non-zero, the function may be preempted and called again
|
|
before the first call completes. Otherwise, it may only be added to one
|
|
thread.
|
|
|
|
.IP \fIcomp_id\fR
|
|
A HAL component identifier returned by an earlier call to \fBhal_init\fR.
|
|
|
|
.SH DESCRIPTION
|
|
\fBhal_export_funct\fR makes a realtime function provided by a component
|
|
available to the system. A subsequent call to \fBhal_add_funct_to_thread\fR
|
|
can be used to schedule the execution of the function as needed by the system.
|
|
|
|
When this function is placed on a HAL thread, and HAL threads are started,
|
|
\fIfunct\fR is called repeatedly with two arguments: \fIvoid *arg\fR is the
|
|
same value that was given to \fBhal_export_funct\fR, and \fIlong period\fR is
|
|
the interval between calls in nanoseconds.
|
|
|
|
Each call to the function should do a small amount of work and return.
|
|
|
|
.SH RETURN VALUE
|
|
Returns a HAL status code.
|
|
|
|
.SH SEE ALSO
|
|
\fBhal_create_thread(3hal)\fR, \fBhal_add_funct_to_thread(3hal)\fR
|