|
发表于 2022-6-18 19:40:05
|
显示全部楼层
#include <stdio.h>
{0 j) M. K% J: b# b; X& s2 z b#include <unistd.h>
; K( k* |/ t- P$ P& @+ b9 k#include <fcntl.h>
6 }3 E- S2 {6 C#include <errno.h>
$ P1 L5 r" R! s$ h#include <sys/ioctl.h>
: j. y% W' r& p Y+ @& Y: L% j; g, \$ Y9 S
#define IOCMD_LOCK 0xC0204D017 U9 |' i6 n k$ d5 w: J2 F1 N; b
#define IOCMD_UNLOCK 0xC0204D02
) l0 ^! r6 T; X
! f8 f* }* o. ~7 u3 j ~- ]! Y2 Jvoid usage(const char* app); }% |! [5 O$ S" h) }
{/ n: ~& _5 c& J, O0 O; l
printf("%s -l <mtd name> ... lock mtd\n", app);
$ n. R& [; m4 u0 m& b& Z# _ printf("%s -u <mtd name> ... unlock mtd\n", app);- G0 t$ t( q* U4 P0 ]* P; N: V
}
4 v% j9 p( U; }4 h; H4 T) f G+ g
int main(int argc, char* argv[])
( R- }; V$ v$ }2 g8 \{' r* E6 o" p: v/ d& Q& ]- f* c
const char* file = "/proc/wap_proc/mtd_protect";
\2 F- V: q, a1 ^9 ]" I2 J int fd, r;
/ y; d( ]+ g( R1 {# b7 {% H7 K* Y unsigned long cmd = IOCMD_UNLOCK;
, q& ^0 D! ~* `( Q& W) A: P' A- h$ x3 W& W# E5 N | T
if(argc < 3)
; c7 R9 ]) @! R# A+ F9 E3 W {. Y$ s& \6 H( w" A
usage(argv[0]);
& C' G. p& F5 A. ^8 U) I1 z return 1;: ^& i1 g5 K0 v& y ^) }
}
0 [8 n1 a. D, o# \7 |; }% U" @+ y if('-' == argv[1][0])
! X; W; @) K K2 K& v8 j! s J {
" S( }* P; g2 l7 u if('l' == argv[1][1])+ j( w8 F& r8 C
cmd = IOCMD_LOCK;0 I9 u, O& u/ t
else if('u' != argv[1][1])
! m% p7 r9 F' w* k. H {usage(argv[0]); return 1;}
- h& W/ c @- ]! S- j2 G6 I2 F3 y }
2 K/ g" _+ U u else/ Q) I. v' p6 Y$ J$ L( I5 _6 x
{+ F4 u% D" q6 ]
usage(argv[0]);# s' P& y" z9 d: H- R- i
return 1;
' @2 |" Z+ f1 z3 c8 E }
8 V* R. @- S5 P fd = open(file, O_RDWR);) H* l8 ~1 u) ?
if(fd < 0)
' P9 _- y3 t, k: T) r {
q3 B6 L3 P; f! ]$ u3 I$ @ printf("Can not open: %s\n", file);
) N3 _0 g/ M- ]9 c return 1;6 C0 n, |% t1 e$ ]" [2 ?, H0 g
}) E% g" |+ ~+ _
r = ioctl(fd, cmd, argv[2]);- {8 f8 [2 X4 B
close(fd);
3 h* Y3 ^" B0 c, l: W; A printf("%s '%s' %s. errno:%u\n", & W! y1 ^" k4 t0 l0 W" Z5 s
(IOCMD_UNLOCK == cmd ? "Unlock" : "Lock"),( l. L# y+ ?* M% N
argv[2], (r < 0 ? "failed" : "success"), errno);
8 K: I# d% ^4 a$ G+ k return 0;
( Y) P$ d* R; F, B}8 P4 [; c! b- h- b
7 @2 r/ S2 B8 r# f! @
2 m8 w% I, T" f: a
4 R( n# h( _9 _# x3 {7 {+ C |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|