|
发表于 2022-6-18 19:40:05
|
显示全部楼层
#include <stdio.h> l1 w! i" Y# ~7 J
#include <unistd.h>
: _3 B. U% W1 e$ ~8 j% l( S' f$ ~#include <fcntl.h>
$ Z6 r$ k' \, ~#include <errno.h>' g& N% R6 W$ H: l
#include <sys/ioctl.h>
8 B5 Y0 S% a6 q/ ^* ^: z- p" s! E9 x0 v2 ?, Y
#define IOCMD_LOCK 0xC0204D01" e- m% i1 }' v/ n) x* q2 d9 x
#define IOCMD_UNLOCK 0xC0204D02
; M, f; n Z/ j* {# Q# s; O7 u
. C2 ]7 l) s. I: C7 ^void usage(const char* app)
$ V" M& Y% N7 s/ c0 G* V' U{
& A0 O0 `. o2 {+ `' I; L printf("%s -l <mtd name> ... lock mtd\n", app);
, u3 o' N; O! Z _ printf("%s -u <mtd name> ... unlock mtd\n", app);
# v6 t$ {1 K5 h1 P( j; H. \}
9 B: ^( H* ?6 }: k- U1 j2 j+ r4 k5 f. H& F
int main(int argc, char* argv[]): `( t4 R# ?0 i* K8 a1 `8 ?' x3 s
{3 X7 \2 ` P6 Q: Q/ H
const char* file = "/proc/wap_proc/mtd_protect";! K& s4 z7 r+ R' [, \# D; a
int fd, r;# f/ M$ \. T' f6 s
unsigned long cmd = IOCMD_UNLOCK;
* [" c1 l9 e" M; k1 B% o* K6 _' V( z [( T; B9 N
if(argc < 3)0 @& k, V& u' h# B( U- T
{
: H2 n1 g, a, e* q3 f usage(argv[0]);
6 x {; ?# [# e6 D, M* Q return 1;2 @* q6 n" s, c6 \
}
; ^7 d4 w5 ~0 u5 |' T if('-' == argv[1][0])8 ]/ y: Y# i5 r% r1 |, O
{
- K( J+ ` a2 B- }- R; y( J1 N5 R if('l' == argv[1][1])/ y! C; {2 b" l0 o
cmd = IOCMD_LOCK;
- J [# Q) W: D( y" O& w8 R else if('u' != argv[1][1])
# B }. Q5 C; Y4 V1 [5 C {usage(argv[0]); return 1;}4 x- _% W3 d! k- v) ? K: H' T
} b/ W+ b6 R/ Q$ L
else( Z' E' B! }: y5 R$ t
{2 {. [" m) T" n: l6 S L7 q
usage(argv[0]);, u2 Q' @- _; C0 m
return 1;
U, T( Y1 z3 @. i* y }( J( }4 R3 g! {: H; K1 A4 Z
fd = open(file, O_RDWR);' F4 M. d: r; I3 N. U
if(fd < 0)
% Z0 D9 _( K1 q# E4 A7 R* M {
; s- d+ S9 x B7 q- R% F+ Q$ ] printf("Can not open: %s\n", file);/ n# v: x9 |8 O
return 1;
% s, |2 y& S: @ }) d! q' l3 d7 g4 d! x7 R
r = ioctl(fd, cmd, argv[2]);* I* c; `5 Y6 _; D& S7 ~5 c
close(fd);
7 Z1 a& ^, J/ J3 A' x printf("%s '%s' %s. errno:%u\n",
0 l* x$ N- d) S$ X4 ` (IOCMD_UNLOCK == cmd ? "Unlock" : "Lock"),
/ R+ v. u( c ]' @0 b: b0 T argv[2], (r < 0 ? "failed" : "success"), errno);$ ^# L# B/ d- x8 r
return 0;; I6 y- a3 V# X. v% D5 R4 W- K( K
}6 m+ Q# x3 q" x: O2 \" e
& E0 s1 w7 N0 n$ O: X0 Z) p8 L+ L7 H
( j' ~& |) W: z' F: @* W+ d8 z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|