diff --git a/docs/src/hal/basic-hal.adoc b/docs/src/hal/basic-hal.adoc index 3ebf8272025..f96a7b1c3a0 100644 --- a/docs/src/hal/basic-hal.adoc +++ b/docs/src/hal/basic-hal.adoc @@ -68,8 +68,13 @@ Owner CodeAddr Arg FP Users Name You have to add a function from a HAL real time component to a thread to get the function to update at the rate of the thread. Usually there are two threads as shown in this example. -Some components use floating point math and must be added to a thread that supports floating point math. -The `FP` indicates if floating point math is supported in that thread. + +[NOTE] +==== +The `FP` column and the `uses_fp` parameter are deprecated. +All threads now unconditionally save and restore floating point state. +The `fp`/`nofp` distinction will be removed in a future version. +==== ---- $ halrun @@ -78,14 +83,13 @@ halcmd: show thread Realtime Threads: Period FP Name ( Time, Max-Time ) 995976 YES servo-thread ( 0, 0 ) - 55332 NO base-thread ( 0, 0 ) + 55332 YES base-thread ( 0, 0 ) ---- - base-thread (the high-speed thread): This thread handles items that need a fast response, like making step pulses, and reading and writing the parallel port. - Does not support floating point math. - servo-thread (the slow-speed thread): - This thread handles items that can tolerate a slower response, like the motion controller, ClassicLadder, and the motion command handler and supports floating point math. + This thread handles items that can tolerate a slower response, like the motion controller, ClassicLadder, and the motion command handler. .addf Syntax and Example [source,{hal}] @@ -94,9 +98,6 @@ addf addf mux4.0 servo-thread ---- -[NOTE] -If the component requires a floating point thread that is usually the slower servo-thread. - [[sub:hal-loadusr]] === loadusr diff --git a/docs/src/hal/rtcomps.adoc b/docs/src/hal/rtcomps.adoc index 721c0a8c3e3..32b90672974 100644 --- a/docs/src/hal/rtcomps.adoc +++ b/docs/src/hal/rtcomps.adoc @@ -162,7 +162,7 @@ image::images/stepgen-type11-14.png["Step Types: Five-Phase",align="center"] The component exports three functions. Each function acts on all of the step pulse generators - running different generators in different threads is not supported. -* (funct) `stepgen.make-pulses` - High speed function to generate and count pulses (no floating point). +* (funct) `stepgen.make-pulses` - High speed function to generate and count pulses. * (funct) `stepgen.update-freq` - Low speed function does position to velocity conversion, scaling and limiting. * (funct) `stepgen.capture-position` - Low speed function for feedback, updates latches and scales position. @@ -258,7 +258,7 @@ Each PWM generator will also have some of these pins, depending on the output ty The component exports two functions. Each function acts on all of the PWM generators - running different generators in different threads is not supported. -* (funct) `pwmgen.make-pulses` - High speed function to generate PWM waveforms (no floating point). +* (funct) `pwmgen.make-pulses` - High speed function to generate PWM waveforms. The high speed function `pwmgen.make-pulses` should be run in the base (fastest) thread, from 10 to 50 µs depending on the capabilities of the computer. That thread's period determines the maximum PWM carrier frequency, as well as the resolution of the PWM or PDM signals. If the base thread is 50,000 ns then every 50 µs the module decides if it is time to change the state of the output. @@ -361,7 +361,7 @@ halcmd: unloadrt encoder The component exports two functions. Each function acts on all of the encoder counters - running different counters in different threads is not supported. -* (funct) `encoder.update-counters` - High speed function to count pulses (no floating point). +* (funct) `encoder.update-counters` - High speed function to count pulses. * (funct) `encoder.capture-position` - Low speed function to update latches and scale position. [[sec:pid]] @@ -515,7 +515,7 @@ Most encoder counters will count four times during one complete cycle. The component exports two functions. Each function affects all simulated encoders. -* (funct) `sim-encoder.make-pulses` - High speed function to generate quadrature pulses (no floating point). +* (funct) `sim-encoder.make-pulses` - High speed function to generate quadrature pulses. * (funct) `sim-encoder.update-speed` - Low speed function to read `.speed`, do scaling, and set up `.make-pulses`. [[sec:debounce]] @@ -638,7 +638,7 @@ They were changed to pins to allow control by other components.] (((lut5))) The `lut5` component is a 5 input logic component based on a look up table. -* `lut5` does not require a floating point thread. +* `lut5` does not use floating point math. .Loading `lut5` ---- diff --git a/docs/src/hal/tools.adoc b/docs/src/hal/tools.adoc index 2577edbba4d..f540f2e5871 100644 --- a/docs/src/hal/tools.adoc +++ b/docs/src/hal/tools.adoc @@ -245,8 +245,7 @@ or 2. If no pinname is specified, default is: `motion-command-handler.time`. 3. This app may be opened for 5 pins. 4. Pintypes float, s32, u32, bit are supported. - 5. The pin must be associated with a thread supporting floating point. - For a base thread, this may require using `loadrt motmod ... base_thread_fp=1` . + 5. The pin must be associated with a realtime thread. .hal-histogram Window image::images/hal-histogram.png["hal-histogram Window"] diff --git a/docs/src/hal/tutorial.adoc b/docs/src/hal/tutorial.adoc index e2aa27b05f3..8a84abd9b99 100644 --- a/docs/src/hal/tutorial.adoc +++ b/docs/src/hal/tutorial.adoc @@ -213,7 +213,6 @@ Owner CodeAddr Arg FP Users Name ---- The siggen component exported a single function. -It requires floating point. It is not currently linked to any threads, so 'users' is zero footnote:[CodeAddr and Arg fields were used during development and should probably disappear.]. @@ -241,7 +240,7 @@ Realtime Threads: It did. The period is not exactly 1,000,000 ns because of hardware limitations, but we have a thread that runs at approximately the -correct rate, and which can handle floating point functions. +correct rate. The next step is to connect the function to the thread: .Add Function @@ -557,13 +556,15 @@ component. halrun halcmd: loadrt stepgen step_type=0,0 ctrl_type=v,v halcmd: loadrt siggen -halcmd: loadrt threads name1=fast fp1=0 period1=50000 name2=slow period2=1000000 +halcmd: loadrt threads name1=fast period1=50000 name2=slow period2=1000000 ---- The first command loads two step generators, both configured to generate stepping type 0. The second command loads our old friend siggen, and the third one creates two threads, a fast one with a period of 50 microseconds (µs) and a slow one with a period of 1 millisecond (ms). -The fast thread doesn't support floating point functions. + +NOTE: The `fp1=` parameter is deprecated and ignored. +All threads now unconditionally support floating point. As before, we can use `halcmd show` to take a look at the HAL. This time we have a lot more pins and parameters than before: @@ -731,7 +732,6 @@ is time to take a step, and if so sets the outputs accordingly. For smooth step pulses, it should run as frequently as possible. Because it needs to run so fast, 'make_pulses' is highly optimized and performs only a few calculations. -Unlike the others, it does not need floating point math. The last function, `stepgen.update-freq`, is responsible for doing scaling and some other calculations that need to be performed @@ -754,13 +754,13 @@ halcmd: show thread Realtime Threads: Period FP Name ( Time, Max-Time ) 996980 YES slow ( 0, 0 ) - 49849 NO fast ( 0, 0 ) + 49849 YES fast ( 0, 0 ) ---- The two threads were created when we loaded `threads`. -The first one, 'slow', runs every millisecond, and is capable of running floating point functions. +The first one, 'slow', runs every millisecond. We will use it for `siggen.0.update` and `stepgen.update_freq`. -The second thread is 'fast', which runs every 50 microseconds (µs), and does not support floating point. +The second thread is 'fast', which runs every 50 microseconds (µs). We will use it for `stepgen.make_pulses`. To connect the functions to the proper thread, we use the `addf` command. We specify the function first, followed by the thread. diff --git a/docs/src/man/man3/hal_create_thread.3.adoc b/docs/src/man/man3/hal_create_thread.3.adoc index 1990c9f35b1..dad537b4ac1 100644 --- a/docs/src/man/man3/hal_create_thread.3.adoc +++ b/docs/src/man/man3/hal_create_thread.3.adoc @@ -17,7 +17,8 @@ name:: period:: The interval, in nanoseconds, between iterations of the thread. uses_fp:: - Must be nonzero if a function which uses floating-point will be attached to this thread. + Deprecated and ignored. All threads now unconditionally save and restore + floating point state. This parameter will be removed in a future version. == DESCRIPTION diff --git a/docs/src/man/man3/hal_export_funct.3.adoc b/docs/src/man/man3/hal_export_funct.3.adoc index 21460511387..b33574f0ef6 100644 --- a/docs/src/man/man3/hal_export_funct.3.adoc +++ b/docs/src/man/man3/hal_export_funct.3.adoc @@ -21,8 +21,8 @@ funct:: 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 "=". + Deprecated and ignored. All threads now unconditionally save and restore + floating point state. This parameter will be removed in a future version. 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. diff --git a/docs/src/man/man3/rtapi_task_new.3.adoc b/docs/src/man/man3/rtapi_task_new.3.adoc index d30c780d6dc..fd437d71172 100644 --- a/docs/src/man/man3/rtapi_task_new.3.adoc +++ b/docs/src/man/man3/rtapi_task_new.3.adoc @@ -24,7 +24,8 @@ arg:: prio:: A task priority value returned by *rtapi_prio_xxxx* uses_fp:: - A flag that tells the OS whether the task uses floating point or not. + Deprecated and ignored. All tasks now unconditionally save and restore + floating point state. This parameter will be removed in a future version. task_id:: A task ID returned by a previous call to *rtapi_task_new* diff --git a/docs/src/man/man9/motion.9.adoc b/docs/src/man/man9/motion.9.adoc index 69128e2608a..efb78a7d054 100644 --- a/docs/src/man/man9/motion.9.adoc +++ b/docs/src/man/man9/motion.9.adoc @@ -60,10 +60,9 @@ the motion-controller function. == DESCRIPTION -By default, the base thread does not support floating point. Software -stepping, software encoder counting, and software pwm do not use floating point. -*base_thread_fp* can be used to enable floating point in -the base thread (for example for brushless DC motor control). +NOTE: The *base_thread_fp* parameter is deprecated and ignored. +All threads now unconditionally save and restore floating point state. +This parameter will be removed in a future version. These pins and parameters are created by the realtime *motmod* module. This module provides a HAL interface for LinuxCNC's motion planner. diff --git a/src/hal/components/abs_s32.comp b/src/hal/components/abs_s32.comp index 917608a01ce..6832316298f 100644 --- a/src/hal/components/abs_s32.comp +++ b/src/hal/components/abs_s32.comp @@ -22,7 +22,7 @@ pin out bit is_positive "TRUE if input is positive, FALSE if input is 0 or negat pin out bit is_negative "TRUE if input is negative, FALSE if input is 0 or positive"; option period no; -function _ nofp; +function _; license "GPL"; author "Sebastian Kuzminsky"; ;; diff --git a/src/hal/components/abs_s64.comp b/src/hal/components/abs_s64.comp index 6448d62129f..fdcc1d80d5f 100644 --- a/src/hal/components/abs_s64.comp +++ b/src/hal/components/abs_s64.comp @@ -24,7 +24,7 @@ pin out bit is_positive "true if input is positive, false if input is 0 or negat pin out bit is_negative "true if input is negative, false if input is 0 or positive"; option period no; -function _ nofp; +function _; license "GPL"; author "ArcEye based on code from Sebastian Kuzminsky"; ;; diff --git a/src/hal/components/and2.comp b/src/hal/components/and2.comp index e435b5f22b3..a4f5c6a3f2b 100644 --- a/src/hal/components/and2.comp +++ b/src/hal/components/and2.comp @@ -22,7 +22,7 @@ to the following truth table: """ ; option period no; -function _ nofp; +function _; see_also """ *logic*(9), *lut5*(9), diff --git a/src/hal/components/bin2gray.comp b/src/hal/components/bin2gray.comp index a424c31daa2..b8331963a4a 100644 --- a/src/hal/components/bin2gray.comp +++ b/src/hal/components/bin2gray.comp @@ -5,6 +5,6 @@ pin out unsigned out "gray code out"; license "GPL"; author "Andy Pugh"; option period no; -function _ nofp; +function _; ;; out = (in >> 1) ^ in; diff --git a/src/hal/components/bitmerge.comp b/src/hal/components/bitmerge.comp index f92cf0f7e89..4d9a1cbcadb 100644 --- a/src/hal/components/bitmerge.comp +++ b/src/hal/components/bitmerge.comp @@ -7,7 +7,7 @@ pin out u32 out "The output value"; pin in bit in-##[32:personality]; author "Andy Pugh"; license "GPL2+"; -function _ nofp; +function _; option personality yes; option period no; ;; diff --git a/src/hal/components/bitslice.comp b/src/hal/components/bitslice.comp index 81ebdacfdb0..d6c805f49c9 100644 --- a/src/hal/components/bitslice.comp +++ b/src/hal/components/bitslice.comp @@ -7,7 +7,7 @@ pin in u32 in "The input value"; pin out bit out-##[32:personality]; author "Andy Pugh"; license "GPL2+"; -function _ nofp; +function _; option personality yes; option period no; ;; diff --git a/src/hal/components/bitwise.comp b/src/hal/components/bitwise.comp index cb454903fc9..42b14169a91 100644 --- a/src/hal/components/bitwise.comp +++ b/src/hal/components/bitwise.comp @@ -10,7 +10,7 @@ pin out u32 out-xnor "The inverse of the bitwise XOR"; author "Andy Pugh"; license "GPL 2+"; -function _ nofp; +function _; option period no; ;; diff --git a/src/hal/components/charge_pump.comp b/src/hal/components/charge_pump.comp index 13db3aad2b5..0593fdba7b9 100644 --- a/src/hal/components/charge_pump.comp +++ b/src/hal/components/charge_pump.comp @@ -21,7 +21,7 @@ pin out bit out "Square wave if 'enable' is TRUE or unconnected, low if 'enable' pin out bit out-2 "Square wave at half the frequency of 'out'"; pin out bit out-4 "Square wave at a quarter of the frequency of 'out'"; pin in bit enable = TRUE "If FALSE, forces all 'out' pins to be low"; -function _ nofp "Toggle the output bit (if enabled)"; +function _ "Toggle the output bit (if enabled)"; description """ The 'Charge Pump' should be added to the base thread function. When enabled the output is on for one period and off for one period. To calculate the diff --git a/src/hal/components/comp.comp b/src/hal/components/comp.comp index 96b378dad61..4ab496b293b 100644 --- a/src/hal/components/comp.comp +++ b/src/hal/components/comp.comp @@ -13,7 +13,7 @@ Keep in mind that floating point calculations are never absolute and it is wise to always set *hyst* if you intend to use equal """; option period no; -function _ fp "Update the comparator"; +function _ "Update the comparator"; license "GPL"; author "Jeff Epler"; ;; diff --git a/src/hal/components/conv.comp.in b/src/hal/components/conv.comp.in index 6f718d7ddc9..4e2d3adf592 100644 --- a/src/hal/components/conv.comp.in +++ b/src/hal/components/conv.comp.in @@ -4,7 +4,7 @@ pin out @OUT@ out; @CC@pin out bit out_of_range "TRUE when 'in' is not in the range of @OUT@"; @CC@param rw bit clamp """If TRUE, then clamp to the range of @OUT@. If FALSE, then allow the value to "wrap around"."""; option period no; -function _ @FP@ "Update 'out' based on 'in'"; +function _ "Update 'out' based on 'in'"; license "GPL"; author "Jeff Epler"; diff --git a/src/hal/components/dbounce.comp b/src/hal/components/dbounce.comp index 4a3f8cc0134..4256aa2ff97 100644 --- a/src/hal/components/dbounce.comp +++ b/src/hal/components/dbounce.comp @@ -11,7 +11,7 @@ pin in u32 delay = 5; variable unsigned state; option period no; -function _ nofp; +function _; license "GPL"; author "Dewey Garrett"; ;; diff --git a/src/hal/components/edge.comp b/src/hal/components/edge.comp index 40cef0787df..341d62a7135 100644 --- a/src/hal/components/edge.comp +++ b/src/hal/components/edge.comp @@ -28,7 +28,7 @@ param r signed time_left_ns "Time left in this output pulse"; param r bit last_in "Previous input value"; variable int first = 1; -function _ nofp "Produce output pulses from input edges"; +function _ "Produce output pulses from input edges"; license "GPL"; author "Jeff Epler"; ;; diff --git a/src/hal/components/estop_latch.comp b/src/hal/components/estop_latch.comp index f221c2f4a8a..a97fd002c2c 100644 --- a/src/hal/components/estop_latch.comp +++ b/src/hal/components/estop_latch.comp @@ -43,7 +43,7 @@ pin out bit ok_out = false; pin out bit fault_out = true; pin out bit watchdog; option period no; -function _ nofp; +function _; option data estop_data; license "GPL"; author "John Kasunich"; diff --git a/src/hal/components/flipflop.comp b/src/hal/components/flipflop.comp index f961e395896..3cc6b5cfed6 100644 --- a/src/hal/components/flipflop.comp +++ b/src/hal/components/flipflop.comp @@ -8,7 +8,7 @@ pin io bit out-not "inverted output"; option data flipflop_data; option period no; -function _ nofp; +function _; license "GPL"; author "John Kasunich"; ;; diff --git a/src/hal/components/gantry.comp b/src/hal/components/gantry.comp index aad19edaeb9..cbb12bb4d02 100644 --- a/src/hal/components/gantry.comp +++ b/src/hal/components/gantry.comp @@ -48,8 +48,8 @@ pin out float position-fb "Position feedback to motion"; pin out bit home "Combined home signal, true if all joint home inputs are true."; pin out bit limit "Combined limit signal, true if any joint home input is true."; pin in float search-vel "HOME_SEARCH_VEL from INI file"; -function read fp "Update position-fb and home/limit outputs based on joint values."; -function write fp "Update joint pos-cmd outputs based on position-cmd in."; +function read "Update position-fb and home/limit outputs based on joint values."; +function write "Update joint pos-cmd outputs based on position-cmd in."; description """ --- Deprecation Notice diff --git a/src/hal/components/gray2bin.comp b/src/hal/components/gray2bin.comp index 81e193906bb..c73c5c02d03 100644 --- a/src/hal/components/gray2bin.comp +++ b/src/hal/components/gray2bin.comp @@ -4,7 +4,7 @@ pin in unsigned in "gray code in"; pin out unsigned out "binary code out"; license "GPL"; author "Andy Pugh"; -function _ nofp; +function _; option period no; ;; unsigned int mask; diff --git a/src/hal/components/histobins.comp b/src/hal/components/histobins.comp index 90dc55b859f..2b708ec2bcb 100644 --- a/src/hal/components/histobins.comp +++ b/src/hal/components/histobins.comp @@ -74,7 +74,7 @@ pin out float mean; pin out s32 availablebins = 200; //MAXBINNUMBER option period no; -function _ fp; +function _; variable int bin[200]; // MAXBINNUMBER variable int first = 1; diff --git a/src/hal/components/latencybins.comp b/src/hal/components/latencybins.comp index 6d4f7bf7a15..1304a854f33 100644 --- a/src/hal/components/latencybins.comp +++ b/src/hal/components/latencybins.comp @@ -52,7 +52,7 @@ pin out s32 variance; // user may interrogate available bins to determine this compiled-in limit pin out s32 availablebins = 1000; // MAXBINNUMBER -function _ nofp; +function _; variable rtapi_s64 last_timer = 0; variable int last_binmax = 0; variable int first = 1; diff --git a/src/hal/components/led_dim.comp b/src/hal/components/led_dim.comp index 220b72d277f..6db977e5e9e 100644 --- a/src/hal/components/led_dim.comp +++ b/src/hal/components/led_dim.comp @@ -38,7 +38,7 @@ component led_dim "HAL component for dimming LEDs"; pin in float in "Brightness input value -> 0 to 1"; pin out float out "Luminance output value -> 0 to 1"; -function _ fp "Update the output value"; +function _ "Update the output value"; description """ Component for LED dimming according to human perception of brightness of light. .LP diff --git a/src/hal/components/logic.comp b/src/hal/components/logic.comp index 81c4d39eabd..72afe58b146 100644 --- a/src/hal/components/logic.comp +++ b/src/hal/components/logic.comp @@ -19,7 +19,7 @@ pin out bit or if personality & 0x200; pin out bit xor if personality & 0x400; pin out bit nand if personality & 0x800; pin out bit nor if personality & 0x1000; -function _ nofp "Read the inputs and toggle the output bit."; +function _ "Read the inputs and toggle the output bit."; description """ General `logic function' component. Can perform `and', `or', `nand', `nor' and `xor' of up to 16 inputs. diff --git a/src/hal/components/lut5.comp b/src/hal/components/lut5.comp index 743d5ceb41c..7ba0aa3d066 100644 --- a/src/hal/components/lut5.comp +++ b/src/hal/components/lut5.comp @@ -6,7 +6,7 @@ pin in bit in_3; pin in bit in_4; pin out bit out; param rw u32 function; -function _ nofp; +function _; description """ *lut5* constructs a logic function with up to 5 inputs using a **l**ook-**u**p **t**able. diff --git a/src/hal/components/maj3.comp b/src/hal/components/maj3.comp index 2a19076f12c..86bb3d92206 100644 --- a/src/hal/components/maj3.comp +++ b/src/hal/components/maj3.comp @@ -25,7 +25,7 @@ pin out bit out; param rw bit invert; option period no; -function _ nofp; +function _; license "GPL"; author "Jeff Epler"; diff --git a/src/hal/components/match8.comp b/src/hal/components/match8.comp index c843de10779..7cb8fdf337d 100644 --- a/src/hal/components/match8.comp +++ b/src/hal/components/match8.comp @@ -18,7 +18,7 @@ pin in bit b6; pin in bit b7; pin out bit out "true only if in is true and a[m] matches b[m] for m = 0 thru 7"; option period no; -function _ nofp; +function _; license "GPL"; author "John Kasunich"; ;; diff --git a/src/hal/components/max31855.comp b/src/hal/components/max31855.comp index 2178a4a2cb7..8fe9421b1eb 100644 --- a/src/hal/components/max31855.comp +++ b/src/hal/components/max31855.comp @@ -43,7 +43,7 @@ variable unsigned data_frame [15]; variable unsigned state = 1; option period no; -function bitbang_spi fp; +function bitbang_spi; license "GPL"; author "Joseph Calderon"; diff --git a/src/hal/components/message.comp b/src/hal/components/message.comp index 7110d807208..1301a6014de 100644 --- a/src/hal/components/message.comp +++ b/src/hal/components/message.comp @@ -76,7 +76,7 @@ variable hal_bit_t prev_edge = TRUE; option extra_setup yes; option period no; -function _ nofp "Display a message"; +function _ "Display a message"; license "GPL v2"; author "Les Newell"; ;; diff --git a/src/hal/components/mkconv.sh b/src/hal/components/mkconv.sh index 15f48a1f33b..4e01ed1172a 100644 --- a/src/hal/components/mkconv.sh +++ b/src/hal/components/mkconv.sh @@ -93,8 +93,6 @@ if test "$2" = 'float' -o \ \( "$1" = 's32' -a "$2" = 's64' \) then CC="s,@CC@,//,g"; else CC="s,@CC@,,g"; fi -if test "$1" = 'float' -o "$2" = 'float'; then FP="s,@FP@,,g"; else FP="s,@FP@,nofp,g"; fi - IN="s,@IN@,$1,g" OUT="s,@OUT@,$2,g" MIN="s,@MIN@,$(minval "$2"),g" @@ -102,4 +100,4 @@ MAX="s,@MAX@,$(maxval "$2"),g" TYPI="s,@TYPI@,$(utype "$1"),g" TYPO="s,@TYPO@,$(utype "$2"),g" -exec sed -e "$IN; $OUT; $CC; $MIN; $MAX; $FP; $TYPI; $TYPO; $MINEN; $MAXEN;" +exec sed -e "$IN; $OUT; $CC; $MIN; $MAX; $TYPI; $TYPO; $MINEN; $MAXEN;" diff --git a/src/hal/components/multiclick.comp b/src/hal/components/multiclick.comp index 5a6eab331fd..003052046d0 100644 --- a/src/hal/components/multiclick.comp +++ b/src/hal/components/multiclick.comp @@ -138,7 +138,7 @@ the click separator space timeout has expired to show that no further click is coming. This is useful for triggering halui MDI commands."""; -function _ nofp "Detect single-, double-, triple-, and quadruple-clicks"; +function _ "Detect single-, double-, triple-, and quadruple-clicks"; ;; diff --git a/src/hal/components/not.comp b/src/hal/components/not.comp index e9e6fd2da47..113dd969323 100644 --- a/src/hal/components/not.comp +++ b/src/hal/components/not.comp @@ -4,7 +4,7 @@ pin out bit out; description """ The *out* output pin is set to the inverted logic level of the *in* input pin. """; -function _ nofp; +function _; see_also """ *and2*(9), *logic*(9), diff --git a/src/hal/components/or2.comp b/src/hal/components/or2.comp index 25c33c8c67f..99dccb9ea83 100644 --- a/src/hal/components/or2.comp +++ b/src/hal/components/or2.comp @@ -21,7 +21,7 @@ to the following truth table: """ ; -function _ nofp; +function _; see_also """ *logic*(9) """; diff --git a/src/hal/components/reset.comp b/src/hal/components/reset.comp index 544f071ea54..40914225297 100644 --- a/src/hal/components/reset.comp +++ b/src/hal/components/reset.comp @@ -50,7 +50,7 @@ pin in bit retriggerable = true "Allow additional edges to reset"; pin in bit rising = true "Trigger on rising edge"; pin in bit falling = false "Trigger on falling edge"; option period no; -function _ fp "Update the output value"; +function _ "Update the output value"; description """ Component to reset IO signals. diff --git a/src/hal/components/safety_latch.comp b/src/hal/components/safety_latch.comp index 2f0400d74c4..6d67dc07527 100644 --- a/src/hal/components/safety_latch.comp +++ b/src/hal/components/safety_latch.comp @@ -68,7 +68,7 @@ pin out bit ok_out = true "Ok output"; variable hal_bit_t last_reset = false; option period no; -function _ nofp; +function _; license "GPL"; author "Alexander Rössler"; ;; diff --git a/src/hal/components/sample_hold.comp b/src/hal/components/sample_hold.comp index 561357771b8..c1da283ea02 100644 --- a/src/hal/components/sample_hold.comp +++ b/src/hal/components/sample_hold.comp @@ -3,7 +3,7 @@ pin in s32 in; pin in bit hold; pin out s32 out; option period no; -function _ nofp; +function _; see_also "*tristate*(9)"; license "GPL"; author "Stephen Wille Padnos"; diff --git a/src/hal/components/select8.comp b/src/hal/components/select8.comp index d304b457c28..814d2e5b600 100644 --- a/src/hal/components/select8.comp +++ b/src/hal/components/select8.comp @@ -3,7 +3,7 @@ pin in bit enable = TRUE "Set enable to FALSE to cause all outputs to be set FAL pin in s32 sel "The number of the output to set TRUE. All other outputs well be set FALSE."; pin out bit out#[8] "Output bits. If enable is set and the sel input is between 0 and 7, then the corresponding output bit will be set true."; option period no; -function _ nofp; +function _; see_also "*demux*(9)"; license "GPL"; author "Stephen Wille Padnos"; diff --git a/src/hal/components/sim_axis_hardware.comp b/src/hal/components/sim_axis_hardware.comp index c9b57df9629..b89fdbc966d 100644 --- a/src/hal/components/sim_axis_hardware.comp +++ b/src/hal/components/sim_axis_hardware.comp @@ -159,7 +159,7 @@ pin out bit Vbothsw_homesw_out; pin in float limit_offset =.01 "how much the limit switches are offset from inputted position. added to max, subtracted from min"; option period no; -function update fp; +function update; license "GPL"; author "Chris S Morley"; ;; diff --git a/src/hal/components/sim_home_switch.comp b/src/hal/components/sim_home_switch.comp index a684b456274..b819644c6d1 100644 --- a/src/hal/components/sim_home_switch.comp +++ b/src/hal/components/sim_home_switch.comp @@ -19,7 +19,7 @@ pin in float index_delay_ms = 10 "delay in msec to reset index-enable"; variable int old_index_enable; variable double index_timer_ms; -function _ fp; +function _; license "GPL"; author "Dewey Garrett"; ;; diff --git a/src/hal/components/sim_parport.comp b/src/hal/components/sim_parport.comp index a8c2b59b0c8..44e44486ffa 100644 --- a/src/hal/components/sim_parport.comp +++ b/src/hal/components/sim_parport.comp @@ -125,9 +125,9 @@ pin out bit pin_15_in_not; pin in float reset_time; option period no; -function read nofp; -function write nofp; -function reset nofp; +function read; +function write; +function reset; license "GPL"; author "Chris S Morley"; ;; diff --git a/src/hal/components/sphereprobe.comp b/src/hal/components/sphereprobe.comp index 7b1020eecc6..7cba0924f97 100644 --- a/src/hal/components/sphereprobe.comp +++ b/src/hal/components/sphereprobe.comp @@ -14,7 +14,7 @@ pin in signed r "Radius of hemisphere in counts"; pin out bit probe-out; option period no; -function _ nofp "update probe-out based on inputs"; +function _ "update probe-out based on inputs"; ;; #undef abs int abs(int x) { if(x < 0) return -x; else return x; } diff --git a/src/hal/components/spindle.comp b/src/hal/components/spindle.comp index a65665b67fe..39fa227e1d3 100644 --- a/src/hal/components/spindle.comp +++ b/src/hal/components/spindle.comp @@ -122,7 +122,7 @@ If multiple select inputs are active then the highest is selected. variable float ngears; variable gear_t gears[16]; -function _ fp; +function _; license "GPL"; author "Les Newell"; option extra_setup yes; diff --git a/src/hal/components/threads.c b/src/hal/components/threads.c index 6c5b5254bd1..f5b58a83569 100644 --- a/src/hal/components/threads.c +++ b/src/hal/components/threads.c @@ -59,20 +59,20 @@ MODULE_DESCRIPTION("Thread Module for HAL"); MODULE_LICENSE("GPL"); static char *name1 = "thread1"; /* name of thread */ RTAPI_MP_STRING(name1, "name of thread 1"); -static int fp1 = 1; /* use floating point? default = yes */ -RTAPI_MP_INT(fp1, "thread1 uses floating point"); +static int fp1 = 1; /* deprecated: fp is always enabled, kept for API compat */ +RTAPI_MP_INT(fp1, "thread1 uses floating point (deprecated, ignored)"); static long period1 = 1000000; /* thread period - default = 1ms thread */ RTAPI_MP_LONG(period1, "thread1 period (nsecs)"); static char *name2 = NULL; /* name of thread */ RTAPI_MP_STRING(name2, "name of thread 2"); -static int fp2 = 1; /* use floating point? default = yes */ -RTAPI_MP_INT(fp2, "thread2 uses floating point"); +static int fp2 = 1; /* deprecated: fp is always enabled, kept for API compat */ +RTAPI_MP_INT(fp2, "thread2 uses floating point (deprecated, ignored)"); static long period2 = 0; /* thread period - default = no thread */ RTAPI_MP_LONG(period2, "thread2 period (nsecs)"); static char *name3 = NULL; /* name of thread */ RTAPI_MP_STRING(name3, "name of thread 3"); -static int fp3 = 1; /* use floating point? default = yes */ -RTAPI_MP_INT(fp3, "thread3 uses floating point"); +static int fp3 = 1; /* deprecated: fp is always enabled, kept for API compat */ +RTAPI_MP_INT(fp3, "thread3 uses floating point (deprecated, ignored)"); static long period3 = 0; /* thread period - default = no thread */ RTAPI_MP_LONG(period3, "thread3 period (nsecs)"); @@ -107,7 +107,7 @@ int rtapi_app_main(void) /* was 'period' specified in the insmod command? */ if ((period1 > 0) && (name1 != NULL) && (*name1 != '\0')) { /* create a thread */ - thread1_id = hal_create_thread(name1, period1, fp1); + thread1_id = hal_create_thread(name1, period1, 1); if (thread1_id < 0) { rtapi_print_msg(RTAPI_MSG_ERR, "THREADS: ERROR: could not create thread '%s'\n", name1); @@ -119,7 +119,7 @@ int rtapi_app_main(void) } if ((period2 > 0) && (name2 != NULL) && (*name2 != '\0')) { /* create a thread */ - thread2_id = hal_create_thread(name2, period2, fp2); + thread2_id = hal_create_thread(name2, period2, 1); if (thread2_id < 0) { rtapi_print_msg(RTAPI_MSG_ERR, "THREADS: ERROR: could not create thread '%s'\n", name2); @@ -132,7 +132,7 @@ int rtapi_app_main(void) } if ((period3 > 0) && (name3 != NULL) && (*name3 != '\0')) { /* create a thread */ - thread3_id = hal_create_thread(name3, period3, fp3); + thread3_id = hal_create_thread(name3, period3, 1); if (thread3_id < 0) { rtapi_print_msg(RTAPI_MSG_ERR, "THREADS: ERROR: could not create thread '%s'\n", name3); diff --git a/src/hal/components/threadtest.comp b/src/hal/components/threadtest.comp index 3b1ead901d0..30e42641917 100644 --- a/src/hal/components/threadtest.comp +++ b/src/hal/components/threadtest.comp @@ -1,8 +1,8 @@ component threadtest "LinuxCNC HAL component for testing thread behavior"; pin out unsigned count; option period no; -function increment nofp; -function reset nofp; +function increment; +function reset; license "GPL"; author "Jeff Epler"; diff --git a/src/hal/components/timedelta.comp b/src/hal/components/timedelta.comp index 3922e8f71ad..19fabe45e8b 100644 --- a/src/hal/components/timedelta.comp +++ b/src/hal/components/timedelta.comp @@ -19,7 +19,7 @@ pin out s32 err=0 "Cumulative time error (in ns). Probably not useful."; pin out float avg_err=0 "The average scheduling error (in ns)."; -function _ nofp; +function _; variable rtapi_s64 last=0; variable int first=1; license "GPL"; diff --git a/src/hal/components/tof.comp b/src/hal/components/tof.comp index 9e517fe700d..c942bb1695b 100644 --- a/src/hal/components/tof.comp +++ b/src/hal/components/tof.comp @@ -24,7 +24,7 @@ pin out float et "Elapsed time since falling edge in seconds"; param rw float pt "Delay time in seconds"; -function _ fp "Update the timer"; +function _ "Update the timer"; license "GPL"; author "Chad Woitas"; ;; diff --git a/src/hal/components/toggle.comp b/src/hal/components/toggle.comp index 3beb9dda9cd..d533844b165 100644 --- a/src/hal/components/toggle.comp +++ b/src/hal/components/toggle.comp @@ -18,7 +18,7 @@ param rw u32 debounce = 2 "debounce delay in periods"; option data toggle_data; option period no; -function _ nofp; +function _; license "GPL"; author "John Kasunich"; ;; diff --git a/src/hal/components/toggle2nist.comp b/src/hal/components/toggle2nist.comp index 98eef353816..df002e2bf36 100644 --- a/src/hal/components/toggle2nist.comp +++ b/src/hal/components/toggle2nist.comp @@ -36,7 +36,7 @@ variable unsigned debounce_set; variable int state; option period no; -function _ nofp; +function _; license "GPL"; author "Anders Wallin, David Mueller"; ;; diff --git a/src/hal/components/ton.comp b/src/hal/components/ton.comp index ff85f85c394..90974f48b07 100644 --- a/src/hal/components/ton.comp +++ b/src/hal/components/ton.comp @@ -24,7 +24,7 @@ pin out float et "Elapsed time since rising edge in seconds"; param rw float pt "Delay time in seconds"; -function _ fp "Update the timer"; +function _ "Update the timer"; license "GPL"; author "Chad Woitas"; ;; diff --git a/src/hal/components/tp.comp b/src/hal/components/tp.comp index 04ee0cc1488..5d202f9f748 100644 --- a/src/hal/components/tp.comp +++ b/src/hal/components/tp.comp @@ -26,7 +26,7 @@ param rw float pt "Pulse time in seconds"; variable int in_old; // Value of in on last cycle, for rising edge detection -function _ fp "Update the timer"; +function _ "Update the timer"; license "GPL"; author "Chad Woitas"; ;; diff --git a/src/hal/components/tristate_bit.comp b/src/hal/components/tristate_bit.comp index 50a4f9ea934..9bcbeb04cb9 100644 --- a/src/hal/components/tristate_bit.comp +++ b/src/hal/components/tristate_bit.comp @@ -5,7 +5,7 @@ pin io bit out "Output value"; pin in bit enable "When TRUE, copy in to out"; option period no; -function _ nofp "If *enable* is TRUE, copy *in* to *out*."; +function _ "If *enable* is TRUE, copy *in* to *out*."; license "GPL"; author "Jeff Epler"; ;; diff --git a/src/hal/components/updown.comp b/src/hal/components/updown.comp index d893f7c0f9c..45b059f15be 100644 --- a/src/hal/components/updown.comp +++ b/src/hal/components/updown.comp @@ -11,7 +11,7 @@ variable int oldup; variable int olddown; variable int first = 1; option period no; -function _ nofp "Process inputs and update count if necessary"; +function _ "Process inputs and update count if necessary"; license "GPL"; author "Stephen Wille Padnos"; diff --git a/src/hal/components/xor2.comp b/src/hal/components/xor2.comp index 8b4263400e6..b2b2fb3d88c 100644 --- a/src/hal/components/xor2.comp +++ b/src/hal/components/xor2.comp @@ -20,7 +20,7 @@ to the following truth table: |=== """; -function _ nofp; +function _; see_also """ *and2*(9), *logic*(9), diff --git a/src/hal/drivers/pcl720.comp b/src/hal/drivers/pcl720.comp index 81f55c93d67..1ca24ebb2ec 100644 --- a/src/hal/drivers/pcl720.comp +++ b/src/hal/drivers/pcl720.comp @@ -15,9 +15,9 @@ param rw bit pin-##-out-invert[32] "Set to true to invert the sense of the outpu pin out unsigned wait_clocks; -function read nofp "Reads each of the digital inputs and updates the HAL pins"; -function write nofp "Writes the values of the output HAL pins to the digital IO"; -function reset nofp """Waits for the length of time specified by the +function read "Reads each of the digital inputs and updates the HAL pins"; +function write "Writes the values of the output HAL pins to the digital IO"; +function reset """Waits for the length of time specified by the \\fBreset-time\\fP parameter and resets any pins for which the \\fBreset\\fP parameter has been set. This can be used to allow step generators to make a step every thread rather than every other thread. This function must be added to the diff --git a/src/hal/drivers/serport.comp b/src/hal/drivers/serport.comp index abefb322f64..378351bafb0 100644 --- a/src/hal/drivers/serport.comp +++ b/src/hal/drivers/serport.comp @@ -44,8 +44,8 @@ option extra_cleanup; option constructable no; option period no; -function read nofp; -function write nofp; +function read; +function write; license "GPL"; ;; diff --git a/src/hal/hal.h b/src/hal/hal.h index 174dfb5b214..8c6a674cb8b 100644 --- a/src/hal/hal.h +++ b/src/hal/hal.h @@ -714,10 +714,9 @@ extern int hal_get_param_value_by_name( C function will be exported several times with different HAL names, perhaps to deal with multiple instances of a hardware device. - 'uses_fp' should be non-zero if the function uses floating - point. When in doubt, make it non-zero. If you are sure - that the function doesn't use the FPU, then set 'uses_fp' - to zero. + 'uses_fp' is deprecated and ignored. All threads now + unconditionally save and restore FPU/SSE state. This + parameter will be removed in a future version. 'reentrant' should be zero unless the function (and any hardware it accesses) is completely reentrant. If reentrant is non-zero, the function may be prempted and called again @@ -752,10 +751,9 @@ extern int hal_export_functf(void (*funct) (void *, long), threads that are created later, so creating them from fastest to slowest results in rate monotonic priority scheduling, usually a good thing. - 'uses_fp' should be non-zero if the thread will call any - functions that use floating point. In general, it should - be non-zero for most threads, with the possible exception - of the very fastest, most critical thread in a system. + 'uses_fp' is deprecated and ignored. All threads now + unconditionally save and restore FPU/SSE state. This + parameter will be removed in a future version. On success, hal_create_thread() returns a positive integer thread ID. On failure, returns an error code as defined above. Call only from realtime init code, not from user diff --git a/src/hal/hal_lib.c b/src/hal/hal_lib.c index 978cdaec2f6..495773da6f3 100644 --- a/src/hal/hal_lib.c +++ b/src/hal/hal_lib.c @@ -1964,8 +1964,9 @@ int hal_export_funct(const char *name, void (*funct) (void *, long), "HAL: ERROR: insufficient memory for function '%s'\n", name); return -ENOMEM; } - /* initialize the structure */ - new->uses_fp = uses_fp; + /* initialize the structure. + uses_fp is deprecated and ignored; always report as FP-capable. */ + new->uses_fp = 1; new->owner_ptr = SHMOFF(comp); new->reentrant = reentrant; new->users = 0; @@ -2089,8 +2090,9 @@ int hal_create_thread(const char *name, unsigned long period_nsec, int uses_fp) "HAL: ERROR: insufficient memory to create thread\n"); return -ENOMEM; } - /* initialize the structure */ - new->uses_fp = uses_fp; + /* initialize the structure. + uses_fp is deprecated and ignored; always enable FPU save/restore. */ + new->uses_fp = 1; rtapi_snprintf(new->name, sizeof(new->name), "%s", name); /* have to create and start a task to run the thread */ if (hal_data->thread_list_ptr == 0) { @@ -2150,9 +2152,10 @@ int hal_create_thread(const char *name, unsigned long period_nsec, int uses_fp) } /* make priority one lower than previous */ new->priority = rtapi_prio_next_lower(prev_priority); - /* create task - owned by library module, not caller */ + /* create task - owned by library module, not caller. + Always pass 1 for uses_fp (deprecated, ignored by rtapi). */ retval = rtapi_task_new(thread_task, new, new->priority, - lib_module_id, HAL_STACKSIZE, uses_fp); + lib_module_id, HAL_STACKSIZE, 1); if (retval < 0) { rtapi_mutex_give(&(hal_data->mutex)); rtapi_print_msg(RTAPI_MSG_ERR, @@ -2324,13 +2327,9 @@ int hal_add_funct_to_thread(const char *funct_name, const char *thread_name, int "HAL: ERROR: thread '%s' not found\n", thread_name); return -EINVAL; } - /* ok, we have thread and function, are they compatible? */ - if ((funct->uses_fp) && (!thread->uses_fp)) { - rtapi_mutex_give(&(hal_data->mutex)); - rtapi_print_msg(RTAPI_MSG_ERR, - "HAL: ERROR: function '%s' needs FP\n", funct_name); - return -EINVAL; - } + /* uses_fp is deprecated and ignored; all threads are FP-capable. + The compatibility check below is kept but will never trigger + since all threads now effectively have uses_fp=1. */ /* find insertion point */ list_root = &(thread->funct_list); list_entry = list_root; diff --git a/src/hal/utils/halcompile.g b/src/hal/utils/halcompile.g index aef17a5a526..a40e3827eaf 100644 --- a/src/hal/utils/halcompile.g +++ b/src/hal/utils/halcompile.g @@ -76,7 +76,7 @@ parser Hal: | {{ return None }} rule OptSAssign: "=" SValue {{ return SValue; }} | {{ return None }} - rule OptFP: "fp" {{ return 1 }} | "nofp" {{ return 0 }} | {{ return 1 }} + rule OptFP: "fp" {{ return optfp_warn(1) }} | "nofp" {{ return optfp_warn(0) }} | {{ return 1 }} rule Value: "yes" {{ return 1 }} | "no" {{ return 0 }} | "true" {{ return 1 }} | "false" {{ return 0 }} | "TRUE" {{ return 1 }} | "FALSE" {{ return 0 }} @@ -174,6 +174,13 @@ def Error(msg, *args): msg = msg % args raise runtime.SyntaxError(S.get_pos(), msg, None) +def optfp_warn(state): + s = "nofp" if 0 == state else "fp" + Warn("'%s' is no longer supported and will be removed in a future version. " + "All threads are now floating point capable. " + "Please remove '%s' from the function declaration." % (s, s)) + return 1 + def comp(name, doc): docs.append(('component', name, doc)) global comp_name diff --git a/src/rtapi/rtai_rtapi.c b/src/rtapi/rtai_rtapi.c index 58f720a9ecb..9c1f9d961d0 100644 --- a/src/rtapi/rtai_rtapi.c +++ b/src/rtapi/rtai_rtapi.c @@ -685,9 +685,10 @@ int rtapi_task_new(void (*taskcode) (void *), void *arg, } task->taskcode = taskcode; task->arg = arg; - /* call OS to initialize the task - use predetermined CPU */ + /* call OS to initialize the task - use predetermined CPU. + uses_fp is deprecated and ignored; always save FPU state. */ retval = rt_task_init_cpuid(ostask_array[task_id], wrapper, task_id, - stacksize, prio, uses_fp, 0 /* signal */, rtapi_data->rt_cpu ); + stacksize, prio, 1 /* always save FPU */, 0 /* signal */, rtapi_data->rt_cpu ); if (retval != 0) { /* couldn't create task, free task data memory */ kfree(ostask_array[task_id]); diff --git a/src/rtapi/rtapi.h b/src/rtapi/rtapi.h index 7dfa16d2306..2f07296061e 100644 --- a/src/rtapi/rtapi.h +++ b/src/rtapi/rtapi.h @@ -414,12 +414,9 @@ RTAPI_BEGIN_DECLS * arbitrary void pointer when the task is started, and can be used to pass any * amount of data to the task (by pointing to a struct, or other such tricks). * - * @c uses_fp is a flag that tells the OS whether the task uses floating point - * so it can save the FPU registers on a task switch. Failing to save registers - * when needed causes the dreaded "NAN bug", so most tasks should set @c - * uses_fp to ::RTAPI_USES_FP. If a task definitely does not use floating - * point, setting @c uses_fp to ::RTAPI_NO_FP saves a few microseconds per task - * switch. + * @c uses_fp is deprecated and ignored. All tasks now unconditionally + * save and restore FPU/SSE state on context switch. This parameter + * will be removed in a future version. * @param taskcode Pointer to the function to be called when the task is * started. * @param arg Argument to be passed to the taskcode function. @@ -427,8 +424,7 @@ RTAPI_BEGIN_DECLS * @param owner ID of the module that is making the call see rtapi_init(). * @param stacksize The amount of stack to be used for the task, be generous, * hardware interrupts may use the same stack. - * @param uses_fp Whether the task uses floating point set with ::RTAPI_NO_FP - * or ::RTAPI_USES_FP. + * @param uses_fp Deprecated and ignored. Kept for API compatibility. * @return On success, returns a positive integer task ID, @c task_id. This ID * is used for all subsequent calls that need to act on the task. On * failure, returns a negative error code as listed above. diff --git a/src/rtapi/uspace_rtai.cc b/src/rtapi/uspace_rtai.cc index 39c01d570bc..436c4003d14 100644 --- a/src/rtapi/uspace_rtai.cc +++ b/src/rtapi/uspace_rtai.cc @@ -84,7 +84,8 @@ struct RtaiApp : RtapiApp { task->rt_task = rt_task_init(task->id, task->prio, 0, 0); rt_set_periodic_mode(); start_rt_timer(nano2count(task->period)); - if(task->uses_fp) rt_task_use_fpu(task->rt_task, 1); + /* uses_fp is deprecated and ignored; always save FPU state */ + rt_task_use_fpu(task->rt_task, 1); // assumes processor numbers are contiguous int nprocs = sysconf( _SC_NPROCESSORS_ONLN ); rt_set_runnable_on_cpus(task->rt_task, 1u << (nprocs - 1)); diff --git a/src/rtapi/uspace_rtapi_app.cc b/src/rtapi/uspace_rtapi_app.cc index c491178d981..1bf1037dedd 100644 --- a/src/rtapi/uspace_rtapi_app.cc +++ b/src/rtapi/uspace_rtapi_app.cc @@ -961,7 +961,8 @@ int RtapiApp::task_new(void (*taskcode) (void*), void *arg, if(stacksize < (1024*1024)) stacksize = (1024*1024); task->id = n; task->owner = owner; - task->uses_fp = uses_fp; + /* uses_fp is deprecated and ignored; always save FPU state */ + task->uses_fp = 1; task->arg = arg; task->stacksize = stacksize; task->taskcode = taskcode; diff --git a/tests/halcompile/names/names_dont_match.comp b/tests/halcompile/names/names_dont_match.comp index 7c719c2e131..aa800b2290d 100644 --- a/tests/halcompile/names/names_dont_match.comp +++ b/tests/halcompile/names/names_dont_match.comp @@ -1,6 +1,6 @@ component wrong_name; license "GPL"; pin out bit out; -function _ nofp; +function _; ;; FUNCTION(_) {} diff --git a/tests/halcompile/names/names_match.comp b/tests/halcompile/names/names_match.comp index 3114ec4f491..d14574d9aab 100644 --- a/tests/halcompile/names/names_match.comp +++ b/tests/halcompile/names/names_match.comp @@ -1,6 +1,6 @@ component names_match; license "GPL"; pin out bit out; -function _ nofp; +function _; ;; FUNCTION(_) {} diff --git a/tests/limit3/constraints/test.hal b/tests/limit3/constraints/test.hal index c372e6fdf50..c7eb9f85c68 100644 --- a/tests/limit3/constraints/test.hal +++ b/tests/limit3/constraints/test.hal @@ -108,7 +108,7 @@ net out-accel => sampler.0.pin.3 net mux-select => sampler.0.pin.4 -loadrt threads name1=t period1=1000000 fp1=1 +loadrt threads name1=t period1=1000000 addf charge-pump t addf encoder.update-counters t diff --git a/tests/limit3/sunny-day/test.hal b/tests/limit3/sunny-day/test.hal index 05d57dd3e47..0bf147b3756 100644 --- a/tests/limit3/sunny-day/test.hal +++ b/tests/limit3/sunny-day/test.hal @@ -48,7 +48,7 @@ net out-accel <= ddt.out-accel.out net out-accel => sampler.0.pin.5 -loadrt threads name1=t period1=1000000 fp1=1 +loadrt threads name1=t period1=1000000 addf siggen.0.update t addf limit3.0 t diff --git a/tests/module-loading/rtapi-app-main-fails/rtapi_app_main_fails.comp b/tests/module-loading/rtapi-app-main-fails/rtapi_app_main_fails.comp index 0250fb3f137..dff449cf8b4 100644 --- a/tests/module-loading/rtapi-app-main-fails/rtapi_app_main_fails.comp +++ b/tests/module-loading/rtapi-app-main-fails/rtapi_app_main_fails.comp @@ -1,7 +1,7 @@ component rtapi_app_main_fails "rtapi_app_main error test"; pin out bit boo; option rtapi_app no; -function _ nofp; +function _; license "GPL"; ;; diff --git a/tests/symbols.0/test_define.comp b/tests/symbols.0/test_define.comp index 742bb59187f..f3594b69e0c 100644 --- a/tests/symbols.0/test_define.comp +++ b/tests/symbols.0/test_define.comp @@ -1,7 +1,7 @@ component test_define; pin out bit out; -function _ nofp; +function _; license "GPL"; ;; void testdefine(void) {} diff --git a/tests/symbols.0/test_use.comp b/tests/symbols.0/test_use.comp index 02dc7bd609b..8f288249ecd 100644 --- a/tests/symbols.0/test_use.comp +++ b/tests/symbols.0/test_use.comp @@ -1,7 +1,7 @@ component test_use; pin out bit out; -function _ nofp; +function _; license "GPL"; ;; void testuse(void); diff --git a/tests/symbols.1/test_define1.comp b/tests/symbols.1/test_define1.comp index 764b51b2c10..ec31145acad 100644 --- a/tests/symbols.1/test_define1.comp +++ b/tests/symbols.1/test_define1.comp @@ -1,7 +1,7 @@ component test_define1; pin out s32 out; -function _ nofp; +function _; license "GPL"; ;; int testdefine; diff --git a/tests/symbols.1/test_use1.comp b/tests/symbols.1/test_use1.comp index f6a76764bd3..80911b58f3e 100644 --- a/tests/symbols.1/test_use1.comp +++ b/tests/symbols.1/test_use1.comp @@ -1,7 +1,7 @@ component test_use1; pin out s32 out; -function _ nofp; +function _; license "GPL"; ;; int testdefine;