package(licenses = ["notice"])  # Apache 2.0

load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//tools/go_stateify:defs.bzl", "go_stateify")

go_stateify(
    name = "epsocket_state",
    srcs = [
        "epsocket.go",
        "save_restore.go",
        "stack.go",
    ],
    out = "epsocket_state.go",
    package = "epsocket",
)

go_library(
    name = "epsocket",
    srcs = [
        "device.go",
        "epsocket.go",
        "epsocket_state.go",
        "provider.go",
        "save_restore.go",
        "stack.go",
    ],
    importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/socket/epsocket",
    visibility = [
        "//pkg/sentry:internal",
    ],
    deps = [
        "//pkg/abi/linux",
        "//pkg/binary",
        "//pkg/log",
        "//pkg/refs",
        "//pkg/sentry/arch",
        "//pkg/sentry/context",
        "//pkg/sentry/device",
        "//pkg/sentry/fs",
        "//pkg/sentry/fs/fsutil",
        "//pkg/sentry/inet",
        "//pkg/sentry/kernel",
        "//pkg/sentry/kernel/kdefs",
        "//pkg/sentry/kernel/time",
        "//pkg/sentry/safemem",
        "//pkg/sentry/socket",
        "//pkg/sentry/usermem",
        "//pkg/state",
        "//pkg/syserr",
        "//pkg/syserror",
        "//pkg/tcpip",
        "//pkg/tcpip/buffer",
        "//pkg/tcpip/header",
        "//pkg/tcpip/network/ipv4",
        "//pkg/tcpip/network/ipv6",
        "//pkg/tcpip/stack",
        "//pkg/tcpip/transport/tcp",
        "//pkg/tcpip/transport/udp",
        "//pkg/tcpip/transport/unix",
        "//pkg/waiter",
    ],
)