0 | module System.UV.Raw.File
2 | import System.UV.Raw.Callback
3 | import System.UV.Raw.Handle
4 | import System.UV.Raw.Loop
5 | import System.UV.Raw.Pointer
6 | import System.UV.Raw.Req
7 | import System.UV.Raw.Util
9 | import public System.UV.Data.File
14 | data UV_Timespec_T : Type where [external]
17 | data Stat : Type where
20 | data StatFs : Type where
23 | data Dir : Type where
26 | data Dirent : Type where
37 | export %foreign (idris_uv "uv_get_st_dev")
38 | st_dev : Ptr Stat -> Bits64
40 | export %foreign (idris_uv "uv_get_st_mode")
41 | st_mode : Ptr Stat -> Bits64
43 | export %foreign (idris_uv "uv_get_st_nlink")
44 | st_nlink : Ptr Stat -> Bits64
46 | export %foreign (idris_uv "uv_get_st_uid")
47 | st_uid : Ptr Stat -> Bits64
49 | export %foreign (idris_uv "uv_get_st_gid")
50 | st_gid : Ptr Stat -> Bits64
52 | export %foreign (idris_uv "uv_get_st_rdev")
53 | st_rdev : Ptr Stat -> Bits64
55 | export %foreign (idris_uv "uv_get_st_ino")
56 | st_ino : Ptr Stat -> Bits64
58 | export %foreign (idris_uv "uv_get_st_size")
59 | st_size : Ptr Stat -> Bits64
61 | export %foreign (idris_uv "uv_get_st_blksize")
62 | st_blksize : Ptr Stat -> Bits64
64 | export %foreign (idris_uv "uv_get_st_blocks")
65 | st_blocks : Ptr Stat -> Bits64
67 | export %foreign (idris_uv "uv_get_st_flags")
68 | st_flags : Ptr Stat -> Bits64
70 | export %foreign (idris_uv "uv_get_st_gen")
71 | st_gen : Ptr Stat -> Bits64
73 | export %foreign (idris_uv "uv_get_st_atim")
74 | st_atim : Ptr Stat -> UV_Timespec_T
76 | export %foreign (idris_uv "uv_get_st_mtim")
77 | st_mtim : Ptr Stat -> UV_Timespec_T
79 | export %foreign (idris_uv "uv_get_st_ctim")
80 | st_ctim : Ptr Stat -> UV_Timespec_T
82 | export %foreign (idris_uv "uv_get_st_birthtim")
83 | st_birthtim : Ptr Stat -> UV_Timespec_T
85 | export %foreign (idris_uv "uv_get_f_type")
86 | f_type : Ptr StatFs -> Bits64
88 | export %foreign (idris_uv "uv_get_f_bsize")
89 | f_bsize : Ptr StatFs -> Bits64
91 | export %foreign (idris_uv "uv_get_f_blocks")
92 | f_blocks : Ptr StatFs -> Bits64
94 | export %foreign (idris_uv "uv_get_f_bfree")
95 | f_bfree : Ptr StatFs -> Bits64
97 | export %foreign (idris_uv "uv_get_f_bavail")
98 | f_bavail : Ptr StatFs -> Bits64
100 | export %foreign (idris_uv "uv_get_f_files")
101 | f_files : Ptr StatFs -> Bits64
103 | export %foreign (idris_uv "uv_get_f_ffree")
104 | f_ffree : Ptr StatFs -> Bits64
106 | export %foreign (idris_uv "uv_get_tv_sec")
107 | tv_sec : UV_Timespec_T -> Int64
109 | export %foreign (idris_uv "uv_get_tv_nsec")
110 | tv_nsec : UV_Timespec_T -> Int64
112 | export %foreign (idris_uv "uv_fs_get_result")
113 | prim__uv_fs_get_result : Ptr Fs -> PrimIO Int32
115 | %foreign (idris_uv "uv_fs_get_ptr")
116 | prim__uv_fs_get_ptr : Ptr Fs -> PrimIO AnyPtr
118 | %foreign (idris_uv "uv_fs_get_path")
119 | prim__uv_fs_get_path : Ptr Fs -> PrimIO (Ptr Char)
121 | %foreign (idris_uv "uv_fs_get_statbuf")
122 | prim__uv_fs_get_statbuf : Ptr Fs -> PrimIO (Ptr Stat)
124 | %foreign (idris_uv "uv_fs_get_dirent_name")
125 | prim__uv_fs_get_dirent_name : Ptr Dirent -> PrimIO (Ptr Char)
127 | %foreign (idris_uv "uv_fs_get_dirent_type")
128 | prim__uv_fs_get_dirent_type : Ptr Dirent -> PrimIO Int32
130 | %foreign (idris_uv "uv_fs_req_cleanup")
131 | prim__uv_fs_req_cleanup : Ptr Fs -> PrimIO ()
133 | %foreign (idris_uv "uv_fs_unlink")
134 | prim__uv_fs_unlink :
141 | %foreign (idris_uv "uv_fs_mkdir")
142 | prim__uv_fs_mkdir :
150 | %foreign (idris_uv "uv_fs_mkdtemp")
151 | prim__uv_fs_mkdtemp :
158 | %foreign (idris_uv "uv_fs_mkstemp")
159 | prim__uv_fs_mkstemp :
166 | %foreign (idris_uv "uv_fs_rmdir")
167 | prim__uv_fs_rmdir :
174 | %foreign (idris_uv "uv_fs_opendir")
175 | prim__uv_fs_opendir :
182 | %foreign (idris_uv "uv_fs_closedir")
183 | prim__uv_fs_closedir :
190 | %foreign (idris_uv "uv_fs_readdir")
191 | prim__uv_fs_readdir :
198 | %foreign (idris_uv "uv_fs_scandir")
199 | prim__uv_fs_scandir :
207 | %foreign (idris_uv "uv_fs_scandir_next")
208 | prim__uv_fs_scandir_next : Ptr Fs -> Ptr Dirent -> PrimIO Int32
210 | %foreign (idris_uv "uv_dirents")
211 | prim__uv_dirents : Ptr Dir -> PrimIO (Ptr Dirent)
213 | %foreign (idris_uv "uv_nentries")
214 | prim__uv_nentries : Ptr Dir -> PrimIO Bits32
216 | %foreign (idris_uv "uv_fs_stat")
224 | %foreign (idris_uv "uv_fs_fstat")
225 | prim__uv_fs_fstat :
232 | %foreign (idris_uv "uv_fs_lstat")
233 | prim__uv_fs_lstat :
240 | %foreign (idris_uv "uv_fs_statfs")
241 | prim__uv_fs_statfs :
248 | %foreign (idris_uv "uv_fs_open")
253 | -> (flags,mode : Bits32)
257 | %foreign (idris_uv "idris_uv_fs_read")
262 | -> (buf : Ptr Bits8)
264 | -> (offset : Int64)
268 | %foreign (idris_uv "idris_uv_fs_write")
269 | prim__uv_fs_write :
273 | -> (buf : Ptr Bits8)
275 | -> (offset : Int64)
279 | %foreign (idris_uv "uv_fs_close")
280 | prim__uv_fs_close :
287 | %foreign (idris_uv "uv_fs_rename")
288 | prim__uv_fs_rename :
291 | -> (path, newpath : String)
295 | %foreign (idris_uv "uv_fs_fsync")
296 | prim__uv_fs_fsync :
303 | %foreign (idris_uv "uv_fs_fdatasync")
304 | prim__uv_fs_fdatasync :
311 | %foreign (idris_uv "uv_fs_fdatasync")
312 | prim__uv_fs_ftruncate :
316 | -> (offset : Int64)
320 | %foreign (idris_uv "uv_fs_fdatasync")
321 | prim__uv_fs_copyfile :
324 | -> (path, newpath : String)
329 | %foreign (idris_uv "uv_fs_sendfile")
330 | prim__uv_fs_sendfile :
333 | -> (outFile, inFile : Int32)
334 | -> (offset : Int64)
335 | -> (length : Bits32)
339 | %foreign (idris_uv "uv_fs_access")
340 | prim__uv_fs_access :
348 | %foreign (idris_uv "uv_fs_chmod")
349 | prim__uv_fs_chmod :
357 | %foreign (idris_uv "uv_fs_fchmod")
358 | prim__uv_fs_fchmod :
366 | %foreign (idris_uv "uv_fs_utime")
367 | prim__uv_fs_utime :
371 | -> (atime, mtime : Double)
375 | %foreign (idris_uv "uv_fs_futime")
376 | prim__uv_fs_futime :
380 | -> (atime, mtime : Double)
384 | %foreign (idris_uv "uv_fs_lutime")
385 | prim__uv_fs_lutime :
389 | -> (atime, mtime : Double)
393 | %foreign (idris_uv "uv_fs_link")
397 | -> (path, newpath : String)
401 | %foreign (idris_uv "uv_fs_symlink")
402 | prim__uv_fs_symlink :
405 | -> (path, newpath : String)
410 | %foreign (idris_uv "uv_fs_readlink")
411 | prim__uv_fs_readlink :
418 | %foreign (idris_uv "uv_fs_realpath")
419 | prim__uv_fs_realpath :
426 | %foreign (idris_uv "uv_fs_chown")
427 | prim__uv_fs_chown :
431 | -> (uid, gid : Int32)
435 | %foreign (idris_uv "uv_fs_fchown")
436 | prim__uv_fs_fchown :
440 | -> (uid, gid : Int32)
444 | %foreign (idris_uv "uv_fs_lchown")
445 | prim__uv_fs_lchown :
449 | -> (uid, gid : Int32)
458 | uv_fs_req_cleanup : HasIO io => Ptr Fs -> io ()
459 | uv_fs_req_cleanup fp = primIO $
prim__uv_fs_req_cleanup fp
461 | parameters {auto has : HasIO io}
463 | localCB : (Ptr Fs -> IO ()) -> io FsCB
467 | uv_fs_req_cleanup p
472 | sync : (Ptr Fs -> FsCB -> io a) -> io a
475 | res <- f fs prim__getNullAnyPtr
481 | async : (Ptr Fs -> FsCB -> io a) -> (Ptr Fs -> IO ()) -> io a
485 | uv_req_set_data p fscb
491 | async' : (Ptr Fs -> FsCB -> io a) -> io a
492 | async' f = async f (\_ => pure ())
496 | uv_fs_get_result : Ptr Fs -> io Int32
497 | uv_fs_get_result p = primIO $
prim__uv_fs_get_result p
501 | uv_fs_get_ptr : Ptr Fs -> io AnyPtr
502 | uv_fs_get_ptr p = primIO $
prim__uv_fs_get_ptr p
506 | uv_fs_get_path : Ptr Fs -> io (Ptr Char)
507 | uv_fs_get_path p = primIO (prim__uv_fs_get_path p)
511 | uv_fs_get_statbuf : Ptr Fs -> io (Ptr Stat)
512 | uv_fs_get_statbuf p = primIO $
prim__uv_fs_get_statbuf p
516 | uv_fs_unlink : Ptr Loop -> Ptr Fs -> String -> FsCB -> io Int32
517 | uv_fs_unlink loop fs path cb =
518 | primIO $
prim__uv_fs_unlink loop fs path cb
529 | uv_fs_mkdir loop path mode fs cb =
530 | primIO $
prim__uv_fs_mkdir loop fs path mode cb
541 | uv_fs_mkdtemp loop tpl fs cb =
542 | primIO $
prim__uv_fs_mkdtemp loop fs tpl cb
553 | uv_fs_mkstemp loop tpl fs cb =
554 | primIO $
prim__uv_fs_mkstemp loop fs tpl cb
564 | uv_fs_rmdir loop path fs cb =
565 | primIO $
prim__uv_fs_rmdir loop fs path cb
582 | uv_fs_opendir loop path fs cb =
583 | primIO $
prim__uv_fs_opendir loop fs path cb
594 | uv_fs_closedir loop dir fs cb =
595 | primIO $
prim__uv_fs_closedir loop fs dir cb
616 | uv_fs_readdir loop dir fs cb =
617 | primIO $
prim__uv_fs_readdir loop fs dir cb
640 | uv_fs_scandir loop path mode fs cb =
641 | primIO $
prim__uv_fs_scandir loop fs path mode cb
645 | uv_fs_scandir_next : Ptr Fs -> Ptr Dirent -> io Int32
646 | uv_fs_scandir_next fs ptr = primIO $
prim__uv_fs_scandir_next fs ptr
649 | uv_dirents : Ptr Dir -> io (Ptr Dirent)
650 | uv_dirents dir = primIO $
prim__uv_dirents dir
653 | uv_nentries : Ptr Dir -> io Bits32
654 | uv_nentries dir = primIO $
prim__uv_nentries dir
657 | uv_fs_get_dirent_name : Ptr Dirent -> io (Ptr Char)
658 | uv_fs_get_dirent_name ptr = primIO $
prim__uv_fs_get_dirent_name ptr
661 | uv_fs_get_dirent_type : Ptr Dirent -> io Int32
662 | uv_fs_get_dirent_type ptr = primIO $
prim__uv_fs_get_dirent_type ptr
668 | uv_fs_close : Ptr Loop -> Int32 -> Ptr Fs -> FsCB -> io Int32
669 | uv_fs_close l h fs cb = do
670 | primIO $
prim__uv_fs_close l fs h cb
678 | -> (flags : Bits32)
683 | uv_fs_open l path fs m ptr cb =
684 | primIO $
prim__uv_fs_open l ptr path fs m cb
697 | -> (buf : Ptr Bits8)
699 | -> (offset : Int64)
703 | uv_fs_read l h buf size offset f cb =
704 | primIO $
prim__uv_fs_read l f h buf size offset cb
712 | -> (buf : Ptr Bits8)
714 | -> (offset : Int64)
718 | uv_fs_write l h buf size offset p cb =
719 | primIO $
prim__uv_fs_write l p h buf size offset cb
728 | uv_fs_stat loop path fs cb =
729 | primIO $
prim__uv_fs_stat loop fs path cb
738 | uv_fs_fstat loop file fs cb =
739 | primIO $
prim__uv_fs_fstat loop fs file cb
748 | uv_fs_lstat loop path fs cb =
749 | primIO $
prim__uv_fs_lstat loop fs path cb
764 | uv_fs_statfs loop path fs cb =
765 | primIO $
prim__uv_fs_statfs loop fs path cb
771 | -> (path, newpath : String)
775 | uv_fs_rename loop path newpath fs cb =
776 | primIO $
prim__uv_fs_rename loop fs path newpath cb
790 | uv_fs_fsync loop file fs cb =
791 | primIO $
prim__uv_fs_fsync loop fs file cb
801 | uv_fs_fdatasync loop file fs cb =
802 | primIO $
prim__uv_fs_fdatasync loop fs file cb
809 | -> (offset : Int64)
813 | uv_fs_ftruncate loop file offset fs cb =
814 | primIO $
prim__uv_fs_ftruncate loop fs file offset cb
842 | -> (path, newpath : String)
847 | uv_fs_copyfile loop path newpath flags fs cb =
848 | primIO $
prim__uv_fs_copyfile loop fs path newpath flags cb
854 | -> (outFile, inFile : Int32)
855 | -> (offset : Int64)
856 | -> (length : Bits32)
860 | uv_fs_sendfile loop o i offset l fs cb =
861 | primIO $
prim__uv_fs_sendfile loop fs o i offset l cb
872 | uv_fs_access loop path mode fs cb =
873 | primIO $
prim__uv_fs_access loop fs path mode cb
884 | uv_fs_chmod loop path mode fs cb =
885 | primIO $
prim__uv_fs_chmod loop fs path mode cb
896 | uv_fs_fchmod loop file mode fs cb =
897 | primIO $
prim__uv_fs_fchmod loop fs file mode cb
904 | -> (atime, mtime : Double)
908 | uv_fs_utime loop path atime mtime fs cb =
909 | primIO $
prim__uv_fs_utime loop fs path atime mtime cb
916 | -> (atime, mtime : Double)
920 | uv_fs_futime loop file atime mtime fs cb =
921 | primIO $
prim__uv_fs_futime loop fs file atime mtime cb
928 | -> (atime, mtime : Double)
932 | uv_fs_lutime loop path atime mtime fs cb =
933 | primIO $
prim__uv_fs_lutime loop fs path atime mtime cb
939 | -> (path, newpath : String)
943 | uv_fs_link loop path newpath fs cb =
944 | primIO $
prim__uv_fs_link loop fs path newpath cb
959 | -> (path, newpath : String)
964 | uv_fs_symlink loop path newpath flags fs cb =
965 | primIO $
prim__uv_fs_symlink loop fs path newpath flags cb
975 | uv_fs_readlink loop path fs cb =
976 | primIO $
prim__uv_fs_readlink loop fs path cb
1008 | uv_fs_realpath loop path fs cb =
1009 | primIO $
prim__uv_fs_realpath loop fs path cb
1020 | uv_fs_chown loop path uid gid fs cb =
1021 | primIO $
prim__uv_fs_chown loop fs path uid gid cb
1032 | uv_fs_fchown loop file uid gid fs cb =
1033 | primIO $
prim__uv_fs_lchown loop fs file uid gid cb
1044 | uv_fs_lchown loop path uid gid fs cb =
1045 | primIO $
prim__uv_fs_lchown loop fs path uid gid cb