initcode 675 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "/sys/src/libc/9syscall/sys.h"
  2. /*
  3. * we pass in the argument of the exec parameters as 0(FP)
  4. */
  5. TEXT main(SB),$8
  6. MOVW $setR30(SB), R30
  7. MOVW $boot(SB), R1
  8. ADD $12, R29, R2 /* get a pointer to 0(FP) */
  9. MOVW R1, 4(R29)
  10. MOVW R2, 8(R29)
  11. JAL exec(SB)
  12. MOVW $(1<<4), R1
  13. MOVW R1, 4(R29)
  14. MOVW $RFORK, R1
  15. SYSCALL
  16. MOVW $RFORK, R1
  17. SYSCALL
  18. MOVW $RFORK, R1
  19. SYSCALL
  20. again:
  21. ADDU $1, R2
  22. MOVW $0, R1 /* print r1 */
  23. SYSCALL
  24. MOVW $5000000, R3
  25. foo:
  26. SUBU $1, R3
  27. BNE R3, foo
  28. JMP again
  29. TEXT exec(SB), $0
  30. MOVW $EXEC, R1
  31. SYSCALL
  32. RET
  33. DATA boot+0(SB)/5,$"/boot"
  34. DATA boot+5(SB)/5,$"/boot"
  35. DATA bootv+0(SB)/4,$boot+6(SB)
  36. GLOBL boot+0(SB),$11
  37. GLOBL bootv+0(SB),$8