Files
2026-07-14 21:27:44 +00:00

50 lines
1.0 KiB
C

/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause.
*
* Description: Process management
* Author: Chloe M.
*/
#ifndef _PS_PROCESS_H_
#define _PS_PROCESS_H_ 1
#include <hal/mmu.h>
#include <ptapi/status.h>
#include <ptdef.h>
/* Maximum length of process name */
#define PS_NAME_MAX 64
/* Pool tag for process allocations */
#define PS_POOL_TAG 'PS'
/* Process flags */
#define PS_USER BIT(0) /* Set if user-level */
/*
* Represents a running process on the machine
*
* @Name: Name of process
* @Pid: Process ID
* @Flags: Initialization flags
* @Vas: Virtual address space of process
*/
typedef struct _PROCESS {
CHAR Name[PS_NAME_MAX];
UQUAD Pid;
ULONG Flags;
MMU_VAS Vas;
} PROCESS;
/*
* Allocate and create a new process descriptor
*
* @Name: Name of process
* @Flags: Initialization flags of process
* @Result: Result is written here
*/
PT_STATUS PsCreateProcess(const CHAR *Name, ULONG Flags, PROCESS **Result);
#endif /* !_PS_PROCESS_H_ */