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
7Audio_t*
8getaudiodev(void)
9{
10 return &av;
11}
12
13void
14audio_file_init(void)
15{
16 audio_info_init(&av);
17}
18
19void
20audio_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
4struct alloc_node {
5 void *block;
6 struct alloc_node *next;
7};
8
9struct alloc_node *alloc_head = NULL;
10
11void 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
30void 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
50void 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
72void *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
86void 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
110char *auditstrdup(char *str)
111{
112 char *ret;
113 ret = auditmalloc((strlen(str) + 1) * sizeof(char));
114 strcpy(ret, str);
115 return ret;
116}
117
118void *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
128void *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
5void auditcheck(void);
6void *auditmalloc(size_t orig);
7void auditfree(void *p);
8char *auditstrdup(char *str);
9void *auditcalloc(size_t nmemb, size_t size);
10void *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
48struct RilClient {
49 void *prv;
50};
51
52typedef struct RilClient * HRilClient;
53
54typedef enum _SoundType {
55 SOUND_TYPE_VOICE,
56 SOUND_TYPE_SPEAKER,
57 SOUND_TYPE_HEADSET,
58 SOUND_TYPE_BTVOICE
59} SoundType;
60
61typedef 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
70typedef enum _SoundClockCondition {
71 SOUND_CLOCK_STOP,
72 SOUND_CLOCK_START
73} SoundClockCondition;
74
75// Inferno-related globals
76
77enum
78{
79 Qdir,
80 Qctl,
81 Qsms,
82 Qphone,
83 Qsignal,
84 Qstatus,
85 Qcalls
86};
87
88Dirtab 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
99Queue *phoneq;
100Queue *smsq;
101
102static int signal_strength;
103static int fd;
104static int power_state = 0;
105static struct {
106 sem_t sem;
107 char *msg;
108} status_msg;
109
110static struct {
111 RWLock l;
112 RIL_Call *cs;
113 int num;
114} calls;
115
116/* RIL client library globals */
117static void *ril_client_handle;
118static HRilClient ril_client = NULL;
119HRilClient (*openClientRILD)(void);
120int (*disconnectRILD)(HRilClient);
121int (*closeClientRILD)(HRilClient);
122int (*isConnectedRILD)(HRilClient);
123int (*connectRILD)(HRilClient);
124int (*setCallVolume)(HRilClient, SoundType, int);
125int (*setCallAudioPath)(HRilClient, AudioPath);
126int (*setCallClockSync)(HRilClient, SoundClockCondition);
127
128
129void loop_for_data(void *v);
130void send_sms(char *smsc_pdu, char *pdu);
131char *encode_sms(char *dest, char *msg);
132void dial(char *number);
133void activate_net(void);
134void deactivate_net(void);
135void radio_power(int power);
136
137void 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
198static Chan *phoneattach(char *spec)
199{
200 // setup kprocs if necessary
201 return devattach('f', spec);
202}
203
204static Walkqid *phonewalk(Chan *c, Chan *nc, char **name, int nname)
205{
206 return devwalk(c, nc, name, nname, phonetab, nelem(phonetab), devgen);
207}
208
209static int phonestat(Chan *c, uchar *db, int n)
210{
211 return devstat(c, db, n, phonetab, nelem(phonetab), devgen);
212}
213
214static 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
230static void phoneclose(Chan *c)
231{
232 if((c->flag & COPEN) == 0)
233 return;
234}
235
236static 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
269static 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
338Dev 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
360struct parcel {
361 char *data;
362 size_t offset;
363 size_t capacity;
364 size_t size;
365};
366
367int 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
377int 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
389void parcel_free(struct parcel *p)
390{
391 free(p->data);
392 p->size = 0;
393 p->capacity = 0;
394 p->offset = 0;
395}
396
397int32_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
405int 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
426int 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
485char *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
496size_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
521struct recvd_sms {
522 char *src_num;
523 char *service_center;
524 char *msg;
525 char *timestamp;
526};
527
528char gsm_to_ascii(char gsm);
529int decode_sms(char *hexstr, struct recvd_sms *sms);
530void acknowledge_sms(void);
531
532void usage(char *name);
533
534
535/* SMS-related functions */
536
537// writes UTF-8 translation to out and returns number of bytes written
538int 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
590char *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
611int 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
758char *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
809void 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
821void 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
940void 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
976void 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
1026void 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
1036void 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
1049void 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
1064void 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
1129void 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
1148void 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
1161void 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
1176void 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
1191void 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
1203void 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
1217void 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
1229void 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
88 88
89 int dontcompile = 1;89 int dontcompile = 1;
90char* conffile = "emu-g";90char* conffile = "emu-g";
91#define KERNDATE 0
91ulong kerndate = KERNDATE;92ulong 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