SYNOPSIS
astribank_is_starting [-d] [-v] [-t timeout] <-a|-r|-w>astribank_is_starting [-d] [-v]
astribank_is_starting -h
DESCRIPTION
astribank_is_starting is an internal tool used by various xpp scripts to mark that there may be an Astribank device currently initializing, and to check for that mark.Technically the mark is a SysV semaphore.
OPTIONS
-a- Add. Set the mark. Should return 0 unless there's an error.
-r
- Remove. Reset the mark. Should return 0 unless there's an error.
-ttimeout
- Timeout. Set the timeout value for the -w option. Default is 60 seconds.
-w
- Wait. Wait for mark to be reset. Should return 0 unless there's an error.
Without -a or -r: return 0 if the mark has been set, or a non-zero value otherwise.
-d
- Print debug information to stderr.
-v
- Verbose execution.
-h
- Displays usage message.
FILES
/proc/sysvipc/sem- If set, the astribank should appear there with the ID 11211168 (0xAB11A0). Naturally the ID (or rather, the usage of a semaphore in the first place) is an implementation detail that may change.
NOTES
astribank_is_starting is used to mark the fact that an Astribank may be currently reenumerating (technically: distonnecting and connecting as a new USB device) after loading the firmware. Thus the script that loads the firmware (/usr/share/dahdi/xpp_fxloader) uses this utility to set the mark.The mark is reset by /usr/share/dahdi/waitfor_xpds , which is typically run by the DAHDI init script and waits for all Astribanks to finish loading.
Q: Why do you use a semaphore?
A: because, unlike the filesystem, it is writable at any given time.
BUGS
Option ordering matter. The -v and -d options should preceed the actions (-a, -r and -w). The -ttimeout option should preceed the -w option.
AUTHOR
This manual page was written by Tzafrir Cohen <[email protected]> . Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation.On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.