# f41info - Displaying DPF file resource usage

Parses the contents of a .f41 file and displays resources used by the DPFs associated with the specified DPM.

#### Usage

f41info f41name [options]

where f41name is the name of a supported CG board DPM file.

The following table lists the available options:

Options | Use this option to...
--- | ---
-t | Display information about DPFs associated with the specified DPM in a table format.
-d | Display information about DPFs associated with the specified DPM.
-a | Display information about all DPFs in a table format. Process all .f41 files found in the current working directory. Search the path specified by the AGLOAD environment variable.

#### Description

Run f41info to display information about specific DPMs (.f41 files) that can run on CG board DSP resources. f41info displays the following information:

- DPM revision and creation date

- DPM size in bytes

- DPF MIPs requirements

Note: DPM MIPS requirements are listed according to the DPF hexadecimal identifier (not its string identifier). For a list of the hexadecimal IDs associated with DPF strings IDs, refer to the Hexadecimal and ASCII ID strings table.

For more information about managing on-board resources, refer to Managed DSP resources.

### Hexadecimal and ASCII ID strings

The following table shows the ASCII string IDs and hexadecimal IDs of supported CG board DPFs. For echo cancellation, the ASCII string IDs associated with the hexadecimal corresponds to the version of the software echo cancellation DPF specified as f41name, for example, echo.f41, echo_v3.f41, or echo_v4.f41.

Hexadecimal ID string | ASCII ID string
--- | ---
0x020B00 | voice.rec_64
0x020A00 | voice.rec_32
0x020900 | voice.rec_24
0x020800 | voice.rec_16
0x020300 | voice.play_64_100
0x021300 | voice.play_64_150
0x022300 | voice.play_64_200
0x020200 | voice.play_32_100
0x021200 | voice.play_32_150
0x022200 | voice.play_32_200
0x020100 | voice.play_24_100
0x021100 | voice.play_24_150
0x022100 | voice.play_24_200
0x020000 | voice.play_16_100
0x021000 | voice.play_16_150
0x022000 | voice.play_16_200
0x050100 | signal.xmt
0x050A00 | signal.rcv
0x050E00 | signal.rcv_QA
0x0A0000 | callp.gnc
0x0C0000 | tone.gen
0x0D0800 | rvoice.play_mulaw
0x0D1000 | rvoice.play_alaw
0x0D0900 | rvoice.play_mulaw_edtx
0x0D1100 | rvoice.play_alaw_edtx
0x0D2000 | rvoice.play_lin
0x0D4100 | rvoice.rec_mulaw
0x0D4200 | rvoice.rec_alaw
0x0D4400 | rvoice.rec_lin
0x0D8900 | rvoice.mu2mu
0x0D8A00 | rvoice.mu2a
0x0D8C00 | rvoice.mu2lin
0x0D9100 | rvoice.a2mu
0x0D9200 | rvoice.a2a
0x0D9400 | rvoice.a2lin
0x0DA100 | rvoice.lin2mu
0x0DA200 | rvoice.lin2a
0x0DA400 | rvoice.lin2lin
0x0D8000 | rvoice.passthru
0x0D0000 | rvoice.passthru_play
0x0D4000 | rvoice.passthru_rec
0x0D0800 | rvoice_vad.play_mulaw
0x0D1000 | rvoice_vad.play_alaw
0x0D2000 | rvoice_vad.play_lin
0x0D4100 | rvoice_vad.rec_mulaw
0x0D4200 | rvoice_vad.rec_alaw
0x0D4400 | rvoice_vad.rec_lin
0x080100 | dtmf.det_dtmf
0x080200 | dtmf.det_sil
0x080400 | dtmf.det_clrdwn
0x080700 | dtmf.dtmf_sil_clrdwn
0x080F00 | dtmf.det_all
0x080100 | dtmfe.det_dtmf
0x080200 | dtmfe.det_sil
0x080400 | dtmfe.det_clrdwn
0x080700 | dtmfe.dtmf_sil_clrdwn
0x080E00 | dtmf.det_sil_clrdwn_ced
0x080F00 | dtmfe.det_all
0x090A00 | mf.fdet_bcmpl
0x090C00 | mf.bdet_fcmpl
0x090100 | mf.fdet_USA
0x090200 | mf.fdet
0x090400 | mf.bdet
0x160A00 | echo.ln20_apt100 echo_v3.ln20_apt100 echo_v4.ln20_apt100
0x161A00 | echo.ln20_apt50 echo_v3.ln20_apt50 echo_v4.ln20_apt50
0x162A00 | echo.ln20_apt25 echo_v3.ln20_apt25 echo_v4.ln20_apt25
0x163A00 | echo.ln20_apt12 echo_v3.ln20_apt12 echo_v4.ln20_apt12
0x160800 | echo.ln16_apt100 echo_v3.ln16_apt100 echo_v4.ln16_apt100
0x161800 | echo.ln16_apt50 echo_v3.ln16_apt50 echo_v4.ln16_apt50
0x162800 | echo.ln16_apt25 echo_v3.ln16_apt25 echo_v4.ln16_apt25
0x163800 | echo.ln16_apt12 echo_v3.ln16_apt12 echo_v4.ln16_apt12
0x160500 | echo.ln10_apt100 echo_v3.ln10_apt100 echo_v4.ln10_apt100
0x161500 | echo.ln10_apt50 echo_v3.ln10_apt50 echo_v4.ln10_apt50
0x162500 | echo.ln10_apt25 echo_v3.ln10_apt25 echo_v4.ln10_apt25
0x163500 | echo.ln10_apt12 echo_v3.ln10_apt12 echo_v4.ln10_apt12
0x160400 | echo.ln8_apt100 echo_v3.ln8_apt100 echo_v4.ln8_apt100
0x161400 | echo.ln8_apt50 echo_v3.ln8_apt50 echo_v4.ln8_apt50
0x162400 | echo.ln8_apt25 echo_v3.ln8_apt25 echo_v4.ln8_apt25
0x163400 | echo.ln8_apt12 echo_v3.ln8_apt12 echo_v4.ln8_apt12
0x160300 | echo.ln6_apt100 echo_v3.ln6_apt100 echo_v4.ln6_apt100
0x161300 | echo.ln6_apt50 echo_v3.ln6_apt50 echo_v4.ln6_apt50
0x162300 | echo.ln6_apt25 echo_v3.ln6_apt25 echo_v4.ln6_apt25
0x163300 | echo.ln6_apt12 echo_v3.ln6_apt12 echo_v4.ln6_apt12
0x160200 | echo.ln4_apt100 echo_ v3.ln4_apt100 echo_v4.ln4_apt100
0x161200 | echo.ln4_apt50 echo_v3.ln4_apt50 echo_v4.ln4_apt50
0x162200 | echo.ln4_apt25 echo_v3.ln4_apt25 echo_v4.ln4_apt25
0x163200 | echo.ln4_apt12 echo_v3.ln4_apt12 echo_v4.ln4_apt12
0x160100 | echo.ln2_apt100 echo_v3.ln2_apt100 echo_v4.ln2_apt100
0x161100 | echo.ln2_apt50 echo_v3.ln2_apt50 echo_v4.ln2_apt50
0x162100 | echo.ln2_apt25 echo_v3.ln2_apt25 echo_v4.ln2_apt25
0x163100 | echo.ln2_apt12 echo_v3.ln2_apt12 echo_v4.ln2_apt12
0x164300 | echo_v3.ln24_apt100 echo_v4.ln24_apt100
0x165300 | echo_v3.ln24_apt50 echo_v4.ln24_apt50
0x166300 | echo_v3.ln24_apt25 echo_v4.ln24_apt25
0x167300 | echo_v3.ln24_apt12 echo_v4.ln24_apt12
0x164400 | echo_v3.ln32_apt100 echo_v4.ln32_apt100
0x165400 | echo_v3.ln32_apt50 echo_v4.ln32_apt50
0x166400 | echo_v3.ln32_apt25 echo_v4.ln32_apt25
0x167400 | echo_v3.ln32_apt12 echo_v4.ln32_apt12
0x164500 | echo_v3.ln40_apt100 echo_v4.ln40_apt100
0x165500 | echo_v3.ln40_apt50 echo_v4.ln40_apt50
0x166500 | echo_v3.ln40_apt25 echo_v4.ln40_apt25
0x167500 | echo_v3.ln40_apt12 echo_v4.ln40_apt12
0x164600 | echo_v3.ln48_apt100 echo_v4.ln48_apt100
0x165600 | echo_v3.ln48_apt50 echo_v4.ln48_apt50
0x166600 | echo_v3.ln48_apt25 echo_v4.ln48_apt25
0x167600 | echo_v3.ln48_apt12 echo_v4.ln48_apt12
0x164800 | echo_v3.ln64_apt100 echo_v4.ln64_apt100
0x165800 | echo_v3.ln64_apt50 echo_v4.ln64_apt50
0x166800 | echo_v3.ln64_apt25 echo_v4.ln64_apt25
0x167800 | echo_v3.ln64_apt12 echo_v4.ln64_apt12
0x1B0100 | oki.play_24_100
0x1B1100 | oki.play_24_150
0x1B2100 | oki.play_24_200
0x1B0200 | oki.play_32_100
0x1B1200 | oki.play_32_150
0x1B2200 | oki.play_32_200
0x1B0900 | oki.rec_24
0x1B0A00 | oki.rec_32
0x1C0700 | ptf.det_2f
0x1C7700 | ptf.det_4f
0x1D0000 | wave.play_11_16b
0x1D0100 | wave.play_11_8b
0x1D0800 | wave.rec_11_16b
0x1D0900 | wave.rec_11_8b
0x190000 | adsir.rcv
0x190000 | adsir_j.rcv
0x1A0000 | adsix.xmt
0x1A0000 | adsix_j.xmt
0x1E0000 | nmsfax
0x2C0000 | amr.rec_475
0x2C0100 | amr.rec_515
0x2C0200 | amr.rec_590
0x2C0300 | amr.rec_670
0x2C0400 | amr.rec_740
0x2C0500 | amr.rec_795
0x2C0600 | amr.rec_102
0x2C0700 | amr.rec_122
0x2C0800 | amr.play
0x2C0900 | amr.play_edtx
0x2D0000 | cmvt_sbc.record
0x2D0100 | cmvt_sbc.play
0x260100 | ima.play_24
0x260200 | ima.play_32
0x260900 | ima.rec_24
0x260A00 | ima.rec_32
0x270000 | gsm_ms.frgsm_play gsm_mspl.frgsm_play gsm_ms.play_100
0x271000 | gsm_ms.play_150
0x272000 | gsm_ms.play_200
0x270100 | gsm_ms.frgsm_rec gsm_mspl.frgsm_rec
0x410000 | f_gsm_fr.cod
0x410100 | f_gsm_fr.dec
0x410200 | f_gsm_fr.cod_rfc2833
0x410300 | f_gsm_fr.dec_rfc2833
0x2A0000 | g723.play_53
0x2A0100 | g723.rec_53
0x2A0200 | g723.play_64
0x2A0300 | g723.rec_64
0x2A0400 | g723.play_edtx
0x2B0000 | g729a.play
0x2B0100 | g729a.record
0x2B0300 | g729a.play_edtx
0x0F0200 | g726.play_32
0x0F0a00 | g726.rec_32
0x0F0300 | g726.play_32_edtx
0x400000 | f_g711.cod
0x400000 | f_g711vad.cod
0x400100 | f_g711.dec
0x400100 | f_g711vad.dec
0x400200 | f_g711.cod_rfc2833
0x400200 | f_g711vad.cod_rfc2833
0x400300 | f_g711.dec_rfc2833
0x400300 | f_g711vad.dec_rfc2833
0x430000 | f_g723.cod
0x430100 | f_g723.dec
0x430000 | f_g723r.cod
0x430100 | f_g723r.dec
0x430200 | f_g723.cod_rfc2833
0x430300 | f_g723.dec_rfc2833
0x430200 | f_g723r.cod_rfc2833
0x430300 | f_g723r.dec_rfc2833
0x440000 | f_g729a.cod
0x440100 | f_g729a.dec
0x440200 | f_g729a.cod_rfc2833
0x440300 | f_g729a.dec_rfc2833
0x450000 | f_faxt38.relay
0x460000 | f_g726.cod
0x460100 | f_g726.dec
0x460200 | f_g726.cod_rfc2833
0x460300 | f_g726.dec_rfc2833
0x470000 | f_g728.cod
0x470100 | f_g728.dec
0x470200 | f_g728.cod_rfc2833
0x470300 | f_g728.dec_rfc2833
0x4B0000 | f_amr.cod
0x4B0100 | f_amr.dec
0x4B0200 | f_amr.cod_rfc2833
0x4B0300 | f_amr.dec_rfc2833
0x4C0000 | f_evrc.cod
0x4C0100 | f_evrc.dec
0x4C0200 | f_evrc.cod_rfc2833
0x4C0300 | f_evrc.dec_rfc2833
0x500000 | f_ilbc_20.cod
0x500100 | f_ilbc_20.dec
0x500200 | f_ilbc_20.cod_rfc2833
0x500300 | f_ilbc_20.dec_rfc2833
0x510000 | f_ilbc_30.cod
0x510100 | f_ilbc_30.dec
0x510200 | f_ilbc_30.cod_rfc2833
0x510300 | f_ilbc_30.dec_rfc2833

#### Example 1

If you run this command:

f41info dtmf -d

Information similar to the following example appears:

Dialogic Corporation Show F41 File Info Version 1.00
File name: C:\NMS\CG\LOAD\dtmf.f41
Revision : 0.2
Size : 12964 bytes
Created : Fri Jan 21 16:43:28 2000
FUNCTION STATE MIPS Msec In Out Cmd Context Description
---------------------------------------------------------------------------
807h 0 2.523 2 8v 16 113 DTMF, Silence, Cleardown
801h 0 1.996 2 8v 16 113 DTMF only
802h 0 0.773 2 8v 16 113 post-/pre- Silence only
804h 0 1.359 2 8v 16 113 Cleardown only
POOL NAME SIZE ADDRESS TYPE
------------------------------------------------------
.DTMF_TABLE 1h 0h% DATA_GLOBAL_FAST
SECTION NAME SIZE
----------------------------------------
.text e9h

The following table describes the output that appears:

Column | Description
--- | ---
FUNCTION | The lower byte is the DPF ID. The upper byte is the DPM family code.
STATE | There is one row of resource information per state. STATE indicates the state number. A P in the STATE column indicates that the resources used are in the DPF persist mode.
MIPS | MIPS (millions of instructions per second) used by the DPF.
Msec | DPF period in milliseconds.
In | Input frame size, in words. V indicates that the voice bit is set, meaning that this queue is typically circuit switched.
Out | Output frame size, in words. V indicates that the voice bit is set, meaning that this queue is typically circuit switched.
Cmd | Command packet size, in words.
Context | User context size, in words. The user context holds DPF static data.
Description | DPF functional description.
POOL NAME | Displays data pool definitions used by the DSP linker to relocate existing sections or to create new sections as scratch pad areas.
SECTION NAME | Displays only when the -d option is used. The .text section is program code while other sections represent a user-defined table.

#### Example 2

If you run this command:

f41info crc -t

Information similar to the following example appears:

Dialogic Corporation Show F41 File Info Version 1.00
File name: C:\NMS\CG\LOAD\crc.f41
Revision : 0.2
Size : 8154 bytes
Created : Fri Jan 21 16:43:18 2000
Slots Memory Packet
FUNCTION Description MIPS In Out Data Up Down
---------------------------------------------------------------------------
d08h CRC Play mu-law 0.621 0 1 282 0 40
d10h CRC Play A-law 0.621 0 1 282 0 40
d41h CRC Record mu-law 0.621 1 0 245 40 0
d42h CRC Record A-law 0.621 1 0 245 40 0
Program Memory = 426 words
POOL NAME SIZE ADDRESS TYPE
------------------------------------------------------
crcdebug 100h 0h% DATA

The output is similar to the preceding table with the following changes:

Column | Description
--- | ---
MIPS | Prefaced with state number. A single state is not displayed.
Slots | Circuit switched queues, as determined by the V (voice) bit. Consumes timeslots. V-bit set indicates a slot is used. Otherwise, the queue is assumed to be a packet (DSP to/from Host) queue.
Memory Data | DPM instance context size in words. Obtained by summing data requirements of queues, command and context, plus instance overhead.
Packet | Up - If the V-bit is clear, the queue is assumed to be a packet queue. Packet Up displays DSP to Host frame size in words. Down - If the V-bit is clear, the queue is assumed to be a packet queue. Packet Down displays Host to DSP frame size in words. Packet up and down sizes are cumulative. If there is more than one up or down queue, the sizes are summed.