Provided by: linuxcnc-uspace-dev_2.9.0~pre0+git20220402.2500863908-4build1_amd64 bug

NAME

       hal_export_funct - create a realtime function callable from a thread

SYNTAX

       typedef void(*hal_funct_t)(void * arg, long period)

       int  hal_export_funct(const  char  *name,  hal_funct_t  funct, void *arg, int uses_fp, int
              reentrant, int comp_id)

ARGUMENTS

       name   The name of the function.

       funct  The pointer to the function

       arg    The argument to be passed as the first parameter of funct

       uses_fp
              Nonzero if the function uses floating-point  operations,  including  assignment  of
              floating point values with "=".

       reentrant
              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.

       comp_id
              A HAL component identifier returned by an earlier call to hal_init.

DESCRIPTION

       hal_export_funct makes a realtime function  provided  by  a  component  available  to  the
       system.   A  subsequent  call  to  hal_add_funct_to_thread  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, funct is called
       repeatedly   with  two  arguments:  void  *arg  is  the  same  value  that  was  given  to
       hal_export_funct, and long period is the interval between calls in nanoseconds.

       Each call to the function should do a small amount of work and return.

RETURN VALUE

       Returns a HAL status code.

SEE ALSO

       hal_create_thread(3hal), hal_add_funct_to_thread(3hal)