@@ -481,191 +481,39 @@ pub fn isize_as_syscall_result(value: isize) -> Result<usize, SyscallError> {
481
481
}
482
482
}
483
483
484
- pub fn sys_exit ( status : usize ) -> ! {
485
- syscall1 ( prelude:: SYS_EXIT , status) ;
486
- unreachable ! ( )
487
- }
488
-
489
- pub fn sys_open ( path : & str , mode : OpenFlags ) -> Result < usize , SyscallError > {
490
- let value = syscall4 (
491
- prelude:: SYS_OPEN ,
492
- 0x00 ,
493
- path. as_ptr ( ) as usize ,
494
- path. len ( ) ,
495
- mode. bits ( ) ,
496
- ) ;
497
-
498
- isize_as_syscall_result ( value as _ )
499
- }
500
-
501
- pub fn sys_write ( fd : usize , buf : & [ u8 ] ) -> Result < usize , SyscallError > {
502
- let value = syscall3 ( prelude:: SYS_WRITE , fd, buf. as_ptr ( ) as usize , buf. len ( ) ) ;
503
- isize_as_syscall_result ( value as _ )
504
- }
505
-
506
- pub fn sys_read ( fd : usize , buf : & mut [ u8 ] ) -> Result < usize , SyscallError > {
507
- let value = syscall3 ( prelude:: SYS_READ , fd, buf. as_mut_ptr ( ) as usize , buf. len ( ) ) ;
508
- isize_as_syscall_result ( value as _ )
509
- }
510
-
511
- pub fn sys_chdir ( path : & str ) -> Result < usize , SyscallError > {
512
- let value = syscall2 ( prelude:: SYS_CHDIR , path. as_ptr ( ) as usize , path. len ( ) ) ;
513
- isize_as_syscall_result ( value as _ )
514
- }
515
-
516
- pub fn sys_close ( fd : usize ) -> Result < usize , SyscallError > {
517
- let value = syscall1 ( prelude:: SYS_CLOSE , fd) ;
518
- isize_as_syscall_result ( value as _ )
519
- }
520
-
521
- pub fn sys_getcwd ( buf : & mut [ u8 ] ) -> Result < usize , SyscallError > {
522
- let value = syscall2 ( prelude:: SYS_GETCWD , buf. as_mut_ptr ( ) as usize , buf. len ( ) ) ;
523
- isize_as_syscall_result ( value as _ )
524
- }
525
-
526
- pub fn sys_getdents ( fd : usize , buf : & mut [ u8 ] ) -> Result < usize , SyscallError > {
527
- let value = syscall3 (
528
- prelude:: SYS_GETDENTS ,
529
- fd,
530
- buf. as_mut_ptr ( ) as usize ,
531
- buf. len ( ) ,
532
- ) ;
533
-
534
- isize_as_syscall_result ( value as _ )
535
- }
536
-
537
- pub fn sys_fork ( ) -> Result < usize , SyscallError > {
538
- let value = syscall0 ( prelude:: SYS_FORK ) ;
539
- isize_as_syscall_result ( value as _ )
540
- }
541
-
542
- pub fn sys_munmap ( address : usize , size : usize ) -> Result < usize , SyscallError > {
543
- let value = syscall2 ( prelude:: SYS_MUNMAP , address, size) ;
544
- isize_as_syscall_result ( value as _ )
545
- }
546
-
547
- pub fn sys_mkdir ( path : & str ) -> Result < usize , SyscallError > {
548
- let value = syscall2 ( prelude:: SYS_MKDIR , path. as_ptr ( ) as usize , path. len ( ) ) ;
549
- isize_as_syscall_result ( value as _ )
550
- }
551
-
552
- pub fn sys_log ( message : & str ) -> Result < usize , SyscallError > {
553
- let value = syscall2 ( prelude:: SYS_LOG , message. as_ptr ( ) as usize , message. len ( ) ) ;
554
- isize_as_syscall_result ( value as _ )
555
- }
556
-
557
- pub fn sys_mkdirat ( dfd : isize , path : & str ) -> Result < usize , SyscallError > {
558
- let value = syscall3 (
559
- prelude:: SYS_MKDIR_AT ,
560
- dfd as usize ,
561
- path. as_ptr ( ) as usize ,
562
- path. len ( ) ,
563
- ) ;
564
-
565
- isize_as_syscall_result ( value as _ )
566
- }
567
-
568
- pub fn sys_exec ( path : & str , argv : & [ & str ] , envv : & [ & str ] ) -> Result < usize , SyscallError > {
569
- let value = syscall6 (
570
- prelude:: SYS_EXEC ,
571
- path. as_ptr ( ) as usize ,
572
- path. len ( ) ,
573
- argv. as_ptr ( ) as usize ,
574
- argv. len ( ) ,
575
- envv. as_ptr ( ) as usize ,
576
- envv. len ( ) ,
577
- ) ;
578
-
579
- isize_as_syscall_result ( value as _ )
580
- }
581
-
582
- pub fn sys_rmdir ( path : & str ) -> Result < usize , SyscallError > {
583
- let value = syscall2 ( prelude:: SYS_RMDIR , path. as_ptr ( ) as usize , path. len ( ) ) ;
584
- isize_as_syscall_result ( value as _ )
585
- }
586
-
587
- pub fn sys_uname ( struc : & mut Utsname ) -> Result < usize , SyscallError > {
588
- let value = syscall1 ( prelude:: SYS_UNAME , struc as * mut Utsname as usize ) ;
589
- isize_as_syscall_result ( value as _ )
590
- }
591
-
592
- pub fn sys_shutdown ( ) -> ! {
593
- syscall0 ( prelude:: SYS_SHUTDOWN ) ;
594
- unreachable ! ( )
595
- }
596
-
597
- pub fn sys_access ( fd : usize , path : & str ) -> Result < usize , SyscallError > {
598
- let value = syscall5 (
599
- prelude:: SYS_ACCESS ,
600
- fd,
601
- path. as_ptr ( ) as usize ,
602
- path. len ( ) ,
603
- 0 ,
604
- 0 ,
605
- ) ;
606
-
607
- isize_as_syscall_result ( value as _ )
608
- }
609
-
610
- pub fn sys_waitpid ( pid : usize , status : & mut u32 , flags : usize ) -> Result < usize , SyscallError > {
484
+ pub fn sys_ipc_send ( pid : usize , message : & [ u8 ] ) -> Result < ( ) , SyscallError > {
611
485
let value = syscall3 (
612
- prelude:: SYS_WAITPID ,
486
+ prelude:: SYS_IPC_SEND ,
613
487
pid,
614
- status as * mut u32 as usize ,
615
- flags ,
488
+ message . as_ptr ( ) as usize ,
489
+ message . len ( ) ,
616
490
) ;
617
-
618
- isize_as_syscall_result ( value as _ )
619
- }
620
-
621
- pub fn sys_ioctl ( fd : usize , command : usize , arg : usize ) -> Result < usize , SyscallError > {
622
- let value = syscall3 ( prelude:: SYS_IOCTL , fd, command, arg) ;
623
- isize_as_syscall_result ( value as _ )
491
+ isize_as_syscall_result ( value as _ ) . map ( |_| ( ) )
624
492
}
625
493
626
- pub fn sys_mmap (
627
- address : usize ,
628
- size : usize ,
629
- protection : MMapProt ,
630
- flags : MMapFlags ,
631
- fd : usize ,
632
- offset : usize ,
633
- ) -> Result < usize , SyscallError > {
634
- let value = syscall6 (
635
- prelude:: SYS_MMAP ,
636
- address,
637
- size,
638
- protection. bits ( ) ,
639
- flags. bits ( ) ,
640
- fd,
641
- offset,
494
+ pub fn sys_ipc_recv < ' a > (
495
+ pid : & mut usize ,
496
+ message : & ' a mut [ u8 ] ,
497
+ block : bool ,
498
+ ) -> Result < & ' a mut [ u8 ] , SyscallError > {
499
+ let value = syscall4 (
500
+ prelude:: SYS_IPC_RECV ,
501
+ pid as * mut usize as usize ,
502
+ message. as_ptr ( ) as usize ,
503
+ message. len ( ) ,
504
+ block as usize ,
642
505
) ;
643
-
644
- isize_as_syscall_result ( value as _ )
645
- }
646
-
647
- pub fn sys_getpid ( ) -> Result < usize , SyscallError > {
648
- let value = syscall0 ( prelude:: SYS_GETPID ) ;
649
- isize_as_syscall_result ( value as _ )
650
- }
651
-
652
- pub fn sys_gettid ( ) -> Result < usize , SyscallError > {
653
- let value = syscall0 ( prelude:: SYS_GETTID ) ;
654
- isize_as_syscall_result ( value as _ )
506
+ isize_as_syscall_result ( value as _ ) . map ( |size| & mut message[ 0 ..size] )
655
507
}
656
508
657
- pub fn sys_gethostname ( buf : & mut [ u8 ] ) -> Result < usize , SyscallError > {
658
- let value = syscall2 (
659
- prelude:: SYS_GETHOSTNAME ,
660
- buf. as_mut_ptr ( ) as usize ,
661
- buf. len ( ) ,
662
- ) ;
509
+ pub fn sys_ipc_discover_root ( ) -> Result < usize , SyscallError > {
510
+ let value = syscall0 ( prelude:: SYS_IPC_DISCOVER_ROOT ) ;
663
511
isize_as_syscall_result ( value as _ )
664
512
}
665
513
666
- pub fn sys_sethostname ( name : & str ) -> Result < usize , SyscallError > {
667
- let value = syscall2 ( prelude:: SYS_SETHOSTNAME , name . as_ptr ( ) as usize , name . len ( ) ) ;
668
- isize_as_syscall_result ( value as _ )
514
+ pub fn sys_ipc_become_root ( ) -> Result < ( ) , SyscallError > {
515
+ let value = syscall0 ( prelude:: SYS_IPC_BECOME_ROOT ) ;
516
+ isize_as_syscall_result ( value as _ ) . map ( |_| ( ) )
669
517
}
670
518
671
519
// Sockets
@@ -789,159 +637,6 @@ pub const AF_UNSPEC: u32 = PF_UNSPEC;
789
637
pub const AF_NETLINK : u32 = PF_NETLINK ;
790
638
pub const AF_BRIDGE : u32 = PF_BRIDGE ;
791
639
792
- pub fn sys_socket (
793
- domain : usize ,
794
- socket_type : usize ,
795
- protocol : usize ,
796
- ) -> Result < usize , SyscallError > {
797
- let value = syscall3 ( prelude:: SYS_SOCKET , domain, socket_type, protocol) ;
798
- isize_as_syscall_result ( value as _ )
799
- }
800
-
801
- pub fn sys_listen ( fd : usize , backlog : usize ) -> Result < usize , SyscallError > {
802
- let value = syscall2 ( prelude:: SYS_LISTEN , fd, backlog) ;
803
- isize_as_syscall_result ( value as _ )
804
- }
805
-
806
- pub fn sys_unlink ( fd : usize , path : & str , flags : OpenFlags ) -> Result < usize , SyscallError > {
807
- let value = syscall4 (
808
- prelude:: SYS_UNLINK ,
809
- fd,
810
- path. as_ptr ( ) as usize ,
811
- path. len ( ) ,
812
- flags. bits ( ) ,
813
- ) ;
814
-
815
- isize_as_syscall_result ( value as _ )
816
- }
817
-
818
- pub fn sys_gettime ( clock : usize , timespec : & mut TimeSpec ) -> Result < usize , SyscallError > {
819
- let value = syscall2 ( prelude:: SYS_GETTIME , clock, timespec as * mut _ as usize ) ;
820
- isize_as_syscall_result ( value as _ )
821
- }
822
-
823
- pub fn sys_seek ( fd : usize , offset : usize , whence : SeekWhence ) -> Result < usize , SyscallError > {
824
- let value = syscall3 ( prelude:: SYS_SEEK , fd, offset, whence as usize ) ;
825
- isize_as_syscall_result ( value as _ )
826
- }
827
-
828
- pub fn sys_sleep ( timespec : & TimeSpec ) -> Result < usize , SyscallError > {
829
- let value = syscall1 ( prelude:: SYS_SLEEP , timespec as * const _ as usize ) ;
830
- isize_as_syscall_result ( value as _ )
831
- }
832
-
833
- pub fn sys_pipe ( fds : & mut [ usize ; 2 ] , flags : OpenFlags ) -> Result < usize , SyscallError > {
834
- let value = syscall2 ( prelude:: SYS_PIPE , fds. as_ptr ( ) as usize , flags. bits ( ) ) ;
835
- isize_as_syscall_result ( value as _ )
836
- }
837
-
838
- pub fn sys_info ( struc : & mut SysInfo ) -> Result < usize , SyscallError > {
839
- let value = syscall1 ( prelude:: SYS_INFO , struc as * mut _ as usize ) ;
840
- isize_as_syscall_result ( value as _ )
841
- }
842
-
843
- pub fn sys_clone ( entry : usize , stack : usize ) -> Result < usize , SyscallError > {
844
- let value = syscall2 ( prelude:: SYS_CLONE , entry, stack) ;
845
- isize_as_syscall_result ( value as _ )
846
- }
847
-
848
- pub fn sys_sigreturn ( ) -> Result < usize , SyscallError > {
849
- let value = syscall0 ( prelude:: SYS_SIGRETURN ) ;
850
- isize_as_syscall_result ( value as _ )
851
- }
852
-
853
- pub fn sys_sigaction (
854
- sig : usize ,
855
- sigaction : Option < & signal:: SigAction > ,
856
- old_sigaction : Option < & mut signal:: SigAction > ,
857
- ) -> Result < usize , SyscallError > {
858
- let sigact = sigaction;
859
-
860
- let value = syscall4 (
861
- prelude:: SYS_SIGACTION ,
862
- sig,
863
- sigact
864
- . map ( |f| f as * const signal:: SigAction as usize )
865
- . unwrap_or ( 0 ) ,
866
- sys_sigreturn as usize ,
867
- old_sigaction
868
- . map ( |f| f as * mut signal:: SigAction as usize )
869
- . unwrap_or ( 0 ) ,
870
- ) ;
871
-
872
- isize_as_syscall_result ( value as _ )
873
- }
874
-
875
- pub fn sys_sigprocmask (
876
- how : signal:: SigProcMask ,
877
- set : & mut u64 ,
878
- old_set : Option < & mut u64 > ,
879
- ) -> Result < usize , SyscallError > {
880
- let old_set = match old_set {
881
- Some ( e) => e as * const u64 as usize ,
882
- None => 0 ,
883
- } ;
884
-
885
- let value = syscall3 (
886
- prelude:: SYS_SIGPROCMASK ,
887
- how as usize ,
888
- set as * const u64 as usize ,
889
- old_set,
890
- ) ;
891
-
892
- isize_as_syscall_result ( value as _ )
893
- }
894
-
895
- pub fn sys_dup ( fd : usize , flags : OpenFlags ) -> Result < usize , SyscallError > {
896
- let value = syscall2 ( prelude:: SYS_DUP , fd, flags. bits ( ) ) ;
897
- isize_as_syscall_result ( value as _ )
898
- }
899
-
900
- pub fn sys_fcntl ( fd : usize , command : usize , argument : usize ) -> Result < usize , SyscallError > {
901
- let value = syscall3 ( prelude:: SYS_FCNTL , fd, command, argument) ;
902
- isize_as_syscall_result ( value as _ )
903
- }
904
-
905
- pub fn sys_dup2 ( fd : usize , new_fd : usize , flags : OpenFlags ) -> Result < usize , SyscallError > {
906
- let value = syscall3 ( prelude:: SYS_DUP2 , fd, new_fd, flags. bits ( ) ) ;
907
- isize_as_syscall_result ( value as _ )
908
- }
909
-
910
- pub fn sys_ipc_send ( pid : usize , message : & [ u8 ] ) -> Result < ( ) , SyscallError > {
911
- let value = syscall3 (
912
- prelude:: SYS_IPC_SEND ,
913
- pid,
914
- message. as_ptr ( ) as usize ,
915
- message. len ( ) ,
916
- ) ;
917
- isize_as_syscall_result ( value as _ ) . map ( |_| ( ) )
918
- }
919
-
920
- pub fn sys_ipc_recv < ' a > (
921
- pid : & mut usize ,
922
- message : & ' a mut [ u8 ] ,
923
- block : bool ,
924
- ) -> Result < & ' a mut [ u8 ] , SyscallError > {
925
- let value = syscall4 (
926
- prelude:: SYS_IPC_RECV ,
927
- pid as * mut usize as usize ,
928
- message. as_ptr ( ) as usize ,
929
- message. len ( ) ,
930
- block as usize ,
931
- ) ;
932
- isize_as_syscall_result ( value as _ ) . map ( |size| & mut message[ 0 ..size] )
933
- }
934
-
935
- pub fn sys_ipc_discover_root ( ) -> Result < usize , SyscallError > {
936
- let value = syscall0 ( prelude:: SYS_IPC_DISCOVER_ROOT ) ;
937
- isize_as_syscall_result ( value as _ )
938
- }
939
-
940
- pub fn sys_ipc_become_root ( ) -> Result < ( ) , SyscallError > {
941
- let value = syscall0 ( prelude:: SYS_IPC_BECOME_ROOT ) ;
942
- isize_as_syscall_result ( value as _ ) . map ( |_| ( ) )
943
- }
944
-
945
640
// sysdeps/aero/include/abi-bits/stat.h
946
641
bitflags:: bitflags! {
947
642
#[ derive( Default ) ]
@@ -995,19 +690,3 @@ pub struct Stat {
995
690
pub st_blksize : u64 ,
996
691
pub st_blocks : u64 ,
997
692
}
998
-
999
- pub fn sys_stat ( path : & str , stat : & mut Stat ) -> Result < usize , SyscallError > {
1000
- let value = syscall3 (
1001
- prelude:: SYS_STAT ,
1002
- path. as_ptr ( ) as usize ,
1003
- path. len ( ) ,
1004
- stat as * mut Stat as usize ,
1005
- ) ;
1006
-
1007
- isize_as_syscall_result ( value as _ )
1008
- }
1009
-
1010
- pub fn sys_fstat ( fd : usize , stat : & mut Stat ) -> Result < usize , SyscallError > {
1011
- let value = syscall2 ( prelude:: SYS_FSTAT , fd, stat as * mut Stat as usize ) ;
1012
- isize_as_syscall_result ( value as _ )
1013
- }
0 commit comments