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  )