github.com/SagerNet/gvisor@v0.0.0-20210707092255-7731c139d75c/pkg/sentry/fs/fsutil/BUILD (about)

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