improve checking of "lpt_enable" variable
This commit is contained in:
parent
828d9323cc
commit
233f9ffab0
73
yasnd.c
73
yasnd.c
@ -53,15 +53,18 @@ void* allocate_memory(int bytes)
|
|||||||
*/
|
*/
|
||||||
void lpt_init()
|
void lpt_init()
|
||||||
{
|
{
|
||||||
if (ioperm (lpt_port, 3, 1))
|
if (lpt_enable)
|
||||||
{
|
{
|
||||||
log_event("Error: Unlocking the circuit fails due to LPT port access error");
|
if (ioperm (lpt_port, 3, 1))
|
||||||
// disable LPT port usage
|
{
|
||||||
lpt_enable=false;
|
log_event("Error: Unlocking the circuit fails due to LPT port access error");
|
||||||
return;
|
// disable LPT port usage
|
||||||
|
lpt_enable=false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Unlock circuit
|
||||||
|
outb (0, lpt_port);
|
||||||
}
|
}
|
||||||
// Unlock circuit
|
|
||||||
outb (0, lpt_port);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -71,15 +74,18 @@ void lpt_init()
|
|||||||
*/
|
*/
|
||||||
void lpt_lock()
|
void lpt_lock()
|
||||||
{
|
{
|
||||||
if (ioperm (lpt_port, 3, 1))
|
if (lpt_enable)
|
||||||
{
|
{
|
||||||
log_event("Error: Locking the circuit fails due to LPT port access error");
|
if (ioperm (lpt_port, 3, 1))
|
||||||
// disable LPT port usage
|
{
|
||||||
lpt_enable=false;
|
log_event("Error: Locking the circuit fails due to LPT port access error");
|
||||||
return;
|
// disable LPT port usage
|
||||||
|
lpt_enable=false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Lock circuit
|
||||||
|
outb (1, lpt_port);
|
||||||
}
|
}
|
||||||
// Lock circuit
|
|
||||||
outb (1, lpt_port);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function, that checks that defined host entry is valid
|
// Function, that checks that defined host entry is valid
|
||||||
@ -164,8 +170,7 @@ void init()
|
|||||||
if (sms_enable)
|
if (sms_enable)
|
||||||
gammu_init();
|
gammu_init();
|
||||||
// initialize LPT control circuit
|
// initialize LPT control circuit
|
||||||
if (lpt_enable)
|
lpt_init();
|
||||||
lpt_init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void check_host(int num,host_decl* host)
|
void check_host(int num,host_decl* host)
|
||||||
@ -198,23 +203,26 @@ void check_host(int num,host_decl* host)
|
|||||||
*/
|
*/
|
||||||
void reset_pin(int pin_num)
|
void reset_pin(int pin_num)
|
||||||
{
|
{
|
||||||
if (pin_num==0)
|
if (lpt_enable)
|
||||||
return; // there is no LPT control for target host
|
|
||||||
if (pin_num<0 || pin_num>8)
|
|
||||||
{
|
{
|
||||||
log_event("Error: incorrent LPT pin number");
|
if (pin_num==0)
|
||||||
return;
|
return; // there is no LPT control for target host
|
||||||
|
if (pin_num<0 || pin_num>8)
|
||||||
|
{
|
||||||
|
log_event("Error: incorrent LPT pin number");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int pins = 1<<(pin_num);
|
||||||
|
if (ioperm (lpt_port, 3, 1))
|
||||||
|
{
|
||||||
|
log_event("Error: LPT port access error");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Reset host
|
||||||
|
outb (pins, lpt_port);
|
||||||
|
sleep(1);
|
||||||
|
outb (0, lpt_port);
|
||||||
}
|
}
|
||||||
int pins = 1<<(pin_num);
|
|
||||||
if (ioperm (lpt_port, 3, 1))
|
|
||||||
{
|
|
||||||
log_event("Error: LPT port access error");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Reset host
|
|
||||||
outb (pins, lpt_port);
|
|
||||||
sleep(1);
|
|
||||||
outb (0, lpt_port);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int loop_function()
|
int loop_function()
|
||||||
@ -319,8 +327,7 @@ void signal_handler(int signum)
|
|||||||
{
|
{
|
||||||
log_event("SIGTERM captured, daemon stopping");
|
log_event("SIGTERM captured, daemon stopping");
|
||||||
// block LPT control circuit
|
// block LPT control circuit
|
||||||
if (lpt_enable)
|
lpt_lock();
|
||||||
lpt_lock();
|
|
||||||
// close log decriptor
|
// close log decriptor
|
||||||
closelog();
|
closelog();
|
||||||
// free resources
|
// free resources
|
||||||
|
Loading…
Reference in New Issue
Block a user