2011-7-27 14:13:19
来源:互联网 发布:网络销售的平台有哪些? 编辑:程序博客网 时间:2024/05/21 17:41
2011-7-27 14:13:19
首先加载相关的so文件
上来就killall?
[pid 1419] connect(3, {sa_family=AF_FILE, path="/tmp/.X11-unix/X0"...}, 19 <unfinished ...>
poll([{fd=4, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=3, events=POLLIN}, {fd=11, events=POLLIN},
{fd=5, events=POLLIN}, {fd=7, events=POLLIN}, {fd=6, events=POLLIN}], 8, 4059) = 0 (Timeout)
怀疑 usb的恢复手法有问题
${#2233} 用来表示2233的位数
704*480 分辨率的没有图像
先存一个文件看看
直接掉用powermanager的方法
int pm_suspend(suspend_state_t state)
{
if (state > PM_SUSPEND_ON && state <= PM_SUSPEND_MAX)
return enter_state(state);
return -EINVAL;
}
有这样 8种状态
typedef int __bitwise suspend_state_t;
#define PM_SUSPEND_ON ((__force suspend_state_t) 0)
#define PM_SUSPEND_STANDBY ((__force suspend_state_t) 1)
#define PM_SUSPEND_MEM ((__force suspend_state_t) 3)
#define PM_SUSPEND_DISK ((__force suspend_state_t) 4)
#define PM_SUSPEND_LCDREFRESH ((__force suspend_state_t) 5)
#define PM_SUSPEND_DEEPSLEEP ((__force suspend_state_t) 6)
#define PM_SUSPEND_MAX ((__force suspend_state_t) 7)
如果状态是 PM_SUSPEND_DISK 直接调用 pm_suspend_disk
static const char * const pm_states[PM_SUSPEND_MAX] = {
[PM_SUSPEND_STANDBY] = "standby",
[PM_SUSPEND_MEM] = "mem",
#ifdef CONFIG_SOFTWARE_SUSPEND
[PM_SUSPEND_DISK] = "disk",
#endif
[PM_SUSPEND_LCDREFRESH] = "lcdrefresh",
[PM_SUSPEND_DEEPSLEEP] = "deepsleep",
};
电源状态也就4种
判断一个进程是否可以冻结
static inline int freezeable(struct task_struct * p)
{
if ((p == current) ||
(p->flags & PF_NOFREEZE) ||
(p->exit_state == EXIT_ZOMBIE) ||
(p->exit_state == EXIT_DEAD))
return 0;
return 1;
}
防止手机休眠?
typedef struct {
unsigned long sig[_NSIG_WORDS];
} sigset_t;
2个字节
struct sigpending {
struct list_head list;
sigset_t signal;
};
sigset_t blocked, real_blocked;
sigset_t saved_sigmask; /* To be restored with TIF_RESTORE_SIGMASK */
struct sigpending pending;
static inline int has_pending_signals(sigset_t *signal, sigset_t *blocked)
{
unsigned long ready;
long i;
switch (_NSIG_WORDS) {
default:
for (i = _NSIG_WORDS, ready = 0; --i >= 0 ;)
ready |= signal->sig[i] &~ blocked->sig[i];
break;
case 4: ready = signal->sig[3] &~ blocked->sig[3];
ready |= signal->sig[2] &~ blocked->sig[2];
ready |= signal->sig[1] &~ blocked->sig[1];
ready |= signal->sig[0] &~ blocked->sig[0];
break;
case 2: ready = signal->sig[1] &~ blocked->sig[1];
ready |= signal->sig[0] &~ blocked->sig[0];
break;
case 1: ready = signal->sig[0] &~ blocked->sig[0];
}
return ready != 0;
}
是不是有额外的信号?
- 2011-7-27 14:13:19
- 6/26/2011 7:27:13 PM
- 2011-7-30 13:56:27
- 2011-7-19 13:37:29
- 2011-7-30 19:17:13
- 2011-7-13
- 2011-9-27 11:35:19
- 2011-9-27 21:43:19
- 2011-06-06 13:27:57
- 2011-8-13 16:27:54
- 2011-7-29-14-20
- 2011-05-13 19:07:10
- 2011-8-9 19:13:18
- 2011-7-14 14:56:00
- 2011-7-13 13:00:45
- 2011-8-11 13:03:14
- 2011-9-14 13:24:34
- 2011-7-10 15:27:45
- JAVA [ 多线程 ]
- 1.java基础语法易忘点
- MapReduce技术的初步了解与学习
- 什么是数组名?----一 指针与数组的区别!(转载)
- nutch搜索本地pdf文件
- 2011-7-27 14:13:19
- Python创建二维数组
- javascript 跨域总结
- 程序员技术练级攻略
- mpc.pl和 mwc.pl 学习。
- 写在大学的最后一个暑假
- 【Android 笔记 五】 Android Sensor感应器介绍(一)重力感应加速度获取
- loki factory的使用
- Linux 套接字编程中的 5 个隐患