mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-libstb-hal.git
synced 2025-08-26 23:12:44 +02:00
create common proc_tools
proc_put, proc_get and proc_get_hex are used in many files.
Avoid duplication by moving them to common/proc_tools.c.
Convert azbox's cVideo to use proc_tools.h
Origin commit data
------------------
Branch: master
Commit: 47941bd849
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2012-06-24 (Sun, 24 Jun 2012)
------------------
This commit was generated by Migit
This commit is contained in:
@@ -5,7 +5,8 @@ bin_PROGRAMS = libstb-hal-test
|
|||||||
|
|
||||||
libstb_hal_a_LIBADD = \
|
libstb_hal_a_LIBADD = \
|
||||||
common/ca.o \
|
common/ca.o \
|
||||||
common/lt_debug.o
|
common/lt_debug.o \
|
||||||
|
common/proc_tools.o
|
||||||
|
|
||||||
libstb_hal_test_SOURCES = libtest.cpp
|
libstb_hal_test_SOURCES = libtest.cpp
|
||||||
libstb_hal_test_LDADD = \
|
libstb_hal_test_LDADD = \
|
||||||
|
@@ -34,6 +34,9 @@
|
|||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/dvb/video.h>
|
#include <linux/dvb/video.h>
|
||||||
|
|
||||||
|
#include <proc_tools.h>
|
||||||
|
|
||||||
#include "video_lib.h"
|
#include "video_lib.h"
|
||||||
#define VIDEO_DEVICE "/dev/dvb/adapter0/video0"
|
#define VIDEO_DEVICE "/dev/dvb/adapter0/video0"
|
||||||
#include "lt_debug.h"
|
#include "lt_debug.h"
|
||||||
@@ -67,50 +70,6 @@ static bool stillpicture = false;
|
|||||||
#define VIDEO_STREAMTYPE_VC1_SM 5
|
#define VIDEO_STREAMTYPE_VC1_SM 5
|
||||||
#define VIDEO_STREAMTYPE_MPEG1 6
|
#define VIDEO_STREAMTYPE_MPEG1 6
|
||||||
|
|
||||||
|
|
||||||
static int proc_put(const char *path, const char *value, const int len)
|
|
||||||
{
|
|
||||||
int ret, ret2;
|
|
||||||
int pfd = open(path, O_WRONLY);
|
|
||||||
if (pfd < 0)
|
|
||||||
return pfd;
|
|
||||||
ret = write(pfd, value, len);
|
|
||||||
ret2 = close(pfd);
|
|
||||||
if (ret2 < 0)
|
|
||||||
return ret2;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int proc_get(const char *path, char *value, const int len)
|
|
||||||
{
|
|
||||||
int ret, ret2;
|
|
||||||
int pfd = open(path, O_RDONLY);
|
|
||||||
if (pfd < 0)
|
|
||||||
return pfd;
|
|
||||||
ret = read(pfd, value, len);
|
|
||||||
value[len-1] = '\0'; /* make sure string is terminated */
|
|
||||||
if (ret >= 0)
|
|
||||||
{
|
|
||||||
while (ret > 0 && isspace(value[ret-1]))
|
|
||||||
ret--; /* remove trailing whitespace */
|
|
||||||
value[ret] = '\0'; /* terminate, even if ret = 0 */
|
|
||||||
}
|
|
||||||
ret2 = close(pfd);
|
|
||||||
if (ret2 < 0)
|
|
||||||
return ret2;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static unsigned int proc_get_hex(const char *path)
|
|
||||||
{
|
|
||||||
unsigned int n, ret = 0;
|
|
||||||
char buf[16];
|
|
||||||
n = proc_get(path, buf, 16);
|
|
||||||
if (n > 0)
|
|
||||||
sscanf(buf, "%x", &ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
cVideo::cVideo(int, void *, void *)
|
cVideo::cVideo(int, void *, void *)
|
||||||
{
|
{
|
||||||
lt_debug("%s\n", __FUNCTION__);
|
lt_debug("%s\n", __FUNCTION__);
|
||||||
|
@@ -4,4 +4,5 @@ AM_CXXFLAGS = -fno-rtti -fno-exceptions -fno-strict-aliasing
|
|||||||
|
|
||||||
libcommon_a_SOURCES = \
|
libcommon_a_SOURCES = \
|
||||||
ca.cpp \
|
ca.cpp \
|
||||||
lt_debug.cpp
|
lt_debug.cpp \
|
||||||
|
proc_tools.c
|
||||||
|
59
common/proc_tools.c
Normal file
59
common/proc_tools.c
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* helper functions to interact with files, usually in the proc filesystem
|
||||||
|
*
|
||||||
|
* (C) 2012 Stefan Seyfried <seife@tuxboxcvs.slipkontur.de>
|
||||||
|
*
|
||||||
|
* License: GPLv2 or later
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <ctype.h> /* isspace */
|
||||||
|
#include <stdio.h> /* sscanf */
|
||||||
|
|
||||||
|
#include "proc_tools.h"
|
||||||
|
|
||||||
|
int proc_put(const char *path, const char *value, const int len)
|
||||||
|
{
|
||||||
|
int ret, ret2;
|
||||||
|
int pfd = open(path, O_WRONLY);
|
||||||
|
if (pfd < 0)
|
||||||
|
return pfd;
|
||||||
|
ret = write(pfd, value, len);
|
||||||
|
ret2 = close(pfd);
|
||||||
|
if (ret2 < 0)
|
||||||
|
return ret2;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int proc_get(const char *path, char *value, const int len)
|
||||||
|
{
|
||||||
|
int ret, ret2;
|
||||||
|
int pfd = open(path, O_RDONLY);
|
||||||
|
if (pfd < 0)
|
||||||
|
return pfd;
|
||||||
|
ret = read(pfd, value, len);
|
||||||
|
value[len-1] = '\0'; /* make sure string is terminated */
|
||||||
|
if (ret >= 0)
|
||||||
|
{
|
||||||
|
while (ret > 0 && isspace(value[ret-1]))
|
||||||
|
ret--; /* remove trailing whitespace */
|
||||||
|
value[ret] = '\0'; /* terminate, even if ret = 0 */
|
||||||
|
}
|
||||||
|
ret2 = close(pfd);
|
||||||
|
if (ret2 < 0)
|
||||||
|
return ret2;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int proc_get_hex(const char *path)
|
||||||
|
{
|
||||||
|
unsigned int n, ret = 0;
|
||||||
|
char buf[16];
|
||||||
|
n = proc_get(path, buf, 16);
|
||||||
|
if (n > 0)
|
||||||
|
sscanf(buf, "%x", &ret);
|
||||||
|
return ret;
|
||||||
|
}
|
20
common/proc_tools.h
Normal file
20
common/proc_tools.h
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* helper functions to interact with files, usually in the proc filesystem
|
||||||
|
*
|
||||||
|
* (C) 2012 Stefan Seyfried <seife@tuxboxcvs.slipkontur.de>
|
||||||
|
*
|
||||||
|
* License: GPLv2 or later
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef __PROC_TOOLS_H__
|
||||||
|
#define __PROC_TOOLS_H__
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
int proc_put(const char *path, const char *value, const int len);
|
||||||
|
int proc_get(const char *path, char *value, const int len);
|
||||||
|
unsigned int proc_get_hex(const char *path);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
Reference in New Issue
Block a user