History

Removed extraneous files

Joel Armstrong committed 15 years ago

Commit 9e310ca1 parent d1273b4817 files · +-811 −605Browse files

Unified · Split

817 files
  1. Android/arm/bin/0a +0 −0
  2. Android/arm/bin/0c +0 −0
  3. Android/arm/bin/0l +0 −0
  4. Android/arm/bin/1a +0 −0
  5. Android/arm/bin/1c +0 −0
  6. Android/arm/bin/1l +0 −0
  7. Android/arm/bin/2a +0 −0
  8. Android/arm/bin/2c +0 −0
  9. Android/arm/bin/2l +0 −0
  10. Android/arm/bin/5a +0 −0
  11. Android/arm/bin/5c +0 −0
  12. Android/arm/bin/5coff +0 −0
  13. Android/arm/bin/5cv +0 −0
  14. Android/arm/bin/5l +0 −0
  15. Android/arm/bin/8a +0 −0
  16. Android/arm/bin/8c +0 −0
  17. Android/arm/bin/8l +0 −0
  18. Android/arm/bin/acid +0 −0
  19. Android/arm/bin/asm +0 −0
  20. Android/arm/bin/c2l +0 −0
  21. Android/arm/bin/data2c +0 −0
  22. Android/arm/bin/data2s +0 −0
  23. Android/arm/bin/emu-g +0 −0
  24. Android/arm/bin/ftl +0 −0
  25. Android/arm/bin/iar +0 −0
  26. Android/arm/bin/idea +0 −0
  27. Android/arm/bin/inm +0 −0
  28. Android/arm/bin/iyacc +0 −0
  29. Android/arm/bin/ka +0 −0
  30. Android/arm/bin/kc +0 −0
  31. Android/arm/bin/kl +0 −0
  32. Android/arm/bin/kprof +0 −0
  33. Android/arm/bin/ksize +0 −0
  34. Android/arm/bin/kstrip +0 −0
  35. Android/arm/bin/limbo +0 −0
  36. Android/arm/bin/md5sum +0 −0
  37. Android/arm/bin/mk +0 −0
  38. Android/arm/bin/mk.save +0 −0
  39. Android/arm/bin/mkext +0 −0
  40. Android/arm/bin/mkppcimage +0 −0
  41. Android/arm/bin/ms2 +0 −0
  42. Android/arm/bin/ndate +0 −0
  43. Android/arm/bin/qa +0 −0
  44. Android/arm/bin/qc +0 −0
  45. Android/arm/bin/ql +0 −0
  46. Android/arm/bin/sqz +0 −0
  47. Android/arm/bin/srclist +0 −0
  48. Android/arm/bin/styxtest +0 −0
  49. Android/arm/bin/tc +0 −0
  50. Android/arm/bin/va +0 −0
  51. Android/arm/bin/vc +0 −0
  52. Android/arm/bin/vl +0 −0
  53. Android/arm/lib/lib9.a +0 −0
  54. Android/arm/lib/libbio.a +0 −0
  55. Android/arm/lib/libcc.a +0 −0
  56. Android/arm/lib/libdraw.a +0 −0
  57. Android/arm/lib/libdynld.a +0 −0
  58. Android/arm/lib/libfreetype.a +0 −0
  59. Android/arm/lib/libinterp.a +0 −0
  60. Android/arm/lib/libkeyring.a +0 −0
  61. Android/arm/lib/libmach.a +0 −0
  62. Android/arm/lib/libmath.a +0 −0
  63. Android/arm/lib/libmemdraw.a +0 −0
  64. Android/arm/lib/libmemlayer.a +0 −0
  65. Android/arm/lib/libmp.a +0 −0
  66. Android/arm/lib/libprefab.a +0 −0
  67. Android/arm/lib/libregexp.a +0 −0
  68. Android/arm/lib/libsec.a +0 −0
  69. Android/arm/lib/libstyx.a +0 −0
  70. Android/arm/lib/libtk.a +0 −0
  71. acme/acid/Acid.dis +0 −0
  72. acme/acid/Acid0.dis +0 −0
  73. acme/dis/adiff.dis +0 −0
  74. acme/dis/agrep.dis +0 −0
  75. acme/dis/awd.dis +0 −0
  76. acme/dis/cd.dis +0 −0
  77. acme/dis/new.dis +0 −0
  78. acme/dis/spout.dis +0 −0
  79. acme/dis/win.dis +0 −0
  80. acme/dis/winm.dis +0 −0
  81. acme/edit/a.dis +0 −0
  82. acme/edit/c.dis +0 −0
  83. acme/edit/d.dis +0 −0
  84. acme/edit/e.dis +0 −0
  85. acme/edit/g.dis +0 −0
  86. acme/edit/i.dis +0 −0
  87. acme/edit/p.dis +0 −0
  88. acme/edit/pipe.dis +0 −0
  89. acme/edit/x.dis +0 −0
  90. acme/mail/Mail.dis +0 −0
  91. acme/mail/Mailpop3.dis +0 −0
  92. acme/mail/mkbox.dis +0 −0
  93. dis/9660srv.dis +0 −0
  94. dis/9export.dis +0 −0
  95. dis/9srvfs.dis +0 −0
  96. dis/9win.dis +0 −0
  97. dis/B.dis +0 −0
  98. dis/acme.dis +0 −0
  99. dis/acme/acme.dis +0 −0
  100. dis/acme/buff.dis +0 −0
  101. dis/acme/col.dis +0 −0
  102. dis/acme/dat.dis +0 −0
  103. dis/acme/disk.dis +0 −0
  104. dis/acme/ecmd.dis +0 −0
  105. dis/acme/edit.dis +0 −0
  106. dis/acme/elog.dis +0 −0
  107. dis/acme/exec.dis +0 −0
  108. dis/acme/file.dis +0 −0
  109. dis/acme/frame.dis +0 −0
  110. dis/acme/fsys.dis +0 −0
  111. dis/acme/graph.dis +0 −0
  112. dis/acme/gui.dis +0 −0
  113. dis/acme/look.dis +0 −0
  114. dis/acme/regx.dis +0 −0
  115. dis/acme/row.dis +0 −0
  116. dis/acme/scrl.dis +0 −0
  117. dis/acme/styxaux.dis +0 −0
  118. dis/acme/text.dis +0 −0
  119. dis/acme/time.dis +0 −0
  120. dis/acme/util.dis +0 −0
  121. dis/acme/wind.dis +0 −0
  122. dis/acme/xfid.dis +0 −0
  123. dis/ar.dis +0 −0
  124. dis/archfs.dis +0 −0
  125. dis/auhdr.dis +0 −0
  126. dis/auplay.dis +0 −0
  127. dis/auth/aescbc.dis +0 −0
  128. dis/auth/ai2key.dis +0 −0
  129. dis/auth/changelogin.dis +0 −0
  130. dis/auth/convpasswd.dis +0 −0
  131. dis/auth/countersigner.dis +0 −0
  132. dis/auth/createsignerkey.dis +0 −0
  133. dis/auth/factotum.dis +0 −0
  134. dis/auth/feedkey.dis +0 −0
  135. dis/auth/getpk.dis +0 −0
  136. dis/auth/keyfs.dis +0 −0
  137. dis/auth/keysrv.dis +0 −0
  138. dis/auth/logind.dis +0 −0
  139. dis/auth/mkauthinfo.dis +0 −0
  140. dis/auth/passwd.dis +0 −0
  141. dis/auth/proto/authquery.dis +0 −0
  142. dis/auth/proto/p9any.dis +0 −0
  143. dis/auth/proto/pass.dis +0 −0
  144. dis/auth/proto/rsa.dis +0 −0
  145. dis/auth/rpc.dis +0 −0
  146. dis/auth/rsagen.dis +0 −0
  147. dis/auth/secstore.dis +0 −0
  148. dis/auth/signer.dis +0 −0
  149. dis/auth/verify.dis +0 −0
  150. dis/auxi/cpuslave.dis +0 −0
  151. dis/auxi/digest.dis +0 −0
  152. dis/auxi/fpgaload.dis +0 −0
  153. dis/auxi/mangaload.dis +0 −0
  154. dis/auxi/pcmcia.dis +0 −0
  155. dis/auxi/rdbgsrv.dis +0 −0
  156. dis/auxi/rstyxd.dis +0 −0
  157. dis/avr/burn.dis +0 −0
  158. dis/basename.dis +0 −0
  159. dis/bind.dis +0 −0
  160. dis/broke.dis +0 −0
  161. dis/bytes.dis +0 −0
  162. dis/cal.dis +0 −0
  163. dis/calc.dis +0 −0
  164. dis/cat.dis +0 −0
  165. dis/cd.dis +0 −0
  166. dis/cddb.dis +0 −0
  167. dis/charon.dis +0 −0
  168. dis/charon/build.dis +0 −0
  169. dis/charon/chutils.dis +0 −0
  170. dis/charon/cookiesrv.dis +0 −0
  171. dis/charon/ctype.dis +0 −0
  172. dis/charon/date.dis +0 −0
  173. dis/charon/event.dis +0 −0
  174. dis/charon/file.dis +0 −0
  175. dis/charon/ftp.dis +0 −0
  176. dis/charon/gui.dis +0 −0
  177. dis/charon/http.dis +0 −0
  178. dis/charon/img.dis +0 −0
  179. dis/charon/jscript.dis +0 −0
  180. dis/charon/layout.dis +0 −0
  181. dis/charon/lex.dis +0 −0
  182. dis/charon/url.dis +0 −0
  183. dis/chgrp.dis +0 −0
  184. dis/chmod.dis +0 −0
  185. dis/cleanname.dis +0 −0
  186. dis/cmp.dis +0 −0
  187. dis/collab/clients/chat.dis +0 −0
  188. dis/collab/clients/poll.dis +0 −0
  189. dis/collab/clients/poller.dis +0 −0
  190. dis/collab/clients/whiteboard.dis +0 −0
  191. dis/collab/collabsrv.dis +0 −0
  192. dis/collab/connect.dis +0 −0
  193. dis/collab/lib/messages.dis +0 −0
  194. dis/collab/proxy.dis +0 −0
  195. dis/collab/servers/chatsrv.dis +0 −0
  196. dis/collab/servers/memfssrv.dis +0 −0
  197. dis/collab/servers/mpx.dis +0 −0
  198. dis/collab/servers/wbsrv.dis +0 −0
  199. dis/collab/srvmgr.dis +0 −0
  200. dis/comm.dis +0 −0
  201. dis/cook.dis +0 −0
  202. dis/cp.dis +0 −0
  203. dis/cprof.dis +0 −0
  204. dis/cpu.dis +0 −0
  205. dis/crypt.dis +0 −0
  206. dis/date.dis +0 −0
  207. dis/dbfs.dis +0 −0
  208. dis/dd.dis +0 −0
  209. dis/demo/camera/camera.dis +0 −0
  210. dis/demo/camera/tkinterface.dis +0 −0
  211. dis/demo/chat/chat.dis +0 −0
  212. dis/demo/chat/chatsrv.dis +0 −0
  213. dis/demo/cpupool/regpoll.dis +0 −0
  214. dis/demo/lego/clockface.dis +0 −0
  215. dis/demo/lego/firmdl.dis +0 −0
  216. dis/demo/lego/legolink.dis +0 −0
  217. dis/demo/lego/rcxsend.dis +0 −0
  218. dis/demo/lego/timers.dis +0 −0
  219. dis/demo/ns/ns.dis +0 −0
  220. dis/demo/odbc/odbcmnt.dis +0 −0
  221. dis/demo/whiteboard/wbsrv.dis +0 −0
  222. dis/demo/whiteboard/whiteboard.dis +0 −0
  223. dis/dial.dis +0 −0
  224. dis/diff.dis +0 −0
  225. dis/disdep.dis +0 −0
  226. dis/disdump.dis +0 −0
  227. dis/disk/calc.tab.dis +0 −0
  228. dis/disk/fdisk.dis +0 −0
  229. dis/disk/format.dis +0 −0
  230. dis/disk/ftl.dis +0 −0
  231. dis/disk/kfs.dis +0 −0
  232. dis/disk/kfscmd.dis +0 −0
  233. dis/disk/mbr.dis +0 −0
  234. dis/disk/mkext.dis +0 −0
  235. dis/disk/mkfs.dis +0 −0
  236. dis/disk/pedit.dis +0 −0
  237. dis/disk/prep.dis +0 −0
  238. dis/dossrv.dis +0 −0
  239. dis/du.dis +0 −0
  240. dis/ebook/cssfont.dis +0 −0
  241. dis/ebook/cssparser.dis +0 −0
  242. dis/ebook/ebook.dis +0 −0
  243. dis/ebook/mimeimage.dis +0 −0
  244. dis/ebook/oebpackage.dis +0 −0
  245. dis/ebook/reader.dis +0 −0
  246. dis/ebook/strmap.dis +0 −0
  247. dis/ebook/stylesheet.dis +0 −0
  248. dis/ebook/table.dis +0 −0
  249. dis/ebook/units.dis +0 −0
  250. dis/echo.dis +0 −0
  251. dis/ed.dis +0 −0
  252. dis/emuinit.dis +0 −0
  253. dis/env.dis +0 −0
  254. dis/export.dis +0 −0
  255. dis/fc.dis +0 −0
  256. dis/fcp.dis +0 −0
  257. dis/fmt.dis +0 −0
  258. dis/fone.dis +0 −0
  259. dis/fortune.dis +0 −0
  260. dis/freq.dis +0 −0
  261. dis/fs.dis +0 −0
  262. dis/fs/and.dis +0 −0
  263. dis/fs/bundle.dis +0 −0
  264. dis/fs/chstat.dis +0 −0
  265. dis/fs/compose.dis +0 −0
  266. dis/fs/depth.dis +0 −0
  267. dis/fs/entries.dis +0 −0
  268. dis/fs/eval.dis +0 −0
  269. dis/fs/exec.dis +0 −0
  270. dis/fs/filter.dis +0 −0
  271. dis/fs/ls.dis +0 −0
  272. dis/fs/match.dis +0 −0
  273. dis/fs/merge.dis +0 −0
  274. dis/fs/mergewrite.dis +0 −0
  275. dis/fs/mode.dis +0 −0
  276. dis/fs/not.dis +0 −0
  277. dis/fs/or.dis +0 −0
  278. dis/fs/path.dis +0 −0
  279. dis/fs/pipe.dis +0 −0
  280. dis/fs/print.dis +0 −0
  281. dis/fs/proto.dis +0 −0
  282. dis/fs/query.dis +0 −0
  283. dis/fs/run.dis +0 −0
  284. dis/fs/select.dis +0 −0
  285. dis/fs/setroot.dis +0 −0
  286. dis/fs/size.dis +0 −0
  287. dis/fs/unbundle.dis +0 −0
  288. dis/fs/void.dis +0 −0
  289. dis/fs/walk.dis +0 −0
  290. dis/fs/write.dis +0 −0
  291. dis/ftest.dis +0 −0
  292. dis/ftpfs.dis +0 −0
  293. dis/getauthinfo.dis +0 −0
  294. dis/gettar.dis +0 −0
  295. dis/grep.dis +0 −0
  296. dis/grid/blurdemo.dis +0 −0
  297. dis/grid/cpupool.dis +0 −0
  298. dis/grid/demo/block.dis +0 −0
  299. dis/grid/demo/blur.dis +0 −0
  300. dis/grid/find.dis +0 −0
  301. dis/grid/jpg2bit.dis +0 −0
  302. dis/grid/lib/announce.dis +0 −0
  303. dis/grid/lib/browser.dis +0 −0
  304. dis/grid/lib/fbrowse.dis +0 −0
  305. dis/grid/lib/srvbrowse.dis +0 −0
  306. dis/grid/query.dis +0 −0
  307. dis/grid/readjpg.dis +0 −0
  308. dis/grid/register.dis +0 −0
  309. dis/grid/reglisten.dis +0 −0
  310. dis/grid/regstyxlisten.dis +0 −0
  311. dis/grid/remotelogon.dis +0 −0
  312. dis/grid/usercreatesrv.dis +0 −0
  313. dis/gunzip.dis +0 −0
  314. dis/gzip.dis +0 −0
  315. dis/idea.dis +0 −0
  316. dis/import.dis +0 −0
  317. dis/install/applylog.dis +0 −0
  318. dis/install/arch.dis +0 −0
  319. dis/install/archfs.dis +0 −0
  320. dis/install/ckproto.dis +0 −0
  321. dis/install/create.dis +0 −0
  322. dis/install/eproto.dis +0 −0
  323. dis/install/info.dis +0 −0
  324. dis/install/inst.dis +0 −0
  325. dis/install/install.dis +0 −0
  326. dis/install/log.dis +0 −0
  327. dis/install/logs.dis +0 −0
  328. dis/install/mergelog.dis +0 −0
  329. dis/install/mkproto.dis +0 −0
  330. dis/install/proto.dis +0 −0
  331. dis/install/proto2list.dis +0 −0
  332. dis/install/updatelog.dis +0 −0
  333. dis/install/wdiff.dis +0 −0
  334. dis/install/wfind.dis +0 −0
  335. dis/install/wrap.dis +0 −0
  336. dis/install/wrap2list.dis +0 −0
  337. dis/iostats.dis +0 −0
  338. dis/ip/bootpd.dis +0 −0
  339. dis/ip/dhcp.dis +0 −0
  340. dis/ip/ping.dis +0 −0
  341. dis/ip/ppp/modem.dis +0 −0
  342. dis/ip/ppp/pppclient.dis +0 −0
  343. dis/ip/ppp/pppdial.dis +0 −0
  344. dis/ip/ppp/pppgui.dis +0 −0
  345. dis/ip/ppp/ppptest.dis +0 −0
  346. dis/ip/ppp/script.dis +0 −0
  347. dis/ip/rip.dis +0 −0
  348. dis/ip/sntp.dis +0 −0
  349. dis/ip/tftpd.dis +0 −0
  350. dis/ip/virgild.dis +0 −0
  351. dis/itest.dis +0 −0
  352. dis/itreplay.dis +0 −0
  353. dis/kill.dis +0 −0
  354. dis/lego/clock.dis +0 −0
  355. dis/lego/clockface.dis +0 −0
  356. dis/lego/firmdl.dis +0 −0
  357. dis/lego/link.dis +0 −0
  358. dis/lego/rcxsend.dis +0 −0
  359. dis/lego/send.dis +0 −0
  360. dis/lego/timers.dis +0 −0
  361. dis/lib/arg.dis +0 −0
  362. dis/lib/asn1.dis +0 −0
  363. dis/lib/attrdb.dis +0 −0
  364. dis/lib/attrhash.dis +0 −0
  365. dis/lib/auth.dis +0 −0
  366. dis/lib/auth9.dis +0 −0
  367. dis/lib/bloomfilter.dis +0 −0
  368. dis/lib/bufio.dis +0 −0
  369. dis/lib/cfg.dis +0 −0
  370. dis/lib/cfgfile.dis +0 −0
  371. dis/lib/chanfill.dis +0 −0
  372. dis/lib/complete.dis +0 −0
  373. dis/lib/convcs/8bit_stob.dis +0 −0
  374. dis/lib/convcs/big5_btos.dis +0 −0
  375. dis/lib/convcs/big5_stob.dis +0 −0
  376. dis/lib/convcs/convcs.dis +0 −0
  377. dis/lib/convcs/cp932_btos.dis +0 −0
  378. dis/lib/convcs/cp_btos.dis +0 −0
  379. dis/lib/convcs/cp_stob.dis +0 −0
  380. dis/lib/convcs/euc-jp_btos.dis +0 −0
  381. dis/lib/convcs/gb2312_btos.dis +0 −0
  382. dis/lib/convcs/utf16_btos.dis +0 −0
  383. dis/lib/convcs/utf16_stob.dis +0 −0
  384. dis/lib/convcs/utf8_btos.dis +0 −0
  385. dis/lib/convcs/utf8_stob.dis +0 −0
  386. dis/lib/crc.dis +0 −0
  387. dis/lib/crypt/pkcs.dis +0 −0
  388. dis/lib/crypt/ssl3.dis +0 −0
  389. dis/lib/crypt/sslsession.dis +0 −0
  390. dis/lib/crypt/x509.dis +0 −0
  391. dis/lib/csv.dis +0 −0
  392. dis/lib/daytime.dis +0 −0
  393. dis/lib/db.dis +0 −0
  394. dis/lib/dbm.dis +0 −0
  395. dis/lib/dbsrv.dis +0 −0
  396. dis/lib/debug.dis +0 −0
  397. dis/lib/deflate.dis +0 −0
  398. dis/lib/devpointer.dis +0 −0
  399. dis/lib/dhcpclient.dis +0 −0
  400. dis/lib/dial.dis +0 −0
  401. dis/lib/dialog.dis +0 −0
  402. dis/lib/dict.dis +0 −0
  403. dis/lib/dis.dis +0 −0
  404. dis/lib/diskblocks.dis +0 −0
  405. dis/lib/disks.dis +0 −0
  406. dis/lib/dividers.dis +0 −0
  407. dis/lib/drawmux.dis +0 −0
  408. dis/lib/ecmascript.dis +0 −0
  409. dis/lib/encoding/base16.dis +0 −0
  410. dis/lib/encoding/base32.dis +0 −0
  411. dis/lib/encoding/base32a.dis +0 −0
  412. dis/lib/encoding/base64.dis +0 −0
  413. dis/lib/env.dis +0 −0
  414. dis/lib/ether.dis +0 −0
  415. dis/lib/exception.dis +0 −0
  416. dis/lib/factotum.dis +0 −0
  417. dis/lib/filepat.dis +0 −0
  418. dis/lib/format.dis +0 −0
  419. dis/lib/fsfilter.dis +0 −0
  420. dis/lib/fslib.dis +0 −0
  421. dis/lib/fsproto.dis +0 −0
  422. dis/lib/ftree/cptree.dis +0 −0
  423. dis/lib/ftree/ftree.dis +0 −0
  424. dis/lib/ftree/items.dis +0 −0
  425. dis/lib/gamer.dis +0 −0
  426. dis/lib/hash.dis +0 −0
  427. dis/lib/html.dis +0 −0
  428. dis/lib/ida/ida.dis +0 −0
  429. dis/lib/imageremap.dis +0 −0
  430. dis/lib/inflate.dis +0 −0
  431. dis/lib/ip.dis +0 −0
  432. dis/lib/ipattr.dis +0 −0
  433. dis/lib/ir.dis +0 −0
  434. dis/lib/irsage.dis +0 −0
  435. dis/lib/irsim.dis +0 −0
  436. dis/lib/itslib.dis +0 −0
  437. dis/lib/json.dis +0 −0
  438. dis/lib/keyset.dis +0 −0
  439. dis/lib/libc.dis +0 −0
  440. dis/lib/libc0.dis +0 −0
  441. dis/lib/lists.dis +0 −0
  442. dis/lib/lock.dis +0 −0
  443. dis/lib/login.dis +0 −0
  444. dis/lib/man.dis +0 −0
  445. dis/lib/mash/builtins.dis +0 −0
  446. dis/lib/mash/history.dis +0 −0
  447. dis/lib/mash/make.dis +0 −0
  448. dis/lib/mashlib.dis +0 −0
  449. dis/lib/mashparse.dis +0 −0
  450. dis/lib/memfs.dis +0 −0
  451. dis/lib/mpeg.dis +0 −0
  452. dis/lib/msgio.dis +0 −0
  453. dis/lib/names.dis +0 −0
  454. dis/lib/nametree.dis +0 −0
  455. dis/lib/newns.dis +0 −0
  456. dis/lib/ninep.dis +0 −0
  457. dis/lib/oldauth.dis +0 −0
  458. dis/lib/palm.dis +0 −0
  459. dis/lib/palmdb.dis +0 −0
  460. dis/lib/palmfile.dis +0 −0
  461. dis/lib/parseman.dis +0 −0
  462. dis/lib/plumbing.dis +0 −0
  463. dis/lib/plumbmsg.dis +0 −0
  464. dis/lib/pop3.dis +0 −0
  465. dis/lib/popup.dis +0 −0
  466. dis/lib/powerman.dis +0 −0
  467. dis/lib/print/hp_driver.dis +0 −0
  468. dis/lib/print/print.dis +0 −0
  469. dis/lib/print/scaler.dis +0 −0
  470. dis/lib/profile.dis +0 −0
  471. dis/lib/pslib.dis +0 −0
  472. dis/lib/quicktime.dis +0 −0
  473. dis/lib/rand.dis +0 −0
  474. dis/lib/random.dis +0 −0
  475. dis/lib/readdir.dis +0 −0
  476. dis/lib/readgif.dis +0 −0
  477. dis/lib/readjpg.dis +0 −0
  478. dis/lib/readpicfile.dis +0 −0
  479. dis/lib/readpng.dis +0 −0
  480. dis/lib/readxbitmap.dis +0 −0
  481. dis/lib/regex.dis +0 −0
  482. dis/lib/regexutils.dis +0 −0
  483. dis/lib/registries.dis +0 −0
  484. dis/lib/rfc822.dis +0 −0
  485. dis/lib/riff.dis +0 −0
  486. dis/lib/scoretable.dis +0 −0
  487. dis/lib/scsiio.dis +0 −0
  488. dis/lib/secstore.dis +0 −0
  489. dis/lib/selectfile.dis +0 −0
  490. dis/lib/sets.dis +0 −0
  491. dis/lib/sets32.dis +0 −0
  492. dis/lib/sexprs.dis +0 −0
  493. dis/lib/slip.dis +0 −0
  494. dis/lib/smtp.dis +0 −0
  495. dis/lib/sort.dis +0 −0
  496. dis/lib/spki/spki.dis +0 −0
  497. dis/lib/spki/verifier.dis +0 −0
  498. dis/lib/ssl.dis +0 −0
  499. dis/lib/string.dis +0 −0
  500. dis/lib/strinttab.dis +0 −0
  501. dis/lib/strokes/buildstrokes.dis +0 −0
  502. dis/lib/strokes/readstrokes.dis +0 −0
  503. dis/lib/strokes/strokes.dis +0 −0
  504. dis/lib/strokes/writestrokes.dis +0 −0
  505. dis/lib/styx.dis +0 −0
  506. dis/lib/styxconv/new2old.dis +0 −0
  507. dis/lib/styxconv/old2new.dis +0 −0
  508. dis/lib/styxconv/ostyx.dis +0 −0
  509. dis/lib/styxflush.dis +0 −0
  510. dis/lib/styxlib.dis +0 −0
  511. dis/lib/styxpersist.dis +0 −0
  512. dis/lib/styxservers.dis +0 −0
  513. dis/lib/tables.dis +0 −0
  514. dis/lib/tabs.dis +0 −0
  515. dis/lib/tcl_calc.dis +0 −0
  516. dis/lib/tcl_core.dis +0 −0
  517. dis/lib/tcl_inthash.dis +0 −0
  518. dis/lib/tcl_io.dis +0 −0
  519. dis/lib/tcl_list.dis +0 −0
  520. dis/lib/tcl_modhash.dis +0 −0
  521. dis/lib/tcl_stack.dis +0 −0
  522. dis/lib/tcl_strhash.dis +0 −0
  523. dis/lib/tcl_string.dis +0 −0
  524. dis/lib/tcl_symhash.dis +0 −0
  525. dis/lib/tcl_utils.dis +0 −0
  526. dis/lib/tftp.dis +0 −0
  527. dis/lib/timers.dis +0 −0
  528. dis/lib/titlebar.dis +0 −0
  529. dis/lib/tkclient.dis +0 −0
  530. dis/lib/translate.dis +0 −0
  531. dis/lib/ubfa.dis +0 −0
  532. dis/lib/url.dis +0 −0
  533. dis/lib/usb/usb.dis +0 −0
  534. dis/lib/usb/usbmass.dis +0 −0
  535. dis/lib/usb/usbmct.dis +0 −0
  536. dis/lib/usb/usbmouse.dis +0 −0
  537. dis/lib/vac.dis +0 −0
  538. dis/lib/venti.dis +0 −0
  539. dis/lib/virgil.dis +0 −0
  540. dis/lib/volume.dis +0 −0
  541. dis/lib/w3c/css.dis +0 −0
  542. dis/lib/w3c/uris.dis +0 −0
  543. dis/lib/w3c/xpointers.dis +0 −0
  544. dis/lib/wait.dis +0 −0
  545. dis/lib/watchvars.dis +0 −0
  546. dis/lib/winplace.dis +0 −0
  547. dis/lib/wmclient.dis +0 −0
  548. dis/lib/wmlib.dis +0 −0
  549. dis/lib/wmsrv.dis +0 −0
  550. dis/lib/workdir.dis +0 −0
  551. dis/lib/writegif.dis +0 −0
  552. dis/lib/xml.dis +0 −0
  553. dis/limbo.dis +0 −0
  554. dis/listen.dis +0 −0
  555. dis/lockfs.dis +0 −0
  556. dis/logfile.dis +0 −0
  557. dis/look.dis +0 −0
  558. dis/ls.dis +0 −0
  559. dis/lstar.dis +0 −0
  560. dis/m4.dis +0 −0
  561. dis/man2html.dis +0 −0
  562. dis/man2txt.dis +0 −0
  563. dis/mash.dis +0 −0
  564. dis/math/ack.dis +0 −0
  565. dis/math/crackerbarrel.dis +0 −0
  566. dis/math/factor.dis +0 −0
  567. dis/math/ffts.dis +0 −0
  568. dis/math/fibonacci.dis +0 −0
  569. dis/math/fit.dis +0 −0
  570. dis/math/genprimes.dis +0 −0
  571. dis/math/geodesy.dis +0 −0
  572. dis/math/gr.dis +0 −0
  573. dis/math/graph0.dis +0 −0
  574. dis/math/hist0.dis +0 −0
  575. dis/math/linalg.dis +0 −0
  576. dis/math/linbench.dis +0 −0
  577. dis/math/mersenne.dis +0 −0
  578. dis/math/parts.dis +0 −0
  579. dis/math/perms.dis +0 −0
  580. dis/math/pi.dis +0 −0
  581. dis/math/polyfill.dis +0 −0
  582. dis/math/polyhedra.dis +0 −0
  583. dis/math/powers.dis +0 −0
  584. dis/math/primes.dis +0 −0
  585. dis/math/sieve.dis +0 −0
  586. dis/mc.dis +0 −0
  587. dis/md5sum.dis +0 −0
  588. dis/mdb.dis +0 −0
  589. dis/memfs.dis +0 −0
  590. dis/metamorph.dis +0 −0
  591. dis/mk.dis +0 −0
  592. dis/mkdir.dis +0 −0
  593. dis/mntgen.dis +0 −0
  594. dis/mount.dis +0 −0
  595. dis/mouse.dis +0 −0
  596. dis/mpc/qconfig.dis +0 −0
  597. dis/mpc/qflash.dis +0 −0
  598. dis/mpeg/decode.dis +0 −0
  599. dis/mpeg/decode4.dis +0 −0
  600. dis/mpeg/fixidct.dis +0 −0
  601. dis/mpeg/fltidct.dis +0 −0
  602. dis/mpeg/makergbvmap.dis +0 −0
  603. dis/mpeg/mpeg.dis +0 −0
  604. dis/mpeg/mpegio.dis +0 −0
  605. dis/mpeg/refidct.dis +0 −0
  606. dis/mpeg/remap.dis +0 −0
  607. dis/mpeg/remap1.dis +0 −0
  608. dis/mpeg/remap2.dis +0 −0
  609. dis/mpeg/remap24.dis +0 −0
  610. dis/mpeg/remap4.dis +0 −0
  611. dis/mpeg/remap8.dis +0 −0
  612. dis/mpeg/scidct.dis +0 −0
  613. dis/mpeg/vlc.dis +0 −0
  614. dis/mprof.dis +0 −0
  615. dis/mv.dis +0 −0
  616. dis/ndb/cs.dis +0 −0
  617. dis/ndb/csquery.dis +0 −0
  618. dis/ndb/dns.dis +0 −0
  619. dis/ndb/dnsquery.dis +0 −0
  620. dis/ndb/mkhash.dis +0 −0
  621. dis/ndb/query.dis +0 −0
  622. dis/ndb/registry.dis +0 −0
  623. dis/ndb/regquery.dis +0 −0
  624. dis/netkey.dis +0 −0
  625. dis/netstat.dis +0 −0
  626. dis/newer.dis +0 −0
  627. dis/ns.dis +0 −0
  628. dis/nsbuild.dis +0 −0
  629. dis/os.dis +0 −0
  630. dis/p.dis +0 −0
  631. dis/pause.dis +0 −0
  632. dis/plumb.dis +0 −0
  633. dis/plumber.dis +0 −0
  634. dis/prof.dis +0 −0
  635. dis/ps.dis +0 −0
  636. dis/puttar.dis +0 −0
  637. dis/pwd.dis +0 −0
  638. dis/ramfile.dis +0 −0
  639. dis/randpass.dis +0 −0
  640. dis/raw2iaf.dis +0 −0
  641. dis/rawdbfs.dis +0 −0
  642. dis/rcmd.dis +0 −0
  643. dis/rdp.dis +0 −0
  644. dis/read.dis +0 −0
  645. dis/rioimport.dis +0 −0
  646. dis/rm.dis +0 −0
  647. dis/runas.dis +0 −0
  648. dis/sed.dis +0 −0
  649. dis/sendmail.dis +0 −0
  650. dis/sh.dis +0 −0
  651. dis/sh/arg.dis +0 −0
  652. dis/sh/csv.dis +0 −0
  653. dis/sh/echo.dis +0 −0
  654. dis/sh/expr.dis +0 −0
  655. dis/sh/file2chan.dis +0 −0
  656. dis/sh/mload.dis +0 −0
  657. dis/sh/mpexpr.dis +0 −0
  658. dis/sh/regex.dis +0 −0
  659. dis/sh/sexprs.dis +0 −0
  660. dis/sh/sh.dis +0 −0
  661. dis/sh/std.dis +0 −0
  662. dis/sh/string.dis +0 −0
  663. dis/sh/test.dis +0 −0
  664. dis/sh/tk.dis +0 −0
  665. dis/sha1sum.dis +0 −0
  666. dis/sleep.dis +0 −0
  667. dis/sort.dis +0 −0
  668. dis/spki/verify.dis +0 −0
  669. dis/spree/archives.dis +0 −0
  670. dis/spree/clients/cards.dis +0 −0
  671. dis/spree/clients/gather.dis +0 −0
  672. dis/spree/clients/lobby.dis +0 −0
  673. dis/spree/clients/othello.dis +0 −0
  674. dis/spree/engines/afghan.dis +0 −0
  675. dis/spree/engines/bounce.dis +0 −0
  676. dis/spree/engines/canfield.dis +0 −0
  677. dis/spree/engines/freecell.dis +0 −0
  678. dis/spree/engines/gather.dis +0 −0
  679. dis/spree/engines/lobby.dis +0 −0
  680. dis/spree/engines/othello.dis +0 −0
  681. dis/spree/engines/racingdemon.dis +0 −0
  682. dis/spree/engines/spider.dis +0 −0
  683. dis/spree/engines/spit.dis +0 −0
  684. dis/spree/engines/whist.dis +0 −0
  685. dis/spree/join.dis +0 −0
  686. dis/spree/lib/allow.dis +0 −0
  687. dis/spree/lib/cardlib.dis +0 −0
  688. dis/spree/lib/commandline.dis +0 −0
  689. dis/spree/lib/objstore.dis +0 −0
  690. dis/spree/lib/tricks.dis +0 −0
  691. dis/spree/spree.dis +0 −0
  692. dis/src.dis +0 −0
  693. dis/stack.dis +0 −0
  694. dis/stackv.dis +0 −0
  695. dis/stream.dis +0 −0
  696. dis/strings.dis +0 −0
  697. dis/styxchat.dis +0 −0
  698. dis/styxlisten.dis +0 −0
  699. dis/styxmon.dis +0 −0
  700. dis/sum.dis +0 −0
  701. dis/svc/httpd/alarms.dis +0 −0
  702. dis/svc/httpd/cache.dis +0 −0
  703. dis/svc/httpd/cgiparse.dis +0 −0
  704. dis/svc/httpd/contents.dis +0 −0
  705. dis/svc/httpd/date.dis +0 −0
  706. dis/svc/httpd/echo.dis +0 −0
  707. dis/svc/httpd/httpd.dis +0 −0
  708. dis/svc/httpd/imagemap.dis +0 −0
  709. dis/svc/httpd/parser.dis +0 −0
  710. dis/svc/httpd/redirect.dis +0 −0
  711. dis/svc/httpd/stats.dis +0 −0
  712. dis/svc/webget/date.dis +0 −0
  713. dis/svc/webget/file.dis +0 −0
  714. dis/svc/webget/ftp.dis +0 −0
  715. dis/svc/webget/http.dis +0 −0
  716. dis/svc/webget/image2enc.dis +0 −0
  717. dis/svc/webget/message.dis +0 −0
  718. dis/svc/webget/webget.dis +0 −0
  719. dis/svc/webget/wgutils.dis +0 −0
  720. dis/tail.dis +0 −0
  721. dis/tarfs.dis +0 −0
  722. dis/tclsh.dis +0 −0
  723. dis/tcs.dis +0 −0
  724. dis/tee.dis +0 −0
  725. dis/telnet.dis +0 −0
  726. dis/test.dis +0 −0
  727. dis/time.dis +0 −0
  728. dis/timestamp.dis +0 −0
  729. dis/tiny/rm.dis +0 −0
  730. dis/tiny/sh.dis +0 −0
  731. dis/tkcmd.dis +0 −0
  732. dis/tokenize.dis +0 −0
  733. dis/touch.dis +0 −0
  734. dis/touchcal.dis +0 −0
  735. dis/tr.dis +0 −0
  736. dis/trfs.dis +0 −0
  737. dis/tsort.dis +0 −0
  738. dis/unicode.dis +0 −0
  739. dis/uniq.dis +0 −0
  740. dis/units.dis +0 −0
  741. dis/unmount.dis +0 −0
  742. dis/usb/usbd.dis +0 −0
  743. dis/uudecode.dis +0 −0
  744. dis/uuencode.dis +0 −0
  745. dis/vacfs.dis +0 −0
  746. dis/vacget.dis +0 −0
  747. dis/vacput.dis +0 −0
  748. dis/wav2iaf.dis +0 −0
  749. dis/wc.dis +0 −0
  750. dis/webgrab.dis +0 −0
  751. dis/wish.dis +0 −0
  752. dis/wm/about.dis +0 −0
  753. dis/wm/avi.dis +0 −0
  754. dis/wm/bounce.dis +0 −0
  755. dis/wm/brutus.dis +0 −0
  756. dis/wm/brutus/excerpt.dis +0 −0
  757. dis/wm/brutus/image.dis +0 −0
  758. dis/wm/brutus/mod.dis +0 −0
  759. dis/wm/brutus/table.dis +0 −0
  760. dis/wm/c4.dis +0 −0
  761. dis/wm/clock.dis +0 −0
  762. dis/wm/coffee.dis +0 −0
  763. dis/wm/collide.dis +0 −0
  764. dis/wm/colors.dis +0 −0
  765. dis/wm/cprof.dis +0 −0
  766. dis/wm/date.dis +0 −0
  767. dis/wm/deb.dis +0 −0
  768. dis/wm/debdata.dis +0 −0
  769. dis/wm/debsrc.dis +0 −0
  770. dis/wm/dir.dis +0 −0
  771. dis/wm/dmview.dis +0 −0
  772. dis/wm/dmwm.dis +0 −0
  773. dis/wm/edit.dis +0 −0
  774. dis/wm/filename.dis +0 −0
  775. dis/wm/ftree.dis +0 −0
  776. dis/wm/getauthinfo.dis +0 −0
  777. dis/wm/logon.dis +0 −0
  778. dis/wm/logwindow.dis +0 −0
  779. dis/wm/man.dis +0 −0
  780. dis/wm/mand.dis +0 −0
  781. dis/wm/mash.dis +0 −0
  782. dis/wm/memory.dis +0 −0
  783. dis/wm/mprof.dis +0 −0
  784. dis/wm/pen.dis +0 −0
  785. dis/wm/polyhedra.dis +0 −0
  786. dis/wm/prof.dis +0 −0
  787. dis/wm/readmail.dis +0 −0
  788. dis/wm/remotelogon.dis +0 −0
  789. dis/wm/reversi.dis +0 −0
  790. dis/wm/rmtdir.dis +0 −0
  791. dis/wm/rt.dis +0 −0
  792. dis/wm/sendmail.dis +0 −0
  793. dis/wm/sh.dis +0 −0
  794. dis/wm/smenu.dis +0 −0
  795. dis/wm/snake.dis +0 −0
  796. dis/wm/stopwatch.dis +0 −0
  797. dis/wm/sweeper.dis +0 −0
  798. dis/wm/task.dis +0 −0
  799. dis/wm/telnet.dis +0 −0
  800. dis/wm/tetris.dis +0 −0
  801. dis/wm/unibrowse.dis +0 −0
  802. dis/wm/view.dis +0 −0
  803. dis/wm/vt.dis +0 −0
  804. dis/wm/wish.dis +0 −0
  805. dis/wm/wmplay.dis +0 −0
  806. dis/wmexport.dis +0 −0
  807. dis/wmimport.dis +0 −0
  808. dis/xargs.dis +0 −0
  809. dis/xd.dis +0 −0
  810. dis/yacc.dis +0 −0
  811. dis/zeros.dis +0 −0
  812. emu/Android/audio-audioflinger.c +0 −23
  813. emu/Android/audit.c +0 −142
  814. emu/Android/audit.h +0 −11
  815. emu/Android/devphoneWORKING.c +0 −1241
  816. emu/Android/emu-g.c +1 −0
  817. utils/mk/mk +0 −0
Android/arm/bin/0a+0−0

Binary file not shown.

Android/arm/bin/0c+0−0

Binary file not shown.

Android/arm/bin/0l+0−0

Binary file not shown.

Android/arm/bin/1a+0−0

Binary file not shown.

Android/arm/bin/1c+0−0

Binary file not shown.

Android/arm/bin/1l+0−0

Binary file not shown.

Android/arm/bin/2a+0−0

Binary file not shown.

Android/arm/bin/2c+0−0

Binary file not shown.

Android/arm/bin/2l+0−0

Binary file not shown.

Android/arm/bin/5a+0−0

Binary file not shown.

Android/arm/bin/5c+0−0

Binary file not shown.

Android/arm/bin/5coff+0−0

Binary file not shown.

Android/arm/bin/5cv+0−0

Binary file not shown.

Android/arm/bin/5l+0−0

Binary file not shown.

Android/arm/bin/8a+0−0

Binary file not shown.

Android/arm/bin/8c+0−0

Binary file not shown.

Android/arm/bin/8l+0−0

Binary file not shown.

Android/arm/bin/acid+0−0

Binary file not shown.

Android/arm/bin/asm+0−0

Binary file not shown.

Android/arm/bin/c2l+0−0

Binary file not shown.

Android/arm/bin/data2c+0−0

Binary file not shown.

Android/arm/bin/data2s+0−0

Binary file not shown.

Android/arm/bin/emu-g+0−0

Binary file not shown.

Android/arm/bin/ftl+0−0

Binary file not shown.

Android/arm/bin/iar+0−0

Binary file not shown.

Android/arm/bin/idea+0−0

Binary file not shown.

Android/arm/bin/inm+0−0

Binary file not shown.

Android/arm/bin/iyacc+0−0

Binary file not shown.

Android/arm/bin/ka+0−0

Binary file not shown.

Android/arm/bin/kc+0−0

Binary file not shown.

Android/arm/bin/kl+0−0

Binary file not shown.

Android/arm/bin/kprof+0−0

Binary file not shown.

Android/arm/bin/ksize+0−0

Binary file not shown.

Android/arm/bin/kstrip+0−0

Binary file not shown.

Android/arm/bin/limbo+0−0

Binary file not shown.

Android/arm/bin/md5sum+0−0

Binary file not shown.

Android/arm/bin/mk+0−0

Binary file not shown.

Android/arm/bin/mk.save+0−0

Binary file not shown.

Android/arm/bin/mkext+0−0

Binary file not shown.

Android/arm/bin/mkppcimage+0−0

Binary file not shown.

Android/arm/bin/ms2+0−0

Binary file not shown.

Android/arm/bin/ndate+0−0

Binary file not shown.

Android/arm/bin/qa+0−0

Binary file not shown.

Android/arm/bin/qc+0−0

Binary file not shown.

Android/arm/bin/ql+0−0

Binary file not shown.

Android/arm/bin/sqz+0−0

Binary file not shown.

Android/arm/bin/srclist+0−0

Binary file not shown.

Android/arm/bin/styxtest+0−0

Binary file not shown.

Android/arm/bin/tc+0−0

Binary file not shown.

Android/arm/bin/va+0−0

Binary file not shown.

Android/arm/bin/vc+0−0

Binary file not shown.

Android/arm/bin/vl+0−0

Binary file not shown.

Android/arm/lib/lib9.a+0−0

Binary file not shown.

Android/arm/lib/libbio.a+0−0

Binary file not shown.

Android/arm/lib/libcc.a+0−0

Binary file not shown.

Android/arm/lib/libdraw.a+0−0

Binary file not shown.

Android/arm/lib/libdynld.a+0−0

Binary file not shown.

Android/arm/lib/libfreetype.a+0−0

Binary file not shown.

Android/arm/lib/libinterp.a+0−0

Binary file not shown.

Android/arm/lib/libkeyring.a+0−0

Binary file not shown.

Android/arm/lib/libmach.a+0−0

Binary file not shown.

Android/arm/lib/libmath.a+0−0

Binary file not shown.

Android/arm/lib/libmemdraw.a+0−0

Binary file not shown.

Android/arm/lib/libmemlayer.a+0−0

Binary file not shown.

Android/arm/lib/libmp.a+0−0

Binary file not shown.

Android/arm/lib/libprefab.a+0−0

Binary file not shown.

Android/arm/lib/libregexp.a+0−0

Binary file not shown.

Android/arm/lib/libsec.a+0−0

Binary file not shown.

Android/arm/lib/libstyx.a+0−0

Binary file not shown.

Android/arm/lib/libtk.a+0−0

Binary file not shown.

acme/acid/Acid.dis+0−0

Binary file not shown.

acme/acid/Acid0.dis+0−0

Binary file not shown.

acme/dis/adiff.dis+0−0

Binary file not shown.

acme/dis/agrep.dis+0−0

Binary file not shown.

acme/dis/awd.dis+0−0

Binary file not shown.

acme/dis/cd.dis+0−0

Binary file not shown.

acme/dis/new.dis+0−0

Binary file not shown.

acme/dis/spout.dis+0−0

Binary file not shown.

acme/dis/win.dis+0−0

Binary file not shown.

acme/dis/winm.dis+0−0

Binary file not shown.

acme/edit/a.dis+0−0

Binary file not shown.

acme/edit/c.dis+0−0

Binary file not shown.

acme/edit/d.dis+0−0

Binary file not shown.

acme/edit/e.dis+0−0

Binary file not shown.

acme/edit/g.dis+0−0

Binary file not shown.

acme/edit/i.dis+0−0

Binary file not shown.

acme/edit/p.dis+0−0

Binary file not shown.

acme/edit/pipe.dis+0−0

Binary file not shown.

acme/edit/x.dis+0−0

Binary file not shown.

acme/mail/Mail.dis+0−0

Binary file not shown.

acme/mail/Mailpop3.dis+0−0

Binary file not shown.

acme/mail/mkbox.dis+0−0

Binary file not shown.

dis/9660srv.dis+0−0

Binary file not shown.

dis/9export.dis+0−0

Binary file not shown.

dis/9srvfs.dis+0−0

Binary file not shown.

dis/9win.dis+0−0

Binary file not shown.

dis/B.dis+0−0

Binary file not shown.

dis/acme.dis+0−0

Binary file not shown.

dis/acme/acme.dis+0−0

Binary file not shown.

dis/acme/buff.dis+0−0

Binary file not shown.

dis/acme/col.dis+0−0

Binary file not shown.

dis/acme/dat.dis+0−0

Binary file not shown.

dis/acme/disk.dis+0−0

Binary file not shown.

dis/acme/ecmd.dis+0−0

Binary file not shown.

dis/acme/edit.dis+0−0

Binary file not shown.

dis/acme/elog.dis+0−0

Binary file not shown.

dis/acme/exec.dis+0−0

Binary file not shown.

dis/acme/file.dis+0−0

Binary file not shown.

dis/acme/frame.dis+0−0

Binary file not shown.

dis/acme/fsys.dis+0−0

Binary file not shown.

dis/acme/graph.dis+0−0

Binary file not shown.

dis/acme/gui.dis+0−0

Binary file not shown.

dis/acme/look.dis+0−0

Binary file not shown.

dis/acme/regx.dis+0−0

Binary file not shown.

dis/acme/row.dis+0−0

Binary file not shown.

dis/acme/scrl.dis+0−0

Binary file not shown.

dis/acme/styxaux.dis+0−0

Binary file not shown.

dis/acme/text.dis+0−0

Binary file not shown.

dis/acme/time.dis+0−0

Binary file not shown.

dis/acme/util.dis+0−0

Binary file not shown.

dis/acme/wind.dis+0−0

Binary file not shown.

dis/acme/xfid.dis+0−0

Binary file not shown.

dis/ar.dis+0−0

Binary file not shown.

dis/archfs.dis+0−0

Binary file not shown.

dis/auhdr.dis+0−0

Binary file not shown.

dis/auplay.dis+0−0

Binary file not shown.

dis/auth/aescbc.dis+0−0

Binary file not shown.

dis/auth/ai2key.dis+0−0

Binary file not shown.

dis/auth/changelogin.dis+0−0

Binary file not shown.

dis/auth/convpasswd.dis+0−0

Binary file not shown.

dis/auth/countersigner.dis+0−0

Binary file not shown.

dis/auth/createsignerkey.dis+0−0

Binary file not shown.

dis/auth/factotum.dis+0−0

Binary file not shown.

dis/auth/feedkey.dis+0−0

Binary file not shown.

dis/auth/getpk.dis+0−0

Binary file not shown.

dis/auth/keyfs.dis+0−0

Binary file not shown.

dis/auth/keysrv.dis+0−0

Binary file not shown.

dis/auth/logind.dis+0−0

Binary file not shown.

dis/auth/mkauthinfo.dis+0−0

Binary file not shown.

dis/auth/passwd.dis+0−0

Binary file not shown.

dis/auth/proto/authquery.dis+0−0

Binary file not shown.

dis/auth/proto/p9any.dis+0−0

Binary file not shown.

dis/auth/proto/pass.dis+0−0

Binary file not shown.

dis/auth/proto/rsa.dis+0−0

Binary file not shown.

dis/auth/rpc.dis+0−0

Binary file not shown.

dis/auth/rsagen.dis+0−0

Binary file not shown.

dis/auth/secstore.dis+0−0

Binary file not shown.

dis/auth/signer.dis+0−0

Binary file not shown.

dis/auth/verify.dis+0−0

Binary file not shown.

dis/auxi/cpuslave.dis+0−0

Binary file not shown.

dis/auxi/digest.dis+0−0

Binary file not shown.

dis/auxi/fpgaload.dis+0−0

Binary file not shown.

dis/auxi/mangaload.dis+0−0

Binary file not shown.

dis/auxi/pcmcia.dis+0−0

Binary file not shown.

dis/auxi/rdbgsrv.dis+0−0

Binary file not shown.

dis/auxi/rstyxd.dis+0−0

Binary file not shown.

dis/avr/burn.dis+0−0

Binary file not shown.

dis/basename.dis+0−0

Binary file not shown.

dis/bind.dis+0−0

Binary file not shown.

dis/broke.dis+0−0

Binary file not shown.

dis/bytes.dis+0−0

Binary file not shown.

dis/cal.dis+0−0

Binary file not shown.

dis/calc.dis+0−0

Binary file not shown.

dis/cat.dis+0−0

Binary file not shown.

dis/cd.dis+0−0

Binary file not shown.

dis/cddb.dis+0−0

Binary file not shown.

dis/charon.dis+0−0

Binary file not shown.

dis/charon/build.dis+0−0

Binary file not shown.

dis/charon/chutils.dis+0−0

Binary file not shown.

dis/charon/cookiesrv.dis+0−0

Binary file not shown.

dis/charon/ctype.dis+0−0

Binary file not shown.

dis/charon/date.dis+0−0

Binary file not shown.

dis/charon/event.dis+0−0

Binary file not shown.

dis/charon/file.dis+0−0

Binary file not shown.

dis/charon/ftp.dis+0−0

Binary file not shown.

dis/charon/gui.dis+0−0

Binary file not shown.

dis/charon/http.dis+0−0

Binary file not shown.

dis/charon/img.dis+0−0

Binary file not shown.

dis/charon/jscript.dis+0−0

Binary file not shown.

dis/charon/layout.dis+0−0

Binary file not shown.

dis/charon/lex.dis+0−0

Binary file not shown.

dis/charon/url.dis+0−0

Binary file not shown.

dis/chgrp.dis+0−0

Binary file not shown.

dis/chmod.dis+0−0

Binary file not shown.

dis/cleanname.dis+0−0

Binary file not shown.

dis/cmp.dis+0−0

Binary file not shown.

dis/collab/clients/chat.dis+0−0

Binary file not shown.

dis/collab/clients/poll.dis+0−0

Binary file not shown.

dis/collab/clients/poller.dis+0−0

Binary file not shown.

dis/collab/clients/whiteboard.dis+0−0

Binary file not shown.

dis/collab/collabsrv.dis+0−0

Binary file not shown.

dis/collab/connect.dis+0−0

Binary file not shown.

dis/collab/lib/messages.dis+0−0

Binary file not shown.

dis/collab/proxy.dis+0−0

Binary file not shown.

dis/collab/servers/chatsrv.dis+0−0

Binary file not shown.

dis/collab/servers/memfssrv.dis+0−0

Binary file not shown.

dis/collab/servers/mpx.dis+0−0

Binary file not shown.

dis/collab/servers/wbsrv.dis+0−0

Binary file not shown.

dis/collab/srvmgr.dis+0−0

Binary file not shown.

dis/comm.dis+0−0

Binary file not shown.

dis/cook.dis+0−0

Binary file not shown.

dis/cp.dis+0−0

Binary file not shown.

dis/cprof.dis+0−0

Binary file not shown.

dis/cpu.dis+0−0

Binary file not shown.

dis/crypt.dis+0−0

Binary file not shown.

dis/date.dis+0−0

Binary file not shown.

dis/dbfs.dis+0−0

Binary file not shown.

dis/dd.dis+0−0

Binary file not shown.

dis/demo/camera/camera.dis+0−0

Binary file not shown.

dis/demo/camera/tkinterface.dis+0−0

Binary file not shown.

dis/demo/chat/chat.dis+0−0

Binary file not shown.

dis/demo/chat/chatsrv.dis+0−0

Binary file not shown.

dis/demo/cpupool/regpoll.dis+0−0

Binary file not shown.

dis/demo/lego/clockface.dis+0−0

Binary file not shown.

dis/demo/lego/firmdl.dis+0−0

Binary file not shown.

dis/demo/lego/legolink.dis+0−0

Binary file not shown.

dis/demo/lego/rcxsend.dis+0−0

Binary file not shown.

dis/demo/lego/timers.dis+0−0

Binary file not shown.

dis/demo/ns/ns.dis+0−0

Binary file not shown.

dis/demo/odbc/odbcmnt.dis+0−0

Binary file not shown.

dis/demo/whiteboard/wbsrv.dis+0−0

Binary file not shown.

dis/demo/whiteboard/whiteboard.dis+0−0

Binary file not shown.

dis/dial.dis+0−0

Binary file not shown.

dis/diff.dis+0−0

Binary file not shown.

dis/disdep.dis+0−0

Binary file not shown.

dis/disdump.dis+0−0

Binary file not shown.

dis/disk/calc.tab.dis+0−0

Binary file not shown.

dis/disk/fdisk.dis+0−0

Binary file not shown.

dis/disk/format.dis+0−0

Binary file not shown.

dis/disk/ftl.dis+0−0

Binary file not shown.

dis/disk/kfs.dis+0−0

Binary file not shown.

dis/disk/kfscmd.dis+0−0

Binary file not shown.

dis/disk/mbr.dis+0−0

Binary file not shown.

dis/disk/mkext.dis+0−0

Binary file not shown.

dis/disk/mkfs.dis+0−0

Binary file not shown.

dis/disk/pedit.dis+0−0

Binary file not shown.

dis/disk/prep.dis+0−0

Binary file not shown.

dis/dossrv.dis+0−0

Binary file not shown.

dis/du.dis+0−0

Binary file not shown.

dis/ebook/cssfont.dis+0−0

Binary file not shown.

dis/ebook/cssparser.dis+0−0

Binary file not shown.

dis/ebook/ebook.dis+0−0

Binary file not shown.

dis/ebook/mimeimage.dis+0−0

Binary file not shown.

dis/ebook/oebpackage.dis+0−0

Binary file not shown.

dis/ebook/reader.dis+0−0

Binary file not shown.

dis/ebook/strmap.dis+0−0

Binary file not shown.

dis/ebook/stylesheet.dis+0−0

Binary file not shown.

dis/ebook/table.dis+0−0

Binary file not shown.

dis/ebook/units.dis+0−0

Binary file not shown.

dis/echo.dis+0−0

Binary file not shown.

dis/ed.dis+0−0

Binary file not shown.

dis/emuinit.dis+0−0

Binary file not shown.

dis/env.dis+0−0

Binary file not shown.

dis/export.dis+0−0

Binary file not shown.

dis/fc.dis+0−0

Binary file not shown.

dis/fcp.dis+0−0

Binary file not shown.

dis/fmt.dis+0−0

Binary file not shown.

dis/fone.dis+0−0

Binary file not shown.

dis/fortune.dis+0−0

Binary file not shown.

dis/freq.dis+0−0

Binary file not shown.

dis/fs.dis+0−0

Binary file not shown.

dis/fs/and.dis+0−0

Binary file not shown.

dis/fs/bundle.dis+0−0

Binary file not shown.

dis/fs/chstat.dis+0−0

Binary file not shown.

dis/fs/compose.dis+0−0

Binary file not shown.

dis/fs/depth.dis+0−0

Binary file not shown.

dis/fs/entries.dis+0−0

Binary file not shown.

dis/fs/eval.dis+0−0

Binary file not shown.

dis/fs/exec.dis+0−0

Binary file not shown.

dis/fs/filter.dis+0−0

Binary file not shown.

dis/fs/ls.dis+0−0

Binary file not shown.

dis/fs/match.dis+0−0

Binary file not shown.

dis/fs/merge.dis+0−0

Binary file not shown.

dis/fs/mergewrite.dis+0−0

Binary file not shown.

dis/fs/mode.dis+0−0

Binary file not shown.

dis/fs/not.dis+0−0

Binary file not shown.

dis/fs/or.dis+0−0

Binary file not shown.

dis/fs/path.dis+0−0

Binary file not shown.

dis/fs/pipe.dis+0−0

Binary file not shown.

dis/fs/print.dis+0−0

Binary file not shown.

dis/fs/proto.dis+0−0

Binary file not shown.

dis/fs/query.dis+0−0

Binary file not shown.

dis/fs/run.dis+0−0

Binary file not shown.

dis/fs/select.dis+0−0

Binary file not shown.

dis/fs/setroot.dis+0−0

Binary file not shown.

dis/fs/size.dis+0−0

Binary file not shown.

dis/fs/unbundle.dis+0−0

Binary file not shown.

dis/fs/void.dis+0−0

Binary file not shown.

dis/fs/walk.dis+0−0

Binary file not shown.

dis/fs/write.dis+0−0

Binary file not shown.

dis/ftest.dis+0−0

Binary file not shown.

dis/ftpfs.dis+0−0

Binary file not shown.

dis/getauthinfo.dis+0−0

Binary file not shown.

dis/gettar.dis+0−0

Binary file not shown.

dis/grep.dis+0−0

Binary file not shown.

dis/grid/blurdemo.dis+0−0

Binary file not shown.

dis/grid/cpupool.dis+0−0

Binary file not shown.

dis/grid/demo/block.dis+0−0

Binary file not shown.

dis/grid/demo/blur.dis+0−0

Binary file not shown.

dis/grid/find.dis+0−0

Binary file not shown.

dis/grid/jpg2bit.dis+0−0

Binary file not shown.

dis/grid/lib/announce.dis+0−0

Binary file not shown.

dis/grid/lib/browser.dis+0−0

Binary file not shown.

dis/grid/lib/fbrowse.dis+0−0

Binary file not shown.

dis/grid/lib/srvbrowse.dis+0−0

Binary file not shown.

dis/grid/query.dis+0−0

Binary file not shown.

dis/grid/readjpg.dis+0−0

Binary file not shown.

dis/grid/register.dis+0−0

Binary file not shown.

dis/grid/reglisten.dis+0−0

Binary file not shown.

dis/grid/regstyxlisten.dis+0−0

Binary file not shown.

dis/grid/remotelogon.dis+0−0

Binary file not shown.

dis/grid/usercreatesrv.dis+0−0

Binary file not shown.

dis/gunzip.dis+0−0

Binary file not shown.

dis/gzip.dis+0−0

Binary file not shown.

dis/idea.dis+0−0

Binary file not shown.

dis/import.dis+0−0

Binary file not shown.

dis/install/applylog.dis+0−0

Binary file not shown.

dis/install/arch.dis+0−0

Binary file not shown.

dis/install/archfs.dis+0−0

Binary file not shown.

dis/install/ckproto.dis+0−0

Binary file not shown.

dis/install/create.dis+0−0

Binary file not shown.

dis/install/eproto.dis+0−0

Binary file not shown.

dis/install/info.dis+0−0

Binary file not shown.

dis/install/inst.dis+0−0

Binary file not shown.

dis/install/install.dis+0−0

Binary file not shown.

dis/install/log.dis+0−0

Binary file not shown.

dis/install/logs.dis+0−0

Binary file not shown.

dis/install/mergelog.dis+0−0

Binary file not shown.

dis/install/mkproto.dis+0−0

Binary file not shown.

dis/install/proto.dis+0−0

Binary file not shown.

dis/install/proto2list.dis+0−0

Binary file not shown.

dis/install/updatelog.dis+0−0

Binary file not shown.

dis/install/wdiff.dis+0−0

Binary file not shown.

dis/install/wfind.dis+0−0

Binary file not shown.

dis/install/wrap.dis+0−0

Binary file not shown.

dis/install/wrap2list.dis+0−0

Binary file not shown.

dis/iostats.dis+0−0

Binary file not shown.

dis/ip/bootpd.dis+0−0

Binary file not shown.

dis/ip/dhcp.dis+0−0

Binary file not shown.

dis/ip/ping.dis+0−0

Binary file not shown.

dis/ip/ppp/modem.dis+0−0

Binary file not shown.

dis/ip/ppp/pppclient.dis+0−0

Binary file not shown.

dis/ip/ppp/pppdial.dis+0−0

Binary file not shown.

dis/ip/ppp/pppgui.dis+0−0

Binary file not shown.

dis/ip/ppp/ppptest.dis+0−0

Binary file not shown.

dis/ip/ppp/script.dis+0−0

Binary file not shown.

dis/ip/rip.dis+0−0

Binary file not shown.

dis/ip/sntp.dis+0−0

Binary file not shown.

dis/ip/tftpd.dis+0−0

Binary file not shown.

dis/ip/virgild.dis+0−0

Binary file not shown.

dis/itest.dis+0−0

Binary file not shown.

dis/itreplay.dis+0−0

Binary file not shown.

dis/kill.dis+0−0

Binary file not shown.

dis/lego/clock.dis+0−0

Binary file not shown.

dis/lego/clockface.dis+0−0

Binary file not shown.

dis/lego/firmdl.dis+0−0

Binary file not shown.

dis/lego/link.dis+0−0

Binary file not shown.

dis/lego/rcxsend.dis+0−0

Binary file not shown.

dis/lego/send.dis+0−0

Binary file not shown.

dis/lego/timers.dis+0−0

Binary file not shown.

dis/lib/arg.dis+0−0

Binary file not shown.

dis/lib/asn1.dis+0−0

Binary file not shown.

dis/lib/attrdb.dis+0−0

Binary file not shown.

dis/lib/attrhash.dis+0−0

Binary file not shown.

dis/lib/auth.dis+0−0

Binary file not shown.

dis/lib/auth9.dis+0−0

Binary file not shown.

dis/lib/bloomfilter.dis+0−0

Binary file not shown.

dis/lib/bufio.dis+0−0

Binary file not shown.

dis/lib/cfg.dis+0−0

Binary file not shown.

dis/lib/cfgfile.dis+0−0

Binary file not shown.

dis/lib/chanfill.dis+0−0

Binary file not shown.

dis/lib/complete.dis+0−0

Binary file not shown.

dis/lib/convcs/8bit_stob.dis+0−0

Binary file not shown.

dis/lib/convcs/big5_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/big5_stob.dis+0−0

Binary file not shown.

dis/lib/convcs/convcs.dis+0−0

Binary file not shown.

dis/lib/convcs/cp932_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/cp_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/cp_stob.dis+0−0

Binary file not shown.

dis/lib/convcs/euc-jp_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/gb2312_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/utf16_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/utf16_stob.dis+0−0

Binary file not shown.

dis/lib/convcs/utf8_btos.dis+0−0

Binary file not shown.

dis/lib/convcs/utf8_stob.dis+0−0

Binary file not shown.

dis/lib/crc.dis+0−0

Binary file not shown.

dis/lib/crypt/pkcs.dis+0−0

Binary file not shown.

dis/lib/crypt/ssl3.dis+0−0

Binary file not shown.

dis/lib/crypt/sslsession.dis+0−0

Binary file not shown.

dis/lib/crypt/x509.dis+0−0

Binary file not shown.

dis/lib/csv.dis+0−0

Binary file not shown.

dis/lib/daytime.dis+0−0

Binary file not shown.

dis/lib/db.dis+0−0

Binary file not shown.

dis/lib/dbm.dis+0−0

Binary file not shown.

dis/lib/dbsrv.dis+0−0

Binary file not shown.

dis/lib/debug.dis+0−0

Binary file not shown.

dis/lib/deflate.dis+0−0

Binary file not shown.

dis/lib/devpointer.dis+0−0

Binary file not shown.

dis/lib/dhcpclient.dis+0−0

Binary file not shown.

dis/lib/dial.dis+0−0

Binary file not shown.

dis/lib/dialog.dis+0−0

Binary file not shown.

dis/lib/dict.dis+0−0

Binary file not shown.

dis/lib/dis.dis+0−0

Binary file not shown.

dis/lib/diskblocks.dis+0−0

Binary file not shown.

dis/lib/disks.dis+0−0

Binary file not shown.

dis/lib/dividers.dis+0−0

Binary file not shown.

dis/lib/drawmux.dis+0−0

Binary file not shown.

dis/lib/ecmascript.dis+0−0

Binary file not shown.

dis/lib/encoding/base16.dis+0−0

Binary file not shown.

dis/lib/encoding/base32.dis+0−0

Binary file not shown.

dis/lib/encoding/base32a.dis+0−0

Binary file not shown.

dis/lib/encoding/base64.dis+0−0

Binary file not shown.

dis/lib/env.dis+0−0

Binary file not shown.

dis/lib/ether.dis+0−0

Binary file not shown.

dis/lib/exception.dis+0−0

Binary file not shown.

dis/lib/factotum.dis+0−0

Binary file not shown.

dis/lib/filepat.dis+0−0

Binary file not shown.

dis/lib/format.dis+0−0

Binary file not shown.

dis/lib/fsfilter.dis+0−0

Binary file not shown.

dis/lib/fslib.dis+0−0

Binary file not shown.

dis/lib/fsproto.dis+0−0

Binary file not shown.

dis/lib/ftree/cptree.dis+0−0

Binary file not shown.

dis/lib/ftree/ftree.dis+0−0

Binary file not shown.

dis/lib/ftree/items.dis+0−0

Binary file not shown.

dis/lib/gamer.dis+0−0

Binary file not shown.

dis/lib/hash.dis+0−0

Binary file not shown.

dis/lib/html.dis+0−0

Binary file not shown.

dis/lib/ida/ida.dis+0−0

Binary file not shown.

dis/lib/imageremap.dis+0−0

Binary file not shown.

dis/lib/inflate.dis+0−0

Binary file not shown.

dis/lib/ip.dis+0−0

Binary file not shown.

dis/lib/ipattr.dis+0−0

Binary file not shown.

dis/lib/ir.dis+0−0

Binary file not shown.

dis/lib/irsage.dis+0−0

Binary file not shown.

dis/lib/irsim.dis+0−0

Binary file not shown.

dis/lib/itslib.dis+0−0

Binary file not shown.

dis/lib/json.dis+0−0

Binary file not shown.

dis/lib/keyset.dis+0−0

Binary file not shown.

dis/lib/libc.dis+0−0

Binary file not shown.

dis/lib/libc0.dis+0−0

Binary file not shown.

dis/lib/lists.dis+0−0

Binary file not shown.

dis/lib/lock.dis+0−0

Binary file not shown.

dis/lib/login.dis+0−0

Binary file not shown.

dis/lib/man.dis+0−0

Binary file not shown.

dis/lib/mash/builtins.dis+0−0

Binary file not shown.

dis/lib/mash/history.dis+0−0

Binary file not shown.

dis/lib/mash/make.dis+0−0

Binary file not shown.

dis/lib/mashlib.dis+0−0

Binary file not shown.

dis/lib/mashparse.dis+0−0

Binary file not shown.

dis/lib/memfs.dis+0−0

Binary file not shown.

dis/lib/mpeg.dis+0−0

Binary file not shown.

dis/lib/msgio.dis+0−0

Binary file not shown.

dis/lib/names.dis+0−0

Binary file not shown.

dis/lib/nametree.dis+0−0

Binary file not shown.

dis/lib/newns.dis+0−0

Binary file not shown.

dis/lib/ninep.dis+0−0

Binary file not shown.

dis/lib/oldauth.dis+0−0

Binary file not shown.

dis/lib/palm.dis+0−0

Binary file not shown.

dis/lib/palmdb.dis+0−0

Binary file not shown.

dis/lib/palmfile.dis+0−0

Binary file not shown.

dis/lib/parseman.dis+0−0

Binary file not shown.

dis/lib/plumbing.dis+0−0

Binary file not shown.

dis/lib/plumbmsg.dis+0−0

Binary file not shown.

dis/lib/pop3.dis+0−0

Binary file not shown.

dis/lib/popup.dis+0−0

Binary file not shown.

dis/lib/powerman.dis+0−0

Binary file not shown.

dis/lib/print/hp_driver.dis+0−0

Binary file not shown.

dis/lib/print/print.dis+0−0

Binary file not shown.

dis/lib/print/scaler.dis+0−0

Binary file not shown.

dis/lib/profile.dis+0−0

Binary file not shown.

dis/lib/pslib.dis+0−0

Binary file not shown.

dis/lib/quicktime.dis+0−0

Binary file not shown.

dis/lib/rand.dis+0−0

Binary file not shown.

dis/lib/random.dis+0−0

Binary file not shown.

dis/lib/readdir.dis+0−0

Binary file not shown.

dis/lib/readgif.dis+0−0

Binary file not shown.

dis/lib/readjpg.dis+0−0

Binary file not shown.

dis/lib/readpicfile.dis+0−0

Binary file not shown.

dis/lib/readpng.dis+0−0

Binary file not shown.

dis/lib/readxbitmap.dis+0−0

Binary file not shown.

dis/lib/regex.dis+0−0

Binary file not shown.

dis/lib/regexutils.dis+0−0

Binary file not shown.

dis/lib/registries.dis+0−0

Binary file not shown.

dis/lib/rfc822.dis+0−0

Binary file not shown.

dis/lib/riff.dis+0−0

Binary file not shown.

dis/lib/scoretable.dis+0−0

Binary file not shown.

dis/lib/scsiio.dis+0−0

Binary file not shown.

dis/lib/secstore.dis+0−0

Binary file not shown.

dis/lib/selectfile.dis+0−0

Binary file not shown.

dis/lib/sets.dis+0−0

Binary file not shown.

dis/lib/sets32.dis+0−0

Binary file not shown.

dis/lib/sexprs.dis+0−0

Binary file not shown.

dis/lib/slip.dis+0−0

Binary file not shown.

dis/lib/smtp.dis+0−0

Binary file not shown.

dis/lib/sort.dis+0−0

Binary file not shown.

dis/lib/spki/spki.dis+0−0

Binary file not shown.

dis/lib/spki/verifier.dis+0−0

Binary file not shown.

dis/lib/ssl.dis+0−0

Binary file not shown.

dis/lib/string.dis+0−0

Binary file not shown.

dis/lib/strinttab.dis+0−0

Binary file not shown.

dis/lib/strokes/buildstrokes.dis+0−0

Binary file not shown.

dis/lib/strokes/readstrokes.dis+0−0

Binary file not shown.

dis/lib/strokes/strokes.dis+0−0

Binary file not shown.

dis/lib/strokes/writestrokes.dis+0−0

Binary file not shown.

dis/lib/styx.dis+0−0

Binary file not shown.

dis/lib/styxconv/new2old.dis+0−0

Binary file not shown.

dis/lib/styxconv/old2new.dis+0−0

Binary file not shown.

dis/lib/styxconv/ostyx.dis+0−0

Binary file not shown.

dis/lib/styxflush.dis+0−0

Binary file not shown.

dis/lib/styxlib.dis+0−0

Binary file not shown.

dis/lib/styxpersist.dis+0−0

Binary file not shown.

dis/lib/styxservers.dis+0−0

Binary file not shown.

dis/lib/tables.dis+0−0

Binary file not shown.

dis/lib/tabs.dis+0−0

Binary file not shown.

dis/lib/tcl_calc.dis+0−0

Binary file not shown.

dis/lib/tcl_core.dis+0−0

Binary file not shown.

dis/lib/tcl_inthash.dis+0−0

Binary file not shown.

dis/lib/tcl_io.dis+0−0

Binary file not shown.

dis/lib/tcl_list.dis+0−0

Binary file not shown.

dis/lib/tcl_modhash.dis+0−0

Binary file not shown.

dis/lib/tcl_stack.dis+0−0

Binary file not shown.

dis/lib/tcl_strhash.dis+0−0

Binary file not shown.

dis/lib/tcl_string.dis+0−0

Binary file not shown.

dis/lib/tcl_symhash.dis+0−0

Binary file not shown.

dis/lib/tcl_utils.dis+0−0

Binary file not shown.

dis/lib/tftp.dis+0−0

Binary file not shown.

dis/lib/timers.dis+0−0

Binary file not shown.

dis/lib/titlebar.dis+0−0

Binary file not shown.

dis/lib/tkclient.dis+0−0

Binary file not shown.

dis/lib/translate.dis+0−0

Binary file not shown.

dis/lib/ubfa.dis+0−0

Binary file not shown.

dis/lib/url.dis+0−0

Binary file not shown.

dis/lib/usb/usb.dis+0−0

Binary file not shown.

dis/lib/usb/usbmass.dis+0−0

Binary file not shown.

dis/lib/usb/usbmct.dis+0−0

Binary file not shown.

dis/lib/usb/usbmouse.dis+0−0

Binary file not shown.

dis/lib/vac.dis+0−0

Binary file not shown.

dis/lib/venti.dis+0−0

Binary file not shown.

dis/lib/virgil.dis+0−0

Binary file not shown.

dis/lib/volume.dis+0−0

Binary file not shown.

dis/lib/w3c/css.dis+0−0

Binary file not shown.

dis/lib/w3c/uris.dis+0−0

Binary file not shown.

dis/lib/w3c/xpointers.dis+0−0

Binary file not shown.

dis/lib/wait.dis+0−0

Binary file not shown.

dis/lib/watchvars.dis+0−0

Binary file not shown.

dis/lib/winplace.dis+0−0

Binary file not shown.

dis/lib/wmclient.dis+0−0

Binary file not shown.

dis/lib/wmlib.dis+0−0

Binary file not shown.

dis/lib/wmsrv.dis+0−0

Binary file not shown.

dis/lib/workdir.dis+0−0

Binary file not shown.

dis/lib/writegif.dis+0−0

Binary file not shown.

dis/lib/xml.dis+0−0

Binary file not shown.

dis/limbo.dis+0−0

Binary file not shown.

dis/listen.dis+0−0

Binary file not shown.

dis/lockfs.dis+0−0

Binary file not shown.

dis/logfile.dis+0−0

Binary file not shown.

dis/look.dis+0−0

Binary file not shown.

dis/ls.dis+0−0

Binary file not shown.

dis/lstar.dis+0−0

Binary file not shown.

dis/m4.dis+0−0

Binary file not shown.

dis/man2html.dis+0−0

Binary file not shown.

dis/man2txt.dis+0−0

Binary file not shown.

dis/mash.dis+0−0

Binary file not shown.

dis/math/ack.dis+0−0

Binary file not shown.

dis/math/crackerbarrel.dis+0−0

Binary file not shown.

dis/math/factor.dis+0−0

Binary file not shown.

dis/math/ffts.dis+0−0

Binary file not shown.

dis/math/fibonacci.dis+0−0

Binary file not shown.

dis/math/fit.dis+0−0

Binary file not shown.

dis/math/genprimes.dis+0−0

Binary file not shown.

dis/math/geodesy.dis+0−0

Binary file not shown.

dis/math/gr.dis+0−0

Binary file not shown.

dis/math/graph0.dis+0−0

Binary file not shown.

dis/math/hist0.dis+0−0

Binary file not shown.

dis/math/linalg.dis+0−0

Binary file not shown.

dis/math/linbench.dis+0−0

Binary file not shown.

dis/math/mersenne.dis+0−0

Binary file not shown.

dis/math/parts.dis+0−0

Binary file not shown.

dis/math/perms.dis+0−0

Binary file not shown.

dis/math/pi.dis+0−0

Binary file not shown.

dis/math/polyfill.dis+0−0

Binary file not shown.

dis/math/polyhedra.dis+0−0

Binary file not shown.

dis/math/powers.dis+0−0

Binary file not shown.

dis/math/primes.dis+0−0

Binary file not shown.

dis/math/sieve.dis+0−0

Binary file not shown.

dis/mc.dis+0−0

Binary file not shown.

dis/md5sum.dis+0−0

Binary file not shown.

dis/mdb.dis+0−0

Binary file not shown.

dis/memfs.dis+0−0

Binary file not shown.

dis/metamorph.dis+0−0

Binary file not shown.

dis/mk.dis+0−0

Binary file not shown.

dis/mkdir.dis+0−0

Binary file not shown.

dis/mntgen.dis+0−0

Binary file not shown.

dis/mount.dis+0−0

Binary file not shown.

dis/mouse.dis+0−0

Binary file not shown.

dis/mpc/qconfig.dis+0−0

Binary file not shown.

dis/mpc/qflash.dis+0−0

Binary file not shown.

dis/mpeg/decode.dis+0−0

Binary file not shown.

dis/mpeg/decode4.dis+0−0

Binary file not shown.

dis/mpeg/fixidct.dis+0−0

Binary file not shown.

dis/mpeg/fltidct.dis+0−0

Binary file not shown.

dis/mpeg/makergbvmap.dis+0−0

Binary file not shown.

dis/mpeg/mpeg.dis+0−0

Binary file not shown.

dis/mpeg/mpegio.dis+0−0

Binary file not shown.

dis/mpeg/refidct.dis+0−0

Binary file not shown.

dis/mpeg/remap.dis+0−0

Binary file not shown.

dis/mpeg/remap1.dis+0−0

Binary file not shown.

dis/mpeg/remap2.dis+0−0

Binary file not shown.

dis/mpeg/remap24.dis+0−0

Binary file not shown.

dis/mpeg/remap4.dis+0−0

Binary file not shown.

dis/mpeg/remap8.dis+0−0

Binary file not shown.

dis/mpeg/scidct.dis+0−0

Binary file not shown.

dis/mpeg/vlc.dis+0−0

Binary file not shown.

dis/mprof.dis+0−0

Binary file not shown.

dis/mv.dis+0−0

Binary file not shown.

dis/ndb/cs.dis+0−0

Binary file not shown.

dis/ndb/csquery.dis+0−0

Binary file not shown.

dis/ndb/dns.dis+0−0

Binary file not shown.

dis/ndb/dnsquery.dis+0−0

Binary file not shown.

dis/ndb/mkhash.dis+0−0

Binary file not shown.

dis/ndb/query.dis+0−0

Binary file not shown.

dis/ndb/registry.dis+0−0

Binary file not shown.

dis/ndb/regquery.dis+0−0

Binary file not shown.

dis/netkey.dis+0−0

Binary file not shown.

dis/netstat.dis+0−0

Binary file not shown.

dis/newer.dis+0−0

Binary file not shown.

dis/ns.dis+0−0

Binary file not shown.

dis/nsbuild.dis+0−0

Binary file not shown.

dis/os.dis+0−0

Binary file not shown.

dis/p.dis+0−0

Binary file not shown.

dis/pause.dis+0−0

Binary file not shown.

dis/plumb.dis+0−0

Binary file not shown.

dis/plumber.dis+0−0

Binary file not shown.

dis/prof.dis+0−0

Binary file not shown.

dis/ps.dis+0−0

Binary file not shown.

dis/puttar.dis+0−0

Binary file not shown.

dis/pwd.dis+0−0

Binary file not shown.

dis/ramfile.dis+0−0

Binary file not shown.

dis/randpass.dis+0−0

Binary file not shown.

dis/raw2iaf.dis+0−0

Binary file not shown.

dis/rawdbfs.dis+0−0

Binary file not shown.

dis/rcmd.dis+0−0

Binary file not shown.

dis/rdp.dis+0−0

Binary file not shown.

dis/read.dis+0−0

Binary file not shown.

dis/rioimport.dis+0−0

Binary file not shown.

dis/rm.dis+0−0

Binary file not shown.

dis/runas.dis+0−0

Binary file not shown.

dis/sed.dis+0−0

Binary file not shown.

dis/sendmail.dis+0−0

Binary file not shown.

dis/sh.dis+0−0

Binary file not shown.

dis/sh/arg.dis+0−0

Binary file not shown.

dis/sh/csv.dis+0−0

Binary file not shown.

dis/sh/echo.dis+0−0

Binary file not shown.

dis/sh/expr.dis+0−0

Binary file not shown.

dis/sh/file2chan.dis+0−0

Binary file not shown.

dis/sh/mload.dis+0−0

Binary file not shown.

dis/sh/mpexpr.dis+0−0

Binary file not shown.

dis/sh/regex.dis+0−0

Binary file not shown.

dis/sh/sexprs.dis+0−0

Binary file not shown.

dis/sh/sh.dis+0−0

Binary file not shown.

dis/sh/std.dis+0−0

Binary file not shown.

dis/sh/string.dis+0−0

Binary file not shown.

dis/sh/test.dis+0−0

Binary file not shown.

dis/sh/tk.dis+0−0

Binary file not shown.

dis/sha1sum.dis+0−0

Binary file not shown.

dis/sleep.dis+0−0

Binary file not shown.

dis/sort.dis+0−0

Binary file not shown.

dis/spki/verify.dis+0−0

Binary file not shown.

dis/spree/archives.dis+0−0

Binary file not shown.

dis/spree/clients/cards.dis+0−0

Binary file not shown.

dis/spree/clients/gather.dis+0−0

Binary file not shown.

dis/spree/clients/lobby.dis+0−0

Binary file not shown.

dis/spree/clients/othello.dis+0−0

Binary file not shown.

dis/spree/engines/afghan.dis+0−0

Binary file not shown.

dis/spree/engines/bounce.dis+0−0

Binary file not shown.

dis/spree/engines/canfield.dis+0−0

Binary file not shown.

dis/spree/engines/freecell.dis+0−0

Binary file not shown.

dis/spree/engines/gather.dis+0−0

Binary file not shown.

dis/spree/engines/lobby.dis+0−0

Binary file not shown.

dis/spree/engines/othello.dis+0−0

Binary file not shown.

dis/spree/engines/racingdemon.dis+0−0

Binary file not shown.

dis/spree/engines/spider.dis+0−0

Binary file not shown.

dis/spree/engines/spit.dis+0−0

Binary file not shown.

dis/spree/engines/whist.dis+0−0

Binary file not shown.

dis/spree/join.dis+0−0

Binary file not shown.

dis/spree/lib/allow.dis+0−0

Binary file not shown.

dis/spree/lib/cardlib.dis+0−0

Binary file not shown.

dis/spree/lib/commandline.dis+0−0

Binary file not shown.

dis/spree/lib/objstore.dis+0−0

Binary file not shown.

dis/spree/lib/tricks.dis+0−0

Binary file not shown.

dis/spree/spree.dis+0−0

Binary file not shown.

dis/src.dis+0−0

Binary file not shown.

dis/stack.dis+0−0

Binary file not shown.

dis/stackv.dis+0−0

Binary file not shown.

dis/stream.dis+0−0

Binary file not shown.

dis/strings.dis+0−0

Binary file not shown.

dis/styxchat.dis+0−0

Binary file not shown.

dis/styxlisten.dis+0−0

Binary file not shown.

dis/styxmon.dis+0−0

Binary file not shown.

dis/sum.dis+0−0

Binary file not shown.

dis/svc/httpd/alarms.dis+0−0

Binary file not shown.

dis/svc/httpd/cache.dis+0−0

Binary file not shown.

dis/svc/httpd/cgiparse.dis+0−0

Binary file not shown.

dis/svc/httpd/contents.dis+0−0

Binary file not shown.

dis/svc/httpd/date.dis+0−0

Binary file not shown.

dis/svc/httpd/echo.dis+0−0

Binary file not shown.

dis/svc/httpd/httpd.dis+0−0

Binary file not shown.

dis/svc/httpd/imagemap.dis+0−0

Binary file not shown.

dis/svc/httpd/parser.dis+0−0

Binary file not shown.

dis/svc/httpd/redirect.dis+0−0

Binary file not shown.

dis/svc/httpd/stats.dis+0−0

Binary file not shown.

dis/svc/webget/date.dis+0−0

Binary file not shown.

dis/svc/webget/file.dis+0−0

Binary file not shown.

dis/svc/webget/ftp.dis+0−0

Binary file not shown.

dis/svc/webget/http.dis+0−0

Binary file not shown.

dis/svc/webget/image2enc.dis+0−0

Binary file not shown.

dis/svc/webget/message.dis+0−0

Binary file not shown.

dis/svc/webget/webget.dis+0−0

Binary file not shown.

dis/svc/webget/wgutils.dis+0−0

Binary file not shown.

dis/tail.dis+0−0

Binary file not shown.

dis/tarfs.dis+0−0

Binary file not shown.

dis/tclsh.dis+0−0

Binary file not shown.

dis/tcs.dis+0−0

Binary file not shown.

dis/tee.dis+0−0

Binary file not shown.

dis/telnet.dis+0−0

Binary file not shown.

dis/test.dis+0−0

Binary file not shown.

dis/time.dis+0−0

Binary file not shown.

dis/timestamp.dis+0−0

Binary file not shown.

dis/tiny/rm.dis+0−0

Binary file not shown.

dis/tiny/sh.dis+0−0

Binary file not shown.

dis/tkcmd.dis+0−0

Binary file not shown.

dis/tokenize.dis+0−0

Binary file not shown.

dis/touch.dis+0−0

Binary file not shown.

dis/touchcal.dis+0−0

Binary file not shown.

dis/tr.dis+0−0

Binary file not shown.

dis/trfs.dis+0−0

Binary file not shown.

dis/tsort.dis+0−0

Binary file not shown.

dis/unicode.dis+0−0

Binary file not shown.

dis/uniq.dis+0−0

Binary file not shown.

dis/units.dis+0−0

Binary file not shown.

dis/unmount.dis+0−0

Binary file not shown.

dis/usb/usbd.dis+0−0

Binary file not shown.

dis/uudecode.dis+0−0

Binary file not shown.

dis/uuencode.dis+0−0

Binary file not shown.

dis/vacfs.dis+0−0

Binary file not shown.

dis/vacget.dis+0−0

Binary file not shown.

dis/vacput.dis+0−0

Binary file not shown.

dis/wav2iaf.dis+0−0

Binary file not shown.

dis/wc.dis+0−0

Binary file not shown.

dis/webgrab.dis+0−0

Binary file not shown.

dis/wish.dis+0−0

Binary file not shown.

dis/wm/about.dis+0−0

Binary file not shown.

dis/wm/avi.dis+0−0

Binary file not shown.

dis/wm/bounce.dis+0−0

Binary file not shown.

dis/wm/brutus.dis+0−0

Binary file not shown.

dis/wm/brutus/excerpt.dis+0−0

Binary file not shown.

dis/wm/brutus/image.dis+0−0

Binary file not shown.

dis/wm/brutus/mod.dis+0−0

Binary file not shown.

dis/wm/brutus/table.dis+0−0

Binary file not shown.

dis/wm/c4.dis+0−0

Binary file not shown.

dis/wm/clock.dis+0−0

Binary file not shown.

dis/wm/coffee.dis+0−0

Binary file not shown.

dis/wm/collide.dis+0−0

Binary file not shown.

dis/wm/colors.dis+0−0

Binary file not shown.

dis/wm/cprof.dis+0−0

Binary file not shown.

dis/wm/date.dis+0−0

Binary file not shown.

dis/wm/deb.dis+0−0

Binary file not shown.

dis/wm/debdata.dis+0−0

Binary file not shown.

dis/wm/debsrc.dis+0−0

Binary file not shown.

dis/wm/dir.dis+0−0

Binary file not shown.

dis/wm/dmview.dis+0−0

Binary file not shown.

dis/wm/dmwm.dis+0−0

Binary file not shown.

dis/wm/edit.dis+0−0

Binary file not shown.

dis/wm/filename.dis+0−0

Binary file not shown.

dis/wm/ftree.dis+0−0

Binary file not shown.

dis/wm/getauthinfo.dis+0−0

Binary file not shown.

dis/wm/logon.dis+0−0

Binary file not shown.

dis/wm/logwindow.dis+0−0

Binary file not shown.

dis/wm/man.dis+0−0

Binary file not shown.

dis/wm/mand.dis+0−0

Binary file not shown.

dis/wm/mash.dis+0−0

Binary file not shown.

dis/wm/memory.dis+0−0

Binary file not shown.

dis/wm/mprof.dis+0−0

Binary file not shown.

dis/wm/pen.dis+0−0

Binary file not shown.

dis/wm/polyhedra.dis+0−0

Binary file not shown.

dis/wm/prof.dis+0−0

Binary file not shown.

dis/wm/readmail.dis+0−0

Binary file not shown.

dis/wm/remotelogon.dis+0−0

Binary file not shown.

dis/wm/reversi.dis+0−0

Binary file not shown.

dis/wm/rmtdir.dis+0−0

Binary file not shown.

dis/wm/rt.dis+0−0

Binary file not shown.

dis/wm/sendmail.dis+0−0

Binary file not shown.

dis/wm/sh.dis+0−0

Binary file not shown.

dis/wm/smenu.dis+0−0

Binary file not shown.

dis/wm/snake.dis+0−0

Binary file not shown.

dis/wm/stopwatch.dis+0−0

Binary file not shown.

dis/wm/sweeper.dis+0−0

Binary file not shown.

dis/wm/task.dis+0−0

Binary file not shown.

dis/wm/telnet.dis+0−0

Binary file not shown.

dis/wm/tetris.dis+0−0

Binary file not shown.

dis/wm/unibrowse.dis+0−0

Binary file not shown.

dis/wm/view.dis+0−0

Binary file not shown.

dis/wm/vt.dis+0−0

Binary file not shown.

dis/wm/wish.dis+0−0

Binary file not shown.

dis/wm/wmplay.dis+0−0

Binary file not shown.

dis/wmexport.dis+0−0

Binary file not shown.

dis/wmimport.dis+0−0

Binary file not shown.

dis/xargs.dis+0−0

Binary file not shown.

dis/xd.dis+0−0

Binary file not shown.

dis/yacc.dis+0−0

Binary file not shown.

dis/zeros.dis+0−0

Binary file not shown.

emu/Android/audio-audioflinger.c+0−23
@@ -1,23 +0,0 @@
1−#include "dat.h"
2−#include "fns.h"
3−#include "error.h"
4−#include "audio.h"
5−#include "audio-tbls.c"
6−
7−Audio_t*
8−getaudiodev(void)
9−{
10− return &av;
11−}
12−
13−void
14−audio_file_init(void)
15−{
16− audio_info_init(&av);
17−}
18−
19−void
20−audio_file_open(Chan *c, int omode)
21−{
22−
23−}
emu/Android/audit.c+0−142
@@ -1,142 +0,0 @@
1−#include <stdlib.h>
2−#include <stdio.h>
3−
4−struct alloc_node {
5− void *block;
6− struct alloc_node *next;
7−};
8−
9−struct alloc_node *alloc_head = NULL;
10−
11−void add_alloc_node(void *block)
12−{
13− struct alloc_node *node = malloc(sizeof(struct alloc_node));
14− struct alloc_node *cur;
15−
16− node->block = block;
17− node->next = NULL;
18− if(alloc_head == NULL) {
19− alloc_head = node;
20− } else {
21− for(cur = alloc_head; ; cur = cur->next) {
22− if(cur->next == NULL) {
23− cur->next = node;
24− break;
25− }
26− }
27− }
28−}
29−
30−void del_alloc_node(void *block)
31−{
32− struct alloc_node *cur;
33− struct alloc_node *prev;
34−
35− for(cur = alloc_head; cur != NULL; cur = cur->next) {
36− if(cur->block == block) {
37− if(cur == alloc_head) {
38− alloc_head = cur->next;
39− } else {
40− prev->next = cur->next;
41− }
42− free(cur);
43− return;
44− }
45− prev = cur;
46− }
47− fprintf(stderr, "del_alloc_node: could not find block %p\n", block);
48−}
49−
50−void auditcheck(char *file, int line)
51−{
52− struct alloc_node *cur;
53− for(cur = alloc_head; cur != NULL; cur = cur->next) {
54− void *p = cur->block;
55− long hdr, canary;
56− size_t orig;
57−
58− hdr = *((long *)p - 2);
59− if(hdr != 0xcafeface) {
60− fprintf(stderr, "auditcheck (from %s:%d): bad header at block %p, found %x\n",
61− file, line, p, canary);
62− }
63− orig = *((size_t *) p - 1);
64− canary = *((long *)(p + orig));
65− if(canary != 0xaaaaaaaa) {
66− fprintf(stderr, "auditcheck (from %s:%d): bad canary at block %p, found %x\n",
67− file, line, p, canary);
68− }
69− }
70−}
71−
72−void *auditmalloc(size_t orig)
73−{
74− size_t size = orig + sizeof(size_t) + 2*sizeof(long);
75− void *ret;
76− ret = malloc(size);
77− if(ret == NULL) return NULL;
78− *((long *) ret) = 0xcafeface;
79− *(((size_t *) ret) + 1) = orig;
80− *((long *) ((char *)ret + orig + sizeof(long) + sizeof(size_t))) = 0xaaaaaaaa;
81− ret += sizeof(long) + sizeof(size_t);
82− add_alloc_node(ret);
83− return ret;
84−}
85−
86−void auditfree(void *p)
87−{
88− long hdr, canary;
89− size_t orig;
90−
91− if(p == NULL) return;
92−
93− hdr = *((long *)p - 2);
94− if(hdr != 0xcafeface) {
95− fprintf(stderr, "auditfree: bad header at block %p, found %x\n",
96− p, canary);
97− }
98− orig = *((size_t *) p - 1);
99− canary = *((long *)(p + orig));
100− if(canary != 0xaaaaaaaa) {
101− fprintf(stderr, "auditfree: bad canary at block %p, found %x\n",
102− p, canary);
103− }
104− del_alloc_node(p);
105− p = p - sizeof(long) - sizeof(size_t);
106− memset(p, 0xbadbad, orig + 2 * sizeof(long) + sizeof(size_t));
107− free(p);
108−}
109−
110−char *auditstrdup(char *str)
111−{
112− char *ret;
113− ret = auditmalloc((strlen(str) + 1) * sizeof(char));
114− strcpy(ret, str);
115− return ret;
116−}
117−
118−void *auditcalloc(size_t nmemb, size_t size)
119−{
120− size_t total = nmemb * size;
121− void *ret;
122− ret = auditmalloc(total);
123− memset(ret, 0, total);
124− return ret;
125−}
126−
127−
128−void *auditrealloc(void *p, size_t size)
129−{
130− void *ret;
131− size_t orig = size;
132− del_alloc_node(p);
133− p = p - sizeof(size_t) - sizeof(long);
134− size += 2 * sizeof(long) + sizeof(size_t);
135− ret = realloc(p, size);
136− *(((size_t *) ret) + 1) = orig;
137−
138− ret += sizeof(size_t) + sizeof(long);
139− *((long *)(ret + orig)) = 0xaaaaaaaa;
140− add_alloc_node(ret);
141− return ret;
142−}
emu/Android/audit.h+0−11
@@ -1,11 +0,0 @@
1−#ifndef __AUDIT_H
2−#define __AUDIT_H
3−#define AUDITCHECK auditcheck(__FILE__, __LINE__)
4−
5−void auditcheck(void);
6−void *auditmalloc(size_t orig);
7−void auditfree(void *p);
8−char *auditstrdup(char *str);
9−void *auditcalloc(size_t nmemb, size_t size);
10−void *auditrealloc(void *p, size_t size);
11−#endif
emu/Android/devphoneWORKING.c+0−1241
@@ -1,1241 +0,0 @@
1−/* TODO/BUGS in no order:
2− SMSes will be acknowledged regardless of whether anyone happens to be reading /phone/sms to see them, potentially losing SMSes if no one reads them before shutdown
3− translation from UTF-8 to GSM for sending SMSes
4− decode_sms is sloppy--should convert septets into octets, then convert octets into UTF-8 instead of trying to do it all at once. split off into separate functions?
5− handle sending/receiving multiple text messages and checking length of messages sent to /phone/sms
6− consider notifying RIL of screen state using RIL_REQUEST_SCREEN_STATE to conserve power
7− figure out why default SMSC address for send_sms does not work
8− too many assumptions made in phonewrite() about what the user sends (needs a \n, etc)
9− too many assumptions made in loop_for_data() about read() giving exactly the right amount of data
10− some of the created files will not be consistent across multiple read()s, i.e. if you read a few bytes of data, wait, then read a few more, the result may not make sense if things change in between. E.g. you may get "onf" if you read from /phone/ctl during a on/off transition
11− parcel code will go crazy if ints overflow
12− no way to give an error if SMSes don't send
13−*/
14−
15−#include "dat.h"
16−#include "fns.h"
17−#include "error.h"
18−#include "version.h"
19−#include "mp.h"
20−#include "libsec.h"
21−#include "keyboard.h"
22−#include <stdio.h>
23−#include <cutils/sockets.h>
24−#include <stdlib.h>
25−#include <telephony/ril.h>
26−#include <cutils/jstring.h>
27−#include <arpa/inet.h>
28−#include <libgen.h>
29−#include <sys/types.h>
30−#include <sys/stat.h>
31−#include <fcntl.h>
32−#include <semaphore.h>
33−#include <dlfcn.h>
34−#include "asound.h"
35−#include "alsa_audio.h"
36−
37−// audio stuff taken from android source
38−#define AUDIO_HW_OUT_PERIOD_MULT 8 // (8 * 128 = 1024 frames)
39−#define AUDIO_HW_OUT_PERIOD_SZ (PCM_PERIOD_SZ_MIN * AUDIO_HW_OUT_PERIOD_MULT)
40−#define AUDIO_HW_OUT_PERIOD_CNT 4
41−// RIL-related definitions
42−
43−#define RESPONSE_SOLICITED 0
44−#define RESPONSE_UNSOLICITED 1
45−#define POWER_ON 2000
46−#define POWER_OFF 2001
47−
48−struct RilClient {
49− void *prv;
50−};
51−
52−typedef struct RilClient * HRilClient;
53−
54−typedef enum _SoundType {
55− SOUND_TYPE_VOICE,
56− SOUND_TYPE_SPEAKER,
57− SOUND_TYPE_HEADSET,
58− SOUND_TYPE_BTVOICE
59−} SoundType;
60−
61−typedef enum _AudioPath {
62− SOUND_AUDIO_PATH_HANDSET,
63− SOUND_AUDIO_PATH_HEADSET,
64− SOUND_AUDIO_PATH_SPEAKER,
65− SOUND_AUDIO_PATH_BLUETOOTH,
66− SOUND_AUDIO_PATH_BLUETOOTH_NO_NR,
67− SOUND_AUDIO_PATH_HEADPHONE
68−} AudioPath;
69−
70−typedef enum _SoundClockCondition {
71− SOUND_CLOCK_STOP,
72− SOUND_CLOCK_START
73−} SoundClockCondition;
74−
75−// Inferno-related globals
76−
77−enum
78−{
79− Qdir,
80− Qctl,
81− Qsms,
82− Qphone,
83− Qsignal,
84− Qstatus,
85− Qcalls
86−};
87−
88−Dirtab phonetab[] =
89−{
90− ".", {Qdir, 0, QTDIR}, 0, DMDIR|0555,
91− "ctl", {Qctl}, 0, 0666,
92− "sms", {Qsms}, 0, 0666,
93− "phone", {Qphone}, 0, 0666,
94− "signal", {Qsignal}, 0, 0666,
95− "status", {Qstatus}, 0, 0666,
96− "calls", {Qcalls}, 0, 0666,
97−};
98−
99−Queue *phoneq;
100−Queue *smsq;
101−
102−static int signal_strength;
103−static int fd;
104−static int power_state = 0;
105−static struct {
106− sem_t sem;
107− char *msg;
108−} status_msg;
109−
110−static struct {
111− RWLock l;
112− RIL_Call *cs;
113− int num;
114−} calls;
115−
116−/* RIL client library globals */
117−static void *ril_client_handle;
118−static HRilClient ril_client = NULL;
119−HRilClient (*openClientRILD)(void);
120−int (*disconnectRILD)(HRilClient);
121−int (*closeClientRILD)(HRilClient);
122−int (*isConnectedRILD)(HRilClient);
123−int (*connectRILD)(HRilClient);
124−int (*setCallVolume)(HRilClient, SoundType, int);
125−int (*setCallAudioPath)(HRilClient, AudioPath);
126−int (*setCallClockSync)(HRilClient, SoundClockCondition);
127−
128−
129−void loop_for_data(void *v);
130−void send_sms(char *smsc_pdu, char *pdu);
131−char *encode_sms(char *dest, char *msg);
132−void dial(char *number);
133−void activate_net(void);
134−void deactivate_net(void);
135−void radio_power(int power);
136−
137−void phoneinit(void)
138−{
139− calls.cs = NULL;
140− calls.num = 0;
141− memset(&calls.l, 0, sizeof(RWLock));
142−
143− phoneq = qopen(512, 0, nil, nil);
144− if(phoneq == 0)
145− panic("no memory");
146− smsq = qopen(512, 0, nil, nil);
147− if(smsq == 0)
148− panic("no memory");
149−
150− sem_init(&status_msg.sem, 0, 0);
151−
152− // set up proper permissions (need to be user radio, group radio to
153− // access socket)
154− if(setegid(1001) == -1) {
155− perror("setegid(1001) failed");
156− }
157− if(seteuid(1001) == -1) {
158− perror("seteuid(1001) failed");
159− }
160− fd = socket_local_client("rild",
161− ANDROID_SOCKET_NAMESPACE_RESERVED,
162− SOCK_STREAM);
163− if(fd == -1) {
164− perror("socket_local_client failed");
165− }
166− // set privileges back to root/root
167− if(seteuid(0) == -1) {
168− perror("seteuid(0) failed");
169− }
170− if(setegid(0) == -1) {
171− perror("setegid(0) failed");
172− }
173− kproc("phone", loop_for_data, 0, 0);
174− // Load RIL client functions, used for setting call volume, etc
175− ril_client_handle = dlopen("libsecril-client.so", RTLD_NOW);
176− if(ril_client_handle == NULL) {
177− fprintf(stderr, "opening libsecril-client.so failed: %s\n",
178− dlerror());
179− }
180− openClientRILD = dlsym(ril_client_handle, "OpenClient_RILD");
181− disconnectRILD = dlsym(ril_client_handle, "Disconnect_RILD");
182− closeClientRILD = dlsym(ril_client_handle, "CloseClient_RILD");
183− isConnectedRILD = dlsym(ril_client_handle, "isConnected_RILD");
184− connectRILD = dlsym(ril_client_handle, "Connect_RILD");
185− setCallVolume = dlsym(ril_client_handle, "SetCallVolume");
186− setCallAudioPath = dlsym(ril_client_handle, "SetCallAudioPath");
187− setCallClockSync = dlsym(ril_client_handle, "SetCallClockSync");
188−
189− ril_client = openClientRILD();
190− if(ril_client == NULL) {
191− fprintf(stderr, "error in openClientRILD()\n");
192− }
193− if(connectRILD(ril_client) != 0) {
194− fprintf(stderr, "error while attempting to connectRILD()\n");
195− }
196−}
197−
198−static Chan *phoneattach(char *spec)
199−{
200− // setup kprocs if necessary
201− return devattach('f', spec);
202−}
203−
204−static Walkqid *phonewalk(Chan *c, Chan *nc, char **name, int nname)
205−{
206− return devwalk(c, nc, name, nname, phonetab, nelem(phonetab), devgen);
207−}
208−
209−static int phonestat(Chan *c, uchar *db, int n)
210−{
211− return devstat(c, db, n, phonetab, nelem(phonetab), devgen);
212−}
213−
214−static Chan *phoneopen(Chan *c, int omode)
215−{
216− c = devopen(c, omode, phonetab, nelem(phonetab), devgen);
217−
218− switch((ulong) c->qid.path) {
219− case Qstatus:
220− get_reg_state();
221− break;
222− case Qcalls:
223− get_current_calls();
224− break;
225− }
226−
227− return c;
228−}
229−
230−static void phoneclose(Chan *c)
231−{
232− if((c->flag & COPEN) == 0)
233− return;
234−}
235−
236−static long phoneread(Chan *c, void *va, long n, vlong offset)
237−{
238− char buf[255];
239− if(c->qid.type & QTDIR) {
240− return devdirread(c, va, n, phonetab, nelem(phonetab), devgen);
241− }
242−
243− switch((ulong) c->qid.path) {
244− case Qctl:
245− return readstr(offset, va, n, power_state ? "on\n" : "off\n");
246− case Qphone:
247− return qread(phoneq, va, n);
248− case Qsms:
249− // FIXME only acknowledge when an SMS is being read
250− acknowledge_sms();
251− return qread(smsq, va, n);
252− case Qsignal:
253− snprintf(buf, sizeof(buf), "%d\n", signal_strength);
254− return readstr(offset, va, n, buf);
255− case Qstatus:
256− sem_wait(&status_msg.sem);
257− // terrible
258− if(offset < strlen(status_msg.msg)) {
259− sem_post(&status_msg.sem);
260− }
261− // FIXME lock
262− return readstr(offset, va, n, status_msg.msg);
263− case Qcalls:
264− return readstr(offset, va, n, "fixme\n");
265− }
266− return 0;
267−}
268−
269−static long phonewrite(Chan *c, void *va, long n, vlong offset)
270−{
271− char *pdu;
272− char *split;
273−// char *args[5];
274− char *str;
275−// int nargs = 0, i;
276−
277− if(c->qid.type & QTDIR)
278− error(Eperm);
279− switch((ulong) c->qid.path) {
280− case Qctl:
281− str = malloc((n + 1) * sizeof(char));
282− strncpy(str, va, n);
283− ((char *)str)[n] = '\0';
284− printf("Qctl: va = %s\n", str);
285− ((char *) str)[strlen(str) - 1] = '\0'; // get rid of newline
286− if(strcmp(str, "on") == 0) {
287− radio_power(1);
288− } else if(strcmp(str, "off") == 0) {
289− radio_power(0);
290− } else if(strcmp(str, "net on") == 0) {
291− activate_net();
292− } else if(strcmp(str, "net off") == 0) {
293− deactivate_net();
294− }
295− free(str);
296− break;
297− case Qsms:
298− printf("Qsms: got %d bytes\n", n);
299− ((char *)va)[n] = '\0';
300− printf("Qsms: va = %s\n", va);
301− ((char *) va)[strlen(va) - 1] = '\0'; // get rid of newline
302− split = strstr(va, ":");
303− if(split == NULL) break;
304− *split = '\0';
305− split++;
306−
307− printf("dest = %s msg = %s\n", va, split);
308− pdu = encode_sms(va, split);
309− printf("pdu = %s\n", pdu);
310− send_sms("07912180958729f4", pdu);
311− free(pdu);
312− break;
313− case Qphone:
314− str = malloc((n + 1) * sizeof(char));
315− strncpy(str, va, n);
316− str[n] = '\0';
317− printf("Qphone: va = %s\n", str);
318− /*nargs = gettokens(va, args, 5, " \n");
319− if(strcmp(args[0]*/
320− ((char *) str)[strlen(str) - 1] = '\0'; // get rid of newline
321− if(strncmp(str, "answer", 6) == 0) {
322− answer();
323− return n;
324− } else if(strncmp(str, "dial", 4) == 0) {
325− split = strstr(str, " ");
326− if(split == NULL) break;
327− *split = '\0';
328− split++;
329−
330− dial(split);
331− }
332− free(str);
333− break;
334− }
335− return n;
336−}
337−
338−Dev phonedevtab = {
339− 'f',
340− "phone",
341−
342− phoneinit,
343− phoneattach,
344− phonewalk,
345− phonestat,
346− phoneopen,
347− devcreate,
348− phoneclose,
349− phoneread,
350− devbread,
351− phonewrite,
352− devbwrite,
353− devremove,
354− devwstat
355−};
356−
357−/* Parcel-handling code */
358−#define PAD_SIZE(s) (((s)+3)&~3)
359−
360−struct parcel {
361− char *data;
362− size_t offset;
363− size_t capacity;
364− size_t size;
365−};
366−
367−int parcel_init(struct parcel *p)
368−{
369− p->data = malloc(sizeof(int32_t)); // arbitrary size to start with
370− if(p->data == NULL) return -1;
371− p->size = 0;
372− p->capacity = sizeof(int32_t);
373− p->offset = 0;
374− return 0;
375−}
376−
377−int parcel_grow(struct parcel *p, size_t size)
378−{
379− char *new = realloc(p->data, p->capacity + size);
380−
381− if(new == NULL) {
382− return -1;
383− }
384− p->data = new;
385− p->capacity += size;
386− return 0;
387−}
388−
389−void parcel_free(struct parcel *p)
390−{
391− free(p->data);
392− p->size = 0;
393− p->capacity = 0;
394− p->offset = 0;
395−}
396−
397−int32_t parcel_r_int32(struct parcel *p)
398−{
399− int32_t ret;
400− ret = *((int32_t *) (p->data + p->offset));
401− p->offset += sizeof(int32_t);
402− return ret;
403−}
404−
405−int parcel_w_int32(struct parcel *p, int32_t val)
406−{
407− for(;;) {
408− printf("parcel_w_int32(%d): offset = %d, cap = %d, size = %d\n",
409− val, p->offset, p->capacity, p->size);
410− if(p->offset + sizeof(int32_t) < p->capacity) {
411− // There's enough space
412− *((int32_t *) (p->data + p->offset)) = val;
413− p->offset += sizeof(int32_t);
414− p->size += sizeof(int32_t);
415− break;
416− } else {
417− // Grow data and retry
418− if(parcel_grow(p, sizeof(int32_t)) == -1) {
419− return -1;
420− }
421− }
422− }
423− return 0;
424−}
425−
426−int parcel_w_string(struct parcel *p, char *str)
427−{
428− char16_t *s16;
429− size_t s16_len;
430− size_t len;
431−
432− printf("parcel_w_string\n");
433− if(str == NULL) {
434− parcel_w_int32(p, -1);
435− return 0;
436− }
437− // we have to avoid strdup8to16 here because inferno doesn't like us
438− // free()ing the memory that strdup8to16 creates.
439− s16_len = strlen8to16(str);
440− s16 = malloc(sizeof(char16_t) * s16_len);
441− strcpy8to16(s16, str, &s16_len);
442− if(parcel_w_int32(p, s16_len) == -1) {
443− return -1;
444− }
445− len = (s16_len + 1) * sizeof(char16_t);
446− for(;;) {
447− size_t padded = PAD_SIZE(len);
448− /*printf("parcel_w_string(\"%s\"): offset %d, cap %d, size %d\n",
449− str, p->offset, p->capacity, p->size);*/
450− if(p->offset + len < p->capacity) {
451− // There's enough space
452− memcpy(p->data + p->offset, s16, s16_len * sizeof(char16_t));
453− *((char16_t *) (p->data + p->offset + len)) = 0;
454− p->offset += padded;
455− p->size += padded;
456− if (padded != len) {
457− //printf("Writing %ld bytes, padded to %ld\n", len, padded);
458−#if BYTE_ORDER == BIG_ENDIAN
459− static const uint32_t mask[4] = {
460− 0x00000000, 0xffffff00, 0xffff0000, 0xff000000
461− };
462−#endif
463−#if BYTE_ORDER == LITTLE_ENDIAN
464− static const uint32_t mask[4] = {
465− 0x00000000, 0x00ffffff, 0x0000ffff, 0x000000ff
466− };
467−#endif
468− //printf("Applying pad mask: %p to %p\n", (void*)mask[padded-len],
469− // *reinterpret_cast<void**>(data+padded-4));
470− *((uint32_t*)(p->data+p->offset+padded-4)) &= mask[padded-len];
471− }
472− break;
473− } else {
474− // Grow data and retry
475− if(parcel_grow(p, padded) == -1) {
476− free(s16);
477− return -1;
478− }
479− }
480− }
481− free(s16);
482− return 0;
483−}
484−
485−char *parcel_r_string(struct parcel *p)
486−{
487− char *ret;
488− int len = parcel_r_int32(p);
489− printf("parcel_r_string: len = %d\n", len);
490− if(len < 0) return NULL; // this is how a null string is sent
491− ret = strndup16to8((char16_t *) (p->data + p->offset), len);
492− p->offset += PAD_SIZE((len + 1) * sizeof(char16_t));
493− return ret;
494−}
495−
496−size_t parcel_data_avail(struct parcel *p)
497−{
498− return (p->size - p->offset);
499−}
500−
501−/* Received SMS - we get a hex string representation of the data.
502− Roughly, the layout of the data is:
503− 1 byte - length of SMS center information
504− 1 byte - the format of the number (91 is the standard)
505− (length above - 1) bytes - the number, nibble-swapped and padded with an
506− f if needed
507− 1 byte - properties of the message, generally we can ignore this
508− 1 byte - length of sender number (in digits, not bytes)
509− variable bytes - sender number, nibble-swapped and padded if needed
510− 1 byte - protocol identifier - can ignore this probably
511− 1 byte - data coding scheme - again can hopefully be ignored
512− 7 bytes - timestamp, again nibble-swapped: y, m, d, h, m, s, timezone
513− * timezone is in units of +15 min vs. GMT. If most sig. bit is
514− 1, value is in units of -15 min vs. GMT.
515− 1 byte - length of message in characters (NOT in bytes)
516− rest of bytes - message. if ASCII 7-bit, compacted to save space through
517− an encoding mechanism.
518− For more information see http://www.dreamfabric.com/sms/ or GSM 03.38
519−*/
520−
521−struct recvd_sms {
522− char *src_num;
523− char *service_center;
524− char *msg;
525− char *timestamp;
526−};
527−
528−char gsm_to_ascii(char gsm);
529−int decode_sms(char *hexstr, struct recvd_sms *sms);
530−void acknowledge_sms(void);
531−
532−void usage(char *name);
533−
534−
535−/* SMS-related functions */
536−
537−// writes UTF-8 translation to out and returns number of bytes written
538−int gsm_to_utf8(char gsm, char *out)
539−{
540− switch(gsm) {
541− case '\0': *out = '@'; return 1;
542− case 1: out[0] = 0xC2; out[1] = 0xA3; return 2; // £
543− case 2: *out = '$'; return 1;
544− case 3: out[0] = 0xC2; out[1] = 0xA5; return 2; // ¥
545− case 4: out[0] = 0xC3; out[1] = 0xA8; return 2; // è
546− case 5: out[0] = 0xC3; out[1] = 0xA9; return 2; // é
547− case 6: out[0] = 0xC3; out[1] = 0xB9; return 2; // ù
548− case 7: out[0] = 0xC3; out[1] = 0xAC; return 2; // ì
549− case 8: out[0] = 0xC3; out[1] = 0xB2; return 2; // ò
550− case 9: out[0] = 0xC3; out[1] = 0x87; return 2; // Ç
551− case 11: out[0] = 0xC3; out[1] = 0x98; return 2; // Ø
552− case 12: out[0] = 0xC3; out[1] = 0xB8; return 2; // ø
553− case 14: out[0] = 0xC3; out[1] = 0x85; return 2; // Å
554− case 15: out[0] = 0xC3; out[1] = 0xA5; return 2; // å
555− case 16: out[0] = 0xCE; out[1] = 0x94; return 2; // Δ
556− case 17: *out = '_'; return 1;
557− case 18: out[0] = 0xCE; out[1] = 0xA6; return 2; // Φ
558− case 19: out[0] = 0xCE; out[1] = 0x93; return 2; // Γ
559− case 20: out[0] = 0xCE; out[1] = 0x9B; return 2; // Λ
560− case 21: out[0] = 0xCE; out[1] = 0xA9; return 2; // Ω
561− case 22: out[0] = 0xCE; out[1] = 0xA0; return 2; // Π
562− case 23: out[0] = 0xCE; out[1] = 0xA8; return 2; // Ψ
563− case 24: out[0] = 0xCE; out[1] = 0xA3; return 2; // Σ
564− case 25: out[0] = 0xCE; out[1] = 0x98; return 2; // Θ
565− case 26: out[0] = 0xCE; out[1] = 0x9E; return 2; // Ξ
566− case 27: // extension character
567− *out = '?'; return 1;
568− case 28: out[0] = 0xC3; out[1] = 0x86; return 2; // Æ
569− case 29: out[0] = 0xC3; out[1] = 0xA6; return 2; // æ
570− case 30: out[0] = 0xC3; out[1] = 0x9F; return 2; // ß
571− case 31: out[0] = 0xC3; out[1] = 0x89; return 2; // É
572− case 36: out[0] = 0xC2; out[1] = 0xA4; return 2; // ¤
573− case 64: out[0] = 0xC2; out[1] = 0xA1; return 2; // ¡
574− case 91: out[0] = 0xC3; out[1] = 0x84; return 2; // Ä
575− case 92: out[0] = 0xC3; out[1] = 0x96; return 2; // Ö
576− case 93: out[0] = 0xC3; out[1] = 0x91; return 2; // Ñ
577− case 94: out[0] = 0xC3; out[1] = 0x9C; return 2; // Ü
578− case 95: out[0] = 0xC2; out[1] = 0xA7; return 2; // §
579− case 96: out[0] = 0xC2; out[1] = 0xBF; return 2; // ¿
580− case 123: out[0] = 0xC3; out[1] = 0xA4; return 2; // ä
581− case 124: out[0] = 0xC3; out[1] = 0xB6; return 2; // ö
582− case 125: out[0] = 0xC3; out[1] = 0xB1; return 2; // ñ
583− case 126: out[0] = 0xC3; out[1] = 0xBC; return 2; // ü
584− case 127: out[0] = 0xC3; out[1] = 0xA0; return 2; // à
585− default: *out = gsm; return 1;
586− }
587− *out = 'a'; printf("out = %02x\n", *out); return 1;
588−}
589−
590−char *hexify(char *bytes, size_t len)
591−{
592− char *hexarray[256];
593− int i, j;
594− char *ret;
595− for(i = 0; i < 256; i++) {
596− hexarray[i] = (char *) malloc(3 * sizeof(char));
597− snprintf(hexarray[i], 3, "%02x", i);
598− }
599− ret = (char *) malloc((len * 2 + 1) * sizeof(char));
600− for(i = 0, j = 0; i < len; i++, j += 2) {
601− ret[j] = hexarray[(unsigned char) bytes[i]][0];
602− ret[j + 1] = hexarray[(unsigned char) bytes[i]][1];
603− }
604− ret[j] = '\0';
605− for(i = 0; i < 256; i++) {
606− free(hexarray[i]);
607− }
608− return ret;
609−}
610−
611−int decode_sms(char *hexstr, struct recvd_sms *sms)
612−{
613− int smsc_len, src_len, curpos, msg_len;
614− char *endptr;
615− char **bytes;
616− char *service_center, *src_num, *timestamp, *msg;
617− int len, i, j, oldbits, numoldbits, utf8msglen = 0;
618− char msgbytes[160];
619−
620− /* first, split the string up into hex representations of the bytes--
621− this makes things much easier overall */
622− len = strlen(hexstr);
623− if(len % 2 != 0) {
624− fprintf(stderr, "malformed hex string passed to decode_sms\n");
625− return -1;
626− }
627− bytes = (char **) malloc((len / 2) * sizeof(char *));
628− for(i = 0; i < len / 2; i++) {
629− bytes[i] = (char *) malloc(3 * sizeof(char));
630− bytes[i][0] = hexstr[i * 2];
631− bytes[i][1] = hexstr[i * 2 + 1];
632− bytes[i][2] = '\0';
633− }
634−
635− // decode the service center number
636− smsc_len = strtol(bytes[0], &endptr, 16);
637− if(strcmp(bytes[1], "91")) {
638− fprintf(stderr, "unsupported number format for sender: %s",
639− bytes[1]);
640− }
641− service_center = (char *) malloc((smsc_len + 2) * sizeof(char));
642− service_center[0] = '\0';
643− for(i = 2, j = 0; i < smsc_len + 1; i++, j += 2) {
644− // number is nibble-swapped
645− service_center[j] = bytes[i][1];
646− if(bytes[i][0] == 'f') { // num may be padded with 'f' at end
647− service_center[j + 1] = '\0';
648− } else {
649− service_center[j + 1] = bytes[i][0];
650− }
651− }
652− service_center[j] = '\0';
653− curpos = i;
654− sms->service_center = service_center;
655−
656− // next, decode the sender's number
657− src_len = strtol(bytes[curpos + 1], NULL, 16);
658− src_num = (char *) malloc((src_len + 2) * sizeof(char));
659− // convert src_len from # of digits to # of bytes
660− src_len = (src_len % 2 == 0) ? src_len : src_len + 1;
661− src_len = src_len / 2;
662− if(strcmp(bytes[curpos + 2], "91")) {
663− fprintf(stderr, "unsupported number format for sender: %s",
664− bytes[curpos + 2]);
665− }
666− for(i = curpos + 3, j = 0; i < curpos + 3 + src_len; i++, j += 2) {
667− // number is nibble-swapped
668− src_num[j] = bytes[i][1];
669− if(bytes[i][0] == 'f') { // num may be padded with 'f' at end
670− src_num[j + 1] = '\0';
671− } else {
672− src_num[j + 1] = bytes[i][0];
673− }
674− }
675− src_num[j] = '\0';
676− sms->src_num = src_num;
677− curpos = i;
678−
679− // Timestamp
680− // TODO: may want to convert this to a time_t value as well
681−
682− timestamp = (char *) malloc(15 * sizeof(char));
683− for(i = curpos + 2, j = 0; i < curpos + 9; i++, j += 2) {
684− // number is nibble-swapped
685− timestamp[j] = bytes[i][1];
686− timestamp[j + 1] = bytes[i][0];
687− }
688− curpos = i;
689− timestamp[j] = '\0';
690− sms->timestamp = timestamp;
691−
692− // Message
693−
694− msg_len = (len / 2) - (curpos + 1);
695− for(i = curpos + 1, j = 0; i < len / 2, j < msg_len; i++, j++) {
696− msgbytes[j] = strtol(bytes[i], NULL, 16);
697− }
698− // Calculate the # of UTF-8 bytes the message will take up by
699− // doing a first pass with gsm_to_ascii - this is terrible and could
700− // probably be done in a better way. FIXME
701−/* oldbits = 0;
702− numoldbits = 0;
703− for(i = 0, j = 0; i < msg_len; i++) {
704− int numbits = (i % 7) + 1;
705− int newbits;
706− char garbage[4];
707− newbits = msgbytes[i] >> (8 - numbits);
708− newbits &= (1 << numbits) - 1;
709− msgbytes[i] = msgbytes[i] & ((1 << (8 - numbits)) - 1);
710− msgbytes[i] = msgbytes[i] << numoldbits;
711− // repurpose gsm_to_utf8 to just give us the length. bad
712− utf8msglen += gsm_to_utf8(((msgbytes[i] & ((1 << (8 - numbits)) - 1)) << numoldbits) | oldbits, garbage);
713− if(numbits == 7) {
714− utf8msglen += gsm_to_utf8(newbits, garbage);
715− newbits = 0;
716− numbits = 0;
717− }
718− oldbits = newbits;
719− numoldbits = numbits;
720− }
721− printf("calculated utf8msglen = %d\n", utf8msglen);
722−*/
723− // FIXME
724− utf8msglen = 400;
725− msg = (char *) malloc((utf8msglen + 1) * sizeof(char));
726−
727− // convert message to UTF-8
728− oldbits = 0;
729− numoldbits = 0;
730− for(i = 0, j = 0; i < msg_len; i++) {
731− int numbits = (i % 7) + 1;
732− int newbits;
733− newbits = msgbytes[i] >> (8 - numbits);
734− newbits &= (1 << numbits) - 1;
735− msgbytes[i] = msgbytes[i] & ((1 << (8 - numbits)) - 1);
736− msgbytes[i] = msgbytes[i] << numoldbits;
737− // GSM alphabet is different than UTF-8 alphabet
738− j += gsm_to_utf8(msgbytes[i] | oldbits, msg + j);
739− if(numbits == 7) {
740− msg[j] = newbits;
741− j++;
742− newbits = 0;
743− numbits = 0;
744− }
745− oldbits = newbits;
746− numoldbits = numbits;
747− }
748− msg[j] = '\0';
749− sms->msg = msg;
750− // cleanup
751− for(i = 0; i < len / 2; i++) {
752− free(bytes[i]);
753− }
754− free(bytes);
755− return 0;
756−}
757−
758−char *encode_sms(char *destnum, char *msg)
759−{
760− int i, j, actual_dest_len, enc_msg_len, ret_len;
761− char dest_len[3];
762− char *dest;
763− char *enc_msg, *final_msg, *ret;
764− // dest_len is the hex representation of the length of the phone #
765− snprintf(dest_len, 3, "%02x", strlen(destnum));
766− actual_dest_len = (strlen(destnum) % 2 == 0) ? strlen(destnum) : strlen(destnum) + 1;
767− dest = (char *) malloc((actual_dest_len + 1) * sizeof(char));
768− for(i = 0; i < actual_dest_len; i += 2) {
769− if(destnum[i + 1] != '\0') {
770− dest[i] = destnum[i + 1];
771− } else {
772− dest[i] = 'f';
773− }
774− dest[i + 1] = destnum[i];
775− }
776− dest[i] = '\0';
777−// printf("dest = %s\n", dest);
778− enc_msg_len = strlen(msg) - (strlen(msg) / 8);
779− enc_msg = (char *) malloc((enc_msg_len + 1) * sizeof(char));
780− for(i = 0, j = 0; i < strlen(msg); i++, j++) {
781− int numbits = (i + 1) % 8;
782− char bits;
783− if(numbits == 0) {
784− j--;
785− continue;
786− }
787− bits = msg[i + 1] & ((1 << numbits) - 1);
788− enc_msg[j] = msg[i] >> numbits - 1;
789−// printf("once shifted by %d: %hhx\n", numbits, enc_msg[j]);
790− enc_msg[j] = enc_msg[j] | (bits << (8 - numbits));
791−// printf("bits << (8 - numbits) %hhx\n", bits << (8 - numbits));
792−// printf("%hhx\n", enc_msg[j]);
793− fflush(stdout);
794− }
795− final_msg = hexify(enc_msg, enc_msg_len);
796− ret_len = 14 + strlen(dest) + strlen(final_msg);
797− ret = (char *) malloc((ret_len + 1) * sizeof(char));
798− // FIXME: too much of the sent msg is hardcoded
799− snprintf(ret, ret_len + 1, "0120%s91%s0000%02x%s", dest_len, dest, strlen(msg), final_msg);
800−// printf("%s\n", ret);
801− free(enc_msg);
802− free(final_msg);
803− free(dest);
804− return ret;
805−}
806−
807−/* functions that actually belong here */
808−
809−void handle_error(int seq, int error)
810−{
811− // RIL error messages
812− char *errmsgs[] = { "no error", "radio not available", "generic failure", "password incorrect", "need SIM PIN2", "need SIM PUK2", "request not supported", "cancelled", "cannot access network during voice calls", "cannot access network before registering to network", "retry sending sms", "no SIM", "no subscription", "mode not supported", "FDN list check failed", "illegal SIM or ME" };
813− char *errmsg = errmsgs[error];
814− switch(seq) {
815− case RIL_REQUEST_SEND_SMS:
816− qproduce(smsq, errmsg, strlen(errmsg));
817− break;
818− }
819−}
820−
821−void interpret_sol_response(struct parcel *p)
822−{
823− int seq, error, i, num, offset = 0;
824− char buf[200];
825− seq = parcel_r_int32(p);
826− error = parcel_r_int32(p);
827− printf("received sol response: seq: %d err: %d\n", seq, error);
828− if(error != 0) {
829− handle_error(seq, error);
830− return;
831− }
832− switch(seq) {
833− case RIL_REQUEST_SETUP_DATA_CALL:
834− if(!parcel_data_avail(p)) return;
835− num = parcel_r_int32(p);
836− printf("num = %d\n", num);
837− for(i = 0; i < num; i++) {
838− printf("%s\n", parcel_r_string(p));
839− }
840− break;
841− case POWER_ON:
842− power_state = 1;
843− break;
844− case POWER_OFF:
845− power_state = 0;
846− break;
847− case RIL_REQUEST_REGISTRATION_STATE:
848− if(!parcel_data_avail(p)) return;
849− num = parcel_r_int32(p);
850− offset = 0;
851− for(i = 0; i < num; i++) {
852− offset += snprintf(buf + offset, sizeof(buf) - offset, "%s\n", parcel_r_string(p));
853− }
854− // FIXME lock
855− free(status_msg.msg);
856− status_msg.msg = strdup(buf);
857− sem_post(&status_msg.sem);
858− break;
859− case RIL_REQUEST_DIAL:
860−// setCallClockSync(ril_client, SOUND_CLOCK_START);
861− printf("setcallvolume returned %d\n",
862− setCallVolume(ril_client, SOUND_TYPE_VOICE, 4));
863− printf("setcallaudiopath returned %d\n", setCallAudioPath(ril_client, SOUND_AUDIO_PATH_HANDSET));
864− printf("setcallvolume returned %d\n",
865− setCallVolume(ril_client, SOUND_TYPE_VOICE, 4));
866− printf("got RIL_REQUEST_DIAL success\n");
867− set_mute(0);
868−// setCallClockSync(ril_client, SOUND_CLOCK_START);
869− break;
870− case RIL_REQUEST_GET_CURRENT_CALLS:
871− // DEBUG
872− printf("current pos: %d\n", p->offset);
873− for(i = 0; i < p->size; i++) {
874− printf("%02x ", p->data[i]);
875− }
876− printf("\n");
877−
878− if(!parcel_data_avail(p)) {
879− break;
880− }
881−
882− wlock(&calls.l);
883− free(calls.cs);
884− num = parcel_r_int32(p);
885− calls.num = num;
886− calls.cs = malloc(num * sizeof(RIL_Call));
887− if(calls.cs == NULL) {
888− wunlock(&calls.l);
889− fprintf(stderr, "malloc failed while making %d RIL_Calls\n", num);
890− break;
891− }
892−
893− for(i = 0; i < num; i++) {
894− printf("processing call %d\n", i);
895− calls.cs[i].state = parcel_r_int32(p);
896− printf("state %d\n", calls.cs[i].state);
897− calls.cs[i].index = parcel_r_int32(p);
898− calls.cs[i].toa = parcel_r_int32(p);
899− calls.cs[i].isMpty = parcel_r_int32(p);
900− calls.cs[i].isMT = parcel_r_int32(p);
901− calls.cs[i].als = parcel_r_int32(p);
902− calls.cs[i].isVoice = parcel_r_int32(p);
903− printf("isVoice\n");
904− fflush(stdout);
905− calls.cs[i].isVoicePrivacy = parcel_r_int32(p);
906− printf("isVoicePrivacy\n");
907− fflush(stdout);
908− calls.cs[i].number = parcel_r_string(p);
909− printf("number %s\n", calls.cs[i].number);
910− fflush(stdout);
911− calls.cs[i].numberPresentation = parcel_r_int32(p);
912− calls.cs[i].name = parcel_r_string(p);
913− calls.cs[i].namePresentation = parcel_r_int32(p);
914− calls.cs[i].uusInfo = parcel_r_int32(p) ?
915− malloc(sizeof(RIL_UUS_Info)) :
916− NULL;
917− if(calls.cs[i].uusInfo != NULL) {
918− // FIXME not implemented yet
919− printf("debug: got uusInfo\n");
920− }
921− }
922− printf("about to wunlock\n");
923− wunlock(&calls.l);
924− for(i = 0; i < calls.num; i++) {
925− RIL_Call c = calls.cs[i];
926− printf("call %d:\n state %d\n index %d\n toa %d\n"
927− "isMpty %d\n isMT %d\n als %d\n isVoice %d\n"
928− "isVoicePrivacy %d\n number %s\n"
929− "numberPresentation %d\n name %s\n"
930− "namePresentation %d\n",
931− i, c.state, c.index, c.toa, c.isMpty, c.isMT,
932− c.als, c.isVoice, c.isVoicePrivacy, c.number,
933− c.numberPresentation, c.name,
934− c.namePresentation);
935− }
936− break;
937− }
938−}
939−
940−void interpret_unsol_response(struct parcel *p)
941−{
942− int resp_type;
943− char buf[300];
944− int l;
945− struct recvd_sms sms;
946− resp_type = parcel_r_int32(p);
947−// printf("unsolicited: type = %d, data left = %d\n", resp_type,
948−// parcel_data_avail(p));
949− switch(resp_type) {
950− case RIL_UNSOL_RESPONSE_NEW_SMS:
951− decode_sms(parcel_r_string(p), &sms);
952− l = snprintf(buf, sizeof(buf), "%s (%s): %s\n", sms.src_num,
953− sms.timestamp, sms.msg);
954− buf[l] = '\0';
955− qproduce(smsq, buf, strlen(buf));
956−
957− free(sms.msg);
958− free(sms.service_center);
959− free(sms.src_num);
960− free(sms.timestamp);
961− break;
962− case RIL_UNSOL_CALL_RING:
963− printf("incoming call\n");
964− qproduce(phoneq, "ring\n", 5);
965− break;
966− case RIL_UNSOL_SIGNAL_STRENGTH:
967− signal_strength = parcel_r_int32(p) / 6; // signal strength from cell tower
968− // TODO: use bit error rate instead of cell tower reception
969− // when available (during a call)
970− break;
971− }
972−}
973−
974−// FIXME: read() needs to be handled better in this function, allow it to
975−// underrun and just loop again to get the rest of the data
976−void loop_for_data(void *v)
977−{
978− seteuid(1001);
979− for(;;) {
980− int msglen, readlen, type, i, ret;
981− char *buf;
982− struct parcel p;
983−
984− parcel_init(&p);
985− if((ret = read(fd, &msglen, sizeof(msglen))) != sizeof(msglen)) {
986− perror("loop_for_data");
987− fprintf(stderr, "EOF while reading parcel length\n");
988− fprintf(stderr, "read returned %d\n", ret);
989− return;
990− }
991− msglen = ntohl(msglen);
992− buf = (char *) malloc(msglen * sizeof(char));
993− if(buf == NULL) {
994− fprintf(stderr, "devphone:loop_for_data: malloc failed when attempting to allocate %d bytes\n", msglen);
995− return;
996− }
997− readlen = read(fd, buf, msglen);
998− if(readlen != msglen) {
999− fprintf(stderr, "msglen = %d readlen = %d\n", msglen,
1000− readlen);
1001− fprintf(stderr,
1002− "got too much or not enough data, aborting\n");
1003− free(buf);
1004− return;
1005− }
1006− /* for(i = 0; i < readlen; i++) {
1007− printf("%02x", buf[i]);
1008− }
1009− printf("\n");*/
1010− parcel_grow(&p, msglen);
1011− memcpy(p.data, buf, msglen);
1012− p.size = msglen;
1013− // printf("Received %d bytes of data from rild.\n", msglen);
1014− type = parcel_r_int32(&p);
1015− if(type == RESPONSE_SOLICITED) {
1016− interpret_sol_response(&p);
1017− } else {
1018− interpret_unsol_response(&p);
1019− }
1020− parcel_free(&p);
1021− free(buf);
1022− sleep(2); // FIXME may not be necessary
1023− }
1024−}
1025−
1026−void send_ril_parcel(struct parcel *p)
1027−{
1028− int pktlen, ret;
1029− pktlen = htonl(p->size);
1030− ret = write(fd, (void *)&pktlen, sizeof(pktlen));
1031− if(ret < 0) perror("write to ril failed");
1032− ret = write(fd, p->data, p->size);
1033− if(ret < 0) perror("write to ril failed");
1034−}
1035−
1036−void answer(void)
1037−{
1038− struct parcel p;
1039−
1040− parcel_init(&p);
1041− parcel_w_int32(&p, RIL_REQUEST_ANSWER);
1042− parcel_w_int32(&p, RIL_REQUEST_ANSWER);
1043−
1044− send_ril_parcel(&p);
1045− parcel_free(&p);
1046−}
1047−
1048−// power is 1 for on and 0 for off
1049−void radio_power(int power)
1050−{
1051− struct parcel p;
1052−
1053− parcel_init(&p);
1054− printf("setting radio power to %d\n", power);
1055− parcel_w_int32(&p, RIL_REQUEST_RADIO_POWER);
1056− parcel_w_int32(&p, power ? POWER_ON : POWER_OFF);
1057− parcel_w_int32(&p, 1);
1058− parcel_w_int32(&p, power);
1059−
1060− send_ril_parcel(&p);
1061− parcel_free(&p);
1062−}
1063−
1064−void dial(char *number)
1065−{
1066− struct parcel p;
1067− struct mixer *mixer;
1068− struct pcm *pcm;
1069− unsigned flags = PCM_OUT;
1070− struct mixer_ctl *ctl;
1071−
1072−// flags |= (AUDIO_HW_OUT_PERIOD_MULT - 1) << PCM_PERIOD_SZ_SHIFT;
1073− // flags |= (AUDIO_HW_OUT_PERIOD_CNT - PCM_PERIOD_CNT_MIN) << PCM_PERIOD_CNT_SHIFT;
1074−
1075− setCallClockSync(ril_client, SOUND_CLOCK_START);
1076−
1077− set_mute(0);
1078−
1079− printf("isConnectedRILD = %d\n", isConnectedRILD(ril_client));
1080−
1081−// pcm = pcm_open(flags);
1082−
1083− mixer = mixer_open();
1084− if(mixer == NULL) {
1085− fprintf(stderr, "failed to open mixer\n");
1086− }
1087−
1088− ctl = mixer_get_control(mixer, "Input Source", 0);
1089− mixer_ctl_select(ctl, "Default");
1090−
1091− ctl = mixer_get_control(mixer, "Voice Call Path", 0);
1092− mixer_ctl_select(ctl, "RCV");
1093−
1094− printf("setcallvolume returned %d\n",
1095− setCallVolume(ril_client, SOUND_TYPE_SPEAKER, 4));
1096− printf("setcallaudiopath returned %d\n", setCallAudioPath(ril_client, SOUND_AUDIO_PATH_HANDSET));
1097− printf("setcallvolume returned %d\n",
1098− setCallVolume(ril_client, SOUND_TYPE_VOICE, 4));
1099−
1100−
1101− printf("before mixer_close\n");
1102− fflush(stdout);
1103−// mixer_close(mixer);
1104− printf("after mixer_close");
1105− fflush(stdout);
1106− set_mute(0);
1107−
1108− printf("before parcel_init\n");
1109− fflush(stdout);
1110−
1111− parcel_init(&p);
1112− printf("after parcel_init\n");
1113− fflush(stdout);
1114− parcel_w_int32(&p, RIL_REQUEST_DIAL);
1115− parcel_w_int32(&p, RIL_REQUEST_DIAL);
1116− printf("before parcel_w_string\n");
1117− fflush(stdout);
1118− parcel_w_string(&p, number);
1119− printf("after parcel_w_string\n");
1120− fflush(stdout);
1121− parcel_w_int32(&p, 0);
1122− parcel_w_int32(&p, 0);
1123− parcel_w_int32(&p, 0);
1124−
1125− send_ril_parcel(&p);
1126− parcel_free(&p);
1127−}
1128−
1129−void activate_net(void)
1130−{
1131− struct parcel p;
1132−
1133− parcel_init(&p);
1134− parcel_w_int32(&p, RIL_REQUEST_SETUP_DATA_CALL); // request ID
1135− parcel_w_int32(&p, RIL_REQUEST_SETUP_DATA_CALL); // seq number (?)
1136− parcel_w_int32(&p, 7); // undocumented magic.
1137− parcel_w_string(&p, "1"); // CDMA or GSM. 1 = GSM
1138− parcel_w_string(&p, "0"); // data profile. 0 = default
1139− parcel_w_string(&p, "wap.cingular"); // APN name
1140− parcel_w_string(&p, "WAP@CINGULARGPRS.COM"); // APN user
1141− parcel_w_string(&p, "cingular1"); // APN passwd
1142− parcel_w_string(&p, "0"); // auth type. 0 usually
1143−
1144− send_ril_parcel(&p);
1145− parcel_free(&p);
1146−}
1147−
1148−void deactivate_net(void)
1149−{
1150− struct parcel p;
1151−
1152− parcel_init(&p);
1153− parcel_w_int32(&p, RIL_REQUEST_DEACTIVATE_DATA_CALL);
1154− parcel_w_int32(&p, RIL_REQUEST_DEACTIVATE_DATA_CALL);
1155− parcel_w_string(&p, "1"); // FIXME: this should be the CID returned by
1156− // RIL_REQUEST_SETUP_DATA_CALL response
1157− send_ril_parcel(&p);
1158− parcel_free(&p);
1159−}
1160−
1161−void send_sms(char *smsc_pdu, char *pdu)
1162−{
1163− struct parcel p;
1164−
1165− parcel_init(&p);
1166− parcel_w_int32(&p, RIL_REQUEST_SEND_SMS);
1167− parcel_w_int32(&p, RIL_REQUEST_SEND_SMS);
1168− parcel_w_int32(&p, 2);
1169− parcel_w_string(&p, smsc_pdu);
1170− parcel_w_string(&p, pdu);
1171−
1172− send_ril_parcel(&p);
1173− parcel_free(&p);
1174−}
1175−
1176−void acknowledge_sms(void)
1177−{
1178− struct parcel p;
1179−
1180− parcel_init(&p);
1181− parcel_w_int32(&p, RIL_REQUEST_SMS_ACKNOWLEDGE);
1182− parcel_w_int32(&p, RIL_REQUEST_SMS_ACKNOWLEDGE);
1183− parcel_w_int32(&p, 2);
1184− parcel_w_int32(&p, 1); // success
1185− parcel_w_int32(&p, 0); // failure cause if necessary
1186−
1187− send_ril_parcel(&p);
1188− parcel_free(&p);
1189−}
1190−
1191−void get_reg_state(void)
1192−{
1193− struct parcel p;
1194−
1195− parcel_init(&p);
1196− parcel_w_int32(&p, RIL_REQUEST_REGISTRATION_STATE);
1197− parcel_w_int32(&p, RIL_REQUEST_REGISTRATION_STATE);
1198−
1199− send_ril_parcel(&p);
1200− parcel_free(&p);
1201−}
1202−
1203−void set_mute(int muted)
1204−{
1205− struct parcel p;
1206−
1207− parcel_init(&p);
1208− parcel_w_int32(&p, RIL_REQUEST_SET_MUTE);
1209− parcel_w_int32(&p, RIL_REQUEST_SET_MUTE);
1210− parcel_w_int32(&p, 1);
1211− parcel_w_int32(&p, muted);
1212−
1213− send_ril_parcel(&p);
1214− parcel_free(&p);
1215−}
1216−
1217−void get_current_calls(void)
1218−{
1219− struct parcel p;
1220−
1221− parcel_init(&p);
1222− parcel_w_int32(&p, RIL_REQUEST_GET_CURRENT_CALLS);
1223− parcel_w_int32(&p, RIL_REQUEST_GET_CURRENT_CALLS);
1224−
1225− send_ril_parcel(&p);
1226− parcel_free(&p);
1227−}
1228−
1229−void hangup(int index)
1230−{
1231− struct parcel p;
1232−
1233− parcel_init(&p);
1234− parcel_w_int32(&p, RIL_REQUEST_HANGUP);
1235− parcel_w_int32(&p, RIL_REQUEST_HANGUP);
1236− parcel_w_int32(&p, 1);
1237− parcel_w_int32(&p, index);
1238−
1239− send_ril_parcel(&p);
1240− parcel_free(&p);
1241−}
emu/Android/emu-g.c+1−0
@@ -88,4 +88,5 @@ void modinit(void){ · 87 unmodified lines
8888
8989 int dontcompile = 1;
9090 char* conffile = "emu-g";
91+#define KERNDATE 0
9192 ulong kerndate = KERNDATE;
utils/mk/mk+0−0

Binary file not shown.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t