gvisor.dev/gvisor@v0.0.0-20240520182842-f9d4d51c7e0f/pkg/sentry/fsutil/BUILD (about) 1 load("//pkg/sync/locking:locking.bzl", "declare_mutex") 2 load("//tools:defs.bzl", "go_library", "go_test") 3 load("//tools/go_generics:defs.bzl", "go_template_instance") 4 5 package( 6 default_applicable_licenses = ["//:license"], 7 licenses = ["notice"], 8 ) 9 10 declare_mutex( 11 name = "refs_mutex", 12 out = "refs_mutex.go", 13 package = "fsutil", 14 prefix = "refs", 15 ) 16 17 declare_mutex( 18 name = "maps_mutex", 19 out = "maps_mutex.go", 20 package = "fsutil", 21 prefix = "maps", 22 ) 23 24 go_template_instance( 25 name = "dirty_set_impl", 26 out = "dirty_set_impl.go", 27 imports = { 28 "memmap": "gvisor.dev/gvisor/pkg/sentry/memmap", 29 }, 30 package = "fsutil", 31 prefix = "Dirty", 32 template = "//pkg/segment:generic_set", 33 types = { 34 "Key": "uint64", 35 "Range": "memmap.MappableRange", 36 "Value": "DirtyInfo", 37 "Functions": "dirtySetFunctions", 38 }, 39 ) 40 41 go_template_instance( 42 name = "frame_ref_set_impl", 43 out = "frame_ref_set_impl.go", 44 imports = { 45 "memmap": "gvisor.dev/gvisor/pkg/sentry/memmap", 46 }, 47 package = "fsutil", 48 prefix = "FrameRef", 49 template = "//pkg/segment:generic_set", 50 types = { 51 "Key": "uint64", 52 "Range": "memmap.FileRange", 53 "Value": "FrameRefSegInfo", 54 "Functions": "FrameRefSetFunctions", 55 }, 56 ) 57 58 go_template_instance( 59 name = "file_range_set_impl", 60 out = "file_range_set_impl.go", 61 imports = { 62 "memmap": "gvisor.dev/gvisor/pkg/sentry/memmap", 63 }, 64 package = "fsutil", 65 prefix = "FileRange", 66 template = "//pkg/segment:generic_set", 67 types = { 68 "Key": "uint64", 69 "Range": "memmap.MappableRange", 70 "Value": "uint64", 71 "Functions": "FileRangeSetFunctions", 72 }, 73 ) 74 75 go_library( 76 name = "fsutil", 77 srcs = [ 78 "dirty_set.go", 79 "dirty_set_impl.go", 80 "file_range_set.go", 81 "file_range_set_impl.go", 82 "frame_ref_set.go", 83 "frame_ref_set_impl.go", 84 "fsutil.go", 85 "host_file_mapper.go", 86 "host_file_mapper_state.go", 87 "host_file_mapper_unsafe.go", 88 "maps_mutex.go", 89 "refs_mutex.go", 90 ], 91 visibility = ["//pkg/sentry:internal"], 92 deps = [ 93 "//pkg/abi/linux", 94 "//pkg/context", 95 "//pkg/errors/linuxerr", 96 "//pkg/hostarch", 97 "//pkg/log", 98 "//pkg/safemem", 99 "//pkg/sentry/arch", 100 "//pkg/sentry/kernel/time", 101 "//pkg/sentry/memmap", 102 "//pkg/sentry/pgalloc", 103 "//pkg/sentry/usage", 104 "//pkg/state", 105 "//pkg/sync", 106 "//pkg/sync/locking", 107 "//pkg/usermem", 108 "//pkg/waiter", 109 "@org_golang_x_sys//unix:go_default_library", 110 ], 111 ) 112 113 go_test( 114 name = "fsutil_test", 115 size = "small", 116 srcs = [ 117 "dirty_set_test.go", 118 ], 119 library = ":fsutil", 120 deps = [ 121 "//pkg/hostarch", 122 "//pkg/sentry/memmap", 123 ], 124 )